@codecademy/brand 4.0.0 → 5.0.0-alpha.19accb830.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/README.md +6 -0
- package/dist/AbbreviatedCommunityEventCard/index.cjs +74 -0
- package/dist/AbbreviatedCommunityEventCard/index.cjs.map +1 -0
- package/dist/AbbreviatedCommunityEventCard/index.d.cts +12 -0
- package/dist/AbbreviatedCommunityEventCard/index.d.cts.map +1 -0
- package/dist/AbbreviatedCommunityEventCard/index.d.ts +11 -7
- package/dist/AbbreviatedCommunityEventCard/index.d.ts.map +1 -0
- package/dist/AbbreviatedCommunityEventCard/index.js +71 -98
- package/dist/AbbreviatedCommunityEventCard/index.js.map +1 -0
- package/dist/AppBar/AppBarSection.cjs +40 -0
- package/dist/AppBar/AppBarSection.cjs.map +1 -0
- package/dist/AppBar/AppBarSection.d.cts +16 -0
- package/dist/AppBar/AppBarSection.d.cts.map +1 -0
- package/dist/AppBar/AppBarSection.d.ts +16 -10
- package/dist/AppBar/AppBarSection.d.ts.map +1 -0
- package/dist/AppBar/AppBarSection.js +35 -39
- package/dist/AppBar/AppBarSection.js.map +1 -0
- package/dist/AppBar/index.cjs +21 -0
- package/dist/AppBar/index.cjs.map +1 -0
- package/dist/AppBar/index.d.cts +14 -0
- package/dist/AppBar/index.d.cts.map +1 -0
- package/dist/AppBar/index.d.ts +13 -8
- package/dist/AppBar/index.d.ts.map +1 -0
- package/dist/AppBar/index.js +19 -20
- package/dist/AppBar/index.js.map +1 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.cjs +24 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.cjs.map +1 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.cts +19 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.cts.map +1 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.ts +14 -9
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.ts.map +1 -0
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.js +18 -23
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.js.map +1 -0
- package/dist/AppBarDeprecated/index.cjs +27 -0
- package/dist/AppBarDeprecated/index.cjs.map +1 -0
- package/dist/AppBarDeprecated/index.d.cts +19 -0
- package/dist/AppBarDeprecated/index.d.cts.map +1 -0
- package/dist/AppBarDeprecated/index.d.ts +14 -9
- package/dist/AppBarDeprecated/index.d.ts.map +1 -0
- package/dist/AppBarDeprecated/index.js +21 -24
- package/dist/AppBarDeprecated/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs +84 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +82 -111
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.cjs +267 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +255 -334
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.cjs +275 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js +271 -226
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.cjs +100 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.cts +9 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.cts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.ts +10 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.ts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +98 -122
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.cjs +91 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +88 -123
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.cjs +96 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.cts +17 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.cts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.ts +17 -11
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.ts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js +92 -111
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.cjs +31 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js +24 -27
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.cjs +45 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +43 -56
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.cjs +62 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.cts +57 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.cts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.ts +54 -44
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.ts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.js +58 -69
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.cjs +38 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.js +35 -35
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.cjs +46 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +44 -59
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.cjs +28 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.js +24 -31
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.cjs +53 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.cts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.cts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.ts +11 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.ts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.js +49 -55
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.cjs +82 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.js +77 -86
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.cjs +78 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.js +74 -101
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.cjs +22 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.js +17 -17
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.cjs +88 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +80 -107
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.cjs +341 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +335 -291
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.cjs +98 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.cts +9 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.cts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.ts +10 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.ts.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +96 -120
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.cjs +18 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.js +15 -9
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.cjs +68 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js +66 -89
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.cjs +47 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.js +45 -61
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.cjs +92 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js +85 -125
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.cjs +66 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +65 -81
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.cjs +59 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js +48 -118
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.cjs +102 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +100 -144
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.cjs +55 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.cjs.map +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js +52 -64
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js.map +1 -0
- package/dist/AppHeader/Search/DefaultResults.cjs +93 -0
- package/dist/AppHeader/Search/DefaultResults.cjs.map +1 -0
- package/dist/AppHeader/Search/DefaultResults.js +89 -111
- package/dist/AppHeader/Search/DefaultResults.js.map +1 -0
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.cjs +57 -0
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.cjs.map +1 -0
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.js +55 -79
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.js.map +1 -0
- package/dist/AppHeader/Search/SearchButton.cjs +50 -0
- package/dist/AppHeader/Search/SearchButton.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchButton.js +46 -71
- package/dist/AppHeader/Search/SearchButton.js.map +1 -0
- package/dist/AppHeader/Search/SearchPane.cjs +472 -0
- package/dist/AppHeader/Search/SearchPane.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchPane.js +461 -621
- package/dist/AppHeader/Search/SearchPane.js.map +1 -0
- package/dist/AppHeader/Search/SearchTrackingProvider/index.cjs +29 -0
- package/dist/AppHeader/Search/SearchTrackingProvider/index.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchTrackingProvider/index.js +23 -23
- package/dist/AppHeader/Search/SearchTrackingProvider/index.js.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.cjs +45 -0
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.js +44 -35
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.js.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/index.cjs +25 -0
- package/dist/AppHeader/Search/SearchWorker/index.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/index.d.cts +11 -0
- package/dist/AppHeader/Search/SearchWorker/index.d.cts.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/index.d.ts +10 -4
- package/dist/AppHeader/Search/SearchWorker/index.d.ts.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/index.js +24 -23
- package/dist/AppHeader/Search/SearchWorker/index.js.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/src.cjs +160 -0
- package/dist/AppHeader/Search/SearchWorker/src.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/src.js +154 -305
- package/dist/AppHeader/Search/SearchWorker/src.js.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/types.cjs +16 -0
- package/dist/AppHeader/Search/SearchWorker/types.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/types.d.cts +31 -0
- package/dist/AppHeader/Search/SearchWorker/types.d.cts.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/types.d.ts +24 -30
- package/dist/AppHeader/Search/SearchWorker/types.d.ts.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/types.js +10 -5
- package/dist/AppHeader/Search/SearchWorker/types.js.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/worker.cjs +27 -0
- package/dist/AppHeader/Search/SearchWorker/worker.cjs.map +1 -0
- package/dist/AppHeader/Search/SearchWorker/worker.js +25 -29
- package/dist/AppHeader/Search/SearchWorker/worker.js.map +1 -0
- package/dist/AppHeader/Search/consts.cjs +74 -0
- package/dist/AppHeader/Search/consts.cjs.map +1 -0
- package/dist/AppHeader/Search/consts.d.cts +27 -0
- package/dist/AppHeader/Search/consts.d.cts.map +1 -0
- package/dist/AppHeader/Search/consts.d.ts +24 -20
- package/dist/AppHeader/Search/consts.d.ts.map +1 -0
- package/dist/AppHeader/Search/consts.js +64 -40
- package/dist/AppHeader/Search/consts.js.map +1 -0
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.cjs +18 -0
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.cjs.map +1 -0
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.js +17 -14
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.js.map +1 -0
- package/dist/AppHeader/Search/safelyRedirect.cjs +39 -0
- package/dist/AppHeader/Search/safelyRedirect.cjs.map +1 -0
- package/dist/AppHeader/Search/safelyRedirect.js +32 -42
- package/dist/AppHeader/Search/safelyRedirect.js.map +1 -0
- package/dist/AppHeader/Search/types.d.cts +14 -0
- package/dist/AppHeader/Search/types.d.cts.map +1 -0
- package/dist/AppHeader/Search/types.d.ts +12 -19
- package/dist/AppHeader/Search/types.d.ts.map +1 -0
- package/dist/AppHeader/Search/useHeaderSearch.cjs +40 -0
- package/dist/AppHeader/Search/useHeaderSearch.cjs.map +1 -0
- package/dist/AppHeader/Search/useHeaderSearch.js +39 -40
- package/dist/AppHeader/Search/useHeaderSearch.js.map +1 -0
- package/dist/AppHeader/index.cjs +82 -0
- package/dist/AppHeader/index.cjs.map +1 -0
- package/dist/AppHeader/index.d.cts +29 -0
- package/dist/AppHeader/index.d.cts.map +1 -0
- package/dist/AppHeader/index.d.ts +29 -22
- package/dist/AppHeader/index.d.ts.map +1 -0
- package/dist/AppHeader/index.js +81 -98
- package/dist/AppHeader/index.js.map +1 -0
- package/dist/AppHeader/shared/elements.cjs +187 -0
- package/dist/AppHeader/shared/elements.cjs.map +1 -0
- package/dist/AppHeader/shared/elements.d.ts +8 -90
- package/dist/AppHeader/shared/elements.js +165 -241
- package/dist/AppHeader/shared/elements.js.map +1 -0
- package/dist/AppHeader/shared/index.cjs +3 -0
- package/dist/AppHeader/shared/index.d.ts +4 -4
- package/dist/AppHeader/shared/index.js +3 -4
- package/dist/AppHeader/shared/keyboardNav.cjs +69 -0
- package/dist/AppHeader/shared/keyboardNav.cjs.map +1 -0
- package/dist/AppHeader/shared/keyboardNav.d.ts +1 -23
- package/dist/AppHeader/shared/keyboardNav.js +64 -65
- package/dist/AppHeader/shared/keyboardNav.js.map +1 -0
- package/dist/AppHeader/shared/mockAppHeaderItems.d.ts +1 -2
- package/dist/AppHeader/shared/types.cjs +7 -0
- package/dist/AppHeader/shared/types.cjs.map +1 -0
- package/dist/AppHeader/shared/types.d.cts +110 -0
- package/dist/AppHeader/shared/types.d.cts.map +1 -0
- package/dist/AppHeader/shared/types.d.ts +107 -104
- package/dist/AppHeader/shared/types.d.ts.map +1 -0
- package/dist/AppHeader/shared/types.js +6 -1
- package/dist/AppHeader/shared/types.js.map +1 -0
- package/dist/AppHeader/shared/utils.cjs +82 -0
- package/dist/AppHeader/shared/utils.cjs.map +1 -0
- package/dist/AppHeader/shared/utils.js +81 -100
- package/dist/AppHeader/shared/utils.js.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.cjs +123 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.cjs.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.cts +13 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.cts.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.ts +13 -7
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.ts.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +118 -139
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.cjs +31 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.cjs.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.js +27 -29
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.js.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.cjs +105 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.cjs.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.cts +13 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.cts.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.ts +12 -7
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.ts.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +100 -121
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.cjs +62 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.cjs.map +1 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.js +57 -58
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.js.map +1 -0
- package/dist/AppHeaderMobile/index.cjs +167 -0
- package/dist/AppHeaderMobile/index.cjs.map +1 -0
- package/dist/AppHeaderMobile/index.d.cts +25 -0
- package/dist/AppHeaderMobile/index.d.cts.map +1 -0
- package/dist/AppHeaderMobile/index.d.ts +27 -19
- package/dist/AppHeaderMobile/index.d.ts.map +1 -0
- package/dist/AppHeaderMobile/index.js +163 -212
- package/dist/AppHeaderMobile/index.js.map +1 -0
- package/dist/Avatar/index.cjs +45 -0
- package/dist/Avatar/index.cjs.map +1 -0
- package/dist/Avatar/index.d.cts +41 -0
- package/dist/Avatar/index.d.cts.map +1 -0
- package/dist/Avatar/index.d.ts +38 -33
- package/dist/Avatar/index.d.ts.map +1 -0
- package/dist/Avatar/index.js +42 -45
- package/dist/Avatar/index.js.map +1 -0
- package/dist/AvatarChooser/index.cjs +80 -0
- package/dist/AvatarChooser/index.cjs.map +1 -0
- package/dist/AvatarChooser/index.d.cts +16 -0
- package/dist/AvatarChooser/index.d.cts.map +1 -0
- package/dist/AvatarChooser/index.d.ts +14 -10
- package/dist/AvatarChooser/index.d.ts.map +1 -0
- package/dist/AvatarChooser/index.js +75 -102
- package/dist/AvatarChooser/index.js.map +1 -0
- package/dist/BackToTopAnchor/index.cjs +31 -0
- package/dist/BackToTopAnchor/index.cjs.map +1 -0
- package/dist/BackToTopAnchor/index.d.cts +12 -0
- package/dist/BackToTopAnchor/index.d.cts.map +1 -0
- package/dist/BackToTopAnchor/index.d.ts +10 -11
- package/dist/BackToTopAnchor/index.d.ts.map +1 -0
- package/dist/BackToTopAnchor/index.js +29 -37
- package/dist/BackToTopAnchor/index.js.map +1 -0
- package/dist/Banner/CountdownTimer.cjs +96 -0
- package/dist/Banner/CountdownTimer.cjs.map +1 -0
- package/dist/Banner/CountdownTimer.d.cts +11 -0
- package/dist/Banner/CountdownTimer.d.cts.map +1 -0
- package/dist/Banner/CountdownTimer.d.ts +9 -5
- package/dist/Banner/CountdownTimer.d.ts.map +1 -0
- package/dist/Banner/CountdownTimer.js +90 -106
- package/dist/Banner/CountdownTimer.js.map +1 -0
- package/dist/Banner/EnhancedBanner.cjs +124 -0
- package/dist/Banner/EnhancedBanner.cjs.map +1 -0
- package/dist/Banner/EnhancedBanner.d.cts +21 -0
- package/dist/Banner/EnhancedBanner.d.cts.map +1 -0
- package/dist/Banner/EnhancedBanner.d.ts +20 -16
- package/dist/Banner/EnhancedBanner.d.ts.map +1 -0
- package/dist/Banner/EnhancedBanner.js +118 -169
- package/dist/Banner/EnhancedBanner.js.map +1 -0
- package/dist/Banner/index.cjs +90 -0
- package/dist/Banner/index.cjs.map +1 -0
- package/dist/Banner/index.d.cts +25 -0
- package/dist/Banner/index.d.cts.map +1 -0
- package/dist/Banner/index.d.ts +22 -18
- package/dist/Banner/index.d.ts.map +1 -0
- package/dist/Banner/index.js +81 -95
- package/dist/Banner/index.js.map +1 -0
- package/dist/BetaSticker/index.cjs +58 -0
- package/dist/BetaSticker/index.cjs.map +1 -0
- package/dist/BetaSticker/index.d.cts +10 -0
- package/dist/BetaSticker/index.d.cts.map +1 -0
- package/dist/BetaSticker/index.d.ts +8 -4
- package/dist/BetaSticker/index.d.ts.map +1 -0
- package/dist/BetaSticker/index.js +54 -56
- package/dist/BetaSticker/index.js.map +1 -0
- package/dist/CareerPathCard/index.cjs +33 -0
- package/dist/CareerPathCard/index.cjs.map +1 -0
- package/dist/CareerPathCard/index.d.cts +27 -0
- package/dist/CareerPathCard/index.d.cts.map +1 -0
- package/dist/CareerPathCard/index.d.ts +25 -20
- package/dist/CareerPathCard/index.d.ts.map +1 -0
- package/dist/CareerPathCard/index.js +32 -49
- package/dist/CareerPathCard/index.js.map +1 -0
- package/dist/Carousel/elements.cjs +16 -0
- package/dist/Carousel/elements.cjs.map +1 -0
- package/dist/Carousel/elements.js +14 -14
- package/dist/Carousel/elements.js.map +1 -0
- package/dist/Carousel/index.cjs +177 -0
- package/dist/Carousel/index.cjs.map +1 -0
- package/dist/Carousel/index.d.cts +28 -0
- package/dist/Carousel/index.d.cts.map +1 -0
- package/dist/Carousel/index.d.ts +25 -21
- package/dist/Carousel/index.d.ts.map +1 -0
- package/dist/Carousel/index.js +168 -247
- package/dist/Carousel/index.js.map +1 -0
- package/dist/CertificationPathCard/index.cjs +40 -0
- package/dist/CertificationPathCard/index.cjs.map +1 -0
- package/dist/CertificationPathCard/index.d.cts +28 -0
- package/dist/CertificationPathCard/index.d.cts.map +1 -0
- package/dist/CertificationPathCard/index.d.ts +25 -20
- package/dist/CertificationPathCard/index.d.ts.map +1 -0
- package/dist/CertificationPathCard/index.js +39 -52
- package/dist/CertificationPathCard/index.js.map +1 -0
- package/dist/CoachingSessionCard/index.cjs +54 -0
- package/dist/CoachingSessionCard/index.cjs.map +1 -0
- package/dist/CoachingSessionCard/index.d.cts +25 -0
- package/dist/CoachingSessionCard/index.d.cts.map +1 -0
- package/dist/CoachingSessionCard/index.d.ts +24 -20
- package/dist/CoachingSessionCard/index.d.ts.map +1 -0
- package/dist/CoachingSessionCard/index.js +51 -73
- package/dist/CoachingSessionCard/index.js.map +1 -0
- package/dist/CommunityEventCard/EventTypeIcon.cjs +60 -0
- package/dist/CommunityEventCard/EventTypeIcon.cjs.map +1 -0
- package/dist/CommunityEventCard/EventTypeIcon.js +58 -58
- package/dist/CommunityEventCard/EventTypeIcon.js.map +1 -0
- package/dist/CommunityEventCard/index.cjs +215 -0
- package/dist/CommunityEventCard/index.cjs.map +1 -0
- package/dist/CommunityEventCard/index.d.cts +32 -0
- package/dist/CommunityEventCard/index.d.cts.map +1 -0
- package/dist/CommunityEventCard/index.d.ts +31 -27
- package/dist/CommunityEventCard/index.d.ts.map +1 -0
- package/dist/CommunityEventCard/index.js +210 -304
- package/dist/CommunityEventCard/index.js.map +1 -0
- package/dist/CommunityEventToast/index.cjs +28 -0
- package/dist/CommunityEventToast/index.cjs.map +1 -0
- package/dist/CommunityEventToast/index.d.cts +10 -0
- package/dist/CommunityEventToast/index.d.cts.map +1 -0
- package/dist/CommunityEventToast/index.d.ts +8 -4
- package/dist/CommunityEventToast/index.d.ts.map +1 -0
- package/dist/CommunityEventToast/index.js +26 -32
- package/dist/CommunityEventToast/index.js.map +1 -0
- package/dist/ContentGroupBaseCard/helpers.cjs +16 -0
- package/dist/ContentGroupBaseCard/helpers.cjs.map +1 -0
- package/dist/ContentGroupBaseCard/helpers.d.cts +9 -0
- package/dist/ContentGroupBaseCard/helpers.d.cts.map +1 -0
- package/dist/ContentGroupBaseCard/helpers.d.ts +9 -4
- package/dist/ContentGroupBaseCard/helpers.d.ts.map +1 -0
- package/dist/ContentGroupBaseCard/helpers.js +13 -11
- package/dist/ContentGroupBaseCard/helpers.js.map +1 -0
- package/dist/ContentGroupBaseCard/index.cjs +167 -0
- package/dist/ContentGroupBaseCard/index.cjs.map +1 -0
- package/dist/ContentGroupBaseCard/index.d.cts +41 -0
- package/dist/ContentGroupBaseCard/index.d.cts.map +1 -0
- package/dist/ContentGroupBaseCard/index.d.ts +39 -31
- package/dist/ContentGroupBaseCard/index.d.ts.map +1 -0
- package/dist/ContentGroupBaseCard/index.js +160 -235
- package/dist/ContentGroupBaseCard/index.js.map +1 -0
- package/dist/ContentGroupBaseCard/shared.cjs +49 -0
- package/dist/ContentGroupBaseCard/shared.cjs.map +1 -0
- package/dist/ContentGroupBaseCard/shared.js +41 -66
- package/dist/ContentGroupBaseCard/shared.js.map +1 -0
- package/dist/ContentGroupBaseCard/types.cjs +29 -0
- package/dist/ContentGroupBaseCard/types.cjs.map +1 -0
- package/dist/ContentGroupBaseCard/types.d.cts +14 -0
- package/dist/ContentGroupBaseCard/types.d.cts.map +1 -0
- package/dist/ContentGroupBaseCard/types.d.ts +12 -8
- package/dist/ContentGroupBaseCard/types.d.ts.map +1 -0
- package/dist/ContentGroupBaseCard/types.js +17 -12
- package/dist/ContentGroupBaseCard/types.js.map +1 -0
- package/dist/CourseCard/index.cjs +32 -0
- package/dist/CourseCard/index.cjs.map +1 -0
- package/dist/CourseCard/index.d.cts +26 -0
- package/dist/CourseCard/index.d.cts.map +1 -0
- package/dist/CourseCard/index.d.ts +25 -19
- package/dist/CourseCard/index.d.ts.map +1 -0
- package/dist/CourseCard/index.js +31 -45
- package/dist/CourseCard/index.js.map +1 -0
- package/dist/CurriculumCard/BottomTag/index.cjs +28 -0
- package/dist/CurriculumCard/BottomTag/index.cjs.map +1 -0
- package/dist/CurriculumCard/BottomTag/index.d.cts +5 -0
- package/dist/CurriculumCard/BottomTag/index.d.cts.map +1 -0
- package/dist/CurriculumCard/BottomTag/index.d.ts +7 -7
- package/dist/CurriculumCard/BottomTag/index.d.ts.map +1 -0
- package/dist/CurriculumCard/BottomTag/index.js +24 -24
- package/dist/CurriculumCard/BottomTag/index.js.map +1 -0
- package/dist/CurriculumCard/Difficulty/helpers.cjs +17 -0
- package/dist/CurriculumCard/Difficulty/helpers.cjs.map +1 -0
- package/dist/CurriculumCard/Difficulty/helpers.d.cts +13 -0
- package/dist/CurriculumCard/Difficulty/helpers.d.cts.map +1 -0
- package/dist/CurriculumCard/Difficulty/helpers.d.ts +7 -2
- package/dist/CurriculumCard/Difficulty/helpers.d.ts.map +1 -0
- package/dist/CurriculumCard/Difficulty/helpers.js +15 -11
- package/dist/CurriculumCard/Difficulty/helpers.js.map +1 -0
- package/dist/CurriculumCard/Difficulty/index.cjs +51 -0
- package/dist/CurriculumCard/Difficulty/index.cjs.map +1 -0
- package/dist/CurriculumCard/Difficulty/index.d.cts +8 -0
- package/dist/CurriculumCard/Difficulty/index.d.cts.map +1 -0
- package/dist/CurriculumCard/Difficulty/index.d.ts +8 -3
- package/dist/CurriculumCard/Difficulty/index.d.ts.map +1 -0
- package/dist/CurriculumCard/Difficulty/index.js +45 -46
- package/dist/CurriculumCard/Difficulty/index.js.map +1 -0
- package/dist/CurriculumCard/Difficulty/types.cjs +31 -0
- package/dist/CurriculumCard/Difficulty/types.cjs.map +1 -0
- package/dist/CurriculumCard/Difficulty/types.d.cts +26 -0
- package/dist/CurriculumCard/Difficulty/types.d.cts.map +1 -0
- package/dist/CurriculumCard/Difficulty/types.d.ts +17 -13
- package/dist/CurriculumCard/Difficulty/types.d.ts.map +1 -0
- package/dist/CurriculumCard/Difficulty/types.js +17 -18
- package/dist/CurriculumCard/Difficulty/types.js.map +1 -0
- package/dist/CurriculumCard/Footer/index.cjs +39 -0
- package/dist/CurriculumCard/Footer/index.cjs.map +1 -0
- package/dist/CurriculumCard/Footer/index.js +37 -54
- package/dist/CurriculumCard/Footer/index.js.map +1 -0
- package/dist/CurriculumCard/Image/index.cjs +52 -0
- package/dist/CurriculumCard/Image/index.cjs.map +1 -0
- package/dist/CurriculumCard/Image/index.js +46 -52
- package/dist/CurriculumCard/Image/index.js.map +1 -0
- package/dist/CurriculumCard/Subtitle/helpers.cjs +10 -0
- package/dist/CurriculumCard/Subtitle/helpers.cjs.map +1 -0
- package/dist/CurriculumCard/Subtitle/helpers.js +9 -8
- package/dist/CurriculumCard/Subtitle/helpers.js.map +1 -0
- package/dist/CurriculumCard/Subtitle/index.cjs +29 -0
- package/dist/CurriculumCard/Subtitle/index.cjs.map +1 -0
- package/dist/CurriculumCard/Subtitle/index.d.cts +11 -0
- package/dist/CurriculumCard/Subtitle/index.d.cts.map +1 -0
- package/dist/CurriculumCard/Subtitle/index.d.ts +11 -7
- package/dist/CurriculumCard/Subtitle/index.d.ts.map +1 -0
- package/dist/CurriculumCard/Subtitle/index.js +26 -34
- package/dist/CurriculumCard/Subtitle/index.js.map +1 -0
- package/dist/CurriculumCard/index.cjs +105 -0
- package/dist/CurriculumCard/index.cjs.map +1 -0
- package/dist/CurriculumCard/index.d.cts +64 -0
- package/dist/CurriculumCard/index.d.cts.map +1 -0
- package/dist/CurriculumCard/index.d.ts +57 -52
- package/dist/CurriculumCard/index.d.ts.map +1 -0
- package/dist/CurriculumCard/index.js +98 -124
- package/dist/CurriculumCard/index.js.map +1 -0
- package/dist/DropdownButton/DropdownList.cjs +59 -0
- package/dist/DropdownButton/DropdownList.cjs.map +1 -0
- package/dist/DropdownButton/DropdownList.d.cts +20 -0
- package/dist/DropdownButton/DropdownList.d.cts.map +1 -0
- package/dist/DropdownButton/DropdownList.d.ts +17 -14
- package/dist/DropdownButton/DropdownList.d.ts.map +1 -0
- package/dist/DropdownButton/DropdownList.js +57 -73
- package/dist/DropdownButton/DropdownList.js.map +1 -0
- package/dist/DropdownButton/index.cjs +138 -0
- package/dist/DropdownButton/index.cjs.map +1 -0
- package/dist/DropdownButton/index.d.cts +81 -0
- package/dist/DropdownButton/index.d.cts.map +1 -0
- package/dist/DropdownButton/index.d.ts +76 -69
- package/dist/DropdownButton/index.d.ts.map +1 -0
- package/dist/DropdownButton/index.js +136 -169
- package/dist/DropdownButton/index.js.map +1 -0
- package/dist/DropdownButton/useDynamicPopoverPosition.cjs +42 -0
- package/dist/DropdownButton/useDynamicPopoverPosition.cjs.map +1 -0
- package/dist/DropdownButton/useDynamicPopoverPosition.js +35 -49
- package/dist/DropdownButton/useDynamicPopoverPosition.js.map +1 -0
- package/dist/EmptySection/index.cjs +153 -0
- package/dist/EmptySection/index.cjs.map +1 -0
- package/dist/EmptySection/index.d.cts +33 -0
- package/dist/EmptySection/index.d.cts.map +1 -0
- package/dist/EmptySection/index.d.ts +33 -27
- package/dist/EmptySection/index.d.ts.map +1 -0
- package/dist/EmptySection/index.js +146 -179
- package/dist/EmptySection/index.js.map +1 -0
- package/dist/ErrorContents/index.cjs +35 -0
- package/dist/ErrorContents/index.cjs.map +1 -0
- package/dist/ErrorContents/index.d.cts +13 -0
- package/dist/ErrorContents/index.d.cts.map +1 -0
- package/dist/ErrorContents/index.d.ts +12 -7
- package/dist/ErrorContents/index.d.ts.map +1 -0
- package/dist/ErrorContents/index.js +33 -48
- package/dist/ErrorContents/index.js.map +1 -0
- package/dist/FeatureList/index.cjs +33 -0
- package/dist/FeatureList/index.cjs.map +1 -0
- package/dist/FeatureList/index.d.cts +19 -0
- package/dist/FeatureList/index.d.cts.map +1 -0
- package/dist/FeatureList/index.d.ts +17 -9
- package/dist/FeatureList/index.d.ts.map +1 -0
- package/dist/FeatureList/index.js +31 -41
- package/dist/FeatureList/index.js.map +1 -0
- package/dist/GlobalFooter/FooterHeading.cjs +31 -0
- package/dist/GlobalFooter/FooterHeading.cjs.map +1 -0
- package/dist/GlobalFooter/FooterHeading.js +28 -29
- package/dist/GlobalFooter/FooterHeading.js.map +1 -0
- package/dist/GlobalFooter/FooterLegal/LegalLinks.cjs +58 -0
- package/dist/GlobalFooter/FooterLegal/LegalLinks.cjs.map +1 -0
- package/dist/GlobalFooter/FooterLegal/LegalLinks.js +55 -43
- package/dist/GlobalFooter/FooterLegal/LegalLinks.js.map +1 -0
- package/dist/GlobalFooter/FooterLegal/MadeIn.cjs +48 -0
- package/dist/GlobalFooter/FooterLegal/MadeIn.cjs.map +1 -0
- package/dist/GlobalFooter/FooterLegal/MadeIn.js +44 -63
- package/dist/GlobalFooter/FooterLegal/MadeIn.js.map +1 -0
- package/dist/GlobalFooter/FooterLegal/index.cjs +21 -0
- package/dist/GlobalFooter/FooterLegal/index.cjs.map +1 -0
- package/dist/GlobalFooter/FooterLegal/index.js +18 -22
- package/dist/GlobalFooter/FooterLegal/index.js.map +1 -0
- package/dist/GlobalFooter/FooterLinks.cjs +43 -0
- package/dist/GlobalFooter/FooterLinks.cjs.map +1 -0
- package/dist/GlobalFooter/FooterLinks.js +38 -52
- package/dist/GlobalFooter/FooterLinks.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.cjs +229 -0
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.js +221 -293
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.cjs +196 -0
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.js +193 -286
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.cjs +203 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js +198 -270
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.cjs +27 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.js +25 -29
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.cjs +70 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.js +65 -75
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.cjs +68 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.js +67 -86
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.cts +8 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.cts.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.ts +7 -3
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.ts.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.cjs +57 -0
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.js +55 -50
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.cjs +12 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.js +6 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.cjs +12 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.js +6 -0
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.js.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/index.cjs +37 -0
- package/dist/GlobalFooter/FooterNavLinks/index.cjs.map +1 -0
- package/dist/GlobalFooter/FooterNavLinks/index.js +34 -43
- package/dist/GlobalFooter/FooterNavLinks/index.js.map +1 -0
- package/dist/GlobalFooter/index.cjs +34 -0
- package/dist/GlobalFooter/index.cjs.map +1 -0
- package/dist/GlobalFooter/index.d.cts +27 -0
- package/dist/GlobalFooter/index.d.cts.map +1 -0
- package/dist/GlobalFooter/index.d.ts +26 -21
- package/dist/GlobalFooter/index.d.ts.map +1 -0
- package/dist/GlobalFooter/index.js +31 -37
- package/dist/GlobalFooter/index.js.map +1 -0
- package/dist/GlobalFooter/types.d.cts +17 -0
- package/dist/GlobalFooter/types.d.cts.map +1 -0
- package/dist/GlobalFooter/types.d.ts +15 -11
- package/dist/GlobalFooter/types.d.ts.map +1 -0
- package/dist/GlobalHeader/GlobalHeaderItems.cjs +439 -0
- package/dist/GlobalHeader/GlobalHeaderItems.cjs.map +1 -0
- package/dist/GlobalHeader/GlobalHeaderItems.js +371 -377
- package/dist/GlobalHeader/GlobalHeaderItems.js.map +1 -0
- package/dist/GlobalHeader/GlobalHeaderVariants.cjs +344 -0
- package/dist/GlobalHeader/GlobalHeaderVariants.cjs.map +1 -0
- package/dist/GlobalHeader/GlobalHeaderVariants.js +297 -325
- package/dist/GlobalHeader/GlobalHeaderVariants.js.map +1 -0
- package/dist/GlobalHeader/context.cjs +83 -0
- package/dist/GlobalHeader/context.cjs.map +1 -0
- package/dist/GlobalHeader/context.js +70 -72
- package/dist/GlobalHeader/context.js.map +1 -0
- package/dist/GlobalHeader/index.cjs +132 -0
- package/dist/GlobalHeader/index.cjs.map +1 -0
- package/dist/GlobalHeader/index.d.cts +11 -0
- package/dist/GlobalHeader/index.d.cts.map +1 -0
- package/dist/GlobalHeader/index.d.ts +11 -7
- package/dist/GlobalHeader/index.d.ts.map +1 -0
- package/dist/GlobalHeader/index.js +126 -180
- package/dist/GlobalHeader/index.js.map +1 -0
- package/dist/GlobalHeader/types.d.cts +125 -0
- package/dist/GlobalHeader/types.d.cts.map +1 -0
- package/dist/GlobalHeader/types.d.ts +105 -99
- package/dist/GlobalHeader/types.d.ts.map +1 -0
- package/dist/GlobalHeader/urlHelpers.cjs +23 -0
- package/dist/GlobalHeader/urlHelpers.cjs.map +1 -0
- package/dist/GlobalHeader/urlHelpers.js +20 -20
- package/dist/GlobalHeader/urlHelpers.js.map +1 -0
- package/dist/GlobalPage/index.cjs +29 -0
- package/dist/GlobalPage/index.cjs.map +1 -0
- package/dist/GlobalPage/index.d.cts +52 -0
- package/dist/GlobalPage/index.d.cts.map +1 -0
- package/dist/GlobalPage/index.d.ts +47 -43
- package/dist/GlobalPage/index.d.ts.map +1 -0
- package/dist/GlobalPage/index.js +27 -60
- package/dist/GlobalPage/index.js.map +1 -0
- package/dist/Grid/GridCollapse.cjs +134 -0
- package/dist/Grid/GridCollapse.cjs.map +1 -0
- package/dist/Grid/GridCollapse.d.cts +50 -0
- package/dist/Grid/GridCollapse.d.cts.map +1 -0
- package/dist/Grid/GridCollapse.d.ts +48 -39
- package/dist/Grid/GridCollapse.d.ts.map +1 -0
- package/dist/Grid/GridCollapse.js +126 -195
- package/dist/Grid/GridCollapse.js.map +1 -0
- package/dist/Grid/Subgrid.cjs +41 -0
- package/dist/Grid/Subgrid.cjs.map +1 -0
- package/dist/Grid/Subgrid.d.cts +29 -0
- package/dist/Grid/Subgrid.d.cts.map +1 -0
- package/dist/Grid/Subgrid.d.ts +11 -5
- package/dist/Grid/Subgrid.d.ts.map +1 -0
- package/dist/Grid/Subgrid.js +37 -35
- package/dist/Grid/Subgrid.js.map +1 -0
- package/dist/Grid/getCSSFromColumnCount.cjs +11 -0
- package/dist/Grid/getCSSFromColumnCount.cjs.map +1 -0
- package/dist/Grid/getCSSFromColumnCount.d.cts +11 -0
- package/dist/Grid/getCSSFromColumnCount.d.cts.map +1 -0
- package/dist/Grid/getCSSFromColumnCount.d.ts +11 -6
- package/dist/Grid/getCSSFromColumnCount.d.ts.map +1 -0
- package/dist/Grid/getCSSFromColumnCount.js +10 -7
- package/dist/Grid/getCSSFromColumnCount.js.map +1 -0
- package/dist/Grid/index.cjs +3 -0
- package/dist/Grid/index.d.ts +3 -3
- package/dist/Grid/index.js +3 -3
- package/dist/HeaderHeightArea/index.cjs +40 -0
- package/dist/HeaderHeightArea/index.cjs.map +1 -0
- package/dist/HeaderHeightArea/index.js +36 -39
- package/dist/HeaderHeightArea/index.js.map +1 -0
- package/dist/HeaderHeightArea/useIsInHeaderRegion.cjs +18 -0
- package/dist/HeaderHeightArea/useIsInHeaderRegion.cjs.map +1 -0
- package/dist/HeaderHeightArea/useIsInHeaderRegion.js +16 -14
- package/dist/HeaderHeightArea/useIsInHeaderRegion.js.map +1 -0
- package/dist/HorizontalScrollMenu/index.cjs +57 -0
- package/dist/HorizontalScrollMenu/index.cjs.map +1 -0
- package/dist/HorizontalScrollMenu/index.d.cts +11 -0
- package/dist/HorizontalScrollMenu/index.d.cts.map +1 -0
- package/dist/HorizontalScrollMenu/index.d.ts +11 -6
- package/dist/HorizontalScrollMenu/index.d.ts.map +1 -0
- package/dist/HorizontalScrollMenu/index.js +55 -75
- package/dist/HorizontalScrollMenu/index.js.map +1 -0
- package/dist/HubCard/index.cjs +33 -0
- package/dist/HubCard/index.cjs.map +1 -0
- package/dist/HubCard/index.d.cts +13 -0
- package/dist/HubCard/index.d.cts.map +1 -0
- package/dist/HubCard/index.d.ts +12 -7
- package/dist/HubCard/index.d.ts.map +1 -0
- package/dist/HubCard/index.js +31 -38
- package/dist/HubCard/index.js.map +1 -0
- package/dist/InfoCard/index.cjs +99 -0
- package/dist/InfoCard/index.cjs.map +1 -0
- package/dist/InfoCard/index.d.cts +24 -0
- package/dist/InfoCard/index.d.cts.map +1 -0
- package/dist/InfoCard/index.d.ts +23 -18
- package/dist/InfoCard/index.d.ts.map +1 -0
- package/dist/InfoCard/index.js +93 -153
- package/dist/InfoCard/index.js.map +1 -0
- package/dist/InstructorCard/index.cjs +137 -0
- package/dist/InstructorCard/index.cjs.map +1 -0
- package/dist/InstructorCard/index.d.cts +17 -0
- package/dist/InstructorCard/index.d.cts.map +1 -0
- package/dist/InstructorCard/index.d.ts +16 -17
- package/dist/InstructorCard/index.d.ts.map +1 -0
- package/dist/InstructorCard/index.js +130 -171
- package/dist/InstructorCard/index.js.map +1 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.cjs +11 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.cjs.map +1 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.d.cts +10 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.d.cts.map +1 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.d.ts +9 -4
- package/dist/Konamimojisplosion/Konamimojisplosion.d.ts.map +1 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.js +11 -7
- package/dist/Konamimojisplosion/Konamimojisplosion.js.map +1 -0
- package/dist/Konamimojisplosion/index.cjs +2 -0
- package/dist/Konamimojisplosion/index.d.ts +2 -2
- package/dist/Konamimojisplosion/index.js +2 -2
- package/dist/Konamimojisplosion/useKonamimojisplosion.cjs +48 -0
- package/dist/Konamimojisplosion/useKonamimojisplosion.cjs.map +1 -0
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.cts +5 -0
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.cts.map +1 -0
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.ts +5 -1
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.ts.map +1 -0
- package/dist/Konamimojisplosion/useKonamimojisplosion.js +45 -32
- package/dist/Konamimojisplosion/useKonamimojisplosion.js.map +1 -0
- package/dist/LandingPage/Description.cjs +17 -0
- package/dist/LandingPage/Description.cjs.map +1 -0
- package/dist/LandingPage/Description.d.cts +11 -0
- package/dist/LandingPage/Description.d.cts.map +1 -0
- package/dist/LandingPage/Description.d.ts +10 -5
- package/dist/LandingPage/Description.d.ts.map +1 -0
- package/dist/LandingPage/Description.js +15 -14
- package/dist/LandingPage/Description.js.map +1 -0
- package/dist/LandingPage/PageFAQs.cjs +40 -0
- package/dist/LandingPage/PageFAQs.cjs.map +1 -0
- package/dist/LandingPage/PageFAQs.d.cts +17 -0
- package/dist/LandingPage/PageFAQs.d.cts.map +1 -0
- package/dist/LandingPage/PageFAQs.d.ts +14 -10
- package/dist/LandingPage/PageFAQs.d.ts.map +1 -0
- package/dist/LandingPage/PageFAQs.js +37 -44
- package/dist/LandingPage/PageFAQs.js.map +1 -0
- package/dist/LandingPage/Title.cjs +32 -0
- package/dist/LandingPage/Title.cjs.map +1 -0
- package/dist/LandingPage/Title.d.cts +28 -0
- package/dist/LandingPage/Title.d.cts.map +1 -0
- package/dist/LandingPage/Title.d.ts +24 -19
- package/dist/LandingPage/Title.d.ts.map +1 -0
- package/dist/LandingPage/Title.js +28 -27
- package/dist/LandingPage/Title.js.map +1 -0
- package/dist/LandingPage/TitleWithEyebrow.cjs +34 -0
- package/dist/LandingPage/TitleWithEyebrow.cjs.map +1 -0
- package/dist/LandingPage/TitleWithEyebrow.d.cts +16 -0
- package/dist/LandingPage/TitleWithEyebrow.d.cts.map +1 -0
- package/dist/LandingPage/TitleWithEyebrow.d.ts +15 -10
- package/dist/LandingPage/TitleWithEyebrow.d.ts.map +1 -0
- package/dist/LandingPage/TitleWithEyebrow.js +32 -40
- package/dist/LandingPage/TitleWithEyebrow.js.map +1 -0
- package/dist/LandingPage/index.cjs +5 -0
- package/dist/LandingPage/index.d.ts +6 -6
- package/dist/LandingPage/index.js +5 -6
- package/dist/LandingPage/types.d.cts +36 -0
- package/dist/LandingPage/types.d.cts.map +1 -0
- package/dist/LandingPage/types.d.ts +34 -30
- package/dist/LandingPage/types.d.ts.map +1 -0
- package/dist/LayoutMenu/AccordionMenu.cjs +63 -0
- package/dist/LayoutMenu/AccordionMenu.cjs.map +1 -0
- package/dist/LayoutMenu/AccordionMenu.d.cts +19 -0
- package/dist/LayoutMenu/AccordionMenu.d.cts.map +1 -0
- package/dist/LayoutMenu/AccordionMenu.d.ts +17 -24
- package/dist/LayoutMenu/AccordionMenu.d.ts.map +1 -0
- package/dist/LayoutMenu/AccordionMenu.js +57 -69
- package/dist/LayoutMenu/AccordionMenu.js.map +1 -0
- package/dist/LayoutMenu/LayoutMenu.cjs +87 -0
- package/dist/LayoutMenu/LayoutMenu.cjs.map +1 -0
- package/dist/LayoutMenu/LayoutMenu.d.cts +49 -0
- package/dist/LayoutMenu/LayoutMenu.d.cts.map +1 -0
- package/dist/LayoutMenu/LayoutMenu.d.ts +48 -43
- package/dist/LayoutMenu/LayoutMenu.d.ts.map +1 -0
- package/dist/LayoutMenu/LayoutMenu.js +84 -118
- package/dist/LayoutMenu/LayoutMenu.js.map +1 -0
- package/dist/LayoutMenu/LayoutMenuSection.cjs +30 -0
- package/dist/LayoutMenu/LayoutMenuSection.cjs.map +1 -0
- package/dist/LayoutMenu/LayoutMenuSection.js +28 -39
- package/dist/LayoutMenu/LayoutMenuSection.js.map +1 -0
- package/dist/LayoutMenu/SectionItemLink.cjs +18 -0
- package/dist/LayoutMenu/SectionItemLink.cjs.map +1 -0
- package/dist/LayoutMenu/SectionItemLink.d.cts +12 -0
- package/dist/LayoutMenu/SectionItemLink.d.cts.map +1 -0
- package/dist/LayoutMenu/SectionItemLink.d.ts +11 -6
- package/dist/LayoutMenu/SectionItemLink.d.ts.map +1 -0
- package/dist/LayoutMenu/SectionItemLink.js +16 -16
- package/dist/LayoutMenu/SectionItemLink.js.map +1 -0
- package/dist/LayoutMenu/SelectedSectionItem.cjs +18 -0
- package/dist/LayoutMenu/SelectedSectionItem.cjs.map +1 -0
- package/dist/LayoutMenu/SelectedSectionItem.d.cts +8 -0
- package/dist/LayoutMenu/SelectedSectionItem.d.cts.map +1 -0
- package/dist/LayoutMenu/SelectedSectionItem.d.ts +8 -3
- package/dist/LayoutMenu/SelectedSectionItem.d.ts.map +1 -0
- package/dist/LayoutMenu/SelectedSectionItem.js +16 -17
- package/dist/LayoutMenu/SelectedSectionItem.js.map +1 -0
- package/dist/LayoutMenu/index.cjs +3 -0
- package/dist/LayoutMenu/index.d.ts +3 -3
- package/dist/LayoutMenu/index.js +3 -3
- package/dist/LayoutMenuVariant/AccordionMenu.cjs +69 -0
- package/dist/LayoutMenuVariant/AccordionMenu.cjs.map +1 -0
- package/dist/LayoutMenuVariant/AccordionMenu.d.cts +20 -0
- package/dist/LayoutMenuVariant/AccordionMenu.d.cts.map +1 -0
- package/dist/LayoutMenuVariant/AccordionMenu.d.ts +18 -19
- package/dist/LayoutMenuVariant/AccordionMenu.d.ts.map +1 -0
- package/dist/LayoutMenuVariant/AccordionMenu.js +65 -86
- package/dist/LayoutMenuVariant/AccordionMenu.js.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenu.cjs +73 -0
- package/dist/LayoutMenuVariant/LayoutMenu.cjs.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenu.d.cts +44 -0
- package/dist/LayoutMenuVariant/LayoutMenu.d.cts.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenu.d.ts +43 -38
- package/dist/LayoutMenuVariant/LayoutMenu.d.ts.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenu.js +69 -92
- package/dist/LayoutMenuVariant/LayoutMenu.js.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenuSection.cjs +33 -0
- package/dist/LayoutMenuVariant/LayoutMenuSection.cjs.map +1 -0
- package/dist/LayoutMenuVariant/LayoutMenuSection.js +30 -42
- package/dist/LayoutMenuVariant/LayoutMenuSection.js.map +1 -0
- package/dist/LayoutMenuVariant/SectionItemLink.cjs +18 -0
- package/dist/LayoutMenuVariant/SectionItemLink.cjs.map +1 -0
- package/dist/LayoutMenuVariant/SectionItemLink.d.cts +13 -0
- package/dist/LayoutMenuVariant/SectionItemLink.d.cts.map +1 -0
- package/dist/LayoutMenuVariant/SectionItemLink.d.ts +12 -7
- package/dist/LayoutMenuVariant/SectionItemLink.d.ts.map +1 -0
- package/dist/LayoutMenuVariant/SectionItemLink.js +16 -17
- package/dist/LayoutMenuVariant/SectionItemLink.js.map +1 -0
- package/dist/LayoutMenuVariant/index.cjs +18 -0
- package/dist/LayoutMenuVariant/index.cjs.map +1 -0
- package/dist/LayoutMenuVariant/index.d.cts +10 -0
- package/dist/LayoutMenuVariant/index.d.cts.map +1 -0
- package/dist/LayoutMenuVariant/index.d.ts +10 -2
- package/dist/LayoutMenuVariant/index.d.ts.map +1 -0
- package/dist/LayoutMenuVariant/index.js +13 -2
- package/dist/LayoutMenuVariant/index.js.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.cjs +41 -0
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.cjs.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js +39 -55
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/index.cjs +24 -0
- package/dist/LearningOutcomeAssessmentScores/index.cjs.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/index.d.cts +11 -0
- package/dist/LearningOutcomeAssessmentScores/index.d.cts.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/index.d.ts +9 -6
- package/dist/LearningOutcomeAssessmentScores/index.d.ts.map +1 -0
- package/dist/LearningOutcomeAssessmentScores/index.js +23 -24
- package/dist/LearningOutcomeAssessmentScores/index.js.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.cjs +53 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.cjs.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.cts +22 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.cts.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.ts +18 -14
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.ts.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.js +43 -56
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.js.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.cjs +37 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.cjs.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.cts +19 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.cts.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.ts +17 -8
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.ts.map +1 -0
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.js +32 -33
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.js.map +1 -0
- package/dist/LearningOutcomeBadges/index.cjs +2 -0
- package/dist/LearningOutcomeBadges/index.d.ts +2 -2
- package/dist/LearningOutcomeBadges/index.js +2 -2
- package/dist/LearningOutcomeCard/index.cjs +163 -0
- package/dist/LearningOutcomeCard/index.cjs.map +1 -0
- package/dist/LearningOutcomeCard/index.d.cts +31 -0
- package/dist/LearningOutcomeCard/index.d.cts.map +1 -0
- package/dist/LearningOutcomeCard/index.d.ts +28 -23
- package/dist/LearningOutcomeCard/index.d.ts.map +1 -0
- package/dist/LearningOutcomeCard/index.js +155 -197
- package/dist/LearningOutcomeCard/index.js.map +1 -0
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.cjs +39 -0
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.cjs.map +1 -0
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js +38 -42
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js.map +1 -0
- package/dist/LearningOutcomeFlyout/index.cjs +277 -0
- package/dist/LearningOutcomeFlyout/index.cjs.map +1 -0
- package/dist/LearningOutcomeFlyout/index.d.cts +13 -0
- package/dist/LearningOutcomeFlyout/index.d.cts.map +1 -0
- package/dist/LearningOutcomeFlyout/index.d.ts +13 -7
- package/dist/LearningOutcomeFlyout/index.d.ts.map +1 -0
- package/dist/LearningOutcomeFlyout/index.js +264 -346
- package/dist/LearningOutcomeFlyout/index.js.map +1 -0
- package/dist/LearningOutcomeFlyout/types.cjs +16 -0
- package/dist/LearningOutcomeFlyout/types.cjs.map +1 -0
- package/dist/LearningOutcomeFlyout/types.d.cts +67 -0
- package/dist/LearningOutcomeFlyout/types.d.cts.map +1 -0
- package/dist/LearningOutcomeFlyout/types.d.ts +59 -54
- package/dist/LearningOutcomeFlyout/types.d.ts.map +1 -0
- package/dist/LearningOutcomeFlyout/types.js +10 -5
- package/dist/LearningOutcomeFlyout/types.js.map +1 -0
- package/dist/LearningOutcomePopover/index.cjs +96 -0
- package/dist/LearningOutcomePopover/index.cjs.map +1 -0
- package/dist/LearningOutcomePopover/index.js +92 -122
- package/dist/LearningOutcomePopover/index.js.map +1 -0
- package/dist/LearningOutcomeTile/Tile.cjs +72 -0
- package/dist/LearningOutcomeTile/Tile.cjs.map +1 -0
- package/dist/LearningOutcomeTile/Tile.js +66 -75
- package/dist/LearningOutcomeTile/Tile.js.map +1 -0
- package/dist/LearningOutcomeTile/index.cjs +97 -0
- package/dist/LearningOutcomeTile/index.cjs.map +1 -0
- package/dist/LearningOutcomeTile/index.d.cts +8 -0
- package/dist/LearningOutcomeTile/index.d.cts.map +1 -0
- package/dist/LearningOutcomeTile/index.d.ts +8 -3
- package/dist/LearningOutcomeTile/index.d.ts.map +1 -0
- package/dist/LearningOutcomeTile/index.js +93 -114
- package/dist/LearningOutcomeTile/index.js.map +1 -0
- package/dist/LearningOutcomeTile/types.cjs +17 -0
- package/dist/LearningOutcomeTile/types.cjs.map +1 -0
- package/dist/LearningOutcomeTile/types.d.cts +46 -0
- package/dist/LearningOutcomeTile/types.d.cts.map +1 -0
- package/dist/LearningOutcomeTile/types.d.ts +36 -36
- package/dist/LearningOutcomeTile/types.d.ts.map +1 -0
- package/dist/LearningOutcomeTile/types.js +10 -10
- package/dist/LearningOutcomeTile/types.js.map +1 -0
- package/dist/ListSection/index.cjs +52 -0
- package/dist/ListSection/index.cjs.map +1 -0
- package/dist/ListSection/index.d.cts +26 -0
- package/dist/ListSection/index.d.cts.map +1 -0
- package/dist/ListSection/index.d.ts +26 -20
- package/dist/ListSection/index.d.ts.map +1 -0
- package/dist/ListSection/index.js +50 -64
- package/dist/ListSection/index.js.map +1 -0
- package/dist/Loading/index.cjs +81 -0
- package/dist/Loading/index.cjs.map +1 -0
- package/dist/Loading/index.d.cts +10 -0
- package/dist/Loading/index.d.cts.map +1 -0
- package/dist/Loading/index.d.ts +9 -4
- package/dist/Loading/index.d.ts.map +1 -0
- package/dist/Loading/index.js +76 -81
- package/dist/Loading/index.js.map +1 -0
- package/dist/LoadingCurriculumCard/index.cjs +71 -0
- package/dist/LoadingCurriculumCard/index.cjs.map +1 -0
- package/dist/LoadingCurriculumCard/index.d.cts +11 -0
- package/dist/LoadingCurriculumCard/index.d.cts.map +1 -0
- package/dist/LoadingCurriculumCard/index.d.ts +9 -5
- package/dist/LoadingCurriculumCard/index.d.ts.map +1 -0
- package/dist/LoadingCurriculumCard/index.js +69 -82
- package/dist/LoadingCurriculumCard/index.js.map +1 -0
- package/dist/Logos/LogoCodecademy/index.cjs +20 -0
- package/dist/Logos/LogoCodecademy/index.cjs.map +1 -0
- package/dist/Logos/LogoCodecademy/index.d.cts +7 -0
- package/dist/Logos/LogoCodecademy/index.d.cts.map +1 -0
- package/dist/Logos/LogoCodecademy/index.d.ts +7 -2
- package/dist/Logos/LogoCodecademy/index.d.ts.map +1 -0
- package/dist/Logos/LogoCodecademy/index.js +20 -22
- package/dist/Logos/LogoCodecademy/index.js.map +1 -0
- package/dist/Logos/LogoCodecademyMini/index.cjs +17 -0
- package/dist/Logos/LogoCodecademyMini/index.cjs.map +1 -0
- package/dist/Logos/LogoCodecademyMini/index.d.cts +7 -0
- package/dist/Logos/LogoCodecademyMini/index.d.cts.map +1 -0
- package/dist/Logos/LogoCodecademyMini/index.d.ts +7 -2
- package/dist/Logos/LogoCodecademyMini/index.d.ts.map +1 -0
- package/dist/Logos/LogoCodecademyMini/index.js +17 -18
- package/dist/Logos/LogoCodecademyMini/index.js.map +1 -0
- package/dist/Logos/LogoCodecademyPro/index.cjs +23 -0
- package/dist/Logos/LogoCodecademyPro/index.cjs.map +1 -0
- package/dist/Logos/LogoCodecademyPro/index.d.cts +7 -0
- package/dist/Logos/LogoCodecademyPro/index.d.cts.map +1 -0
- package/dist/Logos/LogoCodecademyPro/index.d.ts +7 -2
- package/dist/Logos/LogoCodecademyPro/index.d.ts.map +1 -0
- package/dist/Logos/LogoCodecademyPro/index.js +23 -25
- package/dist/Logos/LogoCodecademyPro/index.js.map +1 -0
- package/dist/Logos/LogoCodecademyTeams/index.cjs +41 -0
- package/dist/Logos/LogoCodecademyTeams/index.cjs.map +1 -0
- package/dist/Logos/LogoCodecademyTeams/index.d.cts +7 -0
- package/dist/Logos/LogoCodecademyTeams/index.d.cts.map +1 -0
- package/dist/Logos/LogoCodecademyTeams/index.d.ts +7 -2
- package/dist/Logos/LogoCodecademyTeams/index.d.ts.map +1 -0
- package/dist/Logos/LogoCodecademyTeams/index.js +41 -46
- package/dist/Logos/LogoCodecademyTeams/index.js.map +1 -0
- package/dist/Logos/LogoFromSkillsoft/index.cjs +42 -0
- package/dist/Logos/LogoFromSkillsoft/index.cjs.map +1 -0
- package/dist/Logos/LogoFromSkillsoft/index.d.cts +8 -0
- package/dist/Logos/LogoFromSkillsoft/index.d.cts.map +1 -0
- package/dist/Logos/LogoFromSkillsoft/index.d.ts +8 -3
- package/dist/Logos/LogoFromSkillsoft/index.d.ts.map +1 -0
- package/dist/Logos/LogoFromSkillsoft/index.js +40 -48
- package/dist/Logos/LogoFromSkillsoft/index.js.map +1 -0
- package/dist/Logos/LogoLXStudio/index.cjs +29 -0
- package/dist/Logos/LogoLXStudio/index.cjs.map +1 -0
- package/dist/Logos/LogoLXStudio/index.d.cts +8 -0
- package/dist/Logos/LogoLXStudio/index.d.cts.map +1 -0
- package/dist/Logos/LogoLXStudio/index.d.ts +8 -3
- package/dist/Logos/LogoLXStudio/index.d.ts.map +1 -0
- package/dist/Logos/LogoLXStudio/index.js +28 -40
- package/dist/Logos/LogoLXStudio/index.js.map +1 -0
- package/dist/Logos/ProLabel/ProLabelCutout/index.cjs +32 -0
- package/dist/Logos/ProLabel/ProLabelCutout/index.cjs.map +1 -0
- package/dist/Logos/ProLabel/ProLabelCutout/index.js +30 -31
- package/dist/Logos/ProLabel/ProLabelCutout/index.js.map +1 -0
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.cjs +33 -0
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.cjs.map +1 -0
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.js +31 -31
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.js.map +1 -0
- package/dist/Logos/ProLabel/index.cjs +27 -0
- package/dist/Logos/ProLabel/index.cjs.map +1 -0
- package/dist/Logos/ProLabel/index.d.cts +19 -0
- package/dist/Logos/ProLabel/index.d.cts.map +1 -0
- package/dist/Logos/ProLabel/index.d.ts +15 -11
- package/dist/Logos/ProLabel/index.d.ts.map +1 -0
- package/dist/Logos/ProLabel/index.js +25 -27
- package/dist/Logos/ProLabel/index.js.map +1 -0
- package/dist/Logos/index.cjs +7 -0
- package/dist/Logos/index.d.ts +7 -7
- package/dist/Logos/index.js +7 -7
- package/dist/Logos/shared.cjs +23 -0
- package/dist/Logos/shared.cjs.map +1 -0
- package/dist/Logos/shared.d.cts +352 -0
- package/dist/Logos/shared.d.cts.map +1 -0
- package/dist/Logos/shared.d.ts +355 -989
- package/dist/Logos/shared.d.ts.map +1 -0
- package/dist/Logos/shared.js +19 -14
- package/dist/Logos/shared.js.map +1 -0
- package/dist/MarketingToaster/index.cjs +51 -0
- package/dist/MarketingToaster/index.cjs.map +1 -0
- package/dist/MarketingToaster/index.d.cts +12 -0
- package/dist/MarketingToaster/index.d.cts.map +1 -0
- package/dist/MarketingToaster/index.d.ts +10 -6
- package/dist/MarketingToaster/index.d.ts.map +1 -0
- package/dist/MarketingToaster/index.js +47 -66
- package/dist/MarketingToaster/index.js.map +1 -0
- package/dist/NotFoundContent/404.cjs +12 -0
- package/dist/NotFoundContent/404.cjs.map +1 -0
- package/dist/NotFoundContent/404.js +6 -0
- package/dist/NotFoundContent/404.js.map +1 -0
- package/dist/NotFoundContent/index.cjs +40 -0
- package/dist/NotFoundContent/index.cjs.map +1 -0
- package/dist/NotFoundContent/index.d.cts +12 -0
- package/dist/NotFoundContent/index.d.cts.map +1 -0
- package/dist/NotFoundContent/index.d.ts +10 -6
- package/dist/NotFoundContent/index.d.ts.map +1 -0
- package/dist/NotFoundContent/index.js +37 -55
- package/dist/NotFoundContent/index.js.map +1 -0
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.cjs +35 -0
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.cjs.map +1 -0
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.js +34 -23
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.js.map +1 -0
- package/dist/NotificationList/EmptyNotification/index.cjs +35 -0
- package/dist/NotificationList/EmptyNotification/index.cjs.map +1 -0
- package/dist/NotificationList/EmptyNotification/index.js +33 -38
- package/dist/NotificationList/EmptyNotification/index.js.map +1 -0
- package/dist/NotificationList/NotificationItem.cjs +122 -0
- package/dist/NotificationList/NotificationItem.cjs.map +1 -0
- package/dist/NotificationList/NotificationItem.d.cts +13 -0
- package/dist/NotificationList/NotificationItem.d.cts.map +1 -0
- package/dist/NotificationList/NotificationItem.d.ts +12 -7
- package/dist/NotificationList/NotificationItem.d.ts.map +1 -0
- package/dist/NotificationList/NotificationItem.js +118 -150
- package/dist/NotificationList/NotificationItem.js.map +1 -0
- package/dist/NotificationList/index.cjs +48 -0
- package/dist/NotificationList/index.cjs.map +1 -0
- package/dist/NotificationList/index.d.cts +14 -0
- package/dist/NotificationList/index.d.cts.map +1 -0
- package/dist/NotificationList/index.d.ts +13 -8
- package/dist/NotificationList/index.d.ts.map +1 -0
- package/dist/NotificationList/index.js +43 -45
- package/dist/NotificationList/index.js.map +1 -0
- package/dist/NotificationList/typings.d.cts +20 -0
- package/dist/NotificationList/typings.d.cts.map +1 -0
- package/dist/NotificationList/typings.d.ts +18 -14
- package/dist/NotificationList/typings.d.ts.map +1 -0
- package/dist/Notifications/NotificationBell.cjs +59 -0
- package/dist/Notifications/NotificationBell.cjs.map +1 -0
- package/dist/Notifications/NotificationBell.js +58 -72
- package/dist/Notifications/NotificationBell.js.map +1 -0
- package/dist/Notifications/NotificationsContents.cjs +67 -0
- package/dist/Notifications/NotificationsContents.cjs.map +1 -0
- package/dist/Notifications/NotificationsContents.js +66 -85
- package/dist/Notifications/NotificationsContents.js.map +1 -0
- package/dist/Notifications/NotificationsDropdown.cjs +23 -0
- package/dist/Notifications/NotificationsDropdown.cjs.map +1 -0
- package/dist/Notifications/NotificationsDropdown.js +22 -25
- package/dist/Notifications/NotificationsDropdown.js.map +1 -0
- package/dist/Notifications/constants.cjs +9 -0
- package/dist/Notifications/constants.cjs.map +1 -0
- package/dist/Notifications/constants.js +7 -3
- package/dist/Notifications/constants.js.map +1 -0
- package/dist/Notifications/elements.cjs +30 -0
- package/dist/Notifications/elements.cjs.map +1 -0
- package/dist/Notifications/elements.js +24 -18
- package/dist/Notifications/elements.js.map +1 -0
- package/dist/Notifications/types.d.cts +18 -0
- package/dist/Notifications/types.d.cts.map +1 -0
- package/dist/Notifications/types.d.ts +17 -22
- package/dist/Notifications/types.d.ts.map +1 -0
- package/dist/Notifications/useHeaderNotifications.cjs +39 -0
- package/dist/Notifications/useHeaderNotifications.cjs.map +1 -0
- package/dist/Notifications/useHeaderNotifications.js +38 -37
- package/dist/Notifications/useHeaderNotifications.js.map +1 -0
- package/dist/Notifications/useNotificationButtons.cjs +46 -0
- package/dist/Notifications/useNotificationButtons.cjs.map +1 -0
- package/dist/Notifications/useNotificationButtons.js +45 -56
- package/dist/Notifications/useNotificationButtons.js.map +1 -0
- package/dist/PageAlerts/PageAlerts.cjs +60 -0
- package/dist/PageAlerts/PageAlerts.cjs.map +1 -0
- package/dist/PageAlerts/PageAlerts.d.cts +17 -0
- package/dist/PageAlerts/PageAlerts.d.cts.map +1 -0
- package/dist/PageAlerts/PageAlerts.d.ts +16 -9
- package/dist/PageAlerts/PageAlerts.d.ts.map +1 -0
- package/dist/PageAlerts/PageAlerts.js +56 -74
- package/dist/PageAlerts/PageAlerts.js.map +1 -0
- package/dist/PageAlerts/PageAlertsProvider.cjs +38 -0
- package/dist/PageAlerts/PageAlertsProvider.cjs.map +1 -0
- package/dist/PageAlerts/PageAlertsProvider.d.cts +16 -0
- package/dist/PageAlerts/PageAlertsProvider.d.cts.map +1 -0
- package/dist/PageAlerts/PageAlertsProvider.d.ts +15 -10
- package/dist/PageAlerts/PageAlertsProvider.d.ts.map +1 -0
- package/dist/PageAlerts/PageAlertsProvider.js +33 -33
- package/dist/PageAlerts/PageAlertsProvider.js.map +1 -0
- package/dist/PageAlerts/index.cjs +2 -0
- package/dist/PageAlerts/index.d.ts +3 -3
- package/dist/PageAlerts/index.js +2 -3
- package/dist/PageAlerts/types.d.cts +19 -0
- package/dist/PageAlerts/types.d.cts.map +1 -0
- package/dist/PageAlerts/types.d.ts +16 -14
- package/dist/PageAlerts/types.d.ts.map +1 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.cjs +37 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.cjs.map +1 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.cts +23 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.cts.map +1 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.ts +21 -17
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.ts.map +1 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.js +35 -53
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.js.map +1 -0
- package/dist/PageLayoutWithSidebarMenu/index.cjs +1 -0
- package/dist/PageLayoutWithSidebarMenu/index.d.ts +1 -1
- package/dist/PageLayoutWithSidebarMenu/index.js +1 -1
- package/dist/PageSection/index.cjs +50 -0
- package/dist/PageSection/index.cjs.map +1 -0
- package/dist/PageSection/index.d.cts +21 -0
- package/dist/PageSection/index.d.cts.map +1 -0
- package/dist/PageSection/index.d.ts +18 -14
- package/dist/PageSection/index.d.ts.map +1 -0
- package/dist/PageSection/index.js +46 -65
- package/dist/PageSection/index.js.map +1 -0
- package/dist/PastDue/PastDueModalContents/index.cjs +18 -0
- package/dist/PastDue/PastDueModalContents/index.cjs.map +1 -0
- package/dist/PastDue/PastDueModalContents/index.d.cts +13 -0
- package/dist/PastDue/PastDueModalContents/index.d.cts.map +1 -0
- package/dist/PastDue/PastDueModalContents/index.d.ts +12 -7
- package/dist/PastDue/PastDueModalContents/index.d.ts.map +1 -0
- package/dist/PastDue/PastDueModalContents/index.js +16 -30
- package/dist/PastDue/PastDueModalContents/index.js.map +1 -0
- package/dist/PastDue/index.cjs +2 -0
- package/dist/PastDue/index.d.ts +2 -2
- package/dist/PastDue/index.js +2 -2
- package/dist/PastDue/pastDueMessages.cjs +49 -0
- package/dist/PastDue/pastDueMessages.cjs.map +1 -0
- package/dist/PastDue/pastDueMessages.d.cts +9 -0
- package/dist/PastDue/pastDueMessages.d.cts.map +1 -0
- package/dist/PastDue/pastDueMessages.d.ts +7 -4
- package/dist/PastDue/pastDueMessages.d.ts.map +1 -0
- package/dist/PastDue/pastDueMessages.js +47 -48
- package/dist/PastDue/pastDueMessages.js.map +1 -0
- package/dist/PausableImage/BaseImage/index.cjs +55 -0
- package/dist/PausableImage/BaseImage/index.cjs.map +1 -0
- package/dist/PausableImage/BaseImage/index.js +48 -53
- package/dist/PausableImage/BaseImage/index.js.map +1 -0
- package/dist/PausableImage/index.cjs +32 -0
- package/dist/PausableImage/index.cjs.map +1 -0
- package/dist/PausableImage/index.d.cts +17 -0
- package/dist/PausableImage/index.d.cts.map +1 -0
- package/dist/PausableImage/index.d.ts +15 -9
- package/dist/PausableImage/index.d.ts.map +1 -0
- package/dist/PausableImage/index.js +26 -35
- package/dist/PausableImage/index.js.map +1 -0
- package/dist/PlanCard/PlanCardBanner.cjs +29 -0
- package/dist/PlanCard/PlanCardBanner.cjs.map +1 -0
- package/dist/PlanCard/PlanCardBanner.d.cts +11 -0
- package/dist/PlanCard/PlanCardBanner.d.cts.map +1 -0
- package/dist/PlanCard/PlanCardBanner.d.ts +9 -5
- package/dist/PlanCard/PlanCardBanner.d.ts.map +1 -0
- package/dist/PlanCard/PlanCardBanner.js +25 -27
- package/dist/PlanCard/PlanCardBanner.js.map +1 -0
- package/dist/PlanCard/PlanFeature.cjs +72 -0
- package/dist/PlanCard/PlanFeature.cjs.map +1 -0
- package/dist/PlanCard/PlanFeature.js +69 -105
- package/dist/PlanCard/PlanFeature.js.map +1 -0
- package/dist/PlanCard/PopularBadge.cjs +18 -0
- package/dist/PlanCard/PopularBadge.cjs.map +1 -0
- package/dist/PlanCard/PopularBadge.js +16 -13
- package/dist/PlanCard/PopularBadge.js.map +1 -0
- package/dist/PlanCard/PricingAmount.cjs +85 -0
- package/dist/PlanCard/PricingAmount.cjs.map +1 -0
- package/dist/PlanCard/PricingAmount.js +82 -117
- package/dist/PlanCard/PricingAmount.js.map +1 -0
- package/dist/PlanCard/RecommendedBadge.cjs +29 -0
- package/dist/PlanCard/RecommendedBadge.cjs.map +1 -0
- package/dist/PlanCard/RecommendedBadge.js +27 -24
- package/dist/PlanCard/RecommendedBadge.js.map +1 -0
- package/dist/PlanCard/consts.cjs +221 -0
- package/dist/PlanCard/consts.cjs.map +1 -0
- package/dist/PlanCard/consts.js +220 -167
- package/dist/PlanCard/consts.js.map +1 -0
- package/dist/PlanCard/index.cjs +290 -0
- package/dist/PlanCard/index.cjs.map +1 -0
- package/dist/PlanCard/index.d.cts +23 -0
- package/dist/PlanCard/index.d.cts.map +1 -0
- package/dist/PlanCard/index.d.ts +22 -17
- package/dist/PlanCard/index.d.ts.map +1 -0
- package/dist/PlanCard/index.js +285 -373
- package/dist/PlanCard/index.js.map +1 -0
- package/dist/PlanCard/types.cjs +86 -0
- package/dist/PlanCard/types.cjs.map +1 -0
- package/dist/PlanCard/types.d.cts +44 -0
- package/dist/PlanCard/types.d.cts.map +1 -0
- package/dist/PlanCard/types.d.ts +42 -38
- package/dist/PlanCard/types.d.ts.map +1 -0
- package/dist/PlanCard/types.js +69 -71
- package/dist/PlanCard/types.js.map +1 -0
- package/dist/PlanCardTeams/consts.cjs +23 -0
- package/dist/PlanCardTeams/consts.cjs.map +1 -0
- package/dist/PlanCardTeams/consts.js +22 -8
- package/dist/PlanCardTeams/consts.js.map +1 -0
- package/dist/PlanCardTeams/index.cjs +112 -0
- package/dist/PlanCardTeams/index.cjs.map +1 -0
- package/dist/PlanCardTeams/index.d.cts +13 -0
- package/dist/PlanCardTeams/index.d.cts.map +1 -0
- package/dist/PlanCardTeams/index.d.ts +12 -7
- package/dist/PlanCardTeams/index.d.ts.map +1 -0
- package/dist/PlanCardTeams/index.js +108 -166
- package/dist/PlanCardTeams/index.js.map +1 -0
- package/dist/PricingSection/ConditionalColorMode.cjs +11 -0
- package/dist/PricingSection/ConditionalColorMode.cjs.map +1 -0
- package/dist/PricingSection/ConditionalColorMode.js +10 -13
- package/dist/PricingSection/ConditionalColorMode.js.map +1 -0
- package/dist/PricingSection/PricingCard/PricingAmount.cjs +82 -0
- package/dist/PricingSection/PricingCard/PricingAmount.cjs.map +1 -0
- package/dist/PricingSection/PricingCard/PricingAmount.js +79 -115
- package/dist/PricingSection/PricingCard/PricingAmount.js.map +1 -0
- package/dist/PricingSection/PricingCard/RecommendedBadge.cjs +28 -0
- package/dist/PricingSection/PricingCard/RecommendedBadge.cjs.map +1 -0
- package/dist/PricingSection/PricingCard/RecommendedBadge.js +27 -24
- package/dist/PricingSection/PricingCard/RecommendedBadge.js.map +1 -0
- package/dist/PricingSection/PricingCard/index.cjs +149 -0
- package/dist/PricingSection/PricingCard/index.cjs.map +1 -0
- package/dist/PricingSection/PricingCard/index.js +142 -197
- package/dist/PricingSection/PricingCard/index.js.map +1 -0
- package/dist/PricingSection/PricingCard/types.cjs +68 -0
- package/dist/PricingSection/PricingCard/types.cjs.map +1 -0
- package/dist/PricingSection/PricingCard/types.d.cts +27 -0
- package/dist/PricingSection/PricingCard/types.d.cts.map +1 -0
- package/dist/PricingSection/PricingCard/types.d.ts +25 -38
- package/dist/PricingSection/PricingCard/types.d.ts.map +1 -0
- package/dist/PricingSection/PricingCard/types.js +65 -61
- package/dist/PricingSection/PricingCard/types.js.map +1 -0
- package/dist/PricingSection/ProductCTA.cjs +96 -0
- package/dist/PricingSection/ProductCTA.cjs.map +1 -0
- package/dist/PricingSection/ProductCTA.js +93 -133
- package/dist/PricingSection/ProductCTA.js.map +1 -0
- package/dist/PricingSection/Products.cjs +90 -0
- package/dist/PricingSection/Products.cjs.map +1 -0
- package/dist/PricingSection/Products.js +89 -92
- package/dist/PricingSection/Products.js.map +1 -0
- package/dist/PricingSection/config.cjs +34 -0
- package/dist/PricingSection/config.cjs.map +1 -0
- package/dist/PricingSection/config.js +30 -36
- package/dist/PricingSection/config.js.map +1 -0
- package/dist/PricingSection/index.cjs +32 -0
- package/dist/PricingSection/index.cjs.map +1 -0
- package/dist/PricingSection/index.d.cts +23 -0
- package/dist/PricingSection/index.d.cts.map +1 -0
- package/dist/PricingSection/index.d.ts +21 -14
- package/dist/PricingSection/index.d.ts.map +1 -0
- package/dist/PricingSection/index.js +31 -41
- package/dist/PricingSection/index.js.map +1 -0
- package/dist/PricingSection/types.cjs +20 -0
- package/dist/PricingSection/types.cjs.map +1 -0
- package/dist/PricingSection/types.d.cts +18 -0
- package/dist/PricingSection/types.d.cts.map +1 -0
- package/dist/PricingSection/types.d.ts +16 -29
- package/dist/PricingSection/types.d.ts.map +1 -0
- package/dist/PricingSection/types.js +14 -9
- package/dist/PricingSection/types.js.map +1 -0
- package/dist/ProLogoAlt/index.cjs +26 -0
- package/dist/ProLogoAlt/index.cjs.map +1 -0
- package/dist/ProLogoAlt/index.d.cts +14 -0
- package/dist/ProLogoAlt/index.d.cts.map +1 -0
- package/dist/ProLogoAlt/index.d.ts +13 -8
- package/dist/ProLogoAlt/index.d.ts.map +1 -0
- package/dist/ProLogoAlt/index.js +24 -26
- package/dist/ProLogoAlt/index.js.map +1 -0
- package/dist/ProductFeatureShowcase/index.cjs +85 -0
- package/dist/ProductFeatureShowcase/index.cjs.map +1 -0
- package/dist/ProductFeatureShowcase/index.d.cts +20 -0
- package/dist/ProductFeatureShowcase/index.d.cts.map +1 -0
- package/dist/ProductFeatureShowcase/index.d.ts +19 -15
- package/dist/ProductFeatureShowcase/index.d.ts.map +1 -0
- package/dist/ProductFeatureShowcase/index.js +83 -120
- package/dist/ProductFeatureShowcase/index.js.map +1 -0
- package/dist/QuizScore/index.cjs +67 -0
- package/dist/QuizScore/index.cjs.map +1 -0
- package/dist/QuizScore/index.js +65 -84
- package/dist/QuizScore/index.js.map +1 -0
- package/dist/RatingsBar/index.cjs +36 -0
- package/dist/RatingsBar/index.cjs.map +1 -0
- package/dist/RatingsBar/index.d.cts +17 -0
- package/dist/RatingsBar/index.d.cts.map +1 -0
- package/dist/RatingsBar/index.d.ts +16 -11
- package/dist/RatingsBar/index.d.ts.map +1 -0
- package/dist/RatingsBar/index.js +33 -34
- package/dist/RatingsBar/index.js.map +1 -0
- package/dist/Recurly/context/NoProvider.cjs +12 -0
- package/dist/Recurly/context/NoProvider.cjs.map +1 -0
- package/dist/Recurly/context/NoProvider.js +10 -6
- package/dist/Recurly/context/NoProvider.js.map +1 -0
- package/dist/Recurly/context/elements/index.cjs +40 -0
- package/dist/Recurly/context/elements/index.cjs.map +1 -0
- package/dist/Recurly/context/elements/index.d.cts +15 -0
- package/dist/Recurly/context/elements/index.d.cts.map +1 -0
- package/dist/Recurly/context/elements/index.d.ts +10 -21
- package/dist/Recurly/context/elements/index.d.ts.map +1 -0
- package/dist/Recurly/context/elements/index.js +34 -42
- package/dist/Recurly/context/elements/index.js.map +1 -0
- package/dist/Recurly/context/index.cjs +2 -0
- package/dist/Recurly/context/index.d.ts +2 -2
- package/dist/Recurly/context/index.js +2 -2
- package/dist/Recurly/context/recurly/index.cjs +44 -0
- package/dist/Recurly/context/recurly/index.cjs.map +1 -0
- package/dist/Recurly/context/recurly/index.d.cts +39 -0
- package/dist/Recurly/context/recurly/index.d.cts.map +1 -0
- package/dist/Recurly/context/recurly/index.d.ts +16 -7
- package/dist/Recurly/context/recurly/index.d.ts.map +1 -0
- package/dist/Recurly/context/recurly/index.js +39 -47
- package/dist/Recurly/context/recurly/index.js.map +1 -0
- package/dist/Recurly/context/recurly/loadRecurly.cjs +22 -0
- package/dist/Recurly/context/recurly/loadRecurly.cjs.map +1 -0
- package/dist/Recurly/context/recurly/loadRecurly.d.cts +10 -0
- package/dist/Recurly/context/recurly/loadRecurly.d.cts.map +1 -0
- package/dist/Recurly/context/recurly/loadRecurly.d.ts +9 -5
- package/dist/Recurly/context/recurly/loadRecurly.d.ts.map +1 -0
- package/dist/Recurly/context/recurly/loadRecurly.js +22 -22
- package/dist/Recurly/context/recurly/loadRecurly.js.map +1 -0
- package/dist/Recurly/context/recurly/w.cjs +7 -0
- package/dist/Recurly/context/recurly/w.cjs.map +1 -0
- package/dist/Recurly/context/recurly/w.js +5 -3
- package/dist/Recurly/context/recurly/w.js.map +1 -0
- package/dist/Recurly/fields/RecurlyField.cjs +40 -0
- package/dist/Recurly/fields/RecurlyField.cjs.map +1 -0
- package/dist/Recurly/fields/RecurlyField.d.cts +19 -0
- package/dist/Recurly/fields/RecurlyField.d.cts.map +1 -0
- package/dist/Recurly/fields/RecurlyField.d.ts +14 -4
- package/dist/Recurly/fields/RecurlyField.d.ts.map +1 -0
- package/dist/Recurly/fields/RecurlyField.js +36 -55
- package/dist/Recurly/fields/RecurlyField.js.map +1 -0
- package/dist/Recurly/fields/elements.cjs +64 -0
- package/dist/Recurly/fields/elements.cjs.map +1 -0
- package/dist/Recurly/fields/elements.d.cts +23 -0
- package/dist/Recurly/fields/elements.d.cts.map +1 -0
- package/dist/Recurly/fields/elements.d.ts +21 -15
- package/dist/Recurly/fields/elements.d.ts.map +1 -0
- package/dist/Recurly/fields/elements.js +50 -96
- package/dist/Recurly/fields/elements.js.map +1 -0
- package/dist/Recurly/fields/index.cjs +2 -0
- package/dist/Recurly/fields/index.d.ts +2 -2
- package/dist/Recurly/fields/index.js +2 -2
- package/dist/Recurly/index.cjs +6 -0
- package/dist/Recurly/index.d.ts +6 -2
- package/dist/Recurly/index.js +6 -2
- package/dist/ResourceCard/index.cjs +58 -0
- package/dist/ResourceCard/index.cjs.map +1 -0
- package/dist/ResourceCard/index.d.cts +20 -0
- package/dist/ResourceCard/index.d.cts.map +1 -0
- package/dist/ResourceCard/index.d.ts +18 -13
- package/dist/ResourceCard/index.d.ts.map +1 -0
- package/dist/ResourceCard/index.js +51 -59
- package/dist/ResourceCard/index.js.map +1 -0
- package/dist/ScoreSummary/SubScores.cjs +109 -0
- package/dist/ScoreSummary/SubScores.cjs.map +1 -0
- package/dist/ScoreSummary/SubScores.d.cts +41 -0
- package/dist/ScoreSummary/SubScores.d.cts.map +1 -0
- package/dist/ScoreSummary/SubScores.d.ts +39 -26
- package/dist/ScoreSummary/SubScores.d.ts.map +1 -0
- package/dist/ScoreSummary/SubScores.js +106 -164
- package/dist/ScoreSummary/SubScores.js.map +1 -0
- package/dist/ScoreSummary/helpers.cjs +21 -0
- package/dist/ScoreSummary/helpers.cjs.map +1 -0
- package/dist/ScoreSummary/helpers.js +18 -19
- package/dist/ScoreSummary/helpers.js.map +1 -0
- package/dist/ScoreSummary/index.cjs +89 -0
- package/dist/ScoreSummary/index.cjs.map +1 -0
- package/dist/ScoreSummary/index.d.cts +26 -0
- package/dist/ScoreSummary/index.d.cts.map +1 -0
- package/dist/ScoreSummary/index.d.ts +25 -20
- package/dist/ScoreSummary/index.d.ts.map +1 -0
- package/dist/ScoreSummary/index.js +87 -108
- package/dist/ScoreSummary/index.js.map +1 -0
- package/dist/ScoreSummary/types.d.cts +314 -0
- package/dist/ScoreSummary/types.d.cts.map +1 -0
- package/dist/ScoreSummary/types.d.ts +309 -305
- package/dist/ScoreSummary/types.d.ts.map +1 -0
- package/dist/SkillPathCard/index.cjs +33 -0
- package/dist/SkillPathCard/index.cjs.map +1 -0
- package/dist/SkillPathCard/index.d.cts +26 -0
- package/dist/SkillPathCard/index.d.cts.map +1 -0
- package/dist/SkillPathCard/index.d.ts +25 -19
- package/dist/SkillPathCard/index.d.ts.map +1 -0
- package/dist/SkillPathCard/index.js +32 -46
- package/dist/SkillPathCard/index.js.map +1 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.cjs +42 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.cjs.map +1 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.d.cts +10 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.d.cts.map +1 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.d.ts +10 -12
- package/dist/SocialMediaSharing/SocialShareIconLink.d.ts.map +1 -0
- package/dist/SocialMediaSharing/SocialShareIconLink.js +38 -48
- package/dist/SocialMediaSharing/SocialShareIconLink.js.map +1 -0
- package/dist/SocialMediaSharing/index.cjs +84 -0
- package/dist/SocialMediaSharing/index.cjs.map +1 -0
- package/dist/SocialMediaSharing/index.d.cts +65 -0
- package/dist/SocialMediaSharing/index.d.cts.map +1 -0
- package/dist/SocialMediaSharing/index.d.ts +60 -44
- package/dist/SocialMediaSharing/index.d.ts.map +1 -0
- package/dist/SocialMediaSharing/index.js +78 -114
- package/dist/SocialMediaSharing/index.js.map +1 -0
- package/dist/SocialMediaSharingDropdown/index.cjs +94 -0
- package/dist/SocialMediaSharingDropdown/index.cjs.map +1 -0
- package/dist/SocialMediaSharingDropdown/index.d.cts +20 -0
- package/dist/SocialMediaSharingDropdown/index.d.cts.map +1 -0
- package/dist/SocialMediaSharingDropdown/index.d.ts +19 -14
- package/dist/SocialMediaSharingDropdown/index.d.ts.map +1 -0
- package/dist/SocialMediaSharingDropdown/index.js +91 -110
- package/dist/SocialMediaSharingDropdown/index.js.map +1 -0
- package/dist/Testimonial/index.cjs +131 -0
- package/dist/Testimonial/index.cjs.map +1 -0
- package/dist/Testimonial/index.d.cts +54 -0
- package/dist/Testimonial/index.d.cts.map +1 -0
- package/dist/Testimonial/index.d.ts +51 -42
- package/dist/Testimonial/index.d.ts.map +1 -0
- package/dist/Testimonial/index.js +117 -151
- package/dist/Testimonial/index.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.cjs +43 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/assets/navyQuotes.cjs +12 -0
- package/dist/assets/navyQuotes.cjs.map +1 -0
- package/dist/assets/navyQuotes.js +6 -0
- package/dist/assets/navyQuotes.js.map +1 -0
- package/dist/index.cjs +319 -0
- package/dist/index.d.cts +114 -0
- package/dist/index.d.ts +124 -89
- package/dist/index.js +118 -86
- package/dist/lib/breakpointHooks/index.cjs +61 -0
- package/dist/lib/breakpointHooks/index.cjs.map +1 -0
- package/dist/lib/breakpointHooks/index.d.cts +47 -0
- package/dist/lib/breakpointHooks/index.d.cts.map +1 -0
- package/dist/lib/breakpointHooks/index.d.ts +11 -7
- package/dist/lib/breakpointHooks/index.d.ts.map +1 -0
- package/dist/lib/breakpointHooks/index.js +48 -53
- package/dist/lib/breakpointHooks/index.js.map +1 -0
- package/dist/lib/catalogList/index.cjs +30 -0
- package/dist/lib/catalogList/index.cjs.map +1 -0
- package/dist/lib/catalogList/index.js +30 -61
- package/dist/lib/catalogList/index.js.map +1 -0
- package/dist/lib/resourcesList/index.cjs +73 -0
- package/dist/lib/resourcesList/index.cjs.map +1 -0
- package/dist/lib/resourcesList/index.js +71 -237
- package/dist/lib/resourcesList/index.js.map +1 -0
- package/dist/remoteAssets/components.cjs +7 -0
- package/dist/remoteAssets/components.cjs.map +1 -0
- package/dist/remoteAssets/components.js +6 -1
- package/dist/remoteAssets/components.js.map +1 -0
- package/package.json +18 -6
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.d.ts +0 -13
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +0 -8
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +0 -17
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +0 -11
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.d.ts +0 -13
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +0 -4
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.d.ts +0 -42
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.d.ts +0 -8
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.d.ts +0 -14
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.d.ts +0 -14
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.d.ts +0 -12
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.d.ts +0 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +0 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +0 -18
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.d.ts +0 -7
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.d.ts +0 -6
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.d.ts +0 -11
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.d.ts +0 -20
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.d.ts +0 -9
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.d.ts +0 -88
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +0 -24
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.d.ts +0 -6
- package/dist/AppHeader/Search/DefaultResults.d.ts +0 -10
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.d.ts +0 -7
- package/dist/AppHeader/Search/SearchButton.d.ts +0 -2
- package/dist/AppHeader/Search/SearchPane.d.ts +0 -6
- package/dist/AppHeader/Search/SearchTrackingProvider/index.d.ts +0 -17
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.d.ts +0 -18
- package/dist/AppHeader/Search/SearchWorker/src.d.ts +0 -1
- package/dist/AppHeader/Search/SearchWorker/worker.d.ts +0 -2
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.d.ts +0 -5
- package/dist/AppHeader/Search/safelyRedirect.d.ts +0 -5
- package/dist/AppHeader/Search/types.js +0 -1
- package/dist/AppHeader/Search/useHeaderSearch.d.ts +0 -6
- package/dist/AppHeader/shared/mockAppHeaderItems.js +0 -10
- package/dist/AppHeader/shared/utils.d.ts +0 -14
- package/dist/AppHeader/utils/types.d.ts +0 -8
- package/dist/AppHeader/utils/types.js +0 -1
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.d.ts +0 -13
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.d.ts +0 -7
- package/dist/Avatar/Avatar.stories.js +0 -15
- package/dist/Carousel/elements.d.ts +0 -27
- package/dist/CertificationPathCard/__tests__/__fixtures__/index.d.ts +0 -2
- package/dist/CommunityEventCard/EventTypeIcon.d.ts +0 -11
- package/dist/ContentGroupBaseCard/shared.d.ts +0 -7
- package/dist/CourseCard/__tests__/__fixtures__/index.d.ts +0 -3
- package/dist/CurriculumCard/Footer/index.d.ts +0 -10
- package/dist/CurriculumCard/Image/index.d.ts +0 -9
- package/dist/CurriculumCard/Subtitle/helpers.d.ts +0 -1
- package/dist/DropdownButton/useDynamicPopoverPosition.d.ts +0 -14
- package/dist/DropdownButton/useDynamicPopoverPosition.test.js +0 -85
- package/dist/GlobalFooter/FooterHeading.d.ts +0 -9
- package/dist/GlobalFooter/FooterLegal/LegalLinks.d.ts +0 -6
- package/dist/GlobalFooter/FooterLegal/MadeIn.d.ts +0 -5
- package/dist/GlobalFooter/FooterLegal/index.d.ts +0 -7
- package/dist/GlobalFooter/FooterLinks.d.ts +0 -18
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.d.ts +0 -7
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.d.ts +0 -11
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.d.ts +0 -7
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.d.ts +0 -2
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.d.ts +0 -4
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.d.ts +0 -3
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.js +0 -1
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.d.ts +0 -2
- package/dist/GlobalFooter/FooterNavLinks/index.d.ts +0 -4
- package/dist/GlobalFooter/FooterSubHeading.d.ts +0 -9
- package/dist/GlobalFooter/FooterSubHeading.js +0 -22
- package/dist/GlobalFooter/types.js +0 -1
- package/dist/GlobalHeader/GlobalHeaderItems.d.ts +0 -28
- package/dist/GlobalHeader/GlobalHeaderVariants.d.ts +0 -83
- package/dist/GlobalHeader/context.d.ts +0 -34
- package/dist/GlobalHeader/types.js +0 -1
- package/dist/GlobalHeader/urlHelpers.d.ts +0 -2
- package/dist/Grid/GridCollapse.test.js +0 -96
- package/dist/HeaderHeightArea/index.d.ts +0 -9
- package/dist/HeaderHeightArea/useIsInHeaderRegion.d.ts +0 -1
- package/dist/InstructorCard/__tests__/__fixtures__/index.d.ts +0 -2
- package/dist/LandingPage/types.js +0 -1
- package/dist/LayoutMenu/LayoutMenuSection.d.ts +0 -16
- package/dist/LayoutMenuVariant/LayoutMenuSection.d.ts +0 -10
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.d.ts +0 -8
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.d.ts +0 -7
- package/dist/LearningOutcomePopover/index.d.ts +0 -10
- package/dist/LearningOutcomeTile/Tile.d.ts +0 -7
- package/dist/Logos/ProLabel/ProLabelCutout/index.d.ts +0 -8
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.d.ts +0 -7
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.d.ts +0 -7
- package/dist/NotificationList/EmptyNotification/index.d.ts +0 -1
- package/dist/NotificationList/typings.js +0 -1
- package/dist/Notifications/NotificationBell.d.ts +0 -10
- package/dist/Notifications/NotificationsContents.d.ts +0 -3
- package/dist/Notifications/NotificationsDropdown.d.ts +0 -2
- package/dist/Notifications/__fixtures__/NotificationTestComponent.d.ts +0 -2
- package/dist/Notifications/__fixtures__/NotificationTestComponent.js +0 -12
- package/dist/Notifications/__fixtures__/stubs.d.ts +0 -2
- package/dist/Notifications/__fixtures__/stubs.js +0 -8
- package/dist/Notifications/constants.d.ts +0 -4
- package/dist/Notifications/elements.d.ts +0 -12
- package/dist/Notifications/types.js +0 -1
- package/dist/Notifications/useHeaderNotifications.d.ts +0 -10
- package/dist/Notifications/useNotificationButtons.d.ts +0 -9
- package/dist/PageAlerts/types.js +0 -1
- package/dist/PausableImage/BaseImage/index.d.ts +0 -15
- package/dist/PlanCard/PlanFeature.d.ts +0 -10
- package/dist/PlanCard/PopularBadge.d.ts +0 -3
- package/dist/PlanCard/PricingAmount.d.ts +0 -14
- package/dist/PlanCard/RecommendedBadge.d.ts +0 -3
- package/dist/PlanCard/consts.d.ts +0 -15
- package/dist/PlanCardTeams/consts.d.ts +0 -9
- package/dist/PricingSection/ConditionalColorMode.d.ts +0 -4
- package/dist/PricingSection/PricingCard/PricingAmount.d.ts +0 -14
- package/dist/PricingSection/PricingCard/RecommendedBadge.d.ts +0 -3
- package/dist/PricingSection/PricingCard/consts.d.ts +0 -14
- package/dist/PricingSection/PricingCard/consts.js +0 -96
- package/dist/PricingSection/PricingCard/index.d.ts +0 -16
- package/dist/PricingSection/ProductCTA.d.ts +0 -12
- package/dist/PricingSection/Products.d.ts +0 -15
- package/dist/PricingSection/config.d.ts +0 -8
- package/dist/QuizScore/index.d.ts +0 -12
- package/dist/Recurly/context/NoProvider.d.ts +0 -8
- package/dist/Recurly/context/recurly/w.d.ts +0 -14
- package/dist/Recurly/fields/elements.test.js +0 -79
- package/dist/ScoreSummary/helpers.d.ts +0 -11
- package/dist/ScoreSummary/types.js +0 -1
- package/dist/SkillPathCard/__tests__/__fixtures__/index.d.ts +0 -2
- package/dist/SocialMediaSharingDropdown/__tests__/SocialMediaSharingDropdown-test.d.ts +0 -1
- package/dist/assets/darkQuotes.svg +0 -1
- package/dist/assets/lightQuotes.svg +0 -1
- package/dist/assets/orange_squiggle.svg +0 -1
- package/dist/lib/catalogList/index.d.ts +0 -3
- package/dist/lib/resourcesList/index.d.ts +0 -5
- package/dist/png.d.ts +0 -4
- package/dist/react-freezeframe.d.ts +0 -1
- package/dist/remoteAssets/components.d.ts +0 -1
- package/dist/stories/Atoms/Avatar.stories.js +0 -16
- package/dist/stories/Atoms/BetaSticker.stories.js +0 -21
- package/dist/stories/Atoms/Logos/LogoCodecademy.stories.js +0 -8
- package/dist/stories/Atoms/Logos/LogoCodecademyMini.stories.js +0 -8
- package/dist/stories/Atoms/Logos/LogoCodecademyPro.stories.js +0 -8
- package/dist/stories/Atoms/Logos/LogoCodecademyTeams.stories.js +0 -8
- package/dist/stories/Atoms/Logos/LogoFromSkillsoft.stories.js +0 -9
- package/dist/stories/Atoms/Logos/LogoLXStudio.stories.js +0 -11
- package/dist/stories/Atoms/Logos/ProLabel.stories.js +0 -29
- package/dist/stories/Atoms/RatingsBar.stories.js +0 -16
- package/dist/stories/Atoms/Subgrid.stories.js +0 -87
- package/dist/stories/Molecules/AppBar.stories.js +0 -31
- package/dist/stories/Molecules/AppHeader/AppHeader.stories.js +0 -84
- package/dist/stories/Molecules/AppHeader/AppHeaderDropdown.stories.js +0 -67
- package/dist/stories/Molecules/AppHeader/AppHeaderLink.stories.js +0 -50
- package/dist/stories/Molecules/AppHeader/AppHeaderLogo.stories.js +0 -43
- package/dist/stories/Molecules/AppHeader/AppHeaderMainMenuMobile.stories.js +0 -34
- package/dist/stories/Molecules/AppHeader/AppHeaderMobile.stories.js +0 -40
- package/dist/stories/Molecules/AppHeader/AppHeaderSubMenuMobile.stories.js +0 -25
- package/dist/stories/Molecules/AppHeader/LXStudioHeader.stories.js +0 -176
- package/dist/stories/Molecules/AppHeader/LXStudioMobileHeader.stories.js +0 -84
- package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.d.ts +0 -5
- package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.js +0 -90
- package/dist/stories/Molecules/AvatarChooser.stories.js +0 -22
- package/dist/stories/Molecules/BackToTopAnchor.stories.js +0 -51
- package/dist/stories/Molecules/Banner.stories.js +0 -112
- package/dist/stories/Molecules/Carousel.stories.js +0 -47
- package/dist/stories/Molecules/ContentGroupBaseCard.stories.js +0 -175
- package/dist/stories/Molecules/CurriculumCard.stories.js +0 -201
- package/dist/stories/Molecules/CurriculumCards/CareerPathCard.stories.js +0 -94
- package/dist/stories/Molecules/CurriculumCards/CertificationPathCard.stories.js +0 -67
- package/dist/stories/Molecules/CurriculumCards/CourseCard.stories.js +0 -85
- package/dist/stories/Molecules/CurriculumCards/LoadingCurriculumCard.stories.js +0 -20
- package/dist/stories/Molecules/CurriculumCards/SkillPathCard.stories.js +0 -92
- package/dist/stories/Molecules/DropdownButton.stories.js +0 -207
- package/dist/stories/Molecules/EmptySection.stories.js +0 -167
- package/dist/stories/Molecules/EnhancedBanner.stories.js +0 -104
- package/dist/stories/Molecules/ErrorContents.stories.js +0 -19
- package/dist/stories/Molecules/GridCollapse.stories.js +0 -42
- package/dist/stories/Molecules/HorizontalScrollMenu.examples.d.ts +0 -1
- package/dist/stories/Molecules/HorizontalScrollMenu.examples.js +0 -67
- package/dist/stories/Molecules/HorizontalScrollMenu.stories.js +0 -11
- package/dist/stories/Molecules/HubCard.stories.js +0 -27
- package/dist/stories/Molecules/InfoCard.stories.js +0 -30
- package/dist/stories/Molecules/InstructorCard.stories.js +0 -125
- package/dist/stories/Molecules/LearningOutcomeAssessmentScores.stories.js +0 -23
- package/dist/stories/Molecules/LearningOutcomeCard.stories.js +0 -189
- package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +0 -62
- package/dist/stories/Molecules/LearningOutcomeLevelBadge.stories.js +0 -20
- package/dist/stories/Molecules/LearningOutcomeLowAssessmentBadge.stories.js +0 -10
- package/dist/stories/Molecules/LearningOutcomePopover.stories.js +0 -39
- package/dist/stories/Molecules/LearningOutcomeTile.stories.js +0 -276
- package/dist/stories/Molecules/ListSection.stories.js +0 -97
- package/dist/stories/Molecules/Loading.stories.js +0 -10
- package/dist/stories/Molecules/NotificationList.stories.js +0 -99
- package/dist/stories/Molecules/PageSection.stories.js +0 -67
- package/dist/stories/Molecules/PastDueModalContents.stories.js +0 -62
- package/dist/stories/Molecules/PausableImage.stories.js +0 -16
- package/dist/stories/Molecules/Recurly.stories.js +0 -56
- package/dist/stories/Molecules/ResourceCard.stories.js +0 -18
- package/dist/stories/Molecules/SocialMediaSharing.stories.js +0 -20
- package/dist/stories/Molecules/SocialMediaSharingDropdown.stories.js +0 -20
- package/dist/stories/Molecules/Testimonial.stories.js +0 -59
- package/dist/stories/Organisms/GlobalFooter.stories.js +0 -28
- package/dist/stories/Organisms/GlobalHeader/About.stories.js +0 -133
- package/dist/stories/Organisms/GlobalHeader/Anon.stories.js +0 -71
- package/dist/stories/Organisms/GlobalHeader/Bootcamp.stories.js +0 -29
- package/dist/stories/Organisms/GlobalHeader/Enterprise.stories.js +0 -105
- package/dist/stories/Organisms/GlobalHeader/Free.stories.js +0 -131
- package/dist/stories/Organisms/GlobalHeader/Pro.stories.js +0 -197
- package/dist/stories/Organisms/GlobalHeader/Simple.stories.js +0 -28
- package/dist/stories/Organisms/GlobalPage.stories.js +0 -138
- package/dist/stories/Organisms/LayoutMenu.stories.js +0 -239
- package/dist/stories/Organisms/LayoutMenuVariant.stories.js +0 -222
- package/dist/stories/Organisms/PageAlerts.example.d.ts +0 -2
- package/dist/stories/Organisms/PageAlerts.example.js +0 -42
- package/dist/stories/Organisms/PageAlerts.stories.js +0 -15
- package/dist/stories/Organisms/PageLayoutWithSidebarMenu.stories.js +0 -34
- package/dist/stories/Organisms/PlanCard.stories.js +0 -98
- package/dist/stories/Organisms/PlanCardTeams.stories.js +0 -27
- package/dist/stories/Organisms/ScoreSummary.stories.js +0 -295
- package/dist/svg.d.ts +0 -7
- package/dist/theme.d.ts +0 -5
- /package/dist/{NotFoundContent/404.svg → assets/404-D8snV7Lj.svg} +0 -0
- /package/dist/{GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.svg → assets/download-on-the-app-store-87XvXmEX.svg} +0 -0
- /package/dist/{GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.png → assets/get-it-on-google-play-cFfTb9QO.png} +0 -0
- /package/dist/assets/{navyQuotes.svg → navyQuotes-Cfst7AwB.svg} +0 -0
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
+
const require_keyboardNav = require('../shared/keyboardNav.cjs');
|
|
3
|
+
require('../shared/index.cjs');
|
|
4
|
+
const require_index$1 = require('./SearchTrackingProvider/index.cjs');
|
|
5
|
+
const require_context = require('../../GlobalHeader/context.cjs');
|
|
6
|
+
const require_MarketingBanner = require('../AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs');
|
|
7
|
+
const require_consts = require('./consts.cjs');
|
|
8
|
+
const require_DefaultResults = require('./DefaultResults.cjs');
|
|
9
|
+
const require_useUrlChangeDetection = require('./hooks/useUrlChangeDetection.cjs');
|
|
10
|
+
const require_QuizAndHelpCenterLinks = require('./QuizAndHelpCenterLinks.cjs');
|
|
11
|
+
const require_safelyRedirect = require('./safelyRedirect.cjs');
|
|
12
|
+
const require_index$2 = require('./SearchWorker/index.cjs');
|
|
13
|
+
let _codecademy_gamut = require("@codecademy/gamut");
|
|
14
|
+
let _codecademy_gamut_styles = require("@codecademy/gamut-styles");
|
|
15
|
+
let _emotion_styled = require("@emotion/styled");
|
|
16
|
+
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
17
|
+
let react = require("react");
|
|
18
|
+
react = require_runtime.__toESM(react);
|
|
19
|
+
let _codecademy_gamut_icons = require("@codecademy/gamut-icons");
|
|
20
|
+
let _emotion_react = require("@emotion/react");
|
|
21
|
+
|
|
22
|
+
//#region src/AppHeader/Search/SearchPane.tsx
|
|
23
|
+
const Form = _codecademy_gamut.Box.withComponent("form");
|
|
24
|
+
const Input = _codecademy_gamut.Box.withComponent("input");
|
|
25
|
+
const QueryContainer = /* @__PURE__ */ (0, _emotion_styled.default)(_codecademy_gamut.ContentContainer, {
|
|
26
|
+
target: "ebeevrx0",
|
|
27
|
+
label: "brand-QueryContainer"
|
|
28
|
+
})(({ $compact }) => (0, _codecademy_gamut_styles.css)({
|
|
29
|
+
display: "flex",
|
|
30
|
+
width: "100%",
|
|
31
|
+
pt: 16,
|
|
32
|
+
pb: $compact ? {
|
|
33
|
+
_: 0,
|
|
34
|
+
md: 4
|
|
35
|
+
} : {
|
|
36
|
+
_: 0,
|
|
37
|
+
md: 24
|
|
38
|
+
},
|
|
39
|
+
px: { _: 24 }
|
|
40
|
+
}), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q3VCIn0= */");
|
|
41
|
+
const SuggestionContainer = /* @__PURE__ */ (0, _emotion_styled.default)(_codecademy_gamut.ContentContainer, {
|
|
42
|
+
target: "ebeevrx1",
|
|
43
|
+
label: "brand-SuggestionContainer"
|
|
44
|
+
})(({ $compact }) => (0, _codecademy_gamut_styles.css)({
|
|
45
|
+
pt: $compact ? 4 : 16,
|
|
46
|
+
pb: {
|
|
47
|
+
_: 0,
|
|
48
|
+
md: 24
|
|
49
|
+
},
|
|
50
|
+
px: { _: 24 }
|
|
51
|
+
}), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRDRCIn0= */");
|
|
52
|
+
const StyledInput = /* @__PURE__ */ (0, _emotion_styled.default)(Input, {
|
|
53
|
+
target: "ebeevrx2",
|
|
54
|
+
label: "brand-StyledInput"
|
|
55
|
+
})((0, _codecademy_gamut_styles.css)({
|
|
56
|
+
outline: `none`,
|
|
57
|
+
"&::placeholder": { textColor: _codecademy_gamut_styles.theme.colors["text-secondary"] }
|
|
58
|
+
}), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRG9CIn0= */");
|
|
59
|
+
const InlineResultLi = /* @__PURE__ */ (0, _emotion_styled.default)(_codecademy_gamut.MenuItem, {
|
|
60
|
+
target: "ebeevrx3",
|
|
61
|
+
label: "brand-InlineResultLi"
|
|
62
|
+
})((0, _codecademy_gamut_styles.css)({
|
|
63
|
+
pl: 0,
|
|
64
|
+
py: 8,
|
|
65
|
+
fontSize: 16,
|
|
66
|
+
"&:focus-visible:after": { left: -4 }
|
|
67
|
+
}), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvRXVCIn0= */");
|
|
68
|
+
const InlineLoaderLi = /* @__PURE__ */ (0, _emotion_styled.default)("li", {
|
|
69
|
+
target: "ebeevrx4",
|
|
70
|
+
label: "brand-InlineLoaderLi"
|
|
71
|
+
})((0, _codecademy_gamut_styles.css)({
|
|
72
|
+
listStyleType: "none",
|
|
73
|
+
display: "flex",
|
|
74
|
+
gap: 12,
|
|
75
|
+
alignItems: "center"
|
|
76
|
+
}), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRXVCIn0= */");
|
|
77
|
+
const SemiboldSearchIcon = /* @__PURE__ */ (0, _emotion_styled.default)(_codecademy_gamut_icons.SearchIcon, {
|
|
78
|
+
target: "ebeevrx5",
|
|
79
|
+
label: "brand-SemiboldSearchIcon"
|
|
80
|
+
})("overflow:visible !important;circle,path{stroke-width:2px;}rect{transform:translate(-2px,-2px);height:calc(100% + 4px);width:calc(100% + 4px);}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RmtDIn0= */");
|
|
81
|
+
const EllipsisBox = /* @__PURE__ */ (0, _emotion_styled.default)(_codecademy_gamut.Box, {
|
|
82
|
+
target: "ebeevrx6",
|
|
83
|
+
label: "brand-EllipsisBox"
|
|
84
|
+
})("text-overflow:ellipsis;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxR29CIn0= */");
|
|
85
|
+
const HighlightedText = ({ suggestion: { title, segments } }) => {
|
|
86
|
+
const highlightColor = (0, _codecademy_gamut_styles.useCurrentMode)() === "dark" ? "hyper" : "yellow";
|
|
87
|
+
return /* @__PURE__ */ react.createElement(_codecademy_gamut.FlexBox, null, /* @__PURE__ */ react.createElement(EllipsisBox, {
|
|
88
|
+
maxWidth: "calc(100vw - 128px)",
|
|
89
|
+
whiteSpace: "pre",
|
|
90
|
+
"aria-hidden": true,
|
|
91
|
+
overflow: "hidden"
|
|
92
|
+
}, segments.map((segment, i) => /* @__PURE__ */ react.createElement(_codecademy_gamut.Text, {
|
|
93
|
+
key: `${title}:${i.toString()}`,
|
|
94
|
+
lineHeight: "title",
|
|
95
|
+
...segment.highlight ? {
|
|
96
|
+
bg: highlightColor,
|
|
97
|
+
fontWeight: "bold"
|
|
98
|
+
} : {}
|
|
99
|
+
}, segment.value))), /* @__PURE__ */ react.createElement(_codecademy_gamut.Text, { screenreader: true }, title));
|
|
100
|
+
};
|
|
101
|
+
let loaderKey = 0;
|
|
102
|
+
function rndLoader() {
|
|
103
|
+
const key = loaderKey++;
|
|
104
|
+
const loader = { shimmerRows: [] };
|
|
105
|
+
for (let i = 0; i < 5; i++) {
|
|
106
|
+
const row = {
|
|
107
|
+
key: `${key}:${i}`,
|
|
108
|
+
shimmers: []
|
|
109
|
+
};
|
|
110
|
+
const words = Math.ceil(Math.random() * 3);
|
|
111
|
+
for (let j = 0; j < words; j++) {
|
|
112
|
+
const width = 12 + Math.round(Math.random() * 96);
|
|
113
|
+
row.shimmers.push({
|
|
114
|
+
key: `${key}:${j}`,
|
|
115
|
+
width
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
loader.shimmerRows.push(row);
|
|
119
|
+
}
|
|
120
|
+
return loader;
|
|
121
|
+
}
|
|
122
|
+
const SearchPane = ({ onSearch, onTrackingClick, searchButtonRef, toggleSearch, onSearchAsYouType }) => {
|
|
123
|
+
const theme = (0, _emotion_react.useTheme)();
|
|
124
|
+
const [value, setValue] = (0, react.useState)("");
|
|
125
|
+
const inputRef = (0, react.useRef)(null);
|
|
126
|
+
const [autoCompleteSuggestions, setAutoCompleteSuggestions] = (0, react.useState)([]);
|
|
127
|
+
const [searchAsYouTypeResults, setSearchAsYouTypeResults] = (0, react.useState)(null);
|
|
128
|
+
const [searchResultClicked, setSearchResultClicked] = (0, react.useState)(false);
|
|
129
|
+
const { setOnSearchAsYouTypeParams } = require_index$1.useSearchTrackingContext();
|
|
130
|
+
const { globalHeaderDynamicData } = require_context.useGlobalHeaderDynamicDataContext();
|
|
131
|
+
const banner = globalHeaderDynamicData?.catalogDropdown?.banner;
|
|
132
|
+
const showMarketingBanner = banner?.text && banner?.href && require_MarketingBanner.MarketingBanner;
|
|
133
|
+
const searchAsYouTypeLoader = react.useMemo(() => searchAsYouTypeResults === null ? rndLoader() : null, [searchAsYouTypeResults]);
|
|
134
|
+
const valueTrimmed = value.trim();
|
|
135
|
+
const hasSearchEventAndResultsWithoutClick = onSearchAsYouType && searchAsYouTypeResults && !searchResultClicked;
|
|
136
|
+
const closeSearch = async () => {
|
|
137
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
138
|
+
const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
|
|
139
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
140
|
+
}
|
|
141
|
+
await toggleSearch();
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
if (searchButtonRef && searchButtonRef?.current) searchButtonRef.current?.focus();
|
|
144
|
+
}, 10);
|
|
145
|
+
};
|
|
146
|
+
const onKeyDown = require_keyboardNav.useOnEscHandler(closeSearch);
|
|
147
|
+
const onMouseDownOutside = ({ target }) => {
|
|
148
|
+
const handleOutsideClick = () => {
|
|
149
|
+
if (!document.querySelector("[data-testid=\"header-search-dropdown\"]")?.contains(target) && target !== searchButtonRef?.current) closeSearch();
|
|
150
|
+
target?.removeEventListener("mouseup", handleOutsideClick);
|
|
151
|
+
};
|
|
152
|
+
target?.addEventListener("mouseup", handleOutsideClick);
|
|
153
|
+
};
|
|
154
|
+
const navigateToSearch = (searchTerm, fromPrevSearch) => {
|
|
155
|
+
onSearch(searchTerm, fromPrevSearch);
|
|
156
|
+
};
|
|
157
|
+
const handleChange = (evt) => {
|
|
158
|
+
setValue(evt.target.value);
|
|
159
|
+
setSearchResultClicked(false);
|
|
160
|
+
};
|
|
161
|
+
const handleSubmit = (event) => {
|
|
162
|
+
event.preventDefault();
|
|
163
|
+
if (hasSearchEventAndResultsWithoutClick) {
|
|
164
|
+
const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
|
|
165
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
166
|
+
}
|
|
167
|
+
navigateToSearch(value, searchAsYouTypeResults?.searchId);
|
|
168
|
+
};
|
|
169
|
+
const clearInput = () => {
|
|
170
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
171
|
+
const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
|
|
172
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
173
|
+
}
|
|
174
|
+
setValue("");
|
|
175
|
+
setAutoCompleteSuggestions([]);
|
|
176
|
+
setOnSearchAsYouTypeParams({
|
|
177
|
+
query: "",
|
|
178
|
+
searchId: "",
|
|
179
|
+
resultsCount: 0,
|
|
180
|
+
queryLoadTime: 0
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
require_useUrlChangeDetection.useUrlChangeDetection({ onUrlChange: () => {
|
|
184
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
185
|
+
const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
|
|
186
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
187
|
+
}
|
|
188
|
+
toggleSearch();
|
|
189
|
+
} });
|
|
190
|
+
(0, react.useEffect)(() => {
|
|
191
|
+
if (searchResultClicked || !onSearchAsYouType || !searchAsYouTypeResults || !valueTrimmed.length) return;
|
|
192
|
+
}, [
|
|
193
|
+
searchResultClicked,
|
|
194
|
+
searchAsYouTypeResults,
|
|
195
|
+
valueTrimmed,
|
|
196
|
+
onSearchAsYouType
|
|
197
|
+
]);
|
|
198
|
+
(0, react.useEffect)(() => {
|
|
199
|
+
inputRef.current?.focus();
|
|
200
|
+
require_index$2.searchWorker.init();
|
|
201
|
+
}, []);
|
|
202
|
+
(0, react.useEffect)(() => {
|
|
203
|
+
if (!valueTrimmed.length) {
|
|
204
|
+
setSearchAsYouTypeResults(null);
|
|
205
|
+
setAutoCompleteSuggestions([]);
|
|
206
|
+
setOnSearchAsYouTypeParams({
|
|
207
|
+
query: "",
|
|
208
|
+
searchId: "",
|
|
209
|
+
resultsCount: 0,
|
|
210
|
+
queryLoadTime: 0
|
|
211
|
+
});
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
let cancel = false;
|
|
215
|
+
let clearAutocomplete = true;
|
|
216
|
+
let clearSearchAsYouType = true;
|
|
217
|
+
let searchEventNoResultDelay;
|
|
218
|
+
const loaderDelay = setTimeout(() => {
|
|
219
|
+
if (cancel) return;
|
|
220
|
+
if (clearAutocomplete) setAutoCompleteSuggestions([]);
|
|
221
|
+
if (clearSearchAsYouType) setSearchAsYouTypeResults(null);
|
|
222
|
+
}, 10);
|
|
223
|
+
require_index$2.searchWorker.autocomplete(valueTrimmed).then((suggestions) => {
|
|
224
|
+
clearAutocomplete = false;
|
|
225
|
+
if (cancel) return;
|
|
226
|
+
setAutoCompleteSuggestions(suggestions);
|
|
227
|
+
});
|
|
228
|
+
require_index$2.searchWorker.searchAsYouType(valueTrimmed).then((results) => {
|
|
229
|
+
clearSearchAsYouType = false;
|
|
230
|
+
if (cancel) return;
|
|
231
|
+
setSearchAsYouTypeResults(results);
|
|
232
|
+
setOnSearchAsYouTypeParams({
|
|
233
|
+
query: results.query,
|
|
234
|
+
searchId: results.searchId,
|
|
235
|
+
resultsCount: results.top.length,
|
|
236
|
+
queryLoadTime: results.queryLoadTime
|
|
237
|
+
});
|
|
238
|
+
if (onSearchAsYouType && results.top.length === 0 && !searchResultClicked) {
|
|
239
|
+
const { query, searchId, queryLoadTime } = results;
|
|
240
|
+
searchEventNoResultDelay = setTimeout(() => {
|
|
241
|
+
if (!cancel) onSearchAsYouType(query, searchId, 0, queryLoadTime);
|
|
242
|
+
}, 300);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
return () => {
|
|
246
|
+
cancel = true;
|
|
247
|
+
clearTimeout(loaderDelay);
|
|
248
|
+
clearTimeout(searchEventNoResultDelay);
|
|
249
|
+
};
|
|
250
|
+
}, [
|
|
251
|
+
valueTrimmed,
|
|
252
|
+
onSearchAsYouType,
|
|
253
|
+
searchResultClicked,
|
|
254
|
+
setOnSearchAsYouTypeParams
|
|
255
|
+
]);
|
|
256
|
+
return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_codecademy_gamut.Box, {
|
|
257
|
+
"aria-hidden": true,
|
|
258
|
+
bg: "shadow-secondary",
|
|
259
|
+
height: "100vh",
|
|
260
|
+
position: "fixed",
|
|
261
|
+
top: `calc(${theme.elements.headerHeight} + 6rem)`,
|
|
262
|
+
width: 1
|
|
263
|
+
}), /* @__PURE__ */ react.createElement(_codecademy_gamut.FocusTrap, {
|
|
264
|
+
onEscapeKey: closeSearch,
|
|
265
|
+
onClickOutside: onMouseDownOutside,
|
|
266
|
+
allowPageInteraction: true
|
|
267
|
+
}, /* @__PURE__ */ react.createElement(_codecademy_gamut.Box, {
|
|
268
|
+
bg: "background",
|
|
269
|
+
borderColorBottom: "border-primary",
|
|
270
|
+
borderColorTop: "border-tertiary",
|
|
271
|
+
borderStyle: "solid",
|
|
272
|
+
borderWidth: "2px 0 1px",
|
|
273
|
+
"data-testid": "header-search-dropdown",
|
|
274
|
+
position: {
|
|
275
|
+
_: "fixed",
|
|
276
|
+
md: "absolute"
|
|
277
|
+
},
|
|
278
|
+
width: "100%",
|
|
279
|
+
maxHeight: {
|
|
280
|
+
_: "calc(100vh - 63px)",
|
|
281
|
+
md: "calc(100vh - 80px)"
|
|
282
|
+
},
|
|
283
|
+
overflow: "auto",
|
|
284
|
+
zIndex: 10
|
|
285
|
+
}, /* @__PURE__ */ react.createElement(_codecademy_gamut.Box, {
|
|
286
|
+
border: "none",
|
|
287
|
+
width: "auto"
|
|
288
|
+
}, /* @__PURE__ */ react.createElement(QueryContainer, { $compact: !!showMarketingBanner }, /* @__PURE__ */ react.createElement(_codecademy_gamut.FlexBox, {
|
|
289
|
+
alignItems: "baseline",
|
|
290
|
+
borderColor: "gray-600",
|
|
291
|
+
borderStyleBottom: "solid",
|
|
292
|
+
borderWidthBottom: "1px",
|
|
293
|
+
width: "100%"
|
|
294
|
+
}, /* @__PURE__ */ react.createElement(_codecademy_gamut_icons.SearchIcon, {
|
|
295
|
+
height: {
|
|
296
|
+
_: 20,
|
|
297
|
+
md: 24
|
|
298
|
+
},
|
|
299
|
+
width: {
|
|
300
|
+
_: 20,
|
|
301
|
+
md: 24
|
|
302
|
+
}
|
|
303
|
+
}), /* @__PURE__ */ react.createElement(Form, {
|
|
304
|
+
action: "/search",
|
|
305
|
+
id: "search-form",
|
|
306
|
+
ml: 8,
|
|
307
|
+
onSubmit: handleSubmit,
|
|
308
|
+
width: "100%"
|
|
309
|
+
}, /* @__PURE__ */ react.createElement(StyledInput, {
|
|
310
|
+
autoFocus: true,
|
|
311
|
+
background: "none",
|
|
312
|
+
border: "none",
|
|
313
|
+
color: "text",
|
|
314
|
+
fontSize: {
|
|
315
|
+
_: 20,
|
|
316
|
+
md: 26
|
|
317
|
+
},
|
|
318
|
+
fontWeight: "bold",
|
|
319
|
+
id: "header-search-bar",
|
|
320
|
+
name: "query",
|
|
321
|
+
onChange: handleChange,
|
|
322
|
+
onKeyDown: (e) => onKeyDown(e),
|
|
323
|
+
placeholder: require_consts.searchPlaceholder,
|
|
324
|
+
ref: inputRef,
|
|
325
|
+
type: "search",
|
|
326
|
+
value,
|
|
327
|
+
width: "100%",
|
|
328
|
+
autoComplete: "off"
|
|
329
|
+
})), /* @__PURE__ */ react.createElement(_codecademy_gamut.IconButton, {
|
|
330
|
+
icon: _codecademy_gamut_icons.MiniDeleteIcon,
|
|
331
|
+
"aria-label": "Clear search",
|
|
332
|
+
tip: "Clear search",
|
|
333
|
+
tipProps: {
|
|
334
|
+
alignment: "bottom-center",
|
|
335
|
+
placement: "floating",
|
|
336
|
+
narrow: true,
|
|
337
|
+
zIndex: 2
|
|
338
|
+
},
|
|
339
|
+
onClick: clearInput,
|
|
340
|
+
size: "small"
|
|
341
|
+
})))), showMarketingBanner && /* @__PURE__ */ react.createElement(_codecademy_gamut.ContentContainer, null, /* @__PURE__ */ react.createElement(require_MarketingBanner.MarketingBanner, {
|
|
342
|
+
source: "search",
|
|
343
|
+
text: banner?.text,
|
|
344
|
+
href: banner?.href,
|
|
345
|
+
tabIndex: 0,
|
|
346
|
+
py: {
|
|
347
|
+
_: 16,
|
|
348
|
+
lg: 24
|
|
349
|
+
}
|
|
350
|
+
})), /* @__PURE__ */ react.createElement(SuggestionContainer, { $compact: !!showMarketingBanner }, valueTrimmed.length > 0 ? /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_codecademy_gamut.FlexBox, {
|
|
351
|
+
flexDirection: "column",
|
|
352
|
+
as: "ul",
|
|
353
|
+
listStyle: "none",
|
|
354
|
+
p: 0
|
|
355
|
+
}, autoCompleteSuggestions.map((s, i) => /* @__PURE__ */ react.createElement(InlineResultLi, {
|
|
356
|
+
key: s.title,
|
|
357
|
+
tabIndex: 0,
|
|
358
|
+
onKeyDown: (evt) => {
|
|
359
|
+
if (evt.key === "Enter") {
|
|
360
|
+
setSearchResultClicked(true);
|
|
361
|
+
onTrackingClick("autocomplete_result", {
|
|
362
|
+
search_id: searchAsYouTypeResults?.searchId ?? "",
|
|
363
|
+
misc: JSON.stringify({ position: i })
|
|
364
|
+
});
|
|
365
|
+
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
366
|
+
closeSearch();
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
onClick: () => {
|
|
370
|
+
setSearchResultClicked(true);
|
|
371
|
+
onTrackingClick("autocomplete_result", {
|
|
372
|
+
search_id: searchAsYouTypeResults?.searchId ?? "",
|
|
373
|
+
misc: JSON.stringify({ position: i })
|
|
374
|
+
});
|
|
375
|
+
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
376
|
+
closeSearch();
|
|
377
|
+
}
|
|
378
|
+
}, /* @__PURE__ */ react.createElement(SemiboldSearchIcon, {
|
|
379
|
+
mb: 2,
|
|
380
|
+
size: 14,
|
|
381
|
+
strokeWidth: 8,
|
|
382
|
+
"aria-hidden": true,
|
|
383
|
+
mr: 12
|
|
384
|
+
}), /* @__PURE__ */ react.createElement(HighlightedText, { suggestion: s })))), (searchAsYouTypeResults === null || searchAsYouTypeResults.top.length > 0) && /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_codecademy_gamut.Text, {
|
|
385
|
+
as: "h2",
|
|
386
|
+
fontSize: 20,
|
|
387
|
+
mb: 16,
|
|
388
|
+
mt: 24
|
|
389
|
+
}, "Top results"), /* @__PURE__ */ react.createElement(_codecademy_gamut.FlexBox, {
|
|
390
|
+
flexDirection: "column",
|
|
391
|
+
as: "ul",
|
|
392
|
+
listStyle: "none",
|
|
393
|
+
p: 0
|
|
394
|
+
}, searchAsYouTypeResults === null ? searchAsYouTypeLoader?.shimmerRows.map((r) => /* @__PURE__ */ react.createElement(InlineLoaderLi, { key: r.key }, r.shimmers.map((word) => /* @__PURE__ */ react.createElement(_codecademy_gamut.Shimmer, {
|
|
395
|
+
height: 30,
|
|
396
|
+
py: 8,
|
|
397
|
+
key: word.key,
|
|
398
|
+
width: word.width
|
|
399
|
+
})), /* @__PURE__ */ react.createElement(_codecademy_gamut.Box, {
|
|
400
|
+
fontFamily: "accent",
|
|
401
|
+
textColor: "text-secondary",
|
|
402
|
+
fontSize: { _: 10 },
|
|
403
|
+
borderColor: "border-secondary",
|
|
404
|
+
border: 1,
|
|
405
|
+
borderRadius: "xl",
|
|
406
|
+
px: 16,
|
|
407
|
+
opacity: .1
|
|
408
|
+
}, "\xA0"))) : searchAsYouTypeResults.top.map((s, i) => /* @__PURE__ */ react.createElement(InlineResultLi, {
|
|
409
|
+
key: `${searchAsYouTypeResults.query}:${i.toString()}`,
|
|
410
|
+
tabIndex: 0,
|
|
411
|
+
role: "link",
|
|
412
|
+
onKeyDown: (evt) => {
|
|
413
|
+
if (evt.key === "Enter") {
|
|
414
|
+
setSearchResultClicked(true);
|
|
415
|
+
onTrackingClick("search_as_you_type_result", {
|
|
416
|
+
search_id: searchAsYouTypeResults.searchId,
|
|
417
|
+
slug: s.slug,
|
|
418
|
+
...s.contentId ? { content_id: s.contentId } : {},
|
|
419
|
+
misc: JSON.stringify({ position: i })
|
|
420
|
+
});
|
|
421
|
+
closeSearch();
|
|
422
|
+
require_safelyRedirect.safelyRedirect(s.urlPath);
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
onClick: () => {
|
|
426
|
+
setSearchResultClicked(true);
|
|
427
|
+
onTrackingClick("search_as_you_type_result", {
|
|
428
|
+
search_id: searchAsYouTypeResults.searchId,
|
|
429
|
+
slug: s.slug,
|
|
430
|
+
...s.contentId ? { content_id: s.contentId } : {},
|
|
431
|
+
misc: JSON.stringify({ position: i })
|
|
432
|
+
});
|
|
433
|
+
closeSearch();
|
|
434
|
+
require_safelyRedirect.safelyRedirect(s.urlPath);
|
|
435
|
+
}
|
|
436
|
+
}, /* @__PURE__ */ react.createElement(HighlightedText, { suggestion: s }), /* @__PURE__ */ react.createElement(_codecademy_gamut.Badge, {
|
|
437
|
+
size: "sm",
|
|
438
|
+
variant: "tertiary",
|
|
439
|
+
ml: 12
|
|
440
|
+
}, s.type))))), searchAsYouTypeResults?.top.length === 0 && /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_codecademy_gamut.Box, {
|
|
441
|
+
fontSize: {
|
|
442
|
+
_: 20,
|
|
443
|
+
sm: 26
|
|
444
|
+
},
|
|
445
|
+
mt: 0,
|
|
446
|
+
mb: 48
|
|
447
|
+
}, `We couldn't find a match for `, /* @__PURE__ */ react.createElement(_codecademy_gamut.Text, { fontWeight: "bold" }, `"${valueTrimmed}."`), " Try another keyword, or see what our members are learning."), /* @__PURE__ */ react.createElement(_codecademy_gamut.Menu, {
|
|
448
|
+
border: "none",
|
|
449
|
+
variant: "popover"
|
|
450
|
+
}, /* @__PURE__ */ react.createElement(require_DefaultResults.PopularContent, { onTrackingClick })))) : /* @__PURE__ */ react.createElement(_codecademy_gamut.Menu, {
|
|
451
|
+
border: "none",
|
|
452
|
+
variant: "popover"
|
|
453
|
+
}, /* @__PURE__ */ react.createElement(require_DefaultResults.PopularSearches, {
|
|
454
|
+
navigateToSearch,
|
|
455
|
+
onTrackingClick
|
|
456
|
+
}), /* @__PURE__ */ react.createElement(require_DefaultResults.PopularContent, { onTrackingClick })), !!searchAsYouTypeResults?.top.length && /* @__PURE__ */ react.createElement(_codecademy_gamut.StrokeButton, {
|
|
457
|
+
my: 16,
|
|
458
|
+
onClick: () => {
|
|
459
|
+
onTrackingClick("view_all_results", { search_id: searchAsYouTypeResults.searchId });
|
|
460
|
+
navigateToSearch(value, searchAsYouTypeResults?.searchId);
|
|
461
|
+
closeSearch();
|
|
462
|
+
}
|
|
463
|
+
}, "View all results"), /* @__PURE__ */ react.createElement(require_QuizAndHelpCenterLinks.QuizAndHelpCenterLinks, {
|
|
464
|
+
onTrackingClick,
|
|
465
|
+
handleCloseDropdown: closeSearch
|
|
466
|
+
})))));
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
//#endregion
|
|
470
|
+
exports.SearchPane = SearchPane;
|
|
471
|
+
exports.SemiboldSearchIcon = SemiboldSearchIcon;
|
|
472
|
+
//# sourceMappingURL=SearchPane.cjs.map
|