@c8y/ngx-components 1021.38.1 → 1021.49.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/api/services.d.ts +1 -1
- package/api/services.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
- package/connectivity/abstract-connectivity-tab.factory.d.ts +1 -1
- package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.model.d.ts +4 -2
- package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts +1 -0
- package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts +0 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
- package/context-dashboard/new-dashboard.guard.d.ts +1 -1
- package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
- package/core/action/action.component.d.ts +2 -1
- package/core/action/action.component.d.ts.map +1 -1
- package/core/action/action.model.d.ts +3 -2
- package/core/action/action.model.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts +2 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb.model.d.ts +2 -1
- package/core/breadcrumb/breadcrumb.model.d.ts.map +1 -1
- package/core/common/ApplicationOptions.d.ts +1 -0
- package/core/common/ApplicationOptions.d.ts.map +1 -1
- package/core/common/empty-state/empty-state.component.d.ts +2 -1
- package/core/common/empty-state/empty-state.component.d.ts.map +1 -1
- package/core/common/get-group-icon.pipe.d.ts +2 -1
- package/core/common/get-group-icon.pipe.d.ts.map +1 -1
- package/core/common/group.service.d.ts +22 -7
- package/core/common/group.service.d.ts.map +1 -1
- package/core/common/icon.directive.d.ts +5 -5
- package/core/common/icon.directive.d.ts.map +1 -1
- package/core/common/service-registry.model.d.ts +2 -1
- package/core/common/service-registry.model.d.ts.map +1 -1
- package/core/data-grid/data-grid.model.d.ts +2 -1
- package/core/data-grid/data-grid.model.d.ts.map +1 -1
- package/core/docs/docs.models.d.ts +2 -1
- package/core/docs/docs.models.d.ts.map +1 -1
- package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
- package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
- package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
- package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
- package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
- package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
- package/core/forms/filter-input.component.d.ts +8 -3
- package/core/forms/filter-input.component.d.ts.map +1 -1
- package/core/list-group/list-item-action.component.d.ts +2 -1
- package/core/list-group/list-item-action.component.d.ts.map +1 -1
- package/core/list-group/list-item-icon.component.d.ts +2 -1
- package/core/list-group/list-item-icon.component.d.ts.map +1 -1
- package/core/login/login.service.d.ts.map +1 -1
- package/core/navigator/navigator-icon.component.d.ts +1 -1
- package/core/navigator/navigator-icon.component.d.ts.map +1 -1
- package/core/navigator/navigator-node-data.d.ts +2 -1
- package/core/navigator/navigator-node-data.d.ts.map +1 -1
- package/core/navigator/navigator-node.component.d.ts.map +1 -1
- package/core/navigator/navigator-node.d.ts +2 -1
- package/core/navigator/navigator-node.d.ts.map +1 -1
- package/core/plugins/plugins.model.d.ts +7 -2
- package/core/plugins/plugins.model.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/core/properties-list/properties-list.component.d.ts +2 -1
- package/core/properties-list/properties-list.component.d.ts.map +1 -1
- package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
- package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
- package/core/router/context-route.service.d.ts.map +1 -1
- package/core/router/router.model.d.ts +1 -1
- package/core/router/router.model.d.ts.map +1 -1
- package/core/router/scoped-context-route.service.d.ts.map +1 -1
- package/core/search/search.model.d.ts +2 -1
- package/core/search/search.model.d.ts.map +1 -1
- package/core/select/select-keyboard.service.d.ts +4 -0
- package/core/select/select-keyboard.service.d.ts.map +1 -1
- package/core/select/select.component.d.ts +14 -3
- package/core/select/select.component.d.ts.map +1 -1
- package/core/select-modal/select-modal.component.d.ts +2 -1
- package/core/select-modal/select-modal.component.d.ts.map +1 -1
- package/core/shared/core.model.d.ts +5 -1
- package/core/shared/core.model.d.ts.map +1 -1
- package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
- package/core/tabs/tab.component.d.ts +3 -2
- package/core/tabs/tab.component.d.ts.map +1 -1
- package/core/tabs/tab.model.d.ts +10 -5
- package/core/tabs/tab.model.d.ts.map +1 -1
- package/core/tabs/tabs-outlet.component.d.ts +7 -4
- package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
- package/core/user/user-menu-item.component.d.ts +2 -1
- package/core/user/user-menu-item.component.d.ts.map +1 -1
- package/core/user/user.model.d.ts +2 -1
- package/core/user/user.model.d.ts.map +1 -1
- package/core/wizard/wizard.model.d.ts +4 -3
- package/core/wizard/wizard.model.d.ts.map +1 -1
- package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
- package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
- package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
- package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
- package/device-grid/columns/index.d.ts +1 -0
- package/device-grid/columns/index.d.ts.map +1 -1
- package/device-grid/device-grid.component.d.ts.map +1 -1
- package/device-grid/device-grid.service.d.ts +0 -2
- package/device-grid/device-grid.service.d.ts.map +1 -1
- package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
- package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
- package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
- package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
- package/device-provisioned-certificates/index.d.ts +2 -0
- package/device-provisioned-certificates/index.d.ts.map +1 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
- package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
- package/ecosystem/application-plugins/index.d.ts +1 -0
- package/ecosystem/application-plugins/index.d.ts.map +1 -1
- package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
- package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
- package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
- package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
- package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
- package/ecosystem/applications/application-list/application-list.component.d.ts +2 -2
- package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
- package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
- package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
- package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
- package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
- package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
- package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
- package/ecosystem/archived-confirm/index.d.ts +3 -0
- package/ecosystem/archived-confirm/index.d.ts.map +1 -0
- package/ecosystem/ecosystem.module.d.ts +2 -1
- package/ecosystem/ecosystem.module.d.ts.map +1 -1
- package/ecosystem/features/feature-list.component.d.ts +2 -2
- package/ecosystem/features/feature-list.component.d.ts.map +1 -1
- package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
- package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
- package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
- package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
- package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
- package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
- package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
- package/ecosystem/shared/add-application.component.d.ts +2 -1
- package/ecosystem/shared/add-application.component.d.ts.map +1 -1
- package/ecosystem/shared/application-card.component.d.ts +4 -0
- package/ecosystem/shared/application-card.component.d.ts.map +1 -1
- package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
- package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
- package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
- package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.model.d.ts +5 -1
- package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.service.d.ts +7 -0
- package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
- package/ecosystem/shared/index.d.ts +1 -0
- package/ecosystem/shared/index.d.ts.map +1 -1
- package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
- package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
- package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
- package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
- package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
- package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
- package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
- package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
- package/esm2022/alarms/alarm-info.component.mjs +1 -1
- package/esm2022/api/services.mjs +2 -2
- package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
- package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
- package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
- package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
- package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
- package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
- package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
- package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
- package/esm2022/core/action/action.component.mjs +1 -1
- package/esm2022/core/action/action.model.mjs +1 -1
- package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
- package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
- package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
- package/esm2022/core/common/ApplicationOptions.mjs +1 -1
- package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
- package/esm2022/core/common/group.service.mjs +2 -2
- package/esm2022/core/common/icon.directive.mjs +1 -1
- package/esm2022/core/common/service-registry.model.mjs +1 -1
- package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
- package/esm2022/core/docs/docs.models.mjs +1 -1
- package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
- package/esm2022/core/forms/filter-input.component.mjs +22 -7
- package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
- package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
- package/esm2022/core/login/credentials.component.mjs +2 -2
- package/esm2022/core/login/login.service.mjs +18 -7
- package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
- package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
- package/esm2022/core/navigator/navigator-node.mjs +1 -1
- package/esm2022/core/plugins/plugins.model.mjs +5 -1
- package/esm2022/core/plugins/plugins.service.mjs +6 -2
- package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
- package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
- package/esm2022/core/router/context-route.service.mjs +4 -2
- package/esm2022/core/router/router.model.mjs +1 -1
- package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
- package/esm2022/core/search/search.model.mjs +1 -1
- package/esm2022/core/select/select-keyboard.service.mjs +7 -3
- package/esm2022/core/select/select.component.mjs +36 -8
- package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
- package/esm2022/core/shared/core.model.mjs +6 -2
- package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
- package/esm2022/core/tabs/tab.component.mjs +1 -1
- package/esm2022/core/tabs/tab.model.mjs +1 -1
- package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
- package/esm2022/core/user/user-menu-item.component.mjs +1 -1
- package/esm2022/core/user/user.model.mjs +1 -1
- package/esm2022/core/wizard/wizard.model.mjs +1 -1
- package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
- package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
- package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
- package/esm2022/device-grid/columns/index.mjs +2 -1
- package/esm2022/device-grid/device-grid.component.mjs +3 -3
- package/esm2022/device-grid/device-grid.service.mjs +7 -25
- package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
- package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
- package/esm2022/device-provisioned-certificates/index.mjs +2 -0
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
- package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
- package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
- package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
- package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
- package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
- package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
- package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
- package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
- package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
- package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
- package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
- package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
- package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
- package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
- package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
- package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
- package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
- package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
- package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
- package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
- package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
- package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
- package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
- package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
- package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
- package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
- package/esm2022/ecosystem/shared/index.mjs +2 -1
- package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
- package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
- package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
- package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
- package/esm2022/files-repository/files-repository.component.mjs +2 -2
- package/esm2022/files-repository/files-repository.service.mjs +5 -16
- package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
- package/esm2022/icon-selector/icons/index.mjs +1 -1
- package/esm2022/operations/shared/status-option.model.mjs +1 -1
- package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
- package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
- package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
- package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
- package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
- package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
- package/esm2022/remote-access/configurations/index.mjs +16 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
- package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
- package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
- package/esm2022/remote-access/data/index.mjs +3 -0
- package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
- package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
- package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
- package/esm2022/remote-access/passthrough/index.mjs +36 -0
- package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
- package/esm2022/remote-access/shared/index.mjs +3 -0
- package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
- package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
- package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
- package/esm2022/remote-access/ssh/index.mjs +73 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
- package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
- package/esm2022/remote-access/telnet/index.mjs +43 -0
- package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
- package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
- package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
- package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
- package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
- package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
- package/esm2022/remote-access/vnc/index.mjs +73 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
- package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
- package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
- package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
- package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
- package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
- package/esm2022/repository/shared/repository.model.mjs +1 -1
- package/esm2022/repository/shared/repository.service.mjs +3 -3
- package/esm2022/services/status-options/status-options.model.mjs +1 -1
- package/esm2022/sub-assets/group-info.component.mjs +1 -1
- package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
- package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
- package/esm2022/upgrade/bridge.service.mjs +16 -2
- package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
- package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-api.mjs +3 -2
- package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +151 -38
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/files-repository/files-repository.component.d.ts.map +1 -1
- package/files-repository/files-repository.service.d.ts +0 -2
- package/files-repository/files-repository.service.d.ts.map +1 -1
- package/icon-selector/icon-selector.component.d.ts +3 -2
- package/icon-selector/icon-selector.component.d.ts.map +1 -1
- package/icon-selector/icons/index.d.ts +1 -0
- package/icon-selector/icons/index.d.ts.map +1 -1
- package/locales/de.po +157 -5
- package/locales/es.po +157 -5
- package/locales/fr.po +157 -5
- package/locales/ja_JP.po +156 -5
- package/locales/ko.po +156 -5
- package/locales/locales.pot +156 -4
- package/locales/nl.po +157 -5
- package/locales/pl.po +157 -5
- package/locales/pt_BR.po +157 -5
- package/locales/zh_CN.po +156 -5
- package/locales/zh_TW.po +156 -5
- package/operations/shared/status-option.model.d.ts +2 -1
- package/operations/shared/status-option.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts +21 -7
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
- package/remote-access/configurations/index.d.ts +3 -0
- package/remote-access/configurations/index.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
- package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
- package/remote-access/data/index.d.ts +3 -0
- package/remote-access/data/index.d.ts.map +1 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
- package/remote-access/data/remote-access.service.d.ts +94 -0
- package/remote-access/data/remote-access.service.d.ts.map +1 -0
- package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
- package/remote-access/passthrough/index.d.ts +17 -0
- package/remote-access/passthrough/index.d.ts.map +1 -0
- package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
- package/remote-access/shared/index.d.ts +3 -0
- package/remote-access/shared/index.d.ts.map +1 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
- package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
- package/remote-access/ssh/index.d.ts +22 -0
- package/remote-access/ssh/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
- package/remote-access/telnet/index.d.ts +17 -0
- package/remote-access/telnet/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
- package/remote-access/terminal-viewer/index.d.ts +2 -0
- package/remote-access/terminal-viewer/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
- package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
- package/remote-access/vnc/index.d.ts +22 -0
- package/remote-access/vnc/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
- package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
- package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
- package/repository/shared/repository.model.d.ts +2 -1
- package/repository/shared/repository.model.d.ts.map +1 -1
- package/services/status-options/status-options.model.d.ts +2 -1
- package/services/status-options/status-options.model.d.ts.map +1 -1
- package/sub-assets/group-info.component.d.ts +2 -1
- package/sub-assets/group-info.component.d.ts.map +1 -1
- package/translation-editor/data/translation-store.service.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/upgrade/bridge.service.d.ts +5 -0
- package/upgrade/bridge.service.d.ts.map +1 -1
- package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
- package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// tslint:disable-next-line:max-line-length
|
|
2
2
|
import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { ActivationEnd, Router } from '@angular/router';
|
|
4
|
+
import { isUndefined } from 'lodash-es';
|
|
4
5
|
import { Subject, merge } from 'rxjs';
|
|
5
6
|
import { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';
|
|
6
7
|
import { PopoverConfirmComponent } from '../modal/popover-confirm.component';
|
|
7
8
|
import { NavigatorIconComponent } from './navigator-icon.component';
|
|
8
9
|
import { NavigatorNode } from './navigator-node';
|
|
9
|
-
import { isUndefined } from 'lodash-es';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/router";
|
|
12
12
|
import * as i2 from "ngx-bootstrap/collapse";
|
|
@@ -41,6 +41,15 @@ export class NavigatorNodeComponent {
|
|
|
41
41
|
if (isUndefined(this.node.path)) {
|
|
42
42
|
return false;
|
|
43
43
|
}
|
|
44
|
+
// on exact match, for empty routes '' we need a special
|
|
45
|
+
// handling as there seems to be a bug with angular, as it
|
|
46
|
+
// does not show the primary oulet in this cases.
|
|
47
|
+
const currentUrlTree = this.router.parseUrl(this.router.url);
|
|
48
|
+
if (this.node.routerLinkExact &&
|
|
49
|
+
!currentUrlTree.root.children['primary'] &&
|
|
50
|
+
this.node.path === '/') {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
44
53
|
return this.router.isActive(this.node.path, {
|
|
45
54
|
paths: this.node.routerLinkExact ? 'exact' : 'subset',
|
|
46
55
|
queryParams: 'ignored',
|
|
@@ -190,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
190
199
|
type: ViewChild,
|
|
191
200
|
args: [PopoverConfirmComponent, { static: false }]
|
|
192
201
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQVF4Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRWpDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakRsQzs7Ozs7OztXQU9HO1FBQ08sY0FBUyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUy9EOztXQUVHO1FBQ0gsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxjQUFTLEdBQUcsS0FBSyxDQUNm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QUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRTtZQUNsRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBck1VLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHdOQUlOLGdCQUFnQix1REF5QmhDLHVCQUF1QixxRUMvRHBDLDQxRkErRkEseThDRDdEYSxzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9COzJFQU9nQyxRQUFRO3NCQUFyRSxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUtuRCxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQVVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS2dELE9BQU87c0JBQTdELFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0aW9uRW5kLCBJc0FjdGl2ZU1hdGNoT3B0aW9ucywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvcG92ZXJDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvcG9wb3Zlci1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0b3ItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2xpY2tPcHRpb25zLCBOYXZpZ2F0b3JOb2RlIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZSc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENsaWNrRXZlbnRTb3VyY2Uge1xuICBJQ09OID0gJ2ljb24nLFxuICBFWFBBTkRFUiA9ICdleHBhbmRlcicsXG4gIExJTksgPSAnbGluaydcbn1cblxuLyoqXG4gKiBOYXZpZ2F0b3Igbm9kZSByZW5kZXJlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW5hdmlnYXRvci1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRvci1ub2RlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnaWNvbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBpY29uU2xvdDogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogTmF2aWdhdG9yIG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSBub2RlOiBOYXZpZ2F0b3JOb2RlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5hdmlnYXRvciBub2RlIGlzIGEgcm9vdCBub2RlICh0b3Agbm9kZSBpbiB0aGUgaGllcmFyY2h5KS5cbiAgICovXG4gIEBJbnB1dCgpIGlzUm9vdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgYnJvYWRjYXN0aW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIGV2ZW50czogXCJpY29uXCIsIFwiZXhwYW5kZXJcIiBvciBcImxpbmtcIiBhcyBzdHJpbmcgdmFsdWUuXG4gICAqXG4gICAqIFRoZSB0eXBlIG9mIGV2ZW50IGRlcGVuZHMgb24gd2hlcmUgeW91IGNsaWNrIG9uIHRoZSBuYXZpZ2F0b3Igbm9kZTpcbiAgICogKiBjbGlja2luZyB0aGUgaWNvbiB3aWxsIGJyb2FkY2FzdCB0aGUgZXZlbnQgXCJpY29uXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGV4cGFuZGVyIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImV4cGFuZGVyXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGxhYmVsIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImxpbmtcIi5cbiAgICovXG4gIEBPdXRwdXQoKSBub2RlQ2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKFBvcG92ZXJDb25maXJtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZmlybTogUG9wb3ZlckNvbmZpcm1Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSB2aWV3SW5pdFRpbWVvdXQ7XG5cbiAgLyoqXG4gICAqIEEgc3ViamVjdCB0aGF0IGlzIHRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIG5vZGVJbml0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEEgb2JzZXJ2YWJsZSB3aGljaCBlbWl0cywgYXMgc29vbiBhcyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBub2RlIGNoYW5nZXMuXG4gICAqL1xuICBpc0FjdGl2ZSQgPSBtZXJnZShcbiAgICB0aGlzLm5vZGVJbml0JCxcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCkpXG4gICkucGlwZShcbiAgICBtYXAoKCkgPT4ge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKHRoaXMubm9kZS5wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHtcbiAgICAgICAgcGF0aHM6IHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QgPyAnZXhhY3QnIDogJ3N1YnNldCcsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiAnaWdub3JlZCcsXG4gICAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICAgIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnXG4gICAgICB9IGFzIElzQWN0aXZlTWF0Y2hPcHRpb25zKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHRhcChpc0FjdGl2ZSA9PiB7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZSh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRSZWN1cnNpdmVQYXJlbnQodGhpcy5ub2RlLnBhcmVudHMpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5ub2RlICYmXG4gICAgICAhY2hhbmdlcy5ub2RlLmZpcnN0Q2hhbmdlICYmXG4gICAgICBjaGFuZ2VzLm5vZGUucHJldmlvdXNWYWx1ZS5pY29uICE9PSBjaGFuZ2VzLm5vZGUuY3VycmVudFZhbHVlLmljb25cbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLm5vZGUuY29tcG9uZW50KSB7XG4gICAgICB0aGlzLnZpZXdJbml0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgdGhpcy5ub2RlLmNvbmZpcm0gPSB0aGlzLmNvbmZpcm07XG4gICAgICAgIHRoaXMubm9kZUluaXQkLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBleHBhbmRlciB0aXRsZS5cbiAgICovXG4gIGdldCBleHBhbmRUaXRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubm9kZS5vcGVuID8gJ0V4cGFuZCcgOiAnQ29sbGFwc2UnO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmcm9tIFNvdXJjZSBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBjbGljayhmcm9tOiAnaWNvbicgfCAnZXhwYW5kZXInIHwgJ2xpbmsnID0gJ2xpbmsnLCAkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgbGV0IG9wZW46IGJvb2xlYW47XG4gICAgc3dpdGNoIChmcm9tKSB7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVI6XG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgb3BlbiA9ICF0aGlzLm5vZGUub3BlbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuSUNPTjpcbiAgICAgIGNhc2UgQ2xpY2tFdmVudFNvdXJjZS5MSU5LOlxuICAgICAgICBvcGVuID0gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QpXG4gICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgOiAhdGhpcy5ub2RlLm9wZW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmhhbmRsZUV4cGFuZENvbGxhcHNlKG9wZW4sIGZyb20sICRldmVudCk7XG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdChmcm9tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIG9yIGNvbGxhcHNlcyB0aGUgbmF2aWdhdG9yIG5vZGUgYW5kIGl0cyBjaGlsZHJlbiByZWN1cnNpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBvcGVuIE9wZW4gb3IgY2xvc2UgdGhlIG5vZGUuXG4gICAqIEBwYXJhbSB7Q2xpY2tPcHRpb25zfSBmb3JOb2RlIENsaWNrIG9wdGlvbnMuXG4gICAqL1xuICBleHBhbmRDb2xsYXBzZShvcGVuLCBmb3JOb2RlOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMubm9kZS5vcGVuID0gb3BlbjtcbiAgICBmb3JOb2RlLm9wZW4gPSBvcGVuO1xuICAgIHRoaXMubm9kZS5jbGljayhmb3JOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy52aWV3SW5pdFRpbWVvdXQpO1xuXG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyB0aGUgcGFyZW50IG5vZGVzIHJlY3Vyc2l2ZWx5LlxuICAgKiBAcGFyYW0gbm9kZXMgVGhlIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHRyaWVkIHRvIGdldCBvcGVuZWQuXG4gICAqIEBwYXJhbSBjbGlja09wdGlvbiBUaGUgY2xpY2sgb3B0aW9ucyB0byBwZXJmb3JtIG9uIHRoZSBwYXJlbnQgbm9kZXMuXG4gICAqL1xuICBleHBhbmRSZWN1cnNpdmVQYXJlbnQobm9kZXM6IE5hdmlnYXRvck5vZGVbXSwgY2xpY2tPcHRpb246IENsaWNrT3B0aW9ucyA9IHsgZXhwYW5kZXI6IHRydWUgfSkge1xuICAgIG5vZGVzLmZvckVhY2gocGFyZW50Tm9kZSA9PiB7XG4gICAgICBpZiAoIXBhcmVudE5vZGUub3Blbikge1xuICAgICAgICBwYXJlbnROb2RlLm9wZW4gPSB0cnVlO1xuICAgICAgICBwYXJlbnROb2RlLmNsaWNrKGNsaWNrT3B0aW9uKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhwYW5kUmVjdXJzaXZlUGFyZW50KHBhcmVudE5vZGUucGFyZW50cywgY2xpY2tPcHRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFeHBhbmRDb2xsYXBzZShvcGVuLCBmcm9tLCAkZXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBvcGVuID09PSB0aGlzLm5vZGUub3BlbiB8fFxuICAgICAgKHRoaXMubm9kZS5wYXRoICYmICFvcGVuICYmIGZyb20gIT09IENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVIpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kQ29sbGFwc2Uob3BlbiwgeyBbZnJvbV06IHRydWUsICRldmVudCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSWNvbigpIHtcbiAgICBpZiAodGhpcy5ub2RlLmljb25UZW1wbGF0ZSkge1xuICAgICAgdGhpcy51cGRhdGVJY29uVGVtcGxhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVJY29uQ29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uQ29tcG9uZW50KCkge1xuICAgIGxldCBjb21wb25lbnRUeXBlID0gTmF2aWdhdG9ySWNvbkNvbXBvbmVudDtcbiAgICBpZiAodGhpcy5ub2RlICYmIHRoaXMubm9kZS5pY29uQ29tcG9uZW50KSB7XG4gICAgICBjb21wb25lbnRUeXBlID0gdGhpcy5ub2RlLmljb25Db21wb25lbnQ7XG4gICAgfVxuICAgIHRoaXMuaWNvblNsb3QuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmljb25TbG90LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5vZGUgPSB0aGlzLm5vZGU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUljb25UZW1wbGF0ZSgpIHtcbiAgICB0aGlzLmljb25TbG90LmNsZWFyKCk7XG4gICAgdGhpcy5pY29uU2xvdC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5ub2RlLmljb25UZW1wbGF0ZSwgdW5kZWZpbmVkLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNvbXBvbmVudFwiPlxuICA8bmctY29udGFpbmVyICpjOHlDb21wb25lbnRPdXRsZXQ9XCJub2RlLmNvbXBvbmVudDsgZW52aXJvbm1lbnRJbmplY3Rvcjogbm9kZS5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXZcbiAgY2xhc3M9XCJzbG90XCJcbiAgKm5nSWY9XCIhbm9kZS5jb21wb25lbnRcIlxuICBbaGlkZGVuXT1cIm5vZGUuaGlkZGVuXCJcbiAgKGRyYWdzdGFydCk9XCJub2RlLmRyYWdTdGFydCgkZXZlbnQpXCJcbiAgKGRyYWdlbmQpPVwibm9kZS5kcmFnRW5kKCRldmVudClcIlxuICAoZHJvcCk9XCJub2RlLmRyb3AoJGV2ZW50KVwiXG4gIFtkcmFnZ2FibGVdPVwibm9kZS5kcmFnZ2FibGVcIlxuICBbbmdDbGFzc109XCJ7IGRyYWdnZWQ6IG5vZGUuZHJhZ2dlZCwgZGlzYWJsZWQ6IG5vZGUubG9hZGluZyB9XCJcbj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpbmtcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbcm91dGVyTGlua109XCJub2RlLmNhbk5hdmlnYXRlID8gbm9kZS5wYXRoIDogdW5kZWZpbmVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSQgfCBhc3luYyxcbiAgICAgICAgJ2RyYWdnZWQtaG92ZXInOiBub2RlLmRyYWdnZWRIb3ZlciAmJiAhbm9kZS5kcmFnZ2VkXG4gICAgICB9XCJcbiAgICAgIChkcmFnb3Zlcik9XCJub2RlLmNhbkRyb3AgJiYgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgKGRyYWdlbnRlcik9XCJub2RlLmNhbkRyb3AgJiYgbm9kZS5kcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgICAoZHJhZ2xlYXZlKT1cIm5vZGUuY2FuRHJvcCAmJiBub2RlLmRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0bi1jbGVhblwiXG4gICAgICAgIHRpdGxlPVwie3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuaGFzQ2hpbGRyZW4gPyBub2RlLm9wZW4gOiBudWxsXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJub2RlLmxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaXNSb290ID8gbm9kZS5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgIChjbGljayk9XCJjbGljayhub2RlLmNhbk5hdmlnYXRlID8gJ2xpbmsnIDogJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAncm9vdC1saW5rJzogaXNSb290LFxuICAgICAgICAgIG9wZW46IG5vZGUub3BlbiAmJiBub2RlLmhhc0NoaWxkcmVuLFxuICAgICAgICAgIHBhcmVudDogbm9kZS5oYXNDaGlsZHJlblxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2hpbGRyZW4gcGFuZWwtZXhwYW5kIGV4cGFuZFwiXG4gICAgKm5nSWY9XCJub2RlLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgW2NvbGxhcHNlXT1cIiFub2RlLm9wZW5cIlxuICAgIFtpc0FuaW1hdGVkXT1cInRydWVcIlxuICA+XG4gICAgPGM4eS1uYXZpZ2F0b3Itbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljay5lbWl0KCRldmVudClcIlxuICAgID48L2M4eS1uYXZpZ2F0b3Itbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBpY29uIC0tPlxuPG5nLXRlbXBsYXRlICNuYXZpY29uPlxuICA8IS0tIGxvYWRlciAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImljb24tc3BpbiBsb2FkaW5nSW5kaWNhdG9yXCJcbiAgICBbYzh5SWNvbl09XCInY2lyY2xlLW8tbm90Y2gnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdtLWwtMTYnIDogaXNSb290LCAnbS1sLTgnOiAhaXNSb290IH1cIlxuICAgICpuZ0lmPVwibm9kZS5sb2FkaW5nICYmICFpc1Jvb3RcIlxuICA+PC9pPlxuICA8bmctY29udGFpbmVyICNpY29uPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lcj5cbiAgPCEtLXRpdGxlICAtLT5cbiAgPHNwYW4+e3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX08L3NwYW4+XG5cbiAgPCEtLWV4cGFuZGVyICAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImV4cGFuZGVyXCJcbiAgICBbYzh5SWNvbl09XCInY2hldnJvbi1kb3duJ1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleHBhbmRUaXRsZVwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAoY2xpY2spPVwiY2xpY2soJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgZGF0YS1jeT1cImM4eS1uYXZpZ2F0b3Itbm9kZS0tZXhwYW5kZXJcIlxuICA+PC9pPlxuXG4gIDwhLS0gIFBvcG92ZXIgY29uZmlybSAgLS0+XG4gIDxjOHktcG9wb3Zlci1jb25maXJtXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJuYXZpZ2F0b3ItcG9wb3ZlclwiXG4gID48L2M4eS1wb3BvdmVyLWNvbmZpcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBUS9EOztHQUVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQTZFakMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUE3RGxDOzs7Ozs7O1dBT0c7UUFDTyxjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTL0Q7O1dBRUc7UUFDSCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVoQzs7V0FFRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQ2Ys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QUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWpOVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix3TkFJTixnQkFBZ0IsdURBeUJoQyx1QkFBdUIscUVDL0RwQyw0MUZBK0ZBLHk4Q0Q3RGEsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjsyRUFPZ0MsUUFBUTtzQkFBckUsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLbkQsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFVSSxTQUFTO3NCQUFsQixNQUFNO2dCQUtnRCxPQUFPO3NCQUE3RCxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvcG92ZXJDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvcG9wb3Zlci1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0b3ItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2xpY2tPcHRpb25zLCBOYXZpZ2F0b3JOb2RlIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENsaWNrRXZlbnRTb3VyY2Uge1xuICBJQ09OID0gJ2ljb24nLFxuICBFWFBBTkRFUiA9ICdleHBhbmRlcicsXG4gIExJTksgPSAnbGluaydcbn1cblxuLyoqXG4gKiBOYXZpZ2F0b3Igbm9kZSByZW5kZXJlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW5hdmlnYXRvci1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRvci1ub2RlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnaWNvbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBpY29uU2xvdDogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogTmF2aWdhdG9yIG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSBub2RlOiBOYXZpZ2F0b3JOb2RlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5hdmlnYXRvciBub2RlIGlzIGEgcm9vdCBub2RlICh0b3Agbm9kZSBpbiB0aGUgaGllcmFyY2h5KS5cbiAgICovXG4gIEBJbnB1dCgpIGlzUm9vdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgYnJvYWRjYXN0aW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIGV2ZW50czogXCJpY29uXCIsIFwiZXhwYW5kZXJcIiBvciBcImxpbmtcIiBhcyBzdHJpbmcgdmFsdWUuXG4gICAqXG4gICAqIFRoZSB0eXBlIG9mIGV2ZW50IGRlcGVuZHMgb24gd2hlcmUgeW91IGNsaWNrIG9uIHRoZSBuYXZpZ2F0b3Igbm9kZTpcbiAgICogKiBjbGlja2luZyB0aGUgaWNvbiB3aWxsIGJyb2FkY2FzdCB0aGUgZXZlbnQgXCJpY29uXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGV4cGFuZGVyIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImV4cGFuZGVyXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGxhYmVsIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImxpbmtcIi5cbiAgICovXG4gIEBPdXRwdXQoKSBub2RlQ2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKFBvcG92ZXJDb25maXJtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZmlybTogUG9wb3ZlckNvbmZpcm1Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSB2aWV3SW5pdFRpbWVvdXQ7XG5cbiAgLyoqXG4gICAqIEEgc3ViamVjdCB0aGF0IGlzIHRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIG5vZGVJbml0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEEgb2JzZXJ2YWJsZSB3aGljaCBlbWl0cywgYXMgc29vbiBhcyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBub2RlIGNoYW5nZXMuXG4gICAqL1xuICBpc0FjdGl2ZSQgPSBtZXJnZShcbiAgICB0aGlzLm5vZGVJbml0JCxcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCkpXG4gICkucGlwZShcbiAgICBtYXAoKCkgPT4ge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKHRoaXMubm9kZS5wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBvbiBleGFjdCBtYXRjaCwgZm9yIGVtcHR5IHJvdXRlcyAnJyB3ZSBuZWVkIGEgc3BlY2lhbFxuICAgICAgLy8gaGFuZGxpbmcgYXMgdGhlcmUgc2VlbXMgdG8gYmUgYSBidWcgd2l0aCBhbmd1bGFyLCBhcyBpdFxuICAgICAgLy8gZG9lcyBub3Qgc2hvdyB0aGUgcHJpbWFyeSBvdWxldCBpbiB0aGlzIGNhc2VzLlxuICAgICAgY29uc3QgY3VycmVudFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm5vZGUucm91dGVyTGlua0V4YWN0ICYmXG4gICAgICAgICFjdXJyZW50VXJsVHJlZS5yb290LmNoaWxkcmVuWydwcmltYXJ5J10gJiZcbiAgICAgICAgdGhpcy5ub2RlLnBhdGggPT09ICcvJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHtcbiAgICAgICAgcGF0aHM6IHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QgPyAnZXhhY3QnIDogJ3N1YnNldCcsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiAnaWdub3JlZCcsXG4gICAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICAgIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnXG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHRhcChpc0FjdGl2ZSA9PiB7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZSh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRSZWN1cnNpdmVQYXJlbnQodGhpcy5ub2RlLnBhcmVudHMpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5ub2RlICYmXG4gICAgICAhY2hhbmdlcy5ub2RlLmZpcnN0Q2hhbmdlICYmXG4gICAgICBjaGFuZ2VzLm5vZGUucHJldmlvdXNWYWx1ZS5pY29uICE9PSBjaGFuZ2VzLm5vZGUuY3VycmVudFZhbHVlLmljb25cbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLm5vZGUuY29tcG9uZW50KSB7XG4gICAgICB0aGlzLnZpZXdJbml0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgdGhpcy5ub2RlLmNvbmZpcm0gPSB0aGlzLmNvbmZpcm07XG4gICAgICAgIHRoaXMubm9kZUluaXQkLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBleHBhbmRlciB0aXRsZS5cbiAgICovXG4gIGdldCBleHBhbmRUaXRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubm9kZS5vcGVuID8gJ0V4cGFuZCcgOiAnQ29sbGFwc2UnO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmcm9tIFNvdXJjZSBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBjbGljayhmcm9tOiAnaWNvbicgfCAnZXhwYW5kZXInIHwgJ2xpbmsnID0gJ2xpbmsnLCAkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgbGV0IG9wZW46IGJvb2xlYW47XG4gICAgc3dpdGNoIChmcm9tKSB7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVI6XG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgb3BlbiA9ICF0aGlzLm5vZGUub3BlbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuSUNPTjpcbiAgICAgIGNhc2UgQ2xpY2tFdmVudFNvdXJjZS5MSU5LOlxuICAgICAgICBvcGVuID0gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QpXG4gICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgOiAhdGhpcy5ub2RlLm9wZW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmhhbmRsZUV4cGFuZENvbGxhcHNlKG9wZW4sIGZyb20sICRldmVudCk7XG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdChmcm9tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIG9yIGNvbGxhcHNlcyB0aGUgbmF2aWdhdG9yIG5vZGUgYW5kIGl0cyBjaGlsZHJlbiByZWN1cnNpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBvcGVuIE9wZW4gb3IgY2xvc2UgdGhlIG5vZGUuXG4gICAqIEBwYXJhbSB7Q2xpY2tPcHRpb25zfSBmb3JOb2RlIENsaWNrIG9wdGlvbnMuXG4gICAqL1xuICBleHBhbmRDb2xsYXBzZShvcGVuLCBmb3JOb2RlOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMubm9kZS5vcGVuID0gb3BlbjtcbiAgICBmb3JOb2RlLm9wZW4gPSBvcGVuO1xuICAgIHRoaXMubm9kZS5jbGljayhmb3JOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy52aWV3SW5pdFRpbWVvdXQpO1xuXG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyB0aGUgcGFyZW50IG5vZGVzIHJlY3Vyc2l2ZWx5LlxuICAgKiBAcGFyYW0gbm9kZXMgVGhlIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHRyaWVkIHRvIGdldCBvcGVuZWQuXG4gICAqIEBwYXJhbSBjbGlja09wdGlvbiBUaGUgY2xpY2sgb3B0aW9ucyB0byBwZXJmb3JtIG9uIHRoZSBwYXJlbnQgbm9kZXMuXG4gICAqL1xuICBleHBhbmRSZWN1cnNpdmVQYXJlbnQobm9kZXM6IE5hdmlnYXRvck5vZGVbXSwgY2xpY2tPcHRpb246IENsaWNrT3B0aW9ucyA9IHsgZXhwYW5kZXI6IHRydWUgfSkge1xuICAgIG5vZGVzLmZvckVhY2gocGFyZW50Tm9kZSA9PiB7XG4gICAgICBpZiAoIXBhcmVudE5vZGUub3Blbikge1xuICAgICAgICBwYXJlbnROb2RlLm9wZW4gPSB0cnVlO1xuICAgICAgICBwYXJlbnROb2RlLmNsaWNrKGNsaWNrT3B0aW9uKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhwYW5kUmVjdXJzaXZlUGFyZW50KHBhcmVudE5vZGUucGFyZW50cywgY2xpY2tPcHRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFeHBhbmRDb2xsYXBzZShvcGVuLCBmcm9tLCAkZXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBvcGVuID09PSB0aGlzLm5vZGUub3BlbiB8fFxuICAgICAgKHRoaXMubm9kZS5wYXRoICYmICFvcGVuICYmIGZyb20gIT09IENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVIpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kQ29sbGFwc2Uob3BlbiwgeyBbZnJvbV06IHRydWUsICRldmVudCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSWNvbigpIHtcbiAgICBpZiAodGhpcy5ub2RlLmljb25UZW1wbGF0ZSkge1xuICAgICAgdGhpcy51cGRhdGVJY29uVGVtcGxhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVJY29uQ29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uQ29tcG9uZW50KCkge1xuICAgIGxldCBjb21wb25lbnRUeXBlID0gTmF2aWdhdG9ySWNvbkNvbXBvbmVudDtcbiAgICBpZiAodGhpcy5ub2RlICYmIHRoaXMubm9kZS5pY29uQ29tcG9uZW50KSB7XG4gICAgICBjb21wb25lbnRUeXBlID0gdGhpcy5ub2RlLmljb25Db21wb25lbnQ7XG4gICAgfVxuICAgIHRoaXMuaWNvblNsb3QuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmljb25TbG90LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5vZGUgPSB0aGlzLm5vZGU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUljb25UZW1wbGF0ZSgpIHtcbiAgICB0aGlzLmljb25TbG90LmNsZWFyKCk7XG4gICAgdGhpcy5pY29uU2xvdC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5ub2RlLmljb25UZW1wbGF0ZSwgdW5kZWZpbmVkLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNvbXBvbmVudFwiPlxuICA8bmctY29udGFpbmVyICpjOHlDb21wb25lbnRPdXRsZXQ9XCJub2RlLmNvbXBvbmVudDsgZW52aXJvbm1lbnRJbmplY3Rvcjogbm9kZS5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXZcbiAgY2xhc3M9XCJzbG90XCJcbiAgKm5nSWY9XCIhbm9kZS5jb21wb25lbnRcIlxuICBbaGlkZGVuXT1cIm5vZGUuaGlkZGVuXCJcbiAgKGRyYWdzdGFydCk9XCJub2RlLmRyYWdTdGFydCgkZXZlbnQpXCJcbiAgKGRyYWdlbmQpPVwibm9kZS5kcmFnRW5kKCRldmVudClcIlxuICAoZHJvcCk9XCJub2RlLmRyb3AoJGV2ZW50KVwiXG4gIFtkcmFnZ2FibGVdPVwibm9kZS5kcmFnZ2FibGVcIlxuICBbbmdDbGFzc109XCJ7IGRyYWdnZWQ6IG5vZGUuZHJhZ2dlZCwgZGlzYWJsZWQ6IG5vZGUubG9hZGluZyB9XCJcbj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpbmtcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbcm91dGVyTGlua109XCJub2RlLmNhbk5hdmlnYXRlID8gbm9kZS5wYXRoIDogdW5kZWZpbmVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSQgfCBhc3luYyxcbiAgICAgICAgJ2RyYWdnZWQtaG92ZXInOiBub2RlLmRyYWdnZWRIb3ZlciAmJiAhbm9kZS5kcmFnZ2VkXG4gICAgICB9XCJcbiAgICAgIChkcmFnb3Zlcik9XCJub2RlLmNhbkRyb3AgJiYgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgKGRyYWdlbnRlcik9XCJub2RlLmNhbkRyb3AgJiYgbm9kZS5kcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgICAoZHJhZ2xlYXZlKT1cIm5vZGUuY2FuRHJvcCAmJiBub2RlLmRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0bi1jbGVhblwiXG4gICAgICAgIHRpdGxlPVwie3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuaGFzQ2hpbGRyZW4gPyBub2RlLm9wZW4gOiBudWxsXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJub2RlLmxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaXNSb290ID8gbm9kZS5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgIChjbGljayk9XCJjbGljayhub2RlLmNhbk5hdmlnYXRlID8gJ2xpbmsnIDogJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAncm9vdC1saW5rJzogaXNSb290LFxuICAgICAgICAgIG9wZW46IG5vZGUub3BlbiAmJiBub2RlLmhhc0NoaWxkcmVuLFxuICAgICAgICAgIHBhcmVudDogbm9kZS5oYXNDaGlsZHJlblxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2hpbGRyZW4gcGFuZWwtZXhwYW5kIGV4cGFuZFwiXG4gICAgKm5nSWY9XCJub2RlLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgW2NvbGxhcHNlXT1cIiFub2RlLm9wZW5cIlxuICAgIFtpc0FuaW1hdGVkXT1cInRydWVcIlxuICA+XG4gICAgPGM4eS1uYXZpZ2F0b3Itbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljay5lbWl0KCRldmVudClcIlxuICAgID48L2M4eS1uYXZpZ2F0b3Itbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBpY29uIC0tPlxuPG5nLXRlbXBsYXRlICNuYXZpY29uPlxuICA8IS0tIGxvYWRlciAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImljb24tc3BpbiBsb2FkaW5nSW5kaWNhdG9yXCJcbiAgICBbYzh5SWNvbl09XCInY2lyY2xlLW8tbm90Y2gnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdtLWwtMTYnIDogaXNSb290LCAnbS1sLTgnOiAhaXNSb290IH1cIlxuICAgICpuZ0lmPVwibm9kZS5sb2FkaW5nICYmICFpc1Jvb3RcIlxuICA+PC9pPlxuICA8bmctY29udGFpbmVyICNpY29uPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lcj5cbiAgPCEtLXRpdGxlICAtLT5cbiAgPHNwYW4+e3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX08L3NwYW4+XG5cbiAgPCEtLWV4cGFuZGVyICAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImV4cGFuZGVyXCJcbiAgICBbYzh5SWNvbl09XCInY2hldnJvbi1kb3duJ1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleHBhbmRUaXRsZVwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAoY2xpY2spPVwiY2xpY2soJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgZGF0YS1jeT1cImM4eS1uYXZpZ2F0b3Itbm9kZS0tZXhwYW5kZXJcIlxuICA+PC9pPlxuXG4gIDwhLS0gIFBvcG92ZXIgY29uZmlybSAgLS0+XG4gIDxjOHktcG9wb3Zlci1jb25maXJtXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJuYXZpZ2F0b3ItcG9wb3ZlclwiXG4gID48L2M4eS1wb3BvdmVyLWNvbmZpcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -349,4 +349,4 @@ export class NavigatorNode {
|
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL25hdmlnYXRvci9uYXZpZ2F0b3Itbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQThCL0M7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7YUFDakIsU0FBSSxHQUFHLGVBQWUsQUFBbEIsQ0FBbUI7SUEwSDlCOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEVBQUU7UUFDSixPQUFPLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRLENBQUMsUUFBUTtR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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWF0Y2hlcywgc25ha2VDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE5hdmlnYXRvck5vZGVEYXRhIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZS1kYXRhJztcbmltcG9ydCB7IFBvcG92ZXJDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvcG9wb3Zlci1jb25maXJtLmNvbXBvbmVudCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgZGV0ZXJtaW5lcyB0aGUgYXZhaWxhYmxlIGNsaWNrIG9wdGlvbnMuXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IGlzIGEgY2xpY2sgb24gdGhlIG5vZGUgaWNvbi5cbiAgICovXG4gIGljb24/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQgaXMgYSBjbGljayBvbiB0aGUgbm9kZSBleHBhbmRlci5cbiAgICovXG4gIGV4cGFuZGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBleHBhbmRlZC9jb2xsYXBzZWQuXG4gICAqL1xuICBvcGVuPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZ3JvdXAgbm9kZSB3aGljaCB3aWxsIGNvbnRhaW4gYWxsIHVuYXNzaWduZWQgZGV2aWNlcy5cbiAgICovXG4gIHNob3dVbmFzc2lnbmVkRGV2aWNlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBET00gZXZlbnQuXG4gICAqL1xuICAkZXZlbnQ/OiBhbnk7IC8vIFRPRE86IGFkZCBwcm9wZXIgdHlwZVxufVxuLyoqXG4gKiBCYXNlIG5hdmlnYXRvciBub2RlLiBSZXByZXNlbnRzIGEgc2luZ2xlIGVudHJ5IGluIHRoZSBuYXZpZ2F0b3IgbWVudS5cbiAqIElzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrIG9mIHRoZSBuYXZpZ2F0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JOb2RlIHtcbiAgc3RhdGljIE5BTUUgPSAnTmF2aWdhdG9yTm9kZSc7XG4gIC8qKlxuICAgKiBOYXZpZ2F0b3Igbm9kZSBpY29uLlxuICAgKi9cbiAgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0b3Igbm9kZSBpY29uIHdoZW4gZXhwYW5kZWQuXG4gICAqL1xuICBpY29uT3Blbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gaWNvbiB0ZW1wbGF0ZS5cbiAgICovXG4gIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uIGNvbXBvbmVudC5cbiAgICovXG4gIGljb25Db21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRvciBub2RlIGNoaWxkcmVuIChzdWJlbnRyaWVzKS5cbiAgICovXG4gIGNoaWxkcmVuOiBOYXZpZ2F0b3JOb2RlW10gPSBbXTtcblxuICAvKipcbiAgICogTGFiZWwgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBuYXZpZ2F0b3Igbm9kZS5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcGFzcyBgbGFiZWxgIHRocm91Z2ggYHRyYW5zbGF0ZWAgcGlwZSB3aGVuIGJlaW5nIGRpc3BsYXllZC5cbiAgICovXG4gIHRyYW5zbGF0ZUxhYmVsID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gd2hpY2ggdGhlIFVJIHdpbGwgYmUgcmVkaXJlY3RlZCBhZnRlciBjbGlja2luZyB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRvciBub2RlIHBhcmVudCBub2Rlcy5cbiAgICovXG4gIHBhcmVudHM6IE5hdmlnYXRvck5vZGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBMb2FkaW5nIHN0YXRlIGluZGljYXRvci5cbiAgICovXG4gIGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGxvYWQgdGhlIHByb3ZpZGVycyBmb3IgdGhlIGNvbXBvbmVudHMuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCBpbmplY3RvciB1cyB1c2VkLlxuICAgKi9cbiAgaW5qZWN0b3I/OiBJbmplY3RvcjtcblxuICAvKipcbiAgICogQ3VzdG9tIGNvbXBvbmVudCB0byB1c2UuXG4gICAqL1xuICBjb21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBuYXZpZ2F0b3Igbm9kZSBzaG91bGQgYmUgYWN0aXZlIGJhc2VkIG9uIG1hdGNoaW5nIHRoZSBub2RlIHBhdGggYW5kIHRoZSBVUkwgcGF0aC5cbiAgICogVG8gbWF0Y2ggdGhlIFVSTCBleGFjdGx5LCBzZXQgdGhpcyBvcHRpb24gdG8gdHJ1ZS5cbiAgICpcbiAgICogcm91dGVyTGlua0V4YWN0IHNldCB0byB0cnVlOlxuICAgKiBXaGVuIHRoZSBVUkwgcGF0aCBpcyBzZXQgdG8gL2EvYi9jIGFuZCB0aGUgbm9kZSBwYXRoIHRvIC9hL2IgdGhlbiB0aGUgbm9kZSB3aWxsIG5vdCBiZSBzZXQgYWN0aXZlLlxuICAgKlxuICAgKiByb3V0ZXJMaW5rRXhhY3Qgc2V0IHRvIGZhbHNlOlxuICAgKiBXaGVuIHRoZSBVUkwgcGF0aCBpcyBzZXQgdG8gL2EvYi9jIGFuZCB0aGUgbm9kZSBwYXRoIHRvIC9hL2IgdGhlbiB0aGUgbm9kZSB3aWxsIGJlIHNldCBhY3RpdmUuXG4gICAqL1xuICByb3V0ZXJMaW5rRXhhY3QgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgZXhwYW5kZWQvY29sbGFwc2VkLlxuICAgKi9cbiAgb3BlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgdmlzaWJsZS9oaWRkZW4uXG4gICAqL1xuICBoaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIG5hdmlnYXRvciBub2RlIGlzIGRyYWdnYWJsZS5cbiAgICovXG4gIGRyYWdnYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgZHJvcHBhYmxlLlxuICAgKi9cbiAgZHJvcHBhYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBkcmFnZ2VkLlxuICAgKi9cbiAgZHJhZ2dlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBjdXJyZW50bHkgc29tZXRoaW5nIGlzIGRyYWdnZWQgb3ZlciB0aGUgbm9kZS5cbiAgICovXG4gIGRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb25maXJtYXRpb24gcG9wb3ZlciBkaXNwbGF5ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvY2VzcyBvZiBtb3ZpbmcgdGhlIG5hdmlnYXRvciBtZW51IGl0ZW0uXG4gICAqL1xuICBjb25maXJtOiBQb3BvdmVyQ29uZmlybUNvbXBvbmVudCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGJyZWFkY3J1bWIgb2YgdGhlIG5vZGUsIGRpc3BsYXlpbmcgdGhlIFwicGF0aFwiLCBidXQgc3VwcG9ydHMgbXVsdGlwbGUgbGV2ZWxzLlxuICAgKiBlLmcuIChHcm91cHMgPiBMZXZlbCAxID4gTGV2ZWwgMilcbiAgICovXG4gIGJyZWFkY3J1bWI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkIHRvIGlkZW50aWZ5IHNwZWNpZmljIGZlYXR1cmUgbm9kZS5cbiAgICovXG4gIGZlYXR1cmVJZD86IHN0cmluZztcblxuICBwcml2YXRlIF9wcmlvcml0eSA9IDA7XG4gIHByaXZhdGUgZXhwYW5kRHJhZ1RpbWVvdXQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gd2hldGhlciBhIG5hdmlnYXRvciBub2RlIGhhcyBjaGlsZHJlbi5cbiAgICogQHJlYWRvbmx5XG4gICAqL1xuICBnZXQgaGFzQ2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBJRCBvZiB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiAnbmF2aWdhdG9yX25vZGVfJyArIHNuYWtlQ2FzZSh0aGlzLmxhYmVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwcmlvcml0eSB2YWx1ZSBvZiB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IHByaW9yaXR5KCkge1xuICAgIGlmICh0aGlzLl9wcmlvcml0eSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaW9yaXR5O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZHJlblByaW9yaXRpZXMgPSB0aGlzLmNoaWxkcmVuLm1hcCgoeyBwcmlvcml0eSB9KSA9PiBwcmlvcml0eSB8fCAwKTtcbiAgICAgIGlmIChjaGlsZHJlblByaW9yaXRpZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblByaW9yaXRpZXMubGVuZ3RoID8gTWF0aC5tYXgoLi4uY2hpbGRyZW5Qcmlvcml0aWVzKSA6IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJpb3JpdHkgdmFsdWUgb2YgdGhlIG5hdmlnYXRvciBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcHJpb3JpdHkgUHJpb3JpdHkgdmFsdWUuXG4gICAqL1xuICBzZXQgcHJpb3JpdHkocHJpb3JpdHkpIHtcbiAgICB0aGlzLl9wcmlvcml0eSA9IHByaW9yaXR5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IE5hdmlnYXRvck5vZGVEYXRhKSB7XG4gICAgdGhpcy51cGRhdGUoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNoaWxkIG5hdmlnYXRvciBub2RlIHRvIHRoZSBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge05hdmlnYXRvck5vZGV9IG5vZGUgQ2hpbGQgbm9kZS5cbiAgICovXG4gIGFkZChub2RlOiBOYXZpZ2F0b3JOb2RlKSB7XG4gICAgaWYgKG5vZGUgPT09IHRoaXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWRkaW5nIG5vZGUgdG8gaXRzZWxmJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoaWxkcmVuLmluZGV4T2Yobm9kZSkgPT09IC0xKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChub2RlLnBhcmVudHMuaW5kZXhPZih0aGlzKSA9PT0gLTEpIHtcbiAgICAgIG5vZGUucGFyZW50cy5wdXNoKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgY2hpbGQgbmF2aWdhdG9yIG5vZGUgZnJvbSB0aGUgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtOYXZpZ2F0b3JOb2RlfSBub2RlIENoaWxkIG5vZGUuXG4gICAqL1xuICByZW1vdmUobm9kZTogTmF2aWdhdG9yTm9kZSkge1xuICAgIGNvbnN0IGl4ID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKG5vZGUpO1xuICAgIGNvbnN0IHBpeCA9IG5vZGUucGFyZW50cy5pbmRleE9mKHRoaXMpO1xuICAgIGlmIChpeCA+IC0xKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpeCwgMSk7XG4gICAgfVxuICAgIGlmIChwaXggPiAtMSkge1xuICAgICAgbm9kZS5wYXJlbnRzLnNwbGljZShwaXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7TmF2aWdhdG9yTm9kZURhdGF9IGRhdGEgRGF0YSB0byBiZSB1cGRhdGVkLlxuICAgKi9cbiAgdXBkYXRlKGRhdGE/OiBOYXZpZ2F0b3JOb2RlRGF0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICAgICAgaWYgKGRhdGEuaGlkZGVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgcC51cGRhdGVIaWRkZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFJldHVybnMgYSBjaGlsZCBuYXZpZ2F0b3Igbm9kZSBiYXNlZCBvbiB0aGUgcHJlZGljYXRlLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBUaGUgZnVuY3Rpb24gd2lsbCBjb21wYXJlIHRoZSBsYWJlbHMgdG8gdGhlIHN0cmluZyBhbmQgcmV0dXJuIGEgbWF0Y2hpbmcgcmVzdWx0LlxuICAgKiAvLyBUaGUgY2FwaXRhbGl6YXRpb24gb2YgdGhlIGNoYXJhY3RlcnMgZG9lcyBub3QgbWF0dGVyIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICogY29uc3QgcHJlZGljYXRlID0gJ2dyb3VwMSc7XG4gICAqIGNvbnN0IGNoaWxkTm9kZSA9IHBhcmVudE5vZGUuZmluZChwcmVkaWNhdGUpO1xuICAgKiAvLyBDaGVjazogW2xvZGFzaCBtYXRjaGVzXShodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjE1I21hdGNoZXMpXG4gICAqIGNvbnN0IHByZWRpY2F0ZSA9IHsgbGFiZWw6ICdncm91cDInIH07XG4gICAqIGNvbnN0IGNoaWxkTm9kZSA9IHBhcmVudE5vZGUuZmluZChwcmVkaWNhdGUpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHByZWRpY2F0ZSBGaWx0ZXIgY3JpdGVyaWEuXG4gICAqIEBwYXJhbSBmaW5kQnkgTmF2aWdhdG9yTm9kZSBmaWVsZCBuYW1lIHRvIGNvbXBhcmUuXG4gICAqXG4gICAqL1xuICBmaW5kKHByZWRpY2F0ZSwgZmluZEJ5OiBrZXlvZiBQaWNrPE5hdmlnYXRvck5vZGUsICdsYWJlbCcgfCAnZmVhdHVyZUlkJz4gPSAnbGFiZWwnKSB7XG4gICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZmluZEJ5ID09PSAnbGFiZWwnKSB7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVMYWJlbCA9IHByZWRpY2F0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBwcmVkaWNhdGUgPSAoeyBsYWJlbCB9KSA9PiBjb21wYXJlTGFiZWwgPT09IGxhYmVsPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29tcGFyZUlkID0gcHJlZGljYXRlO1xuICAgICAgICBwcmVkaWNhdGUgPSAoeyBmZWF0dXJlSWQgfSkgPT4gY29tcGFyZUlkID09PSBmZWF0dXJlSWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcHJlZGljYXRlID09PSAnb2JqZWN0Jykge1xuICAgICAgcHJlZGljYXRlID0gbWF0Y2hlcyhwcmVkaWNhdGUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlYXJjaCBwcmVkaWNhdGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ucmVkdWNlKFxuICAgICAgKGZvdW5kLCBjaGlsZCkgPT4gZm91bmQgfHwgY2hpbGQuZmluZChwcmVkaWNhdGUpLFxuICAgICAgdGhpcy5jaGlsZHJlbi5maW5kKHByZWRpY2F0ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgY2hpbGRyZW4gbm9kZXMuXG4gICAqL1xuICBlbXB0eSgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY2xpY2soX29wdGlvbnM6IENsaWNrT3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhbiBlbGVtZW50IGlzIGRyb3BwZWQgb24gYSB2YWxpZCBkcm9wIHRhcmdldC5cbiAgICogQHBhcmFtICRldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBkcm9wKCRldmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5leHBhbmREcmFnVGltZW91dCk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyBhbiBlbGVtZW50LlxuICAgKiBAcGFyYW0gJGV2ZW50IERPTSBldmVudC5cbiAgICovXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gd2UgY2FuJ3QgcGFzcyBhIG9iamVjdCB0byBzZXREYXRhLCBzbyB3ZSBkbyBpdCB2aWEgc2VydmljZVxuICAgIC8vIHNldCBkYXRhIGlzIHN0aWxsIG5lZWRlZCwgdG8gbWFrZSB0aGUgZHJhZyZkcm9wIHdvcmtcbiAgICAkZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCdub2RlJywgJ25vZGUnKTtcbiAgICB0aGlzLmRyYWdnZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIGRyYWcgb3BlcmF0aW9uIGhhcyBlbmRlZC5cbiAgICogQHBhcmFtICRldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBkcmFnRW5kKCRldmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRyYWdnZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIHdoZXRoZXIgdGhlIG5hdmlnYXRvciBub2RlIGlzIGRyb3BwYWJsZS5cbiAgICogQHJlYWRvbmx5XG4gICAqL1xuICBnZXQgY2FuRHJvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5kcm9wcGFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpbmZvcm1hdGlvbiB3aGV0aGVyIG5hdmlnYXRpb24gaXMgcG9zc2libGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IGNhbk5hdmlnYXRlKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoICE9PSAndW5kZWZpbmVkJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBkcmFnZ2VkIGVsZW1lbnQgZW50ZXJzIGEgdmFsaWQgZHJvcCB0YXJnZXQuXG4gICAqIEBwYXJhbSAkZXZlbnQgRE9NIGV2ZW50LlxuICAgKi9cbiAgZHJhZ0VudGVyKCRldmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IHRydWU7XG4gICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuZXhwYW5kRHJhZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZXhwYW5kKCksIDEwMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBkcmFnZ2VkIGVsZW1lbnQgbGVhdmVzIGEgdmFsaWQgZHJvcCB0YXJnZXQuXG4gICAqIEBwYXJhbSAkZXZlbnQgRE9NIGV2ZW50LlxuICAgKi9cbiAgZHJhZ0xlYXZlKCRldmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoJGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnMoJGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJhZ2dlZEhvdmVyID0gZmFsc2U7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhwYW5kRHJhZ1RpbWVvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIG5hdmlnYXRvciBub2RlIGlmIGl0IGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIGV4cGFuZCgpIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xpY2soeyBvcGVuOiB0cnVlLCBleHBhbmRlcjogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBjYWxsYmFjayBmdW5jdGlvbiByZWN1cnNpdmVseSBvbiBlYWNoIG9mIHRoZSBuYXZpZ2F0b3Igbm9kZSdzIGNoaWxkcmVuIGRvd24gdGhlIGhpZXJhcmNoeS5cbiAgICpcbiAgICogYGBgdHNcbiAgICogY29uc3QgZXhwYW5kQ2hpbGQgPSAoY2hpbGROb2RlKSA9PiBjaGlsZE5vZGUuZXhwYW5kKCk7XG4gICAqIHBhcmVudE5vZGUudHJhdmVyc2UoZXhwYW5kQ2hpbGQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZC5cbiAgICovXG4gIHRyYXZlcnNlKGNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgIGNhbGxiYWNrKGNoaWxkKTtcbiAgICAgICAgY2hpbGQudHJhdmVyc2UoY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgLy8gbm90aGluZyB0b2RvIGhlcmVcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudHMgdGhlIGFtb3VudCBvZiBjaGlsZHJlbiBub2Rlcy5cbiAgICovXG4gIHByb3RlY3RlZCBjb3VudENoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGl0c2VsZi5cbiAgICovXG4gIHByb3RlY3RlZCB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gTmF2aWdhdG9yTm9kZS5OQU1FO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NoaWxkRGV2aWNlcygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbmF2aWdhdG9yIG5vZGUgYnkgc29ydGluZyBpdHMgY2hpbGRyZW4gYW5kIGFsc28gY2hlY2tpbmcgdGhlaXIgdmlzaWJpbGl0eS5cbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVDaGlsZHJlbigpIHtcbiAgICB0aGlzLnNvcnQoKTtcbiAgICB0aGlzLnVwZGF0ZUhpZGRlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvcnRzIHRoZSBjaGlsZHJlbiBvZiB0aGUgbmF2aWdhdG9yIG5vZGUsIGJ5IHByaW9yaXR5IGFuZCBuYW1lIChBU0MpLlxuICAgKiBUaGUgaGlnaGVyIHRoZSBwcmlvcml0eSwgdGhlIGhpZ2hlciB0aGUgcG9zaXRpb24gaW4gdGhlIGhpZXJhcmNoeS5cbiAgICogRm9yIHRoZSBzYW1lIHByaW9yaXR5IHZhbHVlcywgdGhlIGFscGhhYmV0aWNhbCBvcmRlciB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKChhLmxhYmVsIHx8ICcnKS50b0xvd2VyQ2FzZSgpIDwgKGIubGFiZWwgfHwgJycpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmICgoYS5sYWJlbCB8fCAnJykudG9Mb3dlckNhc2UoKSA+IChiLmxhYmVsIHx8ICcnKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBuYXZpZ2F0b3Igbm9kZSBzaG91bGQgYmUgaGlkZGVuIGJhc2VkIG9uIHRoZSB2aXNpYmlsaXR5IG9mIGl0cyBjaGlsZCBub2Rlcy5cbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVIaWRkZW4oKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnBhdGggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmhpZGRlbiA9ICF0aGlzLmNoaWxkcmVuLnNvbWUoKHsgaGlkZGVuIH0pID0+ICFoaWRkZW4pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL25hdmlnYXRvci9uYXZpZ2F0b3Itbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQStCL0M7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7YUFDakIsU0FBSSxHQUFHLGVBQWUsQUFBbEIsQ0FBbUI7SUEwSDlCOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEVBQUU7UUFDSixPQUFPLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRLENBQUMsUUFBUTtR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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWF0Y2hlcywgc25ha2VDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE5hdmlnYXRvck5vZGVEYXRhIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZS1kYXRhJztcbmltcG9ydCB7IFBvcG92ZXJDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvcG9wb3Zlci1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgdGhhdCBkZXRlcm1pbmVzIHRoZSBhdmFpbGFibGUgY2xpY2sgb3B0aW9ucy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlja09wdGlvbnMge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQgaXMgYSBjbGljayBvbiB0aGUgbm9kZSBpY29uLlxuICAgKi9cbiAgaWNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIG9mIHRoZSBldmVudCBpcyBhIGNsaWNrIG9uIHRoZSBub2RlIGV4cGFuZGVyLlxuICAgKi9cbiAgZXhwYW5kZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIG5hdmlnYXRvciBub2RlIGlzIGV4cGFuZGVkL2NvbGxhcHNlZC5cbiAgICovXG4gIG9wZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBncm91cCBub2RlIHdoaWNoIHdpbGwgY29udGFpbiBhbGwgdW5hc3NpZ25lZCBkZXZpY2VzLlxuICAgKi9cbiAgc2hvd1VuYXNzaWduZWREZXZpY2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERPTSBldmVudC5cbiAgICovXG4gICRldmVudD86IGFueTsgLy8gVE9ETzogYWRkIHByb3BlciB0eXBlXG59XG4vKipcbiAqIEJhc2UgbmF2aWdhdG9yIG5vZGUuIFJlcHJlc2VudHMgYSBzaW5nbGUgZW50cnkgaW4gdGhlIG5hdmlnYXRvciBtZW51LlxuICogSXMgY29uc2lkZXJlZCB0byBiZSB0aGUgYmFzaWMgYnVpbGRpbmcgYmxvY2sgb2YgdGhlIG5hdmlnYXRvci5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hdmlnYXRvck5vZGUge1xuICBzdGF0aWMgTkFNRSA9ICdOYXZpZ2F0b3JOb2RlJztcbiAgLyoqXG4gICAqIE5hdmlnYXRvciBub2RlIGljb24uXG4gICAqL1xuICBpY29uOiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0b3Igbm9kZSBpY29uIHdoZW4gZXhwYW5kZWQuXG4gICAqL1xuICBpY29uT3Blbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gaWNvbiB0ZW1wbGF0ZS5cbiAgICovXG4gIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uIGNvbXBvbmVudC5cbiAgICovXG4gIGljb25Db21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRvciBub2RlIGNoaWxkcmVuIChzdWJlbnRyaWVzKS5cbiAgICovXG4gIGNoaWxkcmVuOiBOYXZpZ2F0b3JOb2RlW10gPSBbXTtcblxuICAvKipcbiAgICogTGFiZWwgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBuYXZpZ2F0b3Igbm9kZS5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcGFzcyBgbGFiZWxgIHRocm91Z2ggYHRyYW5zbGF0ZWAgcGlwZSB3aGVuIGJlaW5nIGRpc3BsYXllZC5cbiAgICovXG4gIHRyYW5zbGF0ZUxhYmVsID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gd2hpY2ggdGhlIFVJIHdpbGwgYmUgcmVkaXJlY3RlZCBhZnRlciBjbGlja2luZyB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRvciBub2RlIHBhcmVudCBub2Rlcy5cbiAgICovXG4gIHBhcmVudHM6IE5hdmlnYXRvck5vZGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBMb2FkaW5nIHN0YXRlIGluZGljYXRvci5cbiAgICovXG4gIGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGxvYWQgdGhlIHByb3ZpZGVycyBmb3IgdGhlIGNvbXBvbmVudHMuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCBpbmplY3RvciB1cyB1c2VkLlxuICAgKi9cbiAgaW5qZWN0b3I/OiBJbmplY3RvcjtcblxuICAvKipcbiAgICogQ3VzdG9tIGNvbXBvbmVudCB0byB1c2UuXG4gICAqL1xuICBjb21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBuYXZpZ2F0b3Igbm9kZSBzaG91bGQgYmUgYWN0aXZlIGJhc2VkIG9uIG1hdGNoaW5nIHRoZSBub2RlIHBhdGggYW5kIHRoZSBVUkwgcGF0aC5cbiAgICogVG8gbWF0Y2ggdGhlIFVSTCBleGFjdGx5LCBzZXQgdGhpcyBvcHRpb24gdG8gdHJ1ZS5cbiAgICpcbiAgICogcm91dGVyTGlua0V4YWN0IHNldCB0byB0cnVlOlxuICAgKiBXaGVuIHRoZSBVUkwgcGF0aCBpcyBzZXQgdG8gL2EvYi9jIGFuZCB0aGUgbm9kZSBwYXRoIHRvIC9hL2IgdGhlbiB0aGUgbm9kZSB3aWxsIG5vdCBiZSBzZXQgYWN0aXZlLlxuICAgKlxuICAgKiByb3V0ZXJMaW5rRXhhY3Qgc2V0IHRvIGZhbHNlOlxuICAgKiBXaGVuIHRoZSBVUkwgcGF0aCBpcyBzZXQgdG8gL2EvYi9jIGFuZCB0aGUgbm9kZSBwYXRoIHRvIC9hL2IgdGhlbiB0aGUgbm9kZSB3aWxsIGJlIHNldCBhY3RpdmUuXG4gICAqL1xuICByb3V0ZXJMaW5rRXhhY3QgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgZXhwYW5kZWQvY29sbGFwc2VkLlxuICAgKi9cbiAgb3BlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgdmlzaWJsZS9oaWRkZW4uXG4gICAqL1xuICBoaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIG5hdmlnYXRvciBub2RlIGlzIGRyYWdnYWJsZS5cbiAgICovXG4gIGRyYWdnYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgZHJvcHBhYmxlLlxuICAgKi9cbiAgZHJvcHBhYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBkcmFnZ2VkLlxuICAgKi9cbiAgZHJhZ2dlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBjdXJyZW50bHkgc29tZXRoaW5nIGlzIGRyYWdnZWQgb3ZlciB0aGUgbm9kZS5cbiAgICovXG4gIGRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb25maXJtYXRpb24gcG9wb3ZlciBkaXNwbGF5ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvY2VzcyBvZiBtb3ZpbmcgdGhlIG5hdmlnYXRvciBtZW51IGl0ZW0uXG4gICAqL1xuICBjb25maXJtOiBQb3BvdmVyQ29uZmlybUNvbXBvbmVudCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGJyZWFkY3J1bWIgb2YgdGhlIG5vZGUsIGRpc3BsYXlpbmcgdGhlIFwicGF0aFwiLCBidXQgc3VwcG9ydHMgbXVsdGlwbGUgbGV2ZWxzLlxuICAgKiBlLmcuIChHcm91cHMgPiBMZXZlbCAxID4gTGV2ZWwgMilcbiAgICovXG4gIGJyZWFkY3J1bWI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkIHRvIGlkZW50aWZ5IHNwZWNpZmljIGZlYXR1cmUgbm9kZS5cbiAgICovXG4gIGZlYXR1cmVJZD86IHN0cmluZztcblxuICBwcml2YXRlIF9wcmlvcml0eSA9IDA7XG4gIHByaXZhdGUgZXhwYW5kRHJhZ1RpbWVvdXQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gd2hldGhlciBhIG5hdmlnYXRvciBub2RlIGhhcyBjaGlsZHJlbi5cbiAgICogQHJlYWRvbmx5XG4gICAqL1xuICBnZXQgaGFzQ2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBJRCBvZiB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiAnbmF2aWdhdG9yX25vZGVfJyArIHNuYWtlQ2FzZSh0aGlzLmxhYmVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwcmlvcml0eSB2YWx1ZSBvZiB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IHByaW9yaXR5KCkge1xuICAgIGlmICh0aGlzLl9wcmlvcml0eSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaW9yaXR5O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZHJlblByaW9yaXRpZXMgPSB0aGlzLmNoaWxkcmVuLm1hcCgoeyBwcmlvcml0eSB9KSA9PiBwcmlvcml0eSB8fCAwKTtcbiAgICAgIGlmIChjaGlsZHJlblByaW9yaXRpZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblByaW9yaXRpZXMubGVuZ3RoID8gTWF0aC5tYXgoLi4uY2hpbGRyZW5Qcmlvcml0aWVzKSA6IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJpb3JpdHkgdmFsdWUgb2YgdGhlIG5hdmlnYXRvciBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcHJpb3JpdHkgUHJpb3JpdHkgdmFsdWUuXG4gICAqL1xuICBzZXQgcHJpb3JpdHkocHJpb3JpdHkpIHtcbiAgICB0aGlzLl9wcmlvcml0eSA9IHByaW9yaXR5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IE5hdmlnYXRvck5vZGVEYXRhKSB7XG4gICAgdGhpcy51cGRhdGUoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNoaWxkIG5hdmlnYXRvciBub2RlIHRvIHRoZSBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge05hdmlnYXRvck5vZGV9IG5vZGUgQ2hpbGQgbm9kZS5cbiAgICovXG4gIGFkZChub2RlOiBOYXZpZ2F0b3JOb2RlKSB7XG4gICAgaWYgKG5vZGUgPT09IHRoaXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWRkaW5nIG5vZGUgdG8gaXRzZWxmJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoaWxkcmVuLmluZGV4T2Yobm9kZSkgPT09IC0xKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChub2RlLnBhcmVudHMuaW5kZXhPZih0aGlzKSA9PT0gLTEpIHtcbiAgICAgIG5vZGUucGFyZW50cy5wdXNoKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgY2hpbGQgbmF2aWdhdG9yIG5vZGUgZnJvbSB0aGUgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtOYXZpZ2F0b3JOb2RlfSBub2RlIENoaWxkIG5vZGUuXG4gICAqL1xuICByZW1vdmUobm9kZTogTmF2aWdhdG9yTm9kZSkge1xuICAgIGNvbnN0IGl4ID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKG5vZGUpO1xuICAgIGNvbnN0IHBpeCA9IG5vZGUucGFyZW50cy5pbmRleE9mKHRoaXMpO1xuICAgIGlmIChpeCA+IC0xKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpeCwgMSk7XG4gICAgfVxuICAgIGlmIChwaXggPiAtMSkge1xuICAgICAgbm9kZS5wYXJlbnRzLnNwbGljZShwaXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbmF2aWdhdG9yIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7TmF2aWdhdG9yTm9kZURhdGF9IGRhdGEgRGF0YSB0byBiZSB1cGRhdGVkLlxuICAgKi9cbiAgdXBkYXRlKGRhdGE/OiBOYXZpZ2F0b3JOb2RlRGF0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICAgICAgaWYgKGRhdGEuaGlkZGVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgcC51cGRhdGVIaWRkZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFJldHVybnMgYSBjaGlsZCBuYXZpZ2F0b3Igbm9kZSBiYXNlZCBvbiB0aGUgcHJlZGljYXRlLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBUaGUgZnVuY3Rpb24gd2lsbCBjb21wYXJlIHRoZSBsYWJlbHMgdG8gdGhlIHN0cmluZyBhbmQgcmV0dXJuIGEgbWF0Y2hpbmcgcmVzdWx0LlxuICAgKiAvLyBUaGUgY2FwaXRhbGl6YXRpb24gb2YgdGhlIGNoYXJhY3RlcnMgZG9lcyBub3QgbWF0dGVyIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICogY29uc3QgcHJlZGljYXRlID0gJ2dyb3VwMSc7XG4gICAqIGNvbnN0IGNoaWxkTm9kZSA9IHBhcmVudE5vZGUuZmluZChwcmVkaWNhdGUpO1xuICAgKiAvLyBDaGVjazogW2xvZGFzaCBtYXRjaGVzXShodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjE1I21hdGNoZXMpXG4gICAqIGNvbnN0IHByZWRpY2F0ZSA9IHsgbGFiZWw6ICdncm91cDInIH07XG4gICAqIGNvbnN0IGNoaWxkTm9kZSA9IHBhcmVudE5vZGUuZmluZChwcmVkaWNhdGUpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHByZWRpY2F0ZSBGaWx0ZXIgY3JpdGVyaWEuXG4gICAqIEBwYXJhbSBmaW5kQnkgTmF2aWdhdG9yTm9kZSBmaWVsZCBuYW1lIHRvIGNvbXBhcmUuXG4gICAqXG4gICAqL1xuICBmaW5kKHByZWRpY2F0ZSwgZmluZEJ5OiBrZXlvZiBQaWNrPE5hdmlnYXRvck5vZGUsICdsYWJlbCcgfCAnZmVhdHVyZUlkJz4gPSAnbGFiZWwnKSB7XG4gICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZmluZEJ5ID09PSAnbGFiZWwnKSB7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVMYWJlbCA9IHByZWRpY2F0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBwcmVkaWNhdGUgPSAoeyBsYWJlbCB9KSA9PiBjb21wYXJlTGFiZWwgPT09IGxhYmVsPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29tcGFyZUlkID0gcHJlZGljYXRlO1xuICAgICAgICBwcmVkaWNhdGUgPSAoeyBmZWF0dXJlSWQgfSkgPT4gY29tcGFyZUlkID09PSBmZWF0dXJlSWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcHJlZGljYXRlID09PSAnb2JqZWN0Jykge1xuICAgICAgcHJlZGljYXRlID0gbWF0Y2hlcyhwcmVkaWNhdGUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlYXJjaCBwcmVkaWNhdGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ucmVkdWNlKFxuICAgICAgKGZvdW5kLCBjaGlsZCkgPT4gZm91bmQgfHwgY2hpbGQuZmluZChwcmVkaWNhdGUpLFxuICAgICAgdGhpcy5jaGlsZHJlbi5maW5kKHByZWRpY2F0ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgY2hpbGRyZW4gbm9kZXMuXG4gICAqL1xuICBlbXB0eSgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY2xpY2soX29wdGlvbnM6IENsaWNrT3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhbiBlbGVtZW50IGlzIGRyb3BwZWQgb24gYSB2YWxpZCBkcm9wIHRhcmdldC5cbiAgICogQHBhcmFtICRldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBkcm9wKCRldmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5leHBhbmREcmFnVGltZW91dCk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyBhbiBlbGVtZW50LlxuICAgKiBAcGFyYW0gJGV2ZW50IERPTSBldmVudC5cbiAgICovXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gd2UgY2FuJ3QgcGFzcyBhIG9iamVjdCB0byBzZXREYXRhLCBzbyB3ZSBkbyBpdCB2aWEgc2VydmljZVxuICAgIC8vIHNldCBkYXRhIGlzIHN0aWxsIG5lZWRlZCwgdG8gbWFrZSB0aGUgZHJhZyZkcm9wIHdvcmtcbiAgICAkZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCdub2RlJywgJ25vZGUnKTtcbiAgICB0aGlzLmRyYWdnZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIGRyYWcgb3BlcmF0aW9uIGhhcyBlbmRlZC5cbiAgICogQHBhcmFtICRldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBkcmFnRW5kKCRldmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRyYWdnZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIHdoZXRoZXIgdGhlIG5hdmlnYXRvciBub2RlIGlzIGRyb3BwYWJsZS5cbiAgICogQHJlYWRvbmx5XG4gICAqL1xuICBnZXQgY2FuRHJvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5kcm9wcGFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpbmZvcm1hdGlvbiB3aGV0aGVyIG5hdmlnYXRpb24gaXMgcG9zc2libGUuXG4gICAqIEByZWFkb25seVxuICAgKi9cbiAgZ2V0IGNhbk5hdmlnYXRlKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoICE9PSAndW5kZWZpbmVkJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBkcmFnZ2VkIGVsZW1lbnQgZW50ZXJzIGEgdmFsaWQgZHJvcCB0YXJnZXQuXG4gICAqIEBwYXJhbSAkZXZlbnQgRE9NIGV2ZW50LlxuICAgKi9cbiAgZHJhZ0VudGVyKCRldmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IHRydWU7XG4gICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuZXhwYW5kRHJhZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZXhwYW5kKCksIDEwMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBkcmFnZ2VkIGVsZW1lbnQgbGVhdmVzIGEgdmFsaWQgZHJvcCB0YXJnZXQuXG4gICAqIEBwYXJhbSAkZXZlbnQgRE9NIGV2ZW50LlxuICAgKi9cbiAgZHJhZ0xlYXZlKCRldmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoJGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnMoJGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJhZ2dlZEhvdmVyID0gZmFsc2U7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhwYW5kRHJhZ1RpbWVvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIG5hdmlnYXRvciBub2RlIGlmIGl0IGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIGV4cGFuZCgpIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xpY2soeyBvcGVuOiB0cnVlLCBleHBhbmRlcjogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBjYWxsYmFjayBmdW5jdGlvbiByZWN1cnNpdmVseSBvbiBlYWNoIG9mIHRoZSBuYXZpZ2F0b3Igbm9kZSdzIGNoaWxkcmVuIGRvd24gdGhlIGhpZXJhcmNoeS5cbiAgICpcbiAgICogYGBgdHNcbiAgICogY29uc3QgZXhwYW5kQ2hpbGQgPSAoY2hpbGROb2RlKSA9PiBjaGlsZE5vZGUuZXhwYW5kKCk7XG4gICAqIHBhcmVudE5vZGUudHJhdmVyc2UoZXhwYW5kQ2hpbGQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZC5cbiAgICovXG4gIHRyYXZlcnNlKGNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgIGNhbGxiYWNrKGNoaWxkKTtcbiAgICAgICAgY2hpbGQudHJhdmVyc2UoY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgLy8gbm90aGluZyB0b2RvIGhlcmVcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudHMgdGhlIGFtb3VudCBvZiBjaGlsZHJlbiBub2Rlcy5cbiAgICovXG4gIHByb3RlY3RlZCBjb3VudENoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGl0c2VsZi5cbiAgICovXG4gIHByb3RlY3RlZCB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gTmF2aWdhdG9yTm9kZS5OQU1FO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NoaWxkRGV2aWNlcygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbmF2aWdhdG9yIG5vZGUgYnkgc29ydGluZyBpdHMgY2hpbGRyZW4gYW5kIGFsc28gY2hlY2tpbmcgdGhlaXIgdmlzaWJpbGl0eS5cbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVDaGlsZHJlbigpIHtcbiAgICB0aGlzLnNvcnQoKTtcbiAgICB0aGlzLnVwZGF0ZUhpZGRlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvcnRzIHRoZSBjaGlsZHJlbiBvZiB0aGUgbmF2aWdhdG9yIG5vZGUsIGJ5IHByaW9yaXR5IGFuZCBuYW1lIChBU0MpLlxuICAgKiBUaGUgaGlnaGVyIHRoZSBwcmlvcml0eSwgdGhlIGhpZ2hlciB0aGUgcG9zaXRpb24gaW4gdGhlIGhpZXJhcmNoeS5cbiAgICogRm9yIHRoZSBzYW1lIHByaW9yaXR5IHZhbHVlcywgdGhlIGFscGhhYmV0aWNhbCBvcmRlciB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKChhLmxhYmVsIHx8ICcnKS50b0xvd2VyQ2FzZSgpIDwgKGIubGFiZWwgfHwgJycpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmICgoYS5sYWJlbCB8fCAnJykudG9Mb3dlckNhc2UoKSA+IChiLmxhYmVsIHx8ICcnKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBuYXZpZ2F0b3Igbm9kZSBzaG91bGQgYmUgaGlkZGVuIGJhc2VkIG9uIHRoZSB2aXNpYmlsaXR5IG9mIGl0cyBjaGlsZCBub2Rlcy5cbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVIaWRkZW4oKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnBhdGggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmhpZGRlbiA9ICF0aGlzLmNoaWxkcmVuLnNvbWUoKHsgaGlkZGVuIH0pID0+ICFoaWRkZW4pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -24,5 +24,9 @@ export var PackageType;
|
|
|
24
24
|
* A custom package e.g. uploaded to the tenant by a user
|
|
25
25
|
*/
|
|
26
26
|
PackageType["CUSTOM"] = "CUSTOM";
|
|
27
|
+
/**
|
|
28
|
+
* A package that was archived by the user
|
|
29
|
+
*/
|
|
30
|
+
PackageType["ARCHIVED"] = "ARCHIVED";
|
|
27
31
|
})(PackageType || (PackageType = {}));
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcGx1Z2lucy9wbHVnaW5zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLHVCQU1YO0FBTkQsV0FBWSx1QkFBdUI7SUFDakMsZ0RBQXFCLENBQUE7SUFDckIsNENBQWlCLENBQUE7SUFDakIsZ0RBQXFCLENBQUE7SUFDckIsOENBQW1CLENBQUE7SUFDbkIsd0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBTWxDO0FBRUQsTUFBTSxDQUFOLElBQVksV0FxQlg7QUFyQkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsb0NBQXFCLENBQUE7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGtDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsZ0NBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBckJXLFdBQVcsS0FBWCxXQUFXLFFBcUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucywgSUFwcGxpY2F0aW9uLCBWZXJzaW9uaW5nTWF0cml4IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5zRXhwb3J0U2NvcGVzIH0gZnJvbSAnLi4vY29tbW9uL0FwcGxpY2F0aW9uT3B0aW9ucyc7XG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbnNDb25maWcge1xuICByZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnM7XG4gIGV4Y2x1ZGVkUmVtb3Rlcz86IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucztcbn1cblxuZXhwb3J0IGVudW0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMge1xuICBPUlBIQU5FRCA9ICdPUlBIQU5FRCcsXG4gIExBVEVTVCA9ICdMQVRFU1QnLFxuICBPVVREQVRFRCA9ICdPVVREQVRFRCcsXG4gIFJFVk9LRUQgPSAnUkVWT0tFRCcsXG4gIEFVVE8gPSAnQVVUTydcbn1cblxuZXhwb3J0IGVudW0gUGFja2FnZVR5cGUge1xuICAvKipcbiAgICogQSBwYWNrYWdlIGNvbWluZyBmcm9tIHRoZSBvZmZpY2lhbCBTb2Z0d2FyZSBBRyBnaXRodWIgZW50ZXJwcmlzZS5cbiAgICovXG4gIE9GRklDSUFMID0gJ09GRklDSUFMJyxcbiAgLyoqXG4gICAqIEEgcGFja2FnZSBjb21pbmcgZnJvbSBhbnkgY29ubmVjdGVkIHBhcnRuZXIgcmVwb3NpdG9yeS5cbiAgICovXG4gIENPTU1VTklUWSA9ICdDT01NVU5JVFknLFxuICAvKipcbiAgICogQSBwYWNrYWdlIHdoZXJlIHRoZSBvcmlnaW4gaXMgdW5rbm93biAoZS5nLiB1cGxvYWRlZCB0byBtYW5hZ2VtZW50IHdpdGggYW4gdW5rbm93biBsYWJlbClcbiAgICovXG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBwYWNrYWdlIGUuZy4gdXBsb2FkZWQgdG8gdGhlIHRlbmFudCBieSBhIHVzZXJcbiAgICovXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICAvKipcbiAgICogQSBwYWNrYWdlIHRoYXQgd2FzIGFyY2hpdmVkIGJ5IHRoZSB1c2VyXG4gICAqL1xuICBBUkNISVZFRCA9ICdBUkNISVZFRCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvblBsdWdpbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGlkTGF0ZXN0OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzY29wZT86IFBsdWdpbnNFeHBvcnRTY29wZXM7XG4gIGluc3RhbGxlZD86IGJvb2xlYW47XG4gIGNvbnRleHRQYXRoPzogc3RyaW5nO1xuICBzdGF0dXM/OiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cztcbiAgdGFncz86IHN0cmluZ1tdO1xuICBsaWNlbnNlPzogc3RyaW5nO1xuICB0eXBlPzogUGFja2FnZVR5cGU7XG4gIHZlcnNpb25pbmdNYXRyaXg/OiBWZXJzaW9uaW5nTWF0cml4O1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIG9yaWdpbkFwcD86IElBcHBsaWNhdGlvbjtcbiAgaW5zdGFsbGVkVmlhVGFnPzogc3RyaW5nIHwgZmFsc2U7XG59XG4iXX0=
|
|
@@ -241,6 +241,9 @@ export class PluginsService {
|
|
|
241
241
|
*/
|
|
242
242
|
getPackageType(packageApplication) {
|
|
243
243
|
const label = packageApplication.label || packageApplication.manifest?.label;
|
|
244
|
+
if (label === PackageType.ARCHIVED) {
|
|
245
|
+
return PackageType.ARCHIVED;
|
|
246
|
+
}
|
|
244
247
|
if (!label) {
|
|
245
248
|
return PackageType.CUSTOM;
|
|
246
249
|
}
|
|
@@ -325,7 +328,8 @@ export class PluginsService {
|
|
|
325
328
|
versioningMatrix: application.manifest.versioningMatrix,
|
|
326
329
|
tags: useLatest ? ['latest'] : version.tags || [],
|
|
327
330
|
license: application.manifest.license,
|
|
328
|
-
type: this.getPackageType(application)
|
|
331
|
+
type: this.getPackageType(application),
|
|
332
|
+
originApp: application
|
|
329
333
|
}));
|
|
330
334
|
return extendedPlugins;
|
|
331
335
|
}
|
|
@@ -395,4 +399,4 @@ export class PluginsService {
|
|
|
395
399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PluginsService, decorators: [{
|
|
396
400
|
type: Injectable
|
|
397
401
|
}], ctorParameters: () => [{ type: i1.ApplicationService }, { type: i2.AppStateService }] });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9wbHVnaW5zL3BsdWdpbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFLeEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQXFCLFdBQVcsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdsRSxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsNEJBQTRCLENBQUMsT0FBaUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9DLE9B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QUFDLFdBQVcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUFVO1FBQzlCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OEdBM2ZVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQXZhaWxhYmlsaXR5LFxuICBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gIElBcHBsaWNhdGlvbixcbiAgSUFwcGxpY2F0aW9uVmVyc2lvbixcbiAgSU1hbmlmZXN0XG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY29lcmNlLCBjb21wYXJlIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdyb3VwQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW4sIFBhY2thZ2VUeXBlLCBQbHVnaW5zQ29uZmlnIH0gZnJvbSAnLi9wbHVnaW5zLm1vZGVsJztcbmltcG9ydCB7IFBsdWdpbnNFeHBvcnRTY29wZXMgfSBmcm9tICcuLi9jb21tb24vQXBwbGljYXRpb25PcHRpb25zJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4vcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGx1Z2luc1NlcnZpY2Uge1xuICBzdGF0aWMgY29udmVydEluc3RhbGxlZFJlbW90ZXNUb0lkcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGltcG9ydENvbnRleHRQYXRocyA9IE9iamVjdC5rZXlzKHJlbW90ZXMpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbXTtcbiAgICBpbXBvcnRDb250ZXh0UGF0aHMuZm9yRWFjaChjb250ZXh0UGF0aCA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lcyA9IHJlbW90ZXNbY29udGV4dFBhdGhdIHx8IFtdO1xuICAgICAgcGx1Z2lucy5wdXNoKFxuICAgICAgICAuLi5tb2R1bGVOYW1lcy5tYXAobW9kdWxlID0+IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGNvbnRleHRQYXRoLCBtb2R1bGUsICcnLCB0cnVlKSlcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBsdWdpbnM7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUGx1Z2luSWQoXG4gICAgY29udGV4dFBhdGg6IHN0cmluZyxcbiAgICBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luIHwgc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICB1c2VMYXRlc3QgPSBmYWxzZVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0eXBlb2YgcGx1Z2luID09PSAnc3RyaW5nJyA/IHBsdWdpbiA6IHBsdWdpbi5tb2R1bGU7XG4gICAgaWYgKHVzZUxhdGVzdCkge1xuICAgICAgcmV0dXJuIGAke2NvbnRleHRQYXRofS8ke21vZHVsZU5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbnRleHRQYXRofUAke3ZlcnNpb259LyR7bW9kdWxlTmFtZX1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLlxuICAgKiBAcGFyYW0gcGFyYW1zIEFkZGl0aW9uYWwgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgcGFja2FnZXMuXG4gICAqL1xuICBhc3luYyBsaXN0UGFja2FnZXMocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8SUFwcGxpY2F0aW9uW10+IHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5saXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtcyk7XG4gICAgY29uc3Qgd2ViQXBwcyA9IGFwcHMuZmlsdGVyKGFwcCA9PiB0aGlzLmlzUGFja2FnZShhcHApKTtcbiAgICBjb25zdCB1bmlxdWVXZWJBcHBzID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVzKHdlYkFwcHMsICdjb250ZXh0UGF0aCcpO1xuICAgIHJldHVybiB1bmlxdWVXZWJBcHBzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqL1xuICBpc1BhY2thZ2UoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcHBsaWNhdGlvbi5tYW5pZmVzdD8uaXNQYWNrYWdlID09PSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbW90ZXMgZmllbGQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYnkgYWRkaW5nIG5ldyBwbHVnaW5zLlxuICAgKiBJbXBvcnRhbnQ6IGlmIHRoZSByZW1vdGVzIG9iamVjdCBpcyBub3Qgc2V0IG9uIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCxcbiAgICogcmVtb3RlcyB3aWxsIG5vdCBiZSBhZGRlZC4gTWFrZSBzdXJlIHRoYXQgdGhpcyBvYmplY3QgZXhpc3RzIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSBhZGRlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB1cGRhdGVkIGFwcGxpY2F0aW9uIHJlbW90ZXMuXG4gICAqL1xuICBhc3luYyBhZGRSZW1vdGVzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IFByb21pc2U8UGx1Z2luc0NvbmZpZz4ge1xuICAgIGNvbnN0IHBsdWdpbnNBcnJheSA9IEFycmF5LmlzQXJyYXkocGx1Z2lucykgPyBwbHVnaW5zIDogW3BsdWdpbnNdO1xuICAgIGNvbnN0IG1hbmlmZXN0UmVtb3RlcyA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0Py5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogUGx1Z2luc0NvbmZpZyB8IHVuZGVmaW5lZCA9IGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZztcbiAgICBjb25zdCBhcHBDb25maWdSZW1vdGVzID0gYXBwQ29uZmlnPy5yZW1vdGVzIHx8IG1hbmlmZXN0UmVtb3RlcztcbiAgICBjb25zdCBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMgPSBhcHBDb25maWc/LmV4Y2x1ZGVkUmVtb3RlcyB8fCB7fTtcbiAgICAvLyBvbmx5IG5vcm1hbCBhbmQgc2VsZiBvcHRpb25hbCBzY29wZWQgcGx1Z2lucyBzaG91bGQgYmUgYWRkZWQgdG8gcmVtb3Rlc1xuICAgIC8vIHNlbGYgc2NvcGVkIHBsdWdpbnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkXG4gICAgY29uc3QgYWxsUGx1Z2luc0V4Y2VwdFNlbGZTY29wZWQgPSB0aGlzLmdldEFsbFBsdWdpbnNFeGNlcHRTZWxmU2NvcGVkKFxuICAgICAgcGx1Z2luc0FycmF5LFxuICAgICAgYXBwbGljYXRpb24uY29udGV4dFBhdGhcbiAgICApO1xuICAgIGNvbnN0IG5ld1JlbW90ZXMgPSB0aGlzLmFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhhcHBDb25maWdSZW1vdGVzLCBhbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZCk7XG4gICAgLy8gc2hvdWxkIGJlIHVucHJvYmxlbWF0aWMgdG8gcmVtb3ZlIGFsbCBjYXRlZ29yaWVzIG9mIHBsdWdpbnMgZnJvbSBleGNsdWRlZCByZW1vdGVzXG4gICAgY29uc3QgbmV3RXhjbHVkZWRSZW1vdGVzID0gdGhpcy5yZW1vdmVQbHVnaW5zRnJvbVJlbW90ZXNDb25maWcoXG4gICAgICBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMsXG4gICAgICBwbHVnaW5zXG4gICAgKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoYXBwbGljYXRpb24sIG5ld1JlbW90ZXMsIG5ld0V4Y2x1ZGVkUmVtb3Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVtb3RlcyBmaWVsZCBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBieSByZW1vdmluZyBwbHVnaW5zLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHVwZGF0ZWQgYXBwbGljYXRpb24gcmVtb3Rlcy5cbiAgICovXG4gIGFzeW5jIHJlbW92ZVJlbW90ZXMoXG4gICAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbixcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogUHJvbWlzZTxQbHVnaW5zQ29uZmlnPiB7XG4gICAgY29uc3QgcGx1Z2luc0FycmF5ID0gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBbcGx1Z2luc107XG4gICAgY29uc3QgbWFuaWZlc3RSZW1vdGVzID0gYXBwbGljYXRpb24ubWFuaWZlc3Q/LnJlbW90ZXMgfHwge307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBQbHVnaW5zQ29uZmlnIHwgdW5kZWZpbmVkID0gYXBwbGljYXRpb24/LmNvbmZpZyBhcyBQbHVnaW5zQ29uZmlnO1xuICAgIGNvbnN0IGFwcENvbmZpZ1JlbW90ZXMgPSBhcHBDb25maWc/LnJlbW90ZXMgfHwgbWFuaWZlc3RSZW1vdGVzO1xuICAgIGNvbnN0IGFwcENvbmZpZ0V4Y2x1ZGVkUmVtb3RlcyA9IGFwcENvbmZpZz8uZXhjbHVkZWRSZW1vdGVzIHx8IHt9O1xuICAgIC8vIGFwcCBwbHVnaW5zIG5lZWQgdG8gYmUgcmVtb3ZlZCBmcm9tIHJlbW90ZXNcbiAgICBjb25zdCBuZXdSZW1vdGVzID0gdGhpcy5yZW1vdmVQbHVnaW5zRnJvbVJlbW90ZXNDb25maWcoYXBwQ29uZmlnUmVtb3RlcywgcGx1Z2lucyk7XG4gICAgLy8gc2VsZiBzY29wZWQgcGx1Z2lucyBuZWVkIHRvIGJlIGFkZGVkIHRvIGV4Y2x1ZGVkIHJlbW90ZXNcbiAgICAvLyBhcyB0aGV5IHdvdWxkIGJlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHJlbW90ZXNcbiAgICBjb25zdCBzZWxmU2NvcGVkUGx1Z2lucyA9IHRoaXMuZ2V0U2VsZlNjb3BlZFBsdWdpbnMocGx1Z2luc0FycmF5LCBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCk7XG4gICAgY29uc3QgbmV3RXhjbHVkZWRSZW1vdGVzID0gdGhpcy5hZGRQbHVnaW5Ub1JlbW90ZXNDb25maWcoXG4gICAgICBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMsXG4gICAgICBzZWxmU2NvcGVkUGx1Z2luc1xuICAgICk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlUmVtb3Rlc0luQXBwQ29uZmlnKGFwcGxpY2F0aW9uLCBuZXdSZW1vdGVzLCBuZXdFeGNsdWRlZFJlbW90ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbW90ZXMgZmllbGQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHBsdWdpbnMgTGlzdCBvZiByZW1vdGVzIHRvIGJlIGFkZGVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHVwZGF0ZWQgYXBwbGljYXRpb24gcmVtb3Rlcy5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyxcbiAgICBleGNsdWRlZFJlbW90ZXM/OiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnNcbiAgKTogUHJvbWlzZTxQbHVnaW5zQ29uZmlnPiB7XG4gICAgY29uc3QgdXBkYXRlZEFwcFdpdGhDb25maWcgPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS51cGRhdGVBcHBsaWNhdGlvbkNvbmZpZyhcbiAgICAgIGFwcGxpY2F0aW9uLFxuICAgICAge1xuICAgICAgICByZW1vdGVzOiBwbHVnaW5zLFxuICAgICAgICBleGNsdWRlZFJlbW90ZXM6IGV4Y2x1ZGVkUmVtb3RlcyB8fCB7fVxuICAgICAgfSBhcyBQbHVnaW5zQ29uZmlnXG4gICAgKTtcbiAgICByZXR1cm4gdXBkYXRlZEFwcFdpdGhDb25maWc/LmNvbmZpZyB8fCB7IHJlbW90ZXM6IHt9IH07XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqL1xuICBhc3luYyBnZXRDdW11bG9jaXR5SnNvbkZpbGUoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IGM4eUpzb24gPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRBcHBNYW5pZmVzdChhcHBsaWNhdGlvbik7XG4gICAgaWYgKCFjOHlKc29uLnJlbW90ZXMpIHtcbiAgICAgIGM4eUpzb24ucmVtb3RlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gYzh5SnNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbml0aWFsIHN0YXRlIG9mIHJlbW90ZXMgaW4gdGhlIGNvbmZpZ3VyYXRpb24gKHdoZW4gaXQncyBtaXNzaW5nKSwgYmFzZWQgb24gdGhlIGxpc3Qgb2YgcmVtb3RlcyBiZWluZyBpbiB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiAgQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEByZXR1cm5zIFJldHVybnMgYSBsaXN0IG9mIHJlbW90ZXMgdGhhdCBoYXMgYmVlbiBhc3NpZ25lZCB0byB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqL1xuICBhc3luYyBzZXRJbml0aWFsUmVtb3RlcyhhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0OiBJTWFuaWZlc3QgPSBhd2FpdCB0aGlzLmdldEN1bXVsb2NpdHlKc29uRmlsZShhcHBsaWNhdGlvbik7XG4gICAgICBjb25zdCBtYW5pZmVzdFJlbW90ZXM6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyA9IG1hbmlmZXN0LnJlbW90ZXM7XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhhcHBsaWNhdGlvbiwgbWFuaWZlc3RSZW1vdGVzIHx8IHt9LCB7fSk7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVzZXRSZW1vdGVzKGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UudXBkYXRlQXBwbGljYXRpb25Db25maWcoYXBwbGljYXRpb24sIHtcbiAgICAgIHJlbW90ZXM6IHVuZGVmaW5lZCxcbiAgICAgIGV4Y2x1ZGVkUmVtb3RlczogdW5kZWZpbmVkXG4gICAgfSBhcyBQbHVnaW5zQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0cyB2ZXJzaW9ucyBsaXN0IG9yIGxpc3Qgb2Ygb2JqZWN0cyBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqIEByZXR1cm5zIGxpc3Qgb2YgdmVyc2lvbnMgYXMgYXJyYXkgb2Ygc3RyaW5ncyBvciBhcnJheSBvZiBvYmplY3RzIHNvcnRlZCBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqXG4gICAqIEBwYXJhbSB7eyBsaXN0OiBUW107IHBhdGg6IHN0cmluZ1tdIH0gfCBzdHJpbmdbXX0gc291cmNlIGRhdGEgdG8gc29ydFxuICAgKiBAcGFyYW0geydhc2MnIHwgJ2Rlc2MnfSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyBvcmRlciBvZiBzb3J0aW5nXG4gICAqXG4gICAqICoqRXhhbXBsZSoqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZGF0YSA9IFsnMS41LjAnLCAnMi4wLjAnXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh2ZXJzaW9ucywgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gWycyLjAuMCcsICcxLjUuMCddXG4gICAqIGBgYFxuICAgKlxuICAgKiAqKkV4YW1wbGUqKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGRhdGEgPSBbXG4gICAqICB7YXBwOiB7YXBwVmVyc2lvbjogJzEuNS4wJ319LFxuICAgKiAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh7bGlzdDogZGF0YSwgcGF0aDogWydhcHAnLCAnYXBwVmVyc2lvbiddfSwgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gW1xuICAgKiAvLyAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogLy8gIHthcHA6IHthcHBWZXJzaW9uOiAnMS41LjAnfX1cbiAgICogLy8gXVxuICAgKiBgYGBcbiAgICovXG4gIHNvcnRWZXJzaW9uczxUPihzb3VyY2U6IHsgbGlzdDogVFtdOyBwYXRoOiBzdHJpbmdbXSB9LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBUW107XG4gIHNvcnRWZXJzaW9ucyhzb3VyY2U6IHN0cmluZ1tdLCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBzdHJpbmdbXTtcbiAgc29ydFZlcnNpb25zKHNvdXJjZTogYW55LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBhbnkge1xuICAgIGNvbnN0IHNvdXJjZUNvcHkgPSBjbG9uZURlZXAoc291cmNlKTtcbiAgICBpZiAoc291cmNlLmxpc3QgJiYgc291cmNlLnBhdGgpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBzb3VyY2VDb3B5LnBhdGguam9pbignLicpO1xuICAgICAgcmV0dXJuIHNvdXJjZUNvcHkubGlzdC5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gY29tcGFyZShjb2VyY2UoZ2V0KGEsIHBhdGgpKSwgY29lcmNlKGdldChiLCBwYXRoKSkpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5LnNvcnQoKGEsIGIpID0+IGNvbXBhcmUoY29lcmNlKGEpLCBjb2VyY2UoYikpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhIGxpc3Qgb2YgZXhwb3J0ZWQgcGx1Z2lucyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHVzZUxhdGVzdCBTZXQgdGhpcyB0byB0cnVlLCB0byBub3QgYmluZCB0aGUgcGx1Z2luIHRvIGFueSB2ZXJzaW9uLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBleHBvcnRlZCBwbHVnaW5zLlxuICAgKi9cbiAgZ2V0TUZFeHBvcnRzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgZXhjbHVkZWRTY29wZXMgPSBbXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEZfT1BUSU9OQUwsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLkdMT0JBTFxuICAgIF0sXG4gICAgdXNlTGF0ZXN0ID0gZmFsc2VcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgbWFuaWZlc3Q6IFBhcnRpYWw8SU1hbmlmZXN0PiA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0O1xuICAgIGlmICghbWFuaWZlc3QgfHwgIW1hbmlmZXN0LmV4cG9ydHMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kUGx1Z2luc0RldGFpbHMoXG4gICAgICBhcHBsaWNhdGlvbixcbiAgICAgIHtcbiAgICAgICAgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbixcbiAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIHVzZUxhdGVzdFxuICAgICkuZmlsdGVyKHBsdWdpbiA9PiAhZXhjbHVkZWRTY29wZXMuaW5jbHVkZXMocGx1Z2luLnNjb3BlKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBsaXN0IG9mIGV4cG9ydHMgZnJvbSBlYWNoIGF2YWlsYWJsZSBwYWNrYWdlLlxuICAgKiBAcGFyYW0gYWxsVmVyc2lvbnMgSWYgc2V0IHRvIHRydWUsIGFsbCBhbmQgbm90IG9ubHkgbGF0ZXN0IHZlcnNpb25zIGFyZSBpbmNsdWRlZC5cbiAgICogQHBhcmFtIGV4Y2x1ZGVkU2NvcGVzIERlZmluZXMgd2hpY2ggc2NvcGVzIHNob3VsZCBub3QgYmUgbG9hZGVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZXhwb3J0ZWQgcGx1Z2lucy5cbiAgICovXG4gIGFzeW5jIGdldEFsbE1GRXhwb3J0cyhcbiAgICBhbGxWZXJzaW9ucyA9IGZhbHNlLFxuICAgIGV4Y2x1ZGVkU2NvcGVzID0gW1xuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGX09QVElPTkFMLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5HTE9CQUxcbiAgICBdXG4gICk6IFByb21pc2U8QXBwbGljYXRpb25QbHVnaW5bXT4ge1xuICAgIGNvbnN0IHBsdWdpbnMgPSBuZXcgQXJyYXk8QXBwbGljYXRpb25QbHVnaW4+KCk7XG4gICAgY29uc3QgcGFja2FnZXMgPSBhd2FpdCB0aGlzLmxpc3RQYWNrYWdlcygpO1xuICAgIGZvciAoY29uc3QgcGtnIG9mIHBhY2thZ2VzKSB7XG4gICAgICBpZiAoIXBrZz8ubWFuaWZlc3Q/LmV4cG9ydHMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoYWxsVmVyc2lvbnMgJiYgQXJyYXkuaXNBcnJheShwa2cuYXBwbGljYXRpb25WZXJzaW9ucykpIHtcbiAgICAgICAgcGtnLmFwcGxpY2F0aW9uVmVyc2lvbnMuZm9yRWFjaCh2ZXJzaW9uID0+IHtcbiAgICAgICAgICBwbHVnaW5zLnB1c2goLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHZlcnNpb24pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwbHVnaW5zLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHtcbiAgICAgICAgICAgIHZlcnNpb246IHBrZy5tYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gIWV4Y2x1ZGVkU2NvcGVzLmluY2x1ZGVzKHBsdWdpbi5zY29wZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgbGlzdCBvZiByZW1vdGVzIGZyb20gdGhlIGFwcGxpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGxpc3Qgb2YgcmVtb3Rlcy5cbiAgICovXG4gIGdldE1GUmVtb3RlcyhhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0IHx8IHt9O1xuICAgIGNvbnN0IGNvbmZpZzogUGx1Z2luc0NvbmZpZyA9IGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZztcbiAgICBsZXQgcmVtb3RlcyA9IGNvbmZpZz8ucmVtb3RlcyB8fCBtYW5pZmVzdC5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IG1hbmlmZXN0RXhwb3J0cyA9IG1hbmlmZXN0LmV4cG9ydHMgfHwgbWFuaWZlc3QubWFuaWZlc3Q/LmV4cG9ydHMgfHwgW107XG4gICAgY29uc3Qgc2VsZlJlbW90ZXM6IHN0cmluZ1tdID0gbWFuaWZlc3RFeHBvcnRzXG4gICAgICAuZmlsdGVyKHBsdWdpbiA9PiBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRilcbiAgICAgIC5tYXAocGx1Z2luID0+IHBsdWdpbi5tb2R1bGUgfHwgcGx1Z2luLm5hbWUpO1xuXG4gICAgaWYgKHNlbGZSZW1vdGVzLmxlbmd0aCkge1xuICAgICAgcmVtb3RlcyA9IFBsdWdpbnNSZXNvbHZlU2VydmljZS5tZXJnZVJlbW90ZXMoW1xuICAgICAgICB7IFthcHBsaWNhdGlvbi5jb250ZXh0UGF0aF06IHNlbGZSZW1vdGVzIH0sXG4gICAgICAgIHJlbW90ZXNcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHJlbW90ZXMgPSBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UucmVtb3ZlUmVtb3RlcyhyZW1vdGVzLCBjb25maWc/LmV4Y2x1ZGVkUmVtb3Rlcyk7XG4gICAgcmV0dXJuIHJlbW90ZXM7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBhIHBhY2thZ2UuXG4gICAqIEEgcGFja2FnZSBpcyBPRkZJQ0lBTCBpZiBpdCBjb21lcyBmcm9tIG1hbmFnZW1lbnQgdGVuYW50IGFuZCBoYXMgYSBsYWJlbCBhdHRhY2hlZCBjYWxsZWQgT0ZGSUNJQUwuXG4gICAqIEEgcGFja2FnZSBpcyBDT01NVU5JVFkgaWYgaXQgaGFzIGEgbGFiZWwgY2FsbGVkIENPTU1VTklUWS5cbiAgICogQSBwYWNrYWdlIGlzIENVU1RPTSBpZiBpdCBkb2VzIG5vdCBoYXZlIGFueSBsYWJlbCBhdHRhY2hlZC5cbiAgICogQSBwYWNrYWdlIGlzIFVOS05PV04gaWYgaXQgaGFzIGEgbGFiZWwgYXR0YWNoZWQgYnV0IGl0IGRvZXMgbm90IG1hdGNoIENPTU1VTklUWSBvciBPRkZJQ0lBTC5cbiAgICpcbiAgICogTGFiZWxzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzdGF0dXMgb2YgYSBwYWNrYWdlLiBDb21tdW5pdHkgcGFja2FnZXMgYWx3YXlzIG5lZWRcbiAgICogYSBsaWNlbnNlIHZhbGlkYXRpb24uIFRoZSBsYWJlbCB3aWxsIGJlIHNob3duIG9uIHRoZSBhcHBsaWNhdGlvbiBjYXJkIHRvIHRlbGwgYSB1c2VyXG4gICAqIHdoZXRoZXIgdGhleSBhcmUgbG9va2luZyBpbnRvIGFuIG9mZmljaWFsIG9yIGNvbW11bml0eSBwYWNrYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFja2FnZUFwcGxpY2F0aW9uIFRoZSBwYWNrYWdlIGFwcGxpY2F0aW9uIG9iamVjdCB0byBjaGVjay5cbiAgICogQHJldHVybnMgVGhlIHBhY2thZ2UgdHlwZS5cbiAgICovXG4gIGdldFBhY2thZ2VUeXBlKHBhY2thZ2VBcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogUGFja2FnZVR5cGUge1xuICAgIGNvbnN0IGxhYmVsID0gcGFja2FnZUFwcGxpY2F0aW9uLmxhYmVsIHx8IHBhY2thZ2VBcHBsaWNhdGlvbi5tYW5pZmVzdD8ubGFiZWw7XG4gICAgaWYgKCFsYWJlbCkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLkNVU1RPTTtcbiAgICB9XG4gICAgaWYgKGxhYmVsID09PSBQYWNrYWdlVHlwZS5PRkZJQ0lBTCAmJiB0aGlzLmlzT3duZWRCeU1hbmFnZW1lbnQocGFja2FnZUFwcGxpY2F0aW9uKSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLk9GRklDSUFMO1xuICAgIH1cbiAgICBpZiAobGFiZWwgPT09IFBhY2thZ2VUeXBlLkNPTU1VTklUWSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLkNPTU1VTklUWTtcbiAgICB9XG4gICAgcmV0dXJuIFBhY2thZ2VUeXBlLlVOS05PV047XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYW4gYXBwbGljYXRpb24gaXMgb3duZWQgYnkgbWFuYWdlbWVudCB0ZW5hbnQuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgVGhlIGFwcGxpY2F0aW9uIHRvIHZlcmlmeS5cbiAgICogQHJldHVybnMgVHJ1ZSBpZiBvd25lZCBieSBtYW5hZ2VtZW50IHRlbmFudC5cbiAgICovXG4gIGlzT3duZWRCeU1hbmFnZW1lbnQoYXBwOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICBjb25zdCBhcHBPd25lciA9IGdldChhcHAsICdvd25lci50ZW5hbnQuaWQnKTtcbiAgICByZXR1cm4gYXBwT3duZXIgPT09ICdtYW5hZ2VtZW50JztcbiAgfVxuXG4gIHBsdWdpbnNGcm9tTWFuaWZlc3QobWFuaWZlc3Q6IElNYW5pZmVzdCk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBtYW5pZmVzdC5leHBvcnRzO1xuICAgIGNvbnN0IGV4dGVuZGVkUGx1Z2lucyA9IHBsdWdpbnNcbiAgICAgIC5maWx0ZXIocCA9PiBwLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYpXG4gICAgICAubWFwKHAgPT4gKHtcbiAgICAgICAgLi4ucCxcbiAgICAgICAgaWQ6IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKG1hbmlmZXN0LmNvbnRleHRQYXRoLCBwLCBtYW5pZmVzdC52ZXJzaW9uKSxcbiAgICAgICAgY29udGV4dFBhdGg6IG1hbmlmZXN0LmNvbnRleHRQYXRoLFxuICAgICAgICB2ZXJzaW9uOiBtYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgICB2ZXJzaW9uaW5nTWF0cml4OiBtYW5pZmVzdC52ZXJzaW9uaW5nTWF0cml4LFxuICAgICAgICBsaWNlbnNlOiBtYW5pZmVzdC5saWNlbnNlLFxuICAgICAgICB0eXBlOiBQYWNrYWdlVHlwZS5DVVNUT01cbiAgICAgIH0pKTtcbiAgICByZXR1cm4gZXh0ZW5kZWRQbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGZTY29wZWRQbHVnaW4ocGx1Z2luOiBBcHBsaWNhdGlvblBsdWdpbiwgY29udGV4dFBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgcGx1Z2luLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYgJiZcbiAgICAgICghY29udGV4dFBhdGggfHwgcGx1Z2luLmNvbnRleHRQYXRoID09PSBjb250ZXh0UGF0aClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxmU2NvcGVkUGx1Z2lucyhcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIGNvbnRleHRQYXRoPzogc3RyaW5nXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gdGhpcy5pc1NlbGZTY29wZWRQbHVnaW4ocGx1Z2luLCBjb250ZXh0UGF0aCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZChcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIGNvbnRleHRQYXRoPzogc3RyaW5nXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gIXRoaXMuaXNTZWxmU2NvcGVkUGx1Z2luKHBsdWdpbiwgY29udGV4dFBhdGgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlcyhhcHBzOiBJQXBwbGljYXRpb25bXSwga2V5OiBzdHJpbmcpOiBJQXBwbGljYXRpb25bXSB7XG4gICAgY29uc3QgdW5pcXVlTGlzdDogSUFwcGxpY2F0aW9uW10gPSBbXTtcbiAgICBjb25zdCBncm91cGVkQXBwc0J5S2V5OiBSZWNvcmQ8c3RyaW5nLCBJQXBwbGljYXRpb25bXT4gPSBncm91cEJ5KGFwcHMsIGtleSk7XG4gICAgY29uc3QgZ3JvdXBlZEFwcHM6IElBcHBsaWNhdGlvbltdW10gPSBPYmplY3Qua2V5cyhncm91cGVkQXBwc0J5S2V5KS5tYXAoXG4gICAgICBrZXkgPT4gZ3JvdXBlZEFwcHNCeUtleVtrZXldXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGFwcHNHcm91cCBvZiBncm91cGVkQXBwcykge1xuICAgICAgaWYgKGFwcHNHcm91cC5sZW5ndGggPCAyKSB7XG4gICAgICAgIHVuaXF1ZUxpc3QucHVzaCguLi5hcHBzR3JvdXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYXBwRnJvbUN1cnJlbnRUZW5hbnQgPSBhcHBzR3JvdXAuZmluZChhcHAgPT4gdGhpcy5pc0Zyb21DdXJyZW50VGVuYW50KGFwcCkpO1xuICAgICAgICBpZiAoYXBwRnJvbUN1cnJlbnRUZW5hbnQpIHtcbiAgICAgICAgICB1bmlxdWVMaXN0LnB1c2goYXBwRnJvbUN1cnJlbnRUZW5hbnQpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFwcE5vdE93bmVkQnlNYW5hZ2VtZW50ID0gYXBwc0dyb3VwLmZpbmQoYXBwID0+ICF0aGlzLmlzT3duZWRCeU1hbmFnZW1lbnQoYXBwKSk7XG4gICAgICAgIHVuaXF1ZUxpc3QucHVzaChhcHBOb3RPd25lZEJ5TWFuYWdlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmlxdWVMaXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Zyb21DdXJyZW50VGVuYW50KGFwcDogSUFwcGxpY2F0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFwcC5vd25lci50ZW5hbnQuaWQgPT09IHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgbGlzdCBvZiBwbHVnaW5zIHRvIGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBzdWNoIGFzIGlkLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGV4dGVuZFBsdWdpbnNEZXRhaWxzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgdmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbixcbiAgICB1c2VMYXRlc3QgPSBmYWxzZVxuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gYXBwbGljYXRpb24ubWFuaWZlc3QuZXhwb3J0cztcbiAgICBjb25zdCBleHRlbmRlZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBwbHVnaW5zLm1hcChwID0+ICh7XG4gICAgICAuLi5wLFxuICAgICAgaWQ6IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGFwcGxpY2F0aW9uLmNvbnRleHRQYXRoLCBwLCB2ZXJzaW9uLnZlcnNpb24sIHVzZUxhdGVzdCksXG4gICAgICBpZExhdGVzdDogUGx1Z2luc1NlcnZpY2UuY3JlYXRlUGx1Z2luSWQoYXBwbGljYXRpb24uY29udGV4dFBhdGgsIHAsIHZlcnNpb24udmVyc2lvbiwgdHJ1ZSksXG4gICAgICBjb250ZXh0UGF0aDogYXBwbGljYXRpb24uY29udGV4dFBhdGgsXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uLnZlcnNpb24sXG4gICAgICB2ZXJzaW9uaW5nTWF0cml4OiBhcHBsaWNhdGlvbi5tYW5pZmVzdC52ZXJzaW9uaW5nTWF0cml4LFxuICAgICAgdGFnczogdXNlTGF0ZXN0ID8gWydsYXRlc3QnXSA6IHZlcnNpb24udGFncyB8fCBbXSxcbiAgICAgIGxpY2Vuc2U6IGFwcGxpY2F0aW9uLm1hbmlmZXN0LmxpY2Vuc2UsXG4gICAgICB0eXBlOiB0aGlzLmdldFBhY2thZ2VUeXBlKGFwcGxpY2F0aW9uKVxuICAgIH0pKTtcbiAgICByZXR1cm4gZXh0ZW5kZWRQbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsaXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgY29uc3QgZmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ0hPU1RFRCcsXG4gICAgICAgIHBhZ2VTaXplOiAyMDAwLFxuICAgICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gICAgY29uc3Qgc2hhcmVkRmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgYXZhaWxhYmlsaXR5OiBBcHBsaWNhdGlvbkF2YWlsYWJpbGl0eS5TSEFSRUQsXG4gICAgICAgIHR5cGU6ICdIT1NURUQnLFxuICAgICAgICBwYWdlU2l6ZTogMjAwMCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICAgIH0sXG4gICAgICBwYXJhbXNcbiAgICApO1xuXG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgICBjb25zdCBbcmVzdWx0QXBwc093bmVkQnlUZW5hbnQsIHJlc3VsdFNoYXJlZEFwcHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdEJ5VGVuYW50KHRlbmFudE5hbWUsIGZpbHRlciksXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0KHNoYXJlZEZpbHRlcilcbiAgICBdKTtcbiAgICBjb25zdCB7IGRhdGE6IGFwcHNPd25lZEJ5VGVuYW50IH0gPSByZXN1bHRBcHBzT3duZWRCeVRlbmFudDtcbiAgICBjb25zdCB7IGRhdGE6IHNoYXJlZEFwcHMgfSA9IHJlc3VsdFNoYXJlZEFwcHM7XG4gICAgY29uc3Qgd2ViQXBwcyA9IFsuLi5hcHBzT3duZWRCeVRlbmFudCwgLi4uc2hhcmVkQXBwc107XG4gICAgcmV0dXJuIHVuaXFCeSh3ZWJBcHBzLCAoYXBwOiBJQXBwbGljYXRpb24pID0+IGFwcC5pZCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhcbiAgICByZW1vdGVzQ29uZmlnOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB7XG4gICAgaWYgKCFwbHVnaW5zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbW90ZXNDb3B5ID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXT8ubGVuZ3RoID49IDBcbiAgICAgICAgPyByZW1vdGVzQ29weVtjb250ZXh0UGF0aF0ucHVzaChtb2R1bGVOYW1lKVxuICAgICAgICA6IChyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0gPSBbXSkucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSA9IFsuLi5uZXcgU2V0KHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSldO1xuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGx1Z2luc0Zyb21SZW1vdGVzQ29uZmlnKFxuICAgIHJlbW90ZXNDb25maWc6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyxcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCByZW1vdGVzQ29weTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lIHx8ICFyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmZpbHRlcihwID0+IHAgIT09IG1vZHVsZU5hbWUpO1xuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gWy4uLm5ldyBTZXQocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdKV07XG4gICAgICBpZiAocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkZWxldGUgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQbHVnaW5JZChpZDogc3RyaW5nKTogeyBjb250ZXh0UGF0aDogc3RyaW5nOyBtb2R1bGVOYW1lOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgW2NvbnRleHRQYXRoLCBtb2R1bGVOYW1lXSA9IGlkLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgY29udGV4dFBhdGgsIG1vZHVsZU5hbWUgfTtcbiAgfVxufVxuIl19
|
|
402
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9wbHVnaW5zL3BsdWdpbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFLeEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQXFCLFdBQVcsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdsRSxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsNEJBQTRCLENBQUMsT0FBaUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9DLE9B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QUNsRSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE9BQU87WUFDVCxDQUFDO1lBQ0QsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUFVO1FBQzlCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OEdBL2ZVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQXZhaWxhYmlsaXR5LFxuICBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gIElBcHBsaWNhdGlvbixcbiAgSUFwcGxpY2F0aW9uVmVyc2lvbixcbiAgSU1hbmlmZXN0XG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY29lcmNlLCBjb21wYXJlIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdyb3VwQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW4sIFBhY2thZ2VUeXBlLCBQbHVnaW5zQ29uZmlnIH0gZnJvbSAnLi9wbHVnaW5zLm1vZGVsJztcbmltcG9ydCB7IFBsdWdpbnNFeHBvcnRTY29wZXMgfSBmcm9tICcuLi9jb21tb24vQXBwbGljYXRpb25PcHRpb25zJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4vcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGx1Z2luc1NlcnZpY2Uge1xuICBzdGF0aWMgY29udmVydEluc3RhbGxlZFJlbW90ZXNUb0lkcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGltcG9ydENvbnRleHRQYXRocyA9IE9iamVjdC5rZXlzKHJlbW90ZXMpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbXTtcbiAgICBpbXBvcnRDb250ZXh0UGF0aHMuZm9yRWFjaChjb250ZXh0UGF0aCA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lcyA9IHJlbW90ZXNbY29udGV4dFBhdGhdIHx8IFtdO1xuICAgICAgcGx1Z2lucy5wdXNoKFxuICAgICAgICAuLi5tb2R1bGVOYW1lcy5tYXAobW9kdWxlID0+IFBsdWdpbnNTZXJ2aWNlLmNyZWF0ZVBsdWdpbklkKGNvbnRleHRQYXRoLCBtb2R1bGUsICcnLCB0cnVlKSlcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBsdWdpbnM7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUGx1Z2luSWQoXG4gICAgY29udGV4dFBhdGg6IHN0cmluZyxcbiAgICBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luIHwgc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICB1c2VMYXRlc3QgPSBmYWxzZVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0eXBlb2YgcGx1Z2luID09PSAnc3RyaW5nJyA/IHBsdWdpbiA6IHBsdWdpbi5tb2R1bGU7XG4gICAgaWYgKHVzZUxhdGVzdCkge1xuICAgICAgcmV0dXJuIGAke2NvbnRleHRQYXRofS8ke21vZHVsZU5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbnRleHRQYXRofUAke3ZlcnNpb259LyR7bW9kdWxlTmFtZX1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLlxuICAgKiBAcGFyYW0gcGFyYW1zIEFkZGl0aW9uYWwgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMgUmV0dXJucyBhIGxpc3Qgb2YgcGFja2FnZXMuXG4gICAqL1xuICBhc3luYyBsaXN0UGFja2FnZXMocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8SUFwcGxpY2F0aW9uW10+IHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5saXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtcyk7XG4gICAgY29uc3Qgd2ViQXBwcyA9IGFwcHMuZmlsdGVyKGFwcCA9PiB0aGlzLmlzUGFja2FnZShhcHApKTtcbiAgICBjb25zdCB1bmlxdWVXZWJBcHBzID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVzKHdlYkFwcHMsICdjb250ZXh0UGF0aCcpO1xuICAgIHJldHVybiB1bmlxdWVXZWJBcHBzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBhIHBhY2thZ2UuXG4gICAqL1xuICBpc1BhY2thZ2UoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcHBsaWNhdGlvbi5tYW5pZmVzdD8uaXNQYWNrYWdlID09PSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbW90ZXMgZmllbGQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYnkgYWRkaW5nIG5ldyBwbHVnaW5zLlxuICAgKiBJbXBvcnRhbnQ6IGlmIHRoZSByZW1vdGVzIG9iamVjdCBpcyBub3Qgc2V0IG9uIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCxcbiAgICogcmVtb3RlcyB3aWxsIG5vdCBiZSBhZGRlZC4gTWFrZSBzdXJlIHRoYXQgdGhpcyBvYmplY3QgZXhpc3RzIGluIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSBhZGRlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB1cGRhdGVkIGFwcGxpY2F0aW9uIHJlbW90ZXMuXG4gICAqL1xuICBhc3luYyBhZGRSZW1vdGVzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IFByb21pc2U8UGx1Z2luc0NvbmZpZz4ge1xuICAgIGNvbnN0IHBsdWdpbnNBcnJheSA9IEFycmF5LmlzQXJyYXkocGx1Z2lucykgPyBwbHVnaW5zIDogW3BsdWdpbnNdO1xuICAgIGNvbnN0IG1hbmlmZXN0UmVtb3RlcyA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0Py5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogUGx1Z2luc0NvbmZpZyB8IHVuZGVmaW5lZCA9IGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZztcbiAgICBjb25zdCBhcHBDb25maWdSZW1vdGVzID0gYXBwQ29uZmlnPy5yZW1vdGVzIHx8IG1hbmlmZXN0UmVtb3RlcztcbiAgICBjb25zdCBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMgPSBhcHBDb25maWc/LmV4Y2x1ZGVkUmVtb3RlcyB8fCB7fTtcbiAgICAvLyBvbmx5IG5vcm1hbCBhbmQgc2VsZiBvcHRpb25hbCBzY29wZWQgcGx1Z2lucyBzaG91bGQgYmUgYWRkZWQgdG8gcmVtb3Rlc1xuICAgIC8vIHNlbGYgc2NvcGVkIHBsdWdpbnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkXG4gICAgY29uc3QgYWxsUGx1Z2luc0V4Y2VwdFNlbGZTY29wZWQgPSB0aGlzLmdldEFsbFBsdWdpbnNFeGNlcHRTZWxmU2NvcGVkKFxuICAgICAgcGx1Z2luc0FycmF5LFxuICAgICAgYXBwbGljYXRpb24uY29udGV4dFBhdGhcbiAgICApO1xuICAgIGNvbnN0IG5ld1JlbW90ZXMgPSB0aGlzLmFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhhcHBDb25maWdSZW1vdGVzLCBhbGxQbHVnaW5zRXhjZXB0U2VsZlNjb3BlZCk7XG4gICAgLy8gc2hvdWxkIGJlIHVucHJvYmxlbWF0aWMgdG8gcmVtb3ZlIGFsbCBjYXRlZ29yaWVzIG9mIHBsdWdpbnMgZnJvbSBleGNsdWRlZCByZW1vdGVzXG4gICAgY29uc3QgbmV3RXhjbHVkZWRSZW1vdGVzID0gdGhpcy5yZW1vdmVQbHVnaW5zRnJvbVJlbW90ZXNDb25maWcoXG4gICAgICBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMsXG4gICAgICBwbHVnaW5zXG4gICAgKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVSZW1vdGVzSW5BcHBDb25maWcoYXBwbGljYXRpb24sIG5ld1JlbW90ZXMsIG5ld0V4Y2x1ZGVkUmVtb3Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVtb3RlcyBmaWVsZCBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBieSByZW1vdmluZyBwbHVnaW5zLlxuICAgKiBAcGFyYW0gYXBwbGljYXRpb24gQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW5zIExpc3Qgb2YgcmVtb3RlcyB0byBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHVwZGF0ZWQgYXBwbGljYXRpb24gcmVtb3Rlcy5cbiAgICovXG4gIGFzeW5jIHJlbW92ZVJlbW90ZXMoXG4gICAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbixcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogUHJvbWlzZTxQbHVnaW5zQ29uZmlnPiB7XG4gICAgY29uc3QgcGx1Z2luc0FycmF5ID0gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBbcGx1Z2luc107XG4gICAgY29uc3QgbWFuaWZlc3RSZW1vdGVzID0gYXBwbGljYXRpb24ubWFuaWZlc3Q/LnJlbW90ZXMgfHwge307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBQbHVnaW5zQ29uZmlnIHwgdW5kZWZpbmVkID0gYXBwbGljYXRpb24/LmNvbmZpZyBhcyBQbHVnaW5zQ29uZmlnO1xuICAgIGNvbnN0IGFwcENvbmZpZ1JlbW90ZXMgPSBhcHBDb25maWc/LnJlbW90ZXMgfHwgbWFuaWZlc3RSZW1vdGVzO1xuICAgIGNvbnN0IGFwcENvbmZpZ0V4Y2x1ZGVkUmVtb3RlcyA9IGFwcENvbmZpZz8uZXhjbHVkZWRSZW1vdGVzIHx8IHt9O1xuICAgIC8vIGFwcCBwbHVnaW5zIG5lZWQgdG8gYmUgcmVtb3ZlZCBmcm9tIHJlbW90ZXNcbiAgICBjb25zdCBuZXdSZW1vdGVzID0gdGhpcy5yZW1vdmVQbHVnaW5zRnJvbVJlbW90ZXNDb25maWcoYXBwQ29uZmlnUmVtb3RlcywgcGx1Z2lucyk7XG4gICAgLy8gc2VsZiBzY29wZWQgcGx1Z2lucyBuZWVkIHRvIGJlIGFkZGVkIHRvIGV4Y2x1ZGVkIHJlbW90ZXNcbiAgICAvLyBhcyB0aGV5IHdvdWxkIGJlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHJlbW90ZXNcbiAgICBjb25zdCBzZWxmU2NvcGVkUGx1Z2lucyA9IHRoaXMuZ2V0U2VsZlNjb3BlZFBsdWdpbnMocGx1Z2luc0FycmF5LCBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCk7XG4gICAgY29uc3QgbmV3RXhjbHVkZWRSZW1vdGVzID0gdGhpcy5hZGRQbHVnaW5Ub1JlbW90ZXNDb25maWcoXG4gICAgICBhcHBDb25maWdFeGNsdWRlZFJlbW90ZXMsXG4gICAgICBzZWxmU2NvcGVkUGx1Z2luc1xuICAgICk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlUmVtb3Rlc0luQXBwQ29uZmlnKGFwcGxpY2F0aW9uLCBuZXdSZW1vdGVzLCBuZXdFeGNsdWRlZFJlbW90ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbW90ZXMgZmllbGQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHBsdWdpbnMgTGlzdCBvZiByZW1vdGVzIHRvIGJlIGFkZGVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHVwZGF0ZWQgYXBwbGljYXRpb24gcmVtb3Rlcy5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhcbiAgICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyxcbiAgICBleGNsdWRlZFJlbW90ZXM/OiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnNcbiAgKTogUHJvbWlzZTxQbHVnaW5zQ29uZmlnPiB7XG4gICAgY29uc3QgdXBkYXRlZEFwcFdpdGhDb25maWcgPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS51cGRhdGVBcHBsaWNhdGlvbkNvbmZpZyhcbiAgICAgIGFwcGxpY2F0aW9uLFxuICAgICAge1xuICAgICAgICByZW1vdGVzOiBwbHVnaW5zLFxuICAgICAgICBleGNsdWRlZFJlbW90ZXM6IGV4Y2x1ZGVkUmVtb3RlcyB8fCB7fVxuICAgICAgfSBhcyBQbHVnaW5zQ29uZmlnXG4gICAgKTtcbiAgICByZXR1cm4gdXBkYXRlZEFwcFdpdGhDb25maWc/LmNvbmZpZyB8fCB7IHJlbW90ZXM6IHt9IH07XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqL1xuICBhc3luYyBnZXRDdW11bG9jaXR5SnNvbkZpbGUoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IGM4eUpzb24gPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRBcHBNYW5pZmVzdChhcHBsaWNhdGlvbik7XG4gICAgaWYgKCFjOHlKc29uLnJlbW90ZXMpIHtcbiAgICAgIGM4eUpzb24ucmVtb3RlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gYzh5SnNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbml0aWFsIHN0YXRlIG9mIHJlbW90ZXMgaW4gdGhlIGNvbmZpZ3VyYXRpb24gKHdoZW4gaXQncyBtaXNzaW5nKSwgYmFzZWQgb24gdGhlIGxpc3Qgb2YgcmVtb3RlcyBiZWluZyBpbiB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiAgQXBwbGljYXRpb24gbWFuYWdlZCBvYmplY3QuXG4gICAqIEByZXR1cm5zIFJldHVybnMgYSBsaXN0IG9mIHJlbW90ZXMgdGhhdCBoYXMgYmVlbiBhc3NpZ25lZCB0byB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqL1xuICBhc3luYyBzZXRJbml0aWFsUmVtb3RlcyhhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0OiBJTWFuaWZlc3QgPSBhd2FpdCB0aGlzLmdldEN1bXVsb2NpdHlKc29uRmlsZShhcHBsaWNhdGlvbik7XG4gICAgICBjb25zdCBtYW5pZmVzdFJlbW90ZXM6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyA9IG1hbmlmZXN0LnJlbW90ZXM7XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZVJlbW90ZXNJbkFwcENvbmZpZyhhcHBsaWNhdGlvbiwgbWFuaWZlc3RSZW1vdGVzIHx8IHt9LCB7fSk7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVzZXRSZW1vdGVzKGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UudXBkYXRlQXBwbGljYXRpb25Db25maWcoYXBwbGljYXRpb24sIHtcbiAgICAgIHJlbW90ZXM6IHVuZGVmaW5lZCxcbiAgICAgIGV4Y2x1ZGVkUmVtb3RlczogdW5kZWZpbmVkXG4gICAgfSBhcyBQbHVnaW5zQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0cyB2ZXJzaW9ucyBsaXN0IG9yIGxpc3Qgb2Ygb2JqZWN0cyBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqIEByZXR1cm5zIGxpc3Qgb2YgdmVyc2lvbnMgYXMgYXJyYXkgb2Ygc3RyaW5ncyBvciBhcnJheSBvZiBvYmplY3RzIHNvcnRlZCBieSB2ZXJzaW9uIHByb3BlcnR5XG4gICAqXG4gICAqIEBwYXJhbSB7eyBsaXN0OiBUW107IHBhdGg6IHN0cmluZ1tdIH0gfCBzdHJpbmdbXX0gc291cmNlIGRhdGEgdG8gc29ydFxuICAgKiBAcGFyYW0geydhc2MnIHwgJ2Rlc2MnfSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyBvcmRlciBvZiBzb3J0aW5nXG4gICAqXG4gICAqICoqRXhhbXBsZSoqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZGF0YSA9IFsnMS41LjAnLCAnMi4wLjAnXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh2ZXJzaW9ucywgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gWycyLjAuMCcsICcxLjUuMCddXG4gICAqIGBgYFxuICAgKlxuICAgKiAqKkV4YW1wbGUqKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGRhdGEgPSBbXG4gICAqICB7YXBwOiB7YXBwVmVyc2lvbjogJzEuNS4wJ319LFxuICAgKiAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogXTtcbiAgICogY29uc3Qgc29ydGVkRGF0YSA9IHBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyh7bGlzdDogZGF0YSwgcGF0aDogWydhcHAnLCAnYXBwVmVyc2lvbiddfSwgJ2Rlc2MnKTtcbiAgICogLy8gc29ydGVkRGF0YTpcbiAgICogLy8gW1xuICAgKiAvLyAge2FwcDoge2FwcFZlcnNpb246ICcyLjAuMCd9fSxcbiAgICogLy8gIHthcHA6IHthcHBWZXJzaW9uOiAnMS41LjAnfX1cbiAgICogLy8gXVxuICAgKiBgYGBcbiAgICovXG4gIHNvcnRWZXJzaW9uczxUPihzb3VyY2U6IHsgbGlzdDogVFtdOyBwYXRoOiBzdHJpbmdbXSB9LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBUW107XG4gIHNvcnRWZXJzaW9ucyhzb3VyY2U6IHN0cmluZ1tdLCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBzdHJpbmdbXTtcbiAgc29ydFZlcnNpb25zKHNvdXJjZTogYW55LCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBhbnkge1xuICAgIGNvbnN0IHNvdXJjZUNvcHkgPSBjbG9uZURlZXAoc291cmNlKTtcbiAgICBpZiAoc291cmNlLmxpc3QgJiYgc291cmNlLnBhdGgpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBzb3VyY2VDb3B5LnBhdGguam9pbignLicpO1xuICAgICAgcmV0dXJuIHNvdXJjZUNvcHkubGlzdC5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gY29tcGFyZShjb2VyY2UoZ2V0KGEsIHBhdGgpKSwgY29lcmNlKGdldChiLCBwYXRoKSkpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5LnNvcnQoKGEsIGIpID0+IGNvbXBhcmUoY29lcmNlKGEpLCBjb2VyY2UoYikpICogKG9yZGVyID09PSAnYXNjJyA/IDEgOiAtMSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhIGxpc3Qgb2YgZXhwb3J0ZWQgcGx1Z2lucyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbiBBcHBsaWNhdGlvbiBtYW5hZ2VkIG9iamVjdC5cbiAgICogQHBhcmFtIHVzZUxhdGVzdCBTZXQgdGhpcyB0byB0cnVlLCB0byBub3QgYmluZCB0aGUgcGx1Z2luIHRvIGFueSB2ZXJzaW9uLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBleHBvcnRlZCBwbHVnaW5zLlxuICAgKi9cbiAgZ2V0TUZFeHBvcnRzKFxuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb24sXG4gICAgZXhjbHVkZWRTY29wZXMgPSBbXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEYsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEZfT1BUSU9OQUwsXG4gICAgICBQbHVnaW5zRXhwb3J0U2NvcGVzLkdMT0JBTFxuICAgIF0sXG4gICAgdXNlTGF0ZXN0ID0gZmFsc2VcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgbWFuaWZlc3Q6IFBhcnRpYWw8SU1hbmlmZXN0PiA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0O1xuICAgIGlmICghbWFuaWZlc3QgfHwgIW1hbmlmZXN0LmV4cG9ydHMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kUGx1Z2luc0RldGFpbHMoXG4gICAgICBhcHBsaWNhdGlvbixcbiAgICAgIHtcbiAgICAgICAgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbixcbiAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIHVzZUxhdGVzdFxuICAgICkuZmlsdGVyKHBsdWdpbiA9PiAhZXhjbHVkZWRTY29wZXMuaW5jbHVkZXMocGx1Z2luLnNjb3BlKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBsaXN0IG9mIGV4cG9ydHMgZnJvbSBlYWNoIGF2YWlsYWJsZSBwYWNrYWdlLlxuICAgKiBAcGFyYW0gYWxsVmVyc2lvbnMgSWYgc2V0IHRvIHRydWUsIGFsbCBhbmQgbm90IG9ubHkgbGF0ZXN0IHZlcnNpb25zIGFyZSBpbmNsdWRlZC5cbiAgICogQHBhcmFtIGV4Y2x1ZGVkU2NvcGVzIERlZmluZXMgd2hpY2ggc2NvcGVzIHNob3VsZCBub3QgYmUgbG9hZGVkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZXhwb3J0ZWQgcGx1Z2lucy5cbiAgICovXG4gIGFzeW5jIGdldEFsbE1GRXhwb3J0cyhcbiAgICBhbGxWZXJzaW9ucyA9IGZhbHNlLFxuICAgIGV4Y2x1ZGVkU2NvcGVzID0gW1xuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGX09QVElPTkFMLFxuICAgICAgUGx1Z2luc0V4cG9ydFNjb3Blcy5HTE9CQUxcbiAgICBdXG4gICk6IFByb21pc2U8QXBwbGljYXRpb25QbHVnaW5bXT4ge1xuICAgIGNvbnN0IHBsdWdpbnMgPSBuZXcgQXJyYXk8QXBwbGljYXRpb25QbHVnaW4+KCk7XG4gICAgY29uc3QgcGFja2FnZXMgPSBhd2FpdCB0aGlzLmxpc3RQYWNrYWdlcygpO1xuICAgIGZvciAoY29uc3QgcGtnIG9mIHBhY2thZ2VzKSB7XG4gICAgICBpZiAoIXBrZz8ubWFuaWZlc3Q/LmV4cG9ydHMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoYWxsVmVyc2lvbnMgJiYgQXJyYXkuaXNBcnJheShwa2cuYXBwbGljYXRpb25WZXJzaW9ucykpIHtcbiAgICAgICAgcGtnLmFwcGxpY2F0aW9uVmVyc2lvbnMuZm9yRWFjaCh2ZXJzaW9uID0+IHtcbiAgICAgICAgICBwbHVnaW5zLnB1c2goLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHZlcnNpb24pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwbHVnaW5zLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5leHRlbmRQbHVnaW5zRGV0YWlscyhwa2csIHtcbiAgICAgICAgICAgIHZlcnNpb246IHBrZy5tYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgICAgICAgYmluYXJ5SWQ6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gIWV4Y2x1ZGVkU2NvcGVzLmluY2x1ZGVzKHBsdWdpbi5zY29wZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGEgbGlzdCBvZiByZW1vdGVzIGZyb20gdGhlIGFwcGxpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGFwcGxpY2F0aW9uIEFwcGxpY2F0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGxpc3Qgb2YgcmVtb3Rlcy5cbiAgICovXG4gIGdldE1GUmVtb3RlcyhhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0IHx8IHt9O1xuICAgIGNvbnN0IGNvbmZpZzogUGx1Z2luc0NvbmZpZyA9IGFwcGxpY2F0aW9uPy5jb25maWcgYXMgUGx1Z2luc0NvbmZpZztcbiAgICBsZXQgcmVtb3RlcyA9IGNvbmZpZz8ucmVtb3RlcyB8fCBtYW5pZmVzdC5yZW1vdGVzIHx8IHt9O1xuICAgIGNvbnN0IG1hbmlmZXN0RXhwb3J0cyA9IG1hbmlmZXN0LmV4cG9ydHMgfHwgbWFuaWZlc3QubWFuaWZlc3Q/LmV4cG9ydHMgfHwgW107XG4gICAgY29uc3Qgc2VsZlJlbW90ZXM6IHN0cmluZ1tdID0gbWFuaWZlc3RFeHBvcnRzXG4gICAgICAuZmlsdGVyKHBsdWdpbiA9PiBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRilcbiAgICAgIC5tYXAocGx1Z2luID0+IHBsdWdpbi5tb2R1bGUgfHwgcGx1Z2luLm5hbWUpO1xuXG4gICAgaWYgKHNlbGZSZW1vdGVzLmxlbmd0aCkge1xuICAgICAgcmVtb3RlcyA9IFBsdWdpbnNSZXNvbHZlU2VydmljZS5tZXJnZVJlbW90ZXMoW1xuICAgICAgICB7IFthcHBsaWNhdGlvbi5jb250ZXh0UGF0aF06IHNlbGZSZW1vdGVzIH0sXG4gICAgICAgIHJlbW90ZXNcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHJlbW90ZXMgPSBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UucmVtb3ZlUmVtb3RlcyhyZW1vdGVzLCBjb25maWc/LmV4Y2x1ZGVkUmVtb3Rlcyk7XG4gICAgcmV0dXJuIHJlbW90ZXM7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBhIHBhY2thZ2UuXG4gICAqIEEgcGFja2FnZSBpcyBPRkZJQ0lBTCBpZiBpdCBjb21lcyBmcm9tIG1hbmFnZW1lbnQgdGVuYW50IGFuZCBoYXMgYSBsYWJlbCBhdHRhY2hlZCBjYWxsZWQgT0ZGSUNJQUwuXG4gICAqIEEgcGFja2FnZSBpcyBDT01NVU5JVFkgaWYgaXQgaGFzIGEgbGFiZWwgY2FsbGVkIENPTU1VTklUWS5cbiAgICogQSBwYWNrYWdlIGlzIENVU1RPTSBpZiBpdCBkb2VzIG5vdCBoYXZlIGFueSBsYWJlbCBhdHRhY2hlZC5cbiAgICogQSBwYWNrYWdlIGlzIFVOS05PV04gaWYgaXQgaGFzIGEgbGFiZWwgYXR0YWNoZWQgYnV0IGl0IGRvZXMgbm90IG1hdGNoIENPTU1VTklUWSBvciBPRkZJQ0lBTC5cbiAgICpcbiAgICogTGFiZWxzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzdGF0dXMgb2YgYSBwYWNrYWdlLiBDb21tdW5pdHkgcGFja2FnZXMgYWx3YXlzIG5lZWRcbiAgICogYSBsaWNlbnNlIHZhbGlkYXRpb24uIFRoZSBsYWJlbCB3aWxsIGJlIHNob3duIG9uIHRoZSBhcHBsaWNhdGlvbiBjYXJkIHRvIHRlbGwgYSB1c2VyXG4gICAqIHdoZXRoZXIgdGhleSBhcmUgbG9va2luZyBpbnRvIGFuIG9mZmljaWFsIG9yIGNvbW11bml0eSBwYWNrYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFja2FnZUFwcGxpY2F0aW9uIFRoZSBwYWNrYWdlIGFwcGxpY2F0aW9uIG9iamVjdCB0byBjaGVjay5cbiAgICogQHJldHVybnMgVGhlIHBhY2thZ2UgdHlwZS5cbiAgICovXG4gIGdldFBhY2thZ2VUeXBlKHBhY2thZ2VBcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKTogUGFja2FnZVR5cGUge1xuICAgIGNvbnN0IGxhYmVsID0gcGFja2FnZUFwcGxpY2F0aW9uLmxhYmVsIHx8IHBhY2thZ2VBcHBsaWNhdGlvbi5tYW5pZmVzdD8ubGFiZWw7XG4gICAgaWYgKGxhYmVsID09PSBQYWNrYWdlVHlwZS5BUkNISVZFRCkge1xuICAgICAgcmV0dXJuIFBhY2thZ2VUeXBlLkFSQ0hJVkVEO1xuICAgIH1cbiAgICBpZiAoIWxhYmVsKSB7XG4gICAgICByZXR1cm4gUGFja2FnZVR5cGUuQ1VTVE9NO1xuICAgIH1cbiAgICBpZiAobGFiZWwgPT09IFBhY2thZ2VUeXBlLk9GRklDSUFMICYmIHRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudChwYWNrYWdlQXBwbGljYXRpb24pKSB7XG4gICAgICByZXR1cm4gUGFja2FnZVR5cGUuT0ZGSUNJQUw7XG4gICAgfVxuICAgIGlmIChsYWJlbCA9PT0gUGFja2FnZVR5cGUuQ09NTVVOSVRZKSB7XG4gICAgICByZXR1cm4gUGFja2FnZVR5cGUuQ09NTVVOSVRZO1xuICAgIH1cbiAgICByZXR1cm4gUGFja2FnZVR5cGUuVU5LTk9XTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhbiBhcHBsaWNhdGlvbiBpcyBvd25lZCBieSBtYW5hZ2VtZW50IHRlbmFudC5cbiAgICpcbiAgICogQHBhcmFtIGFwcCBUaGUgYXBwbGljYXRpb24gdG8gdmVyaWZ5LlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIG93bmVkIGJ5IG1hbmFnZW1lbnQgdGVuYW50LlxuICAgKi9cbiAgaXNPd25lZEJ5TWFuYWdlbWVudChhcHA6IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFwcE93bmVyID0gZ2V0KGFwcCwgJ293bmVyLnRlbmFudC5pZCcpO1xuICAgIHJldHVybiBhcHBPd25lciA9PT0gJ21hbmFnZW1lbnQnO1xuICB9XG5cbiAgcGx1Z2luc0Zyb21NYW5pZmVzdChtYW5pZmVzdDogSU1hbmlmZXN0KTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSA9IG1hbmlmZXN0LmV4cG9ydHM7XG4gICAgY29uc3QgZXh0ZW5kZWRQbHVnaW5zID0gcGx1Z2luc1xuICAgICAgLmZpbHRlcihwID0+IHAuc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRilcbiAgICAgIC5tYXAocCA9PiAoe1xuICAgICAgICAuLi5wLFxuICAgICAgICBpZDogUGx1Z2luc1NlcnZpY2UuY3JlYXRlUGx1Z2luSWQobWFuaWZlc3QuY29udGV4dFBhdGgsIHAsIG1hbmlmZXN0LnZlcnNpb24pLFxuICAgICAgICBjb250ZXh0UGF0aDogbWFuaWZlc3QuY29udGV4dFBhdGgsXG4gICAgICAgIHZlcnNpb246IG1hbmlmZXN0LnZlcnNpb24sXG4gICAgICAgIHZlcnNpb25pbmdNYXRyaXg6IG1hbmlmZXN0LnZlcnNpb25pbmdNYXRyaXgsXG4gICAgICAgIGxpY2Vuc2U6IG1hbmlmZXN0LmxpY2Vuc2UsXG4gICAgICAgIHR5cGU6IFBhY2thZ2VUeXBlLkNVU1RPTVxuICAgICAgfSkpO1xuICAgIHJldHVybiBleHRlbmRlZFBsdWdpbnM7XG4gIH1cblxuICBwcml2YXRlIGlzU2VsZlNjb3BlZFBsdWdpbihwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luLCBjb250ZXh0UGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRiAmJlxuICAgICAgKCFjb250ZXh0UGF0aCB8fCBwbHVnaW4uY29udGV4dFBhdGggPT09IGNvbnRleHRQYXRoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGZTY29wZWRQbHVnaW5zKFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgY29udGV4dFBhdGg/OiBzdHJpbmdcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgcmV0dXJuIHBsdWdpbnMuZmlsdGVyKHBsdWdpbiA9PiB0aGlzLmlzU2VsZlNjb3BlZFBsdWdpbihwbHVnaW4sIGNvbnRleHRQYXRoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbFBsdWdpbnNFeGNlcHRTZWxmU2NvcGVkKFxuICAgIHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgY29udGV4dFBhdGg/OiBzdHJpbmdcbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgcmV0dXJuIHBsdWdpbnMuZmlsdGVyKHBsdWdpbiA9PiAhdGhpcy5pc1NlbGZTY29wZWRQbHVnaW4ocGx1Z2luLCBjb250ZXh0UGF0aCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVzKGFwcHM6IElBcHBsaWNhdGlvbltdLCBrZXk6IHN0cmluZyk6IElBcHBsaWNhdGlvbltdIHtcbiAgICBjb25zdCB1bmlxdWVMaXN0OiBJQXBwbGljYXRpb25bXSA9IFtdO1xuICAgIGNvbnN0IGdyb3VwZWRBcHBzQnlLZXk6IFJlY29yZDxzdHJpbmcsIElBcHBsaWNhdGlvbltdPiA9IGdyb3VwQnkoYXBwcywga2V5KTtcbiAgICBjb25zdCBncm91cGVkQXBwczogSUFwcGxpY2F0aW9uW11bXSA9IE9iamVjdC5rZXlzKGdyb3VwZWRBcHBzQnlLZXkpLm1hcChcbiAgICAgIGtleSA9PiBncm91cGVkQXBwc0J5S2V5W2tleV1cbiAgICApO1xuICAgIGZvciAoY29uc3QgYXBwc0dyb3VwIG9mIGdyb3VwZWRBcHBzKSB7XG4gICAgICBpZiAoYXBwc0dyb3VwLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdW5pcXVlTGlzdC5wdXNoKC4uLmFwcHNHcm91cCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhcHBGcm9tQ3VycmVudFRlbmFudCA9IGFwcHNHcm91cC5maW5kKGFwcCA9PiB0aGlzLmlzRnJvbUN1cnJlbnRUZW5hbnQoYXBwKSk7XG4gICAgICAgIGlmIChhcHBGcm9tQ3VycmVudFRlbmFudCkge1xuICAgICAgICAgIHVuaXF1ZUxpc3QucHVzaChhcHBGcm9tQ3VycmVudFRlbmFudCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwTm90T3duZWRCeU1hbmFnZW1lbnQgPSBhcHBzR3JvdXAuZmluZChhcHAgPT4gIXRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudChhcHApKTtcbiAgICAgICAgdW5pcXVlTGlzdC5wdXNoKGFwcE5vdE93bmVkQnlNYW5hZ2VtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuaXF1ZUxpc3Q7XG4gIH1cblxuICBwcml2YXRlIGlzRnJvbUN1cnJlbnRUZW5hbnQoYXBwOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gYXBwLm93bmVyLnRlbmFudC5pZCA9PT0gdGhpcy5hcHBTdGF0ZVNlcnZpY2UuY3VycmVudFRlbmFudC52YWx1ZS5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vZGlmaWVzIHRoZSBsaXN0IG9mIHBsdWdpbnMgdG8gaGF2ZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1Y2ggYXMgaWQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZXh0ZW5kUGx1Z2luc0RldGFpbHMoXG4gICAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbixcbiAgICB2ZXJzaW9uOiBJQXBwbGljYXRpb25WZXJzaW9uLFxuICAgIHVzZUxhdGVzdCA9IGZhbHNlXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBhcHBsaWNhdGlvbi5tYW5pZmVzdC5leHBvcnRzO1xuICAgIGNvbnN0IGV4dGVuZGVkUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSA9IHBsdWdpbnMubWFwKHAgPT4gKHtcbiAgICAgIC4uLnAsXG4gICAgICBpZDogUGx1Z2luc1NlcnZpY2UuY3JlYXRlUGx1Z2luSWQoYXBwbGljYXRpb24uY29udGV4dFBhdGgsIHAsIHZlcnNpb24udmVyc2lvbiwgdXNlTGF0ZXN0KSxcbiAgICAgIGlkTGF0ZXN0OiBQbHVnaW5zU2VydmljZS5jcmVhdGVQbHVnaW5JZChhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCwgcCwgdmVyc2lvbi52ZXJzaW9uLCB0cnVlKSxcbiAgICAgIGNvbnRleHRQYXRoOiBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCxcbiAgICAgIHZlcnNpb246IHZlcnNpb24udmVyc2lvbixcbiAgICAgIHZlcnNpb25pbmdNYXRyaXg6IGFwcGxpY2F0aW9uLm1hbmlmZXN0LnZlcnNpb25pbmdNYXRyaXgsXG4gICAgICB0YWdzOiB1c2VMYXRlc3QgPyBbJ2xhdGVzdCddIDogdmVyc2lvbi50YWdzIHx8IFtdLFxuICAgICAgbGljZW5zZTogYXBwbGljYXRpb24ubWFuaWZlc3QubGljZW5zZSxcbiAgICAgIHR5cGU6IHRoaXMuZ2V0UGFja2FnZVR5cGUoYXBwbGljYXRpb24pLFxuICAgICAgb3JpZ2luQXBwOiBhcHBsaWNhdGlvblxuICAgIH0pKTtcbiAgICByZXR1cm4gZXh0ZW5kZWRQbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsaXN0QXBwbGljYXRpb25zQnlDdXJyZW50VGVuYW50KHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgY29uc3QgZmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ0hPU1RFRCcsXG4gICAgICAgIHBhZ2VTaXplOiAyMDAwLFxuICAgICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHBhcmFtc1xuICAgICk7XG4gICAgY29uc3Qgc2hhcmVkRmlsdGVyID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgYXZhaWxhYmlsaXR5OiBBcHBsaWNhdGlvbkF2YWlsYWJpbGl0eS5TSEFSRUQsXG4gICAgICAgIHR5cGU6ICdIT1NURUQnLFxuICAgICAgICBwYWdlU2l6ZTogMjAwMCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICAgIH0sXG4gICAgICBwYXJhbXNcbiAgICApO1xuXG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgICBjb25zdCBbcmVzdWx0QXBwc093bmVkQnlUZW5hbnQsIHJlc3VsdFNoYXJlZEFwcHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdEJ5VGVuYW50KHRlbmFudE5hbWUsIGZpbHRlciksXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0KHNoYXJlZEZpbHRlcilcbiAgICBdKTtcbiAgICBjb25zdCB7IGRhdGE6IGFwcHNPd25lZEJ5VGVuYW50IH0gPSByZXN1bHRBcHBzT3duZWRCeVRlbmFudDtcbiAgICBjb25zdCB7IGRhdGE6IHNoYXJlZEFwcHMgfSA9IHJlc3VsdFNoYXJlZEFwcHM7XG4gICAgY29uc3Qgd2ViQXBwcyA9IFsuLi5hcHBzT3duZWRCeVRlbmFudCwgLi4uc2hhcmVkQXBwc107XG4gICAgcmV0dXJuIHVuaXFCeSh3ZWJBcHBzLCAoYXBwOiBJQXBwbGljYXRpb24pID0+IGFwcC5pZCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFBsdWdpblRvUmVtb3Rlc0NvbmZpZyhcbiAgICByZW1vdGVzQ29uZmlnOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsXG4gICAgcGx1Z2luczogQXBwbGljYXRpb25QbHVnaW4gfCBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB7XG4gICAgaWYgKCFwbHVnaW5zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbW90ZXNDb3B5ID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXT8ubGVuZ3RoID49IDBcbiAgICAgICAgPyByZW1vdGVzQ29weVtjb250ZXh0UGF0aF0ucHVzaChtb2R1bGVOYW1lKVxuICAgICAgICA6IChyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0gPSBbXSkucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgIHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSA9IFsuLi5uZXcgU2V0KHJlbW90ZXNDb3B5W2NvbnRleHRQYXRoXSldO1xuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGx1Z2luc0Zyb21SZW1vdGVzQ29uZmlnKFxuICAgIHJlbW90ZXNDb25maWc6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyxcbiAgICBwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbiB8IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zIHtcbiAgICBjb25zdCByZW1vdGVzQ29weTogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zID0gY2xvbmVEZWVwKHJlbW90ZXNDb25maWcpO1xuICAgIGNvbnN0IHRlbXAgPSBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IFtwbHVnaW5zXTtcblxuICAgIHRlbXAuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbW9kdWxlTmFtZSB9ID0gdGhpcy5wYXJzZVBsdWdpbklkKHBsdWdpbi5pZCk7XG4gICAgICBpZiAoIWNvbnRleHRQYXRoIHx8ICFtb2R1bGVOYW1lIHx8ICFyZW1vdGVzQ29weVtjb250ZXh0UGF0aF0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmZpbHRlcihwID0+IHAgIT09IG1vZHVsZU5hbWUpO1xuICAgICAgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdID0gWy4uLm5ldyBTZXQocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdKV07XG4gICAgICBpZiAocmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkZWxldGUgcmVtb3Rlc0NvcHlbY29udGV4dFBhdGhdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdGVzQ29weTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQbHVnaW5JZChpZDogc3RyaW5nKTogeyBjb250ZXh0UGF0aDogc3RyaW5nOyBtb2R1bGVOYW1lOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgW2NvbnRleHRQYXRoLCBtb2R1bGVOYW1lXSA9IGlkLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgY29udGV4dFBhdGgsIG1vZHVsZU5hbWUgfTtcbiAgfVxufVxuIl19
|
|
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
136
136
|
}], emptyLabel: [{
|
|
137
137
|
type: Input
|
|
138
138
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcHJvcGVydGllcy1saXN0L3Byb3BlcnRpZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3Byb3BlcnRpZXMtbGlzdC9wcm9wZXJ0aWVzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUd4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS0U7O1dBRUc7UUFDTSxlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQW1CL0M7OztXQUdHO1FBRUgsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUV0Qjs7O1dBR0c7UUFFSCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCOzs7O1dBSUc7UUFFSCxlQUFVLEdBQVcsSUFBSSxDQUFDO0tBNkYzQjtJQXpGQzs7O09BR0c7SUFDSCxRQUFRLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVB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SUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXdCO1FBQzFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM3RixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBd0I7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7OEdBdklVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtPQ3JCcEMsaThDQTJDQTs7MkZEdEJhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBT3RCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQVFOLE9BQU87c0JBRE4sS0FBSztnQkFTTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvcnRCeSwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFByb3BlcnRpZXNMaXN0SXRlbSB9IGZyb20gJy4vcHJvcGVydGllcy1saXN0Lm1vZGVsJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgbGlzdCBvZiBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8Yzh5LXByb3BlcnRpZXMtbGlzdFxuICogICBpY29uPVwiaW5mb1wiXG4gKiAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICogICBbZGF0YV09XCJvcHRpb25zXCJcbiAqICAgW2VtcHR5TGFiZWxdPVwiJy0nXCJcbiAqICAgW3RpdGxlXT1cIidBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzJyB8IHRyYW5zbGF0ZVwiXG4gKiA+PC9jOHktcHJvcGVydGllcy1saXN0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wcm9wZXJ0aWVzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0aWVzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyB0aGF0IHRoaXMgbGlzdCBzaG91bGQgZGlzcGxheS5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BlcnRpZXM6IFByb3BlcnRpZXNMaXN0SXRlbVtdID0gW107XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgZm9yIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gaWNvbiB3aGljaCBpcyBkaXNwbGF5ZWQgbmV4dCB0byB0aGUgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCB3aGVyZSB0aGUgcHJvcGVydGllcyBrZXlzIGFyZSByZXNvbHZlZCBmcm9tLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogb2JqZWN0O1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBhcnJheSBvZiBncm91cHMgdGhhdCBhcmUgc2hvd24uIElmIG5vUGFyc2UgaXMgc2V0IHRvIGZhbHNlLFxuICAgKiBlYWNoIGNvbXBsZXgga2V5IHdpbGwgZm9ybSBhIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRyaWVzIHRvIHBhcnNlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIGtleXMgYW5kIHR5cGVzLiBZb3UgY2FuXG4gICAqIGF2b2lkIHRoaXMgYnkgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBub1BhcnNlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIGxhYmVsIHRvIGRpc3BsYXkgYWxsIHByb3BlcnRpZXMgYnV0IHRoZSBlbXB0eSBvbmVzXG4gICAqIGdldCB0aGUgYGVtcHR5TGFiZWxgIGFzc2lnbmVkLiBJZiB0aGUgZW1wdHkgbGFiZWwgaXMgbm90IHNldCxcbiAgICogZGVmYXVsdHMgdG8gJ2M4eWRvbnRzaG93JyBhbmQgaXQgbm90IHJlbmRlcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eUxhYmVsOiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgb3JpZ2luYWxQcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXTtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgY2VydGFpbiBwcm9wZXJ0eSBoYXMgYW4gZ3JvdXAgYXNzb2NpYXRlZC5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIHByb3BlcnR5IHRvIHZlcmlmeS5cbiAgICovXG4gIGhhc0dyb3VwKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmICghaXRlbS5rZXkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qga2V5UGF0aCA9IGl0ZW0ua2V5LnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIGtleVBhdGgubGVuZ3RoID4gMSAmJiB0aGlzLmdyb3Vwcy5pbmNsdWRlcyhrZXlQYXRoWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsUHJvcGVydGllcyA9IFsuLi50aGlzLnByb3BlcnRpZXNdO1xuICAgIHRoaXMucGFyc2VQcm9wZXJ0aWVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucHJvcGVydGllcyB8fCBjaGFuZ2VzLm5vUGFyc2UpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxQcm9wZXJ0aWVzID0gWy4uLnRoaXMucHJvcGVydGllc107XG4gICAgICB0aGlzLnBhcnNlUHJvcGVydGllcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGluIHRyYWNrQnkgdG8gYXZvaWQgcmVjYWxjdWxhdGlvbiBhbGwgdGhlIHRpbWUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlkZW50aXR5KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUHJvcGVydGllcygpIHtcbiAgICBpZiAodGhpcy5ub1BhcnNlKSB7XG4gICAgICB0aGlzLnByb3BlcnRpZXMgPSBbLi4udGhpcy5vcmlnaW5hbFByb3BlcnRpZXNdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllcy5tYXAoaXRlbSA9PiB0aGlzLnBhcnNlUHJvcGVydHlJdGVtKGl0ZW0pKTtcbiAgICBjb25zdCBwcm9wc1dpdGhHcm91cHM6IFByb3BlcnRpZXNMaXN0SXRlbVtdID0gW107XG5cbiAgICBwcm9wc1dpdGhHcm91cHMucHVzaCguLi50aGlzLnByb3BlcnRpZXMpO1xuICAgIHByb3BzV2l0aEdyb3Vwcy5wdXNoKFxuICAgICAgLi4udGhpcy5ncm91cHMubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIGtleTogZ3JvdXAsXG4gICAgICAgIGxhYmVsOiBncm91cCxcbiAgICAgICAgdmFsdWU6IGdyb3VwLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnIGFzIGNvbnN0XG4gICAgICB9KSlcbiAgICApO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHByb3BzV2l0aEdyb3Vwcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnZhbHVlICE9IG51bGwpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gc29ydEJ5KGZpbHRlcmVkUHJvcHMsIFsna2V5J10pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVByb3BlcnR5SXRlbShpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pOiBQcm9wZXJ0aWVzTGlzdEl0ZW0ge1xuICAgIGl0ZW0udmFsdWUgPSB0aGlzLnJlc29sdmVWYWx1ZUZyb21LZXkoaXRlbSk7XG4gICAgaXRlbS52YWx1ZSA9IGl0ZW0udHJhbnNmb3JtICYmIGl0ZW0udmFsdWUgPyBpdGVtLnRyYW5zZm9ybShpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XG4gICAgaXRlbS50eXBlID0gdGhpcy5yZXNvbHZlVHlwZShpdGVtKTtcbiAgICBpdGVtLnZhbHVlID0gdGhpcy5hdHRhY2hFbXB0eUxhYmVsKGl0ZW0pO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWVGcm9tS2V5KGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLmtleSAmJiB0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IGtleVBhdGggPSBpdGVtLmtleS5zcGxpdCgnLicpO1xuICAgICAgY29uc3Qgcm9vdEdyb3VwID0ga2V5UGF0aFswXTtcbiAgICAgIGlmIChrZXlQYXRoLmxlbmd0aCA+IDEgJiYgIXRoaXMuZ3JvdXBzLmluY2x1ZGVzKHJvb3RHcm91cCkpIHtcbiAgICAgICAgdGhpcy5ncm91cHMucHVzaChyb290R3JvdXApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldCh0aGlzLmRhdGEsIGl0ZW0ua2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUeXBlKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0udmFsdWUpID8gJ2FycmF5JyA6IGl0ZW0uYWN0aW9uICYmIGl0ZW0udmFsdWUgPyAnbGluaycgOiAnc3RyaW5nJztcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRW1wdHlMYWJlbChpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pIHtcbiAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGl0ZW0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtcHR5TGFiZWw7XG4gICAgfVxuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG59XG4iLCI8cCBjbGFzcz1cIm0tYi04XCIgKm5nSWY9XCJ0aXRsZVwiPlxuICA8aSAqbmdJZj1cImljb25cIiBbYzh5SWNvbl09XCJpY29uXCIgY2xhc3M9XCJ0ZXh0LWluZm8gbS1yLThcIj48L2k+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1sYWJlbC1zbWFsbFwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuPC9wPlxuPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBzbWFsbFwiPlxuICA8bGlcbiAgICBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleFwiXG4gICAgKm5nRm9yPVwibGV0IHByb3Agb2YgcHJvcGVydGllczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogaWRlbnRpdHlcIlxuICAgIFtuZ0NsYXNzXT1cInsnc2VwYXJhdG9yLXRvcC1ib3R0b20nOiBpID09PSAwLFxuICAgICAgICAgICAgICAgICdzZXBhcmF0b3ItYm90dG9tJzogaSA+IDB9XCJcbiAgICA+XG4gICAgPGRpdlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbS1sLTE2JzogaGFzR3JvdXAocHJvcCksXG4gICAgICAgIGxlZ2VuZDogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnZm9ybS1ibG9jayc6IHByb3AudHlwZSA9PT0gJ2dyb3VwJyxcbiAgICAgICAgJ20tYi0wJzogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnbS10LTQnOiBwcm9wLnR5cGUgPT09ICdncm91cCdcbiAgICAgIH1cIlxuICAgICAgY2xhc3M9XCJzbWFsbCB0ZXh0LW1lZGl1bSB0ZXh0LW5vd3JhcCBtLXItNFwiXG4gICAgPlxuICAgICAge3sgcHJvcC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJwcm9wLnR5cGVcIiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3N0cmluZydcIiBjbGFzcz1cIm0tbC1hdXRvXCI+e3sgcHJvcC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDxhXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInbGluaydcIlxuICAgICAgICAoY2xpY2spPVwicHJvcC5hY3Rpb24oJGV2ZW50LCBwcm9wLnZhbHVlKVwiXG4gICAgICAgIGNsYXNzPVwibS1sLWF1dG8gcG9pbnRlciB0ZXh0LXRydW5jYXRlIG0tbC00XCJcbiAgICAgID57eyBwcm9wLnZhbHVlIH19PC9hPlxuICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidhcnJheSdcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImxhYmVsIGxhYmVsLWluZm8gbS1sLTRcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9wVGFnIG9mIHByb3AudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbigkZXZlbnQsIHByb3BUYWcpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBwb2ludGVyOiBwcm9wLmFjdGlvblxuICAgICAgICAgIH1cIlxuICAgICAgICA+e3sgcHJvcFRhZyB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvbGk+XG48L3VsPlxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcHJvcGVydGllcy1saXN0L3Byb3BlcnRpZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3Byb3BlcnRpZXMtbGlzdC9wcm9wZXJ0aWVzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUl4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS0U7O1dBRUc7UUFDTSxlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQW1CL0M7OztXQUdHO1FBRUgsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUV0Qjs7O1dBR0c7UUFFSCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCOzs7O1dBSUc7UUFFSCxlQUFVLEdBQVcsSUFBSSxDQUFDO0tBNkYzQjtJQXpGQzs7O09BR0c7SUFDSCxRQUFRLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVB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SUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXdCO1FBQzFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM3RixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBd0I7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7OEdBdklVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtPQ3RCcEMsaThDQTJDQTs7MkZEckJhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBT3RCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQVFOLE9BQU87c0JBRE4sS0FBSztnQkFTTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvcnRCeSwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFByb3BlcnRpZXNMaXN0SXRlbSB9IGZyb20gJy4vcHJvcGVydGllcy1saXN0Lm1vZGVsJztcbmltcG9ydCB7IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2ljb24tc2VsZWN0b3IvaWNvbnMnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBsaXN0IG9mIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxjOHktcHJvcGVydGllcy1saXN0XG4gKiAgIGljb249XCJpbmZvXCJcbiAqICAgW3Byb3BlcnRpZXNdPVwicHJvcGVydGllc1wiXG4gKiAgIFtkYXRhXT1cIm9wdGlvbnNcIlxuICogICBbZW1wdHlMYWJlbF09XCInLSdcIlxuICogICBbdGl0bGVdPVwiJ0FwcGxpY2F0aW9uIHByb3BlcnRpZXMnIHwgdHJhbnNsYXRlXCJcbiAqID48L2M4eS1wcm9wZXJ0aWVzLWxpc3Q+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXByb3BlcnRpZXMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0aWVzLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnRpZXNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIHRoYXQgdGhpcyBsaXN0IHNob3VsZCBkaXNwbGF5LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcGVydGllczogUHJvcGVydGllc0xpc3RJdGVtW10gPSBbXTtcblxuICAvKipcbiAgICogQSB0aXRsZSBmb3IgdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBpY29uIHdoaWNoIGlzIGRpc3BsYXllZCBuZXh0IHRvIHRoZSB0aXRsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb246IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCB3aGVyZSB0aGUgcHJvcGVydGllcyBrZXlzIGFyZSByZXNvbHZlZCBmcm9tLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogb2JqZWN0O1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBhcnJheSBvZiBncm91cHMgdGhhdCBhcmUgc2hvd24uIElmIG5vUGFyc2UgaXMgc2V0IHRvIGZhbHNlLFxuICAgKiBlYWNoIGNvbXBsZXgga2V5IHdpbGwgZm9ybSBhIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRyaWVzIHRvIHBhcnNlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIGtleXMgYW5kIHR5cGVzLiBZb3UgY2FuXG4gICAqIGF2b2lkIHRoaXMgYnkgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBub1BhcnNlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIGxhYmVsIHRvIGRpc3BsYXkgYWxsIHByb3BlcnRpZXMgYnV0IHRoZSBlbXB0eSBvbmVzXG4gICAqIGdldCB0aGUgYGVtcHR5TGFiZWxgIGFzc2lnbmVkLiBJZiB0aGUgZW1wdHkgbGFiZWwgaXMgbm90IHNldCxcbiAgICogZGVmYXVsdHMgdG8gJ2M4eWRvbnRzaG93JyBhbmQgaXQgbm90IHJlbmRlcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eUxhYmVsOiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgb3JpZ2luYWxQcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXTtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgY2VydGFpbiBwcm9wZXJ0eSBoYXMgYW4gZ3JvdXAgYXNzb2NpYXRlZC5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIHByb3BlcnR5IHRvIHZlcmlmeS5cbiAgICovXG4gIGhhc0dyb3VwKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmICghaXRlbS5rZXkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qga2V5UGF0aCA9IGl0ZW0ua2V5LnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIGtleVBhdGgubGVuZ3RoID4gMSAmJiB0aGlzLmdyb3Vwcy5pbmNsdWRlcyhrZXlQYXRoWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsUHJvcGVydGllcyA9IFsuLi50aGlzLnByb3BlcnRpZXNdO1xuICAgIHRoaXMucGFyc2VQcm9wZXJ0aWVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucHJvcGVydGllcyB8fCBjaGFuZ2VzLm5vUGFyc2UpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxQcm9wZXJ0aWVzID0gWy4uLnRoaXMucHJvcGVydGllc107XG4gICAgICB0aGlzLnBhcnNlUHJvcGVydGllcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGluIHRyYWNrQnkgdG8gYXZvaWQgcmVjYWxjdWxhdGlvbiBhbGwgdGhlIHRpbWUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlkZW50aXR5KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUHJvcGVydGllcygpIHtcbiAgICBpZiAodGhpcy5ub1BhcnNlKSB7XG4gICAgICB0aGlzLnByb3BlcnRpZXMgPSBbLi4udGhpcy5vcmlnaW5hbFByb3BlcnRpZXNdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllcy5tYXAoaXRlbSA9PiB0aGlzLnBhcnNlUHJvcGVydHlJdGVtKGl0ZW0pKTtcbiAgICBjb25zdCBwcm9wc1dpdGhHcm91cHM6IFByb3BlcnRpZXNMaXN0SXRlbVtdID0gW107XG5cbiAgICBwcm9wc1dpdGhHcm91cHMucHVzaCguLi50aGlzLnByb3BlcnRpZXMpO1xuICAgIHByb3BzV2l0aEdyb3Vwcy5wdXNoKFxuICAgICAgLi4udGhpcy5ncm91cHMubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIGtleTogZ3JvdXAsXG4gICAgICAgIGxhYmVsOiBncm91cCxcbiAgICAgICAgdmFsdWU6IGdyb3VwLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnIGFzIGNvbnN0XG4gICAgICB9KSlcbiAgICApO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHByb3BzV2l0aEdyb3Vwcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnZhbHVlICE9IG51bGwpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gc29ydEJ5KGZpbHRlcmVkUHJvcHMsIFsna2V5J10pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVByb3BlcnR5SXRlbShpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pOiBQcm9wZXJ0aWVzTGlzdEl0ZW0ge1xuICAgIGl0ZW0udmFsdWUgPSB0aGlzLnJlc29sdmVWYWx1ZUZyb21LZXkoaXRlbSk7XG4gICAgaXRlbS52YWx1ZSA9IGl0ZW0udHJhbnNmb3JtICYmIGl0ZW0udmFsdWUgPyBpdGVtLnRyYW5zZm9ybShpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XG4gICAgaXRlbS50eXBlID0gdGhpcy5yZXNvbHZlVHlwZShpdGVtKTtcbiAgICBpdGVtLnZhbHVlID0gdGhpcy5hdHRhY2hFbXB0eUxhYmVsKGl0ZW0pO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWVGcm9tS2V5KGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLmtleSAmJiB0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IGtleVBhdGggPSBpdGVtLmtleS5zcGxpdCgnLicpO1xuICAgICAgY29uc3Qgcm9vdEdyb3VwID0ga2V5UGF0aFswXTtcbiAgICAgIGlmIChrZXlQYXRoLmxlbmd0aCA+IDEgJiYgIXRoaXMuZ3JvdXBzLmluY2x1ZGVzKHJvb3RHcm91cCkpIHtcbiAgICAgICAgdGhpcy5ncm91cHMucHVzaChyb290R3JvdXApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldCh0aGlzLmRhdGEsIGl0ZW0ua2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUeXBlKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0udmFsdWUpID8gJ2FycmF5JyA6IGl0ZW0uYWN0aW9uICYmIGl0ZW0udmFsdWUgPyAnbGluaycgOiAnc3RyaW5nJztcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRW1wdHlMYWJlbChpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pIHtcbiAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGl0ZW0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtcHR5TGFiZWw7XG4gICAgfVxuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG59XG4iLCI8cCBjbGFzcz1cIm0tYi04XCIgKm5nSWY9XCJ0aXRsZVwiPlxuICA8aSAqbmdJZj1cImljb25cIiBbYzh5SWNvbl09XCJpY29uXCIgY2xhc3M9XCJ0ZXh0LWluZm8gbS1yLThcIj48L2k+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1sYWJlbC1zbWFsbFwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuPC9wPlxuPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBzbWFsbFwiPlxuICA8bGlcbiAgICBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleFwiXG4gICAgKm5nRm9yPVwibGV0IHByb3Agb2YgcHJvcGVydGllczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogaWRlbnRpdHlcIlxuICAgIFtuZ0NsYXNzXT1cInsnc2VwYXJhdG9yLXRvcC1ib3R0b20nOiBpID09PSAwLFxuICAgICAgICAgICAgICAgICdzZXBhcmF0b3ItYm90dG9tJzogaSA+IDB9XCJcbiAgICA+XG4gICAgPGRpdlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbS1sLTE2JzogaGFzR3JvdXAocHJvcCksXG4gICAgICAgIGxlZ2VuZDogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnZm9ybS1ibG9jayc6IHByb3AudHlwZSA9PT0gJ2dyb3VwJyxcbiAgICAgICAgJ20tYi0wJzogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnbS10LTQnOiBwcm9wLnR5cGUgPT09ICdncm91cCdcbiAgICAgIH1cIlxuICAgICAgY2xhc3M9XCJzbWFsbCB0ZXh0LW1lZGl1bSB0ZXh0LW5vd3JhcCBtLXItNFwiXG4gICAgPlxuICAgICAge3sgcHJvcC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJwcm9wLnR5cGVcIiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3N0cmluZydcIiBjbGFzcz1cIm0tbC1hdXRvXCI+e3sgcHJvcC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDxhXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInbGluaydcIlxuICAgICAgICAoY2xpY2spPVwicHJvcC5hY3Rpb24oJGV2ZW50LCBwcm9wLnZhbHVlKVwiXG4gICAgICAgIGNsYXNzPVwibS1sLWF1dG8gcG9pbnRlciB0ZXh0LXRydW5jYXRlIG0tbC00XCJcbiAgICAgID57eyBwcm9wLnZhbHVlIH19PC9hPlxuICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidhcnJheSdcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImxhYmVsIGxhYmVsLWluZm8gbS1sLTRcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9wVGFnIG9mIHByb3AudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbigkZXZlbnQsIHByb3BUYWcpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBwb2ludGVyOiBwcm9wLmFjdGlvblxuICAgICAgICAgIH1cIlxuICAgICAgICA+e3sgcHJvcFRhZyB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvbGk+XG48L3VsPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wcm92aWRlci1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3Byb3ZpZGVyLWNvbmZpZ3VyYXRpb24vbW9kZWwvZHluYW1pYy1wcm92aWRlci1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JOb2RlRGF0YSB9IGZyb20gJy4uLy4uL25hdmlnYXRvcic7XG5pbXBvcnQgeyBUYWJXaXRoVGVtcGxhdGUgfSBmcm9tICcuLi8uLi90YWJzJztcbmltcG9ydCB7IFByb3ZpZGVyUHJvcGVydGllcyB9IGZyb20gJy4vcHJvdmlkZXItcHJvcGVydGllcy5tb2RlbCc7XG5cbi8qKlxuICogQWxsb3dzIHlvdSB0byBmdWxseSBjb25maWd1cmUgYSBwcm92aWRlciBjb25maWd1cmF0aW9uIHBhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1Byb3ZpZGVyQ29uZmlnIHtcbiAgLyoqIEFsbG93cyB5b3UgdG8gY29uZmlndXJlIHJvdXRpbmcgYW5kIG5hdmlnYXRvciBwcm9wZXJ0aWVzIGZvciB0aGUgcHJvdmlkZXIgcGFnZS4gKi9cbiAgbmF2aWdhdGlvbjogRHluYW1pY1Byb3ZpZGVyTmF2aWdhdGlvbkNvbmZpZztcbiAgLyoqIEFsbG93cyB5b3UgdG8gY29uZmlndXJlIHRhYnMgZm9yIHRoZSBwcm92aWRlciBwYWdlLiAqL1xuICB0YWI/OiBEeW5hbWljUHJvdmlkZXJUYWJzQ29uZmlnO1xuICAvKiogQWxsb3dzIHlvdSB0byBjb25maWd1cmUgcGFnZSB0aXRsZSwgZmllbGQgYW5kIGJ1dHRvbiBsYWJlbHMsIG1lc3NhZ2VzLCBldGMuICovXG4gIGxheW91dDogRHluYW1pY1Byb3ZpZGVyTGF5b3V0Q29uZmlnO1xuICAvKiogQWxsb3dzIHlvdSB0byBjb25maWd1cmUgbmVjZXNzYXJ5IHNlcnZpY2UgZW5kcG9pbnRzLiAqL1xuICBlbmRwb2ludDogRHluYW1pY1Byb3ZpZGVyRW5kcG9pbnRDb25maWc7XG59XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNQcm92aWRlclRhYnNDb25maWcgPSBUYWJXaXRoVGVtcGxhdGU8c3RyaW5nPiAmIHsgY2FuQWN0aXZhdGU/OiBhbnlbXSB9O1xuXG5leHBvcnQgdHlwZSBEeW5hbWljUHJvdmlkZXJOYXZpZ2F0aW9uQ29uZmlnID0gTmF2aWdhdG9yTm9kZURhdGEgJiB7IGNhbkFjdGl2YXRlPzogYW55W10gfTtcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljUHJvdmlkZXJMYXlvdXRDb25maWcge1xuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBvbiB0aGUgcGFnZSBoZWFkZXIgKi9cbiAgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGl0bGUgZGlzcGxheWVkIG9uIHRoZSBjYXJkIGhlYWRlciAqL1xuICBjYXJkVGl0bGU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGV4cGxhbmF0b3J5IHRleHQgZGlzcGxheWVkIGJlZm9yZSB0aGUgZm9ybSAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFRoZSBsYWJlbCB0byB1c2UgZm9yIHRoZSBwcm92aWRlciBzZWxlY3Rpb24gZHJvcGRvd24gKi9cbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgcGxhY2Vob2xkZXIgdGV4dCB0byB1c2UgZm9yIHRoZSBwcm92aWRlciBzZWxlY3Rpb24gZHJvcGRvd24gKi9cbiAgcHJvdmlkZXJOYW1lUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLyoqIE1lc3NhZ2UgdG8gZGlzcGxheSBpZiB1c2VyIGlucHV0IGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYXZhaWxhYmxlIGRyb3Bkb3duIG9wdGlvbnMgKi9cbiAgcHJvdmlkZXJOYW1lTm9NYXRjaGVzSGludDogc3RyaW5nO1xuICAvKiogUm9sZXMgcmVxdWlyZWQgZm9yIHVzZXIgdG8gZGVsZXRlIGNvbmZpZ3VyYXRpb24gKi9cbiAgZGVsZXRlUm9sZXM/OiBzdHJpbmdbXTtcbiAgLyoqIExhYmVsIHRvIHVzZSBmb3IgdGhlIGRlbGV0ZSBidXR0b24gKi9cbiAgZGVsZXRlQnRuTGFiZWw6IHN0cmluZztcbiAgLyoqIFJvbGVzIHJlcXVpcmVkIGZvciB1c2VyIHRvIHNhdmUgY29uZmlndXJhdGlvbiAqL1xuICBzYXZlUm9sZXM/OiBzdHJpbmdbXTtcbiAgLyoqIExhYmVsIHRvIHVzZSBmb3IgdGhlIHNhdmUgYnV0dG9uICovXG4gIHNhdmVCdG5MYWJlbDogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gY2FsbCBiZWZvcmUgY29uZmlndXJhdGlvbiBpcyBzYXZlZCAqL1xuICBiZWZvcmVTYXZlSG9vaz86IChcbiAgICBtb2RlbDogUHJvdmlkZXJQcm9wZXJ0aWVzLFxuICAgIGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXVxuICApID0+IFByb21pc2U8UHJvdmlkZXJQcm9wZXJ0aWVzPiB8IFByb3ZpZGVyUHJvcGVydGllcztcbiAgLyoqIE1lc3NhZ2UgdGV4dCB0byBkaXNwbGF5IGFmdGVyIHN1Y2Nlc3NmdWwgc2F2ZS91cGRhdGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gKi9cbiAgY29uZmlndXJhdGlvblVwZGF0ZWRTdWNjZXNzTXNnOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGl0bGUgZGlzcGxheWVkIG9uIHRoZSBoZWFkZXIgb2YgdGhlIG1vZGFsIGZvciBkZWxldGlvbiBjb25maXJtYXRpb24gKi9cbiAgZGVsZXRlQ29uZmlndXJhdGlvbk1vZGFsVGl0bGU6IHN0cmluZztcbiAgLyoqIFRoZSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgYm9keSBvZiB0aGUgbW9kYWwgZm9yIGRlbGV0aW9uIGNvbmZpcm1hdGlvbiAqL1xuICBkZWxldGVDb25maWd1cmF0aW9uTW9kYWxCb2R5OiBzdHJpbmc7XG4gIC8qKiBUaGUgbGFiZWwgdXNlZCBmb3IgdGhlIE9LIGJ1dHRvbiBpbiB0aGUgbW9kYWwgZm9yIGRlbGV0aW9uIGNvbmZpcm1hdGlvbiAqL1xuICBkZWxldGVDb25maWd1cmF0aW9uTW9kYWxPa0J0bkxhYmVsPzogc3RyaW5nO1xuICAvKiogVGhlIGxhYmVsIHVzZWQgZm9yIHRoZSBjYW5jZWwgYnV0dG9uIGluIHRoZSBtb2RhbCBmb3IgZGVsZXRpb24gY29uZmlybWF0aW9uICovXG4gIGRlbGV0ZUNvbmZpZ3VyYXRpb25Nb2RhbENhbmNlbEJ0bkxhYmVsPzogc3RyaW5nO1xuICAvKiogTWVzc2FnZSB0ZXh0IHRvIGRpc3BsYXkgYWZ0ZXIgc3VjY2Vzc2Z1bCBkZWxldGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gKi9cbiAgY29uZmlndXJhdGlvbkRlbGV0ZWRTdWNjZXNzTXNnOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1Byb3ZpZGVyRW5kcG9pbnRDb25maWcge1xuICAvKiogU2VydmljZSBlbmRwb2ludCB0aGF0IHByb3ZpZGVzIHByb3ZpZGVyIGRlZmluaXRpb25zICovXG4gIGRlZmluaXRpb25zRW5kcG9pbnQ6IEVuZHBvaW50O1xuICAvKiogU2VydmljZSBlbmRwb2ludCBmb3IgY29uZmlndXJhdGlvbiBDUlVEIG9wZXJhdGlvbnMgKi9cbiAgY29uZmlndXJhdGlvbkVuZHBvaW50OiBFbmRwb2ludDtcbn1cblxuLyoqXG4gKiBVc2VkIHRvIGRlZmluZSBhbiBlbnBvaW50IGJ5IHByb3ZpZGluZyBhIGJhc2UgYW5kIGxpc3QgcGFydCBvZiBhIFVSTC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludCB7XG4gIC8qKiBCYXNlIHBhcnQgb2YgeW91ciBlbmRwb2ludCBVUkwsIGUuZy4gPGNvZGU+L3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvcHJvdmlkZXJzPC9jb2RlPiAqL1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIC8qKiBFbnRpdHkgcGFydCBvZiB5b3VyIGVuZHBvaW50IFVSTCwgZS5nLiA8Y29kZT5kZWZpbml0aW9uczwvY29kZT4gb3IgPGNvZGU+Y29uZmlndXJhdGlvbjwvY29kZT4gKi9cbiAgbGlzdFVybDogc3RyaW5nO1xufVxuIl19
|