@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
|
@@ -164,7 +164,7 @@ export class DatapointSelectorListItemComponent {
|
|
|
164
164
|
useExisting: forwardRef(() => DatapointSelectorListItemComponent),
|
|
165
165
|
multi: true
|
|
166
166
|
}
|
|
167
|
-
], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showDisplay]=\"defaultFormOptions.showDisplay\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i6.DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: i7.DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showDisplay", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
167
|
+
], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i6.DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: i7.DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["selectableChartRenderTypes", "selectableChartLineTypes", "selectableAxisTypes", "showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorListItemComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
@@ -179,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
179
179
|
useExisting: forwardRef(() => DatapointSelectorListItemComponent),
|
|
180
180
|
multi: true
|
|
181
181
|
}
|
|
182
|
-
], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [
|
|
182
|
+
], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n" }]
|
|
183
183
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { defaultFormOptions: [{
|
|
184
184
|
type: Input
|
|
185
185
|
}], isSelected: [{
|
|
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
218
218
|
type: ContentChild,
|
|
219
219
|
args: [ListItemDragHandleComponent]
|
|
220
220
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtc2VsZWN0b3IvZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFHTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBbUIsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBR0wsMEJBQTBCLEVBRzNCLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQWtCdEMsTUFBTSxPQUFPLGtDQUFrQztJQTBCN0MsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF4Qm5DLHVCQUFrQixHQUEyQyxFQUFFLENBQUM7UUFDaEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JPZkZpbHRlclBpcGUsIExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlQsXG4gIEtQSURldGFpbHMsXG4gIE1hbmFnZWRPYmplY3RLUElcbn0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhcG9pbnRTZWxlY3Rvckxpc3RJdGVtQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb3JtT3B0aW9uczogUGFydGlhbDxEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZz4gPSB7fTtcbiAgQElucHV0KCkgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBZGRSZW1vdmVCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBlZGl0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBY3RpdmVUb2dnbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aXZlVG9nZ2xlRGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0YXBvaW50TGlicmFyeUVudHJpZXM6IE9ic2VydmFibGU8SVJlc3VsdExpc3Q8TWFuYWdlZE9iamVjdEtQST4+O1xuICBASW5wdXQoKSBhY3Rpb25zOiBEYXRhcG9pbnRBY3Rpb25bXSA9IFtdO1xuICBASW5wdXQoKSBvcHRpb25Ub1JlbW92ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNVbmxpbmtUZW1wbGF0ZU9wdGlvbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEtQSURldGFpbHM+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxLUElEZXRhaWxzPigpO1xuICBASW5wdXQoKSBjb2xvclBpY2tlckRpc2FibGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzYWJsZVR5cGVhaGVhZElmU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0VGV4dDogc3RyaW5nO1xuICBAQ29udGVudENoaWxkKExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCkgZHJhZ0hhbmRsZTogTGlzdEl0ZW1EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHBhdHRlcm4gPSAnJztcbiAgZmlsdGVyUGlwZTogRm9yT2ZGaWx0ZXJQaXBlPE1hbmFnZWRPYmplY3RLUEk+O1xuICBpc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZGV0YWlsczogW10sXG4gICAgICBjb2xvcjogW10sXG4gICAgICBfX2FjdGl2ZTogW10sXG4gICAgICBfX3RhcmdldDogW10sXG4gICAgICBmcmFnbWVudDogW10sXG4gICAgICBzZXJpZXM6IFtdLFxuICAgICAgX190ZW1wbGF0ZTogW11cbiAgICB9KTtcbiAgICB0aGlzLmlzVmFsaWQkID0gdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdWQUxJRCcpLFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLnZhbGlkKVxuICAgICk7XG4gIH1cblxuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwPy5pbnZhbGlkKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV07XG4gICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBjb250cm9sLmVycm9ycztcbiAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKVswXS5tZXNzYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cD8udmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgLi4ub2JqLCBkZXRhaWxzOiBvYmogfSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShtYXAodG1wID0+IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRtcCkpKS5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmbik7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXA/LmRpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgfVxuXG4gIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIGFkZE9yUmVtb3ZlSXRlbSgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkZWQuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoKGRhdGE6IE1hbmFnZWRPYmplY3RLUElbXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJEYXRhcG9pbnRMYWJlbChkYXRhLCBmaWx0ZXJTdHIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdW5saW5rRGF0YXBvaW50VGVtcGxhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlLmRldGFpbHMgfHwge307XG4gICAgdGhpcy5yZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlscyk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7IF9fdGVtcGxhdGU6IHVuZGVmaW5lZCwgZGV0YWlscyB9KTtcbiAgfVxuXG4gIGRhdGFQb2ludFRlbXBsYXRlU2VsZWN0ZWQodGVtcGxhdGU6IE1hbmFnZWRPYmplY3RLUEkpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzVG9Bc3NpZ246IEFycmF5PGtleW9mIEtQSURldGFpbHM+ID0gW1xuICAgICAgJ2NvbG9yJyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnbWluJyxcbiAgICAgICdtYXgnLFxuICAgICAgJ3llbGxvd1JhbmdlTWF4JyxcbiAgICAgICd5ZWxsb3dSYW5nZU1pbicsXG4gICAgICAncmVkUmFuZ2VNYXgnLFxuICAgICAgJ3JlZFJhbmdlTWluJyxcbiAgICAgICd0YXJnZXQnLFxuICAgICAgJ29yaWVudGF0aW9uJyxcbiAgICAgICd1bml0J1xuICAgIF07XG4gICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzLCBfX3RhcmdldCwgX19hY3RpdmUgfSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xuICAgIGNvbnN0IGRhdGFQb2ludDogS1BJRGV0YWlscyA9IHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgc2VyaWVzLFxuICAgICAgX19hY3RpdmUsXG4gICAgICBfX3RhcmdldCxcbiAgICAgIF9fdGVtcGxhdGU6IHRlbXBsYXRlLmlkXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzVG9Bc3NpZ24pIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGVtcGxhdGVbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdW2F0dHJpYnV0ZV07XG4gICAgICBkYXRhUG9pbnRbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLndyaXRlVmFsdWUoZGF0YVBvaW50KTtcbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlsczogUGFydGlhbDxLUElEZXRhaWxzPik6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvd1RhcmdldCwgc2hvd1llbGxvd1JhbmdlLCBzaG93UmVkUmFuZ2UgfSA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICAgIGRldGFpbHMuX190ZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXNob3dUYXJnZXQpIHtcbiAgICAgIGRldGFpbHMudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXNob3dZZWxsb3dSYW5nZSkge1xuICAgICAgZGV0YWlscy55ZWxsb3dSYW5nZU1pbiA9IHVuZGVmaW5lZDtcbiAgICAgIGRldGFpbHMueWVsbG93UmFuZ2VNYXggPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghc2hvd1JlZFJhbmdlKSB7XG4gICAgICBkZXRhaWxzLnJlZFJhbmdlTWluID0gdW5kZWZpbmVkO1xuICAgICAgZGV0YWlscy5yZWRSYW5nZU1heCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckRhdGFwb2ludExhYmVsKGtwaXM6IE1hbmFnZWRPYmplY3RLUElbXSwgZmlsdGVyU3RyOiBzdHJpbmcpOiBNYW5hZ2VkT2JqZWN0S1BJW10ge1xuICAgIHJldHVybiBrcGlzLmZpbHRlcihcbiAgICAgIChtbzogTWFuYWdlZE9iamVjdEtQSSkgPT5cbiAgICAgICAgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdICYmXG4gICAgICAgIG1vW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXS5sYWJlbCAmJlxuICAgICAgICB0eXBlb2YgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdLmxhYmVsID09PSAnc3RyaW5nJyAmJlxuICAgICAgICBtb1tEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRm9ybVZhbHVlKGZvcm1WYWx1ZTogYW55KSB7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmFzc2lnbih7fSwgZm9ybVZhbHVlLmRldGFpbHMgfHwge30sIGZvcm1WYWx1ZSk7XG4gICAgZGVsZXRlIG9iai5kZXRhaWxzO1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cbiIsIjxjOHktbGkgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sbGFwc2UtLWNvbnRhaW5lci1zbWFsbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgI2xpPlxuICA8Yzh5LWxpLWRyYWctaGFuZGxlPjxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1saS1kcmFnLWhhbmRsZVwiPjwvbmctY29udGVudD48L2M4eS1saS1kcmFnLWhhbmRsZT5cbiAgPGM4eS1saS1jaGVja2JveFxuICAgIGNsYXNzPVwiYS1zLWNlbnRlciBwLXItMFwiXG4gICAgKm5nSWY9XCJzaG93QWN0aXZlVG9nZ2xlXCJcbiAgICBbZGlzcGxheUFzU3dpdGNoXT1cInRydWVcIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIl9fYWN0aXZlXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPjwvYzh5LWxpLWNoZWNrYm94PlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlciBwLWwtMTZcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC0wXCIgW3RpdGxlXT1cIidDaGFuZ2UgY29sb3InIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWNvbG9ycGlja2VyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ29sb3InIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImZvcm1Hcm91cC52YWx1ZS5jb2xvclwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIGRhdGEtcG9pbnQtbGFiZWwgdGV4dC10cnVuY2F0ZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWxpLmNvbGxhcHNlZFwiXG4gICAgICAoY2xpY2spPVwibGkuY29sbGFwc2VkID0gIWxpLmNvbGxhcHNlZFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCIgW3RpdGxlXT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiPlxuICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgIFt0ZXh0XT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiXG4gICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkIGljb24tZmxleFwiICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0XCI+XG4gICAgICAgIDxpIGM4eUljb249XCJleGNoYW5nZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0Lm5hbWUgfX08L3NwYW4+XG4gICAgICA8L3NtYWxsPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCBidG4tZG90LS1kYW5nZXIgbS1sLWF1dG9cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidJbnZhbGlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbcG9wb3Zlcl09XCJcbiAgICAgICAgZXJyb3JNZXNzYWdlXG4gICAgICAgICAgPyBlcnJvck1lc3NhZ2VcbiAgICAgICAgICA6ICgnU29tZSBlbnRyaWVzIGFyZSBpbnZhbGlkLiBDaGVjayB0aGUgaW5wdXQgZmllbGRzIHdpdGggcmVkIGJvcmRlcnMuJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAqbmdJZj1cIiEoaXNWYWxpZCQgfCBhc3luYylcIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJ3YXJuaW5nXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJtLWwtYXV0byBhLXMtY2VudGVyIHAtci00XCIgKm5nSWY9XCJzaG93QWRkUmVtb3ZlQnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kb3QgYnRuLWRvdC0tZGFuZ2VyXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9vbHRpcF09XCInUmVtb3ZlIGZyb20gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJhZGRPclJlbW92ZUl0ZW0oKVwiXG4gICAgICAgICpuZ0lmPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLXJlbW92ZS1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbi0yMFwiIGM4eUljb249XCJtaW51cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWRkIHRvIHNlbGVjdGVkIGRhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidBZGQgdG8gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGlzVmFsaWQkIHwgYXN5bmMpXCJcbiAgICAgICAgKGNsaWNrKT1cImFkZE9yUmVtb3ZlSXRlbSgpXCJcbiAgICAgICAgKm5nSWY9XCIhaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLWFkZC1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwidGV4dC1wcmltYXJ5IGljb24tMjBcIiBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdJZj1cIm9wdGlvblRvUmVtb3ZlXCJcbiAgICBbaWNvbl09XCInbWludXMtY2lyY2xlJ1wiXG4gICAgW2xhYmVsXT1cIidSZW1vdmUgZnJvbSBsaXN0JyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInJlbW92ZSgpXCJcbiAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIlxuICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcbiAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAoY2xpY2spPVwiYWN0aW9uLmNhbGxiYWNrKGZvcm1Hcm91cC52YWx1ZSlcIlxuICA+PC9jOHktbGktYWN0aW9uPlxuICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRhLXBvaW50LWRldGFpbHNcIj5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgc21hbGwgbS1iLTE2XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNtYWxsIG0tYi0wIG0tci04IGEtcy1zdGFydCB0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPkZyYWdtZW50PC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuZnJhZ21lbnRcIlxuICAgICAgICAgICAgICBbcGF0dGVybl09XCJoaWdobGlnaHRUZXh0XCJcbiAgICAgICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItYm90dG9tXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgbS1iLTAgbS1yLTggYS1zLXN0YXJ0IHRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+U2VyaWVzPC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuc2VyaWVzXCJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgICAgIFtzaG91bGRUcmltUGF0dGVybl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAgICAgKm5nSWY9XCJkYXRhcG9pbnRMaWJyYXJ5RW50cmllcyAmJiBkYXRhcG9pbnRMaWJyYXJ5RW50cmllcyB8IGFzeW5jIGFzIGxpYnJhcnlFbnRyaWVzXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIiB0cmFuc2xhdGU+RGF0YSBwb2ludCB0ZW1wbGF0ZTwvbGFiZWw+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwIGJ0bi1oZWxwLS1zbVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtwb3BvdmVyXT1cImRhdGFwb2ludEhpbnRQb3BvdmVyVGVtcGxhdGVcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RhdGFwb2ludEhpbnRQb3BvdmVyVGVtcGxhdGU+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdVc2luZyBhIGRhdGEgcG9pbnQgdGVtcGxhdGUgc2V0cyBjb2xvciwgbGFiZWwsIHVuaXQgYW5kIHJhbmdlcy4gUmVtb3ZpbmcgdGhlIHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gc2V0IHRoZSB2YWx1ZXMgbWFudWFsbHkuJ1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICA8Yzh5LXR5cGVhaGVhZFxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidObyB0ZW1wbGF0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGUgPyBmb3JtR3JvdXAudmFsdWUuZGV0YWlscyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgKG9uU2VhcmNoKT1cInNldFBpcGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGlzcGxheVByb3BlcnR5XT1cIidsYWJlbCdcIlxuICAgICAgICAgICAgW2hpZGVOZXddPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGFwb2ludExpYnJhcnlFbnRyaWVzXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NlbGVjdGVkICYmIGRpc2FibGVUeXBlYWhlYWRJZlNlbGVjdGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1sLTggcC1yLTggYzh5LWxpc3RfX2l0ZW0tLWxpbmsgaW50ZXJhY3RcIlxuICAgICAgICAgICAgICAqYzh5Rm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZGF0YXBvaW50TGlicmFyeUVudHJpZXM7XG4gICAgICAgICAgICAgICAgbG9hZE1vcmU6ICdhdXRvJztcbiAgICAgICAgICAgICAgICBwaXBlOiBmaWx0ZXJQaXBlO1xuICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRhUG9pbnRUZW1wbGF0ZVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2FjdGl2ZV09XCJmb3JtR3JvdXAudmFsdWUuX190ZW1wbGF0ZSA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ21lbnVpdGVtJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0IFt0ZXh0XT1cIml0ZW0uYzh5X0twaT8ubGFiZWxcIiBbcGF0dGVybl09XCJwYXR0ZXJuXCI+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gaWNvbj1cImNpcmNsZVwiIFtzdHlsZS5jb2xvcl09XCJpdGVtLmM4eV9LcGk/LmNvbG9yXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RGb3VuZFRlbXBsYXRlPlxuICAgICAgICAgICAgICA8Yzh5LWxpIGNsYXNzPVwiYmctbGV2ZWwtMiBwLThcIiAqbmdJZj1cInBhdHRlcm4ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPk5vIG1hdGNoIGZvdW5kLjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBidG4teHMgYnRuLWljb24gYS1zLWNlbnRlciBtLWwtOFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0luZm8nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwb3BvdmVyXT1cImRhdGFwb2ludE92ZXJ2aWV3UG9wb3ZlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1pbmZvXCIgYzh5SWNvbj1cImluZm9cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4teHMgYnRuLWljb24gYS1zLWNlbnRlciBtLWwtOFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnVW5saW5rIGRhdGEgcG9pbnQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1VubGluayBkYXRhIHBvaW50IHRlbXBsYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0cmlnZ2Vycz1cIm1vdXNlZW50ZXJcIlxuICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1Hcm91cC52YWx1ZS5fX3RlbXBsYXRlICYmIGhhc1VubGlua1RlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ1bmxpbmtEYXRhcG9pbnRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwidW5saW5rXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkYXRhcG9pbnRPdmVydmlld1BvcG92ZXJUZW1wbGF0ZT5cbiAgICAgICAgPGM4eS1kYXRhcG9pbnQtdGVtcGxhdGUtcG9wb3ZlclxuICAgICAgICAgIFtkYXRhcG9pbnRdPVwiZm9ybUdyb3VwLnZhbHVlLmRldGFpbHNcIlxuICAgICAgICA+PC9jOHktZGF0YXBvaW50LXRlbXBsYXRlLXBvcG92ZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGM4eS1kYXRhcG9pbnQtYXR0cmlidXRlcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiZGVmYXVsdEZvcm1PcHRpb25zXCJcbiAgICAgICAgW3Nob3dUYXJnZXRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dUYXJnZXRcIlxuICAgICAgICBbc2hvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1llbGxvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93WWVsbG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1JlZFJhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmVkUmFuZ2VcIlxuICAgICAgICBbc2hvd0NoYXJ0XT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93Q2hhcnRcIlxuICAgICAgICBbc2hvd0Rpc3BsYXldPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dEaXNwbGF5XCJcbiAgICAgICAgW3Nob3dGb3JtSWZUZW1wbGF0ZVdhc1NlbGVjdGVkXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93Rm9ybUlmVGVtcGxhdGVXYXNTZWxlY3RlZFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRldGFpbHNcIlxuICAgICAgPjwvYzh5LWRhdGFwb2ludC1hdHRyaWJ1dGVzLWZvcm0+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpLWNvbGxhcHNlPlxuPC9jOHktbGk+XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtc2VsZWN0b3IvZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFHTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBbUIsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBR0wsMEJBQTBCLEVBRzNCLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQWtCdEMsTUFBTSxPQUFPLGtDQUFrQztJQTBCN0MsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF4Qm5DLHVCQUFrQixHQUEyQyxFQUFFLENBQUM7UUFDaEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JPZkZpbHRlclBpcGUsIExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlQsXG4gIEtQSURldGFpbHMsXG4gIE1hbmFnZWRPYmplY3RLUElcbn0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhcG9pbnRTZWxlY3Rvckxpc3RJdGVtQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb3JtT3B0aW9uczogUGFydGlhbDxEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZz4gPSB7fTtcbiAgQElucHV0KCkgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBZGRSZW1vdmVCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBlZGl0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBY3RpdmVUb2dnbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aXZlVG9nZ2xlRGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0YXBvaW50TGlicmFyeUVudHJpZXM6IE9ic2VydmFibGU8SVJlc3VsdExpc3Q8TWFuYWdlZE9iamVjdEtQST4+O1xuICBASW5wdXQoKSBhY3Rpb25zOiBEYXRhcG9pbnRBY3Rpb25bXSA9IFtdO1xuICBASW5wdXQoKSBvcHRpb25Ub1JlbW92ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNVbmxpbmtUZW1wbGF0ZU9wdGlvbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEtQSURldGFpbHM+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxLUElEZXRhaWxzPigpO1xuICBASW5wdXQoKSBjb2xvclBpY2tlckRpc2FibGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzYWJsZVR5cGVhaGVhZElmU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0VGV4dDogc3RyaW5nO1xuICBAQ29udGVudENoaWxkKExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCkgZHJhZ0hhbmRsZTogTGlzdEl0ZW1EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHBhdHRlcm4gPSAnJztcbiAgZmlsdGVyUGlwZTogRm9yT2ZGaWx0ZXJQaXBlPE1hbmFnZWRPYmplY3RLUEk+O1xuICBpc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZGV0YWlsczogW10sXG4gICAgICBjb2xvcjogW10sXG4gICAgICBfX2FjdGl2ZTogW10sXG4gICAgICBfX3RhcmdldDogW10sXG4gICAgICBmcmFnbWVudDogW10sXG4gICAgICBzZXJpZXM6IFtdLFxuICAgICAgX190ZW1wbGF0ZTogW11cbiAgICB9KTtcbiAgICB0aGlzLmlzVmFsaWQkID0gdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdWQUxJRCcpLFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLnZhbGlkKVxuICAgICk7XG4gIH1cblxuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwPy5pbnZhbGlkKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV07XG4gICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBjb250cm9sLmVycm9ycztcbiAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKVswXS5tZXNzYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cD8udmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgLi4ub2JqLCBkZXRhaWxzOiBvYmogfSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShtYXAodG1wID0+IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRtcCkpKS5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmbik7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXA/LmRpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgfVxuXG4gIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIGFkZE9yUmVtb3ZlSXRlbSgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkZWQuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoKGRhdGE6IE1hbmFnZWRPYmplY3RLUElbXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJEYXRhcG9pbnRMYWJlbChkYXRhLCBmaWx0ZXJTdHIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdW5saW5rRGF0YXBvaW50VGVtcGxhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlLmRldGFpbHMgfHwge307XG4gICAgdGhpcy5yZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlscyk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7IF9fdGVtcGxhdGU6IHVuZGVmaW5lZCwgZGV0YWlscyB9KTtcbiAgfVxuXG4gIGRhdGFQb2ludFRlbXBsYXRlU2VsZWN0ZWQodGVtcGxhdGU6IE1hbmFnZWRPYmplY3RLUEkpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzVG9Bc3NpZ246IEFycmF5PGtleW9mIEtQSURldGFpbHM+ID0gW1xuICAgICAgJ2NvbG9yJyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnbWluJyxcbiAgICAgICdtYXgnLFxuICAgICAgJ3llbGxvd1JhbmdlTWF4JyxcbiAgICAgICd5ZWxsb3dSYW5nZU1pbicsXG4gICAgICAncmVkUmFuZ2VNYXgnLFxuICAgICAgJ3JlZFJhbmdlTWluJyxcbiAgICAgICd0YXJnZXQnLFxuICAgICAgJ29yaWVudGF0aW9uJyxcbiAgICAgICd1bml0J1xuICAgIF07XG4gICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzLCBfX3RhcmdldCwgX19hY3RpdmUgfSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xuICAgIGNvbnN0IGRhdGFQb2ludDogS1BJRGV0YWlscyA9IHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgc2VyaWVzLFxuICAgICAgX19hY3RpdmUsXG4gICAgICBfX3RhcmdldCxcbiAgICAgIF9fdGVtcGxhdGU6IHRlbXBsYXRlLmlkXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzVG9Bc3NpZ24pIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGVtcGxhdGVbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdW2F0dHJpYnV0ZV07XG4gICAgICBkYXRhUG9pbnRbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLndyaXRlVmFsdWUoZGF0YVBvaW50KTtcbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlsczogUGFydGlhbDxLUElEZXRhaWxzPik6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvd1RhcmdldCwgc2hvd1llbGxvd1JhbmdlLCBzaG93UmVkUmFuZ2UgfSA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICAgIGRldGFpbHMuX190ZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXNob3dUYXJnZXQpIHtcbiAgICAgIGRldGFpbHMudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXNob3dZZWxsb3dSYW5nZSkge1xuICAgICAgZGV0YWlscy55ZWxsb3dSYW5nZU1pbiA9IHVuZGVmaW5lZDtcbiAgICAgIGRldGFpbHMueWVsbG93UmFuZ2VNYXggPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghc2hvd1JlZFJhbmdlKSB7XG4gICAgICBkZXRhaWxzLnJlZFJhbmdlTWluID0gdW5kZWZpbmVkO1xuICAgICAgZGV0YWlscy5yZWRSYW5nZU1heCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckRhdGFwb2ludExhYmVsKGtwaXM6IE1hbmFnZWRPYmplY3RLUElbXSwgZmlsdGVyU3RyOiBzdHJpbmcpOiBNYW5hZ2VkT2JqZWN0S1BJW10ge1xuICAgIHJldHVybiBrcGlzLmZpbHRlcihcbiAgICAgIChtbzogTWFuYWdlZE9iamVjdEtQSSkgPT5cbiAgICAgICAgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdICYmXG4gICAgICAgIG1vW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXS5sYWJlbCAmJlxuICAgICAgICB0eXBlb2YgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdLmxhYmVsID09PSAnc3RyaW5nJyAmJlxuICAgICAgICBtb1tEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRm9ybVZhbHVlKGZvcm1WYWx1ZTogYW55KSB7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmFzc2lnbih7fSwgZm9ybVZhbHVlLmRldGFpbHMgfHwge30sIGZvcm1WYWx1ZSk7XG4gICAgZGVsZXRlIG9iai5kZXRhaWxzO1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cbiIsIjxjOHktbGkgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sbGFwc2UtLWNvbnRhaW5lci1zbWFsbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgI2xpPlxuICA8Yzh5LWxpLWRyYWctaGFuZGxlPjxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1saS1kcmFnLWhhbmRsZVwiPjwvbmctY29udGVudD48L2M4eS1saS1kcmFnLWhhbmRsZT5cbiAgPGM4eS1saS1jaGVja2JveFxuICAgIGNsYXNzPVwiYS1zLWNlbnRlciBwLXItMFwiXG4gICAgKm5nSWY9XCJzaG93QWN0aXZlVG9nZ2xlXCJcbiAgICBbZGlzcGxheUFzU3dpdGNoXT1cInRydWVcIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIl9fYWN0aXZlXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPjwvYzh5LWxpLWNoZWNrYm94PlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlciBwLWwtMTZcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC0wXCIgW3RpdGxlXT1cIidDaGFuZ2UgY29sb3InIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWNvbG9ycGlja2VyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ29sb3InIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImZvcm1Hcm91cC52YWx1ZS5jb2xvclwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIGRhdGEtcG9pbnQtbGFiZWwgdGV4dC10cnVuY2F0ZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWxpLmNvbGxhcHNlZFwiXG4gICAgICAoY2xpY2spPVwibGkuY29sbGFwc2VkID0gIWxpLmNvbGxhcHNlZFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCIgW3RpdGxlXT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiPlxuICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgIFt0ZXh0XT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiXG4gICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkIGljb24tZmxleFwiICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0XCI+XG4gICAgICAgIDxpIGM4eUljb249XCJleGNoYW5nZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0Lm5hbWUgfX08L3NwYW4+XG4gICAgICA8L3NtYWxsPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCBidG4tZG90LS1kYW5nZXIgbS1sLWF1dG9cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidJbnZhbGlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbcG9wb3Zlcl09XCJcbiAgICAgICAgZXJyb3JNZXNzYWdlXG4gICAgICAgICAgPyBlcnJvck1lc3NhZ2VcbiAgICAgICAgICA6ICgnU29tZSBlbnRyaWVzIGFyZSBpbnZhbGlkLiBDaGVjayB0aGUgaW5wdXQgZmllbGRzIHdpdGggcmVkIGJvcmRlcnMuJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAqbmdJZj1cIiEoaXNWYWxpZCQgfCBhc3luYylcIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJ3YXJuaW5nXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJtLWwtYXV0byBhLXMtY2VudGVyIHAtci00XCIgKm5nSWY9XCJzaG93QWRkUmVtb3ZlQnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kb3QgYnRuLWRvdC0tZGFuZ2VyXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9vbHRpcF09XCInUmVtb3ZlIGZyb20gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJhZGRPclJlbW92ZUl0ZW0oKVwiXG4gICAgICAgICpuZ0lmPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLXJlbW92ZS1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbi0yMFwiIGM4eUljb249XCJtaW51cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWRkIHRvIHNlbGVjdGVkIGRhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidBZGQgdG8gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGlzVmFsaWQkIHwgYXN5bmMpXCJcbiAgICAgICAgKGNsaWNrKT1cImFkZE9yUmVtb3ZlSXRlbSgpXCJcbiAgICAgICAgKm5nSWY9XCIhaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLWFkZC1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwidGV4dC1wcmltYXJ5IGljb24tMjBcIiBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdJZj1cIm9wdGlvblRvUmVtb3ZlXCJcbiAgICBbaWNvbl09XCInbWludXMtY2lyY2xlJ1wiXG4gICAgW2xhYmVsXT1cIidSZW1vdmUgZnJvbSBsaXN0JyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInJlbW92ZSgpXCJcbiAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIlxuICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcbiAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAoY2xpY2spPVwiYWN0aW9uLmNhbGxiYWNrKGZvcm1Hcm91cC52YWx1ZSlcIlxuICA+PC9jOHktbGktYWN0aW9uPlxuICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRhLXBvaW50LWRldGFpbHNcIj5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgc21hbGwgbS1iLTE2XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNtYWxsIG0tYi0wIG0tci04IGEtcy1zdGFydCB0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPkZyYWdtZW50PC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuZnJhZ21lbnRcIlxuICAgICAgICAgICAgICBbcGF0dGVybl09XCJoaWdobGlnaHRUZXh0XCJcbiAgICAgICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItYm90dG9tXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgbS1iLTAgbS1yLTggYS1zLXN0YXJ0IHRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+U2VyaWVzPC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuc2VyaWVzXCJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgICAgIFtzaG91bGRUcmltUGF0dGVybl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAgICAgKm5nSWY9XCJkYXRhcG9pbnRMaWJyYXJ5RW50cmllcyAmJiBkYXRhcG9pbnRMaWJyYXJ5RW50cmllcyB8IGFzeW5jIGFzIGxpYnJhcnlFbnRyaWVzXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIiB0cmFuc2xhdGU+RGF0YSBwb2ludCB0ZW1wbGF0ZTwvbGFiZWw+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwIGJ0bi1oZWxwLS1zbVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtwb3BvdmVyXT1cImRhdGFwb2ludEhpbnRQb3BvdmVyVGVtcGxhdGVcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RhdGFwb2ludEhpbnRQb3BvdmVyVGVtcGxhdGU+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdVc2luZyBhIGRhdGEgcG9pbnQgdGVtcGxhdGUgc2V0cyBjb2xvciwgbGFiZWwsIHVuaXQgYW5kIHJhbmdlcy4gUmVtb3ZpbmcgdGhlIHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gc2V0IHRoZSB2YWx1ZXMgbWFudWFsbHkuJ1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICA8Yzh5LXR5cGVhaGVhZFxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidObyB0ZW1wbGF0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGUgPyBmb3JtR3JvdXAudmFsdWUuZGV0YWlscyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgKG9uU2VhcmNoKT1cInNldFBpcGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGlzcGxheVByb3BlcnR5XT1cIidsYWJlbCdcIlxuICAgICAgICAgICAgW2hpZGVOZXddPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGFwb2ludExpYnJhcnlFbnRyaWVzXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NlbGVjdGVkICYmIGRpc2FibGVUeXBlYWhlYWRJZlNlbGVjdGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1sLTggcC1yLTggYzh5LWxpc3RfX2l0ZW0tLWxpbmsgaW50ZXJhY3RcIlxuICAgICAgICAgICAgICAqYzh5Rm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZGF0YXBvaW50TGlicmFyeUVudHJpZXM7XG4gICAgICAgICAgICAgICAgbG9hZE1vcmU6ICdhdXRvJztcbiAgICAgICAgICAgICAgICBwaXBlOiBmaWx0ZXJQaXBlO1xuICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRhUG9pbnRUZW1wbGF0ZVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2FjdGl2ZV09XCJmb3JtR3JvdXAudmFsdWUuX190ZW1wbGF0ZSA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ21lbnVpdGVtJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0IFt0ZXh0XT1cIml0ZW0uYzh5X0twaT8ubGFiZWxcIiBbcGF0dGVybl09XCJwYXR0ZXJuXCI+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gaWNvbj1cImNpcmNsZVwiIFtzdHlsZS5jb2xvcl09XCJpdGVtLmM4eV9LcGk/LmNvbG9yXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RGb3VuZFRlbXBsYXRlPlxuICAgICAgICAgICAgICA8Yzh5LWxpIGNsYXNzPVwiYmctbGV2ZWwtMiBwLThcIiAqbmdJZj1cInBhdHRlcm4ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPk5vIG1hdGNoIGZvdW5kLjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBidG4teHMgYnRuLWljb24gYS1zLWNlbnRlciBtLWwtOFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0luZm8nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwb3BvdmVyXT1cImRhdGFwb2ludE92ZXJ2aWV3UG9wb3ZlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1pbmZvXCIgYzh5SWNvbj1cImluZm9cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4teHMgYnRuLWljb24gYS1zLWNlbnRlciBtLWwtOFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnVW5saW5rIGRhdGEgcG9pbnQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1VubGluayBkYXRhIHBvaW50IHRlbXBsYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0cmlnZ2Vycz1cIm1vdXNlZW50ZXJcIlxuICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1Hcm91cC52YWx1ZS5fX3RlbXBsYXRlICYmIGhhc1VubGlua1RlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ1bmxpbmtEYXRhcG9pbnRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwidW5saW5rXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkYXRhcG9pbnRPdmVydmlld1BvcG92ZXJUZW1wbGF0ZT5cbiAgICAgICAgPGM4eS1kYXRhcG9pbnQtdGVtcGxhdGUtcG9wb3ZlclxuICAgICAgICAgIFtkYXRhcG9pbnRdPVwiZm9ybUdyb3VwLnZhbHVlLmRldGFpbHNcIlxuICAgICAgICA+PC9jOHktZGF0YXBvaW50LXRlbXBsYXRlLXBvcG92ZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGM4eS1kYXRhcG9pbnQtYXR0cmlidXRlcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiZGVmYXVsdEZvcm1PcHRpb25zXCJcbiAgICAgICAgW3Nob3dUYXJnZXRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dUYXJnZXRcIlxuICAgICAgICBbc2hvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1llbGxvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93WWVsbG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1JlZFJhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmVkUmFuZ2VcIlxuICAgICAgICBbc2hvd0NoYXJ0XT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93Q2hhcnRcIlxuICAgICAgICBbc2hvd0Zvcm1JZlRlbXBsYXRlV2FzU2VsZWN0ZWRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dGb3JtSWZUZW1wbGF0ZVdhc1NlbGVjdGVkXCJcbiAgICAgICAgW3NlbGVjdGFibGVDaGFydFJlbmRlclR5cGVzXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zZWxlY3RhYmxlQ2hhcnRSZW5kZXJUeXBlc1wiXG4gICAgICAgIFtzZWxlY3RhYmxlQ2hhcnRMaW5lVHlwZXNdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNlbGVjdGFibGVDaGFydExpbmVUeXBlc1wiXG4gICAgICAgIFtzZWxlY3RhYmxlQXhpc1R5cGVzXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zZWxlY3RhYmxlQXhpc1R5cGVzXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV0YWlsc1wiXG4gICAgICA+PC9jOHktZGF0YXBvaW50LWF0dHJpYnV0ZXMtZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGktY29sbGFwc2U+XG48L2M4eS1saT5cbiJdfQ==
|
|
@@ -57,4 +57,4 @@ export const PRODUCT_EXPERIENCE_DATAPOINTS_EXPORT_SELECTOR = {
|
|
|
57
57
|
COMPACT_EXPORT_TYPE: 'compactExportType'
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci9kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLDBCQUEwQixDQUFDO0FBNk12RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFXO0lBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQWM7Q0FDN0MsQ0FBQztBQUVYOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDVixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFDM0MsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztDQUNWLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM5QyxPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSw2Q0FBNkMsR0FBRztJQUMzRCxNQUFNLEVBQUU7UUFDTixlQUFlLEVBQUUsZ0JBQWdCO0tBQ2xDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsMEJBQTBCLEVBQUUsNEJBQTRCO1FBQ3hELHdDQUF3QyxFQUFFLDBDQUEwQztLQUNyRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLGdCQUFnQixFQUFFLGlCQUFpQjtLQUNwQztJQUNELGFBQWEsRUFBRTtRQUNiLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxtQkFBbUIsRUFBRSxtQkFBbUI7S0FDekM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWdncmVnYXRpb25PcHRpb24sIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWVhc3VyZW1lbnQgfSBmcm9tICcuL2RhdGFwb2ludHMtZXhwb3J0LXNlbGVjdG9yLW1vZGFsL2RhdGFwb2ludHMtZXhwb3J0LXNlbGVjdG9yLWZpbGUtZXhwb3J0ZXIvdXRpbHMuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBIQVNfRVJST1IgPSAnaGFzLWVycm9yJztcbmV4cG9ydCBjb25zdCBNRUFTVVJFTUVOVFNfUFJFVklFV19JVEVNU19MSU1JVCA9IDU7XG5leHBvcnQgY29uc3QgU0VSSUVTX0RBVEFfTUVSR0VEX0ZJTEVfTkFNRSA9ICdzZXJpZXNEYXRhTWVyZ2VkRmlsZU5hbWUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgY291bnRzIG9mIGRhdGFwb2ludHMgZGF0YSBjYXRlZ29yaXplZCBieSB0aGVpciBhdmFpbGFiaWxpdHkgYW5kIGRlbGl2ZXJ5IG1ldGhvZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhcG9pbnRDb3VudHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHdob3NlIGRhdGEgY2FuIGJlIGRpcmVjdGx5IGRvd25sb2FkZWRcbiAgICogdGhyb3VnaCBhIHdlYiBicm93c2VyLlxuICAgKi9cbiAgYnJvd3NlckRvd25sb2FkYWJsZUNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgd2hvc2UgZGF0YSB3aWxsIGJlIHNlbnQgdmlhIGVtYWlsIGJlY2F1c2UgaXRzIHJlY29yZCBjb3VudCBleGNlZWRlZCA1MF8wMDAuXG4gICAqL1xuICBlbWFpbERlbGl2ZXJhYmxlQ291bnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF0YXBvaW50cyB3aG9zZSBkYXRhIGNhbm5vdCBiZSByZXRyaWV2ZWQgYXQgYWxsLFxuICAgKiBuZWl0aGVyIHRocm91Z2ggZGlyZWN0IGRvd25sb2FkIG5vciB2aWEgZW1haWwgYmVjYXVzZSBpdHMgcmVjb3JkIGNvdW50IGV4Y2VlZGVkIDFfMDAwXzAwMCBBUEkgbGltaXQuXG4gICAqL1xuICBub25SZXRyaWV2YWJsZUNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRhdGFwb2ludHMgd2hpY2ggbnVtYmVyIG9mIHJlY29yZHMgZXhjZWVkIGEgdGhyZXNob2xkIHdoZXJlIGRhdGEgd2lsbCBiZSBwcmVjZXNzZWQgYnkgYSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFwb2ludHNFeGNlZWRpbmdMaW1pdCB7XG4gIGRhdGFwb2ludERldGFpbDogRGF0YXBvaW50RGV0YWlscztcbiAgdG90YWxFbGVtZW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhVHJhbnNmb3JtZXIge1xuICB0cmFuc2Zvcm1Ub01lcmdlZEZvcm1hdChkYXRhOiBFeHBvcnREYXRhW10pOiBUaW1lU2VyaWVzQ29sdW1uRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlR2VuZXJhdG9yIHtcbiAgZ2VuZXJhdGVNZXJnZWQ/OiAoZXhwb3J0RGF0YTogRXhwb3J0RGF0YVtdLCBtZXJnZWRFeHBvcnREZXRhaWxzOiBNZXJnZWRFeHBvcnREZXRhaWxzKSA9PiBCbG9iUGFydDtcbiAgZ2V0RmlsZUV4dGVuc2lvbigpOiBzdHJpbmc7XG4gIGdldE1pbWVUeXBlKCk6IHN0cmluZztcbiAgZ2V0TGFiZWwoKTogc3RyaW5nO1xuICBnZXRJY29uKCk6IHN0cmluZztcbiAgZ2V0VHlwZSgpOiBzdHJpbmc7XG4gIGdldFRpdGxlKCk6IHN0cmluZztcbiAgZ2V0WmlwTmFtZSgpOiBzdHJpbmc7XG4gIGdldEFjY2VwdFR5cGUoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUeXBlTWV0YWRhdGEge1xuICBleHRlbnNpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHppcE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSwgd2hpY2ggaXMgdXNlZCB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgZmlsZSAoc2VyaWVzKSBvciB1c2VkIGZvciBhIHByZXZpZXcgKHNlcmllcyBhbmQgbWVhc3VyZW1lbnRzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnREYXRhIHtcbiAgdGltZT86IHN0cmluZyB8IG51bGw7XG4gIHNvdXJjZTogc3RyaW5nIHwgbnVtYmVyO1xuICBkZXZpY2VfbmFtZTogc3RyaW5nO1xuICBmcmFnbWVudF9zZXJpZXM6IHN0cmluZztcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHZhbHVlIG9mIGEgbWVhc3VyZW1lbnQgZm9yIC9tZWFzdXJlbWVudCBkYXRhIEFQSS5cbiAgICovXG4gIHZhbHVlPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIG1pbiB2YWx1ZSBvZiBhIG1lYXN1cmVtZW50IGZvciAvc2VyaWVzIGRhdGEgQVBJLlxuICAgKi9cbiAgdmFsdWVfbWluPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHZhbHVlIG9mIGEgbWVhc3VyZW1lbnQgZm9yIC9zZXJpZXMgZGF0YSBBUEkuXG4gICAqIE1lYXN1cmVtZW50IEFQSSBkYXRhIGRvZXMgbm90IGNvbnRhaW4gbWF4IHZhbHVlLlxuICAgKi9cbiAgdmFsdWVfbWF4PzogbnVtYmVyIHwgbnVsbDtcbiAgdW5pdD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXBvaW50RGV0YWlscyB7XG4gIGRldmljZU5hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nIHwgbnVtYmVyO1xuICB2YWx1ZUZyYWdtZW50U2VyaWVzOiBzdHJpbmc7XG4gIHZhbHVlRnJhZ21lbnRUeXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGlzIHVzZWQgdG8gYmVcbiAqIHRyYW5zZm9ybWVkIGludG8gYW4gRXhwb3J0RGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhVG9FeHBvcnQgZXh0ZW5kcyBEYXRhcG9pbnREZXRhaWxzIHtcbiAgdW5pdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0aW1lVmFsdWVNYXA6IHsgW3RpbWVzdGFtcDogc3RyaW5nXTogTWVhc3VyZW1lbnQgfSB8IHVuZGVmaW5lZDtcbn1cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGF0YSB0byBiZSBleHBvcnRlZCBhbG9uZyB3aXRoIHRoZSBiYWNrZW5kLWNyZWF0ZWQgZmlsZS5cbiAqIE9ubHkgbWVhc3VyZW1lbnRzIEFQSSBnZW5lcmF0ZXMgYSBmaWxlIG9uIHRoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUb0V4cG9ydFdpdGhCYWNrZW5kQ3JlYXRlZEZpbGUge1xuICBzb3VyY2U6IHN0cmluZyB8IG51bWJlcjtcbiAgdmFsdWVGcmFnbWVudFNlcmllczogc3RyaW5nO1xuICB2YWx1ZUZyYWdtZW50VHlwZTogc3RyaW5nO1xuICBmZXRjaGVkTWVhc3VyZW1lbnRzQmxvYkZpbGU6IEJsb2I7XG59XG4vKipcbiAqIEJhc2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIGV4cG9ydCBwcm9jZXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydENvbmZpZyB7XG4gIGFnZ3JlZ2F0aW9uPzogQWdncmVnYXRpb25PcHRpb247XG4gIGRhdGFwb2ludERldGFpbHM6IERhdGFwb2ludERldGFpbHNbXTtcbiAgZGF0ZUZyb206IHN0cmluZztcbiAgZGF0ZVRvOiBzdHJpbmc7XG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gb24gdGhlIGJhc2lzIG9mIHdoaWNoIHRoZSB6aXAgZmlsZSBpcyBjcmVhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFeHBvcnRDb25maWcge1xuICBmaWxlVHlwZTogc3RyaW5nO1xuICB6aXBOYW1lOiBzdHJpbmc7XG59XG4vKipcbiAqIFJlcHJlc2VudHMgYSByZXF1aXJlZCBjb25maWcgcHJvcGVydGllcyB1c2VkIGluIGEgcHJvY2VzcyBvZiBnZW5lcmF0aW5nIGEgbWVhc3VyZW1lbnRzIGJhc2VkIGV4cG9ydCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lYXN1cmVtZW50RmlsZUNvbmZpZyB7XG4gIGV4cG9ydENvbmZpZzogRXhwb3J0Q29uZmlnO1xuICBhY2NlcHRGaWxlVHlwZTogc3RyaW5nO1xufVxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmVxdWlyZWQgY29uZmlnIHByb3BlcnRpZXMgYWxvbmcgd2l0aCB0cmFuc2Zvcm1lZCBkYXRhIHN0cnVjdHVyZXMsXG4gKiB1c2VkIGluIGEgcHJvY2VzcyBvZiBnZW5lcmF0aW5nIGEgc2VyaWVzIGJhc2VkIGV4cG9ydCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmllc0V4cG9ydFBhcmFtcyB7XG4gIGZsYXR0ZW5lZEFuZFNvcnRlZEV4cG9ydERhdGE6IEV4cG9ydERhdGFbXTtcbiAgZmlsZVR5cGU6IHN0cmluZztcbiAgbWVyZ2VkRXhwb3J0RGV0YWlsczogTWVyZ2VkRXhwb3J0RGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lU2VyaWVzQ29sdW1uRGF0YSB7XG4gIHRpbWVTZXJpZXM6IE1hcDxUaW1lU3RhbXAsIENvbHVtblZhbHVlTWFwPjtcbiAgdW5pcXVlQ29sdW1uSWRlbnRpZmllcnM6IHN0cmluZ1tdO1xufVxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWFwcGluZyBvZiBkYXRhcG9pbnRzIHNlcmllcyB2YWx1ZXMuXG4gKiBUaGUga2V5IG9mIHRoZSBtYXAgaXMgYSBzb3VyY2UsIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHZhbHVlIGRhdGEgZnJvbSByZXF1ZXN0ZWQgc2VyaWVzLlxuICovXG5leHBvcnQgdHlwZSBEYXRhcG9pbnRzVmFsdWVzRGF0YU1hcCA9IE1hcDxTb3VyY2VJZCB8IG51bWJlciwgc3RyaW5nW10+O1xuXG5leHBvcnQgdHlwZSBTb3VyY2VJZCA9IHN0cmluZyB8IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgRmlsZUNvbXByZXNzaW9uVHlwZXMgPSAnU1RPUkUnIHwgJ0RFRkxBVEUnO1xuXG5leHBvcnQgdHlwZSBUaW1lU2VyaWVzRGF0YSA9IHtcbiAgW3RpbWVzdGFtcDogc3RyaW5nXTogTWVhc3VyZW1lbnQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUeXBlQ29uZmlnIHtcbiAgZXh0ZW5zaW9uOiBzdHJpbmc7XG4gIG1pbWVUeXBlOiBzdHJpbmc7XG4gIGFjY2VwdFR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkZXRhaWxzIHVuaXF1ZSBmb3IgYSBtZXJnZWQgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgTWVyZ2VkRXhwb3J0RGV0YWlscyA9IHtcbiAgYWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uT3B0aW9uO1xuICBkYXRlRnJvbTogc3RyaW5nO1xuICBkYXRlVG86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEV4cG9ydGVkRmlsZSA9IHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZmlsZURhdGE6IEJsb2I7XG59O1xuXG5leHBvcnQgdHlwZSBUaW1lU3RhbXAgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFJlYWRpbmdWYWx1ZSA9IG51bWJlcjtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbWluIGFuZCBtYXggdmFsdWVzIGZvciBhIHNwZWNpZmljIHRpbWVzdGFtcC5cbiAqIEJvdGggbWluIGFuZCBtYXggdmFsdWVzIGFyZSBhdmFpbGFibGUgb25seSB3aGVuIHVzaW5nIHNlcmllcyBBUEkuXG4gKi9cbmV4cG9ydCB0eXBlIE1pbk1heFZhbHVlcyA9IHtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHN1cHBvcnRlZCBpbnRlcnZhbCB1bml0cyBhbmQgYWxzb1xuICogdGhlIHBvc3NpYmxlIHBlcmlvZHMgb2YgdGltZSBmb3IgcHJlZGVmaW5lZCByYW5nZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRpbWVSYW5nZUludGVydmFsID0ga2V5b2YgdHlwZW9mIFRJTUVfUkFOR0VfSU5URVJWQUxfVU5JVFNfVkFMVUVTO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVyZ2VkIGV4cG9ydCBjb2x1bW4gaGVhZGVyLFxuICogZS5nLiAnVGVtcGVyYXR1cmUgLSA1IC0+IGM4eV9UZW1wZXJhdHVyZS5UIFvCukNdIChtYXgpJ1xuICovXG50eXBlIENvbHVtbkhlYWRlciA9IHN0cmluZztcbi8qKlxuICogUmVwcmVzZW50cyBhIG1hcHBpbmcgb2YgY29sdW1uIGhlYWRlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICogZS5nLiAnVGVtcGVyYXR1cmUgLSA1IC0+IGM4eV9UZW1wZXJhdHVyZS5UIFvCukNdIChtYXgpJzogMjVcbiAqL1xuZXhwb3J0IHR5cGUgQ29sdW1uVmFsdWVNYXAgPSB7XG4gIFtrZXk6IENvbHVtbkhlYWRlcl06IFJlYWRpbmdWYWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfTU9ERV9MQUJFTFMgPSB7XG4gIEZVTEw6IGdldHRleHQoJ0Z1bGxgZXhwb3J0IHR5cGVgJykgYXMgJ0Z1bGwnLFxuICBDT01QQUNUOiBnZXR0ZXh0KCdDb21wYWN0YGV4cG9ydCB0eXBlYCcpIGFzICdDb21wYWN0J1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFYWNoIGV4cG9ydCB0eXBlIGlzIGJhc2VkIG9uIGEgZGlmZmVyZW50IEFQSTpcbiAqIC0gQ09NUEFDVCAtIHNlcmllc1xuICogLSBGVUxMIC0gbWVhc3VyZW1lbnRzXG4gKiBBbGwgZGlmZmVyZW5jZXMgYmV0d2VlbiBleHBvcnQgbW9kZXM6XG4gKiAgQ29tcGFjdDpcbiAqICAgIFByb2Nlc3NlcyB1cCB0byA1LDAwMCByZWNvcmRzIHBlciBkYXRhIHBvaW50LCBvciB1cCB0byB0aGUgZGF0YSByZXRlbnRpb24gbGltaXQgKEFQSSBsaW1pdClcbiAqICAgIENyZWF0ZXMgYSBzaW5nbGUgbWVyZ2VkIGZpbGUgY29udGFpbmluZyBhbGwgdGhlIGRhdGFcbiAqICAgIFByb3ZpZGVzIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIChBUEkgZmVhdHVyZSlcbiAqICAgIFByZXZpZXcgaXMgbm90IGF2YWlsYWJsZVxuICogICAgU3VwcG9ydHMgb3B0aW9uYWwgZGF0YSBhZ2dyZWdhdGlvbiAoQVBJIGZlYXR1cmUpXG4gKiAgRnVsbDpcbiAqICAgIFByb2Nlc3NlcyB1cCB0byAxLDAwMCwwMDAgcmVjb3JkcyBwZXIgZGF0YSBwb2ludCwgb3IgdXAgdG8gdGhlIGRhdGEgcmV0ZW50aW9uIGxpbWl0IChBUEkgbGltaXQpXG4gKiAgICBGb3IgZXhwb3J0cyBleGNlZWRpbmcgNTAsMDAwIHJlY29yZHMsIGRhdGEgd2lsbCBiZSBzZW50IHZpYSBlbWFpbFxuICogICAgQ3JlYXRlcyBhIGNvbXByZXNzZWQgWklQIGZpbGUgY29udGFpbmluZyBzZXBhcmF0ZSBkYXRhIGZpbGVzIGZvciBlYWNoIHNlbGVjdGVkIGRhdGEgcG9pbnRcbiAqICAgIFByZXZpZXcgaXMgYXZhaWxhYmxlXG4gKiAgICBEb2VzIG5vdCBzdXBwb3J0IGRhdGEgYWdncmVnYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NT0RFX1ZBTFVFUyA9IHtcbiAgZnVsbDogJ0ZVTEwnLFxuICBjb21wYWN0OiAnQ09NUEFDVCdcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBGSUxFX0NPTVBSRVNTSU9OX1RZUEVTX1ZBTFVFUyA9IHtcbiAgc3RvcmU6ICdTVE9SRScsXG4gIGRlZmxhdGU6ICdERUZMQVRFJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRJTUVfUkFOR0VfSU5URVJWQUxfVU5JVFNfVkFMVUVTID0ge1xuICBtaW51dGVzOiAnbWludXRlcycsXG4gIGhvdXJzOiAnaG91cnMnLFxuICBkYXlzOiAnZGF5cycsXG4gIHdlZWtzOiAnd2Vla3MnLFxuICBtb250aHM6ICdtb250aHMnLFxuICBjdXN0b206ICdjdXN0b20nXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX0RBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SID0ge1xuICBFVkVOVFM6IHtcbiAgICBFWFBPUlRfU0VMRUNUT1I6ICdleHBvcnRTZWxlY3RvcidcbiAgfSxcbiAgQ09NUE9ORU5UUzoge1xuICAgIERBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SOiAnZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3InLFxuICAgIERBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SX0ZJTEVfRVhQT1JURVI6ICdkYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci1maWxlLWV4cG9ydGVyJ1xuICB9LFxuICBBQ1RJT05TOiB7XG4gICAgT1BFTl9NT0RBTDogJ29wZW5Nb2RhbCcsXG4gICAgRE9XTkxPQURfU1RBUlRFRDogJ2Rvd25sb2FkU3RhcnRlZCdcbiAgfSxcbiAgRVhQT1JUX0NPTkZJRzoge1xuICAgIEZVTExfRVhQT1JUX1RZUEU6ICdmdWxsRXhwb3J0VHlwZScsXG4gICAgQ09NUEFDVF9FWFBPUlRfVFlQRTogJ2NvbXBhY3RFeHBvcnRUeXBlJ1xuICB9XG59IGFzIGNvbnN0O1xuIl19
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci9kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWpFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLDBCQUEwQixDQUFDO0FBNk12RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFXO0lBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQWM7Q0FDN0MsQ0FBQztBQUVYOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDVixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFDM0MsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztDQUNWLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM5QyxPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSw2Q0FBNkMsR0FBRztJQUMzRCxNQUFNLEVBQUU7UUFDTixlQUFlLEVBQUUsZ0JBQWdCO0tBQ2xDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsMEJBQTBCLEVBQUUsNEJBQTRCO1FBQ3hELHdDQUF3QyxFQUFFLDBDQUEwQztLQUNyRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLGdCQUFnQixFQUFFLGlCQUFpQjtLQUNwQztJQUNELGFBQWEsRUFBRTtRQUNiLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxtQkFBbUIsRUFBRSxtQkFBbUI7S0FDekM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWdncmVnYXRpb25PcHRpb24sIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWVhc3VyZW1lbnQgfSBmcm9tICcuL2RhdGFwb2ludHMtZXhwb3J0LXNlbGVjdG9yLW1vZGFsL2RhdGFwb2ludHMtZXhwb3J0LXNlbGVjdG9yLWZpbGUtZXhwb3J0ZXIvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcblxuZXhwb3J0IGNvbnN0IEhBU19FUlJPUiA9ICdoYXMtZXJyb3InO1xuZXhwb3J0IGNvbnN0IE1FQVNVUkVNRU5UU19QUkVWSUVXX0lURU1TX0xJTUlUID0gNTtcbmV4cG9ydCBjb25zdCBTRVJJRVNfREFUQV9NRVJHRURfRklMRV9OQU1FID0gJ3Nlcmllc0RhdGFNZXJnZWRGaWxlTmFtZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBjb3VudHMgb2YgZGF0YXBvaW50cyBkYXRhIGNhdGVnb3JpemVkIGJ5IHRoZWlyIGF2YWlsYWJpbGl0eSBhbmQgZGVsaXZlcnkgbWV0aG9kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFwb2ludENvdW50cyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgd2hvc2UgZGF0YSBjYW4gYmUgZGlyZWN0bHkgZG93bmxvYWRlZFxuICAgKiB0aHJvdWdoIGEgd2ViIGJyb3dzZXIuXG4gICAqL1xuICBicm93c2VyRG93bmxvYWRhYmxlQ291bnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF0YXBvaW50cyB3aG9zZSBkYXRhIHdpbGwgYmUgc2VudCB2aWEgZW1haWwgYmVjYXVzZSBpdHMgcmVjb3JkIGNvdW50IGV4Y2VlZGVkIDUwXzAwMC5cbiAgICovXG4gIGVtYWlsRGVsaXZlcmFibGVDb3VudDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHdob3NlIGRhdGEgY2Fubm90IGJlIHJldHJpZXZlZCBhdCBhbGwsXG4gICAqIG5laXRoZXIgdGhyb3VnaCBkaXJlY3QgZG93bmxvYWQgbm9yIHZpYSBlbWFpbCBiZWNhdXNlIGl0cyByZWNvcmQgY291bnQgZXhjZWVkZWQgMV8wMDBfMDAwIEFQSSBsaW1pdC5cbiAgICovXG4gIG5vblJldHJpZXZhYmxlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGF0YXBvaW50cyB3aGljaCBudW1iZXIgb2YgcmVjb3JkcyBleGNlZWQgYSB0aHJlc2hvbGQgd2hlcmUgZGF0YSB3aWxsIGJlIHByZWNlc3NlZCBieSBhIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXBvaW50c0V4Y2VlZGluZ0xpbWl0IHtcbiAgZGF0YXBvaW50RGV0YWlsOiBEYXRhcG9pbnREZXRhaWxzO1xuICB0b3RhbEVsZW1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFUcmFuc2Zvcm1lciB7XG4gIHRyYW5zZm9ybVRvTWVyZ2VkRm9ybWF0KGRhdGE6IEV4cG9ydERhdGFbXSk6IFRpbWVTZXJpZXNDb2x1bW5EYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVHZW5lcmF0b3Ige1xuICBnZW5lcmF0ZU1lcmdlZD86IChleHBvcnREYXRhOiBFeHBvcnREYXRhW10sIG1lcmdlZEV4cG9ydERldGFpbHM6IE1lcmdlZEV4cG9ydERldGFpbHMpID0+IEJsb2JQYXJ0O1xuICBnZXRGaWxlRXh0ZW5zaW9uKCk6IHN0cmluZztcbiAgZ2V0TWltZVR5cGUoKTogc3RyaW5nO1xuICBnZXRMYWJlbCgpOiBzdHJpbmc7XG4gIGdldEljb24oKTogc3RyaW5nO1xuICBnZXRUeXBlKCk6IHN0cmluZztcbiAgZ2V0VGl0bGUoKTogc3RyaW5nO1xuICBnZXRaaXBOYW1lKCk6IHN0cmluZztcbiAgZ2V0QWNjZXB0VHlwZSgpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVR5cGVNZXRhZGF0YSB7XG4gIGV4dGVuc2lvbjogc3RyaW5nO1xuICBpY29uOiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zO1xuICBsYWJlbDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHppcE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSwgd2hpY2ggaXMgdXNlZCB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgZmlsZSAoc2VyaWVzKSBvciB1c2VkIGZvciBhIHByZXZpZXcgKHNlcmllcyBhbmQgbWVhc3VyZW1lbnRzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnREYXRhIHtcbiAgdGltZT86IHN0cmluZyB8IG51bGw7XG4gIHNvdXJjZTogc3RyaW5nIHwgbnVtYmVyO1xuICBkZXZpY2VfbmFtZTogc3RyaW5nO1xuICBmcmFnbWVudF9zZXJpZXM6IHN0cmluZztcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHZhbHVlIG9mIGEgbWVhc3VyZW1lbnQgZm9yIC9tZWFzdXJlbWVudCBkYXRhIEFQSS5cbiAgICovXG4gIHZhbHVlPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIG1pbiB2YWx1ZSBvZiBhIG1lYXN1cmVtZW50IGZvciAvc2VyaWVzIGRhdGEgQVBJLlxuICAgKi9cbiAgdmFsdWVfbWluPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHZhbHVlIG9mIGEgbWVhc3VyZW1lbnQgZm9yIC9zZXJpZXMgZGF0YSBBUEkuXG4gICAqIE1lYXN1cmVtZW50IEFQSSBkYXRhIGRvZXMgbm90IGNvbnRhaW4gbWF4IHZhbHVlLlxuICAgKi9cbiAgdmFsdWVfbWF4PzogbnVtYmVyIHwgbnVsbDtcbiAgdW5pdD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXBvaW50RGV0YWlscyB7XG4gIGRldmljZU5hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nIHwgbnVtYmVyO1xuICB2YWx1ZUZyYWdtZW50U2VyaWVzOiBzdHJpbmc7XG4gIHZhbHVlRnJhZ21lbnRUeXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGlzIHVzZWQgdG8gYmVcbiAqIHRyYW5zZm9ybWVkIGludG8gYW4gRXhwb3J0RGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhVG9FeHBvcnQgZXh0ZW5kcyBEYXRhcG9pbnREZXRhaWxzIHtcbiAgdW5pdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0aW1lVmFsdWVNYXA6IHsgW3RpbWVzdGFtcDogc3RyaW5nXTogTWVhc3VyZW1lbnQgfSB8IHVuZGVmaW5lZDtcbn1cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGF0YSB0byBiZSBleHBvcnRlZCBhbG9uZyB3aXRoIHRoZSBiYWNrZW5kLWNyZWF0ZWQgZmlsZS5cbiAqIE9ubHkgbWVhc3VyZW1lbnRzIEFQSSBnZW5lcmF0ZXMgYSBmaWxlIG9uIHRoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUb0V4cG9ydFdpdGhCYWNrZW5kQ3JlYXRlZEZpbGUge1xuICBzb3VyY2U6IHN0cmluZyB8IG51bWJlcjtcbiAgdmFsdWVGcmFnbWVudFNlcmllczogc3RyaW5nO1xuICB2YWx1ZUZyYWdtZW50VHlwZTogc3RyaW5nO1xuICBmZXRjaGVkTWVhc3VyZW1lbnRzQmxvYkZpbGU6IEJsb2I7XG59XG4vKipcbiAqIEJhc2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIGV4cG9ydCBwcm9jZXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydENvbmZpZyB7XG4gIGFnZ3JlZ2F0aW9uPzogQWdncmVnYXRpb25PcHRpb247XG4gIGRhdGFwb2ludERldGFpbHM6IERhdGFwb2ludERldGFpbHNbXTtcbiAgZGF0ZUZyb206IHN0cmluZztcbiAgZGF0ZVRvOiBzdHJpbmc7XG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gb24gdGhlIGJhc2lzIG9mIHdoaWNoIHRoZSB6aXAgZmlsZSBpcyBjcmVhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFeHBvcnRDb25maWcge1xuICBmaWxlVHlwZTogc3RyaW5nO1xuICB6aXBOYW1lOiBzdHJpbmc7XG59XG4vKipcbiAqIFJlcHJlc2VudHMgYSByZXF1aXJlZCBjb25maWcgcHJvcGVydGllcyB1c2VkIGluIGEgcHJvY2VzcyBvZiBnZW5lcmF0aW5nIGEgbWVhc3VyZW1lbnRzIGJhc2VkIGV4cG9ydCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lYXN1cmVtZW50RmlsZUNvbmZpZyB7XG4gIGV4cG9ydENvbmZpZzogRXhwb3J0Q29uZmlnO1xuICBhY2NlcHRGaWxlVHlwZTogc3RyaW5nO1xufVxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmVxdWlyZWQgY29uZmlnIHByb3BlcnRpZXMgYWxvbmcgd2l0aCB0cmFuc2Zvcm1lZCBkYXRhIHN0cnVjdHVyZXMsXG4gKiB1c2VkIGluIGEgcHJvY2VzcyBvZiBnZW5lcmF0aW5nIGEgc2VyaWVzIGJhc2VkIGV4cG9ydCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmllc0V4cG9ydFBhcmFtcyB7XG4gIGZsYXR0ZW5lZEFuZFNvcnRlZEV4cG9ydERhdGE6IEV4cG9ydERhdGFbXTtcbiAgZmlsZVR5cGU6IHN0cmluZztcbiAgbWVyZ2VkRXhwb3J0RGV0YWlsczogTWVyZ2VkRXhwb3J0RGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lU2VyaWVzQ29sdW1uRGF0YSB7XG4gIHRpbWVTZXJpZXM6IE1hcDxUaW1lU3RhbXAsIENvbHVtblZhbHVlTWFwPjtcbiAgdW5pcXVlQ29sdW1uSWRlbnRpZmllcnM6IHN0cmluZ1tdO1xufVxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWFwcGluZyBvZiBkYXRhcG9pbnRzIHNlcmllcyB2YWx1ZXMuXG4gKiBUaGUga2V5IG9mIHRoZSBtYXAgaXMgYSBzb3VyY2UsIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHZhbHVlIGRhdGEgZnJvbSByZXF1ZXN0ZWQgc2VyaWVzLlxuICovXG5leHBvcnQgdHlwZSBEYXRhcG9pbnRzVmFsdWVzRGF0YU1hcCA9IE1hcDxTb3VyY2VJZCB8IG51bWJlciwgc3RyaW5nW10+O1xuXG5leHBvcnQgdHlwZSBTb3VyY2VJZCA9IHN0cmluZyB8IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgRmlsZUNvbXByZXNzaW9uVHlwZXMgPSAnU1RPUkUnIHwgJ0RFRkxBVEUnO1xuXG5leHBvcnQgdHlwZSBUaW1lU2VyaWVzRGF0YSA9IHtcbiAgW3RpbWVzdGFtcDogc3RyaW5nXTogTWVhc3VyZW1lbnQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUeXBlQ29uZmlnIHtcbiAgZXh0ZW5zaW9uOiBzdHJpbmc7XG4gIG1pbWVUeXBlOiBzdHJpbmc7XG4gIGFjY2VwdFR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkZXRhaWxzIHVuaXF1ZSBmb3IgYSBtZXJnZWQgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgTWVyZ2VkRXhwb3J0RGV0YWlscyA9IHtcbiAgYWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uT3B0aW9uO1xuICBkYXRlRnJvbTogc3RyaW5nO1xuICBkYXRlVG86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEV4cG9ydGVkRmlsZSA9IHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZmlsZURhdGE6IEJsb2I7XG59O1xuXG5leHBvcnQgdHlwZSBUaW1lU3RhbXAgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFJlYWRpbmdWYWx1ZSA9IG51bWJlcjtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbWluIGFuZCBtYXggdmFsdWVzIGZvciBhIHNwZWNpZmljIHRpbWVzdGFtcC5cbiAqIEJvdGggbWluIGFuZCBtYXggdmFsdWVzIGFyZSBhdmFpbGFibGUgb25seSB3aGVuIHVzaW5nIHNlcmllcyBBUEkuXG4gKi9cbmV4cG9ydCB0eXBlIE1pbk1heFZhbHVlcyA9IHtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHN1cHBvcnRlZCBpbnRlcnZhbCB1bml0cyBhbmQgYWxzb1xuICogdGhlIHBvc3NpYmxlIHBlcmlvZHMgb2YgdGltZSBmb3IgcHJlZGVmaW5lZCByYW5nZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRpbWVSYW5nZUludGVydmFsID0ga2V5b2YgdHlwZW9mIFRJTUVfUkFOR0VfSU5URVJWQUxfVU5JVFNfVkFMVUVTO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVyZ2VkIGV4cG9ydCBjb2x1bW4gaGVhZGVyLFxuICogZS5nLiAnVGVtcGVyYXR1cmUgLSA1IC0+IGM4eV9UZW1wZXJhdHVyZS5UIFvCukNdIChtYXgpJ1xuICovXG50eXBlIENvbHVtbkhlYWRlciA9IHN0cmluZztcbi8qKlxuICogUmVwcmVzZW50cyBhIG1hcHBpbmcgb2YgY29sdW1uIGhlYWRlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICogZS5nLiAnVGVtcGVyYXR1cmUgLSA1IC0+IGM4eV9UZW1wZXJhdHVyZS5UIFvCukNdIChtYXgpJzogMjVcbiAqL1xuZXhwb3J0IHR5cGUgQ29sdW1uVmFsdWVNYXAgPSB7XG4gIFtrZXk6IENvbHVtbkhlYWRlcl06IFJlYWRpbmdWYWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfTU9ERV9MQUJFTFMgPSB7XG4gIEZVTEw6IGdldHRleHQoJ0Z1bGxgZXhwb3J0IHR5cGVgJykgYXMgJ0Z1bGwnLFxuICBDT01QQUNUOiBnZXR0ZXh0KCdDb21wYWN0YGV4cG9ydCB0eXBlYCcpIGFzICdDb21wYWN0J1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFYWNoIGV4cG9ydCB0eXBlIGlzIGJhc2VkIG9uIGEgZGlmZmVyZW50IEFQSTpcbiAqIC0gQ09NUEFDVCAtIHNlcmllc1xuICogLSBGVUxMIC0gbWVhc3VyZW1lbnRzXG4gKiBBbGwgZGlmZmVyZW5jZXMgYmV0d2VlbiBleHBvcnQgbW9kZXM6XG4gKiAgQ29tcGFjdDpcbiAqICAgIFByb2Nlc3NlcyB1cCB0byA1LDAwMCByZWNvcmRzIHBlciBkYXRhIHBvaW50LCBvciB1cCB0byB0aGUgZGF0YSByZXRlbnRpb24gbGltaXQgKEFQSSBsaW1pdClcbiAqICAgIENyZWF0ZXMgYSBzaW5nbGUgbWVyZ2VkIGZpbGUgY29udGFpbmluZyBhbGwgdGhlIGRhdGFcbiAqICAgIFByb3ZpZGVzIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIChBUEkgZmVhdHVyZSlcbiAqICAgIFByZXZpZXcgaXMgbm90IGF2YWlsYWJsZVxuICogICAgU3VwcG9ydHMgb3B0aW9uYWwgZGF0YSBhZ2dyZWdhdGlvbiAoQVBJIGZlYXR1cmUpXG4gKiAgRnVsbDpcbiAqICAgIFByb2Nlc3NlcyB1cCB0byAxLDAwMCwwMDAgcmVjb3JkcyBwZXIgZGF0YSBwb2ludCwgb3IgdXAgdG8gdGhlIGRhdGEgcmV0ZW50aW9uIGxpbWl0IChBUEkgbGltaXQpXG4gKiAgICBGb3IgZXhwb3J0cyBleGNlZWRpbmcgNTAsMDAwIHJlY29yZHMsIGRhdGEgd2lsbCBiZSBzZW50IHZpYSBlbWFpbFxuICogICAgQ3JlYXRlcyBhIGNvbXByZXNzZWQgWklQIGZpbGUgY29udGFpbmluZyBzZXBhcmF0ZSBkYXRhIGZpbGVzIGZvciBlYWNoIHNlbGVjdGVkIGRhdGEgcG9pbnRcbiAqICAgIFByZXZpZXcgaXMgYXZhaWxhYmxlXG4gKiAgICBEb2VzIG5vdCBzdXBwb3J0IGRhdGEgYWdncmVnYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NT0RFX1ZBTFVFUyA9IHtcbiAgZnVsbDogJ0ZVTEwnLFxuICBjb21wYWN0OiAnQ09NUEFDVCdcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBGSUxFX0NPTVBSRVNTSU9OX1RZUEVTX1ZBTFVFUyA9IHtcbiAgc3RvcmU6ICdTVE9SRScsXG4gIGRlZmxhdGU6ICdERUZMQVRFJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRJTUVfUkFOR0VfSU5URVJWQUxfVU5JVFNfVkFMVUVTID0ge1xuICBtaW51dGVzOiAnbWludXRlcycsXG4gIGhvdXJzOiAnaG91cnMnLFxuICBkYXlzOiAnZGF5cycsXG4gIHdlZWtzOiAnd2Vla3MnLFxuICBtb250aHM6ICdtb250aHMnLFxuICBjdXN0b206ICdjdXN0b20nXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX0RBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SID0ge1xuICBFVkVOVFM6IHtcbiAgICBFWFBPUlRfU0VMRUNUT1I6ICdleHBvcnRTZWxlY3RvcidcbiAgfSxcbiAgQ09NUE9ORU5UUzoge1xuICAgIERBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SOiAnZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3InLFxuICAgIERBVEFQT0lOVFNfRVhQT1JUX1NFTEVDVE9SX0ZJTEVfRVhQT1JURVI6ICdkYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci1maWxlLWV4cG9ydGVyJ1xuICB9LFxuICBBQ1RJT05TOiB7XG4gICAgT1BFTl9NT0RBTDogJ29wZW5Nb2RhbCcsXG4gICAgRE9XTkxPQURfU1RBUlRFRDogJ2Rvd25sb2FkU3RhcnRlZCdcbiAgfSxcbiAgRVhQT1JUX0NPTkZJRzoge1xuICAgIEZVTExfRVhQT1JUX1RZUEU6ICdmdWxsRXhwb3J0VHlwZScsXG4gICAgQ09NUEFDVF9FWFBPUlRfVFlQRTogJ2NvbXBhY3RFeHBvcnRUeXBlJ1xuICB9XG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BaseColumn, CellRendererContext, IconDirective } from '@c8y/ngx-components';
|
|
3
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/ngx-components";
|
|
6
|
+
export class IconDeviceGridColumnComponent {
|
|
7
|
+
constructor(context) {
|
|
8
|
+
const propertyAsIconColumn = context.property;
|
|
9
|
+
if (propertyAsIconColumn && typeof propertyAsIconColumn.iconRetriever === 'function') {
|
|
10
|
+
this.icon = propertyAsIconColumn.iconRetriever(context);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.icon = context.value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDeviceGridColumnComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IconDeviceGridColumnComponent, isStandalone: true, selector: "c8y-icon-device-grid-column", ngImport: i0, template: `<i [c8yIcon]="icon"></i>`, isInline: true, dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDeviceGridColumnComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: 'c8y-icon-device-grid-column',
|
|
23
|
+
standalone: true,
|
|
24
|
+
imports: [IconDirective],
|
|
25
|
+
template: `<i [c8yIcon]="icon"></i>`
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: () => [{ type: i1.CellRendererContext }] });
|
|
28
|
+
export class IconDeviceGridColumn extends BaseColumn {
|
|
29
|
+
constructor(options = {}, iconRetriever) {
|
|
30
|
+
super(options);
|
|
31
|
+
this.iconRetriever = iconRetriever;
|
|
32
|
+
this.dataType = "icon" /* ColumnDataType.Icon */;
|
|
33
|
+
this.name = 'icon';
|
|
34
|
+
this.path = 'icon';
|
|
35
|
+
this.filterable = false;
|
|
36
|
+
this.resizable = false;
|
|
37
|
+
this.header = gettext('Icon');
|
|
38
|
+
this.cellRendererComponent = IconDeviceGridColumnComponent;
|
|
39
|
+
Object.assign(this, options);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RldmljZS1ncmlkL2NvbHVtbnMvaWNvbi5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsbUJBQW1CLEVBRW5CLGFBQWEsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBU3RELE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsWUFBWSxPQUE0QjtRQUN0QyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxRQUFnQyxDQUFDO1FBQ3RFLElBQUksb0JBQW9CLElBQUksT0FBTyxvQkFBb0IsQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckYsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OEdBVFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsdUZBRjlCLDBCQUEwQiw0REFEMUIsYUFBYTs7MkZBR1osNkJBQTZCO2tCQU56QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3JDOztBQWFELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ2xELFlBQ0UsVUFBK0IsRUFBRSxFQUMxQixhQUFnRTtRQUV2RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGUixrQkFBYSxHQUFiLGFBQWEsQ0FBbUQ7UUFHdkUsSUFBSSxDQUFDLFFBQVEsbUNBQXNCLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLDZCQUE2QixDQUFDO1FBRTNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUNvbHVtbixcbiAgQ2VsbFJlbmRlcmVyQ29udGV4dCxcbiAgQ29sdW1uRGF0YVR5cGUsXG4gIEljb25EaXJlY3RpdmVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9nZXR0ZXh0JztcbmltcG9ydCB7IFN1cHBvcnRlZEljb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWljb24tZGV2aWNlLWdyaWQtY29sdW1uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ljb25EaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYDxpIFtjOHlJY29uXT1cImljb25cIj48L2k+YFxufSlcbmV4cG9ydCBjbGFzcyBJY29uRGV2aWNlR3JpZENvbHVtbkNvbXBvbmVudCB7XG4gIGljb246IFN1cHBvcnRlZEljb25zO1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBDZWxsUmVuZGVyZXJDb250ZXh0KSB7XG4gICAgY29uc3QgcHJvcGVydHlBc0ljb25Db2x1bW4gPSBjb250ZXh0LnByb3BlcnR5IGFzIEljb25EZXZpY2VHcmlkQ29sdW1uO1xuICAgIGlmIChwcm9wZXJ0eUFzSWNvbkNvbHVtbiAmJiB0eXBlb2YgcHJvcGVydHlBc0ljb25Db2x1bW4uaWNvblJldHJpZXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5pY29uID0gcHJvcGVydHlBc0ljb25Db2x1bW4uaWNvblJldHJpZXZlcihjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pY29uID0gY29udGV4dC52YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEljb25EZXZpY2VHcmlkQ29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8QmFzZUNvbHVtbj4gPSB7fSxcbiAgICBwdWJsaWMgaWNvblJldHJpZXZlcj86IChjb250ZXh0OiBDZWxsUmVuZGVyZXJDb250ZXh0KSA9PiBTdXBwb3J0ZWRJY29uc1xuICApIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLmRhdGFUeXBlID0gQ29sdW1uRGF0YVR5cGUuSWNvbjtcbiAgICB0aGlzLm5hbWUgPSAnaWNvbic7XG4gICAgdGhpcy5wYXRoID0gJ2ljb24nO1xuICAgIHRoaXMuZmlsdGVyYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMucmVzaXphYmxlID0gZmFsc2U7XG4gICAgdGhpcy5oZWFkZXIgPSBnZXR0ZXh0KCdJY29uJyk7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJDb21wb25lbnQgPSBJY29uRGV2aWNlR3JpZENvbHVtbkNvbXBvbmVudDtcblxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -18,4 +18,5 @@ export * from './status.cell-renderer.component';
|
|
|
18
18
|
export * from './status.device-grid-column';
|
|
19
19
|
export * from './system-id.device-grid-column';
|
|
20
20
|
export * from './type.device-grid-column';
|
|
21
|
-
|
|
21
|
+
export * from './icon.cell-renderer.component';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kZXZpY2UtZ3JpZC9jb2x1bW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbGFybXMuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGFybXMuZGV2aWNlLWdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vYWxhcm1zLmhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi11dGlsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cC5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLmRldmljZS1ncmlkLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLmZpbHRlcmluZy1mb3JtLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ltZWkuZGV2aWNlLWdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmFtZS5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3RyYXRpb24tZGF0ZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdHJhdGlvbi1kYXRlLmRldmljZS1ncmlkLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcmlhbC1udW1iZXIuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJpYWwtbnVtYmVyLmRldmljZS1ncmlkLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zeXN0ZW0taWQuZGV2aWNlLWdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9pY29uLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -103,7 +103,7 @@ export class DeviceGridComponent {
|
|
|
103
103
|
let size;
|
|
104
104
|
if (this.childDeviceGrid) {
|
|
105
105
|
const { res, data, paging } = await alertOnError(this.deviceGridService.getChildDeviceData(dataSourceModifier.columns, dataSourceModifier.pagination, this.baseQuery, this.withChildren, this.parentDeviceId));
|
|
106
|
-
filteredSize =
|
|
106
|
+
filteredSize = filteredSize = paging.totalElements;
|
|
107
107
|
size = await alertOnError(this.deviceGridService.getTotalChildDevices(this.baseQuery, this.parentDeviceId));
|
|
108
108
|
serverSideDataResult = {
|
|
109
109
|
res,
|
|
@@ -115,7 +115,7 @@ export class DeviceGridComponent {
|
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
117
|
const { res, data, paging } = await alertOnError(this.deviceGridService.getData(dataSourceModifier.columns, dataSourceModifier.pagination, this.baseQuery, this.withChildren, dataSourceModifier.searchText));
|
|
118
|
-
filteredSize =
|
|
118
|
+
filteredSize = paging.totalElements;
|
|
119
119
|
size = await alertOnError(this.deviceGridService.getTotal(this.baseQuery));
|
|
120
120
|
serverSideDataResult = {
|
|
121
121
|
res,
|
|
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
217
217
|
type: ViewChild,
|
|
218
218
|
args: [DataGridComponent, { static: true }]
|
|
219
219
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2aWNlLWdyaWQvZGV2aWNlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZGV2aWNlLWdyaWQvZGV2aWNlLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxZQUFZLEVBR1osaUJBQWlCLEVBRWpCLG1CQUFtQixFQUVuQixPQUFPLEVBTVAsK0JBQStCLEVBR2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFZMUQsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsMkhBQTJIO0lBQzNILElBQXlCLFdBQVcsQ0FBQyxLQUFpQjtRQUNwRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBNkIsZUFBZSxDQUFDLGNBQTRCO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUNELG9IQUFvSDtJQUNwSCxJQUE2QixlQUFlLENBQUMsS0FBc0I7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQU9ELG9JQUFv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ZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFNTixlQUFlO3NCQURkLEtBQUs7Z0JBR0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLHlCQUF5QjtzQkFBbEMsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQVdQLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBhbGVydE9uRXJyb3IsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEYXRhU291cmNlTW9kaWZpZXIsXG4gIEZpbHRlcmluZ0FjdGlvblR5cGUsXG4gIEZpbHRlcmluZ01vZGlmaWVyLFxuICBnZXR0ZXh0LFxuICBIZWFkZXJBY3Rpb25Db250cm9sLFxuICBMb2FkTW9yZU1vZGUsXG4gIFBhZ2luYXRpb24sXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0UsXG4gIFNlcnZlclNpZGVEYXRhQ2FsbGJhY2ssXG4gIFNlcnZlclNpZGVEYXRhUmVzdWx0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YUNhbGxiYWNrLCBGaWx0ZXJDb25maWcgfSBmcm9tICcuL2RldmljZS1ncmlkLm1vZGVsJztcbmltcG9ydCB7IERldmljZUdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9kZXZpY2UtZ3JpZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRldmljZS1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUFJPRFVDVF9FWFBFUklFTkNFX0VWRU5UX1NPVVJDRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERldmljZUdyaWRDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERldmljZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2Uge1xuICAvKiogT3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gbW9kaWZ5IHNlcnZlciBzaWRlIGRhdGEgcmVzdWx0IGJlZm9yZSBpdCdzIHJlbmRlcmVkLiAqL1xuICBASW5wdXQoKSBkYXRhQ2FsbGJhY2s6IERhdGFDYWxsYmFjaztcbiAgLyoqIFRha2VzIGFuIGV2ZW50IGVtaXR0ZXIuIFdoZW4gYW4gZXZlbnQgaXMgZW1pdHRlZCwgdGhlIGdyaWQgd2lsbCBiZSByZWxvYWRlZC4gKi9cbiAgQElucHV0KCkgcmVmcmVzaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogVGhlIHRpdGxlIGZvciB0aGUgZGF0YSBncmlkLCBpdCdzIGRpc3BsYXllZCBpbiB0aGUgZ3JpZCdzIGhlYWRlci4gKi9cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IGdldHRleHQoJ0RldmljZXMnKTtcbiAgLyoqIFRoZSBsYWJlbCBmb3IgbG9hZCBtb3JlIGJ1dHRvbi4gKi9cbiAgQElucHV0KCkgbG9hZE1vcmVJdGVtc0xhYmVsID0gZ2V0dGV4dCgnTG9hZCBtb3JlIGRldmljZXMnKTtcbiAgLyoqIFRoZSBsYWJlbCBmb3IgbG9hZGluZyBpbmRpY2F0b3IuICovXG4gIEBJbnB1dCgpIGxvYWRpbmdJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkaW5nIGRldmljZXPigKYnKTtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqXG4gICAqIEludGVybmFsIHVzZSBvbmx5OiB1c2VkIHRvIGRlZmluZSB1c2VyIHByZWZlcmVuY2VzIGtleSB1bmRlciB3aGljaCAnQWxsIGRldmljZXMnIGNvbHVtbiBjb25maWcgaXMgc3RvcmVkLlxuICAgKi9cbiAgQElucHV0KCkgbGVnYWN5Q29uZmlnS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKlxuICAgKiBJbnRlcm5hbCB1c2Ugb25seTogdXNlZCB0byBkZWZpbmUgdXNlciBwcmVmZXJlbmNlcyBrZXkgdW5kZXIgd2hpY2ggJ0FsbCBkZXZpY2VzJyBmaWx0ZXIvc29ydGluZyBjb25maWcgaXMgc3RvcmVkLlxuICAgKi9cbiAgQElucHV0KCkgbGVnYWN5RmlsdGVyS2V5OiBzdHJpbmc7XG4gIC8qKiBUaGUgbGlzdCBvZiBjb2x1bW5zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZ3JpZC4gSWYgbm90IGdpdmVuLCBpdCBkZWZhdWx0cyB0byBzdGFuZGFyZCBjb2x1bW5zLiAqL1xuICBASW5wdXQoJ2NvbHVtbnMnKSBjb2x1bW5zOiBDb2x1bW5bXSA9IHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdENvbHVtbnMoKTtcbiAgLyoqIFBhZ2luYXRpb24gc2V0dGluZ3MsIGUuZy4gYWxsb3dzIGZvciBzZXR0aW5nIGN1cnJlbnQgcGFnZSBvciBwYWdlIHNpemUuIElmIG5vdCBnaXZlbiwgZGVmYXVsdHMgdG8gc3RhbmRhcmQgc2V0dGluZ3MuICovXG4gIEBJbnB1dCgncGFnaW5hdGlvbicpIHNldCBfcGFnaW5hdGlvbih2YWx1ZTogUGFnaW5hdGlvbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGluZmluaXRlU2Nyb2xsOiBMb2FkTW9yZU1vZGU7XG4gIC8qKiBTZXRzIGxvYWQgbW9yZSBtb2RlLiAqL1xuICBASW5wdXQoJ2luZmluaXRlU2Nyb2xsJykgc2V0IF9pbmZpbml0ZVNjcm9sbChpbmZpbml0ZVNjcm9sbDogTG9hZE1vcmVNb2RlKSB7XG4gICAgdGhpcy5pbmZpbml0ZVNjcm9sbCA9IGluZmluaXRlU2Nyb2xsO1xuICAgIGlmIChpbmZpbml0ZVNjcm9sbCkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uID0gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRJbmZpbml0ZVNjcm9sbFBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cbiAgLyoqIFNldHMgYWN0aW9uIGNvbnRyb2xzIChhY3Rpb25zIGF2YWlsYWJsZSBmb3IgaW5kaXZpZHVhbCBpdGVtcykuIElmIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gc3RhbmRhcmQgYWN0aW9ucy4gKi9cbiAgQElucHV0KCdhY3Rpb25Db250cm9scycpIHNldCBfYWN0aW9uQ29udHJvbHModmFsdWU6IEFjdGlvbkNvbnRyb2xbXSkge1xuICAgIHRoaXMuYWN0aW9uQ29udHJvbHMgPSB2YWx1ZTtcbiAgfVxuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIGl0ZW1zIGNhbiBiZSBzZWxlY3RlZCBieSBjbGlja2luZyBhIGNoZWNrYm94IGluIHRoZSBmaXJzdCBjb2x1bW4uICovXG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgLyoqIFJlc3RyaWN0cyBzZWxlY3Rpb24gdG8gYSBzaW5nbGUgcm93IG9ubHkuIFNlbGVjdGlvbiBjb2x1bW4gZGlzcGxheXMgcmFkaW8gYnV0dG9uIGluc3RlYWQgb2YgY2hlY2tib3hlcyAqL1xuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgLyoqIFNldHMgdGhlIGJhc2UgcXVlcnkgd2hpY2ggaXMgYXBwZW5kZWQgdG8gdGhlIHJlcXVlc3QgZm9yIGRhdGEuICovXG4gIEBJbnB1dCgpIGJhc2VRdWVyeTogb2JqZWN0ID0ge307XG4gIC8qKiBTZXRzIGJ1bGsgYWN0aW9uIGNvbnRyb2xzIChhY3Rpb25zIGF2YWlsYWJsZSBmb3IgaXRlbXMgc2VsZWN0ZWQgYnkgdXNlcikuIElmIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gc3RhbmRhcmQgYnVsayBhY3Rpb25zLiAqL1xuICBASW5wdXQoJ2J1bGtBY3Rpb25Db250cm9scycpIHNldCBfYnVsa0FjdGlvbkNvbnRyb2xzKHZhbHVlOiBCdWxrQWN0aW9uQ29udHJvbFtdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmJ1bGtBY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1bGtBY3Rpb25Db250cm9scyA9IHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdEJ1bGtBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICAvKiogU2V0cyBoZWFkZXIgYWN0aW9uIGNvbnRyb2xzIChhY3Rpb25zIGF2YWlsYWJsZSBmcm9tIHRoZSBncmlkIGhlYWRlcikuIElmIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gZW1wdHkgbGlzdCBvZiBhY3Rpb25zLiAqL1xuICBASW5wdXQoJ2hlYWRlckFjdGlvbkNvbnRyb2xzJykgc2V0IF9oZWFkZXJBY3Rpb25Db250cm9scyh2YWx1ZTogSGVhZGVyQWN0aW9uQ29udHJvbFtdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmhlYWRlckFjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVhZGVyQWN0aW9uQ29udHJvbHMgPSB0aGlzLmRldmljZUdyaWRTZXJ2aWNlLmdldERlZmF1bHRIZWFkZXJBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBjaGlsZERldmljZUdyaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFyZW50RGV2aWNlSWQ6IHN0cmluZztcbiAgLyoqIFNldHMgdGhlIHdpdGhDaGlsZHJlbiBxdWVyeSB3aGljaCBpcyBhcHBlbmRlZCB0byB0aGUgcmVxdWVzdC4gKi9cbiAgQElucHV0KCkgd2l0aENoaWxkcmVuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBzZWFyY2ggZm9yIGRldmljZXMgd2hlcmUgYW55IGRldmljZSBwcm9wZXJ5IGlzIG1hdGNoZWQgYWdhaW5zIHRoZSBzZWFyY2ggdGVybS5cbiAgICogRW5hYmxlZCBieSBkZWZhdWx0LiBUaGlzIGlucHV0IGRvZXMgbm90IHRha2UgZWZmZWN0IGlmIHRoZSA8Y29kZT5jaGlsZERldmljZUdyaWQ8L2NvZGU+IGlucHV0IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1NlYXJjaCA9IHRydWU7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjbGFzcyBuYW1lIHVzZWQgZm9yIGFjdGl2ZSByb3dzIChsYXN0IGNsaWNrZWQpLlxuICAgKiBTZXQgZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgYXBwZW5kaW5nIGFjdGl2ZSBjbGFzcyB0byBncmlkIHJvd3MuXG4gICAqL1xuICBASW5wdXQoKVxuICBhY3RpdmVDbGFzc05hbWUgPSAnYWN0aXZlJztcbiAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gY29sdW1ucyBjb25maWd1cmF0aW9uIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSBvbkNvbHVtbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb2x1bW5bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtbltdPigpO1xuICBAT3V0cHV0KCkgb25GaWx0ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWx0ZXJDb25maWdbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ1tdPigpO1xuICBAT3V0cHV0KCkgb25EZXZpY2VRdWVyeVN0cmluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gaXRlbXMgc2VsZWN0aW9uIGNoYW5nZXMuIFRoZSBhcnJheSBjb250YWlucyBpZHMgb2Ygc2VsZWN0ZWQgaXRlbXMuICovXG4gIEBPdXRwdXQoKSBpdGVtc1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICBhcHBsaWVkRmlsdGVyczogRmlsdGVyQ29uZmlnW10gPSBbXTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0QnVsa0FjdGlvbkNvbnRyb2xzKCk7XG4gIGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPVxuICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdEhlYWRlckFjdGlvbkNvbnRyb2xzKCk7XG4gIHNlcnZlclNpZGVEYXRhQ2FsbGJhY2s6IFNlcnZlclNpZGVEYXRhQ2FsbGJhY2s7XG5cbiAgQFZpZXdDaGlsZChEYXRhR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZGF0YUdyaWQ6IERhdGFHcmlkQ29tcG9uZW50O1xuICBwcm9kdWN0RXhwZXJpZW5jZUV2ZW50OiBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50O1xuXG4gIG5vUmVzdWx0c01lc3NhZ2UgPSBnZXR0ZXh0KCdObyBtYXRjaGluZyBkZXZpY2VzLicpO1xuICBub0RhdGFNZXNzYWdlID0gZ2V0dGV4dCgnTm8gZGV2aWNlcyB0byBkaXNwbGF5LicpO1xuICBub1Jlc3VsdHNTdWJ0aXRsZSA9IGdldHRleHQoJ1JlZmluZSB5b3VyIHNlYXJjaCB0ZXJtcycpO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRldmljZUdyaWRTZXJ2aWNlOiBEZXZpY2VHcmlkU2VydmljZSkge1xuICAgIHRoaXMuc2VydmVyU2lkZURhdGFDYWxsYmFjayA9IHRoaXMub25EYXRhU291cmNlTW9kaWZpZXIuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICB0cmFja0J5TmFtZShfaW5kZXgsIGNvbHVtbjogQ29sdW1uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgbGV0IHNlcnZlclNpZGVEYXRhUmVzdWx0OiBTZXJ2ZXJTaWRlRGF0YVJlc3VsdDtcbiAgICBsZXQgZmlsdGVyZWRTaXplOiBudW1iZXI7XG4gICAgbGV0IHNpemU6IG51bWJlcjtcbiAgICBpZiAodGhpcy5jaGlsZERldmljZUdyaWQpIHtcbiAgICAgIGNvbnN0IHsgcmVzLCBkYXRhLCBwYWdpbmcgfSA9IGF3YWl0IGFsZXJ0T25FcnJvcihcbiAgICAgICAgdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRDaGlsZERldmljZURhdGEoXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgICAgdGhpcy5iYXNlUXVlcnksXG4gICAgICAgICAgdGhpcy53aXRoQ2hpbGRyZW4sXG4gICAgICAgICAgdGhpcy5wYXJlbnREZXZpY2VJZFxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBmaWx0ZXJlZFNpemUgPSBhd2FpdCBhbGVydE9uRXJyb3IoXG4gICAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0Q291bnRDaGlsZERldmljZXMoXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgICAgdGhpcy5iYXNlUXVlcnksXG4gICAgICAgICAgdGhpcy5wYXJlbnREZXZpY2VJZFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgc2l6ZSA9IGF3YWl0IGFsZXJ0T25FcnJvcihcbiAgICAgICAgdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRUb3RhbENoaWxkRGV2aWNlcyh0aGlzLmJhc2VRdWVyeSwgdGhpcy5wYXJlbnREZXZpY2VJZClcbiAgICAgICk7XG5cbiAgICAgIHNlcnZlclNpZGVEYXRhUmVzdWx0ID0ge1xuICAgICAgICByZXMsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHBhZ2luZyxcbiAgICAgICAgZmlsdGVyZWRTaXplLFxuICAgICAgICBzaXplXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IHJlcywgZGF0YSwgcGFnaW5nIH0gPSBhd2FpdCBhbGVydE9uRXJyb3IoXG4gICAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGF0YShcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbixcbiAgICAgICAgICB0aGlzLmJhc2VRdWVyeSxcbiAgICAgICAgICB0aGlzLndpdGhDaGlsZHJlbixcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuc2VhcmNoVGV4dFxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBmaWx0ZXJlZFNpemUgPSBhd2FpdCBhbGVydE9uRXJyb3IoXG4gICAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0Q291bnQoXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgICAgdGhpcy5iYXNlUXVlcnksXG4gICAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHNpemUgPSBhd2FpdCBhbGVydE9uRXJyb3IodGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRUb3RhbCh0aGlzLmJhc2VRdWVyeSkpO1xuXG4gICAgICBzZXJ2ZXJTaWRlRGF0YVJlc3VsdCA9IHtcbiAgICAgICAgcmVzLFxuICAgICAgICBkYXRhLFxuICAgICAgICBwYWdpbmcsXG4gICAgICAgIGZpbHRlcmVkU2l6ZSxcbiAgICAgICAgc2l6ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ29sdW1uc0NoYW5nZS5lbWl0KGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKTtcbiAgICB0aGlzLm9uRGV2aWNlUXVlcnlTdHJpbmdDaGFuZ2UuZW1pdChcbiAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGV2aWNlUXVlcnlTdHJpbmcoZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsIHRoaXMuYmFzZVF1ZXJ5KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5kYXRhQ2FsbGJhY2spIHtcbiAgICAgIHNlcnZlclNpZGVEYXRhUmVzdWx0ID0gdGhpcy5kYXRhQ2FsbGJhY2soc2VydmVyU2lkZURhdGFSZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiBzZXJ2ZXJTaWRlRGF0YVJlc3VsdDtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmluZyhcbiAgICBjb2x1bW5OYW1lczogc3RyaW5nW10sXG4gICAgYWN0aW9uOiB7XG4gICAgICB0eXBlOiBGaWx0ZXJpbmdBY3Rpb25UeXBlO1xuICAgICAgcGF5bG9hZD86IHsgZmlsdGVyaW5nTW9kaWZpZXI6IEZpbHRlcmluZ01vZGlmaWVyIH07XG4gICAgfVxuICApIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IGFjdGlvbjtcbiAgICBpZiAodHlwZSA9PT0gRmlsdGVyaW5nQWN0aW9uVHlwZS5SZXNldEZpbHRlcikge1xuICAgICAgdGhpcy5kYXRhR3JpZC5jbGVhckZpbHRlcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhR3JpZC51cGRhdGVGaWx0ZXJpbmcoY29sdW1uTmFtZXMsIGFjdGlvbik7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRhdGEtZ3JpZFxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbbG9hZE1vcmVJdGVtc0xhYmVsXT1cImxvYWRNb3JlSXRlbXNMYWJlbFwiXG4gIFtsb2FkaW5nSXRlbXNMYWJlbF09XCJsb2FkaW5nSXRlbXNMYWJlbFwiXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgW2luZmluaXRlU2Nyb2xsXT1cImluZmluaXRlU2Nyb2xsXCJcbiAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gIFtzaW5nbGVTZWxlY3Rpb25dPVwic2luZ2xlU2VsZWN0aW9uXCJcbiAgW2J1bGtBY3Rpb25Db250cm9sc109XCJidWxrQWN0aW9uQ29udHJvbHNcIlxuICBbc2VydmVyU2lkZURhdGFDYWxsYmFja109XCJzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXCJcbiAgKGl0ZW1zU2VsZWN0KT1cIml0ZW1zU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICBbc2hvd1NlYXJjaF09XCJzaG93U2VhcmNoICYmICFjaGlsZERldmljZUdyaWRcIlxuICBbaGVhZGVyQWN0aW9uQ29udHJvbHNdPVwiaGVhZGVyQWN0aW9uQ29udHJvbHNcIlxuICBbYWN0aXZlQ2xhc3NOYW1lXT1cImFjdGl2ZUNsYXNzTmFtZVwiXG4gIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gIGluaGVyaXRcbj5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ2M4eS1kZXZpY2UtbWFuYWdlbWVudCdcIlxuICAgIFt0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzTWVzc2FnZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhTWVzc2FnZSB8IHRyYW5zbGF0ZSlcIlxuICAgIFtzdWJ0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzU3VidGl0bGUgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gICAgKmVtcHR5U3RhdGVDb250ZXh0PVwibGV0IHN0YXRzXCJcbiAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCI+XG4gICAgPGM4eS1jb2x1bW4gW25hbWVdPVwiY29sdW1uLm5hbWVcIj48L2M4eS1jb2x1bW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktZGF0YS1ncmlkPlxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2aWNlLWdyaWQvZGV2aWNlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZGV2aWNlLWdyaWQvZGV2aWNlLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxZQUFZLEVBR1osaUJBQWlCLEVBRWpCLG1CQUFtQixFQUVuQixPQUFPLEVBTVAsK0JBQStCLEVBR2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFZMUQsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsMkhBQTJIO0lBQzNILElBQXlCLFdBQVcsQ0FBQyxLQUFpQjtRQUNwRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBNkIsZUFBZSxDQUFDLGNBQTRCO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUNELG9IQUFvSDtJQUNwSCxJQUE2QixlQUFlLENBQUMsS0FBc0I7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQU9ELG9JQUFv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QUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIGFsZXJ0T25FcnJvcixcbiAgQnVsa0FjdGlvbkNvbnRyb2wsXG4gIENvbHVtbixcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgRmlsdGVyaW5nQWN0aW9uVHlwZSxcbiAgRmlsdGVyaW5nTW9kaWZpZXIsXG4gIGdldHRleHQsXG4gIEhlYWRlckFjdGlvbkNvbnRyb2wsXG4gIExvYWRNb3JlTW9kZSxcbiAgUGFnaW5hdGlvbixcbiAgUHJvZHVjdEV4cGVyaWVuY2VFdmVudCxcbiAgUHJvZHVjdEV4cGVyaWVuY2VFdmVudFNvdXJjZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFX0VWRU5UX1NPVVJDRSxcbiAgU2VydmVyU2lkZURhdGFDYWxsYmFjayxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhQ2FsbGJhY2ssIEZpbHRlckNvbmZpZyB9IGZyb20gJy4vZGV2aWNlLWdyaWQubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlR3JpZFNlcnZpY2UgfSBmcm9tICcuL2RldmljZS1ncmlkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV2aWNlLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGV2aWNlR3JpZENvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUHJvZHVjdEV4cGVyaWVuY2VFdmVudFNvdXJjZSB7XG4gIC8qKiBPcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGFsbG93cyB0byBtb2RpZnkgc2VydmVyIHNpZGUgZGF0YSByZXN1bHQgYmVmb3JlIGl0J3MgcmVuZGVyZWQuICovXG4gIEBJbnB1dCgpIGRhdGFDYWxsYmFjazogRGF0YUNhbGxiYWNrO1xuICAvKiogVGFrZXMgYW4gZXZlbnQgZW1pdHRlci4gV2hlbiBhbiBldmVudCBpcyBlbWl0dGVkLCB0aGUgZ3JpZCB3aWxsIGJlIHJlbG9hZGVkLiAqL1xuICBASW5wdXQoKSByZWZyZXNoOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKiBUaGUgdGl0bGUgZm9yIHRoZSBkYXRhIGdyaWQsIGl0J3MgZGlzcGxheWVkIGluIHRoZSBncmlkJ3MgaGVhZGVyLiAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gZ2V0dGV4dCgnRGV2aWNlcycpO1xuICAvKiogVGhlIGxhYmVsIGZvciBsb2FkIG1vcmUgYnV0dG9uLiAqL1xuICBASW5wdXQoKSBsb2FkTW9yZUl0ZW1zTGFiZWwgPSBnZXR0ZXh0KCdMb2FkIG1vcmUgZGV2aWNlcycpO1xuICAvKiogVGhlIGxhYmVsIGZvciBsb2FkaW5nIGluZGljYXRvci4gKi9cbiAgQElucHV0KCkgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgZGV2aWNlc+KApicpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICpcbiAgICogSW50ZXJuYWwgdXNlIG9ubHk6IHVzZWQgdG8gZGVmaW5lIHVzZXIgcHJlZmVyZW5jZXMga2V5IHVuZGVyIHdoaWNoICdBbGwgZGV2aWNlcycgY29sdW1uIGNvbmZpZyBpcyBzdG9yZWQuXG4gICAqL1xuICBASW5wdXQoKSBsZWdhY3lDb25maWdLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqXG4gICAqIEludGVybmFsIHVzZSBvbmx5OiB1c2VkIHRvIGRlZmluZSB1c2VyIHByZWZlcmVuY2VzIGtleSB1bmRlciB3aGljaCAnQWxsIGRldmljZXMnIGZpbHRlci9zb3J0aW5nIGNvbmZpZyBpcyBzdG9yZWQuXG4gICAqL1xuICBASW5wdXQoKSBsZWdhY3lGaWx0ZXJLZXk6IHN0cmluZztcbiAgLyoqIFRoZSBsaXN0IG9mIGNvbHVtbnMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBncmlkLiBJZiBub3QgZ2l2ZW4sIGl0IGRlZmF1bHRzIHRvIHN0YW5kYXJkIGNvbHVtbnMuICovXG4gIEBJbnB1dCgnY29sdW1ucycpIGNvbHVtbnM6IENvbHVtbltdID0gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAvKiogUGFnaW5hdGlvbiBzZXR0aW5ncywgZS5nLiBhbGxvd3MgZm9yIHNldHRpbmcgY3VycmVudCBwYWdlIG9yIHBhZ2Ugc2l6ZS4gSWYgbm90IGdpdmVuLCBkZWZhdWx0cyB0byBzdGFuZGFyZCBzZXR0aW5ncy4gKi9cbiAgQElucHV0KCdwYWdpbmF0aW9uJykgc2V0IF9wYWdpbmF0aW9uKHZhbHVlOiBQYWdpbmF0aW9uKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgaW5maW5pdGVTY3JvbGw6IExvYWRNb3JlTW9kZTtcbiAgLyoqIFNldHMgbG9hZCBtb3JlIG1vZGUuICovXG4gIEBJbnB1dCgnaW5maW5pdGVTY3JvbGwnKSBzZXQgX2luZmluaXRlU2Nyb2xsKGluZmluaXRlU2Nyb2xsOiBMb2FkTW9yZU1vZGUpIHtcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsID0gaW5maW5pdGVTY3JvbGw7XG4gICAgaWYgKGluZmluaXRlU2Nyb2xsKSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB0aGlzLmRldmljZUdyaWRTZXJ2aWNlLmdldEluZmluaXRlU2Nyb2xsUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuICAvKiogU2V0cyBhY3Rpb24gY29udHJvbHMgKGFjdGlvbnMgYXZhaWxhYmxlIGZvciBpbmRpdmlkdWFsIGl0ZW1zKS4gSWYgbm90IGdpdmVuLCBpdCBkZWZhdWx0cyB0byBzdGFuZGFyZCBhY3Rpb25zLiAqL1xuICBASW5wdXQoJ2FjdGlvbkNvbnRyb2xzJykgc2V0IF9hY3Rpb25Db250cm9scyh2YWx1ZTogQWN0aW9uQ29udHJvbFtdKSB7XG4gICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICB9XG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgaXRlbXMgY2FuIGJlIHNlbGVjdGVkIGJ5IGNsaWNraW5nIGEgY2hlY2tib3ggaW4gdGhlIGZpcnN0IGNvbHVtbi4gKi9cbiAgQElucHV0KCkgc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAvKiogUmVzdHJpY3RzIHNlbGVjdGlvbiB0byBhIHNpbmdsZSByb3cgb25seS4gU2VsZWN0aW9uIGNvbHVtbiBkaXNwbGF5cyByYWRpbyBidXR0b24gaW5zdGVhZCBvZiBjaGVja2JveGVzICovXG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAvKiogU2V0cyB0aGUgYmFzZSBxdWVyeSB3aGljaCBpcyBhcHBlbmRlZCB0byB0aGUgcmVxdWVzdCBmb3IgZGF0YS4gKi9cbiAgQElucHV0KCkgYmFzZVF1ZXJ5OiBvYmplY3QgPSB7fTtcbiAgLyoqIFNldHMgYnVsayBhY3Rpb24gY29udHJvbHMgKGFjdGlvbnMgYXZhaWxhYmxlIGZvciBpdGVtcyBzZWxlY3RlZCBieSB1c2VyKS4gSWYgbm90IGdpdmVuLCBpdCBkZWZhdWx0cyB0byBzdGFuZGFyZCBidWxrIGFjdGlvbnMuICovXG4gIEBJbnB1dCgnYnVsa0FjdGlvbkNvbnRyb2xzJykgc2V0IF9idWxrQWN0aW9uQ29udHJvbHModmFsdWU6IEJ1bGtBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0QnVsa0FjdGlvbkNvbnRyb2xzKCk7XG4gICAgfVxuICB9XG4gIC8qKiBTZXRzIGhlYWRlciBhY3Rpb24gY29udHJvbHMgKGFjdGlvbnMgYXZhaWxhYmxlIGZyb20gdGhlIGdyaWQgaGVhZGVyKS4gSWYgbm90IGdpdmVuLCBpdCBkZWZhdWx0cyB0byBlbXB0eSBsaXN0IG9mIGFjdGlvbnMuICovXG4gIEBJbnB1dCgnaGVhZGVyQWN0aW9uQ29udHJvbHMnKSBzZXQgX2hlYWRlckFjdGlvbkNvbnRyb2xzKHZhbHVlOiBIZWFkZXJBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaGVhZGVyQWN0aW9uQ29udHJvbHMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXJBY3Rpb25Db250cm9scyA9IHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdEhlYWRlckFjdGlvbkNvbnRyb2xzKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGNoaWxkRGV2aWNlR3JpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJlbnREZXZpY2VJZDogc3RyaW5nO1xuICAvKiogU2V0cyB0aGUgd2l0aENoaWxkcmVuIHF1ZXJ5IHdoaWNoIGlzIGFwcGVuZGVkIHRvIHRoZSByZXF1ZXN0LiAqL1xuICBASW5wdXQoKSB3aXRoQ2hpbGRyZW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHNlYXJjaCBmb3IgZGV2aWNlcyB3aGVyZSBhbnkgZGV2aWNlIHByb3BlcnkgaXMgbWF0Y2hlZCBhZ2FpbnMgdGhlIHNlYXJjaCB0ZXJtLlxuICAgKiBFbmFibGVkIGJ5IGRlZmF1bHQuIFRoaXMgaW5wdXQgZG9lcyBub3QgdGFrZSBlZmZlY3QgaWYgdGhlIDxjb2RlPmNoaWxkRGV2aWNlR3JpZDwvY29kZT4gaW5wdXQgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+XG4gICAqL1xuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGNsYXNzIG5hbWUgdXNlZCBmb3IgYWN0aXZlIHJvd3MgKGxhc3QgY2xpY2tlZCkuXG4gICAqIFNldCBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBhcHBlbmRpbmcgYWN0aXZlIGNsYXNzIHRvIGdyaWQgcm93cy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFjdGl2ZUNsYXNzTmFtZSA9ICdhY3RpdmUnO1xuICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiBjb2x1bW5zIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4gKi9cbiAgQE91dHB1dCgpIG9uQ29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPENvbHVtbltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sdW1uW10+KCk7XG4gIEBPdXRwdXQoKSBvbkZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ29uZmlnW10+KCk7XG4gIEBPdXRwdXQoKSBvbkRldmljZVF1ZXJ5U3RyaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiBpdGVtcyBzZWxlY3Rpb24gY2hhbmdlcy4gVGhlIGFycmF5IGNvbnRhaW5zIGlkcyBvZiBzZWxlY3RlZCBpdGVtcy4gKi9cbiAgQE91dHB1dCgpIGl0ZW1zU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gIGFwcGxpZWRGaWx0ZXJzOiBGaWx0ZXJDb25maWdbXSA9IFtdO1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0UGFnaW5hdGlvbigpO1xuICBidWxrQWN0aW9uQ29udHJvbHM6IEJ1bGtBY3Rpb25Db250cm9sW10gPSB0aGlzLmRldmljZUdyaWRTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgaGVhZGVyQWN0aW9uQ29udHJvbHM6IEhlYWRlckFjdGlvbkNvbnRyb2xbXSA9XG4gICAgdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0SGVhZGVyQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogU2VydmVyU2lkZURhdGFDYWxsYmFjaztcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG4gIHByb2R1Y3RFeHBlcmllbmNlRXZlbnQ6IFByb2R1Y3RFeHBlcmllbmNlRXZlbnQ7XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIG1hdGNoaW5nIGRldmljZXMuJyk7XG4gIG5vRGF0YU1lc3NhZ2UgPSBnZXR0ZXh0KCdObyBkZXZpY2VzIHRvIGRpc3BsYXkuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zJyk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlR3JpZFNlcnZpY2U6IERldmljZUdyaWRTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrID0gdGhpcy5vbkRhdGFTb3VyY2VNb2RpZmllci5iaW5kKHRoaXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIGFzeW5jIG9uRGF0YVNvdXJjZU1vZGlmaWVyKFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IFByb21pc2U8U2VydmVyU2lkZURhdGFSZXN1bHQ+IHtcbiAgICBsZXQgc2VydmVyU2lkZURhdGFSZXN1bHQ6IFNlcnZlclNpZGVEYXRhUmVzdWx0O1xuICAgIGxldCBmaWx0ZXJlZFNpemU6IG51bWJlcjtcbiAgICBsZXQgc2l6ZTogbnVtYmVyO1xuICAgIGlmICh0aGlzLmNoaWxkRGV2aWNlR3JpZCkge1xuICAgICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gYXdhaXQgYWxlcnRPbkVycm9yKFxuICAgICAgICB0aGlzLmRldmljZUdyaWRTZXJ2aWNlLmdldENoaWxkRGV2aWNlRGF0YShcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbixcbiAgICAgICAgICB0aGlzLmJhc2VRdWVyeSxcbiAgICAgICAgICB0aGlzLndpdGhDaGlsZHJlbixcbiAgICAgICAgICB0aGlzLnBhcmVudERldmljZUlkXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIGZpbHRlcmVkU2l6ZSA9IGZpbHRlcmVkU2l6ZSA9IHBhZ2luZy50b3RhbEVsZW1lbnRzO1xuICAgICAgc2l6ZSA9IGF3YWl0IGFsZXJ0T25FcnJvcihcbiAgICAgICAgdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRUb3RhbENoaWxkRGV2aWNlcyh0aGlzLmJhc2VRdWVyeSwgdGhpcy5wYXJlbnREZXZpY2VJZClcbiAgICAgICk7XG5cbiAgICAgIHNlcnZlclNpZGVEYXRhUmVzdWx0ID0ge1xuICAgICAgICByZXMsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHBhZ2luZyxcbiAgICAgICAgZmlsdGVyZWRTaXplLFxuICAgICAgICBzaXplXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IHJlcywgZGF0YSwgcGFnaW5nIH0gPSBhd2FpdCBhbGVydE9uRXJyb3IoXG4gICAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGF0YShcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbixcbiAgICAgICAgICB0aGlzLmJhc2VRdWVyeSxcbiAgICAgICAgICB0aGlzLndpdGhDaGlsZHJlbixcbiAgICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuc2VhcmNoVGV4dFxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBmaWx0ZXJlZFNpemUgPSBwYWdpbmcudG90YWxFbGVtZW50cztcbiAgICAgIHNpemUgPSBhd2FpdCBhbGVydE9uRXJyb3IodGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXRUb3RhbCh0aGlzLmJhc2VRdWVyeSkpO1xuXG4gICAgICBzZXJ2ZXJTaWRlRGF0YVJlc3VsdCA9IHtcbiAgICAgICAgcmVzLFxuICAgICAgICBkYXRhLFxuICAgICAgICBwYWdpbmcsXG4gICAgICAgIGZpbHRlcmVkU2l6ZSxcbiAgICAgICAgc2l6ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ29sdW1uc0NoYW5nZS5lbWl0KGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKTtcbiAgICB0aGlzLm9uRGV2aWNlUXVlcnlTdHJpbmdDaGFuZ2UuZW1pdChcbiAgICAgIHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGV2aWNlUXVlcnlTdHJpbmcoZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsIHRoaXMuYmFzZVF1ZXJ5KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5kYXRhQ2FsbGJhY2spIHtcbiAgICAgIHNlcnZlclNpZGVEYXRhUmVzdWx0ID0gdGhpcy5kYXRhQ2FsbGJhY2soc2VydmVyU2lkZURhdGFSZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiBzZXJ2ZXJTaWRlRGF0YVJlc3VsdDtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmluZyhcbiAgICBjb2x1bW5OYW1lczogc3RyaW5nW10sXG4gICAgYWN0aW9uOiB7XG4gICAgICB0eXBlOiBGaWx0ZXJpbmdBY3Rpb25UeXBlO1xuICAgICAgcGF5bG9hZD86IHsgZmlsdGVyaW5nTW9kaWZpZXI6IEZpbHRlcmluZ01vZGlmaWVyIH07XG4gICAgfVxuICApIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IGFjdGlvbjtcbiAgICBpZiAodHlwZSA9PT0gRmlsdGVyaW5nQWN0aW9uVHlwZS5SZXNldEZpbHRlcikge1xuICAgICAgdGhpcy5kYXRhR3JpZC5jbGVhckZpbHRlcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhR3JpZC51cGRhdGVGaWx0ZXJpbmcoY29sdW1uTmFtZXMsIGFjdGlvbik7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRhdGEtZ3JpZFxuICBbdGl0bGVdPVwidGl0bGVcIlxuICBbbG9hZE1vcmVJdGVtc0xhYmVsXT1cImxvYWRNb3JlSXRlbXNMYWJlbFwiXG4gIFtsb2FkaW5nSXRlbXNMYWJlbF09XCJsb2FkaW5nSXRlbXNMYWJlbFwiXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgW2luZmluaXRlU2Nyb2xsXT1cImluZmluaXRlU2Nyb2xsXCJcbiAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gIFtzaW5nbGVTZWxlY3Rpb25dPVwic2luZ2xlU2VsZWN0aW9uXCJcbiAgW2J1bGtBY3Rpb25Db250cm9sc109XCJidWxrQWN0aW9uQ29udHJvbHNcIlxuICBbc2VydmVyU2lkZURhdGFDYWxsYmFja109XCJzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXCJcbiAgKGl0ZW1zU2VsZWN0KT1cIml0ZW1zU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICBbc2hvd1NlYXJjaF09XCJzaG93U2VhcmNoICYmICFjaGlsZERldmljZUdyaWRcIlxuICBbaGVhZGVyQWN0aW9uQ29udHJvbHNdPVwiaGVhZGVyQWN0aW9uQ29udHJvbHNcIlxuICBbYWN0aXZlQ2xhc3NOYW1lXT1cImFjdGl2ZUNsYXNzTmFtZVwiXG4gIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gIGluaGVyaXRcbj5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ2M4eS1kZXZpY2UtbWFuYWdlbWVudCdcIlxuICAgIFt0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzTWVzc2FnZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhTWVzc2FnZSB8IHRyYW5zbGF0ZSlcIlxuICAgIFtzdWJ0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzU3VidGl0bGUgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gICAgKmVtcHR5U3RhdGVDb250ZXh0PVwibGV0IHN0YXRzXCJcbiAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCI+XG4gICAgPGM4eS1jb2x1bW4gW25hbWVdPVwiY29sdW1uLm5hbWVcIj48L2M4eS1jb2x1bW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktZGF0YS1ncmlkPlxuIl19
|