@commercetools-frontend/application-shell 24.7.2 → 24.8.1
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/dist/{application-entry-point-87fc1d21.esm.js → application-entry-point-10a5e1a5.esm.js} +1 -17
- package/dist/{application-entry-point-25a893ee.cjs.prod.js → application-entry-point-8c4b8e53.cjs.prod.js} +1 -5
- package/dist/{application-entry-point-66e4e42e.cjs.dev.js → application-entry-point-c87294b0.cjs.dev.js} +1 -18
- package/dist/commercetools-frontend-application-shell.cjs.d.ts +2 -2
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +5 -4
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +5 -4
- package/dist/commercetools-frontend-application-shell.esm.js +5 -4
- package/dist/{custom-view-dev-host-d0430873.cjs.dev.js → custom-view-dev-host-661cfc61.cjs.dev.js} +5 -8
- package/dist/{custom-view-dev-host-54e9ab34.esm.js → custom-view-dev-host-a7b97ce5.esm.js} +5 -7
- package/dist/{custom-view-dev-host-22fc5ded.cjs.prod.js → custom-view-dev-host-e05871d6.cjs.prod.js} +5 -5
- package/dist/declarations/src/components/application-page-title/index.d.ts +1 -1
- package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -1
- package/dist/declarations/src/components/application-shell/index.d.ts +1 -1
- package/dist/declarations/src/components/application-shell-provider/application-shell-provider.d.ts +1 -1
- package/dist/declarations/src/components/application-shell-provider/index.d.ts +1 -1
- package/dist/declarations/src/components/configure-intl-provider/index.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-shell/index.d.ts +1 -1
- package/dist/declarations/src/components/error-apologizer/index.d.ts +0 -1
- package/dist/declarations/src/components/fetch-user/fetch-user.d.ts +1 -1
- package/dist/declarations/src/components/fetch-user/index.d.ts +1 -1
- package/dist/declarations/src/components/inject-reducers/index.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-login/index.d.ts +0 -1
- package/dist/declarations/src/components/redirect-to-logout/index.d.ts +1 -2
- package/dist/declarations/src/components/route-catch-all/index.d.ts +0 -1
- package/dist/declarations/src/components/setup-flop-flip-provider/index.d.ts +1 -1
- package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +1 -1
- package/dist/declarations/src/components/suspended-route/index.d.ts +3 -3
- package/dist/declarations/src/components/suspended-route/protected-route.d.ts +0 -1
- package/dist/declarations/src/components/suspended-route/suspended-protected-route.d.ts +1 -2
- package/dist/declarations/src/export-types.d.ts +1 -1
- package/dist/declarations/src/hooks/use-routes-creator/index.d.ts +1 -1
- package/dist/declarations/src/index.d.ts +21 -21
- package/dist/declarations/src/ssr/index.d.ts +1 -1
- package/dist/declarations/src/test-utils/custom-views-utils.d.ts +1 -1
- package/dist/declarations/src/test-utils/index.d.ts +2 -2
- package/dist/declarations/src/test-utils/test-utils.d.ts +2 -2
- package/dist/declarations/src/utils/get-previous-project-key/index.d.ts +1 -1
- package/dist/declarations/src/utils/setup-global-error-listener/index.d.ts +1 -1
- package/dist/declarations-connectors/dist/commercetools-frontend-application-shell-connectors.cjs.d.ts +2 -0
- package/dist/declarations-connectors/src/components/application-context/application-context.d.ts +109 -0
- package/dist/declarations-connectors/src/components/application-context/index.d.ts +10 -0
- package/dist/declarations-connectors/src/components/application-context/normalizers.d.ts +48 -0
- package/dist/declarations-connectors/src/components/custom-view-context/custom-view-context.d.ts +19 -0
- package/dist/declarations-connectors/src/components/custom-view-context/index.d.ts +4 -0
- package/dist/declarations-connectors/src/components/project-extension-image-regex/index.d.ts +3 -0
- package/dist/declarations-connectors/src/components/project-extension-image-regex/project-extension-image-regex.d.ts +37 -0
- package/dist/declarations-connectors/src/configure-apollo.d.ts +7 -0
- package/dist/declarations-connectors/src/export-types.d.ts +21 -0
- package/dist/declarations-connectors/src/hooks/apollo-hooks/apollo-hooks.d.ts +12 -0
- package/dist/declarations-connectors/src/hooks/apollo-hooks/index.d.ts +1 -0
- package/dist/declarations-connectors/src/hooks/custom-views/use-custom-view-parent-data-refresher.d.ts +5 -0
- package/dist/declarations-connectors/src/index.d.ts +12 -0
- package/dist/declarations-connectors/src/types/generated/mc.d.ts +742 -0
- package/dist/declarations-connectors/src/utils/apollo-client-runtime-cache.d.ts +4 -0
- package/dist/declarations-connectors/src/utils/apollo-context.d.ts +16 -0
- package/dist/declarations-connectors/src/utils/get-correlation-id/get-correlation-id.d.ts +3 -0
- package/dist/declarations-connectors/src/utils/get-correlation-id/index.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/get-mc-api-url/index.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/http-client.d.ts +107 -0
- package/dist/declarations-connectors/src/utils/index.d.ts +7 -0
- package/dist/declarations-connectors/src/utils/logger.d.ts +10 -0
- package/dist/declarations-connectors/src/utils/oidc-storage.d.ts +12 -0
- package/dist/declarations-connectors/src/utils/select-project-key-from-url/index.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/select-project-key-from-url/select-project-key-from-url.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/select-team-id-from-storage/index.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/select-team-id-from-storage/select-team-id-from-storage.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/select-user-id/index.d.ts +1 -0
- package/dist/declarations-connectors/src/utils/select-user-id/select-user-id.d.ts +1 -0
- package/dist/declarations-connectors/src/version.d.ts +2 -0
- package/dist/{index-b76590b3.cjs.prod.js → index-245e2980.cjs.prod.js} +20 -15
- package/dist/{index-0459c0f4.cjs.dev.js → index-614accc4.cjs.dev.js} +20 -15
- package/dist/{index-63d718c6.cjs.dev.js → index-6e8b15ab.cjs.dev.js} +19 -142
- package/dist/{index-a5d2d010.esm.js → index-86039df7.esm.js} +19 -14
- package/dist/{index-f9551c06.esm.js → index-bfee32ba.esm.js} +19 -141
- package/dist/{index-82b627fb.cjs.prod.js → index-f38829e5.cjs.prod.js} +19 -66
- package/dist/{navbar-5b3ac835.cjs.dev.js → navbar-022383bd.cjs.dev.js} +3 -113
- package/dist/{navbar-2c26c0f7.esm.js → navbar-844d350d.esm.js} +3 -112
- package/dist/{navbar-654f1534.cjs.prod.js → navbar-acc2cd1b.cjs.prod.js} +3 -21
- package/dist/{oidc-callback-ca30194b.cjs.prod.js → oidc-callback-156358f9.cjs.prod.js} +6 -6
- package/dist/{oidc-callback-b1c0fb4b.cjs.dev.js → oidc-callback-168de462.cjs.dev.js} +6 -9
- package/dist/{oidc-callback-73295cb5.esm.js → oidc-callback-f2e3befb.esm.js} +6 -8
- package/dist/{project-container-b4fee0d6.cjs.dev.js → project-container-1261b8d4.cjs.dev.js} +10 -20
- package/dist/{project-container-3921c886.cjs.prod.js → project-container-8016faca.cjs.prod.js} +10 -11
- package/dist/{project-container-9c471740.esm.js → project-container-bebda614.esm.js} +10 -19
- package/dist/{project-expired-1a49823c.cjs.prod.js → project-expired-65da94bb.cjs.prod.js} +6 -5
- package/dist/{project-expired-fa42e755.esm.js → project-expired-b656ef29.esm.js} +6 -5
- package/dist/{project-expired-081090ed.cjs.dev.js → project-expired-b92bd5a9.cjs.dev.js} +6 -5
- package/dist/{project-not-found-871c2a08.esm.js → project-not-found-c2f814e3.esm.js} +6 -5
- package/dist/{project-not-found-927b2193.cjs.dev.js → project-not-found-c4b9a557.cjs.dev.js} +6 -5
- package/dist/{project-not-found-a8899d6a.cjs.prod.js → project-not-found-c80f0473.cjs.prod.js} +6 -5
- package/dist/{project-not-initialized-5a8ce431.cjs.dev.js → project-not-initialized-711d2a88.cjs.dev.js} +6 -5
- package/dist/{project-not-initialized-3fdfefab.esm.js → project-not-initialized-7bc049db.esm.js} +6 -5
- package/dist/{project-not-initialized-1a773477.cjs.prod.js → project-not-initialized-f6704f8c.cjs.prod.js} +6 -5
- package/dist/{project-suspended-93172b2c.cjs.dev.js → project-suspended-18e09af9.cjs.dev.js} +6 -5
- package/dist/{project-suspended-5fec80c9.cjs.prod.js → project-suspended-70f60ad4.cjs.prod.js} +6 -5
- package/dist/{project-suspended-696f83da.esm.js → project-suspended-b9a99fe3.esm.js} +6 -5
- package/dist/{quick-access-4022932f.cjs.prod.js → quick-access-483b0df9.cjs.prod.js} +16 -18
- package/dist/{quick-access-f19ebe03.cjs.dev.js → quick-access-a800a4a3.cjs.dev.js} +16 -37
- package/dist/{quick-access-d2009eae.esm.js → quick-access-d8ff6526.esm.js} +16 -36
- package/dist/{redirect-to-login-8c7575fb.cjs.prod.js → redirect-to-login-12f467b8.cjs.prod.js} +1 -2
- package/dist/{redirect-to-login-d9c20203.esm.js → redirect-to-login-2944c890.esm.js} +1 -2
- package/dist/{redirect-to-login-321190b7.cjs.dev.js → redirect-to-login-3bee13ba.cjs.dev.js} +1 -2
- package/dist/{redirect-to-logout-e67c2985.cjs.dev.js → redirect-to-logout-5a95dd2d.cjs.dev.js} +6 -5
- package/dist/{redirect-to-logout-2d42f7f1.cjs.prod.js → redirect-to-logout-7fda85d0.cjs.prod.js} +6 -5
- package/dist/{redirect-to-logout-64c4ab1e.esm.js → redirect-to-logout-aa221532.esm.js} +6 -5
- package/dist/{redirector-01f35da8.cjs.prod.js → redirector-0c72d0a4.cjs.prod.js} +0 -14
- package/dist/{redirector-98dfc5f0.cjs.dev.js → redirector-72ccfbc2.cjs.dev.js} +0 -14
- package/dist/{redirector-76670a54.esm.js → redirector-d856975f.esm.js} +0 -13
- package/dist/{requests-in-flight-loader-ac5fc71e.cjs.prod.js → requests-in-flight-loader-7f3ad61a.cjs.prod.js} +5 -4
- package/dist/{requests-in-flight-loader-02be8f44.esm.js → requests-in-flight-loader-a8044d17.esm.js} +5 -4
- package/dist/{requests-in-flight-loader-667bb113.cjs.dev.js → requests-in-flight-loader-f089e3c4.cjs.dev.js} +5 -4
- package/dist/{service-page-project-switcher-27c2172e.cjs.dev.js → service-page-project-switcher-651a2d2a.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-815e8660.esm.js → service-page-project-switcher-78608790.esm.js} +1 -1
- package/dist/{service-page-project-switcher-50e500af.cjs.prod.js → service-page-project-switcher-f24ba376.cjs.prod.js} +1 -1
- package/dist/{user-settings-menu-03a69aba.cjs.dev.js → user-settings-menu-6113cdd3.cjs.dev.js} +0 -15
- package/dist/{user-settings-menu-54cc2ed0.cjs.prod.js → user-settings-menu-d75f4958.cjs.prod.js} +0 -5
- package/dist/{user-settings-menu-a3ae7c85.esm.js → user-settings-menu-f98bea89.esm.js} +0 -14
- package/package.json +50 -50
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.d.ts +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.d.ts +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +5 -12
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +5 -5
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +5 -11
- package/dist/commercetools-frontend-application-shell.cjs.d.ts.map +0 -1
- package/dist/declarations/src/components/app-bar/app-bar.d.ts +0 -10
- package/dist/declarations/src/components/app-bar/index.d.ts +0 -1
- package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +0 -10
- package/dist/declarations/src/components/application-entry-point/index.d.ts +0 -1
- package/dist/declarations/src/components/application-loader/application-loader.d.ts +0 -8
- package/dist/declarations/src/components/application-loader/index.d.ts +0 -1
- package/dist/declarations/src/components/application-shell/global-styles.d.ts +0 -3
- package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +0 -25
- package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +0 -6
- package/dist/declarations/src/components/authenticated/am-i-logged-in.d.ts +0 -13
- package/dist/declarations/src/components/authenticated/authenticated.d.ts +0 -16
- package/dist/declarations/src/components/authenticated/has-cached-authentication-state.d.ts +0 -2
- package/dist/declarations/src/components/authenticated/index.d.ts +0 -1
- package/dist/declarations/src/components/authenticated/oidc-callback-error-page.d.ts +0 -12
- package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +0 -6
- package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +0 -11
- package/dist/declarations/src/components/authenticated/types.d.ts +0 -6
- package/dist/declarations/src/components/back-to-project/back-to-project.d.ts +0 -8
- package/dist/declarations/src/components/back-to-project/index.d.ts +0 -1
- package/dist/declarations/src/components/back-to-project/messages.d.ts +0 -7
- package/dist/declarations/src/components/custom-view-dev-host/custom-view-dev-host.d.ts +0 -11
- package/dist/declarations/src/components/custom-view-dev-host/index.d.ts +0 -6
- package/dist/declarations/src/components/custom-view-flop-flip-provider/custom-view-flop-flip-provider.d.ts +0 -10
- package/dist/declarations/src/components/custom-view-flop-flip-provider/index.d.ts +0 -1
- package/dist/declarations/src/components/custom-view-shell/custom-view-shell.styles.d.ts +0 -9
- package/dist/declarations/src/components/custom-view-shell-authenticated/custom-view-shell-authenticated.d.ts +0 -15
- package/dist/declarations/src/components/custom-view-shell-authenticated/index.d.ts +0 -1
- package/dist/declarations/src/components/error-apologizer/error-apologizer.d.ts +0 -5
- package/dist/declarations/src/components/error-apologizer/messages.d.ts +0 -11
- package/dist/declarations/src/components/error-boundary/error-boundary.d.ts +0 -20
- package/dist/declarations/src/components/error-boundary/index.d.ts +0 -1
- package/dist/declarations/src/components/fetch-project/fetch-project.d.ts +0 -18
- package/dist/declarations/src/components/fetch-project/index.d.ts +0 -1
- package/dist/declarations/src/components/loading-placeholder/index.d.ts +0 -1
- package/dist/declarations/src/components/loading-placeholder/loading-placeholder.d.ts +0 -10
- package/dist/declarations/src/components/locale-switcher/index.d.ts +0 -1
- package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +0 -13
- package/dist/declarations/src/components/locale-switcher/messages.d.ts +0 -18
- package/dist/declarations/src/components/navbar/index.d.ts +0 -6
- package/dist/declarations/src/components/navbar/legacy-icons/box.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/cart.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/connected-square.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/gear.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/heart.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/list-with-search.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/paperclip.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/plugin.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/rocket.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/speedometer.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/star.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/tag-multi.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/tree-structure.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/user-filled.d.ts +0 -2
- package/dist/declarations/src/components/navbar/legacy-icons/world.d.ts +0 -2
- package/dist/declarations/src/components/navbar/main-navbar.styles.d.ts +0 -51
- package/dist/declarations/src/components/navbar/menu-items.d.ts +0 -107
- package/dist/declarations/src/components/navbar/menu-items.styles.d.ts +0 -52
- package/dist/declarations/src/components/navbar/messages.d.ts +0 -15
- package/dist/declarations/src/components/navbar/navbar-skeleton.d.ts +0 -6
- package/dist/declarations/src/components/navbar/navbar-skeleton.styles.d.ts +0 -43
- package/dist/declarations/src/components/navbar/navbar.d.ts +0 -51
- package/dist/declarations/src/components/navbar/non-nullable.d.ts +0 -1
- package/dist/declarations/src/components/navbar/shared.styles.d.ts +0 -18
- package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +0 -25
- package/dist/declarations/src/components/project-container/index.d.ts +0 -59
- package/dist/declarations/src/components/project-container/messages.d.ts +0 -7
- package/dist/declarations/src/components/project-container/project-container.d.ts +0 -15
- package/dist/declarations/src/components/project-data-locale/index.d.ts +0 -1
- package/dist/declarations/src/components/project-data-locale/project-data-locale.d.ts +0 -14
- package/dist/declarations/src/components/project-expired/index.d.ts +0 -6
- package/dist/declarations/src/components/project-expired/messages.d.ts +0 -11
- package/dist/declarations/src/components/project-expired/project-expired.d.ts +0 -5
- package/dist/declarations/src/components/project-not-found/index.d.ts +0 -6
- package/dist/declarations/src/components/project-not-found/messages.d.ts +0 -15
- package/dist/declarations/src/components/project-not-found/project-not-found.d.ts +0 -5
- package/dist/declarations/src/components/project-not-initialized/index.d.ts +0 -6
- package/dist/declarations/src/components/project-not-initialized/messages.d.ts +0 -11
- package/dist/declarations/src/components/project-not-initialized/project-not-initialized.d.ts +0 -5
- package/dist/declarations/src/components/project-suspended/index.d.ts +0 -8
- package/dist/declarations/src/components/project-suspended/messages.d.ts +0 -15
- package/dist/declarations/src/components/project-suspended/project-suspended.d.ts +0 -8
- package/dist/declarations/src/components/project-switcher/index.d.ts +0 -1
- package/dist/declarations/src/components/project-switcher/messages.d.ts +0 -28
- package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +0 -12
- package/dist/declarations/src/components/quick-access/butler/butler.d.ts +0 -14
- package/dist/declarations/src/components/quick-access/butler/index.d.ts +0 -1
- package/dist/declarations/src/components/quick-access/butler-command/butler-command.d.ts +0 -13
- package/dist/declarations/src/components/quick-access/butler-command/index.d.ts +0 -1
- package/dist/declarations/src/components/quick-access/butler-container/butler-container.d.ts +0 -6
- package/dist/declarations/src/components/quick-access/butler-container/index.d.ts +0 -1
- package/dist/declarations/src/components/quick-access/constants.d.ts +0 -24
- package/dist/declarations/src/components/quick-access/create-commands.d.ts +0 -13
- package/dist/declarations/src/components/quick-access/history-entries.d.ts +0 -3
- package/dist/declarations/src/components/quick-access/index.d.ts +0 -8
- package/dist/declarations/src/components/quick-access/messages.d.ts +0 -247
- package/dist/declarations/src/components/quick-access/pim-indexer-states.d.ts +0 -6
- package/dist/declarations/src/components/quick-access/quick-access.d.ts +0 -12
- package/dist/declarations/src/components/quick-access/sub-commands.d.ts +0 -17
- package/dist/declarations/src/components/quick-access/types.d.ts +0 -31
- package/dist/declarations/src/components/quick-access/utils.d.ts +0 -5
- package/dist/declarations/src/components/redirect-to-login/redirect-to-login.d.ts +0 -5
- package/dist/declarations/src/components/redirect-to-logout/redirect-to-logout.d.ts +0 -6
- package/dist/declarations/src/components/redirect-to-project-create/index.d.ts +0 -6
- package/dist/declarations/src/components/redirect-to-project-create/redirect-to-project-create.d.ts +0 -5
- package/dist/declarations/src/components/redirector/index.d.ts +0 -1
- package/dist/declarations/src/components/redirector/redirector.d.ts +0 -23
- package/dist/declarations/src/components/requests-in-flight-loader/constants.d.ts +0 -1
- package/dist/declarations/src/components/requests-in-flight-loader/index.d.ts +0 -7
- package/dist/declarations/src/components/requests-in-flight-loader/messages.d.ts +0 -8
- package/dist/declarations/src/components/requests-in-flight-loader/reducer.d.ts +0 -4
- package/dist/declarations/src/components/requests-in-flight-loader/requests-in-flight-loader.d.ts +0 -6
- package/dist/declarations/src/components/requests-in-flight-loader/types.d.ts +0 -9
- package/dist/declarations/src/components/route-catch-all/route-catch-all.d.ts +0 -2
- package/dist/declarations/src/components/service-page-project-switcher/index.d.ts +0 -1
- package/dist/declarations/src/components/service-page-project-switcher/service-page-project-switcher.d.ts +0 -5
- package/dist/declarations/src/components/theme-switcher/index.d.ts +0 -1
- package/dist/declarations/src/components/theme-switcher/theme-switcher.d.ts +0 -2
- package/dist/declarations/src/components/user-settings-menu/index.d.ts +0 -12
- package/dist/declarations/src/components/user-settings-menu/messages.d.ts +0 -33
- package/dist/declarations/src/components/user-settings-menu/user-settings-menu.d.ts +0 -20
- package/dist/declarations/src/constants.d.ts +0 -42
- package/dist/declarations/src/hooks/use-applications-menu/index.d.ts +0 -1
- package/dist/declarations/src/hooks/use-applications-menu/use-applications-menu.d.ts +0 -9
- package/dist/declarations/src/hooks/use-is-served-by-proxy/index.d.ts +0 -1
- package/dist/declarations/src/hooks/use-is-served-by-proxy/use-is-served-by-proxy.d.ts +0 -2
- package/dist/declarations/src/middleware/hide-notifications.d.ts +0 -3
- package/dist/declarations/src/middleware/logger.d.ts +0 -3
- package/dist/declarations/src/types/generated/ctp.d.ts +0 -14279
- package/dist/declarations/src/types/generated/proxy.d.ts +0 -154
- package/dist/declarations/src/utils/get-mc-api-url/index.d.ts +0 -1
- package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +0 -18
- package/dist/declarations/src/utils/get-mc-origin/index.d.ts +0 -1
- package/dist/declarations/src/utils/index.d.ts +0 -3
- package/dist/declarations/src/utils/location/index.d.ts +0 -1
- package/dist/declarations/src/utils/location/location.d.ts +0 -5
- package/dist/declarations/src/utils/select-project-key-from-local-storage/index.d.ts +0 -1
- package/dist/declarations/src/utils/select-project-key-from-local-storage/select-project-key-from-local-storage.d.ts +0 -1
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.d.ts.map +0 -1
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.d.ts.map +0 -1
- /package/dist/{declarations → declarations-connectors}/src/types/generated/settings.d.ts +0 -0
- /package/dist/{declarations → declarations-connectors}/src/utils/get-mc-api-url/get-mc-api-url.d.ts +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
|
|
2
|
-
import _pt from 'prop-types';
|
|
3
2
|
import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
|
|
4
3
|
import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array';
|
|
5
4
|
import _JSON$stringify from '@babel/runtime-corejs3/core-js-stable/json/stringify';
|
|
@@ -36,16 +35,18 @@ import { customProperties, designTokens } from '@commercetools-uikit/design-syst
|
|
|
36
35
|
import { AngleThinRightIcon, SearchIcon } from '@commercetools-uikit/icons';
|
|
37
36
|
import LoadingSpinner from '@commercetools-uikit/loading-spinner';
|
|
38
37
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
39
|
-
import { B as ButlerContainer, p as pimIndexerStates } from './index-
|
|
38
|
+
import { B as ButlerContainer, p as pimIndexerStates } from './index-bfee32ba.esm.js';
|
|
40
39
|
import _Promise from '@babel/runtime-corejs3/core-js-stable/promise';
|
|
41
40
|
import _reduceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
42
41
|
import _findInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find';
|
|
43
|
-
import './index-
|
|
42
|
+
import './index-86039df7.esm.js';
|
|
44
43
|
import '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
44
|
+
import '@babel/runtime-corejs3/core-js-stable/instance/concat';
|
|
45
45
|
import '@babel/runtime-corejs3/core-js-stable/reflect/has';
|
|
46
46
|
import '@reduxjs/toolkit';
|
|
47
47
|
import 'lodash/mapValues';
|
|
48
48
|
import 'omit-empty-es';
|
|
49
|
+
import 'redux';
|
|
49
50
|
import 'redux-thunk';
|
|
50
51
|
import '@commercetools-frontend/notifications';
|
|
51
52
|
import '@babel/runtime-corejs3/core-js-stable/instance/index-of';
|
|
@@ -71,9 +72,9 @@ import '@commercetools-frontend/l10n';
|
|
|
71
72
|
import '@babel/runtime-corejs3/core-js-stable/reflect/construct';
|
|
72
73
|
import '@babel/runtime-corejs3/helpers/classCallCheck';
|
|
73
74
|
import '@babel/runtime-corejs3/helpers/createClass';
|
|
74
|
-
import '@babel/runtime-corejs3/helpers/inherits';
|
|
75
75
|
import '@babel/runtime-corejs3/helpers/possibleConstructorReturn';
|
|
76
76
|
import '@babel/runtime-corejs3/helpers/getPrototypeOf';
|
|
77
|
+
import '@babel/runtime-corejs3/helpers/inherits';
|
|
77
78
|
import '@babel/runtime-corejs3/core-js-stable/object/from-entries';
|
|
78
79
|
import '@babel/runtime-corejs3/core-js-stable/instance/flags';
|
|
79
80
|
import '@flopflip/combine-adapters';
|
|
@@ -124,12 +125,6 @@ const ButlerCommand = props => jsxs("div", {
|
|
|
124
125
|
})
|
|
125
126
|
})]
|
|
126
127
|
}, props.command.id);
|
|
127
|
-
ButlerCommand.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
128
|
-
command: _pt.any.isRequired,
|
|
129
|
-
isSelected: _pt.bool,
|
|
130
|
-
onClick: _pt.func.isRequired,
|
|
131
|
-
onMouseEnter: _pt.func.isRequired
|
|
132
|
-
} : {};
|
|
133
128
|
ButlerCommand.displayName = 'ButlerCommand';
|
|
134
129
|
|
|
135
130
|
var messages = defineMessages({
|
|
@@ -382,7 +377,7 @@ var messages = defineMessages({
|
|
|
382
377
|
});
|
|
383
378
|
|
|
384
379
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
385
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
380
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context10, _context11; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context10 = ownKeys(Object(t), !0)).call(_context10, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context11 = ownKeys(Object(t))).call(_context11, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
386
381
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
387
382
|
const isSelectAllCombo = event => event.key === 'a' && event.metaKey && !event.ctrlKey && !event.altKey && !event.shiftKey;
|
|
388
383
|
const isCloseCombo = event => event.key === 'Escape' && !event.metaKey && !event.ctrlKey && !event.altKey && !event.shiftKey;
|
|
@@ -886,16 +881,16 @@ const Butler = props => {
|
|
|
886
881
|
css: /*#__PURE__*/css("align-self:center;margin-top:", designTokens.spacingS, ";margin-right:", designTokens.spacingS, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:Butler;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd3BCc0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSk7XG5cbiAgY29uc3Qgc2hvdWxkU2VsZWN0RmllbGRUZXh0ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaXNOZXdXaW5kb3dDb21ibyA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNraXBOZXh0U2VsZWN0aW9uID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgc2VhcmNoQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3Qgc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IHRydWUgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgdW5zZXRIYXNOZXR3b3JrRXJyb3IgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnbmV0d29ya0Vycm9yJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgfSwgW10pO1xuXG4gIC8vIERlc3RydWN0dXJlIGZ1bmN0aW9ucyBmcm9tIHByb3BzIHRvIHJlZmVyZW5jZSB0aGVtIGluIHRoZSBob29rIGRlcGVuZGVuY3kgbGlzdFxuICBjb25zdCB7XG4gICAgc2VhcmNoOiBzZWFyY2hGcm9tUGFyZW50LFxuICAgIG9uQ2xvc2U6IG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgIGV4ZWN1dGVDb21tYW5kOiBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgb25IaXN0b3J5RW50cmllc0NoYW5nZTogb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgZ2V0TmV4dENvbW1hbmRzOiBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3Qgc2hha2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50KSB7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgICBwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvblxuICAgICAgKTtcbiAgICAgIC8vIC0+IHRyaWdnZXJpbmcgcmVmbG93XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgdm9pZCBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5vZmZzZXRXaWR0aDtcbiAgICAgIHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50LmNsYXNzTGlzdC5hZGQocHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb24pO1xuICAgIH1cbiAgfSwgW3Byb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uXSk7XG5cbiAgY29uc3QgZXhlY3V0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB7XG4gICAgICAvLyBPbmx5IG1haW4gZW50cmllcyBnZXQgYWRkZWQgdG8gaGlzdG9yeSwgc28gd2hlbiBhIHN1YmNvbW1hbmQgaXMgZXhlY3V0ZWQsXG4gICAgICAvLyB3ZSBhZGQgdGhlIG1haW4gY29tbWFuZCBvZiBpdCB0byB0aGUgaGlzdG9yeSAodGhlIHRvcC1sZXZlbCBjb21tYW5kKS5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUga2V5IHRvIGlkZW50aWZ5IGhpc3RvcnkgZW50cmllcyBieSBpcyBhbHdheXMgdGhlIHNlYXJjaFRleHRcbiAgICAgIC8vIFRoZXJlIHdpbGwgbmV2ZXIgYmUgdHdvIGhpc3RvcnkgZW50cmllcyB3aXRoIHRoZSBzYW1lIHNlYXJjaFRleHRcbiAgICAgIGNvbnN0IGVudHJ5ID1cbiAgICAgICAgc3RhdGUuc3RhY2subGVuZ3RoID09PSAwXG4gICAgICAgICAgPyAvLyBUaGUgc3RhY2sgaXMgZW1wdHksIHNvIHdlIGFyZSBleGVjdXRpbmcgYSB0b3AtbGV2ZWwgY29tbWFuZFxuICAgICAgICAgICAgeyBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LCByZXN1bHRzOiBzdGF0ZS5yZXN1bHRzIH1cbiAgICAgICAgICA6IC8vIFdlIGFyZSBleGVjdXRpbmcgYSBzdWJjb21tYW5kLCBzbyB3ZSBnZXQgdGhlIHRvcC1sZXZlbCBjb21tYW5kIGZvciBpdCxcbiAgICAgICAgICAgIC8vIHdoaWNoIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHN0YWNrLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zdGFja1swXS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBzdGF0ZS5zdGFja1swXS5yZXN1bHRzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgLy8gQWRkIHRoZSBlbnRyeSB0byB0aGUgaGlzdG9yeSwgd2hpbGUgZXhjbHVkaW5nIGFueSBlYXJsaWVyIGhpc3RvcnkgZW50cnlcbiAgICAgIC8vIHdpdGggdGhlIHNhbWUgc2VhcmNoIHRleHQuIFRoaXMgZWZmZWN0aXZlbHkgXCJtb3Zlc1wiIHRoYXQgZW50cnkgdG8gdGhlXG4gICAgICAvLyB0b3Agb2YgdGhlIGhpc3RvcnkgKHdpdGggdGhlIG1vc3QgcmVjZW50IHJlc3VsdHMpLCBvciBhcHBlbmRzIGEgbmV3IGVudHJ5XG4gICAgICAvLyB3aGVuIGl0IGRpZG4ndCBleGlzdCBiZWZvcmUuXG4gICAgICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlRnJvbVBhcmVudChbXG4gICAgICAgIC4uLnByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbHRlcihcbiAgICAgICAgICAoY29tbWFuZCkgPT4gY29tbWFuZC5zZWFyY2hUZXh0ICE9PSBlbnRyeS5zZWFyY2hUZXh0XG4gICAgICAgICksXG4gICAgICAgIGVudHJ5LFxuICAgICAgXSk7XG5cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfSk7XG5cbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50KCk7XG5cbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudChjb21tYW5kLCBtZXRhKTtcbiAgICB9LFxuICAgIFtcbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudCxcbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHN0YXRlLnJlc3VsdHMsXG4gICAgICBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgc3RhdGUuc3RhY2ssXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudGluZyBjdXJzb3IganVtcHMgY2FuIG9ubHkgaGFwcGVuIGluIG9uS2V5RG93biwgYnV0IG5vdCBpbiBvbktleVVwXG4gICAgICBldmVudC5wZXJzaXN0KCk7XG5cbiAgICAgIC8vIFdlIHdhbnQgdG8ga25vdyB3aGVuIHRoZSB1c2VyIHByZXNzZXMgY21kK2VudGVyIChjbWQgYmVpbmcgYSBtZXRhIGtleSkuXG4gICAgICAvLyBXZSBhcmUgb25seSB0b2xkIGFib3V0IHRoaXMgaW4ga2V5RG93biwgYnV0IG5vdCBpbiBrZXlVcCwgc28gd2UgbmVlZFxuICAgICAgLy8gdG8gaGFuZGxlIGl0IGhlcmVcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgaGFzTmV3V2luZG93TW9kaWZpZXIoZXZlbnQpKSB7XG4gICAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQXZvaWQgc2VsZWN0aW5nIHRoZSB3aG9sZSBwYWdlIHdoZW4gdXNlciBzZWxlY3RlcyBldmVyeXRoaW5nIHdpdGhcbiAgICAgIC8vIGEga2V5Ym9hcmQgc2hvcnRjdXQuIFRoZXJlIGlzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRob3VnaC5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHdob2xlIHBhZ2UgZnJvbSBiZWluZyBzZWxlY3RlZCBpbiBjYXNlIHRoZSB1c2VyXG4gICAgICAvLyAxKSBvcGVucyB0aGUgc2VhcmNoIGJveFxuICAgICAgLy8gMikgdHlwZXMgaW50byBpdFxuICAgICAgLy8gMykgc2VsZWN0cyBhbGwgdGV4dCB1c2luZyBjbWQrYVxuICAgICAgLy8gNCkgY2xvc2VzIHRoZSBzZWFyY2ggYm94IHdpdGggZXNjXG4gICAgICAvLyBXaXRob3V0IHRoaXMgaGFuZGxpbmcsIHRoZSB3aG9sZSBwYWdlIHdvdWxkIG5vdyBiZSBzZWxlY3RlZFxuICAgICAgaWYgKGlzU2VsZWN0QWxsQ29tYm8oZXZlbnQpKSB7XG4gICAgICAgIC8vIFRoaXMgc3RvcHMgdGhlIGJyb3dzZXIgZnJvbSBzZWxlY3RpbmcgYW55dGhpbmdcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHNlYXJjaElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAvLyBUaGlzIHNlbGVjdHMgdGhlIHRleHQgaW4gdGhlIHNlYXJjaCBpbnB1dFxuICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCBvdGhlciBrZXkgY29tYmluYXRpb25zIHVzaW5nIG1vZGlmaWVyIGtleXNcbiAgICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5KVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoaXNDbG9zZUNvbWJvKGV2ZW50KSkgcmV0dXJuO1xuXG4gICAgICAvLyBza2lwIG5leHQgbW91c2VFbnRlciB0byBhdm9pZCBzZXR0aW5nIHNlbGVjdGVkUmVzdWx0IHdoZW4gY3Vyc29yIGp1c3RcbiAgICAgIC8vIGhhcHBlbnMgdG8gYmUgd2hlcmUgdGhlIHJlc3VsdHMgd2lsbCBwb3AgdXBcbiAgICAgIHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAvLyBwcmV2ZW50IGN1cnNvciBmcm9tIGp1bXBpbmcgdG8gZW5kIG9mIHRleHQgaW5wdXRcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgLy8gYnJvd3NlIHRocm91Z2ggaGlzdG9yeVxuICAgICAgICBpZiAoXG4gICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAoc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPCAxICYmIHN0YXRlLmVuYWJsZUhpc3RvcnkpXG4gICAgICAgICkge1xuICAgICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID1cbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgID8gLy8gV2hlbiBnb2luZyBiYWNrIHRoZSBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgLTFcbiAgICAgICAgICAgICAgOiAvLyBXaGVuIGdvaW5nIGJhY2sgbW9yZSB0aGFuIG9uZSBzdGVwXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCA9PT0gc3RhdGUuc2VhcmNoVGV4dFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgLy8gUGljayB0aGUgcHJldmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5XG4gICAgICAgICAgY29uc3QgcHJldkNvbW1hbmQgPVxuICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9PT0gLTFcbiAgICAgICAgICAgICAgPyAvLyBwcmV2aW91cyBjb21tYW5kIG9uIHRvcCBvZiB0aGUgaGlzdG9yeSB3aGVuIGdvaW5nIGJhY2sgb25cbiAgICAgICAgICAgICAgICAvLyBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgbGFzdChwcm9wcy5oaXN0b3J5RW50cmllcylcbiAgICAgICAgICAgICAgOiAvLyBwcmV2aW91cyBjb21tYW5kIGlzIGRlZXBlciBkb3duXG4gICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgaGlzdG9yeSBkb2VzIG5vdCBleGlzdCAobmVnYXRpdmUgaW5kZXgpLCB0aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpbXBsaWNpdGx5IHJldHVybnMgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXNbc2VsZWN0ZWRJbmRleCAtIDFdO1xuICAgICAgICAgIC8vIFNraXAgd2hlbiBubyBwcmV2aW91cyBlbnRyeSBleGlzdHMgaW4gdGhlIGhpc3RvcnlcbiAgICAgICAgICBpZiAoIXByZXZDb21tYW5kKSByZXR1cm47XG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGJlZ2lubmluZyBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID4gLTEpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgY29uc3QgY29tbWFuZCA9IHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdO1xuICAgICAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzdGF0ZS5zZWFyY2hUZXh0O1xuICAgICAgICAgIGNvbnN0IGlzQ3Vyc29yQXRFbmQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgICBjb25zdCBpc0V2ZXJ5dGhpbmdTZWxlY3RlZCA9XG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ICYmXG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwICYmXG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgICAvLyBvbmx5IGFsbG93IGRpdmluZyBpbiB3aGVuIGN1cnNvciBpcyBhdCBlbmQgb2YgaW5wdXQgb3Igd2hlblxuICAgICAgICAgIC8vIHRoZSBjb21wbGV0ZSB0ZXh0IGlzIHNlbGVjdGVkICh3aGVuIGJyb3dzaW5nIHRocm91Z2ggaGlzdG9yeSlcbiAgICAgICAgICBpZiAoIWlzQ3Vyc29yQXRFbmQgJiYgIWlzRXZlcnl0aGluZ1NlbGVjdGVkKSByZXR1cm47XG5cbiAgICAgICAgICB1bnNldEhhc05ldHdvcmtFcnJvcigpO1xuXG4gICAgICAgICAgLy8gTk9URTogc2luY2Ugd2UgbmVlZCB0byBmZXRjaCB0aGUgXCJuZXh0IGNvbW1hbmRcIiwgd2hpY2ggaXMgYW4gYXN5bmMgb3BlcmF0aW9uLFxuICAgICAgICAgIC8vIHdlIHVzZSBhIElJRkUgdG8gcHJvY2VzcyB0aGF0IGFuZCBldmVudHVhbGx5IHVwZGF0ZSB0aGUgc3RhdGUuXG4gICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb21tYW5kKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5leHRDb21tYW5kcyA9IGF3YWl0IGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQoY29tbWFuZCk7XG4gICAgICAgICAgICAgIC8vIGF2b2lkIG1vdmluZyBjdXJzb3Igd2hlbiB0aGVyZSBhcmUgc3ViLW9wdGlvbnNcbiAgICAgICAgICAgICAgaWYgKG5leHRDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBzZWFyY2ggdGV4dCBoYXMgbm90IGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhlIG5leHQgcmVzdWx0cywgb3RoZXJ3aXNlIHdlJ2QgaW50ZXJydXB0IHRoZSB1c2VyLlxuICAgICAgICAgICAgICAgIC8vIFRocm93IGF3YXkgdGhlIHJlc3VsdHMgaW4gY2FzZSB0aGUgc2VhcmNoIHRleHQgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNlYXJjaFRleHQgPT09IHNlYXJjaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NldE5leHRDb21tYW5kcycsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHsgcmVzdWx0czogbmV4dENvbW1hbmRzIH0sXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFrZSgpO1xuICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgLy8gZ28gbGVmdCBpbiBzdGFja1xuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID0gbGFzdChzdGF0ZS5zdGFjayk7XG5cbiAgICAgICAgICAvLyBkbyBub3RoaW5nIHdoZW4gd2UgY2FuJ3QgZ28gbGVmdCBhbnltb3JlXG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuXG4gICAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIGEgY2hhciB0byB0aGUgbGVmdCBpbiB0ZXh0IGlucHV0XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHNoYWtlLFxuICAgICAgc3RhdGUsXG4gICAgICB1bnNldEhhc05ldHdvcmtFcnJvcixcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUtleVVwID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gc2V0dGluZyB0aGUgc2VsZWN0aW9uIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleVVwXG4gICAgICBpZiAoc2hvdWxkU2VsZWN0RmllbGRUZXh0LmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicgJiYgIWlzTmV3V2luZG93Q29tYm8uY3VycmVudCkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIganVzdCB0cmlnZ2VyZWQgdGhlIHNlYXJjaFxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID09PSAtMSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIgaGFkIHNvbWV0aGluZyBzZWxlY3RlZCBhbmQgd2FudHMgdG8gZ28gdGhlcmVcbiAgICAgIGV4ZWN1dGUoc3RhdGUucmVzdWx0c1tzdGF0ZS5zZWxlY3RlZFJlc3VsdF0sIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQsXG4gICAgICB9KTtcblxuICAgICAgaXNOZXdXaW5kb3dDb21iby5jdXJyZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFtleGVjdXRlLCBzdGF0ZS5yZXN1bHRzLCBzdGF0ZS5zZWxlY3RlZFJlc3VsdF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2s8Q2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWFyY2hUZXh0JywgcGF5bG9hZDogc2VhcmNoVGV4dCB9KTtcblxuICAgICAgLy8gQSBzZWFyY2ggdmlhIG5ldHdvcmsgaXMgb25seSB0cmlnZ2VyZWQgd2hlbiB0aGVyZVxuICAgICAgLy8gYXJlIG1vcmUgdGhhbiB0aHJlZSBjaGFyYWN0ZXJzLiBTbyBubyBmYWxzZSBsb2FkaW5nXG4gICAgICAvLyBpbmRpY2F0aW9uIGlzIGdpdmVuLlxuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHNlYXJjaEZyb21QYXJlbnQoc2VhcmNoVGV4dCkudGhlbihcbiAgICAgICAgKGFzeW5jUmVzdWx0czogQ29tbWFuZFtdKSA9PiB7XG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuXG4gICAgICAgICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKGFzeW5jUmVzdWx0cywge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICd0ZXh0Jywgd2VpZ2h0OiAwLjYgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAna2V5d29yZHMnLCB3ZWlnaHQ6IDAuNCB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG1pbk1hdGNoQ2hhckxlbmd0aDogMixcbiAgICAgICAgICAgIGluY2x1ZGVTY29yZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBmdXNlXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQpXG4gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHJlc3VsdHMgd2l0aCBhIG1hdGNoaW5nIHNjb3JlIG92ZXIgMC43NVxuICAgICAgICAgICAgLmZpbHRlcigocmVzdWx0KSA9PiAocmVzdWx0LnNjb3JlID8gcmVzdWx0LnNjb3JlIDwgMC43NSA6IGZhbHNlKSlcbiAgICAgICAgICAgIC8vIEtlZXAgYSBtYXhpbWFsIG9mIDkgcmVzdWx0c1xuICAgICAgICAgICAgLnNsaWNlKDAsIDkpO1xuXG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3NldFNlYXJjaFRleHRSZXN1bHRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHNlYXJjaFJlc3VsdHMubWFwKChyZXN1bHQpID0+IHJlc3VsdC5pdGVtKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHVuc2V0SXNMb2FkaW5nKCk7XG4gICAgICAgICAgc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBbXG4gICAgICBzZWFyY2hGcm9tUGFyZW50LFxuICAgICAgc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgc2V0SXNMb2FkaW5nLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgICB1bnNldElzTG9hZGluZyxcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNvbnRhaW5lckNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9KTtcbiAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuICB9LCBbb25DbG9zZUZyb21QYXJlbnRdKTtcblxuICBjb25zdCBjcmVhdGVDb21tYW5kTW91c2VFbnRlckhhbmRsZXIgPSB1c2VDYWxsYmFjazxcbiAgICAoaW5kZXg6IG51bWJlcikgPT4gTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+XG4gID4oXG4gICAgKGluZGV4KSA9PiAoKSA9PiB7XG4gICAgICAvLyBJbiBjYXNlIHRoZSBjdXJzb3IgaGFwcGVuZWQgdG8gYmUgaW4gYSBsb2NhdGlvbiB3aGVyZSBhXG4gICAgICAvLyByZXN1bHQgd291bGQgYXBwZWFyLCBpdCB3b3VsZCB0cmlnZ2VyIG9uTW91c2VFbnRlciBhbmQgdGhlXG4gICAgICAvLyByZXN1bHQgd291bGQgYmUgc2VsZWN0ZWQgaW1tZWRpYXRlbHkuIFRoaXMgaXMgbm90IHNvbWV0aGluZ1xuICAgICAgLy8gYSB1c2VyIHdvdWxkIGV4cGVjdCwgaGVuY2Ugd2UgcHJldmVudCBpdCBmcm9tIGhhcHBlbmluZy5cbiAgICAgIC8vIFRoZSB1c2VyIGhhcyB0byBtb3ZlIHRoZSBjdXJzb3IgdG8gYW4gb3B0aW9uIGV4cGxpY2l0bHkgZm9yXG4gICAgICAvLyBpdCB0byBiZWNvbWUgYWN0aXZlLiBIb3dldmVyLCB0aGUgdXNlciBjYW4gYWx3YXlzIGNsaWNrIGFuZFxuICAgICAgLy8gdGhhdCBhY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQuXG4gICAgICBpZiAoc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0cyB0aGUgc2VsZWN0ZWQgcmVzdWx0LCBtYWlubHkgZm9yIHRoZSBob3ZlciBlZmZlY3RcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3NlbGVjdGVkUmVzdWx0JywgcGF5bG9hZDogaW5kZXggfSk7XG4gICAgfSxcbiAgICBbXVxuICApO1xuICBjb25zdCBjcmVhdGVDb21tYW5kQ2xpY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGNvbW1hbmQ6IENvbW1hbmQpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChjb21tYW5kKSA9PiAoZXZlbnQpID0+IHtcbiAgICAgIGV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgICBvcGVuSW5OZXdUYWI6IGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2V4ZWN1dGVdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8QnV0bGVyQ29udGFpbmVyXG4gICAgICBvbkNsaWNrPXtoYW5kbGVDb250YWluZXJDbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzXCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17c2VhcmNoQ29udGFpbmVyUmVmfVxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR7dWlLaXREZXNpZ25Ub2tlbnMuYm9yZGVyUmFkaXVzNH07XG4gICAgICAgICAgbWluLWhlaWdodDogNDBweDtcblxuICAgICAgICAgIC8qIG9uZSBtb3JlIHRoYW4gYXBwLWJhciAoMjAwMDApIGFuZCBvbmUgbW9yZSB0aGFuIHRoZSBvdmVybGF5ICgyMDAwMSkgKi9cbiAgICAgICAgICB6LWluZGV4OiAyMDAwMjtcbiAgICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206ICR7c3RhdGUuaGFzTmV0d29ya0Vycm9yXG4gICAgICAgICAgICA/ICcwJ1xuICAgICAgICAgICAgOiB1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgIGB9XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIC8vIEF2b2lkIGNsb3Npbmcgd2hlbiB0aGUgc2VhcmNoQ29udGFpbmVyIGl0c2VsZiBpcyBjbGlja2VkXG4gICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlbiB0aGUgb3ZlcmxheSB3aWxsIGNsb3NlIHdoZW4gZS5nLlxuICAgICAgICAgIC8vIHRoZSBzZWFyY2ggaW5wdXQgaXMgY2xpY2tlZC5cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGh0bWxGb3I9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX07XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2VhcmNoSWNvbiBjb2xvcj1cIm5ldXRyYWw2MFwiIC8+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICByZWY9e3NlYXJjaElucHV0UmVmfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5pbnB1dFBsYWNlaG9kZXIpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX1cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdNfSAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfVxuICAgICAgICAgICAgICAgICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsNjB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfVxuICAgICAgICAgICAgdmFsdWU9e3N0YXRlLnNlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9XG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHtzdGF0ZS5pc0xvYWRpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExvYWRpbmdTcGlubmVyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlLmhhc05ldHdvcmtFcnJvcilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAke3VpS2l0RGVzaWduVG9rZW5zLmZvbnRTaXplMjB9O1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nWHN9O1xuICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMub2ZmbGluZX0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc3VsdHMubGVuZ3RoID09PSAwICYmIHN0YXRlLnNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU29saWR9O1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm5vUmVzdWx0c30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlLnJlc3VsdHMubWFwKChjb21tYW5kLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPEJ1dGxlckNvbW1hbmRcbiAgICAgICAgICAgICAga2V5PXtjb21tYW5kLmlkfVxuICAgICAgICAgICAgICBjb21tYW5kPXtjb21tYW5kfVxuICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17Y3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyKGluZGV4KX1cbiAgICAgICAgICAgICAgb25DbGljaz17Y3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlcihjb21tYW5kKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG4gICAgICAgIH0pKCl9XG4gICAgICA8L2Rpdj5cbiAgICA8L0J1dGxlckNvbnRhaW5lcj5cbiAgKTtcbn07XG5CdXRsZXIuZGlzcGxheU5hbWUgPSAnQnV0bGVyJztcblxuY29uc3QgQnV0bGVyV2l0aEFuaW1hdGlvbiA9IChwcm9wczogT21pdDxQcm9wcywgJ2NsYXNzTmFtZVNoYWtlQW5pbWF0aW9uJz4pID0+IChcbiAgPENsYXNzTmFtZXM+XG4gICAgeyh7IGNzcyB9KSA9PiAoXG4gICAgICA8QnV0bGVyXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgY2xhc3NOYW1lU2hha2VBbmltYXRpb249e2Nzc2BcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNDVzO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICR7c2hha2VBbmltYXRpb259O1xuICAgICAgICBgfVxuICAgICAgLz5cbiAgICApfVxuICA8L0NsYXNzTmFtZXM+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJXaXRoQW5pbWF0aW9uO1xuIl19 */"),
|
|
887
882
|
children: jsx(LoadingSpinner, {})
|
|
888
883
|
})]
|
|
889
|
-
}), ((
|
|
884
|
+
}), ((_context0, _context1) => {
|
|
890
885
|
if (state.hasNetworkError) return jsx("div", {
|
|
891
886
|
css: /*#__PURE__*/css("overflow:hidden;white-space:nowrap;cursor:default;background:", designTokens.colorError, ";text-align:center;text-transform:uppercase;color:", designTokens.colorSurface, ";font-size:", designTokens.fontSize20, ";padding:", designTokens.spacingXs, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:Butler;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc3FCd0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSk7XG5cbiAgY29uc3Qgc2hvdWxkU2VsZWN0RmllbGRUZXh0ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaXNOZXdXaW5kb3dDb21ibyA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNraXBOZXh0U2VsZWN0aW9uID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgc2VhcmNoQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3Qgc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IHRydWUgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgdW5zZXRIYXNOZXR3b3JrRXJyb3IgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnbmV0d29ya0Vycm9yJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgfSwgW10pO1xuXG4gIC8vIERlc3RydWN0dXJlIGZ1bmN0aW9ucyBmcm9tIHByb3BzIHRvIHJlZmVyZW5jZSB0aGVtIGluIHRoZSBob29rIGRlcGVuZGVuY3kgbGlzdFxuICBjb25zdCB7XG4gICAgc2VhcmNoOiBzZWFyY2hGcm9tUGFyZW50LFxuICAgIG9uQ2xvc2U6IG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgIGV4ZWN1dGVDb21tYW5kOiBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgb25IaXN0b3J5RW50cmllc0NoYW5nZTogb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgZ2V0TmV4dENvbW1hbmRzOiBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3Qgc2hha2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50KSB7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgICBwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvblxuICAgICAgKTtcbiAgICAgIC8vIC0+IHRyaWdnZXJpbmcgcmVmbG93XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgdm9pZCBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5vZmZzZXRXaWR0aDtcbiAgICAgIHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50LmNsYXNzTGlzdC5hZGQocHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb24pO1xuICAgIH1cbiAgfSwgW3Byb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uXSk7XG5cbiAgY29uc3QgZXhlY3V0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB7XG4gICAgICAvLyBPbmx5IG1haW4gZW50cmllcyBnZXQgYWRkZWQgdG8gaGlzdG9yeSwgc28gd2hlbiBhIHN1YmNvbW1hbmQgaXMgZXhlY3V0ZWQsXG4gICAgICAvLyB3ZSBhZGQgdGhlIG1haW4gY29tbWFuZCBvZiBpdCB0byB0aGUgaGlzdG9yeSAodGhlIHRvcC1sZXZlbCBjb21tYW5kKS5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUga2V5IHRvIGlkZW50aWZ5IGhpc3RvcnkgZW50cmllcyBieSBpcyBhbHdheXMgdGhlIHNlYXJjaFRleHRcbiAgICAgIC8vIFRoZXJlIHdpbGwgbmV2ZXIgYmUgdHdvIGhpc3RvcnkgZW50cmllcyB3aXRoIHRoZSBzYW1lIHNlYXJjaFRleHRcbiAgICAgIGNvbnN0IGVudHJ5ID1cbiAgICAgICAgc3RhdGUuc3RhY2subGVuZ3RoID09PSAwXG4gICAgICAgICAgPyAvLyBUaGUgc3RhY2sgaXMgZW1wdHksIHNvIHdlIGFyZSBleGVjdXRpbmcgYSB0b3AtbGV2ZWwgY29tbWFuZFxuICAgICAgICAgICAgeyBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LCByZXN1bHRzOiBzdGF0ZS5yZXN1bHRzIH1cbiAgICAgICAgICA6IC8vIFdlIGFyZSBleGVjdXRpbmcgYSBzdWJjb21tYW5kLCBzbyB3ZSBnZXQgdGhlIHRvcC1sZXZlbCBjb21tYW5kIGZvciBpdCxcbiAgICAgICAgICAgIC8vIHdoaWNoIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHN0YWNrLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zdGFja1swXS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBzdGF0ZS5zdGFja1swXS5yZXN1bHRzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgLy8gQWRkIHRoZSBlbnRyeSB0byB0aGUgaGlzdG9yeSwgd2hpbGUgZXhjbHVkaW5nIGFueSBlYXJsaWVyIGhpc3RvcnkgZW50cnlcbiAgICAgIC8vIHdpdGggdGhlIHNhbWUgc2VhcmNoIHRleHQuIFRoaXMgZWZmZWN0aXZlbHkgXCJtb3Zlc1wiIHRoYXQgZW50cnkgdG8gdGhlXG4gICAgICAvLyB0b3Agb2YgdGhlIGhpc3RvcnkgKHdpdGggdGhlIG1vc3QgcmVjZW50IHJlc3VsdHMpLCBvciBhcHBlbmRzIGEgbmV3IGVudHJ5XG4gICAgICAvLyB3aGVuIGl0IGRpZG4ndCBleGlzdCBiZWZvcmUuXG4gICAgICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlRnJvbVBhcmVudChbXG4gICAgICAgIC4uLnByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbHRlcihcbiAgICAgICAgICAoY29tbWFuZCkgPT4gY29tbWFuZC5zZWFyY2hUZXh0ICE9PSBlbnRyeS5zZWFyY2hUZXh0XG4gICAgICAgICksXG4gICAgICAgIGVudHJ5LFxuICAgICAgXSk7XG5cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfSk7XG5cbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50KCk7XG5cbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudChjb21tYW5kLCBtZXRhKTtcbiAgICB9LFxuICAgIFtcbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudCxcbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHN0YXRlLnJlc3VsdHMsXG4gICAgICBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgc3RhdGUuc3RhY2ssXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudGluZyBjdXJzb3IganVtcHMgY2FuIG9ubHkgaGFwcGVuIGluIG9uS2V5RG93biwgYnV0IG5vdCBpbiBvbktleVVwXG4gICAgICBldmVudC5wZXJzaXN0KCk7XG5cbiAgICAgIC8vIFdlIHdhbnQgdG8ga25vdyB3aGVuIHRoZSB1c2VyIHByZXNzZXMgY21kK2VudGVyIChjbWQgYmVpbmcgYSBtZXRhIGtleSkuXG4gICAgICAvLyBXZSBhcmUgb25seSB0b2xkIGFib3V0IHRoaXMgaW4ga2V5RG93biwgYnV0IG5vdCBpbiBrZXlVcCwgc28gd2UgbmVlZFxuICAgICAgLy8gdG8gaGFuZGxlIGl0IGhlcmVcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgaGFzTmV3V2luZG93TW9kaWZpZXIoZXZlbnQpKSB7XG4gICAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQXZvaWQgc2VsZWN0aW5nIHRoZSB3aG9sZSBwYWdlIHdoZW4gdXNlciBzZWxlY3RlcyBldmVyeXRoaW5nIHdpdGhcbiAgICAgIC8vIGEga2V5Ym9hcmQgc2hvcnRjdXQuIFRoZXJlIGlzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRob3VnaC5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHdob2xlIHBhZ2UgZnJvbSBiZWluZyBzZWxlY3RlZCBpbiBjYXNlIHRoZSB1c2VyXG4gICAgICAvLyAxKSBvcGVucyB0aGUgc2VhcmNoIGJveFxuICAgICAgLy8gMikgdHlwZXMgaW50byBpdFxuICAgICAgLy8gMykgc2VsZWN0cyBhbGwgdGV4dCB1c2luZyBjbWQrYVxuICAgICAgLy8gNCkgY2xvc2VzIHRoZSBzZWFyY2ggYm94IHdpdGggZXNjXG4gICAgICAvLyBXaXRob3V0IHRoaXMgaGFuZGxpbmcsIHRoZSB3aG9sZSBwYWdlIHdvdWxkIG5vdyBiZSBzZWxlY3RlZFxuICAgICAgaWYgKGlzU2VsZWN0QWxsQ29tYm8oZXZlbnQpKSB7XG4gICAgICAgIC8vIFRoaXMgc3RvcHMgdGhlIGJyb3dzZXIgZnJvbSBzZWxlY3RpbmcgYW55dGhpbmdcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHNlYXJjaElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAvLyBUaGlzIHNlbGVjdHMgdGhlIHRleHQgaW4gdGhlIHNlYXJjaCBpbnB1dFxuICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCBvdGhlciBrZXkgY29tYmluYXRpb25zIHVzaW5nIG1vZGlmaWVyIGtleXNcbiAgICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5KVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoaXNDbG9zZUNvbWJvKGV2ZW50KSkgcmV0dXJuO1xuXG4gICAgICAvLyBza2lwIG5leHQgbW91c2VFbnRlciB0byBhdm9pZCBzZXR0aW5nIHNlbGVjdGVkUmVzdWx0IHdoZW4gY3Vyc29yIGp1c3RcbiAgICAgIC8vIGhhcHBlbnMgdG8gYmUgd2hlcmUgdGhlIHJlc3VsdHMgd2lsbCBwb3AgdXBcbiAgICAgIHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAvLyBwcmV2ZW50IGN1cnNvciBmcm9tIGp1bXBpbmcgdG8gZW5kIG9mIHRleHQgaW5wdXRcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgLy8gYnJvd3NlIHRocm91Z2ggaGlzdG9yeVxuICAgICAgICBpZiAoXG4gICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAoc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPCAxICYmIHN0YXRlLmVuYWJsZUhpc3RvcnkpXG4gICAgICAgICkge1xuICAgICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID1cbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgID8gLy8gV2hlbiBnb2luZyBiYWNrIHRoZSBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgLTFcbiAgICAgICAgICAgICAgOiAvLyBXaGVuIGdvaW5nIGJhY2sgbW9yZSB0aGFuIG9uZSBzdGVwXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCA9PT0gc3RhdGUuc2VhcmNoVGV4dFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgLy8gUGljayB0aGUgcHJldmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5XG4gICAgICAgICAgY29uc3QgcHJldkNvbW1hbmQgPVxuICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9PT0gLTFcbiAgICAgICAgICAgICAgPyAvLyBwcmV2aW91cyBjb21tYW5kIG9uIHRvcCBvZiB0aGUgaGlzdG9yeSB3aGVuIGdvaW5nIGJhY2sgb25cbiAgICAgICAgICAgICAgICAvLyBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgbGFzdChwcm9wcy5oaXN0b3J5RW50cmllcylcbiAgICAgICAgICAgICAgOiAvLyBwcmV2aW91cyBjb21tYW5kIGlzIGRlZXBlciBkb3duXG4gICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgaGlzdG9yeSBkb2VzIG5vdCBleGlzdCAobmVnYXRpdmUgaW5kZXgpLCB0aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpbXBsaWNpdGx5IHJldHVybnMgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXNbc2VsZWN0ZWRJbmRleCAtIDFdO1xuICAgICAgICAgIC8vIFNraXAgd2hlbiBubyBwcmV2aW91cyBlbnRyeSBleGlzdHMgaW4gdGhlIGhpc3RvcnlcbiAgICAgICAgICBpZiAoIXByZXZDb21tYW5kKSByZXR1cm47XG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGJlZ2lubmluZyBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID4gLTEpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgY29uc3QgY29tbWFuZCA9IHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdO1xuICAgICAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzdGF0ZS5zZWFyY2hUZXh0O1xuICAgICAgICAgIGNvbnN0IGlzQ3Vyc29yQXRFbmQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgICBjb25zdCBpc0V2ZXJ5dGhpbmdTZWxlY3RlZCA9XG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ICYmXG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwICYmXG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgICAvLyBvbmx5IGFsbG93IGRpdmluZyBpbiB3aGVuIGN1cnNvciBpcyBhdCBlbmQgb2YgaW5wdXQgb3Igd2hlblxuICAgICAgICAgIC8vIHRoZSBjb21wbGV0ZSB0ZXh0IGlzIHNlbGVjdGVkICh3aGVuIGJyb3dzaW5nIHRocm91Z2ggaGlzdG9yeSlcbiAgICAgICAgICBpZiAoIWlzQ3Vyc29yQXRFbmQgJiYgIWlzRXZlcnl0aGluZ1NlbGVjdGVkKSByZXR1cm47XG5cbiAgICAgICAgICB1bnNldEhhc05ldHdvcmtFcnJvcigpO1xuXG4gICAgICAgICAgLy8gTk9URTogc2luY2Ugd2UgbmVlZCB0byBmZXRjaCB0aGUgXCJuZXh0IGNvbW1hbmRcIiwgd2hpY2ggaXMgYW4gYXN5bmMgb3BlcmF0aW9uLFxuICAgICAgICAgIC8vIHdlIHVzZSBhIElJRkUgdG8gcHJvY2VzcyB0aGF0IGFuZCBldmVudHVhbGx5IHVwZGF0ZSB0aGUgc3RhdGUuXG4gICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb21tYW5kKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5leHRDb21tYW5kcyA9IGF3YWl0IGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQoY29tbWFuZCk7XG4gICAgICAgICAgICAgIC8vIGF2b2lkIG1vdmluZyBjdXJzb3Igd2hlbiB0aGVyZSBhcmUgc3ViLW9wdGlvbnNcbiAgICAgICAgICAgICAgaWYgKG5leHRDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBzZWFyY2ggdGV4dCBoYXMgbm90IGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhlIG5leHQgcmVzdWx0cywgb3RoZXJ3aXNlIHdlJ2QgaW50ZXJydXB0IHRoZSB1c2VyLlxuICAgICAgICAgICAgICAgIC8vIFRocm93IGF3YXkgdGhlIHJlc3VsdHMgaW4gY2FzZSB0aGUgc2VhcmNoIHRleHQgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNlYXJjaFRleHQgPT09IHNlYXJjaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NldE5leHRDb21tYW5kcycsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHsgcmVzdWx0czogbmV4dENvbW1hbmRzIH0sXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFrZSgpO1xuICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgLy8gZ28gbGVmdCBpbiBzdGFja1xuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID0gbGFzdChzdGF0ZS5zdGFjayk7XG5cbiAgICAgICAgICAvLyBkbyBub3RoaW5nIHdoZW4gd2UgY2FuJ3QgZ28gbGVmdCBhbnltb3JlXG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuXG4gICAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIGEgY2hhciB0byB0aGUgbGVmdCBpbiB0ZXh0IGlucHV0XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHNoYWtlLFxuICAgICAgc3RhdGUsXG4gICAgICB1bnNldEhhc05ldHdvcmtFcnJvcixcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUtleVVwID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gc2V0dGluZyB0aGUgc2VsZWN0aW9uIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleVVwXG4gICAgICBpZiAoc2hvdWxkU2VsZWN0RmllbGRUZXh0LmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicgJiYgIWlzTmV3V2luZG93Q29tYm8uY3VycmVudCkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIganVzdCB0cmlnZ2VyZWQgdGhlIHNlYXJjaFxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID09PSAtMSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIgaGFkIHNvbWV0aGluZyBzZWxlY3RlZCBhbmQgd2FudHMgdG8gZ28gdGhlcmVcbiAgICAgIGV4ZWN1dGUoc3RhdGUucmVzdWx0c1tzdGF0ZS5zZWxlY3RlZFJlc3VsdF0sIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQsXG4gICAgICB9KTtcblxuICAgICAgaXNOZXdXaW5kb3dDb21iby5jdXJyZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFtleGVjdXRlLCBzdGF0ZS5yZXN1bHRzLCBzdGF0ZS5zZWxlY3RlZFJlc3VsdF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2s8Q2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWFyY2hUZXh0JywgcGF5bG9hZDogc2VhcmNoVGV4dCB9KTtcblxuICAgICAgLy8gQSBzZWFyY2ggdmlhIG5ldHdvcmsgaXMgb25seSB0cmlnZ2VyZWQgd2hlbiB0aGVyZVxuICAgICAgLy8gYXJlIG1vcmUgdGhhbiB0aHJlZSBjaGFyYWN0ZXJzLiBTbyBubyBmYWxzZSBsb2FkaW5nXG4gICAgICAvLyBpbmRpY2F0aW9uIGlzIGdpdmVuLlxuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHNlYXJjaEZyb21QYXJlbnQoc2VhcmNoVGV4dCkudGhlbihcbiAgICAgICAgKGFzeW5jUmVzdWx0czogQ29tbWFuZFtdKSA9PiB7XG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuXG4gICAgICAgICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKGFzeW5jUmVzdWx0cywge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICd0ZXh0Jywgd2VpZ2h0OiAwLjYgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAna2V5d29yZHMnLCB3ZWlnaHQ6IDAuNCB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG1pbk1hdGNoQ2hhckxlbmd0aDogMixcbiAgICAgICAgICAgIGluY2x1ZGVTY29yZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBmdXNlXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQpXG4gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHJlc3VsdHMgd2l0aCBhIG1hdGNoaW5nIHNjb3JlIG92ZXIgMC43NVxuICAgICAgICAgICAgLmZpbHRlcigocmVzdWx0KSA9PiAocmVzdWx0LnNjb3JlID8gcmVzdWx0LnNjb3JlIDwgMC43NSA6IGZhbHNlKSlcbiAgICAgICAgICAgIC8vIEtlZXAgYSBtYXhpbWFsIG9mIDkgcmVzdWx0c1xuICAgICAgICAgICAgLnNsaWNlKDAsIDkpO1xuXG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3NldFNlYXJjaFRleHRSZXN1bHRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHNlYXJjaFJlc3VsdHMubWFwKChyZXN1bHQpID0+IHJlc3VsdC5pdGVtKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHVuc2V0SXNMb2FkaW5nKCk7XG4gICAgICAgICAgc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBbXG4gICAgICBzZWFyY2hGcm9tUGFyZW50LFxuICAgICAgc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgc2V0SXNMb2FkaW5nLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgICB1bnNldElzTG9hZGluZyxcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNvbnRhaW5lckNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9KTtcbiAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuICB9LCBbb25DbG9zZUZyb21QYXJlbnRdKTtcblxuICBjb25zdCBjcmVhdGVDb21tYW5kTW91c2VFbnRlckhhbmRsZXIgPSB1c2VDYWxsYmFjazxcbiAgICAoaW5kZXg6IG51bWJlcikgPT4gTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+XG4gID4oXG4gICAgKGluZGV4KSA9PiAoKSA9PiB7XG4gICAgICAvLyBJbiBjYXNlIHRoZSBjdXJzb3IgaGFwcGVuZWQgdG8gYmUgaW4gYSBsb2NhdGlvbiB3aGVyZSBhXG4gICAgICAvLyByZXN1bHQgd291bGQgYXBwZWFyLCBpdCB3b3VsZCB0cmlnZ2VyIG9uTW91c2VFbnRlciBhbmQgdGhlXG4gICAgICAvLyByZXN1bHQgd291bGQgYmUgc2VsZWN0ZWQgaW1tZWRpYXRlbHkuIFRoaXMgaXMgbm90IHNvbWV0aGluZ1xuICAgICAgLy8gYSB1c2VyIHdvdWxkIGV4cGVjdCwgaGVuY2Ugd2UgcHJldmVudCBpdCBmcm9tIGhhcHBlbmluZy5cbiAgICAgIC8vIFRoZSB1c2VyIGhhcyB0byBtb3ZlIHRoZSBjdXJzb3IgdG8gYW4gb3B0aW9uIGV4cGxpY2l0bHkgZm9yXG4gICAgICAvLyBpdCB0byBiZWNvbWUgYWN0aXZlLiBIb3dldmVyLCB0aGUgdXNlciBjYW4gYWx3YXlzIGNsaWNrIGFuZFxuICAgICAgLy8gdGhhdCBhY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQuXG4gICAgICBpZiAoc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0cyB0aGUgc2VsZWN0ZWQgcmVzdWx0LCBtYWlubHkgZm9yIHRoZSBob3ZlciBlZmZlY3RcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3NlbGVjdGVkUmVzdWx0JywgcGF5bG9hZDogaW5kZXggfSk7XG4gICAgfSxcbiAgICBbXVxuICApO1xuICBjb25zdCBjcmVhdGVDb21tYW5kQ2xpY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGNvbW1hbmQ6IENvbW1hbmQpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChjb21tYW5kKSA9PiAoZXZlbnQpID0+IHtcbiAgICAgIGV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgICBvcGVuSW5OZXdUYWI6IGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2V4ZWN1dGVdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8QnV0bGVyQ29udGFpbmVyXG4gICAgICBvbkNsaWNrPXtoYW5kbGVDb250YWluZXJDbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzXCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17c2VhcmNoQ29udGFpbmVyUmVmfVxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR7dWlLaXREZXNpZ25Ub2tlbnMuYm9yZGVyUmFkaXVzNH07XG4gICAgICAgICAgbWluLWhlaWdodDogNDBweDtcblxuICAgICAgICAgIC8qIG9uZSBtb3JlIHRoYW4gYXBwLWJhciAoMjAwMDApIGFuZCBvbmUgbW9yZSB0aGFuIHRoZSBvdmVybGF5ICgyMDAwMSkgKi9cbiAgICAgICAgICB6LWluZGV4OiAyMDAwMjtcbiAgICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206ICR7c3RhdGUuaGFzTmV0d29ya0Vycm9yXG4gICAgICAgICAgICA/ICcwJ1xuICAgICAgICAgICAgOiB1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgIGB9XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIC8vIEF2b2lkIGNsb3Npbmcgd2hlbiB0aGUgc2VhcmNoQ29udGFpbmVyIGl0c2VsZiBpcyBjbGlja2VkXG4gICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlbiB0aGUgb3ZlcmxheSB3aWxsIGNsb3NlIHdoZW4gZS5nLlxuICAgICAgICAgIC8vIHRoZSBzZWFyY2ggaW5wdXQgaXMgY2xpY2tlZC5cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGh0bWxGb3I9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX07XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2VhcmNoSWNvbiBjb2xvcj1cIm5ldXRyYWw2MFwiIC8+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICByZWY9e3NlYXJjaElucHV0UmVmfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5pbnB1dFBsYWNlaG9kZXIpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX1cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdNfSAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfVxuICAgICAgICAgICAgICAgICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsNjB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfVxuICAgICAgICAgICAgdmFsdWU9e3N0YXRlLnNlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9XG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHtzdGF0ZS5pc0xvYWRpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExvYWRpbmdTcGlubmVyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlLmhhc05ldHdvcmtFcnJvcilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAke3VpS2l0RGVzaWduVG9rZW5zLmZvbnRTaXplMjB9O1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nWHN9O1xuICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMub2ZmbGluZX0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc3VsdHMubGVuZ3RoID09PSAwICYmIHN0YXRlLnNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU29saWR9O1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm5vUmVzdWx0c30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlLnJlc3VsdHMubWFwKChjb21tYW5kLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPEJ1dGxlckNvbW1hbmRcbiAgICAgICAgICAgICAga2V5PXtjb21tYW5kLmlkfVxuICAgICAgICAgICAgICBjb21tYW5kPXtjb21tYW5kfVxuICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17Y3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyKGluZGV4KX1cbiAgICAgICAgICAgICAgb25DbGljaz17Y3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlcihjb21tYW5kKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG4gICAgICAgIH0pKCl9XG4gICAgICA8L2Rpdj5cbiAgICA8L0J1dGxlckNvbnRhaW5lcj5cbiAgKTtcbn07XG5CdXRsZXIuZGlzcGxheU5hbWUgPSAnQnV0bGVyJztcblxuY29uc3QgQnV0bGVyV2l0aEFuaW1hdGlvbiA9IChwcm9wczogT21pdDxQcm9wcywgJ2NsYXNzTmFtZVNoYWtlQW5pbWF0aW9uJz4pID0+IChcbiAgPENsYXNzTmFtZXM+XG4gICAgeyh7IGNzcyB9KSA9PiAoXG4gICAgICA8QnV0bGVyXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgY2xhc3NOYW1lU2hha2VBbmltYXRpb249e2Nzc2BcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNDVzO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICR7c2hha2VBbmltYXRpb259O1xuICAgICAgICBgfVxuICAgICAgLz5cbiAgICApfVxuICA8L0NsYXNzTmFtZXM+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJXaXRoQW5pbWF0aW9uO1xuIl19 */"),
|
|
892
887
|
children: jsx(FormattedMessage, _objectSpread({}, messages.offline))
|
|
893
888
|
});
|
|
894
|
-
if (state.results.length === 0 && _trimInstanceProperty(
|
|
889
|
+
if (state.results.length === 0 && _trimInstanceProperty(_context0 = state.searchText).call(_context0).length > 0) return jsx("div", {
|
|
895
890
|
css: /*#__PURE__*/css("overflow:hidden;white-space:nowrap;cursor:default;background:", designTokens.colorNeutral, ";color:", designTokens.colorSolid, ";text-align:center;text-transform:uppercase;font-size:", designTokens.fontSize20, ";padding:", designTokens.spacingXs, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:Butler;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeXJCd0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSk7XG5cbiAgY29uc3Qgc2hvdWxkU2VsZWN0RmllbGRUZXh0ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaXNOZXdXaW5kb3dDb21ibyA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNraXBOZXh0U2VsZWN0aW9uID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgc2VhcmNoQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3Qgc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IHRydWUgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgdW5zZXRIYXNOZXR3b3JrRXJyb3IgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnbmV0d29ya0Vycm9yJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SXNMb2FkaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ2xvYWRpbmcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgfSwgW10pO1xuXG4gIC8vIERlc3RydWN0dXJlIGZ1bmN0aW9ucyBmcm9tIHByb3BzIHRvIHJlZmVyZW5jZSB0aGVtIGluIHRoZSBob29rIGRlcGVuZGVuY3kgbGlzdFxuICBjb25zdCB7XG4gICAgc2VhcmNoOiBzZWFyY2hGcm9tUGFyZW50LFxuICAgIG9uQ2xvc2U6IG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgIGV4ZWN1dGVDb21tYW5kOiBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgb25IaXN0b3J5RW50cmllc0NoYW5nZTogb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgZ2V0TmV4dENvbW1hbmRzOiBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3Qgc2hha2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50KSB7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgICBwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvblxuICAgICAgKTtcbiAgICAgIC8vIC0+IHRyaWdnZXJpbmcgcmVmbG93XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgdm9pZCBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5vZmZzZXRXaWR0aDtcbiAgICAgIHNlYXJjaENvbnRhaW5lclJlZi5jdXJyZW50LmNsYXNzTGlzdC5hZGQocHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb24pO1xuICAgIH1cbiAgfSwgW3Byb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uXSk7XG5cbiAgY29uc3QgZXhlY3V0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB7XG4gICAgICAvLyBPbmx5IG1haW4gZW50cmllcyBnZXQgYWRkZWQgdG8gaGlzdG9yeSwgc28gd2hlbiBhIHN1YmNvbW1hbmQgaXMgZXhlY3V0ZWQsXG4gICAgICAvLyB3ZSBhZGQgdGhlIG1haW4gY29tbWFuZCBvZiBpdCB0byB0aGUgaGlzdG9yeSAodGhlIHRvcC1sZXZlbCBjb21tYW5kKS5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUga2V5IHRvIGlkZW50aWZ5IGhpc3RvcnkgZW50cmllcyBieSBpcyBhbHdheXMgdGhlIHNlYXJjaFRleHRcbiAgICAgIC8vIFRoZXJlIHdpbGwgbmV2ZXIgYmUgdHdvIGhpc3RvcnkgZW50cmllcyB3aXRoIHRoZSBzYW1lIHNlYXJjaFRleHRcbiAgICAgIGNvbnN0IGVudHJ5ID1cbiAgICAgICAgc3RhdGUuc3RhY2subGVuZ3RoID09PSAwXG4gICAgICAgICAgPyAvLyBUaGUgc3RhY2sgaXMgZW1wdHksIHNvIHdlIGFyZSBleGVjdXRpbmcgYSB0b3AtbGV2ZWwgY29tbWFuZFxuICAgICAgICAgICAgeyBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LCByZXN1bHRzOiBzdGF0ZS5yZXN1bHRzIH1cbiAgICAgICAgICA6IC8vIFdlIGFyZSBleGVjdXRpbmcgYSBzdWJjb21tYW5kLCBzbyB3ZSBnZXQgdGhlIHRvcC1sZXZlbCBjb21tYW5kIGZvciBpdCxcbiAgICAgICAgICAgIC8vIHdoaWNoIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHN0YWNrLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zdGFja1swXS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBzdGF0ZS5zdGFja1swXS5yZXN1bHRzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgLy8gQWRkIHRoZSBlbnRyeSB0byB0aGUgaGlzdG9yeSwgd2hpbGUgZXhjbHVkaW5nIGFueSBlYXJsaWVyIGhpc3RvcnkgZW50cnlcbiAgICAgIC8vIHdpdGggdGhlIHNhbWUgc2VhcmNoIHRleHQuIFRoaXMgZWZmZWN0aXZlbHkgXCJtb3Zlc1wiIHRoYXQgZW50cnkgdG8gdGhlXG4gICAgICAvLyB0b3Agb2YgdGhlIGhpc3RvcnkgKHdpdGggdGhlIG1vc3QgcmVjZW50IHJlc3VsdHMpLCBvciBhcHBlbmRzIGEgbmV3IGVudHJ5XG4gICAgICAvLyB3aGVuIGl0IGRpZG4ndCBleGlzdCBiZWZvcmUuXG4gICAgICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlRnJvbVBhcmVudChbXG4gICAgICAgIC4uLnByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbHRlcihcbiAgICAgICAgICAoY29tbWFuZCkgPT4gY29tbWFuZC5zZWFyY2hUZXh0ICE9PSBlbnRyeS5zZWFyY2hUZXh0XG4gICAgICAgICksXG4gICAgICAgIGVudHJ5LFxuICAgICAgXSk7XG5cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfSk7XG5cbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50KCk7XG5cbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudChjb21tYW5kLCBtZXRhKTtcbiAgICB9LFxuICAgIFtcbiAgICAgIGV4ZWN1dGVDb21tYW5kRnJvbVBhcmVudCxcbiAgICAgIG9uQ2xvc2VGcm9tUGFyZW50LFxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHN0YXRlLnJlc3VsdHMsXG4gICAgICBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgc3RhdGUuc3RhY2ssXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudGluZyBjdXJzb3IganVtcHMgY2FuIG9ubHkgaGFwcGVuIGluIG9uS2V5RG93biwgYnV0IG5vdCBpbiBvbktleVVwXG4gICAgICBldmVudC5wZXJzaXN0KCk7XG5cbiAgICAgIC8vIFdlIHdhbnQgdG8ga25vdyB3aGVuIHRoZSB1c2VyIHByZXNzZXMgY21kK2VudGVyIChjbWQgYmVpbmcgYSBtZXRhIGtleSkuXG4gICAgICAvLyBXZSBhcmUgb25seSB0b2xkIGFib3V0IHRoaXMgaW4ga2V5RG93biwgYnV0IG5vdCBpbiBrZXlVcCwgc28gd2UgbmVlZFxuICAgICAgLy8gdG8gaGFuZGxlIGl0IGhlcmVcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgaGFzTmV3V2luZG93TW9kaWZpZXIoZXZlbnQpKSB7XG4gICAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQXZvaWQgc2VsZWN0aW5nIHRoZSB3aG9sZSBwYWdlIHdoZW4gdXNlciBzZWxlY3RlcyBldmVyeXRoaW5nIHdpdGhcbiAgICAgIC8vIGEga2V5Ym9hcmQgc2hvcnRjdXQuIFRoZXJlIGlzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRob3VnaC5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHdob2xlIHBhZ2UgZnJvbSBiZWluZyBzZWxlY3RlZCBpbiBjYXNlIHRoZSB1c2VyXG4gICAgICAvLyAxKSBvcGVucyB0aGUgc2VhcmNoIGJveFxuICAgICAgLy8gMikgdHlwZXMgaW50byBpdFxuICAgICAgLy8gMykgc2VsZWN0cyBhbGwgdGV4dCB1c2luZyBjbWQrYVxuICAgICAgLy8gNCkgY2xvc2VzIHRoZSBzZWFyY2ggYm94IHdpdGggZXNjXG4gICAgICAvLyBXaXRob3V0IHRoaXMgaGFuZGxpbmcsIHRoZSB3aG9sZSBwYWdlIHdvdWxkIG5vdyBiZSBzZWxlY3RlZFxuICAgICAgaWYgKGlzU2VsZWN0QWxsQ29tYm8oZXZlbnQpKSB7XG4gICAgICAgIC8vIFRoaXMgc3RvcHMgdGhlIGJyb3dzZXIgZnJvbSBzZWxlY3RpbmcgYW55dGhpbmdcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHNlYXJjaElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAvLyBUaGlzIHNlbGVjdHMgdGhlIHRleHQgaW4gdGhlIHNlYXJjaCBpbnB1dFxuICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCBvdGhlciBrZXkgY29tYmluYXRpb25zIHVzaW5nIG1vZGlmaWVyIGtleXNcbiAgICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5KVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoaXNDbG9zZUNvbWJvKGV2ZW50KSkgcmV0dXJuO1xuXG4gICAgICAvLyBza2lwIG5leHQgbW91c2VFbnRlciB0byBhdm9pZCBzZXR0aW5nIHNlbGVjdGVkUmVzdWx0IHdoZW4gY3Vyc29yIGp1c3RcbiAgICAgIC8vIGhhcHBlbnMgdG8gYmUgd2hlcmUgdGhlIHJlc3VsdHMgd2lsbCBwb3AgdXBcbiAgICAgIHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAvLyBwcmV2ZW50IGN1cnNvciBmcm9tIGp1bXBpbmcgdG8gZW5kIG9mIHRleHQgaW5wdXRcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgLy8gYnJvd3NlIHRocm91Z2ggaGlzdG9yeVxuICAgICAgICBpZiAoXG4gICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAoc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPCAxICYmIHN0YXRlLmVuYWJsZUhpc3RvcnkpXG4gICAgICAgICkge1xuICAgICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID1cbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgID8gLy8gV2hlbiBnb2luZyBiYWNrIHRoZSBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgLTFcbiAgICAgICAgICAgICAgOiAvLyBXaGVuIGdvaW5nIGJhY2sgbW9yZSB0aGFuIG9uZSBzdGVwXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCA9PT0gc3RhdGUuc2VhcmNoVGV4dFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgLy8gUGljayB0aGUgcHJldmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5XG4gICAgICAgICAgY29uc3QgcHJldkNvbW1hbmQgPVxuICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9PT0gLTFcbiAgICAgICAgICAgICAgPyAvLyBwcmV2aW91cyBjb21tYW5kIG9uIHRvcCBvZiB0aGUgaGlzdG9yeSB3aGVuIGdvaW5nIGJhY2sgb25cbiAgICAgICAgICAgICAgICAvLyBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgbGFzdChwcm9wcy5oaXN0b3J5RW50cmllcylcbiAgICAgICAgICAgICAgOiAvLyBwcmV2aW91cyBjb21tYW5kIGlzIGRlZXBlciBkb3duXG4gICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgaGlzdG9yeSBkb2VzIG5vdCBleGlzdCAobmVnYXRpdmUgaW5kZXgpLCB0aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpbXBsaWNpdGx5IHJldHVybnMgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXNbc2VsZWN0ZWRJbmRleCAtIDFdO1xuICAgICAgICAgIC8vIFNraXAgd2hlbiBubyBwcmV2aW91cyBlbnRyeSBleGlzdHMgaW4gdGhlIGhpc3RvcnlcbiAgICAgICAgICBpZiAoIXByZXZDb21tYW5kKSByZXR1cm47XG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGJlZ2lubmluZyBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID4gLTEpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgY29uc3QgY29tbWFuZCA9IHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdO1xuICAgICAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzdGF0ZS5zZWFyY2hUZXh0O1xuICAgICAgICAgIGNvbnN0IGlzQ3Vyc29yQXRFbmQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgICBjb25zdCBpc0V2ZXJ5dGhpbmdTZWxlY3RlZCA9XG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ICYmXG4gICAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwICYmXG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgICAvLyBvbmx5IGFsbG93IGRpdmluZyBpbiB3aGVuIGN1cnNvciBpcyBhdCBlbmQgb2YgaW5wdXQgb3Igd2hlblxuICAgICAgICAgIC8vIHRoZSBjb21wbGV0ZSB0ZXh0IGlzIHNlbGVjdGVkICh3aGVuIGJyb3dzaW5nIHRocm91Z2ggaGlzdG9yeSlcbiAgICAgICAgICBpZiAoIWlzQ3Vyc29yQXRFbmQgJiYgIWlzRXZlcnl0aGluZ1NlbGVjdGVkKSByZXR1cm47XG5cbiAgICAgICAgICB1bnNldEhhc05ldHdvcmtFcnJvcigpO1xuXG4gICAgICAgICAgLy8gTk9URTogc2luY2Ugd2UgbmVlZCB0byBmZXRjaCB0aGUgXCJuZXh0IGNvbW1hbmRcIiwgd2hpY2ggaXMgYW4gYXN5bmMgb3BlcmF0aW9uLFxuICAgICAgICAgIC8vIHdlIHVzZSBhIElJRkUgdG8gcHJvY2VzcyB0aGF0IGFuZCBldmVudHVhbGx5IHVwZGF0ZSB0aGUgc3RhdGUuXG4gICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb21tYW5kKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5leHRDb21tYW5kcyA9IGF3YWl0IGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQoY29tbWFuZCk7XG4gICAgICAgICAgICAgIC8vIGF2b2lkIG1vdmluZyBjdXJzb3Igd2hlbiB0aGVyZSBhcmUgc3ViLW9wdGlvbnNcbiAgICAgICAgICAgICAgaWYgKG5leHRDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBzZWFyY2ggdGV4dCBoYXMgbm90IGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhlIG5leHQgcmVzdWx0cywgb3RoZXJ3aXNlIHdlJ2QgaW50ZXJydXB0IHRoZSB1c2VyLlxuICAgICAgICAgICAgICAgIC8vIFRocm93IGF3YXkgdGhlIHJlc3VsdHMgaW4gY2FzZSB0aGUgc2VhcmNoIHRleHQgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNlYXJjaFRleHQgPT09IHNlYXJjaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NldE5leHRDb21tYW5kcycsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHsgcmVzdWx0czogbmV4dENvbW1hbmRzIH0sXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFrZSgpO1xuICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgLy8gZ28gbGVmdCBpbiBzdGFja1xuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID0gbGFzdChzdGF0ZS5zdGFjayk7XG5cbiAgICAgICAgICAvLyBkbyBub3RoaW5nIHdoZW4gd2UgY2FuJ3QgZ28gbGVmdCBhbnltb3JlXG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuXG4gICAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIGEgY2hhciB0byB0aGUgbGVmdCBpbiB0ZXh0IGlucHV0XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBwcmV2Q29tbWFuZC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICByZXN1bHRzOiBwcmV2Q29tbWFuZC5yZXN1bHRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGdldE5leHRDb21tYW5kc0Zyb21QYXJlbnQsXG4gICAgICBwcm9wcy5oaXN0b3J5RW50cmllcyxcbiAgICAgIHNoYWtlLFxuICAgICAgc3RhdGUsXG4gICAgICB1bnNldEhhc05ldHdvcmtFcnJvcixcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUtleVVwID0gdXNlQ2FsbGJhY2s8S2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4+KFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gc2V0dGluZyB0aGUgc2VsZWN0aW9uIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleVVwXG4gICAgICBpZiAoc2hvdWxkU2VsZWN0RmllbGRUZXh0LmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICAgIHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicgJiYgIWlzTmV3V2luZG93Q29tYm8uY3VycmVudCkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIganVzdCB0cmlnZ2VyZWQgdGhlIHNlYXJjaFxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkUmVzdWx0ID09PSAtMSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIFVzZXIgaGFkIHNvbWV0aGluZyBzZWxlY3RlZCBhbmQgd2FudHMgdG8gZ28gdGhlcmVcbiAgICAgIGV4ZWN1dGUoc3RhdGUucmVzdWx0c1tzdGF0ZS5zZWxlY3RlZFJlc3VsdF0sIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQsXG4gICAgICB9KTtcblxuICAgICAgaXNOZXdXaW5kb3dDb21iby5jdXJyZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFtleGVjdXRlLCBzdGF0ZS5yZXN1bHRzLCBzdGF0ZS5zZWxlY3RlZFJlc3VsdF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2s8Q2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWFyY2hUZXh0JywgcGF5bG9hZDogc2VhcmNoVGV4dCB9KTtcblxuICAgICAgLy8gQSBzZWFyY2ggdmlhIG5ldHdvcmsgaXMgb25seSB0cmlnZ2VyZWQgd2hlbiB0aGVyZVxuICAgICAgLy8gYXJlIG1vcmUgdGhhbiB0aHJlZSBjaGFyYWN0ZXJzLiBTbyBubyBmYWxzZSBsb2FkaW5nXG4gICAgICAvLyBpbmRpY2F0aW9uIGlzIGdpdmVuLlxuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHNlYXJjaEZyb21QYXJlbnQoc2VhcmNoVGV4dCkudGhlbihcbiAgICAgICAgKGFzeW5jUmVzdWx0czogQ29tbWFuZFtdKSA9PiB7XG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuXG4gICAgICAgICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKGFzeW5jUmVzdWx0cywge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICd0ZXh0Jywgd2VpZ2h0OiAwLjYgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAna2V5d29yZHMnLCB3ZWlnaHQ6IDAuNCB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG1pbk1hdGNoQ2hhckxlbmd0aDogMixcbiAgICAgICAgICAgIGluY2x1ZGVTY29yZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBmdXNlXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQpXG4gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHJlc3VsdHMgd2l0aCBhIG1hdGNoaW5nIHNjb3JlIG92ZXIgMC43NVxuICAgICAgICAgICAgLmZpbHRlcigocmVzdWx0KSA9PiAocmVzdWx0LnNjb3JlID8gcmVzdWx0LnNjb3JlIDwgMC43NSA6IGZhbHNlKSlcbiAgICAgICAgICAgIC8vIEtlZXAgYSBtYXhpbWFsIG9mIDkgcmVzdWx0c1xuICAgICAgICAgICAgLnNsaWNlKDAsIDkpO1xuXG4gICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ3NldFNlYXJjaFRleHRSZXN1bHRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHNlYXJjaFJlc3VsdHMubWFwKChyZXN1bHQpID0+IHJlc3VsdC5pdGVtKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHVuc2V0SXNMb2FkaW5nKCk7XG4gICAgICAgICAgc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBbXG4gICAgICBzZWFyY2hGcm9tUGFyZW50LFxuICAgICAgc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgc2V0SXNMb2FkaW5nLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgICB1bnNldElzTG9hZGluZyxcbiAgICBdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNvbnRhaW5lckNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9KTtcbiAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuICB9LCBbb25DbG9zZUZyb21QYXJlbnRdKTtcblxuICBjb25zdCBjcmVhdGVDb21tYW5kTW91c2VFbnRlckhhbmRsZXIgPSB1c2VDYWxsYmFjazxcbiAgICAoaW5kZXg6IG51bWJlcikgPT4gTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+XG4gID4oXG4gICAgKGluZGV4KSA9PiAoKSA9PiB7XG4gICAgICAvLyBJbiBjYXNlIHRoZSBjdXJzb3IgaGFwcGVuZWQgdG8gYmUgaW4gYSBsb2NhdGlvbiB3aGVyZSBhXG4gICAgICAvLyByZXN1bHQgd291bGQgYXBwZWFyLCBpdCB3b3VsZCB0cmlnZ2VyIG9uTW91c2VFbnRlciBhbmQgdGhlXG4gICAgICAvLyByZXN1bHQgd291bGQgYmUgc2VsZWN0ZWQgaW1tZWRpYXRlbHkuIFRoaXMgaXMgbm90IHNvbWV0aGluZ1xuICAgICAgLy8gYSB1c2VyIHdvdWxkIGV4cGVjdCwgaGVuY2Ugd2UgcHJldmVudCBpdCBmcm9tIGhhcHBlbmluZy5cbiAgICAgIC8vIFRoZSB1c2VyIGhhcyB0byBtb3ZlIHRoZSBjdXJzb3IgdG8gYW4gb3B0aW9uIGV4cGxpY2l0bHkgZm9yXG4gICAgICAvLyBpdCB0byBiZWNvbWUgYWN0aXZlLiBIb3dldmVyLCB0aGUgdXNlciBjYW4gYWx3YXlzIGNsaWNrIGFuZFxuICAgICAgLy8gdGhhdCBhY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQuXG4gICAgICBpZiAoc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0cyB0aGUgc2VsZWN0ZWQgcmVzdWx0LCBtYWlubHkgZm9yIHRoZSBob3ZlciBlZmZlY3RcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3NlbGVjdGVkUmVzdWx0JywgcGF5bG9hZDogaW5kZXggfSk7XG4gICAgfSxcbiAgICBbXVxuICApO1xuICBjb25zdCBjcmVhdGVDb21tYW5kQ2xpY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGNvbW1hbmQ6IENvbW1hbmQpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChjb21tYW5kKSA9PiAoZXZlbnQpID0+IHtcbiAgICAgIGV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgICBvcGVuSW5OZXdUYWI6IGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2V4ZWN1dGVdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8QnV0bGVyQ29udGFpbmVyXG4gICAgICBvbkNsaWNrPXtoYW5kbGVDb250YWluZXJDbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzXCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17c2VhcmNoQ29udGFpbmVyUmVmfVxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR7dWlLaXREZXNpZ25Ub2tlbnMuYm9yZGVyUmFkaXVzNH07XG4gICAgICAgICAgbWluLWhlaWdodDogNDBweDtcblxuICAgICAgICAgIC8qIG9uZSBtb3JlIHRoYW4gYXBwLWJhciAoMjAwMDApIGFuZCBvbmUgbW9yZSB0aGFuIHRoZSBvdmVybGF5ICgyMDAwMSkgKi9cbiAgICAgICAgICB6LWluZGV4OiAyMDAwMjtcbiAgICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206ICR7c3RhdGUuaGFzTmV0d29ya0Vycm9yXG4gICAgICAgICAgICA/ICcwJ1xuICAgICAgICAgICAgOiB1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgIGB9XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIC8vIEF2b2lkIGNsb3Npbmcgd2hlbiB0aGUgc2VhcmNoQ29udGFpbmVyIGl0c2VsZiBpcyBjbGlja2VkXG4gICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlbiB0aGUgb3ZlcmxheSB3aWxsIGNsb3NlIHdoZW4gZS5nLlxuICAgICAgICAgIC8vIHRoZSBzZWFyY2ggaW5wdXQgaXMgY2xpY2tlZC5cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGh0bWxGb3I9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX07XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2VhcmNoSWNvbiBjb2xvcj1cIm5ldXRyYWw2MFwiIC8+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICByZWY9e3NlYXJjaElucHV0UmVmfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5pbnB1dFBsYWNlaG9kZXIpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX1cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdNfSAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfVxuICAgICAgICAgICAgICAgICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsNjB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfVxuICAgICAgICAgICAgdmFsdWU9e3N0YXRlLnNlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9XG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJxdWljay1hY2Nlc3Mtc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHtzdGF0ZS5pc0xvYWRpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExvYWRpbmdTcGlubmVyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlLmhhc05ldHdvcmtFcnJvcilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAke3VpS2l0RGVzaWduVG9rZW5zLmZvbnRTaXplMjB9O1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nWHN9O1xuICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMub2ZmbGluZX0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc3VsdHMubGVuZ3RoID09PSAwICYmIHN0YXRlLnNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yU29saWR9O1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm5vUmVzdWx0c30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlLnJlc3VsdHMubWFwKChjb21tYW5kLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPEJ1dGxlckNvbW1hbmRcbiAgICAgICAgICAgICAga2V5PXtjb21tYW5kLmlkfVxuICAgICAgICAgICAgICBjb21tYW5kPXtjb21tYW5kfVxuICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17Y3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyKGluZGV4KX1cbiAgICAgICAgICAgICAgb25DbGljaz17Y3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlcihjb21tYW5kKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG4gICAgICAgIH0pKCl9XG4gICAgICA8L2Rpdj5cbiAgICA8L0J1dGxlckNvbnRhaW5lcj5cbiAgKTtcbn07XG5CdXRsZXIuZGlzcGxheU5hbWUgPSAnQnV0bGVyJztcblxuY29uc3QgQnV0bGVyV2l0aEFuaW1hdGlvbiA9IChwcm9wczogT21pdDxQcm9wcywgJ2NsYXNzTmFtZVNoYWtlQW5pbWF0aW9uJz4pID0+IChcbiAgPENsYXNzTmFtZXM+XG4gICAgeyh7IGNzcyB9KSA9PiAoXG4gICAgICA8QnV0bGVyXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgY2xhc3NOYW1lU2hha2VBbmltYXRpb249e2Nzc2BcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNDVzO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICR7c2hha2VBbmltYXRpb259O1xuICAgICAgICBgfVxuICAgICAgLz5cbiAgICApfVxuICA8L0NsYXNzTmFtZXM+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJXaXRoQW5pbWF0aW9uO1xuIl19 */"),
|
|
896
891
|
children: jsx(FormattedMessage, _objectSpread({}, messages.noResults))
|
|
897
892
|
});
|
|
898
|
-
return _mapInstanceProperty(
|
|
893
|
+
return _mapInstanceProperty(_context1 = state.results).call(_context1, (command, index) => jsx(ButlerCommand, {
|
|
899
894
|
command: command,
|
|
900
895
|
isSelected: state.selectedResult === index,
|
|
901
896
|
onMouseEnter: createCommandMouseEnterHandler(index),
|
|
@@ -905,15 +900,6 @@ const Butler = props => {
|
|
|
905
900
|
})
|
|
906
901
|
});
|
|
907
902
|
};
|
|
908
|
-
Butler.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
909
|
-
historyEntries: _pt.arrayOf(_pt.any).isRequired,
|
|
910
|
-
onHistoryEntriesChange: _pt.func.isRequired,
|
|
911
|
-
search: _pt.func.isRequired,
|
|
912
|
-
getNextCommands: _pt.func.isRequired,
|
|
913
|
-
executeCommand: _pt.func.isRequired,
|
|
914
|
-
onClose: _pt.func.isRequired,
|
|
915
|
-
classNameShakeAnimation: _pt.string.isRequired
|
|
916
|
-
} : {};
|
|
917
903
|
Butler.displayName = 'Butler';
|
|
918
904
|
const ButlerWithAnimation = props => jsx(ClassNames, {
|
|
919
905
|
children: _ref2 => {
|
|
@@ -963,7 +949,7 @@ function nonNullable(value) {
|
|
|
963
949
|
return value !== null && value !== undefined && typeof value !== 'boolean';
|
|
964
950
|
}
|
|
965
951
|
const createCommands = _ref => {
|
|
966
|
-
var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9,
|
|
952
|
+
var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context0, _context11;
|
|
967
953
|
let intl = _ref.intl,
|
|
968
954
|
applicationContext = _ref.applicationContext,
|
|
969
955
|
featureToggles = _ref.featureToggles,
|
|
@@ -1227,7 +1213,7 @@ const createCommands = _ref => {
|
|
|
1227
1213
|
type: actionTypes.go,
|
|
1228
1214
|
to: `/${applicationContext.project.key}/settings/developer`
|
|
1229
1215
|
},
|
|
1230
|
-
subCommands: _filterInstanceProperty(
|
|
1216
|
+
subCommands: _filterInstanceProperty(_context0 = [hasSomePermissions([permissions.ViewDeveloperSettings], applicationContext.permissions) && {
|
|
1231
1217
|
id: 'go/settings/developer/api-clients/list',
|
|
1232
1218
|
text: intl.formatMessage(messages.openApiClientsList),
|
|
1233
1219
|
action: {
|
|
@@ -1241,7 +1227,7 @@ const createCommands = _ref => {
|
|
|
1241
1227
|
type: actionTypes.go,
|
|
1242
1228
|
to: `/${applicationContext.project.key}/settings/developer/api-clients/new`
|
|
1243
1229
|
}
|
|
1244
|
-
}]).call(
|
|
1230
|
+
}]).call(_context0, nonNullable)
|
|
1245
1231
|
}, featureToggles.customApplications && hasSomePermissions([permissions.ManageProjectSettings], applicationContext.permissions) && {
|
|
1246
1232
|
id: 'go/settings/custom-applications',
|
|
1247
1233
|
text: intl.formatMessage(messages.openCustomApplicationsSettings),
|
|
@@ -1258,8 +1244,8 @@ const createCommands = _ref => {
|
|
|
1258
1244
|
// We would know these statically, but we define them here as we don't
|
|
1259
1245
|
// want to include them in the top-level search results
|
|
1260
1246
|
subCommands: () => {
|
|
1261
|
-
var
|
|
1262
|
-
return _Promise.resolve(_filterInstanceProperty(
|
|
1247
|
+
var _context1, _context10;
|
|
1248
|
+
return _Promise.resolve(_filterInstanceProperty(_context1 = _mapInstanceProperty(_context10 = applicationContext.project ? applicationContext.project.languages : []).call(_context10, language => changeProjectDataLocale && {
|
|
1263
1249
|
id: `action/set-resource-language/${language}`,
|
|
1264
1250
|
text: oneLineTrim`
|
|
1265
1251
|
${language}
|
|
@@ -1275,7 +1261,7 @@ const createCommands = _ref => {
|
|
|
1275
1261
|
// reload
|
|
1276
1262
|
location.reload();
|
|
1277
1263
|
}
|
|
1278
|
-
})).call(
|
|
1264
|
+
})).call(_context1, nonNullable));
|
|
1279
1265
|
}
|
|
1280
1266
|
}, {
|
|
1281
1267
|
id: 'go/support',
|
|
@@ -1325,7 +1311,7 @@ const createCommands = _ref => {
|
|
|
1325
1311
|
type: actionTypes.go,
|
|
1326
1312
|
to: `/account/organizations`
|
|
1327
1313
|
}
|
|
1328
|
-
}, ...(applicationContext.user ? _mapInstanceProperty(
|
|
1314
|
+
}, ...(applicationContext.user ? _mapInstanceProperty(_context11 = applicationContext.user.projects.results).call(_context11, userProject => ({
|
|
1329
1315
|
id: `go/project(${userProject.key})`,
|
|
1330
1316
|
text: intl.formatMessage(messages.useProject, {
|
|
1331
1317
|
projectName: userProject.name
|
|
@@ -1874,12 +1860,6 @@ const QuickAccess = props => {
|
|
|
1874
1860
|
getNextCommands: getNextCommands
|
|
1875
1861
|
});
|
|
1876
1862
|
};
|
|
1877
|
-
QuickAccess.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
1878
|
-
pimIndexerState: _pt.any.isRequired,
|
|
1879
|
-
onPimIndexerStateChange: _pt.func.isRequired,
|
|
1880
|
-
onClose: _pt.func.isRequired,
|
|
1881
|
-
onChangeProjectDataLocale: _pt.func
|
|
1882
|
-
} : {};
|
|
1883
1863
|
QuickAccess.displayName = 'QuickAccess';
|
|
1884
1864
|
|
|
1885
1865
|
export { QuickAccess as default };
|
package/dist/{redirect-to-login-8c7575fb.cjs.prod.js → redirect-to-login-12f467b8.cjs.prod.js}
RENAMED
|
@@ -9,7 +9,7 @@ var urlUtils = require('@commercetools-frontend/url-utils');
|
|
|
9
9
|
var oidc = require('./oidc-d74e6aa2.cjs.prod.js');
|
|
10
10
|
var useIsServedByProxy = require('./use-is-served-by-proxy-480e8de8.cjs.prod.js');
|
|
11
11
|
var getMcOrigin = require('./get-mc-origin-8f7a578c.cjs.prod.js');
|
|
12
|
-
var redirector = require('./redirector-
|
|
12
|
+
var redirector = require('./redirector-0c72d0a4.cjs.prod.js');
|
|
13
13
|
require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
14
14
|
require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
15
15
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
@@ -23,7 +23,6 @@ require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descripto
|
|
|
23
23
|
require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
24
24
|
require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
25
25
|
require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
26
|
-
require('prop-types');
|
|
27
26
|
require('qss');
|
|
28
27
|
require('./location-537e0660.cjs.prod.js');
|
|
29
28
|
|
|
@@ -7,7 +7,7 @@ import { trimLeadingAndTrailingSlashes, joinPaths } from '@commercetools-fronten
|
|
|
7
7
|
import { b as buildOidcScope, a as OIDC_RESPONSE_TYPES } from './oidc-b2520905.esm.js';
|
|
8
8
|
import { u as useIsServedByProxy } from './use-is-served-by-proxy-a383da4b.esm.js';
|
|
9
9
|
import { g as getMcOrigin } from './get-mc-origin-fecfee07.esm.js';
|
|
10
|
-
import { u as useRedirector } from './redirector-
|
|
10
|
+
import { u as useRedirector } from './redirector-d856975f.esm.js';
|
|
11
11
|
import '@babel/runtime-corejs3/core-js-stable/instance/map';
|
|
12
12
|
import '@babel/runtime-corejs3/core-js-stable/instance/for-each';
|
|
13
13
|
import '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
@@ -21,7 +21,6 @@ import '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor
|
|
|
21
21
|
import '@babel/runtime-corejs3/core-js-stable/object/define-properties';
|
|
22
22
|
import '@babel/runtime-corejs3/core-js-stable/object/define-property';
|
|
23
23
|
import '@babel/runtime-corejs3/helpers/defineProperty';
|
|
24
|
-
import 'prop-types';
|
|
25
24
|
import 'qss';
|
|
26
25
|
import './location-f21dbc25.esm.js';
|
|
27
26
|
|
package/dist/{redirect-to-login-321190b7.cjs.dev.js → redirect-to-login-3bee13ba.cjs.dev.js}
RENAMED
|
@@ -9,7 +9,7 @@ var urlUtils = require('@commercetools-frontend/url-utils');
|
|
|
9
9
|
var oidc = require('./oidc-8827f9fe.cjs.dev.js');
|
|
10
10
|
var useIsServedByProxy = require('./use-is-served-by-proxy-28f19a6f.cjs.dev.js');
|
|
11
11
|
var getMcOrigin = require('./get-mc-origin-a86dff20.cjs.dev.js');
|
|
12
|
-
var redirector = require('./redirector-
|
|
12
|
+
var redirector = require('./redirector-72ccfbc2.cjs.dev.js');
|
|
13
13
|
require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
14
14
|
require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
15
15
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
@@ -23,7 +23,6 @@ require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descripto
|
|
|
23
23
|
require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
24
24
|
require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
25
25
|
require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
26
|
-
require('prop-types');
|
|
27
26
|
require('qss');
|
|
28
27
|
require('./location-c835b8df.cjs.dev.js');
|
|
29
28
|
|
package/dist/{redirect-to-logout-e67c2985.cjs.dev.js → redirect-to-logout-5a95dd2d.cjs.dev.js}
RENAMED
|
@@ -13,22 +13,23 @@ var reactRouterDom = require('react-router-dom');
|
|
|
13
13
|
var constants = require('@commercetools-frontend/constants');
|
|
14
14
|
var useIsServedByProxy = require('./use-is-served-by-proxy-28f19a6f.cjs.dev.js');
|
|
15
15
|
var getMcOrigin = require('./get-mc-origin-a86dff20.cjs.dev.js');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
17
|
-
var redirector = require('./redirector-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-6e8b15ab.cjs.dev.js');
|
|
17
|
+
var redirector = require('./redirector-72ccfbc2.cjs.dev.js');
|
|
18
18
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
19
19
|
require('@commercetools-frontend/application-shell-connectors');
|
|
20
20
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
21
21
|
require('@babel/runtime-corejs3/core-js-stable/url');
|
|
22
22
|
require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
|
|
23
|
-
require('prop-types');
|
|
24
23
|
require('react');
|
|
25
|
-
require('./index-
|
|
24
|
+
require('./index-614accc4.cjs.dev.js');
|
|
26
25
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
27
26
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
27
|
+
require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
28
28
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
29
29
|
require('@reduxjs/toolkit');
|
|
30
30
|
require('lodash/mapValues');
|
|
31
31
|
require('omit-empty-es');
|
|
32
|
+
require('redux');
|
|
32
33
|
require('redux-thunk');
|
|
33
34
|
require('@commercetools-frontend/notifications');
|
|
34
35
|
require('@commercetools-frontend/sdk');
|
|
@@ -66,9 +67,9 @@ require('@commercetools-frontend/l10n');
|
|
|
66
67
|
require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
|
|
67
68
|
require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
68
69
|
require('@babel/runtime-corejs3/helpers/createClass');
|
|
69
|
-
require('@babel/runtime-corejs3/helpers/inherits');
|
|
70
70
|
require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
|
|
71
71
|
require('@babel/runtime-corejs3/helpers/getPrototypeOf');
|
|
72
|
+
require('@babel/runtime-corejs3/helpers/inherits');
|
|
72
73
|
require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
|
|
73
74
|
require('@babel/runtime-corejs3/core-js-stable/instance/flags');
|
|
74
75
|
require('@apollo/client/react');
|
package/dist/{redirect-to-logout-2d42f7f1.cjs.prod.js → redirect-to-logout-7fda85d0.cjs.prod.js}
RENAMED
|
@@ -13,22 +13,23 @@ var reactRouterDom = require('react-router-dom');
|
|
|
13
13
|
var constants = require('@commercetools-frontend/constants');
|
|
14
14
|
var useIsServedByProxy = require('./use-is-served-by-proxy-480e8de8.cjs.prod.js');
|
|
15
15
|
var getMcOrigin = require('./get-mc-origin-8f7a578c.cjs.prod.js');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
17
|
-
var redirector = require('./redirector-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-f38829e5.cjs.prod.js');
|
|
17
|
+
var redirector = require('./redirector-0c72d0a4.cjs.prod.js');
|
|
18
18
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
19
19
|
require('@commercetools-frontend/application-shell-connectors');
|
|
20
20
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
21
21
|
require('@babel/runtime-corejs3/core-js-stable/url');
|
|
22
22
|
require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
|
|
23
|
-
require('prop-types');
|
|
24
23
|
require('react');
|
|
25
|
-
require('./index-
|
|
24
|
+
require('./index-245e2980.cjs.prod.js');
|
|
26
25
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
27
26
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
27
|
+
require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
28
28
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
29
29
|
require('@reduxjs/toolkit');
|
|
30
30
|
require('lodash/mapValues');
|
|
31
31
|
require('omit-empty-es');
|
|
32
|
+
require('redux');
|
|
32
33
|
require('redux-thunk');
|
|
33
34
|
require('@commercetools-frontend/notifications');
|
|
34
35
|
require('@commercetools-frontend/sdk');
|
|
@@ -66,9 +67,9 @@ require('@commercetools-frontend/l10n');
|
|
|
66
67
|
require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
|
|
67
68
|
require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
68
69
|
require('@babel/runtime-corejs3/helpers/createClass');
|
|
69
|
-
require('@babel/runtime-corejs3/helpers/inherits');
|
|
70
70
|
require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
|
|
71
71
|
require('@babel/runtime-corejs3/helpers/getPrototypeOf');
|
|
72
|
+
require('@babel/runtime-corejs3/helpers/inherits');
|
|
72
73
|
require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
|
|
73
74
|
require('@babel/runtime-corejs3/core-js-stable/instance/flags');
|
|
74
75
|
require('@apollo/client/react');
|
|
@@ -11,22 +11,23 @@ import { useLocation } from 'react-router-dom';
|
|
|
11
11
|
import { LOGOUT_REASONS } from '@commercetools-frontend/constants';
|
|
12
12
|
import { u as useIsServedByProxy } from './use-is-served-by-proxy-a383da4b.esm.js';
|
|
13
13
|
import { g as getMcOrigin } from './get-mc-origin-fecfee07.esm.js';
|
|
14
|
-
import { R as RedirectToLogin } from './index-
|
|
15
|
-
import { R as Redirector } from './redirector-
|
|
14
|
+
import { R as RedirectToLogin } from './index-bfee32ba.esm.js';
|
|
15
|
+
import { R as Redirector } from './redirector-d856975f.esm.js';
|
|
16
16
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
17
17
|
import '@commercetools-frontend/application-shell-connectors';
|
|
18
18
|
import '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
19
19
|
import '@babel/runtime-corejs3/core-js-stable/url';
|
|
20
20
|
import '@babel/runtime-corejs3/core-js-stable/instance/reverse';
|
|
21
|
-
import 'prop-types';
|
|
22
21
|
import 'react';
|
|
23
|
-
import './index-
|
|
22
|
+
import './index-86039df7.esm.js';
|
|
24
23
|
import '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
25
24
|
import '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
25
|
+
import '@babel/runtime-corejs3/core-js-stable/instance/concat';
|
|
26
26
|
import '@babel/runtime-corejs3/core-js-stable/reflect/has';
|
|
27
27
|
import '@reduxjs/toolkit';
|
|
28
28
|
import 'lodash/mapValues';
|
|
29
29
|
import 'omit-empty-es';
|
|
30
|
+
import 'redux';
|
|
30
31
|
import 'redux-thunk';
|
|
31
32
|
import '@commercetools-frontend/notifications';
|
|
32
33
|
import '@commercetools-frontend/sdk';
|
|
@@ -64,9 +65,9 @@ import '@commercetools-frontend/l10n';
|
|
|
64
65
|
import '@babel/runtime-corejs3/core-js-stable/reflect/construct';
|
|
65
66
|
import '@babel/runtime-corejs3/helpers/classCallCheck';
|
|
66
67
|
import '@babel/runtime-corejs3/helpers/createClass';
|
|
67
|
-
import '@babel/runtime-corejs3/helpers/inherits';
|
|
68
68
|
import '@babel/runtime-corejs3/helpers/possibleConstructorReturn';
|
|
69
69
|
import '@babel/runtime-corejs3/helpers/getPrototypeOf';
|
|
70
|
+
import '@babel/runtime-corejs3/helpers/inherits';
|
|
70
71
|
import '@babel/runtime-corejs3/core-js-stable/object/from-entries';
|
|
71
72
|
import '@babel/runtime-corejs3/core-js-stable/instance/flags';
|
|
72
73
|
import '@apollo/client/react';
|
|
@@ -9,7 +9,6 @@ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-
|
|
|
9
9
|
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
10
10
|
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
11
11
|
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
12
|
-
var _pt = require('prop-types');
|
|
13
12
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
14
13
|
var react = require('react');
|
|
15
14
|
var qss = require('qss');
|
|
@@ -25,7 +24,6 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
|
|
|
25
24
|
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
26
25
|
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
27
26
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
28
|
-
var _pt__default = /*#__PURE__*/_interopDefault(_pt);
|
|
29
27
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
30
28
|
|
|
31
29
|
function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -57,18 +55,6 @@ const Redirector = props => {
|
|
|
57
55
|
}, []);
|
|
58
56
|
return null;
|
|
59
57
|
};
|
|
60
|
-
Redirector.propTypes = {
|
|
61
|
-
to: _pt__default["default"].string.isRequired,
|
|
62
|
-
origin: _pt__default["default"].string,
|
|
63
|
-
queryParams: _pt__default["default"].shape({
|
|
64
|
-
redirectTo: _pt__default["default"].string,
|
|
65
|
-
client_id: _pt__default["default"].string,
|
|
66
|
-
response_type: _pt__default["default"].string,
|
|
67
|
-
scope: _pt__default["default"].string,
|
|
68
|
-
state: _pt__default["default"].string,
|
|
69
|
-
nonce: _pt__default["default"].string
|
|
70
|
-
})
|
|
71
|
-
};
|
|
72
58
|
Redirector.displayName = 'Redirector';
|
|
73
59
|
|
|
74
60
|
exports.Redirector = Redirector;
|