@smartbit4all/ng-client 4.3.15 → 4.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +386 -386
- package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +1 -1
- package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +1 -1
- package/esm2022/lib/component-factory-service/projects.mjs +1 -1
- package/esm2022/lib/session/api/api/api.mjs +1 -1
- package/esm2022/lib/session/api/api/session.service.mjs +1 -1
- package/esm2022/lib/session/api/configuration.mjs +1 -1
- package/esm2022/lib/session/api/encoder.mjs +1 -1
- package/esm2022/lib/session/api/index.mjs +1 -1
- package/esm2022/lib/session/api/model/accountInfo.mjs +1 -1
- package/esm2022/lib/session/api/model/apiError.mjs +1 -1
- package/esm2022/lib/session/api/model/authenticationProviderData.mjs +1 -1
- package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
- package/esm2022/lib/session/api/model/models.mjs +1 -1
- package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +1 -1
- package/esm2022/lib/session/api/model/session.mjs +1 -1
- package/esm2022/lib/session/api/model/sessionInfoData.mjs +1 -1
- package/esm2022/lib/session/api/model/userActivityLog.mjs +1 -1
- package/esm2022/lib/session/api/param.mjs +1 -1
- package/esm2022/lib/session/api/variables.mjs +1 -1
- package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +1 -1
- package/esm2022/lib/session/projects.mjs +1 -1
- package/esm2022/lib/session/smart-error-catching.interceptor.mjs +1 -1
- package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +1 -1
- package/esm2022/lib/session/smart-session-handler.service.mjs +1 -1
- package/esm2022/lib/session/smart-session.module.mjs +1 -1
- package/esm2022/lib/session/smart-session.service.mjs +1 -1
- package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +3 -3
- package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +1 -1
- package/esm2022/lib/shared/projects.mjs +1 -1
- package/esm2022/lib/shared/shared.module.mjs +1 -1
- package/esm2022/lib/shared/smart-tooltip.directive.mjs +1 -1
- package/esm2022/lib/shared/smarttable.date-pipe.mjs +1 -1
- package/esm2022/lib/smart-client/projects.mjs +1 -1
- package/esm2022/lib/smart-client/smart-authentication.service.mjs +1 -1
- package/esm2022/lib/smart-client/smart-component-api-client.mjs +1 -1
- package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +3 -3
- package/esm2022/lib/smart-client/smart.component.mjs +1 -1
- package/esm2022/lib/smart-client/smart.service.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/index.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/param.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/variables.mjs +1 -1
- package/esm2022/lib/smart-component-layout/projects.mjs +1 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +1 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +3 -3
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/index.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/labelText.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/param.mjs +1 -1
- package/esm2022/lib/smart-diagram/api/variables.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +22 -22
- package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +1 -1
- package/esm2022/lib/smart-diagram/projects.mjs +1 -1
- package/esm2022/lib/smart-dialog/projects.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.component.mjs +3 -3
- package/esm2022/lib/smart-dialog/smartdialog.model.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.module.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.service.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +3 -3
- package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/projects.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/model.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/value/model/value.mjs +1 -1
- package/esm2022/lib/smart-filter/projects.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter.model.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter.module.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/project.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +3 -3
- package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/imageProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
- package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +1 -1
- package/esm2022/lib/smart-form/projects.mjs +1 -1
- package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +1 -1
- package/esm2022/lib/smart-form/services/smartform.service.mjs +1 -1
- package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
- package/esm2022/lib/smart-form/smartform.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
- package/esm2022/lib/smart-form/smartform.model.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +61 -26
- package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
- package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +3 -3
- package/esm2022/lib/smart-grid/models/model.mjs +1 -1
- package/esm2022/lib/smart-grid/projects.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +3 -3
- package/esm2022/lib/smart-grid/smart-grid.module.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid.service.mjs +1 -1
- package/esm2022/lib/smart-icon/projects.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +3 -3
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +3 -3
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon.module.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon.service.mjs +1 -1
- package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
- package/esm2022/lib/smart-map/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
- package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-map/api/index.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-map/api/param.mjs +1 -1
- package/esm2022/lib/smart-map/api/variables.mjs +1 -1
- package/esm2022/lib/smart-map/api-default/api-default.mjs +1 -1
- package/esm2022/lib/smart-map/impl/google-map.mjs +1 -1
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +1 -1
- package/esm2022/lib/smart-map/projects.mjs +1 -1
- package/esm2022/lib/smart-map/smart-map.component.mjs +3 -3
- package/esm2022/lib/smart-map/smart-map.module.mjs +1 -1
- package/esm2022/lib/smart-map/smart-map.types.mjs +1 -1
- package/esm2022/lib/smart-navbar/projects.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +3 -3
- package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +1 -1
- package/esm2022/lib/smart-navigation/projects.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +1 -1
- package/esm2022/lib/smart-ng-client.module.mjs +1 -1
- package/esm2022/lib/smart-ng-client.service.mjs +1 -1
- package/esm2022/lib/smart-subject/projects.mjs +1 -1
- package/esm2022/lib/smart-subject/smart-subject.mjs +1 -1
- package/esm2022/lib/smart-tab-group/projects.mjs +1 -1
- package/esm2022/lib/smart-tab-group/smart-tab-group.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
- package/esm2022/lib/smart-tab-group/smart-tab-group.service.mjs +1 -1
- package/esm2022/lib/smart-tab-group/tab-content/tab-content.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/tabTile.model.mjs +1 -1
- package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +3 -3
- package/esm2022/lib/smart-table/components/loading/loading.component.mjs +3 -3
- package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
- package/esm2022/lib/smart-table/projects.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.component.mjs +3 -3
- package/esm2022/lib/smart-table/smarttable.model.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.module.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.service.mjs +1 -1
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/tables/table.mjs +1 -1
- package/esm2022/lib/smart-tree/projects.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
- package/esm2022/lib/smart-tree/smarttree.model.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.module.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.node.model.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.service.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/param.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/variables.mjs +1 -1
- package/esm2022/lib/smart-validation/named-validator.service.mjs +1 -1
- package/esm2022/lib/smart-validation/projects.mjs +1 -1
- package/esm2022/lib/smart-validation/smart-validation.module.mjs +1 -1
- package/esm2022/lib/smart-validation/smart-validation.types.mjs +1 -1
- package/esm2022/lib/view-context/api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/binaryData.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/invocationError.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/api/index.mjs +1 -1
- package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2022/lib/view-context/api/model/link.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/models.mjs +1 -1
- package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +1 -1
- package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +1 -1
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2022/lib/view-context/api/model/style.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uploadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2022/lib/view-context/api/param.mjs +1 -1
- package/esm2022/lib/view-context/api/variables.mjs +1 -1
- package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +3 -3
- package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/projects.mjs +1 -1
- package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
- package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.module.mjs +9 -1
- package/esm2022/lib/view-context/smart-view-context.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +1 -1
- package/esm2022/lib/view-context/utility/componentLibrary.mjs +1 -1
- package/esm2022/lib/view-context/utility/smart-object-utility.mjs +1 -1
- package/esm2022/lib/view-context/utility/smart-style-utility.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api/value.service.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/value-api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/value-api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/value-api/index.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/genericValue.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/models.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/value.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
- package/esm2022/lib/view-context/value-api/param.mjs +1 -1
- package/esm2022/lib/view-context/value-api/variables.mjs +1 -1
- package/esm2022/projects.mjs +1 -1
- package/fesm2022/smartbit4all-ng-client.mjs +183 -140
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +3 -0
- package/lib/view-context/smart-view-context.module.d.ts +20 -18
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.3.17.tgz +0 -0
- package/smartbit4all-ng-client-4.3.15.tgz +0 -0
|
@@ -114,11 +114,11 @@ export class UiActionInputDialogComponent {
|
|
|
114
114
|
return UiActionButtonType;
|
|
115
115
|
}
|
|
116
116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionInputDialogComponent, deps: [{ token: 'textFieldDialogService' }, { token: COMPONENT_LIBRARY }, { token: i1.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionInputDialogComponent, selector: "smart-ui-action-input-dialog", viewQueries: [{ propertyName: "folderFormChild", first: true, predicate: ["form"], descendants: true }], ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionInputDialogComponent, selector: "smart-ui-action-input-dialog", viewQueries: [{ propertyName: "folderFormChild", first: true, predicate: ["form"], descendants: true }], ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\n <div class=\"headerContainer\">\n <h3 class=\"color-accent-700\">\n {{ getTitle() }}\n </h3>\n @if(compLib === componentLibrary.MATERIAL) {\n <button mat-icon-button (click)=\"cancel()\">\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n </button>\n }@else {\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\n }\n </div>\n <p>\n {{ getText() }}\n </p>\n <smartform #form [smartForm]=\"folderForm\"></smartform>\n <div class=\"folderNameDialogButtonsContainer\">\n <ui-action-dialog-button\n [descriptor]=\"getCancelButton()\"\n (click)=\"cancel()\"\n ></ui-action-dialog-button>\n <ui-action-dialog-button\n [descriptor]=\"getActionButton()\"\n [buttonType]=\"UiActionButtonType().RAISED\"\n (click)=\"save()\"\n ></ui-action-dialog-button>\n </div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: i6.UiActionDialogButtonComponent, selector: "ui-action-dialog-button", inputs: ["descriptor", "buttonType"], outputs: ["click"] }] }); }
|
|
118
118
|
}
|
|
119
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionInputDialogComponent, decorators: [{
|
|
120
120
|
type: Component,
|
|
121
|
-
args: [{ selector: 'smart-ui-action-input-dialog', template: "<div class=\"folderNameDialogContainer\">\
|
|
121
|
+
args: [{ selector: 'smart-ui-action-input-dialog', template: "<div class=\"folderNameDialogContainer\">\n <div class=\"headerContainer\">\n <h3 class=\"color-accent-700\">\n {{ getTitle() }}\n </h3>\n @if(compLib === componentLibrary.MATERIAL) {\n <button mat-icon-button (click)=\"cancel()\">\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n </button>\n }@else {\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\n }\n </div>\n <p>\n {{ getText() }}\n </p>\n <smartform #form [smartForm]=\"folderForm\"></smartform>\n <div class=\"folderNameDialogButtonsContainer\">\n <ui-action-dialog-button\n [descriptor]=\"getCancelButton()\"\n (click)=\"cancel()\"\n ></ui-action-dialog-button>\n <ui-action-dialog-button\n [descriptor]=\"getActionButton()\"\n [buttonType]=\"UiActionButtonType().RAISED\"\n (click)=\"save()\"\n ></ui-action-dialog-button>\n </div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
|
|
122
122
|
}], ctorParameters: () => [{ type: i7.UiActionInputDialogService, decorators: [{
|
|
123
123
|
type: Inject,
|
|
124
124
|
args: ['textFieldDialogService']
|
|
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
129
129
|
type: ViewChild,
|
|
130
130
|
args: ['form']
|
|
131
131
|
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUt0QixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUM0QyxPQUFtQyxFQUMzQyxPQUF5QixFQUNuRCxPQUFrQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ25ELFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBUjVDLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBVWxDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQyxZQUFZLENBQUM7SUFDekQsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFlBQVksQ0FBQztJQUN6RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLFNBQTZCLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNqRCxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksSUFBeUIsQ0FBQztRQUM5QixJQUFJLFNBQVMsR0FBK0IsR0FBRyxTQUFTLE1BQU0sQ0FBQztRQUUvRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25FLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBMkI7WUFDcEM7Z0JBQ0UsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSTtnQkFDSixLQUFLLEVBQUUsRUFBRTtnQkFDVCxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRO3dCQUM5QixJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTt3QkFDakMsWUFBWSxFQUFFLG9CQUFvQjtxQkFDbkM7aUJBQ0Y7Z0JBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFdBQVcsSUFBSSxFQUFFO2dCQUNqRSxTQUFTLEVBQUUsSUFBSTthQUNoQjtTQUNGLENBQUM7UUFFRixJQUNFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsVUFBVTtZQUNsRCxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQ3ZDLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUM1RCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FBRztZQUN2QyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQy9CLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdDLElBQUssSUFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFFLElBQWtCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzsrR0F2SFUsNEJBQTRCLGtCQVU3Qix3QkFBd0IsYUFDeEIsaUJBQWlCO21HQVhoQiw0QkFBNEIsNktDekJ6Qyw0K0JBNkJBOzs0RkRKYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsOEJBQThCOzswQkFjckMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLGlCQUFpQjtpRkFWUixlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVWlBY3Rpb25CdXR0b25EZXNjcmlwdG9yLFxyXG4gIFVpQWN0aW9uQnV0dG9uVHlwZSxcclxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgVWlBY3Rpb25JbnB1dFR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vYXBpJztcclxuXHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLnNlcnZpY2UnO1xyXG4vL2ltcG9ydCB7IFNtYXJ0Zm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybSwgU21hcnRWYWxpZGF0b3JOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9hcGkvbW9kZWwvc21hcnRGb3JtV2lkZ2V0VHlwZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL2FwaS9tb2RlbC9zbWFydEZvcm1XaWRnZXREaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3RzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLWlucHV0LWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25JbnB1dERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZm9ybScpIGZvbGRlckZvcm1DaGlsZCE6IGFueTtcclxuICBjb2RlITogc3RyaW5nO1xyXG4gIGZvbGRlckZvcm0hOiBTbWFydEZvcm07XHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7XHJcbiAgZGlhbG9nVHlwZSE6ICdkaWFsb2cnIHwgJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnO1xyXG5cclxuICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ3RleHRGaWVsZERpYWxvZ1NlcnZpY2UnKSBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnksXHJcbiAgICBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY29kZSA9IHRoaXMuc2VydmljZS5hY3Rpb24uY29kZSE7XHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmNhbmNlbCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2V0VXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih0aGlzLnNlcnZpY2UuYWN0aW9uKTtcclxuXHJcbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yW3RoaXMuc2VydmljZS5pbnB1dFR5cGVOYW1lXSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVHlwZSA9IHRoaXMuZGVzY3JpcHRvci5pbnB1dERpYWxvZyA/ICdpbnB1dERpYWxvZycgOiAnZGlhbG9nJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnN0cnVjdEZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS50aXRsZTtcclxuICB9XHJcbiAgZ2V0VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGV4dCA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbkJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuYWN0aW9uQnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FuY2VsQnV0dG9uKCk6IFVpQWN0aW9uQnV0dG9uRGVzY3JpcHRvciB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5jYW5jZWxCdXR0b247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtKCk6IHZvaWQge1xyXG4gICAgbGV0IG1vZGVsOiBhbnkgPSB7fTtcclxuICAgIGxldCBpbnB1dE5hbWU6ICdpbnB1dCcgfCAnaW5wdXQyJztcclxuXHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycpIHtcclxuICAgICAgaW5wdXROYW1lID0gJ2lucHV0JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dDInO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlcnZpY2Uubm9kZU5hbWUpIHtcclxuICAgICAgbW9kZWxbaW5wdXROYW1lXSA9IHRoaXMuc2VydmljZS5ub2RlTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSAnJztcclxuICAgIH1cclxuICAgIGxldCB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlO1xyXG4gICAgbGV0IGlucHV0VHlwZTogJ2lucHV0VHlwZScgfCAnaW5wdXQyVHlwZScgPSBgJHtpbnB1dE5hbWV9VHlwZWA7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VydmljZS5hY3Rpb25baW5wdXRUeXBlXSA9PT0gVWlBY3Rpb25JbnB1dFR5cGUuVEVYVEZJRUxEKSB7XHJcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0eXBlID0gU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgd2lkZ2V0czogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGtleTogaW5wdXROYW1lLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICB2YWxpZGF0b3JzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgbmFtZTogU21hcnRWYWxpZGF0b3JOYW1lLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdFeiBhIG1lesWRIGvDtnRlbGV6xZEnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnBsYWNlaG9sZGVyID8/ICcnLFxyXG4gICAgICAgIHNob3dMYWJlbDogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB3aWRnZXRzWzBdLnR5cGUgPT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCAmJlxyXG4gICAgICB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2tcclxuICAgICkge1xyXG4gICAgICB3aWRnZXRzWzBdLm1hc2sgPSB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2s7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb2xkZXJGb3JtID0ge1xyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IG1vZGVsIH0sXHJcbiAgICAgIHdpZGdldHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpOiB2b2lkIHtcclxuICAgIGxldCBmb3JtID0gdGhpcy5mb2xkZXJGb3JtQ2hpbGQuc3VibWl0Rm9ybSgpO1xyXG4gICAgaWYgKChmb3JtIGFzIFNtYXJ0Rm9ybSkuaW52YWxpZEZpZWxkcykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBmb3JtIGlzIGludmFsaWQhJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKChmb3JtIGFzIFNtYXJ0Rm9ybSkuY29tcG9uZW50TW9kZWw/LmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNhbmNlbCgpO1xyXG4gIH1cclxuXHJcbiAgVWlBY3Rpb25CdXR0b25UeXBlKCk6IHR5cGVvZiBVaUFjdGlvbkJ1dHRvblR5cGUge1xyXG4gICAgcmV0dXJuIFVpQWN0aW9uQnV0dG9uVHlwZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvbGRlck5hbWVEaWFsb2dDb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJjb2xvci1hY2NlbnQtNzAwXCI+XHJcbiAgICAgIHt7IGdldFRpdGxlKCkgfX1cclxuICAgIDwvaDM+XHJcbiAgICBAaWYoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5NQVRFUklBTCkge1xyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIDxzbWFydC1pY29uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbaWNvbl09XCInWCdcIj48L3NtYXJ0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXRpbWVzXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cInRydWVcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxwPlxyXG4gICAge3sgZ2V0VGV4dCgpIH19XHJcbiAgPC9wPlxyXG4gIDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJmb2xkZXJGb3JtXCI+PC9zbWFydGZvcm0+XHJcbiAgPGRpdiBjbGFzcz1cImZvbGRlck5hbWVEaWFsb2dCdXR0b25zQ29udGFpbmVyXCI+XHJcbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cclxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0Q2FuY2VsQnV0dG9uKClcIlxyXG4gICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgPjwvdWktYWN0aW9uLWRpYWxvZy1idXR0b24+XHJcbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cclxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0QWN0aW9uQnV0dG9uKClcIlxyXG4gICAgICBbYnV0dG9uVHlwZV09XCJVaUFjdGlvbkJ1dHRvblR5cGUoKS5SQUlTRURcIlxyXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgID48L3VpLWFjdGlvbi1kaWFsb2ctYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUt0QixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUM0QyxPQUFtQyxFQUMzQyxPQUF5QixFQUNuRCxPQUFrQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQzNDLFlBQU8sR0FB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QU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzsrR0F2SFUsNEJBQTRCLGtCQVU3Qix3QkFBd0IsYUFDeEIsaUJBQWlCO21HQVhoQiw0QkFBNEIsNktDekJ6QyxrN0JBNkJBOzs0RkRKYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsOEJBQThCOzswQkFjckMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLGlCQUFpQjtpRkFWUixlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIFVpQWN0aW9uQnV0dG9uRGVzY3JpcHRvcixcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIFVpQWN0aW9uSW5wdXRUeXBlLFxufSBmcm9tICcuLi8uLi8uLi9hcGknO1xuXG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLnNlcnZpY2UnO1xuLy9pbXBvcnQgeyBTbWFydGZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU21hcnRGb3JtLCBTbWFydFZhbGlkYXRvck5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9hcGkvbW9kZWwvc21hcnRGb3JtV2lkZ2V0VHlwZSc7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpL21vZGVsL3NtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbic7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLWlucHV0LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdmb3JtJykgZm9sZGVyRm9ybUNoaWxkITogYW55O1xuICBjb2RlITogc3RyaW5nO1xuICBmb2xkZXJGb3JtITogU21hcnRGb3JtO1xuICBjb21wb25lbnRMaWJyYXJ5ID0gQ29tcG9uZW50TGlicmFyeTtcbiAgZGlhbG9nVHlwZSE6ICdkaWFsb2cnIHwgJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnO1xuXG4gIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgndGV4dEZpZWxkRGlhbG9nU2VydmljZScpIHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnksXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY29kZSA9IHRoaXMuc2VydmljZS5hY3Rpb24uY29kZSE7XG4gICAgdGhpcy5zZXRVcCgpO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gIH1cblxuICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih0aGlzLnNlcnZpY2UuYWN0aW9uKTtcblxuICAgIGlmICh0aGlzLmRlc2NyaXB0b3JbdGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWVdKSB7XG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaWFsb2dUeXBlID0gdGhpcy5kZXNjcmlwdG9yLmlucHV0RGlhbG9nID8gJ2lucHV0RGlhbG9nJyA6ICdkaWFsb2cnO1xuICAgIH1cblxuICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS50aXRsZTtcbiAgfVxuICBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGV4dCA/PyAnJztcbiAgfVxuXG4gIGdldEFjdGlvbkJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmFjdGlvbkJ1dHRvbjtcbiAgfVxuXG4gIGdldENhbmNlbEJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmNhbmNlbEJ1dHRvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdEZvcm0oKTogdm9pZCB7XG4gICAgbGV0IG1vZGVsOiBhbnkgPSB7fTtcbiAgICBsZXQgaW5wdXROYW1lOiAnaW5wdXQnIHwgJ2lucHV0Mic7XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycpIHtcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dDInO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlcnZpY2Uubm9kZU5hbWUpIHtcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSB0aGlzLnNlcnZpY2Uubm9kZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSAnJztcbiAgICB9XG4gICAgbGV0IHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGU7XG4gICAgbGV0IGlucHV0VHlwZTogJ2lucHV0VHlwZScgfCAnaW5wdXQyVHlwZScgPSBgJHtpbnB1dE5hbWV9VHlwZWA7XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5URVhURklFTEQpIHtcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YO1xuICAgIH1cblxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IGlucHV0TmFtZSxcbiAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICB0eXBlLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHZhbGlkYXRvcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBuYW1lOiBTbWFydFZhbGlkYXRvck5hbWUucmVxdWlyZWQsXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdFeiBhIG1lesWRIGvDtnRlbGV6xZEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnBsYWNlaG9sZGVyID8/ICcnLFxuICAgICAgICBzaG93TGFiZWw6IHRydWUsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB3aWRnZXRzWzBdLnR5cGUgPT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCAmJlxuICAgICAgdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdPy5tYXNrXG4gICAgKSB7XG4gICAgICB3aWRnZXRzWzBdLm1hc2sgPSB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2s7XG4gICAgfVxuXG4gICAgdGhpcy5mb2xkZXJGb3JtID0ge1xuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxuICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogbW9kZWwgfSxcbiAgICAgIHdpZGdldHMsXG4gICAgfTtcbiAgfVxuXG4gIHNhdmUoKTogdm9pZCB7XG4gICAgbGV0IGZvcm0gPSB0aGlzLmZvbGRlckZvcm1DaGlsZC5zdWJtaXRGb3JtKCk7XG4gICAgaWYgKChmb3JtIGFzIFNtYXJ0Rm9ybSkuaW52YWxpZEZpZWxkcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZm9ybSBpcyBpbnZhbGlkIScpO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKChmb3JtIGFzIFNtYXJ0Rm9ybSkuY29tcG9uZW50TW9kZWw/LmRhdGEpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jYW5jZWwoKTtcbiAgfVxuXG4gIFVpQWN0aW9uQnV0dG9uVHlwZSgpOiB0eXBlb2YgVWlBY3Rpb25CdXR0b25UeXBlIHtcbiAgICByZXR1cm4gVWlBY3Rpb25CdXR0b25UeXBlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9sZGVyTmFtZURpYWxvZ0NvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XG4gICAgPGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxuICAgICAge3sgZ2V0VGl0bGUoKSB9fVxuICAgIDwvaDM+XG4gICAgQGlmKGNvbXBMaWIgPT09IGNvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIDxzbWFydC1pY29uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbaWNvbl09XCInWCdcIj48L3NtYXJ0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgfUBlbHNlIHtcbiAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXRpbWVzXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cInRydWVcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxwPlxuICAgIHt7IGdldFRleHQoKSB9fVxuICA8L3A+XG4gIDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJmb2xkZXJGb3JtXCI+PC9zbWFydGZvcm0+XG4gIDxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQnV0dG9uc0NvbnRhaW5lclwiPlxuICAgIDx1aS1hY3Rpb24tZGlhbG9nLWJ1dHRvblxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0Q2FuY2VsQnV0dG9uKClcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICA+PC91aS1hY3Rpb24tZGlhbG9nLWJ1dHRvbj5cbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cbiAgICAgIFtkZXNjcmlwdG9yXT1cImdldEFjdGlvbkJ1dHRvbigpXCJcbiAgICAgIFtidXR0b25UeXBlXT1cIlVpQWN0aW9uQnV0dG9uVHlwZSgpLlJBSVNFRFwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICA+PC91aS1hY3Rpb24tZGlhbG9nLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
56
56
|
type: Inject,
|
|
57
57
|
args: [COMPONENT_LIBRARY]
|
|
58
58
|
}] }, { type: i4.UiActionDescriptorService }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBK0MsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBS25HLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxrQkFBa0I7SUFVaEUsWUFDRSxNQUFpQixFQUNqQixNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsTUFBZ0IsRUFDVyxPQUF5QixFQUM1QyxPQUFrQztRQUUxQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRjlDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBZjVDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QyxhQUFRLEdBQThCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQVl2RSxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBZ0IsRUFBRSxRQUFpQjtRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFVBQVU7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsNEJBQTRCO1NBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQW5EVSwwQkFBMEIsc0hBZTNCLGlCQUFpQjttSEFmaEIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWdCSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVpQWN0aW9uLCBVaUFjdGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuaW1wb3J0IHsgVWlBY3Rpb25JbnB1dERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU21hcnRkaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZGlhbG9nL3NtYXJ0ZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZGlhbG9nL3NtYXJ0ZGlhbG9nLm1vZGVsJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgQ09NUE9ORU5UX0xJQlJBUlksIENvbXBvbmVudExpYnJhcnksIFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm9qZWN0cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvbklucHV0RGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XG4gIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgaW5wdXRUeXBlTmFtZSE6ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJztcbiAgYWN0aW9uITogVWlBY3Rpb247XG4gIG5vZGVOYW1lPzogc3RyaW5nO1xuXG4gIG9uQWN0aW9uOiBTdWJqZWN0PEVkaXRGb2xkZXJBY3Rpb24+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XG4gIHBhcmFtcz86IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICByb3V0ZXI6IFJvdXRlcixcbiAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIGluamVjdDogSW5qZWN0b3IsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgY29tcExpYjogQ29tcG9uZW50TGlicmFyeSxcbiAgICBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZGlhbG9nLCByb3V0ZXIsIGRpYWxvZ1NlcnZpY2UsIGluamVjdCwgY29tcExpYik7XG4gIH1cblxuICBzZXREYXRhQW5kT3BlbkRpYWxvZyhhY3Rpb246IFVpQWN0aW9uLCBub2RlTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgIHRoaXMubm9kZU5hbWUgPSBub2RlTmFtZTtcbiAgICB0aGlzLm9wZW5EaWFsb2coKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbkFjdGlvbiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xuICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgfSxcbiAgICAgIHNpemU6IHt9LFxuICAgICAgY3VzdG9tQ29tcG9uZW50OiBVaUFjdGlvbklucHV0RGlhbG9nQ29tcG9uZW50LFxuICAgIH07XG4gICAgdGhpcy5jcmVhdGVEaWFsb2coZGlhbG9nRGF0YSwgVWlBY3Rpb25JbnB1dERpYWxvZ0NvbXBvbmVudCk7XG4gIH1cblxuICBhc3luYyBvblNhdmUocGFyYW1zOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLm9uQWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgfVxuXG4gIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRGb2xkZXJBY3Rpb24ge1xuICBub2RlSWQ6IHN0cmluZztcbiAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3Q7XG59XG4iXX0=
|
|
@@ -20,14 +20,14 @@ export class FileEditorToolbarComponent extends UiActionToolbarComponent {
|
|
|
20
20
|
await super.fireAction(uiActionModel);
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileEditorToolbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: { dataUri: "dataUri" }, outputs: { actionEvent: "actionEvent" }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: { dataUri: "dataUri" }, outputs: { actionEvent: "actionEvent" }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i3.MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileEditorToolbarComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'file-editor-toolbar', template: "@if (isScrollable && scrollOnWrap) {\
|
|
27
|
+
args: [{ selector: 'file-editor-toolbar', template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"] }]
|
|
28
28
|
}], propDecorators: { dataUri: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}], actionEvent: [{
|
|
31
31
|
type: Output
|
|
32
32
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2ZpbGUtZWRpdG9yLXRvb2xiYXIvZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBUTFFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFMeEU7O1FBUVksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFFcEMsQ0FBQztLQVlOO0lBVlUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUE0QjtRQUNwRCxhQUFhLENBQUMsUUFBUSxHQUFHO1lBQ3ZCLEdBQUcsYUFBYSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFO2dCQUNOLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNO2dCQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdkI7U0FDRixDQUFDO1FBQ0YsTUFBTSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBaEJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDJKQ1R2Qyw0ckRBZ0RBOzs0RkR2Q2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLdEIsT0FBTztzQkFBZixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuLi91aS1hY3Rpb24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWxlLWVkaXRvci10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVFZGl0b3JUb29sYmFyQ29tcG9uZW50IGV4dGVuZHMgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YVVyaSE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgYWN0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsO1xuICB9PigpO1xuXG4gIG92ZXJyaWRlIGFzeW5jIGZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHVpQWN0aW9uTW9kZWwudWlBY3Rpb24gPSB7XG4gICAgICAuLi51aUFjdGlvbk1vZGVsLnVpQWN0aW9uLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIC4uLnVpQWN0aW9uTW9kZWwudWlBY3Rpb24ucGFyYW1zLFxuICAgICAgICBfZGF0YVVyaTogdGhpcy5kYXRhVXJpLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGF3YWl0IHN1cGVyLmZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbCk7XG4gIH1cbn1cbiIsIkBpZiAoaXNTY3JvbGxhYmxlICYmIHNjcm9sbE9uV3JhcCkge1xuICA8dWktYWN0aW9uLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhaXNTY3JvbGxhYmxlXCJcbiAgICBbZGVzY3JpcHRvcl09XCJidXR0b25MZWZ0XCJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxuICAgIChtb3VzZXVwKT1cInN0b3BTY3JvbGwoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcbiAgICAodG91Y2hzdGFydCk9XCJzY3JvbGxTdGFydCgnbGVmdCcpXCJcbiAgICAodG91Y2hlbmQpPVwic3RvcFNjcm9sbCgpXCJcbiAgLz5cbn1cblxuPGRpdiAjY29udGFpbmVyIGNsYXNzPVwidWlBY3Rpb25CdXR0b25zQ29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyBzY3JvbGxhYmxlQ29udGVudDogc2Nyb2xsT25XcmFwIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdWlBY3Rpb25Nb2RlbCBvZiB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgIEBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zICYmIHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICA8dWktdGllcmVkLW1lbnVcbiAgICAgICAgI21lbnVcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPjwvdWktdGllcmVkLW1lbnU+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8dWktYWN0aW9uLWJ1dHRvblxuICAgICAgICBbZGVzY3JpcHRvcl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhXCJcbiAgICAgICAgW2NvZGVdPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5jb2RlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiEhdWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgIFthZGRlZENzc0NsYXNzXT1cInVpQWN0aW9uTW9kZWwuY3NzQ2xhc3NcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgICAoYWN0aW9uRG91YmxlQ2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPlxuICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxuICAgIH1cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuQGlmIChpc1Njcm9sbGFibGUgJiYgc2Nyb2xsT25XcmFwKSB7XG4gIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxuICAgIFtkZXNjcmlwdG9yXT1cImJ1dHRvblJpZ2h0XCJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsUmlnaHQoKVwiXG4gICAgKG1vdXNlZG93bik9XCJzY3JvbGxTdGFydCgncmlnaHQnKVwiXG4gICAgKG1vdXNldXApPVwic3RvcFNjcm9sbCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wU2Nyb2xsKClcIlxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcbiAgICAodG91Y2hlbmQpPVwic3RvcFNjcm9sbCgpXCJcbiAgLz5cbn1cbiJdfQ==
|
package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs
CHANGED
|
@@ -164,11 +164,11 @@ export class UiActionButtonComponent {
|
|
|
164
164
|
return SmartStyleUtility.getNgStyles(style);
|
|
165
165
|
}
|
|
166
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: "disabled", descriptor: "descriptor", code: "code", addedCssClass: "addedCssClass", addBasicClasses: "addBasicClasses" }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: "disabled", descriptor: "descriptor", code: "code", addedCssClass: "addedCssClass", addBasicClasses: "addBasicClasses" }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n\n<ng-template #buttonWithBadge>\n @if (descriptor && descriptor.badge) {\n <ui-badge [descriptor]=\"descriptor.badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if(compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"descriptor.tooltip\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"descriptor.tooltip\"\n [color]=\"descriptor.color\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if(descriptor.iconPosition === iconPosition().PRE){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ descriptor.title }}\n @if(descriptor.iconPosition === iconPosition().POST){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if(descriptor.iconResource){\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\n }@else {\n <smart-icon\n [icon]=\"descriptor.icon\"\n [color]=\"descriptor.iconColor ?? descriptor.color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiBadgeComponent, selector: "ui-badge", inputs: ["descriptor", "inputValue"] }, { kind: "directive", type: i6.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }] }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
|
-
args: [{ selector: 'ui-action-button', template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\
|
|
171
|
+
args: [{ selector: 'ui-action-button', template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n\n<ng-template #buttonWithBadge>\n @if (descriptor && descriptor.badge) {\n <ui-badge [descriptor]=\"descriptor.badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if(compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"descriptor.tooltip\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"descriptor.tooltip\"\n [color]=\"descriptor.color\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if(descriptor.iconPosition === iconPosition().PRE){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ descriptor.title }}\n @if(descriptor.iconPosition === iconPosition().POST){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if(descriptor.iconResource){\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\n }@else {\n <smart-icon\n [icon]=\"descriptor.icon\"\n [color]=\"descriptor.iconColor ?? descriptor.color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"] }]
|
|
172
172
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i7.ComponentLibrary, decorators: [{
|
|
173
173
|
type: Inject,
|
|
174
174
|
args: [COMPONENT_LIBRARY]
|
|
@@ -189,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
189
189
|
}], actionDoubleClick: [{
|
|
190
190
|
type: Output
|
|
191
191
|
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQU90RSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLGNBQWlDLEVBQ0QsT0FBMEI7UUFEMUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBNUJsQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNeEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFLcEMsQ0FBQztRQUNLLHNCQUFpQixHQUFHLElB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O2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuLi91aS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcclxuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVsL3VpQWN0aW9uQnV0dG9uVHlwZSc7XHJcbmltcG9ydCB7IEljb25Qb3NpdGlvbiB9IGZyb20gJy4uLy4uL2FwaS9tb2RlbC9pY29uUG9zaXRpb24nO1xyXG5pbXBvcnQgeyBTdHlsZSwgVWlBY3Rpb24sIFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2FwaSc7XHJcbmltcG9ydCB7IFNtYXJ0U3R5bGVVdGlsaXR5IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9zbWFydC1zdHlsZS11dGlsaXR5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYWN0aW9uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91aS1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVzY3JpcHRvciE6IFVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICBASW5wdXQoKSBjb2RlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFkZGVkQ3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWRkQmFzaWNDbGFzc2VzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudDogTW91c2VFdmVudDtcclxuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgdWlBY3Rpb24/OiBVaUFjdGlvbjtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZXZlbnQ6IGFueTtcclxuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbXBvbmVudExpYnJhcnkgPSBDb21wb25lbnRMaWJyYXJ5O1xyXG4gIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnk7XHJcbiAgbWFpbkFjdGlvbk1vZGVsITogVWlBY3Rpb25Nb2RlbDtcclxuXHJcbiAgcHJlc3NlZEJ1dHRvbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgbWVudU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBAT3B0aW9uYWwoKSBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wTGliID0gY29tcExpYiA/PyBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkc7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kZXNjcmlwdG9yKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnVWlBY3Rpb25CdXR0b25Db21wb25lbnQ6IFwiZGVzY3JpcHRvclwiIGlucHV0IGlzIHJlcXVpcmVkIGJ1dCB3YXMgbm90IHByb3ZpZGVkLidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkZXNjcmlwdG9yJ10gJiYgdGhpcy5kZXNjcmlwdG9yKSB7XHJcbiAgICAgIHRoaXMubWFpbkFjdGlvbk1vZGVsID0ge1xyXG4gICAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcclxuICAgICAgICB1aUFjdGlvbjoge1xyXG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yLFxyXG4gICAgICAgICAgY29kZTogdGhpcy5jb2RlLFxyXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgPz8gZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSBhcyBVaUFjdGlvbk1vZGVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25BY3Rpb25DbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50LCBtb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBldmVudCxcclxuICAgICAgY29kZTogbW9kZWwudWlBY3Rpb24uY29kZSxcclxuICAgICAgZGVzY3JpcHRvcjogbW9kZWwuZGVzY3JpcHRvciEsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQWN0aW9uRG91YmxlQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYWN0aW9uRG91YmxlQ2xpY2suZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBjb2RlOiB0aGlzLmNvZGUsXHJcbiAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBJY29uUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIEljb25Qb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIGlzT25seUljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OIHx8XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCIHx8XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldGJ0bkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuYWRkQmFzaWNDbGFzc2VzKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmNvbG9yKSB7XHJcbiAgICAgIHJldHVybiAncC1idXR0b24tJyArIHRoaXMuZGVzY3JpcHRvcj8uY29sb3IgKyAnIHNiNC0nICsgdGhpcy5kZXNjcmlwdG9yPy5jb2xvcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldFR5cGUoKTogYW55IHtcclxuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuZGVzY3JpcHRvci50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUI6XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmFiJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1pY29uJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5kZXNjcmlwdG9yLnR5cGUpIHtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtYnV0dG9uIHNiNC1ub3JtYWwnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmxhdC1idXR0b24gc2I0LWZsYXQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uIHNiNC1yYWlzZWQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtc3Ryb2tlZC1idXR0b24gc2I0LXN0cm9rZWQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLklDT046XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24gc2I0LWljb24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLW1pbmktZmFiIHNiNC1taW5pZmFiJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmFiIHNiNC1mYWInO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b24gc2I0LWJhc2ljYDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1N0eWxlKHN0eWxlPzogU3R5bGUpOiBhbnkge1xyXG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHN0eWxlKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbldpdGhCYWRnZVwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25XaXRoQmFkZ2U+XHJcbiAgQGlmIChkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuYmFkZ2UpIHtcclxuICA8dWktYmFkZ2UgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5iYWRnZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC91aS1iYWRnZT5cclxuICB9IEBlbHNlIHtcclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxyXG4gIEBpZihjb21wTGliID09PSBjb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuICA8YnV0dG9uXHJcbiAgICBwQnV0dG9uXHJcbiAgICBwUmlwcGxlXHJcbiAgICBbc21hcnRUb29sdGlwXT1cImRlc2NyaXB0b3IudG9vbHRpcFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXHJcbiAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgbWFpbkFjdGlvbk1vZGVsKVwiXHJcbiAgICAoZGJsY2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgW2F1dG9mb2N1c109XCJmYWxzZVwiXHJcbiAgICBbbmdTdHlsZV09XCJjYWxjU3R5bGUoZGVzY3JpcHRvci5zdHlsZSlcIlxyXG4gICAgW25nQ2xhc3NdPVwiZ2V0VHlwZSgpXCJcclxuICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzIH19XCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gID5cclxuICAgIDxkaXYgKm5nSWY9XCJpc09ubHlJY29uKCk7IHRoZW4gYnV0dG9uSWNvbjsgZWxzZSB0ZXh0XCI+PC9kaXY+XHJcbiAgPC9idXR0b24+XHJcbiAgfSBAZWxzZSB7XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWJ1dHRvblxyXG4gICAgW3NtYXJ0VG9vbHRpcF09XCJkZXNjcmlwdG9yLnRvb2x0aXBcIlxyXG4gICAgW2NvbG9yXT1cImRlc2NyaXB0b3IuY29sb3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxyXG4gICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIG1haW5BY3Rpb25Nb2RlbClcIlxyXG4gICAgKGRibGNsaWNrKT1cIm9uQWN0aW9uRG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShkZXNjcmlwdG9yLnN0eWxlKVwiXHJcbiAgICBbbmdDbGFzc109XCJnZXRUeXBlKClcIlxyXG4gICAgY2xhc3M9XCJ7eyBnZXRidG5DbGFzcygpIH19IHt7IGFkZGVkQ3NzQ2xhc3MgfX1cIlxyXG4gICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzT25seUljb24oKTsgdGhlbiBidXR0b25JY29uOyBlbHNlIHRleHRcIj48L2Rpdj5cclxuICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RleHQ+XHJcbiAgQGlmKGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5QUkUpe1xyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25JY29uXCIgLz5cclxuICB9XHJcbiAge3sgZGVzY3JpcHRvci50aXRsZSB9fVxyXG4gIEBpZihkZXNjcmlwdG9yLmljb25Qb3NpdGlvbiA9PT0gaWNvblBvc2l0aW9uKCkuUE9TVCl7XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uSWNvbj5cclxuICBAaWYoZGVzY3JpcHRvci5pY29uUmVzb3VyY2Upe1xyXG4gIDxzbWFydC1pY29uIFtpbWFnZVJlc291cmNlXT1cImRlc2NyaXB0b3IuaWNvblJlc291cmNlXCI+PC9zbWFydC1pY29uPlxyXG4gIH1AZWxzZSB7XHJcbiAgPHNtYXJ0LWljb25cclxuICAgIFtpY29uXT1cImRlc2NyaXB0b3IuaWNvblwiXHJcbiAgICBbY29sb3JdPVwiZGVzY3JpcHRvci5pY29uQ29sb3IgPz8gZGVzY3JpcHRvci5jb2xvclwiXHJcbiAgPjwvc21hcnQtaWNvbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQU90RSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLGNBQWlDLEVBQ0QsT0FBMEI7UUFEMUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBNUJsQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNeEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFLcEMsQ0FBQztRQUNLLHNCQUFpQixHQUFHLElB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O2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uL3VpLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uL3V0aWxpdHkvY29tcG9uZW50TGlicmFyeSc7XG5pbXBvcnQgeyBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWwvdWlBY3Rpb25CdXR0b25UeXBlJztcbmltcG9ydCB7IEljb25Qb3NpdGlvbiB9IGZyb20gJy4uLy4uL2FwaS9tb2RlbC9pY29uUG9zaXRpb24nO1xuaW1wb3J0IHsgU3R5bGUsIFVpQWN0aW9uLCBVaUFjdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgU21hcnRTdHlsZVV0aWxpdHkgfSBmcm9tICcuLi8uLi91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1hY3Rpb24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlc2NyaXB0b3IhOiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gIEBJbnB1dCgpIGNvZGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZGVkQ3NzQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZEJhc2ljQ2xhc3NlczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQ7XG4gICAgZGVzY3JpcHRvcj86IFVpQWN0aW9uRGVzY3JpcHRvcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIHVpQWN0aW9uPzogVWlBY3Rpb247XG4gIH0+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGV2ZW50OiBhbnk7XG4gICAgZGVzY3JpcHRvcj86IFVpQWN0aW9uRGVzY3JpcHRvcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICB9PigpO1xuXG4gIGNvbXBvbmVudExpYnJhcnkgPSBDb21wb25lbnRMaWJyYXJ5O1xuICBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5O1xuICBtYWluQWN0aW9uTW9kZWwhOiBVaUFjdGlvbk1vZGVsO1xuXG4gIHByZXNzZWRCdXR0b25BY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xuICBtZW51T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBAT3B0aW9uYWwoKSBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxuICApIHtcbiAgICB0aGlzLmNvbXBMaWIgPSBjb21wTGliID8/IENvbXBvbmVudExpYnJhcnkuUFJJTUVORztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kZXNjcmlwdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdVaUFjdGlvbkJ1dHRvbkNvbXBvbmVudDogXCJkZXNjcmlwdG9yXCIgaW5wdXQgaXMgcmVxdWlyZWQgYnV0IHdhcyBub3QgcHJvdmlkZWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Rlc2NyaXB0b3InXSAmJiB0aGlzLmRlc2NyaXB0b3IpIHtcbiAgICAgIHRoaXMubWFpbkFjdGlvbk1vZGVsID0ge1xuICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IsXG4gICAgICAgIHVpQWN0aW9uOiB7XG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yLFxuICAgICAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgVWlBY3Rpb25Nb2RlbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIG9uQWN0aW9uQ2xpY2tlZChldmVudDogTW91c2VFdmVudCwgbW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb2RlOiBtb2RlbC51aUFjdGlvbi5jb2RlLFxuICAgICAgZGVzY3JpcHRvcjogbW9kZWwuZGVzY3JpcHRvciEsXG4gICAgfSk7XG4gIH1cblxuICBvbkFjdGlvbkRvdWJsZUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWN0aW9uRG91YmxlQ2xpY2suZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcbiAgICB9KTtcbiAgfVxuXG4gIGljb25Qb3NpdGlvbigpOiB0eXBlb2YgSWNvblBvc2l0aW9uIHtcbiAgICByZXR1cm4gSWNvblBvc2l0aW9uO1xuICB9XG5cbiAgaXNPbmx5SWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTiB8fFxuICAgICAgdGhpcy5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUIgfHxcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxuICAgICk7XG4gIH1cblxuICBnZXRidG5DbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3AtYnV0dG9uLScgKyB0aGlzLmRlc2NyaXB0b3I/LmNvbG9yICsgJyBzYjQtJyArIHRoaXMuZGVzY3JpcHRvcj8uY29sb3I7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFR5cGUoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuYWRkQmFzaWNDbGFzc2VzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZGVzY3JpcHRvci50eXBlKSB7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWZhYic6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWljb24nOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLmRlc2NyaXB0b3IudHlwZSkge1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWJ1dHRvbiBzYjQtbm9ybWFsJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmxhdC1idXR0b24gc2I0LWZsYXQnO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXJhaXNlZC1idXR0b24gc2I0LXJhaXNlZCc7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXN0cm9rZWQtYnV0dG9uIHNiNC1zdHJva2VkJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24gc2I0LWljb24nO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtbWluaS1mYWIgc2I0LW1pbmlmYWInO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWZhYiBzYjQtZmFiJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b24gc2I0LWJhc2ljYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjYWxjU3R5bGUoc3R5bGU/OiBTdHlsZSk6IGFueSB7XG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHN0eWxlKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbldpdGhCYWRnZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbldpdGhCYWRnZT5cbiAgQGlmIChkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuYmFkZ2UpIHtcbiAgPHVpLWJhZGdlIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3IuYmFkZ2VcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC91aS1iYWRnZT5cbiAgfSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxuICBAaWYoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gIDxidXR0b25cbiAgICBwQnV0dG9uXG4gICAgcFJpcHBsZVxuICAgIFtzbWFydFRvb2x0aXBdPVwiZGVzY3JpcHRvci50b29sdGlwXCJcbiAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIG1haW5BY3Rpb25Nb2RlbClcIlxuICAgIChkYmxjbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgW2F1dG9mb2N1c109XCJmYWxzZVwiXG4gICAgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGRlc2NyaXB0b3Iuc3R5bGUpXCJcbiAgICBbbmdDbGFzc109XCJnZXRUeXBlKClcIlxuICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJjb2RlID8/IG51bGxcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cImlzT25seUljb24oKTsgdGhlbiBidXR0b25JY29uOyBlbHNlIHRleHRcIj48L2Rpdj5cbiAgPC9idXR0b24+XG4gIH0gQGVsc2Uge1xuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIFtzbWFydFRvb2x0aXBdPVwiZGVzY3JpcHRvci50b29sdGlwXCJcbiAgICBbY29sb3JdPVwiZGVzY3JpcHRvci5jb2xvclwiXG4gICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCBtYWluQWN0aW9uTW9kZWwpXCJcbiAgICAoZGJsY2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudClcIlxuICAgIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShkZXNjcmlwdG9yLnN0eWxlKVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0VHlwZSgpXCJcbiAgICBjbGFzcz1cInt7IGdldGJ0bkNsYXNzKCkgfX0ge3sgYWRkZWRDc3NDbGFzcyB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiY29kZSA/PyBudWxsXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc09ubHlJY29uKCk7IHRoZW4gYnV0dG9uSWNvbjsgZWxzZSB0ZXh0XCI+PC9kaXY+XG4gIDwvYnV0dG9uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RleHQ+XG4gIEBpZihkZXNjcmlwdG9yLmljb25Qb3NpdGlvbiA9PT0gaWNvblBvc2l0aW9uKCkuUFJFKXtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxuICB9XG4gIHt7IGRlc2NyaXB0b3IudGl0bGUgfX1cbiAgQGlmKGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5QT1NUKXtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbkljb24+XG4gIEBpZihkZXNjcmlwdG9yLmljb25SZXNvdXJjZSl7XG4gIDxzbWFydC1pY29uIFtpbWFnZVJlc291cmNlXT1cImRlc2NyaXB0b3IuaWNvblJlc291cmNlXCI+PC9zbWFydC1pY29uPlxuICB9QGVsc2Uge1xuICA8c21hcnQtaWNvblxuICAgIFtpY29uXT1cImRlc2NyaXB0b3IuaWNvblwiXG4gICAgW2NvbG9yXT1cImRlc2NyaXB0b3IuaWNvbkNvbG9yID8/IGRlc2NyaXB0b3IuY29sb3JcIlxuICA+PC9zbWFydC1pY29uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -289,11 +289,11 @@ export class UiActionToolbarComponent {
|
|
|
289
289
|
return this.toolbarPropertes?.direction === ToolbarDirection.VERTICAL;
|
|
290
290
|
}
|
|
291
291
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionToolbarComponent, deps: [{ token: i1.UiActionService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels", uiActionDescriptorService: "uiActionDescriptorService", id: "id", scrollOnWrap: "scrollOnWrap", toolbarPropertes: "toolbarPropertes" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\
|
|
292
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels", uiActionDescriptorService: "uiActionDescriptorService", id: "id", scrollOnWrap: "scrollOnWrap", toolbarPropertes: "toolbarPropertes" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i4.MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
|
|
293
293
|
}
|
|
294
294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionToolbarComponent, decorators: [{
|
|
295
295
|
type: Component,
|
|
296
|
-
args: [{ selector: 'smart-ui-action-toolbar', template: "@if (isScrollable && scrollOnWrap) {\
|
|
296
|
+
args: [{ selector: 'smart-ui-action-toolbar', template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"] }]
|
|
297
297
|
}], ctorParameters: () => [{ type: i1.UiActionService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i5.ComponentLibrary, decorators: [{
|
|
298
298
|
type: Inject,
|
|
299
299
|
args: [COMPONENT_LIBRARY]
|
|
@@ -314,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
314
314
|
type: HostListener,
|
|
315
315
|
args: ['window:resize']
|
|
316
316
|
}] } });
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBS0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksR0FJYixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFPdkYsTUFBTSxPQUFPLHdCQUF3QjtJQThCbkMsWUFDVSxPQUF3QixFQUN4QixNQUFnQixFQUNqQixjQUFpQyxFQUNOLE9BQXlCO1FBSG5ELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUEvQnJELGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqRCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLGtDQUFrQztRQUV2RSx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFLM0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFRdkMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFJdEIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBVyxHQUFHLENBQUM7UUFFOUIsY0FBUyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBNFNwRCxlQUFVLEdBQXVCO1lBQy9CLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDL0UsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQy9CLENBQUM7UUFFRixnQkFBVyxHQUF1QjtZQUNoQyxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO1lBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlO1lBQ25GLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRztTQUMvQixDQUFDO1FBbFRBLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNOLGtGQUFrRjtRQUNsRixJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1lBQzlDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFDaEUsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUU4QixRQUFRO1FBQ3JDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWSxDQUFDO1lBQzVELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO2dCQUVyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQywyQkFBMkIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUVoRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO2FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksOEJBQThCLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLEtBQUssTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNoRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUV4QyxvRUFBb0U7Z0JBQ3BFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2hDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDMUYsOEJBQThCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyw4QkFBOEIsQ0FBQztZQUVyRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFcEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlLENBQUMsY0FBK0I7UUFDN0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7WUFDdEQsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUV0QyxJQUNFLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ2QsUUFBUSxDQUFDLFFBQVE7Z0JBQ2pCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxlQUFlO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFDM0IsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1RCxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2lCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxhQUFhLENBQUMsUUFBUyxDQUFDLE1BQU0sR0FBRztvQkFDL0IsR0FBRyxhQUFhLENBQUMsUUFBUyxDQUFDLE1BQU07b0JBQ2pDLFNBQVMsRUFBRSxJQUFJO2lCQUNoQixDQUFDO2dCQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXLEVBQUUsQ0FBZ0I7UUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBNEI7UUFDM0MsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzNDLElBQUksT0FBTyxHQUFHO1lBQ1osTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO1lBQzVCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTtTQUNqQyxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQVUsRUFBRSxhQUE0QjtRQUM1RCwyQkFBMkI7UUFFM0IsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBRWpDLElBQUksZUFBZSxHQUFrQjtnQkFDbkMsR0FBRyxhQUFhO2dCQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUTthQUN0RCxDQUFDO1lBRUYsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRXZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVLEVBQUUsYUFBNEI7UUFDNUQsMkJBQTJCO1FBQzNCLGlDQUFpQztJQUNuQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLGFBQTRCO1FBQ3RDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNwQyxPQUFPLFdBQVcsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztRQUN2RCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxDQUFDLGFBQTRCO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3BDLDZFQUE2RTtRQUMvRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlDLGFBQWE7WUFFYix5QkFBeUI7WUFDekI7OztVQUdGO1lBQ0UsUUFBUSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN2QyxLQUFLLGtCQUFrQixDQUFDLE1BQU07b0JBQzVCLE9BQU87d0JBQ0wsZUFBZSxFQUFFLElBQUk7d0JBQ3JCLGtCQUFrQixFQUFFLElBQUk7cUJBQ3pCLENBQUM7Z0JBQ0osS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO29CQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDO2dCQUMvRCxLQUFLLGtCQUFrQixDQUFDLE1BQU07b0JBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQy9ELEtBQUssa0JBQWtCLENBQUMsT0FBTztvQkFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDakUsS0FBSyxrQkFBa0IsQ0FBQyxRQUFRO29CQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3RGO29CQUNFLE9BQU87d0JBQ0wsZUFBZSxFQUFFLElBQUk7d0JBQ3JCLGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCLGtCQUFrQixFQUFFLElBQUk7d0JBQ3hCLG1CQUFtQixFQUFFLElBQUk7cUJBQzFCLENBQUM7WUFDTixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssa0JBQWtCLENBQUMsTUFBTTtvQkFDNUIsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDMUIsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO29CQUMxQixPQUFPLHFCQUFxQixDQUFDO2dCQUMvQixLQUFLLGtCQUFrQixDQUFDLE1BQU07b0JBQzVCLE9BQU8sdUJBQXVCLENBQUM7Z0JBQ2pDLEtBQUssa0JBQWtCLENBQUMsT0FBTztvQkFDN0IsT0FBTyx3QkFBd0IsQ0FBQztnQkFDbEMsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO29CQUMxQixPQUFPLHFCQUFxQixDQUFDO2dCQUMvQixLQUFLLGtCQUFrQixDQUFDLFFBQVE7b0JBQzlCLE9BQU8sa0JBQWtCLENBQUM7Z0JBQzVCLEtBQUssa0JBQWtCLENBQUMsR0FBRztvQkFDekIsT0FBTyxhQUFhLENBQUM7Z0JBQ3ZCO29CQUNFLHVGQUF1RjtvQkFDdkYsT0FBTyxZQUFZLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsYUFBNEI7UUFDckMsT0FBTyxDQUNMLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUk7WUFDMUQsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUssa0JBQWtCLENBQUMsUUFBUTtZQUM5RCxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQXdDO1FBQ3BELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQXFCLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFjO1FBQzVCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYztRQUNoQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7UUFDcEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsU0FBMkI7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFHLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUUxRSxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7WUFDdEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQWtCRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ3hFLENBQUM7K0dBMVZVLHdCQUF3QiwwR0FrQ3pCLGlCQUFpQjttR0FsQ2hCLHdCQUF3QiwyYUNsQ3JDLDh5REFzREE7OzRGRHBCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UseUJBQXlCOzswQkFzQ2hDLE1BQU07MkJBQUMsaUJBQWlCO3lDQWpDZ0IsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVFoQyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBa0R5QixRQUFRO3NCQUF0QyxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBJY29uUG9zaXRpb24sXHJcbiAgVWlBY3Rpb24sXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gIFVpQWN0aW9uVG9vbHRpcFRvb2x0aXBQb3NpdGlvbkVudW0sXHJcbn0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnLi4vYXBpL21vZGVsL3VpQWN0aW9uQnV0dG9uVHlwZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuL3VpLWFjdGlvbi5kZXNjcmlwdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUFjdGlvbk1vZGVsIH0gZnJvbSAnLi91aS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBVaUFjdGlvblNlcnZpY2UgfSBmcm9tICcuL3VpLWFjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ09NUE9ORU5UX0xJQlJBUlksIENvbXBvbmVudExpYnJhcnkgfSBmcm9tICcuLi91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xyXG5pbXBvcnQgeyBUb29sYmFyRGlyZWN0aW9uLCBUb29sYmFyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvYXBpJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLXRvb2xiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7IC8vIEV4cG9zZSB0aGUgZW51bSB0byB0aGUgdGVtcGxhdGVcclxuXHJcbiAgcHJlc3NlZEJ1dHRvbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHVpQWN0aW9uTW9kZWxzPzogVWlBY3Rpb25Nb2RlbFtdO1xyXG4gIEBJbnB1dCgpIHVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U/OiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbE9uV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvb2xiYXJQcm9wZXJ0ZXM/OiBUb29sYmFyUHJvcGVydGllcztcclxuXHJcbiAgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zPzogVWlBY3Rpb25Nb2RlbFtdO1xyXG5cclxuICBwcml2YXRlIG1hbmFnZXIhOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VDaGFuZ2VkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpc1Njcm9sbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxJbnRlcnZhbDogYW55O1xyXG4gIHByaXZhdGUgc2Nyb2xsVGltZW91dDogYW55O1xyXG4gIHByaXZhdGUgc2Nyb2xsU3BlZWQ6IG51bWJlciA9IDU7XHJcbiAgcHJpdmF0ZSBzY3JvbGxEZWxheTogbnVtYmVyID0gMTY7XHJcbiAgcHJpdmF0ZSBzY3JvbGxIb2xkRGVsYXk6IG51bWJlciA9IDEwMDtcclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZXMgPSBuZXcgTWFwPHN0cmluZywgU3Vic2NyaXB0aW9uPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3Q6IEluamVjdG9yLFxyXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIHB1YmxpYyBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5XHJcbiAgKSB7XHJcbiAgICAvLyBJbmplY3RzIHRoZSBiYXNpYyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBBcHBNb2R1bGVcclxuICAgIHRoaXMubWFuYWdlciA9IGluamVjdC5nZXQoVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0xhbmd1YWdlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIE92ZXJyaWRlcyB0aGUgYmFzaWMgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB3aXRoIGEgY3VzdG9tIG9uZSBpZiB0aGVyZSBpcyBvbmVcclxuICAgIGlmICh0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5tYW5hZ2VyID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZVRvTGFuZ3VhZ2VDaGFuZ2UoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMpIHtcclxuICAgICAgdGhpcy5zY3JvbGxPbldyYXAgPSB0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMuc2Nyb2xsYWJsZSA/PyBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JvbGxPbldyYXApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJykgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JvbGxPbldyYXApIHtcclxuICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd1aUFjdGlvbk1vZGVscyddKSB7XHJcbiAgICAgIGxldCB1aUFjdGlvbk1vZGVscyA9IGNoYW5nZXNbJ3VpQWN0aW9uTW9kZWxzJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAodWlBY3Rpb25Nb2RlbHMpIHtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdWlBY3Rpb25Nb2RlbHM7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0VXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyU2NoZWR1bGUoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvTGFuZ3VhZ2VDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMubWFuYWdlci5sYW5ndWFnZUNoYW5nZWRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRVcCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNldFVwKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudWlBY3Rpb25Nb2RlbHMpIHtcclxuICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IHVpQWN0aW9uTW9kZWwgb2YgdGhpcy51aUFjdGlvbk1vZGVscykge1xyXG4gICAgICAgIGNvbnN0IHVpQWN0aW9uID0gdWlBY3Rpb25Nb2RlbC51aUFjdGlvbjtcclxuXHJcbiAgICAgICAgLy8gdXNpbmcgZXF1YWxpdHkgaXMgYSBtdXN0IGhlcmUsIHVuZGVmaW5lZCBhbmQgbnVsbCBzaG91bGQgYmUgZXF1YWxcclxuICAgICAgICBpZiAodGhpcy5pZCA9PSB1aUFjdGlvbi50b29sYmFyKSB7XHJcbiAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih1aUFjdGlvbk1vZGVsLnVpQWN0aW9uKTtcclxuICAgICAgICAgIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucy5wdXNoKHVpQWN0aW9uTW9kZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNjaGVkdWxlQWN0aW9ucyh0aGlzLnVpQWN0aW9uTW9kZWxzKTtcclxuICAgICAgdGhpcy51aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnMgPSB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnM7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja1Njcm9sbGFibGUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclNjaGVkdWxlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY2hlZHVsZXMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnNjaGVkdWxlcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgc2NoZWR1bGVBY3Rpb25zKHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10pIHtcclxuICAgIHRoaXMuY2xlYXJTY2hlZHVsZSgpO1xyXG5cclxuICAgIHVpQWN0aW9uTW9kZWxzLmZvckVhY2goKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpID0+IHtcclxuICAgICAgbGV0IHVpQWN0aW9uID0gdWlBY3Rpb25Nb2RlbC51aUFjdGlvbjtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdWlBY3Rpb24uY29kZSB8fFxyXG4gICAgICAgIHVpQWN0aW9uLmRpc2FibGVkIHx8XHJcbiAgICAgICAgIXVpQWN0aW9uLnNjaGVkdWxlPy5pbnRlcnZhbFNlY29uZHMgfHxcclxuICAgICAgICB0aGlzLnNjaGVkdWxlcy5oYXModWlBY3Rpb24uY29kZSkgfHxcclxuICAgICAgICB1aUFjdGlvbi5zdWJBY3Rpb25zPy5sZW5ndGhcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgaW50ZXJ2YWxJbk1zID0gdWlBY3Rpb24uc2NoZWR1bGUuaW50ZXJ2YWxTZWNvbmRzICogMTAwMDtcclxuICAgICAgbGV0IHN1YiA9IGludGVydmFsKGludGVydmFsSW5NcylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbiEucGFyYW1zID0ge1xyXG4gICAgICAgICAgICAuLi51aUFjdGlvbk1vZGVsLnVpQWN0aW9uIS5wYXJhbXMsXHJcbiAgICAgICAgICAgIHNjaGVkdWxlZDogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5maXJlQWN0aW9uKHVpQWN0aW9uTW9kZWwpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zY2hlZHVsZXMuc2V0KHVpQWN0aW9uLmNvZGUsIHN1Yik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpZHg6IG51bWJlciwgbTogVWlBY3Rpb25Nb2RlbCk6IHN0cmluZyB8IG51bWJlciB7XHJcbiAgICByZXR1cm4gbS51aUFjdGlvbi5jb2RlID8/IGlkeDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZS51aUFjdGlvbk1vZGVsID0gdWlBY3Rpb25Nb2RlbDtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBub2RlSWQ6IHVpQWN0aW9uTW9kZWwubm9kZUlkLFxyXG4gICAgICB3aWRnZXRJZDogdWlBY3Rpb25Nb2RlbC53aWRnZXRJZCxcclxuICAgIH07XHJcblxyXG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbiwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkFjdGlvbkNsaWNrZWQoZXZlbnQ6IGFueSwgdWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUpIHtcclxuICAgICAgdGhpcy5wcmVzc2VkQnV0dG9uQWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICBsZXQgYWN0aW9uVG9FeGVjdXRlOiBVaUFjdGlvbk1vZGVsID0ge1xyXG4gICAgICAgIC4uLnVpQWN0aW9uTW9kZWwsXHJcbiAgICAgICAgdWlBY3Rpb246IGV2ZW50LmNvZGUgPyBldmVudCA6IHVpQWN0aW9uTW9kZWwudWlBY3Rpb24sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmZpcmVBY3Rpb24oYWN0aW9uVG9FeGVjdXRlKTtcclxuXHJcbiAgICAgIHRoaXMucHJlc3NlZEJ1dHRvbkFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbkRvdWJsZUNsaWNrZWQoZXZlbnQ6IGFueSwgdWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IHZvaWQge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAvLyBXZSBkbyBub3QgaGFuZGxlIGRvdWJsZSBjbGlja3NcclxuICB9XHJcbiAgZ2V0YnRuQ2xhc3ModWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IHN0cmluZyB7XHJcbiAgICBpZiAodWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvcikge1xyXG4gICAgICByZXR1cm4gJ3AtYnV0dG9uLScgKyB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LmNvbG9yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBnZXRUeXBlKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBhbnkge1xyXG4gICAgaWYgKCF1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcclxuICAgICAgLy8gY29uc29sZS5sb2coYEFjdGlvbiBidXR0b24gdHlwZSB1bnNldDogJHt1aUFjdGlvbk1vZGVsPy51aUFjdGlvbj8uY29kZX1gKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xyXG4gICAgICAvLyByZXR1cm4gJyc7XHJcblxyXG4gICAgICAvLyAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgIC8qICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXHJcbiAgKi9cclxuICAgICAgc3dpdGNoICh1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLCAncC1idXR0b24tcm91bmRlZCc6IHRydWUgfTtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XHJcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSwgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcclxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxyXG4gICAgICAgICAgcmV0dXJuIHsgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLCAncC1idXR0b24tdGV4dCc6IHRydWUsICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlIH07XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAodWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWJ1dHRvbic7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1mbGF0LWJ1dHRvbic7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VEOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXJhaXNlZC1idXR0b24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtc3Ryb2tlZC1idXR0b24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLklDT046XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLW1pbmktZmFiJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmFiJztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coYFVuaGFuZGxlZCBhY3Rpb24gYnV0dG9uIHR5cGUgY2FzZTogJHt1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGV9YCk7XHJcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b25gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpY29uUG9zaXRpb24oKTogdHlwZW9mIEljb25Qb3NpdGlvbiB7XHJcbiAgICByZXR1cm4gSWNvblBvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgaXNPbmx5SWNvbih1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OIHx8XHJcbiAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCIHx8XHJcbiAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRvb2x0aXBQb3MocG9zPzogVWlBY3Rpb25Ub29sdGlwVG9vbHRpcFBvc2l0aW9uRW51bSk6IFRvb2x0aXBQb3NpdGlvbiB7XHJcbiAgICBpZiAocG9zKSB7XHJcbiAgICAgIHJldHVybiBwb3MudG9Mb3dlckNhc2UoKSBhcyBUb29sdGlwUG9zaXRpb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ2JlZm9yZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUb29sdGlwRGVsYXkoZGVsYXk/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRlbGF5ID8gZGVsYXkgOiAxMDAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcEhpZGVEZWxheShkZWxheT86IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gZGVsYXkgPyBkZWxheSA6IDIwMDA7XHJcbiAgfVxyXG5cclxuICBjaGVja1Njcm9sbGFibGUoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsT25XcmFwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzY3JvbGxhYmxlID0gdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoc2Nyb2xsYWJsZSkge1xyXG4gICAgICB0aGlzLmlzU2Nyb2xsYWJsZSA9IHNjcm9sbGFibGUuc2Nyb2xsV2lkdGggPiBzY3JvbGxhYmxlLmNsaWVudFdpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuICBzY3JvbGxMZWZ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDEwMDtcclxuICB9XHJcblxyXG4gIHNjcm9sbFJpZ2h0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDEwMDtcclxuICB9XHJcblxyXG4gIHNjcm9sbFN0YXJ0KGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IHZvaWQge1xyXG4gICAgdGhpcy5zY3JvbGxUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRlbHRhID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyAtdGhpcy5zY3JvbGxTcGVlZCA6IHRoaXMuc2Nyb2xsU3BlZWQ7XHJcblxyXG4gICAgICB0aGlzLnNjcm9sbEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSBkZWx0YTtcclxuICAgICAgfSwgdGhpcy5zY3JvbGxEZWxheSk7XHJcbiAgICB9LCB0aGlzLnNjcm9sbEhvbGREZWxheSk7XHJcbiAgfVxyXG5cclxuICBzdG9wU2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsVGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaW1lb3V0KTtcclxuICAgICAgdGhpcy5zY3JvbGxUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcm9sbEludGVydmFsKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxJbnRlcnZhbCk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsSW50ZXJ2YWwgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uTGVmdDogVWlBY3Rpb25EZXNjcmlwdG9yID0ge1xyXG4gICAgdGl0bGU6ICcnLFxyXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcclxuICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQsXHJcbiAgICBpY29uOiB0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdjaGV2cm9uLWxlZnQnIDogJ2Fycm93X2JhY2snLFxyXG4gICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gIH07XHJcblxyXG4gIGJ1dHRvblJpZ2h0OiBVaUFjdGlvbkRlc2NyaXB0b3IgPSB7XHJcbiAgICB0aXRsZTogJycsXHJcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRCxcclxuICAgIGljb246IHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2NoZXZyb24tcmlnaHQnIDogJ2Fycm93X2ZvcndhcmQnLFxyXG4gICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gIH07XHJcblxyXG4gIGdldCBpc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclByb3BlcnRlcz8uZGlyZWN0aW9uID09PSBUb29sYmFyRGlyZWN0aW9uLlZFUlRJQ0FMO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGlzU2Nyb2xsYWJsZSAmJiBzY3JvbGxPbldyYXApIHtcclxuICA8dWktYWN0aW9uLWJ1dHRvblxyXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxyXG4gICAgW2Rlc2NyaXB0b3JdPVwiYnV0dG9uTGVmdFwiXHJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcclxuICAgIChtb3VzZWRvd24pPVwic2Nyb2xsU3RhcnQoJ2xlZnQnKVwiXHJcbiAgICAobW91c2V1cCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcclxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxyXG4gICAgKHRvdWNoZW5kKT1cInN0b3BTY3JvbGwoKVwiXHJcbiAgLz5cclxufVxyXG5cclxuPGRpdlxyXG4gICNjb250YWluZXJcclxuICBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgc2Nyb2xsYWJsZUNvbnRlbnQ6IHNjcm9sbE9uV3JhcCxcclxuICAgIHZlcnRpY2FsVG9vbGJhcjogaXNWZXJ0aWNhbCxcclxuICB9XCJcclxuPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgIEBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zICYmIHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIDx1aS10aWVyZWQtbWVudVxyXG4gICAgICAgICNtZW51XHJcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXHJcbiAgICAgICAgW3N1YkFjdGlvbnNdPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zIVwiXHJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcclxuICAgICAgPjwvdWktdGllcmVkLW1lbnU+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPHVpLWFjdGlvbi1idXR0b25cclxuICAgICAgICBbZGVzY3JpcHRvcl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiISF1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmRpc2FibGVkXCJcclxuICAgICAgICBbYWRkZWRDc3NDbGFzc109XCJ1aUFjdGlvbk1vZGVsLmNzc0NsYXNzXCJcclxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxyXG4gICAgICAgIChhY3Rpb25Eb3VibGVDbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXHJcbiAgICAgID5cclxuICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbkBpZiAoaXNTY3JvbGxhYmxlICYmIHNjcm9sbE9uV3JhcCkge1xyXG4gIDx1aS1hY3Rpb24tYnV0dG9uXHJcbiAgICBbZGlzYWJsZWRdPVwiIWlzU2Nyb2xsYWJsZVwiXHJcbiAgICBbZGVzY3JpcHRvcl09XCJidXR0b25SaWdodFwiXHJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsUmlnaHQoKVwiXHJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcclxuICAgIChtb3VzZXVwKT1cInN0b3BTY3JvbGwoKVwiXHJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gICAgKHRvdWNoc3RhcnQpPVwic2Nyb2xsU3RhcnQoJ3JpZ2h0JylcIlxyXG4gICAgKHRvdWNoZW5kKT1cInN0b3BTY3JvbGwoKVwiXHJcbiAgLz5cclxufVxyXG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBS0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksR0FJYixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFPdkYsTUFBTSxPQUFPLHdCQUF3QjtJQThCbkMsWUFDVSxPQUF3QixFQUN4QixNQUFnQixFQUNqQixjQUFpQyxFQUNOLE9BQXlCO1FBSG5ELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUEv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QVE7c0JBQXRDLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IGludGVydmFsLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgSWNvblBvc2l0aW9uLFxuICBVaUFjdGlvbixcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxuICBVaUFjdGlvblRvb2x0aXBUb29sdGlwUG9zaXRpb25FbnVtLFxufSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnLi4vYXBpL21vZGVsL3VpQWN0aW9uQnV0dG9uVHlwZSc7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuL3VpLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBVaUFjdGlvblNlcnZpY2UgfSBmcm9tICcuL3VpLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7IFRvb2xiYXJEaXJlY3Rpb24sIFRvb2xiYXJQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vc21hcnQtY29tcG9uZW50LWxheW91dC9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC11aS1hY3Rpb24tdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb21wb25lbnRMaWJyYXJ5ID0gQ29tcG9uZW50TGlicmFyeTsgLy8gRXhwb3NlIHRoZSBlbnVtIHRvIHRoZSB0ZW1wbGF0ZVxuXG4gIHByZXNzZWRCdXR0b25BY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHVpQWN0aW9uTW9kZWxzPzogVWlBY3Rpb25Nb2RlbFtdO1xuICBASW5wdXQoKSB1aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlPzogVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZTtcbiAgQElucHV0KCkgaWQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNjcm9sbE9uV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0b29sYmFyUHJvcGVydGVzPzogVG9vbGJhclByb3BlcnRpZXM7XG5cbiAgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zPzogVWlBY3Rpb25Nb2RlbFtdO1xuXG4gIHByaXZhdGUgbWFuYWdlciE6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XG4gIHByaXZhdGUgbGFuZ3VhZ2VDaGFuZ2VkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGlzU2Nyb2xsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc2Nyb2xsSW50ZXJ2YWw6IGFueTtcbiAgcHJpdmF0ZSBzY3JvbGxUaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgc2Nyb2xsU3BlZWQ6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgc2Nyb2xsRGVsYXk6IG51bWJlciA9IDE2O1xuICBwcml2YXRlIHNjcm9sbEhvbGREZWxheTogbnVtYmVyID0gMTAwO1xuXG4gIHByaXZhdGUgc2NoZWR1bGVzID0gbmV3IE1hcDxzdHJpbmcsIFN1YnNjcmlwdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdDogSW5qZWN0b3IsXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBwdWJsaWMgY29tcExpYjogQ29tcG9uZW50TGlicmFyeVxuICApIHtcbiAgICAvLyBJbmplY3RzIHRoZSBiYXNpYyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBBcHBNb2R1bGVcbiAgICB0aGlzLm1hbmFnZXIgPSBpbmplY3QuZ2V0KFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVUb0xhbmd1YWdlQ2hhbmdlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBPdmVycmlkZXMgdGhlIGJhc2ljIFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2Ugd2l0aCBhIGN1c3RvbSBvbmUgaWYgdGhlcmUgaXMgb25lXG4gICAgaWYgKHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSkge1xuICAgICAgdGhpcy5tYW5hZ2VyID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0xhbmd1YWdlQ2hhbmdlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25XcmFwID0gdGhpcy50b29sYmFyUHJvcGVydGVzLnNjcm9sbGFibGUgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRVcCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnNjcm9sbE9uV3JhcCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tTY3JvbGxhYmxlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJykgb25SZXNpemUoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsT25XcmFwKSB7XG4gICAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndWlBY3Rpb25Nb2RlbHMnXSkge1xuICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzID0gY2hhbmdlc1sndWlBY3Rpb25Nb2RlbHMnXS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAodWlBY3Rpb25Nb2RlbHMpIHtcbiAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVscyA9IHVpQWN0aW9uTW9kZWxzO1xuXG4gICAgICAgIHRoaXMuc2V0VXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyU2NoZWR1bGUoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9MYW5ndWFnZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMubGFuZ3VhZ2VDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5tYW5hZ2VyLmxhbmd1YWdlQ2hhbmdlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldFVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnVpQWN0aW9uTW9kZWxzKSB7XG4gICAgICBsZXQgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zID0gW107XG4gICAgICBmb3IgKGNvbnN0IHVpQWN0aW9uTW9kZWwgb2YgdGhpcy51aUFjdGlvbk1vZGVscykge1xuICAgICAgICBjb25zdCB1aUFjdGlvbiA9IHVpQWN0aW9uTW9kZWwudWlBY3Rpb247XG5cbiAgICAgICAgLy8gdXNpbmcgZXF1YWxpdHkgaXMgYSBtdXN0IGhlcmUsIHVuZGVmaW5lZCBhbmQgbnVsbCBzaG91bGQgYmUgZXF1YWxcbiAgICAgICAgaWYgKHRoaXMuaWQgPT0gdWlBY3Rpb24udG9vbGJhcikge1xuICAgICAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvciA9IGF3YWl0IHRoaXMubWFuYWdlci5nZXRBY3Rpb25EZXNjcmlwdG9yKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24pO1xuICAgICAgICAgIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucy5wdXNoKHVpQWN0aW9uTW9kZWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlQWN0aW9ucyh0aGlzLnVpQWN0aW9uTW9kZWxzKTtcbiAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zID0gdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja1Njcm9sbGFibGUoKSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlcy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnNjaGVkdWxlcy5jbGVhcigpO1xuICB9XG5cbiAgc2NoZWR1bGVBY3Rpb25zKHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10pIHtcbiAgICB0aGlzLmNsZWFyU2NoZWR1bGUoKTtcblxuICAgIHVpQWN0aW9uTW9kZWxzLmZvckVhY2goKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpID0+IHtcbiAgICAgIGxldCB1aUFjdGlvbiA9IHVpQWN0aW9uTW9kZWwudWlBY3Rpb247XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXVpQWN0aW9uLmNvZGUgfHxcbiAgICAgICAgdWlBY3Rpb24uZGlzYWJsZWQgfHxcbiAgICAgICAgIXVpQWN0aW9uLnNjaGVkdWxlPy5pbnRlcnZhbFNlY29uZHMgfHxcbiAgICAgICAgdGhpcy5zY2hlZHVsZXMuaGFzKHVpQWN0aW9uLmNvZGUpIHx8XG4gICAgICAgIHVpQWN0aW9uLnN1YkFjdGlvbnM/Lmxlbmd0aFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IGludGVydmFsSW5NcyA9IHVpQWN0aW9uLnNjaGVkdWxlLmludGVydmFsU2Vjb25kcyAqIDEwMDA7XG4gICAgICBsZXQgc3ViID0gaW50ZXJ2YWwoaW50ZXJ2YWxJbk1zKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uIS5wYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi51aUFjdGlvbk1vZGVsLnVpQWN0aW9uIS5wYXJhbXMsXG4gICAgICAgICAgICBzY2hlZHVsZWQ6IHRydWUsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMuZmlyZUFjdGlvbih1aUFjdGlvbk1vZGVsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2NoZWR1bGVzLnNldCh1aUFjdGlvbi5jb2RlLCBzdWIpO1xuICAgIH0pO1xuICB9XG5cbiAgdHJhY2tCeUZuKGlkeDogbnVtYmVyLCBtOiBVaUFjdGlvbk1vZGVsKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gbS51aUFjdGlvbi5jb2RlID8/IGlkeDtcbiAgfVxuXG4gIGFzeW5jIGZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXJ2aWNlLnVpQWN0aW9uTW9kZWwgPSB1aUFjdGlvbk1vZGVsO1xuICAgIGxldCBvcHRpb25zID0ge1xuICAgICAgbm9kZUlkOiB1aUFjdGlvbk1vZGVsLm5vZGVJZCxcbiAgICAgIHdpZGdldElkOiB1aUFjdGlvbk1vZGVsLndpZGdldElkLFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZXhlY3V0ZSh1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIG9uQWN0aW9uQ2xpY2tlZChldmVudDogYW55LCB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUpIHtcbiAgICAgIHRoaXMucHJlc3NlZEJ1dHRvbkFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICBsZXQgYWN0aW9uVG9FeGVjdXRlOiBVaUFjdGlvbk1vZGVsID0ge1xuICAgICAgICAuLi51aUFjdGlvbk1vZGVsLFxuICAgICAgICB1aUFjdGlvbjogZXZlbnQuY29kZSA/IGV2ZW50IDogdWlBY3Rpb25Nb2RlbC51aUFjdGlvbixcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHRoaXMuZmlyZUFjdGlvbihhY3Rpb25Ub0V4ZWN1dGUpO1xuXG4gICAgICB0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uRG91YmxlQ2xpY2tlZChldmVudDogYW55LCB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gV2UgZG8gbm90IGhhbmRsZSBkb3VibGUgY2xpY2tzXG4gIH1cbiAgZ2V0YnRuQ2xhc3ModWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IHN0cmluZyB7XG4gICAgaWYgKHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3IpIHtcbiAgICAgIHJldHVybiAncC1idXR0b24tJyArIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3I7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuICBnZXRUeXBlKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBhbnkge1xuICAgIGlmICghdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgQWN0aW9uIGJ1dHRvbiB0eXBlIHVuc2V0OiAke3VpQWN0aW9uTW9kZWw/LnVpQWN0aW9uPy5jb2RlfWApO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wTGliID09PSBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcbiAgICAgIC8vIHJldHVybiAnJztcblxuICAgICAgLy8gJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgLyogICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLFxuICAqL1xuICAgICAgc3dpdGNoICh1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSwgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSwgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuIHsgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSwgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSwgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLCAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSB9O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1idXR0b24nO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GTEFUOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1mbGF0LWJ1dHRvbic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtcmFpc2VkLWJ1dHRvbic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXN0cm9rZWQtYnV0dG9uJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24nO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtbWluaS1mYWInO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWZhYic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coYFVuaGFuZGxlZCBhY3Rpb24gYnV0dG9uIHR5cGUgY2FzZTogJHt1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGV9YCk7XG4gICAgICAgICAgcmV0dXJuIGBtYXQtYnV0dG9uYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpY29uUG9zaXRpb24oKTogdHlwZW9mIEljb25Qb3NpdGlvbiB7XG4gICAgcmV0dXJuIEljb25Qb3NpdGlvbjtcbiAgfVxuXG4gIGlzT25seUljb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OIHx8XG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQiB8fFxuICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuRkFCXG4gICAgKTtcbiAgfVxuXG4gIGdldFRvb2x0aXBQb3MocG9zPzogVWlBY3Rpb25Ub29sdGlwVG9vbHRpcFBvc2l0aW9uRW51bSk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgaWYgKHBvcykge1xuICAgICAgcmV0dXJuIHBvcy50b0xvd2VyQ2FzZSgpIGFzIFRvb2x0aXBQb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdiZWZvcmUnO1xuICAgIH1cbiAgfVxuXG4gIGdldFRvb2x0aXBEZWxheShkZWxheT86IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGRlbGF5ID8gZGVsYXkgOiAxMDAwO1xuICB9XG5cbiAgZ2V0VG9vbHRpcEhpZGVEZWxheShkZWxheT86IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGRlbGF5ID8gZGVsYXkgOiAyMDAwO1xuICB9XG5cbiAgY2hlY2tTY3JvbGxhYmxlKCkge1xuICAgIGlmICghdGhpcy5zY3JvbGxPbldyYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxhYmxlID0gdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHNjcm9sbGFibGUpIHtcbiAgICAgIHRoaXMuaXNTY3JvbGxhYmxlID0gc2Nyb2xsYWJsZS5zY3JvbGxXaWR0aCA+IHNjcm9sbGFibGUuY2xpZW50V2lkdGg7XG4gICAgfVxuICB9XG4gIHNjcm9sbExlZnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDEwMDtcbiAgfVxuXG4gIHNjcm9sbFJpZ2h0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSAxMDA7XG4gIH1cblxuICBzY3JvbGxTdGFydChkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRlbHRhID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyAtdGhpcy5zY3JvbGxTcGVlZCA6IHRoaXMuc2Nyb2xsU3BlZWQ7XG5cbiAgICAgIHRoaXMuc2Nyb2xsSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSBkZWx0YTtcbiAgICAgIH0sIHRoaXMuc2Nyb2xsRGVsYXkpO1xuICAgIH0sIHRoaXMuc2Nyb2xsSG9sZERlbGF5KTtcbiAgfVxuXG4gIHN0b3BTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGltZW91dCk7XG4gICAgICB0aGlzLnNjcm9sbFRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5zY3JvbGxJbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbEludGVydmFsKTtcbiAgICAgIHRoaXMuc2Nyb2xsSW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbkxlZnQ6IFVpQWN0aW9uRGVzY3JpcHRvciA9IHtcbiAgICB0aXRsZTogJycsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxuICAgIGljb246IHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2NoZXZyb24tbGVmdCcgOiAnYXJyb3dfYmFjaycsXG4gICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxuICB9O1xuXG4gIGJ1dHRvblJpZ2h0OiBVaUFjdGlvbkRlc2NyaXB0b3IgPSB7XG4gICAgdGl0bGU6ICcnLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRCxcbiAgICBpY29uOiB0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdjaGV2cm9uLXJpZ2h0JyA6ICdhcnJvd19mb3J3YXJkJyxcbiAgICBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbi5QUkUsXG4gIH07XG5cbiAgZ2V0IGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclByb3BlcnRlcz8uZGlyZWN0aW9uID09PSBUb29sYmFyRGlyZWN0aW9uLlZFUlRJQ0FMO1xuICB9XG59XG4iLCJAaWYgKGlzU2Nyb2xsYWJsZSAmJiBzY3JvbGxPbldyYXApIHtcbiAgPHVpLWFjdGlvbi1idXR0b25cbiAgICBbZGlzYWJsZWRdPVwiIWlzU2Nyb2xsYWJsZVwiXG4gICAgW2Rlc2NyaXB0b3JdPVwiYnV0dG9uTGVmdFwiXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbExlZnQoKVwiXG4gICAgKG1vdXNlZG93bik9XCJzY3JvbGxTdGFydCgnbGVmdCcpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wU2Nyb2xsKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3BTY3JvbGwoKVwiXG4gICAgKHRvdWNoc3RhcnQpPVwic2Nyb2xsU3RhcnQoJ2xlZnQnKVwiXG4gICAgKHRvdWNoZW5kKT1cInN0b3BTY3JvbGwoKVwiXG4gIC8+XG59XG5cbjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgc2Nyb2xsYWJsZUNvbnRlbnQ6IHNjcm9sbE9uV3JhcCB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICBAaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyAmJiB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgPHVpLXRpZXJlZC1tZW51XG4gICAgICAgICNtZW51XG4gICAgICAgIFt0cmlnZ2VyQWN0aW9uXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb25cIlxuICAgICAgICBbc3ViQWN0aW9uc109XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMhXCJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgID48L3VpLXRpZXJlZC1tZW51PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHVpLWFjdGlvbi1idXR0b25cbiAgICAgICAgW2Rlc2NyaXB0b3JdPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIVwiXG4gICAgICAgIFtjb2RlXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uY29kZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhIXVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICBbYWRkZWRDc3NDbGFzc109XCJ1aUFjdGlvbk1vZGVsLmNzc0NsYXNzXCJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgICAgKGFjdGlvbkRvdWJsZUNsaWNrKT1cIm9uQWN0aW9uRG91YmxlQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgID5cbiAgICAgIDwvdWktYWN0aW9uLWJ1dHRvbj5cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbkBpZiAoaXNTY3JvbGxhYmxlICYmIHNjcm9sbE9uV3JhcCkge1xuICA8dWktYWN0aW9uLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhaXNTY3JvbGxhYmxlXCJcbiAgICBbZGVzY3JpcHRvcl09XCJidXR0b25SaWdodFwiXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbFJpZ2h0KClcIlxuICAgIChtb3VzZWRvd24pPVwic2Nyb2xsU3RhcnQoJ3JpZ2h0JylcIlxuICAgIChtb3VzZXVwKT1cInN0b3BTY3JvbGwoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcbiAgICAodG91Y2hzdGFydCk9XCJzY3JvbGxTdGFydCgncmlnaHQnKVwiXG4gICAgKHRvdWNoZW5kKT1cInN0b3BTY3JvbGwoKVwiXG4gIC8+XG59XG4iXX0=
|