@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.21
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/approval-flow/helpers/index.d.ts +1 -1
- package/approval-flow/index.d.ts +2 -2
- package/approval-flow/interfaces/approval-process.d.ts +1 -1
- package/approval-flow/interfaces/index.d.ts +1 -1
- package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
- package/button/button.component.d.ts +4 -1
- package/button/index.d.ts +1 -1
- package/dynamic-page/index.d.ts +5 -5
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
- package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/esm2022/approval-flow/helpers/index.mjs +1 -1
- package/esm2022/approval-flow/index.mjs +3 -3
- package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
- package/esm2022/approval-flow/interfaces/index.mjs +2 -2
- package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
- package/esm2022/button/button.component.mjs +8 -3
- package/esm2022/button/button.module.mjs +1 -1
- package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
- package/esm2022/button/index.mjs +2 -2
- package/esm2022/dynamic-page/constants.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
- package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
- package/esm2022/dynamic-page/index.mjs +6 -6
- package/esm2022/dynamic-page/utils.mjs +1 -1
- package/esm2022/feed-input/feed-input.component.mjs +2 -2
- package/esm2022/feed-input/feed-input.module.mjs +1 -1
- package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/esm2022/feed-input/index.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
- package/esm2022/form/combobox/combobox/combobox.component.mjs +13 -4
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
- package/esm2022/form/combobox/combobox.config.mjs +2 -2
- package/esm2022/form/combobox/combobox.interface.mjs +1 -1
- package/esm2022/form/combobox/combobox.module.mjs +1 -1
- package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
- package/esm2022/form/combobox/index.mjs +1 -1
- package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/errors.mjs +1 -1
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
- package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
- package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
- package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
- package/esm2022/form/form-generator/helpers.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
- package/esm2022/form/form-generator/providers/providers.mjs +1 -1
- package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
- package/esm2022/form/form-group/constants.mjs +1 -1
- package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
- package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
- package/esm2022/form/form-group/form-group.component.mjs +1 -1
- package/esm2022/form/form-group/helpers.mjs +1 -1
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2022/form/form-helpers.mjs +3 -3
- package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
- package/esm2022/form/helpers.mjs +1 -1
- package/esm2022/form/index.mjs +1 -1
- package/esm2022/form/input/fdp-input.module.mjs +1 -1
- package/esm2022/form/input/input.component.mjs +1 -1
- package/esm2022/form/input-group/addon-body.component.mjs +2 -2
- package/esm2022/form/input-group/addon.component.mjs +2 -2
- package/esm2022/form/input-group/constants.mjs +1 -1
- package/esm2022/form/input-group/input-group.component.mjs +1 -1
- package/esm2022/form/input-group/input-group.config.mjs +1 -1
- package/esm2022/form/input-group/input-group.module.mjs +3 -3
- package/esm2022/form/input-group/input.component.mjs +2 -2
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
- package/esm2022/form/models/field.model.mjs +1 -1
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
- package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
- package/esm2022/form/multi-input/index.mjs +2 -2
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
- package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
- package/esm2022/form/select/commons/base-select.mjs +7 -2
- package/esm2022/form/select/models/select.models.mjs +1 -1
- package/esm2022/form/select/select/select.component.mjs +3 -3
- package/esm2022/form/select/select.config.mjs +1 -1
- package/esm2022/form/select/select.module.mjs +1 -1
- package/esm2022/form/step-input/base.step-input.mjs +5 -5
- package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
- package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
- package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input.config.mjs +1 -1
- package/esm2022/form/step-input/step-input.module.mjs +3 -3
- package/esm2022/form/step-input/step-input.util.mjs +1 -1
- package/esm2022/form/switch/switch/index.mjs +1 -1
- package/esm2022/form/switch/switch/switch.component.mjs +1 -1
- package/esm2022/form/switch/switch/switch.config.mjs +1 -1
- package/esm2022/form/switch/switch.module.mjs +1 -1
- package/esm2022/form/text-area/text-area.component.mjs +1 -1
- package/esm2022/form/text-area/text-area.config.mjs +1 -1
- package/esm2022/form/text-area/text-area.module.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/index.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/constants.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
- package/esm2022/icon-tab-bar/index.mjs +8 -8
- package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/types.mjs +1 -1
- package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
- package/esm2022/info-label/index.mjs +1 -1
- package/esm2022/info-label/info-label.component.mjs +1 -1
- package/esm2022/info-label/info-label.module.mjs +1 -1
- package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
- package/esm2022/link/index.mjs +1 -1
- package/esm2022/link/link.component.mjs +3 -3
- package/esm2022/link/link.module.mjs +1 -1
- package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
- package/esm2022/list/base-list-item.mjs +2 -2
- package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
- package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
- package/esm2022/list/fdpListComponent.token.mjs +1 -1
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
- package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
- package/esm2022/list/index.mjs +13 -13
- package/esm2022/list/list-group-footer.component.mjs +3 -3
- package/esm2022/list/list-group-header.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +5 -5
- package/esm2022/list/list.config.mjs +1 -1
- package/esm2022/list/list.module.mjs +1 -1
- package/esm2022/list/load-more-content.directive.mjs +1 -1
- package/esm2022/list/models/list.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
- package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
- package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
- package/esm2022/menu/index.mjs +3 -3
- package/esm2022/menu/menu-item.component.mjs +1 -1
- package/esm2022/menu/menu-trigger.directive.mjs +1 -1
- package/esm2022/menu/menu.component.mjs +1 -1
- package/esm2022/menu/menu.module.mjs +1 -1
- package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
- package/esm2022/menu-button/index.mjs +2 -2
- package/esm2022/menu-button/menu-button.component.mjs +8 -3
- package/esm2022/menu-button/menu-button.module.mjs +1 -1
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
- package/esm2022/message-popover/default-config.mjs +1 -1
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
- package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
- package/esm2022/message-popover/index.mjs +5 -5
- package/esm2022/message-popover/message-popover.component.mjs +2 -2
- package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
- package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
- package/esm2022/message-popover/utils.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
- package/esm2022/object-attribute/index.mjs +1 -1
- package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
- package/esm2022/object-marker/index.mjs +1 -1
- package/esm2022/object-marker/object-marker.component.mjs +8 -3
- package/esm2022/object-marker/object-marker.module.mjs +1 -1
- package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
- package/esm2022/object-status/index.mjs +1 -1
- package/esm2022/object-status/object-status.component.mjs +8 -3
- package/esm2022/object-status/object-status.module.mjs +1 -1
- package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
- package/esm2022/page-footer/index.mjs +1 -1
- package/esm2022/page-footer/page-footer.component.mjs +1 -1
- package/esm2022/page-footer/page-footer.module.mjs +1 -1
- package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
- package/esm2022/panel/index.mjs +3 -3
- package/esm2022/panel/panel-actions.component.mjs +1 -1
- package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
- package/esm2022/panel/panel.component.mjs +1 -1
- package/esm2022/panel/panel.config.mjs +1 -1
- package/esm2022/panel/panel.module.mjs +1 -1
- package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
- package/esm2022/search-field/index.mjs +2 -2
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
- package/esm2022/search-field/search-field.component.mjs +2 -2
- package/esm2022/search-field/search-field.module.mjs +1 -1
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
- package/esm2022/settings-generator/default-config.mjs +1 -1
- package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
- package/esm2022/settings-generator/index.mjs +5 -5
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
- package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings.model.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
- package/esm2022/settings-generator/tokens.mjs +1 -1
- package/esm2022/shared/base.mjs +1 -1
- package/esm2022/shared/domain/array-data-source.mjs +2 -2
- package/esm2022/shared/domain/base-data-provider.mjs +3 -3
- package/esm2022/shared/domain/data-model.mjs +1 -1
- package/esm2022/shared/domain/data-source.mjs +1 -1
- package/esm2022/shared/domain/observable-data-source.mjs +2 -2
- package/esm2022/shared/form/base.input.mjs +1 -1
- package/esm2022/shared/form/collection-base.input.mjs +4 -4
- package/esm2022/shared/form/form-error.mjs +1 -1
- package/esm2022/shared/form/form-field.mjs +1 -1
- package/esm2022/shared/form/form-options.mjs +1 -1
- package/esm2022/shared/form/hint-options.mjs +1 -1
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
- package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
- package/esm2022/shared/index.mjs +4 -4
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
- package/esm2022/shared/pipes/pipe.module.mjs +1 -1
- package/esm2022/shared/platform.config.mjs +1 -1
- package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
- package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
- package/esm2022/shared/testing/event-objects.mjs +1 -1
- package/esm2022/shared/utils/lang.mjs +1 -1
- package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
- package/esm2022/slider/index.mjs +1 -1
- package/esm2022/slider/slider.component.mjs +2 -2
- package/esm2022/slider/slider.module.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
- package/esm2022/smart-filter-bar/constants.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/esm2022/smart-filter-bar/helpers.mjs +1 -1
- package/esm2022/smart-filter-bar/index.mjs +8 -8
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
- package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
- package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
- package/esm2022/split-menu-button/index.mjs +1 -1
- package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
- package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
- package/esm2022/table/components/index.mjs +9 -9
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
- package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
- package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
- package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
- package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
- package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
- package/esm2022/table/index.mjs +15 -15
- package/esm2022/table/table.component.mjs +14 -10
- package/esm2022/table/table.module.mjs +1 -1
- package/esm2022/table-helpers/constants/index.mjs +1 -1
- package/esm2022/table-helpers/constants/tokens.mjs +1 -1
- package/esm2022/table-helpers/directives/index.mjs +7 -7
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
- package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
- package/esm2022/table-helpers/domain/index.mjs +4 -4
- package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
- package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
- package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/index.mjs +4 -4
- package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
- package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
- package/esm2022/table-helpers/helpers.mjs +6 -3
- package/esm2022/table-helpers/index.mjs +9 -9
- package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/index.mjs +3 -4
- package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
- package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
- package/esm2022/table-helpers/models/directives.mjs +1 -1
- package/esm2022/table-helpers/models/dnd.mjs +1 -1
- package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/index.mjs +15 -15
- package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
- package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
- package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/index.mjs +1 -1
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
- package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
- package/esm2022/table-helpers/services/table.service.mjs +1 -1
- package/esm2022/table-helpers/table-cell.class.mjs +1 -1
- package/esm2022/table-helpers/table-column.mjs +1 -1
- package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
- package/esm2022/table-helpers/table.mjs +1 -1
- package/esm2022/table-helpers/utils.mjs +1 -1
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
- package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
- package/esm2022/value-help-dialog/constans/index.mjs +1 -1
- package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
- package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
- package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
- package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/esm2022/value-help-dialog/index.mjs +4 -3
- package/esm2022/value-help-dialog/models/index.mjs +2 -2
- package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
- package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
- package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/esm2022/variant-management/index.mjs +4 -4
- package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
- package/esm2022/variant-management/models/variant-management.mjs +1 -1
- package/esm2022/variant-management/models/variant.interface.mjs +1 -1
- package/esm2022/variant-management/tokens.mjs +1 -1
- package/esm2022/variant-management/variant-item.class.mjs +1 -1
- package/esm2022/variant-management/variant-management.component.mjs +2 -2
- package/esm2022/variant-management/variant-management.module.mjs +1 -1
- package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
- package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
- package/esm2022/wizard-generator/index.mjs +10 -10
- package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
- package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
- package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
- package/feed-input/index.d.ts +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +889 -889
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +2729 -2716
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +13 -13
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +20 -20
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +365 -360
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +182 -98
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +177 -177
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +41 -41
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/combobox/combobox.config.d.ts +1 -1
- package/form/date-picker/date-picker.component.d.ts +5 -5
- package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
- package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
- package/form/form-generator/form-generator.service.d.ts +2 -2
- package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
- package/form/form-group/services/form-field-layout.service.d.ts +1 -1
- package/form/form-helpers.d.ts +1 -1
- package/form/input-group/addon.component.d.ts +1 -1
- package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
- package/form/multi-input/index.d.ts +1 -1
- package/form/multi-input/multi-input.config.d.ts +1 -1
- package/form/select/commons/base-select.d.ts +4 -1
- package/form/step-input/base.step-input.d.ts +4 -5
- package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
- package/icon-tab-bar/index.d.ts +7 -7
- package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
- package/list/index.d.ts +12 -12
- package/menu/index.d.ts +2 -2
- package/menu-button/index.d.ts +1 -1
- package/menu-button/menu-button.component.d.ts +5 -2
- package/message-popover/index.d.ts +4 -4
- package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
- package/message-popover/models/message-popover.interface.d.ts +1 -1
- package/message-popover/utils.d.ts +1 -1
- package/object-marker/object-marker.component.d.ts +4 -1
- package/object-status/object-status.component.d.ts +4 -1
- package/package.json +4 -4
- package/panel/index.d.ts +2 -2
- package/schematics/ng-add/index.js +1 -1
- package/search-field/index.d.ts +1 -1
- package/settings-generator/index.d.ts +4 -4
- package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
- package/settings-generator/settings-generator.service.d.ts +2 -2
- package/shared/domain/array-data-source.d.ts +0 -3
- package/shared/form/collection-base.input.d.ts +1 -1
- package/shared/form/form-field.d.ts +2 -2
- package/shared/form/hint-options.d.ts +2 -2
- package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
- package/shared/index.d.ts +3 -3
- package/smart-filter-bar/index.d.ts +7 -7
- package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
- package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
- package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
- package/split-menu-button/split-menu-button.component.d.ts +5 -2
- package/table/components/index.d.ts +8 -8
- package/table/components/table-view-settings-dialog/index.d.ts +2 -2
- package/table/index.d.ts +14 -14
- package/table/table.component.d.ts +4 -0
- package/table-helpers/constants/index.d.ts +1 -1
- package/table-helpers/directives/index.d.ts +6 -6
- package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
- package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
- package/table-helpers/domain/array-data-source.d.ts +3 -3
- package/table-helpers/domain/index.d.ts +3 -3
- package/table-helpers/domain/observable-data-source.d.ts +3 -3
- package/table-helpers/enums/index.d.ts +3 -3
- package/table-helpers/helpers.d.ts +1 -1
- package/table-helpers/index.d.ts +8 -8
- package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
- package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
- package/table-helpers/interfaces/index.d.ts +2 -3
- package/table-helpers/models/filter-change-event.model.d.ts +1 -1
- package/table-helpers/models/group-change-event.model.d.ts +1 -1
- package/table-helpers/models/index.d.ts +14 -14
- package/table-helpers/models/sort-change-event.model.d.ts +1 -1
- package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
- package/table-helpers/table.d.ts +1 -0
- package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
- package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
- package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
- package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
- package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
- package/value-help-dialog/index.d.ts +3 -2
- package/value-help-dialog/models/index.d.ts +1 -1
- package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
- package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
- package/variant-management/index.d.ts +3 -3
- package/variant-management/models/variant-management.d.ts +1 -1
- package/wizard-generator/base-wizard-generator.d.ts +1 -1
- package/wizard-generator/index.d.ts +9 -9
- package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
- package/wizard-generator/wizard-generator.service.d.ts +1 -1
- package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
- package/schematics/ng-add/index.ts +0 -64
- package/schematics/ng-add/schema.ts +0 -3
- package/schematics/utils/package-utils.ts +0 -104
|
@@ -5,4 +5,4 @@ export const smartFilterBarProvider = {
|
|
|
5
5
|
provide: SmartFilterBar,
|
|
6
6
|
useExisting: forwardRef(() => SmartFilterBarComponent)
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc21hcnQtZmlsdGVyLWJhci9wcm92aWRlcnMvc21hcnQtZmlsdGVyLWJhci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBYTtJQUM1QyxPQUFPLEVBQUUsY0FBYztJQUN2QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0NBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXIgfSBmcm9tICcuLi9zbWFydC1maWx0ZXItYmFyLmNsYXNzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3Qgc21hcnRGaWx0ZXJCYXJQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogU21hcnRGaWx0ZXJCYXIsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRGaWx0ZXJCYXJDb21wb25lbnQpXG59O1xuIl19
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
17
17
|
}], presetChanged: [{
|
|
18
18
|
type: Output
|
|
19
19
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc21hcnQtZmlsdGVyLWJhci9zbWFydC1maWx0ZXItYmFyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXZFLE1BQU0sT0FBZ0IsY0FBYztJQURwQztRQWVJLHVEQUF1RDtRQUV2RCxTQUFJLEdBQUcsd0JBQXdCLENBQUM7UUFFaEMsMEVBQTBFO1FBRTFFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7S0FDbkU7OEdBckJxQixjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRG5DLFNBQVM7OEJBaUJOLElBQUk7c0JBREgsS0FBSztnQkFLTixhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBQcmVzZXRNYW5hZ2VkQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlckdyb3VwIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQgfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jaGFuZ2UnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24nO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTbWFydEZpbHRlckJhciBpbXBsZW1lbnRzIFByZXNldE1hbmFnZWRDb21wb25lbnQ8U21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0PiB7XG4gICAgYWJzdHJhY3Qgc2VhcmNoOiBTZWFyY2hJbnB1dCB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWJzdHJhY3QgZ2V0RGlzcGxheVZhbHVlKGNvbmRpdGlvbjogU21hcnRGaWx0ZXJCYXJDb25kaXRpb24sIGZpbHRlclR5cGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPjtcblxuICAgIC8qKiBNZXRob2QgZm9yIHNldHRpbmcgcHJlZGVmaW5lZCBjb25maWd1cmF0aW9uIHByZXNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQcmVzZXQoZGF0YTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0KTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgcHJlc2V0IGNvbmZpZ3VyYXRpb24uICovXG4gICAgYWJzdHJhY3QgZ2V0Q3VycmVudFByZXNldCgpOiBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQ7XG5cbiAgICBhYnN0cmFjdCBnZXRGb3JtYXR0ZWRDb25kaXRpb25zKCk6IFByb21pc2U8Q29sbGVjdGlvbkZpbHRlckdyb3VwW10+O1xuXG4gICAgLyoqIENvbXBvbmVudCBuYW1lIHVzZWQgaW4gUHJlc2V0IG1hbmFnZWQgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZSA9ICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyJztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gc21hcnQgZmlsdGVyIGJhciBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGNoYW5nZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcHJlc2V0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0PigpO1xufVxuIl19
|
|
@@ -481,7 +481,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
481
481
|
provide: FDP_PRESET_MANAGED_COMPONENT,
|
|
482
482
|
useExisting: SmartFilterBarComponent
|
|
483
483
|
}
|
|
484
|
-
], queries: [{ propertyName: "_toolbarItemRefs", predicate: SmartFilterBarToolbarItemDirective }], viewQueries: [{ propertyName: "_formGenerator", first: true, predicate: FormGeneratorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <fd-toolbar fdType=\"transparent\">\n @if (_toolbarItems) {\n @for (template of _toolbarItems; track template) {\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n }\n <fdp-search-field\n (inputChange)=\"_onSearchInputChange($event)\"\n (searchSubmit)=\"submitForm()\"\n (cancelSearch)=\"_cancelSearch()\"\n [disabled]=\"_loading\"\n [disableRefresh]=\"true\"\n [placeholder]=\"'platformSmartFilterBar.searchPlaceholder' | fdTranslate\"\n ></fdp-search-field>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!liveUpdate) {\n <fdp-button\n (click)=\"submitForm()\"\n buttonType=\"emphasized\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n [label]=\"'platformSmartFilterBar.submitButtonLabel' | fdTranslate\"\n ></fdp-button>\n }\n <fdp-button\n (click)=\"submitForm()\"\n fd-toolbar-item\n glyph=\"synchronize\"\n [disabled]=\"_loading\"\n [ariaLabel]=\"'platformSmartFilterBar.refreshButtonAriaLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"showFilteringSettings()\"\n [label]=\"\n 'platformSmartFilterBar.filtersButtonLabel' | fdTranslate: { filtersCount: _selectedFilters.length }\n \"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n <fdp-button\n (click)=\"_toggleFilterBar()\"\n [label]=\"\n (_showFilterBar\n ? 'platformSmartFilterBar.hideFiltersButtonLabel'\n : 'platformSmartFilterBar.showFiltersButtonLabel'\n ) | fdTranslate\n \"\n buttonType=\"transparent\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n </fd-toolbar>\n</div>\n<div class=\"fdp-smart-filter-bar__filters\" [hidden]=\"!_showFilterBar\">\n <fdp-form-generator\n (formCreated)=\"_onFormCreated()\"\n (formSubmitted)=\"_onFormSubmitted($event)\"\n [noAdditionalContent]=\"true\"\n [formItems]=\"_formItems\"\n [columnLayout]=\"filtersColumnLayout\"\n ></fdp-form-generator>\n</div>\n", styles: [".fdp-smart-filter-bar{display:block;box-shadow:var(--sapContent_HeaderShadow);background-color:var(--sapObjectHeader_Background)}.fdp-smart-filter-bar--transparent{background-color:var(--sapToolbar_Background);box-shadow:none}.fdp-smart-filter-bar .fd-toolbar--title{height:3rem;min-height:3rem;border-bottom:none;padding:.5rem}@media (min-width: 600px){.fdp-smart-filter-bar .fd-toolbar--title{padding-left:2rem;padding-right:2rem}}.fdp-smart-filter-bar .fd-toolbar fdp-search-field{min-width:15.5rem}.fdp-smart-filter-bar .fdp-smart-filter-bar__filters{padding-left:.5rem;padding-right:.5rem}@media (min-width: 600px){.fdp-smart-filter-bar .fdp-smart-filter-bar__filters{padding-left:2rem;padding-right:2rem}}.fdp-smart-filter-bar .fd-container.fd-form-layout-grid-container{padding:0}.fdp-smart-filter-bar .fd-container.fd-form-layout-grid-container .fd-row .fd-form-group{padding-left:.25rem!important;padding-right:.25rem!important}.fdp-smart-filter-bar__conditions-dialog .fdp-smart-filter-bar__actions-column{min-width:auto;flex:0 0 auto}.fdp-smart-filter-bar__conditions-dialog .fd-popover-custom{display:block}.fdp-smart-filter-bar__conditions-dialog .fd-dialog__body{padding:0 .5rem;background-color:var(--sapBackgroundColor, #f7f7f7)}.fdp-smart-filter-bar__conditions-dialog .fd-container.fd-form-layout-grid-container,.fdp-smart-filter-bar__conditions-dialog .fd-container.fd-form-layout-grid-container .fd-row .fd-form-group{padding:0!important}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: ["formName", "formItems", "mainTitle", "hideMainTItle", "hint", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "unifiedLayout", "inlineColumnLayout", "noAdditionalContent"], outputs: ["formCreated", "formSubmitted", "formSubmittedStatus"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
484
|
+
], queries: [{ propertyName: "_toolbarItemRefs", predicate: SmartFilterBarToolbarItemDirective }], viewQueries: [{ propertyName: "_formGenerator", first: true, predicate: FormGeneratorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <fd-toolbar fdType=\"transparent\">\n @if (_toolbarItems) {\n @for (template of _toolbarItems; track template) {\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n }\n <fdp-search-field\n (inputChange)=\"_onSearchInputChange($event)\"\n (searchSubmit)=\"submitForm()\"\n (cancelSearch)=\"_cancelSearch()\"\n [disabled]=\"_loading\"\n [disableRefresh]=\"true\"\n [placeholder]=\"'platformSmartFilterBar.searchPlaceholder' | fdTranslate\"\n ></fdp-search-field>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!liveUpdate) {\n <fdp-button\n (click)=\"submitForm()\"\n buttonType=\"emphasized\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n [label]=\"'platformSmartFilterBar.submitButtonLabel' | fdTranslate\"\n ></fdp-button>\n }\n <fdp-button\n (click)=\"submitForm()\"\n fd-toolbar-item\n glyph=\"synchronize\"\n [disabled]=\"_loading\"\n [ariaLabel]=\"'platformSmartFilterBar.refreshButtonAriaLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"showFilteringSettings()\"\n [label]=\"\n 'platformSmartFilterBar.filtersButtonLabel' | fdTranslate: { filtersCount: _selectedFilters.length }\n \"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n <fdp-button\n (click)=\"_toggleFilterBar()\"\n [label]=\"\n (_showFilterBar\n ? 'platformSmartFilterBar.hideFiltersButtonLabel'\n : 'platformSmartFilterBar.showFiltersButtonLabel'\n ) | fdTranslate\n \"\n buttonType=\"transparent\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n </fd-toolbar>\n</div>\n<div class=\"fdp-smart-filter-bar__filters\" [hidden]=\"!_showFilterBar\">\n <fdp-form-generator\n (formCreated)=\"_onFormCreated()\"\n (formSubmitted)=\"_onFormSubmitted($event)\"\n [noAdditionalContent]=\"true\"\n [formItems]=\"_formItems\"\n [columnLayout]=\"filtersColumnLayout\"\n ></fdp-form-generator>\n</div>\n", styles: [".fdp-smart-filter-bar{display:block;box-shadow:var(--sapContent_HeaderShadow);background-color:var(--sapObjectHeader_Background)}.fdp-smart-filter-bar--transparent{background-color:var(--sapToolbar_Background);box-shadow:none}.fdp-smart-filter-bar .fd-toolbar--title{height:3rem;min-height:3rem;border-bottom:none;padding:.5rem}@media (min-width: 600px){.fdp-smart-filter-bar .fd-toolbar--title{padding-left:2rem;padding-right:2rem}}.fdp-smart-filter-bar .fd-toolbar fdp-search-field{min-width:15.5rem}.fdp-smart-filter-bar .fdp-smart-filter-bar__filters{padding-left:.5rem;padding-right:.5rem}@media (min-width: 600px){.fdp-smart-filter-bar .fdp-smart-filter-bar__filters{padding-left:2rem;padding-right:2rem}}.fdp-smart-filter-bar .fd-container.fd-form-layout-grid-container{padding:0}.fdp-smart-filter-bar .fd-container.fd-form-layout-grid-container .fd-row .fd-form-group{padding-left:.25rem!important;padding-right:.25rem!important}.fdp-smart-filter-bar__conditions-dialog .fdp-smart-filter-bar__actions-column{min-width:auto;flex:0 0 auto}.fdp-smart-filter-bar__conditions-dialog .fd-popover-custom{display:block}.fdp-smart-filter-bar__conditions-dialog .fd-dialog__body{padding:0 .5rem;background-color:var(--sapBackgroundColor, #f7f7f7)}.fdp-smart-filter-bar__conditions-dialog .fd-container.fd-form-layout-grid-container,.fdp-smart-filter-bar__conditions-dialog .fd-container.fd-form-layout-grid-container .fd-row .fd-form-group{padding:0!important}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "glyphFont", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: ["formName", "formItems", "mainTitle", "hideMainTItle", "hint", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "unifiedLayout", "inlineColumnLayout", "noAdditionalContent"], outputs: ["formCreated", "formSubmitted", "formSubmittedStatus"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
485
485
|
}
|
|
486
486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SmartFilterBarComponent, decorators: [{
|
|
487
487
|
type: Component,
|
|
@@ -528,4 +528,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
528
528
|
type: ContentChildren,
|
|
529
529
|
args: [SmartFilterBarToolbarItemDirective]
|
|
530
530
|
}] } });
|
|
531
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9zbWFydC1maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zbWFydC1maWx0ZXItYmFyL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFHSCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLDRCQUE0QixFQUFjLE1BQU0sa0NBQWtDLENBQUM7QUFDNUYsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFF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Qyw4N0VBZ0VBLDgrQ0RnRFEsZ0JBQWdCLCtNQUNoQixnQkFBZ0Isb0pBQ2hCLHlCQUF5QixpRUFDekIsb0JBQW9CLGlkQUNwQixzQkFBc0IsbUdBQ3RCLGVBQWUsNFFBQ2Ysb0JBQW9CLDBKQUNwQixzQkFBc0IsZ1ZBQ3RCLGVBQWU7OzJGQUdWLHVCQUF1QjtrQkFoQ25DLFNBQVM7K0JBQ0ksc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcseUJBQXlCO3lCQUN2QztxQkFDSixRQUNLO3dCQUNGLEtBQUssRUFBRSxzQkFBc0I7d0JBQzdCLDJDQUEyQyxFQUFFLGFBQWE7cUJBQzdELGNBQ1csSUFBSSxXQUNQO3dCQUNMLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixlQUFlO3FCQUNsQjt5T0FPa0MsY0FBYztzQkFBaEQsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBTTdCLE9BQU87c0JBRFYsS0FBSztnQkFZRixXQUFXO3NCQURkLEtBQUs7Z0JBYU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBT1AsbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFJVSxnQkFBZ0I7c0JBRGhDLGVBQWU7dUJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFByb3ZpZGVyLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbSxcbiAgICBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgIEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IHsgRkRQX1BSRVNFVF9NQU5BR0VEX0NPTVBPTkVOVCwgU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IENvbGxlY3Rpb25GaWx0ZXJHcm91cCwgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLCBGaWx0ZXJUeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZSc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFRvb2xiYXJJdGVtRGlyZWN0aXZlLFxuICAgIFRvb2xiYXJTZXBhcmF0b3JDb21wb25lbnQsXG4gICAgVG9vbGJhclNwYWNlckRpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9vbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9idXR0b24nO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNldHRpbmdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTTUFSVF9GSUxURVJfQkFSX1JFTkRFUkVSX0NPTVBPTkVOVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zbWFydC1maWx0ZXItYmFyLXN1YmplY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyVG9vbGJhckl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc21hcnQtZmlsdGVyLWJhci10b29sYmFyLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IGdldFNlbGVjdEl0ZW1WYWx1ZSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQsIFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY2hhbmdlJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItZmllbGQtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLWNvbmZpZyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhciB9IGZyb20gJy4vc21hcnQtZmlsdGVyLWJhci5jbGFzcyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWZpbHRlci1iYXIuc2VydmljZSc7XG5cbmNvbnN0IGRlZmF1bHRDb2x1bW5zTGF5b3V0ID0gJ1hMNC1MMy1NMi1TMSc7XG5cbmZ1bmN0aW9uIGdldENvbHVtbnNOdW1iZXIobGF5b3V0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgICAgLi4ubGF5b3V0LnNwbGl0KCctJykubWFwKChwYXJ0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaEFycmF5ID0gcGFydC5tYXRjaCgvXFxkKy8pO1xuXG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hBcnJheSA/IHBhcnNlSW50KG1hdGNoQXJyYXlbMF0sIDEwKSA6IDE7XG4gICAgICAgIH0pXG4gICAgKTtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICovXG5jb25zdCBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyA9IHtcbiAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgbWluV2lkdGg6ICczMHJlbScsXG4gICAgLyoqIDg4cHggaXQncyB0aGUgaGVhZGVyICsgZm9vdGVyIGhlaWdodCAqL1xuICAgIGJvZHlNaW5IZWlnaHQ6ICdjYWxjKDUwdmggLSA4OHB4KSdcbn07XG5cbmNvbnN0IHNtYXJ0RmlsdGVyQmFyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IFNtYXJ0RmlsdGVyQmFyLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50KVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbWFydC1maWx0ZXItYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBzbWFydEZpbHRlckJhclByb3ZpZGVyLFxuICAgICAgICBTbWFydEZpbHRlckJhclNlcnZpY2UsXG4gICAgICAgIEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgICAgICdbY2xhc3MuZmRwLXNtYXJ0LWZpbHRlci1iYXItLXRyYW5zcGFyZW50XSc6ICd0cmFuc3BhcmVudCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUb29sYmFyU2VwYXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgVG9vbGJhclNwYWNlckRpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBUb29sYmFySXRlbURpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUdlbmVyYXRvckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydEZpbHRlckJhckNvbXBvbmVudCBleHRlbmRzIFNtYXJ0RmlsdGVyQmFyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRm9ybSBnZW5lcmF0b3IgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoRm9ybUdlbmVyYXRvckNvbXBvbmVudCkgX2Zvcm1HZW5lcmF0b3IhOiBGb3JtR2VuZXJhdG9yQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogU3ViamVjdCB3aGljaCB3aWxsIHByb3ZpZGUgY29uZmlndXJhdGlvbiBkYXRhOiBkYXRhIHNvdXJjZSwgY29sdW1ucyBkZWZpbml0aW9ucywgZXRjLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN1YmplY3QodmFsdWU6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9zZXRTdWJqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc3ViamVjdCgpOiBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViamVjdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hldGhlciBzbWFydCBmaWx0ZXIgYmFyIGJhY2tncm91bmQgc2hvdWxkIGJlIHRyYW5zcGFyZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRyYW5zcGFyZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNwYXJlbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB0cmFuc3BhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbHVtbnMgbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyc0NvbHVtbkxheW91dDogTnVsbGFibGU8c3RyaW5nPiA9IGRlZmF1bHRDb2x1bW5zTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB1cGRhdGUgZmlsdGVycyB3aGVuIHRoZXkgYXJlIHNlbGVjdGVkLiBPdGhlcndpc2UsIGZpbHRlcnMgd2lsbCBiZSBhcHBsaWVkIG9ubHkgYnkgcHJlc3NpbmcgXCJHb1wiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxpdmVVcGRhdGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgZmlsdGVycyBoYXZlIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzbWFydEZpbHRlcnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJDaGFuZ2VPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBzZWxlY3RlZCBmaWx0ZXJzIGhhcyBiZWVuIGFwcGxpZWQgKFVzZXIgY2xpY2tlZCBvbiBHbyBidXR0b24pLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNtYXJ0RmlsdGVyc0FwcGxpZWQ6IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHNlYXJjaCBpbnB1dCBmaWVsZCB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlYXJjaElucHV0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaElucHV0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoSW5wdXQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFNtYXJ0RmlsdGVyQmFyVG9vbGJhckl0ZW1EaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdG9vbGJhckl0ZW1SZWZzOiBRdWVyeUxpc3Q8U21hcnRGaWx0ZXJCYXJUb29sYmFySXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVkIGFycmF5IG9mIGZpbHRlcnMgdG8gYXBwbHkgZm9yIHRoZSBzdWJqZWN0J3MgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgZmlsdGVyQnk6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggZmllbGQgdmFsdWUgdG8gYXBwbHkgZm9yIHRoZSBzdWJqZWN0J3MgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgc2VhcmNoOiBTZWFyY2hJbnB1dCB8IHVuZGVmaW5lZDtcbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF90b29sYmFySXRlbXM6IFRlbXBsYXRlUmVmPGFueT5bXSA9IFtdO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Zvcm1JdGVtczogRHluYW1pY0Zvcm1JdGVtW107XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0ZWRGaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dGaWx0ZXJCYXIgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0Py5nZXREYXRhU291cmNlKCkgPyB0aGlzLl9zdWJqZWN0LmdldERhdGFTb3VyY2UoKS5pc0RhdGFMb2FkaW5nIDogdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YmplY3RTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc3BhcmVudCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtR2VuZXJhdG9yUmVhZHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaWdub3JlUHJlc2V0Q2hhbmdlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YmplY3QhOiBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9zbWFydEZpbHRlckJhclNlcnZpY2U6IFNtYXJ0RmlsdGVyQmFyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZmdTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2ZnU2VydmljZS5hZGRDb21wb25lbnQoU21hcnRGaWx0ZXJCYXJDb25kaXRpb25GaWVsZENvbXBvbmVudCwgW1NNQVJUX0ZJTFRFUl9CQVJfUkVOREVSRVJfQ09NUE9ORU5UXSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtcyA9IHRoaXMuX3Rvb2xiYXJJdGVtUmVmcy50b0FycmF5KCkubWFwKChyZWYpID0+IHJlZi50ZW1wbGF0ZVJlZik7XG5cbiAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1SZWZzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtcyA9IHRoaXMuX3Rvb2xiYXJJdGVtUmVmcy50b0FycmF5KCkubWFwKChyZWYpID0+IHJlZi50ZW1wbGF0ZVJlZik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tU3ViamVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgY29uZGl0aW9uIHZhbHVlIGludG8gaHVtYW4tcmVhZGFibGUgdGV4dC5cbiAgICAgKiBAcGFyYW0gY29uZGl0aW9uIFNtYXJ0IGZpbHRlciBiYXIgY29uZGl0aW9uLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJUeXBlIENvbmRpdGlvbiBmaWx0ZXIgdHlwZS5cbiAgICAgKi9cbiAgICBhc3luYyBnZXREaXNwbGF5VmFsdWUoY29uZGl0aW9uOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbiwgZmlsdGVyVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS5nZXREaXNwbGF5VmFsdWUoY29uZGl0aW9uLCBmaWx0ZXJUeXBlKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBGaWx0ZXJpbmcgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd0ZpbHRlcmluZ1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0U3ViamVjdERlZmluaXRpb25zKCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RmlsdGVyU2V0dGluZ3NEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICBmaWVsZHM6IGNvbHVtbnMsXG4gICAgICAgICAgICBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeSxcbiAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyczogdGhpcy5fc2VsZWN0ZWRGaWx0ZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgU21hcnRGaWx0ZXJCYXJTZXR0aW5nc0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnNTByZW0nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLl9pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoc2VsZWN0ZWRGaWx0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRGaWx0ZXJzKHNlbGVjdGVkRmlsdGVycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU2VhcmNoSW5wdXRDaGFuZ2UoZXZlbnQ6IFNlYXJjaElucHV0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhbmNlbFNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMubGl2ZVVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJtaXRzIGZpbHRlcnMgYW5kIHNlYXJjaCBmb3JtLlxuICAgICAqL1xuICAgIHN1Ym1pdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1HZW5lcmF0b3Iuc3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyBwcmVkZWZpbmVkIGNvbmZpZ3VyYXRpb24uICovXG4gICAgYXN5bmMgc2V0UHJlc2V0KGRhdGE6IFNtYXJ0RmlsdGVyQmFyTWFuYWdlZFByZXNldCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9pZ25vcmVQcmVzZXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICBkYXRhLmZpbHRlckJ5ID0gZGF0YS5maWx0ZXJCeSB8fCBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJCeSA9IGRhdGEuZmlsdGVyQnk7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gZGF0YS5zZWFyY2g7XG5cbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvclJlYWR5LnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpKS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgLy8gUmVzZXQgZm9ybVxuICAgICAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLnJlc2V0Rm9ybSh0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0pO1xuXG4gICAgICAgICAgICAvLyBTZXQgbmV3IGRhdGFcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsdGVyQnkgb2YgdGhpcy5maWx0ZXJCeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mZ1NlcnZpY2UuZ2V0Rm9ybUNvbnRyb2wodGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtLCBmaWx0ZXJCeS5maWVsZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtIGFzIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UudHJhbnNmb3JtQ29sbGVjdGlvbkZpbHRlcihmaWx0ZXJCeSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZENvbmRpdGlvbnMgPSBhd2FpdCB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0Q29uZGl0aW9uRmllbGRTZWxlY3RlZFZhcmlhbnRzKFxuICAgICAgICAgICAgICAgICAgICBmb3JtSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShzZWxlY3RlZENvbmRpdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJCeS5tYXAoKGZpbHRlckJ5KSA9PiBmaWx0ZXJCeS5maWVsZCkpO1xuXG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnN1YmplY3QuZ2V0RGF0YVNvdXJjZSgpO1xuICAgICAgICAgICAgc291cmNlLmRhdGFQcm92aWRlci5zZXRGaWx0ZXJzKHRoaXMuZmlsdGVyQnksIHRoaXMuc2VhcmNoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViamVjdC5nZXRTdWJqZWN0KCkuZmV0Y2goKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbi4gKi9cbiAgICBnZXRDdXJyZW50UHJlc2V0KCk6IFNtYXJ0RmlsdGVyQmFyTWFuYWdlZFByZXNldCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICAgICAgZmlsdGVyQnk6IHRoaXMuZmlsdGVyQnlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBmb3JtIGdlbmVyYXRvciBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWQgYW5kIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBfb25Gb3JtU3VibWl0dGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHRoaXMuX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3VwcyhldmVudCk7XG4gICAgICAgIHRoaXMuX2FwcGx5RmlsdGVyaW5nKGNvbmRpdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDYWxsYmFjayBtZXRob2Qgd2hlbiBmb3JtIGhhcyBiZWVuIGNyZWF0ZWQuXG4gICAgICogUG9wdWxhdGVzIHNlbGVjdGVkIGZpbHRlcnMgYXJyYXkgd2l0aCB1c2VyLWRlZmluZWQgZGVmYXVsdCBmaWx0ZXJzLlxuICAgICAqL1xuICAgIF9vbkZvcm1DcmVhdGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJqZWN0KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnMoWy4uLnRoaXMuc3ViamVjdC5nZXREZWZhdWx0RmllbGRzKCksIC4uLnRoaXMuX3NlbGVjdGVkRmlsdGVyc10pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0Rm9ybWF0dGVkQ29uZGl0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc21hcnRGaWx0ZXJzQ2hhbmdlZC5lbWl0KHsgZmlsdGVyQnk6IGNvbmRpdGlvbnMsIHNlYXJjaDogdGhpcy5zZWFyY2gsIHN1YmplY3Q6IHRoaXMuc3ViamVjdCB9KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5saXZlVXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXJpbmcoY29uZGl0aW9ucyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yUmVhZHkubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RvZ2dsZUZpbHRlckJhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2hvd0ZpbHRlckJhciA9ICF0aGlzLl9zaG93RmlsdGVyQmFyO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0cyByYXcgZmlsdGVycyBvYmplY3QgaW50byBhcnJheSBvZiBncm91cGVkIGZpbHRlcnMuXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgZ3JvdXBlZCBmaWx0ZXJzLlxuICAgICAqL1xuICAgIGFzeW5jIGdldEZvcm1hdHRlZENvbmRpdGlvbnMoKTogUHJvbWlzZTxDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXT4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuZ2V0Rm9ybVZhbHVlKHRoaXMuX2Zvcm1HZW5lcmF0b3IuZm9ybSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZW5lcmF0ZUNvbGxlY3Rpb25GaWx0ZXJHcm91cHMoZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3Vwcyh2YWx1ZToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdO1xuICAgIH0pOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25GaWx0ZXJHcm91cHM6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdID0gW107XG5cbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFN1YmplY3REZWZpbml0aW9ucygpO1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKVxuICAgICAgICAgICAgLmZpbHRlcigoWywgZmllbGRDb25kaXRpb25zXSkgPT4gISFmaWVsZENvbmRpdGlvbnMpXG4gICAgICAgICAgICAuZm9yRWFjaCgoW2ZpZWxkTmFtZSwgZmllbGRDb25kaXRpb25zXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZCgoYykgPT4gYy5uYW1lID09PSBmaWVsZE5hbWUpIGFzIFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckdyb3VwOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBzdHJhdGVneTogY29sdW1uLmNvbmRpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZmllbGRDb25kaXRpb25zLmZvckVhY2goKGNvbmRpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cC5maWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4ua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlMjogY29uZGl0aW9uLnZhbHVlMixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbHVtbi5kYXRhVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25GaWx0ZXJHcm91cHMucHVzaChmaWx0ZXJHcm91cCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZW1vdmUgZW1wdHkgZmlsdGVyIG9iamVjdHMuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uRmlsdGVyR3JvdXBzLmZpbHRlcigoZmlsdGVyR3JvdXApID0+IGZpbHRlckdyb3VwLmZpbHRlcnM/Lmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0U3ViamVjdChzdWJqZWN0OiBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFzdWJqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJqZWN0ID0gc3ViamVjdDtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUZyb21TdWJqZWN0KCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3ViamVjdENvbHVtbnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVGcm9tU3ViamVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdWJqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvU3ViamVjdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3N1YmplY3QuZmllbGRzU3RyZWFtLnN1YnNjcmliZShhc3luYyAoY29sdW1uczogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb25bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9nZW5lcmF0ZUZvcm0oY29sdW1ucy5maWx0ZXIoKGMpID0+IGMuZmlsdGVyYWJsZSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGZvcm0gaXRlbXMgdG8gYmUgY29uc3VtZWQgYnkgZm9ybSBnZW5lcmF0b3IgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBjb2x1bW5zIGNvbHVtbnMgZGVmaW5pdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dlbmVyYXRlRm9ybShjb2x1bW5zOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBEeW5hbWljRm9ybUZpZWxkSXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbHVtbnNOdW1iZXIgPSBnZXRDb2x1bW5zTnVtYmVyKHRoaXMuZmlsdGVyc0NvbHVtbkxheW91dCA/PyAnJyk7XG4gICAgICAgIGxldCBjdXJyZW50Q29sdW1uID0gMTtcblxuICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSA9IHRoaXMuX2dlbmVyYXRlQmFzZUZpZWxkSXRlbShjb2x1bW4pO1xuXG4gICAgICAgICAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWx0ZXJzLnB1c2goY29sdW1uLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbi5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlNJTkdMRTpcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuQ0FURUdPUlk6XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ3NlbGVjdCc7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5pbmxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLk1VTFRJOlxuICAgICAgICAgICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudHlwZSA9ICdtdWx0aS1pbnB1dCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5DVVNUT006XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSB0aGlzLl9nZW5lcmF0ZUN1c3RvbUZpbHRlckZpZWxkSXRlbShjb2x1bW4sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuSU5QVVQ6XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuX2dlbmVyYXRlSW5wdXRGaWVsZEl0ZW0oY29sdW1uLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5jb2x1bW4gPSBjdXJyZW50Q29sdW1uO1xuICAgICAgICAgICAgY3VycmVudENvbHVtbiArPSAxO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+IGNvbHVtbnNOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uID0gMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ3VzdG9tRmlsdGVyRmllbGRJdGVtKFxuICAgICAgICBjb2x1bW46IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uLFxuICAgICAgICBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIGlmICghY29sdW1uLmN1c3RvbUZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gY29sdW1uLmN1c3RvbUZpbHRlclR5cGU7XG4gICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEsXG4gICAgICAgICAgICB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0Q3VzdG9tRmlsdGVyQ29uZmlndXJhdGlvbihjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZSlcbiAgICAgICAgKTtcblxuICAgICAgICBpdGVtLnR5cGUgPSBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEucmVuZGVyZXJDb21wb25lbnRcbiAgICAgICAgICAgID8gYCR7aXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGV9LXJlbmRlcmVyYFxuICAgICAgICAgICAgOiBpdGVtLnR5cGU7XG4gICAgICAgIGl0ZW0udHJhbnNmb3JtZXIgPSBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudmFsdWVUcmFuc2Zvcm1lcjtcblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGZvcm0gaXRlbSBiYXNlZCBvbiBkYXRhIHR5cGUuXG4gICAgICogQHBhcmFtIGNvbHVtblxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUlucHV0RmllbGRJdGVtKFxuICAgICAgICBjb2x1bW46IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uLFxuICAgICAgICBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIHN3aXRjaCAoY29sdW1uLmRhdGFUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ2RhdGVwaWNrZXInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS5jb250cm9sVHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLlNUUklORzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLmNvbnRyb2xUeXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEdlbmVyYXRlcyBiYXNlIGZvcm0gaXRlbSBvYmplY3QgdG8gYmUgY29uc3VtZWQgYnkgZm9ybSBnZW5lcmF0b3IgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBjb2x1bW4gY29sdW1uIGRlZmluaXRpb25cbiAgICAgKiBAcmV0dXJucyBiYXNlIGZvcm0gaXRlbSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVCYXNlRmllbGRJdGVtKGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24pOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogY29sdW1uLmxhYmVsLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbHVtbi5yZXF1aXJlZCxcbiAgICAgICAgICAgIHR5cGU6IFNNQVJUX0ZJTFRFUl9CQVJfUkVOREVSRVJfQ09NUE9ORU5ULFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcgJyxcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IGNvbHVtbi5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdLFxuICAgICAgICAgICAgY2hvaWNlczogY29sdW1uLmhhc09wdGlvbnMgPyB0aGlzLl9nZXRGaWx0ZXJEZWZhdWx0T3B0aW9ucyhjb2x1bW4ua2V5LCBjb2x1bW4uZmlsdGVyVHlwZSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0cmFuc2Zvcm1lcjogKGl0ZW1WYWx1ZSkgPT4gZ2V0U2VsZWN0SXRlbVZhbHVlKGl0ZW1WYWx1ZSksXG4gICAgICAgICAgICBndWlPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbERhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IGNvbHVtbi5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogY29sdW1uLmZpbHRlclR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGNob2ljZXM6IGNvbHVtbi5oYXNPcHRpb25zID8gdGhpcy5fZ2V0RmlsdGVyQXZhaWxhYmxlT3B0aW9ucyhjb2x1bW4ua2V5KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aGVuOiAoKSA9PiB0aGlzLl9zZWxlY3RlZEZpbHRlcnMuaW5jbHVkZXMoY29sdW1uLm5hbWUpXG4gICAgICAgIH0gYXMgU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0cmlldmVzIGF2YWlsYWJsZSBvcHRpb25zIGZvciBwYXJ0aWN1bGFyIGNvbHVtbiBieSB1c2luZyBkYXRhIHNvdXJjZSBtZXRob2QuXG4gICAgICogQHBhcmFtIGNvbHVtbiBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBkYXRhIHNvdXJjZSBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxTZWxlY3RJdGVtW10+fSBPYnNlcnZhYmxlIHdpdGggdGhlIGFycmF5IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEZpbHRlckF2YWlsYWJsZU9wdGlvbnMoY29sdW1uOiBzdHJpbmcpOiAoKSA9PiBPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4gdGhpcy5fZ2V0RmllbGRWYXJpYW50cyhjb2x1bW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RmlsdGVyRGVmYXVsdE9wdGlvbnMoY29sdW1uOiBzdHJpbmcsIGZpbHRlclR5cGU6IEZpbHRlclR5cGUpOiAoKSA9PiBQcm9taXNlPGFueVtdPiB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYW50cyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2dldEZpZWxkVmFyaWFudHMoY29sdW1uKS5waXBlKHRha2UoMSkpKTtcblxuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10gPSBbXTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgdmFyaWFudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogJ2VxdWFsVG8nXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5kaXNwbGF5VmFsdWUgPSBhd2FpdCB0aGlzLmdldERpc3BsYXlWYWx1ZShjb25kaXRpb24sIGZpbHRlclR5cGUpO1xuXG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnMucHVzaChjb25kaXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWxlY3RJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdC5nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbikucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gZGF0YS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbS52YWx1ZSA9PT0gaXRlbS52YWx1ZSkgPT09IGluZGV4KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFN1YmplY3REZWZpbml0aW9ucygpOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdD8uZ2V0U3ViamVjdEZpZWxkcygpIHx8IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZXRzIHByb3ZpZGVkIGZpbHRlcnMgZGlyZWN0bHkgdG8gdGhlIGRhdGEgc291cmNlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIGFycmF5IG9mIGZpbHRlcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYXBwbHlGaWx0ZXJpbmcoZmlsdGVyczogQ29sbGVjdGlvbkZpbHRlckdyb3VwW10pOiB2b2lkIHtcbiAgICAgICAgLy8gQXBwbHkgb3V0c2lkZSBmaWx0ZXJpbmcgYW5kIGZvcmNlIHN1YmplY3QgdG8gZmV0Y2ggbmV3IGRhdGEuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc3ViamVjdC5nZXREYXRhU291cmNlKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyQnkgPSBmaWx0ZXJzO1xuICAgICAgICBzb3VyY2UuZGF0YVByb3ZpZGVyLnNldEZpbHRlcnMoZmlsdGVycywgdGhpcy5zZWFyY2gpO1xuICAgICAgICB0aGlzLnN1YmplY3QuZ2V0U3ViamVjdCgpLmZldGNoKCk7XG4gICAgICAgIGNvbnN0IGVtaXR0ZWRWYWx1ZTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0ID0geyBzZWFyY2g6IHRoaXMuc2VhcmNoLCBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeSB9O1xuICAgICAgICB0aGlzLnNtYXJ0RmlsdGVyc0FwcGxpZWQuZW1pdCh7IC4uLmVtaXR0ZWRWYWx1ZSwgc3ViamVjdDogdGhpcy5fc3ViamVjdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuX2lnbm9yZVByZXNldENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcmVzZXRDaGFuZ2VkLmVtaXQoZW1pdHRlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pZ25vcmVQcmVzZXRDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlRnJvbVN1YmplY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0U2VsZWN0ZWRGaWx0ZXJzKGZpbHRlcnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKChmOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gZmlsdGVycy5pbmRleE9mKGYpID09PSBpKTtcbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5yZWZyZXNoU3RlcHNWaXNpYmlsaXR5KCk7XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgICBAaWYgKF90b29sYmFySXRlbXMpIHtcbiAgICAgICAgICAgIEBmb3IgKHRlbXBsYXRlIG9mIF90b29sYmFySXRlbXM7IHRyYWNrIHRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3I+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgKGlucHV0Q2hhbmdlKT1cIl9vblNlYXJjaElucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKHNlYXJjaFN1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJfY2FuY2VsU2VhcmNoKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmVmcmVzaF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWFyY2hQbGFjZWhvbGRlcicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkcC1zZWFyY2gtZmllbGQ+XG4gICAgICAgIDxmZC10b29sYmFyLXNwYWNlcj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICBAaWYgKCFsaXZlVXBkYXRlKSB7XG4gICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zdWJtaXRCdXR0b25MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgZ2x5cGg9XCJzeW5jaHJvbml6ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzaG93RmlsdGVyaW5nU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuZmlsdGVyc0J1dHRvbkxhYmVsJyB8IGZkVHJhbnNsYXRlOiB7IGZpbHRlcnNDb3VudDogX3NlbGVjdGVkRmlsdGVycy5sZW5ndGggfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJfdG9nZ2xlRmlsdGVyQmFyKClcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgIChfc2hvd0ZpbHRlckJhclxuICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmhpZGVGaWx0ZXJzQnV0dG9uTGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuc2hvd0ZpbHRlcnNCdXR0b25MYWJlbCdcbiAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgIDwvZmQtdG9vbGJhcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZkcC1zbWFydC1maWx0ZXItYmFyX19maWx0ZXJzXCIgW2hpZGRlbl09XCIhX3Nob3dGaWx0ZXJCYXJcIj5cbiAgICA8ZmRwLWZvcm0tZ2VuZXJhdG9yXG4gICAgICAgIChmb3JtQ3JlYXRlZCk9XCJfb25Gb3JtQ3JlYXRlZCgpXCJcbiAgICAgICAgKGZvcm1TdWJtaXR0ZWQpPVwiX29uRm9ybVN1Ym1pdHRlZCgkZXZlbnQpXCJcbiAgICAgICAgW25vQWRkaXRpb25hbENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFtmb3JtSXRlbXNdPVwiX2Zvcm1JdGVtc1wiXG4gICAgICAgIFtjb2x1bW5MYXlvdXRdPVwiZmlsdGVyc0NvbHVtbkxheW91dFwiXG4gICAgPjwvZmRwLWZvcm0tZ2VuZXJhdG9yPlxuPC9kaXY+XG4iXX0=
|
|
531
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NtYXJ0LWZpbHRlci1iYXIvc21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NtYXJ0LWZpbHRlci1iYXIvc21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUdILHNCQUFzQixFQUN0QixvQkFBb0IsRUFFdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQWMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RixPQUFPLEVBQXlCLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlHLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNqSixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFFbkUsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQUM7QUFFNUMsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFjO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDWCxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUNMLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBaUI7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixlQUFlLEVBQUUsSUFBSTtJQUNyQixRQUFRLEVBQUUsT0FBTztJQUNqQiwyQ0FBMkM7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtDQUNyQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBYTtJQUNyQyxPQUFPLEVBQUUsY0FBYztJQUN2QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0NBQ3pELENBQUM7QUFrQ0YsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWM7SUFPdkQ7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFxQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFxREQsY0FBYztJQUNkLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRixDQUFDO0lBb0JELGNBQWM7SUFDZCxZQUNZLGNBQTZCLEVBQzdCLElBQXVCLEVBQ3ZCLHNCQUE2QyxFQUM3QyxVQUFnQyxFQUNoQyxTQUFtQixFQUNWLFdBQXVCO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBUEEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ1YsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFqRjVDOztXQUVHO1FBRUgsd0JBQW1CLEdBQXFCLG9CQUFvQixDQUFDO1FBRTdEOztXQUVHO1FBRUgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQjs7V0FFRztRQUVILHdCQUFtQixHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUV6Rzs7V0FFRztRQUVILHdCQUFtQixHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUV6Rzs7V0FFRztRQUVILHVCQUFrQixHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO1FBS2hGOztXQUVHO1FBQ0gsYUFBUSxHQUE0QixFQUFFLENBQUM7UUFNdkMsY0FBYztRQUNkLGtCQUFhLEdBQXVCLEVBQUUsQ0FBQztRQUd2QyxjQUFjO1FBQ2QscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLGNBQWM7UUFDZCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQU90QixjQUFjO1FBQ04sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVDLGNBQWM7UUFDTiwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5ELGNBQWM7UUFDTixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU3QixjQUFjO1FBQ0csd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFM0UsY0FBYztRQUNOLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQWVoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFrQyxFQUFFLFVBQWtCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxxQkFBcUI7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUMsTUFBTSxVQUFVLEdBQW9DO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3pDLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEMscUNBQXFDLEVBQ3JDO1lBQ0ksR0FBRyxZQUFZO1lBQ2YsZUFBZSxFQUFFLElBQUk7WUFDckIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsVUFBVTtTQUNuQixFQUNELElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUF5QixFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDZCxvQkFBb0IsQ0FBQyxLQUFrQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjO0lBQ2QsYUFBYTtRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBaUM7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3pFLGFBQWE7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXBELGVBQWU7WUFDZixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFekYsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDVixTQUFTO2lCQUNaO2dCQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUF3QyxDQUFDO2dCQUVsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWxGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUNBQWlDLENBQzFGLFFBQVEsRUFDUixTQUFTLENBQ1osQ0FBQztnQkFDRixPQUFPLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDekM7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRTFFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsZ0JBQWdCO1FBQ1osT0FBTztZQUNILE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM1RjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVk7YUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDNUQsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRXBHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNsQixPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsc0JBQXNCO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYztJQUNOLCtCQUErQixDQUFDLEtBRXZDO1FBQ0csTUFBTSxzQkFBc0IsR0FBNEIsRUFBRSxDQUFDO1FBRTNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ2hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQzthQUNsRCxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFrQyxDQUFDO1lBQzFGLE1BQU0sV0FBVyxHQUEwQjtnQkFDdkMsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRzthQUNwQixDQUFDO1lBQ0YsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNsQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDckIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO29CQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUc7b0JBQ2pCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztvQkFDdEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO29CQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVE7aUJBQ3hCLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBRUgsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBRVAsK0JBQStCO1FBQy9CLE9BQU8sc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsY0FBYztJQUNOLFdBQVcsQ0FBQyxPQUF1QztRQUN2RCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDTixzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsT0FBTztTQUNWO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTix1QkFBdUI7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUF3QyxFQUFFLEVBQUU7WUFDcEYsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNsQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQXdDO1FBQ2hFLE1BQU0sS0FBSyxHQUEyQixFQUFFLENBQUM7UUFDekMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztRQUV0QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QixJQUFJLElBQUksR0FBdUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5GLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7WUFFRCxRQUFRLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3ZCLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDdkIsS0FBSyxVQUFVLENBQUMsUUFBUTtvQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUMvQixNQUFNO2dCQUNWLEtBQUssVUFBVSxDQUFDLEtBQUs7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7b0JBQ3BELE1BQU07Z0JBQ1YsS0FBSyxVQUFVLENBQUMsTUFBTTtvQkFDbEIsSUFBSSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3pELE1BQU07Z0JBQ1YsS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUN0QjtvQkFDSSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDbEQsTUFBTTthQUNiO1lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQ3ZDLGFBQWEsSUFBSSxDQUFDLENBQUM7WUFFbkIsSUFBSSxhQUFhLEdBQUcsYUFBYSxFQUFFO2dCQUMvQixhQUFhLEdBQUcsQ0FBQyxDQUFDO2FBQ3JCO1lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWM7SUFDTiw4QkFBOEIsQ0FDbEMsTUFBcUMsRUFDckMsSUFBd0M7UUFFeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNwRixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUI7WUFDeEQsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxXQUFXO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFFbkUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLHVCQUF1QixDQUMzQixNQUFxQyxFQUNyQyxJQUF3QztRQUV4QyxRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyx3QkFBd0IsQ0FBQyxJQUFJO2dCQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO2dCQUNuRCxNQUFNO1lBQ1YsS0FBSyx3QkFBd0IsQ0FBQyxNQUFNO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO2dCQUN0RCxNQUFNO1lBQ1YsS0FBSyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7WUFDdEMsS0FBSyx3QkFBd0IsQ0FBQyxNQUFNLENBQUM7WUFDckM7Z0JBQ0ksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDcEQsTUFBTTtTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssc0JBQXNCLENBQUMsTUFBcUM7UUFDaEUsT0FBTztZQUNILElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDckIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLElBQUksRUFBRSxtQ0FBbUM7WUFDekMsV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDckcsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7WUFDekQsVUFBVSxFQUFFO2dCQUNSLGNBQWMsRUFBRTtvQkFDWixJQUFJLEVBQUUsT0FBTztvQkFDYixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7b0JBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsV0FBVyxFQUFFLE1BQU07b0JBQ25CLE9BQU8sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN2RjthQUNKO1lBQ0QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNwQixDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLDBCQUEwQixDQUFDLE1BQWM7UUFDN0MsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGNBQWM7SUFDTix3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsVUFBc0I7UUFDbkUsT0FBTyxLQUFLLElBQUksRUFBRTtZQUNkLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRixNQUFNLDBCQUEwQixHQUE4QixFQUFFLENBQUM7WUFFakUsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7Z0JBQzNCLE1BQU0sU0FBUyxHQUE0QjtvQkFDdkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO29CQUNuQixRQUFRLEVBQUUsU0FBUztpQkFDdEIsQ0FBQztnQkFFRixTQUFTLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRTNFLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM5QztZQUVELE9BQU8sMEJBQTBCLENBQUM7UUFDdEMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDTixpQkFBaUIsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzdDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUMvRyxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDTixzQkFBc0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZUFBZSxDQUFDLE9BQWdDO1FBQ3BELCtEQUErRDtRQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFlBQVksR0FBZ0MsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25HLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDTix1QkFBdUI7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxjQUFjO0lBQ04sbUJBQW1CLENBQUMsT0FBaUI7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzhHQTVpQlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsZ2RBMUJyQjtZQUNQLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCO2dCQUNJLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSx1QkFBdUI7YUFDdkM7U0FDSiwyREE4RWdCLGtDQUFrQyw2RUF2RHhDLHNCQUFzQix1RUNoSXJDLDg3RUFnRUEsOCtDRGdEUSxnQkFBZ0IsK01BQ2hCLGdCQUFnQixvSkFDaEIseUJBQXlCLGlFQUN6QixvQkFBb0IsaWRBQ3BCLHNCQUFzQixtR0FDdEIsZUFBZSx5UkFDZixvQkFBb0IsMEpBQ3BCLHNCQUFzQixnVkFDdEIsZUFBZTs7MkZBR1YsdUJBQXVCO2tCQWhDbkMsU0FBUzsrQkFDSSxzQkFBc0IsaUJBR2pCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Asc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEI7NEJBQ0ksT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyx5QkFBeUI7eUJBQ3ZDO3FCQUNKLFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLHNCQUFzQjt3QkFDN0IsMkNBQTJDLEVBQUUsYUFBYTtxQkFDN0QsY0FDVyxJQUFJLFdBQ1A7d0JBQ0wsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2xCO3lPQU9rQyxjQUFjO3NCQUFoRCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFNN0IsT0FBTztzQkFEVixLQUFLO2dCQVlGLFdBQVc7c0JBRGQsS0FBSztnQkFhTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxtQkFBbUI7c0JBRGxCLE1BQU07Z0JBT1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQUlVLGdCQUFnQjtzQkFEaEMsZUFBZTt1QkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUHJvdmlkZXIsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dDb25maWcsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtLFxuICAgIEZvcm1HZW5lcmF0b3JDb21wb25lbnQsXG4gICAgRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlckdyb3VwLCBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUsIEZpbHRlclR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgVG9vbGJhckl0ZW1EaXJlY3RpdmUsXG4gICAgVG9vbGJhclNlcGFyYXRvckNvbXBvbmVudCxcbiAgICBUb29sYmFyU3BhY2VyRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90b29sYmFyJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2J1dHRvbic7XG5pbXBvcnQgeyBTZWFyY2hGaWVsZENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2VhcmNoLWZpZWxkJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24tZmllbGQvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyU2V0dGluZ3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNNQVJUX0ZJTFRFUl9CQVJfUkVOREVSRVJfQ09NUE9ORU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NtYXJ0LWZpbHRlci1iYXItc3ViamVjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJUb29sYmFySXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zbWFydC1maWx0ZXItYmFyLXRvb2xiYXItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0SXRlbVZhbHVlIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyTWFuYWdlZFByZXNldCwgU21hcnRGaWx0ZXJDaGFuZ2VPYmplY3QgfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jaGFuZ2UnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24nO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1maWVsZC1kZWZpbml0aW9uJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyU2V0dGluZ3NEaWFsb2dDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2ctY29uZmlnJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWR5bmFtaWMtZm9ybS1pdGVtJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyIH0gZnJvbSAnLi9zbWFydC1maWx0ZXItYmFyLmNsYXNzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyU2VydmljZSB9IGZyb20gJy4vc21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlJztcblxuY29uc3QgZGVmYXVsdENvbHVtbnNMYXlvdXQgPSAnWEw0LUwzLU0yLVMxJztcblxuZnVuY3Rpb24gZ2V0Q29sdW1uc051bWJlcihsYXlvdXQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICAuLi5sYXlvdXQuc3BsaXQoJy0nKS5tYXAoKHBhcnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoQXJyYXkgPSBwYXJ0Lm1hdGNoKC9cXGQrLyk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXRjaEFycmF5ID8gcGFyc2VJbnQobWF0Y2hBcnJheVswXSwgMTApIDogMTtcbiAgICAgICAgfSlcbiAgICApO1xufVxuXG4vKipcbiAqIERlZmF1bHQgZGlhbG9nIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmNvbnN0IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnID0ge1xuICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgIHZlcnRpY2FsUGFkZGluZzogdHJ1ZSxcbiAgICBtaW5XaWR0aDogJzMwcmVtJyxcbiAgICAvKiogODhweCBpdCdzIHRoZSBoZWFkZXIgKyBmb290ZXIgaGVpZ2h0ICovXG4gICAgYm9keU1pbkhlaWdodDogJ2NhbGMoNTB2aCAtIDg4cHgpJ1xufTtcblxuY29uc3Qgc21hcnRGaWx0ZXJCYXJQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogU21hcnRGaWx0ZXJCYXIsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRGaWx0ZXJCYXJDb21wb25lbnQpXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1zbWFydC1maWx0ZXItYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHNtYXJ0RmlsdGVyQmFyUHJvdmlkZXIsXG4gICAgICAgIFNtYXJ0RmlsdGVyQmFyU2VydmljZSxcbiAgICAgICAgRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9QUkVTRVRfTUFOQUdFRF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU21hcnRGaWx0ZXJCYXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1zbWFydC1maWx0ZXItYmFyJyxcbiAgICAgICAgJ1tjbGFzcy5mZHAtc21hcnQtZmlsdGVyLWJhci0tdHJhbnNwYXJlbnRdJzogJ3RyYW5zcGFyZW50J1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRvb2xiYXJTZXBhcmF0b3JDb21wb25lbnQsXG4gICAgICAgIFNlYXJjaEZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUb29sYmFyU3BhY2VyRGlyZWN0aXZlLFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRvb2xiYXJJdGVtRGlyZWN0aXZlLFxuICAgICAgICBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50IGV4dGVuZHMgU21hcnRGaWx0ZXJCYXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGb3JtIGdlbmVyYXRvciBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGb3JtR2VuZXJhdG9yQ29tcG9uZW50KSBfZm9ybUdlbmVyYXRvciE6IEZvcm1HZW5lcmF0b3JDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTdWJqZWN0IHdoaWNoIHdpbGwgcHJvdmlkZSBjb25maWd1cmF0aW9uIGRhdGE6IGRhdGEgc291cmNlLCBjb2x1bW5zIGRlZmluaXRpb25zLCBldGMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3ViamVjdCh2YWx1ZTogU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3NldFN1YmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzdWJqZWN0KCk6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHNtYXJ0IGZpbHRlciBiYXIgYmFja2dyb3VuZCBzaG91bGQgYmUgdHJhbnNwYXJlbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdHJhbnNwYXJlbnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl90cmFuc3BhcmVudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRyYW5zcGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sdW1ucyBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWx0ZXJzQ29sdW1uTGF5b3V0OiBOdWxsYWJsZTxzdHJpbmc+ID0gZGVmYXVsdENvbHVtbnNMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHVwZGF0ZSBmaWx0ZXJzIHdoZW4gdGhleSBhcmUgc2VsZWN0ZWQuIE90aGVyd2lzZSwgZmlsdGVycyB3aWxsIGJlIGFwcGxpZWQgb25seSBieSBwcmVzc2luZyBcIkdvXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGl2ZVVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBmaWx0ZXJzIGhhdmUgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNtYXJ0RmlsdGVyc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHNlbGVjdGVkIGZpbHRlcnMgaGFzIGJlZW4gYXBwbGllZCAoVXNlciBjbGlja2VkIG9uIEdvIGJ1dHRvbikuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc21hcnRGaWx0ZXJzQXBwbGllZDogRXZlbnRFbWl0dGVyPFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJDaGFuZ2VPYmplY3Q+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gc2VhcmNoIGlucHV0IGZpZWxkIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VhcmNoSW5wdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VhcmNoSW5wdXQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4oKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oU21hcnRGaWx0ZXJCYXJUb29sYmFySXRlbURpcmVjdGl2ZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90b29sYmFySXRlbVJlZnM6IFF1ZXJ5TGlzdDxTbWFydEZpbHRlckJhclRvb2xiYXJJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZWQgYXJyYXkgb2YgZmlsdGVycyB0byBhcHBseSBmb3IgdGhlIHN1YmplY3QncyBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBmaWx0ZXJCeTogQ29sbGVjdGlvbkZpbHRlckdyb3VwW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFNlYXJjaCBmaWVsZCB2YWx1ZSB0byBhcHBseSBmb3IgdGhlIHN1YmplY3QncyBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBzZWFyY2g6IFNlYXJjaElucHV0IHwgdW5kZWZpbmVkO1xuICAgIC8qKiBASGlkZGVuICovXG4gICAgX3Rvb2xiYXJJdGVtczogVGVtcGxhdGVSZWY8YW55PltdID0gW107XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RlZEZpbHRlcnM6IHN0cmluZ1tdID0gW107XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0ZpbHRlckJhciA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q/LmdldERhdGFTb3VyY2UoKSA/IHRoaXMuX3N1YmplY3QuZ2V0RGF0YVNvdXJjZSgpLmlzRGF0YUxvYWRpbmcgOiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3ViamVjdFN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1HZW5lcmF0b3JSZWFkeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pZ25vcmVQcmVzZXRDaGFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3ViamVjdCE6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyQmFyU2VydmljZTogU21hcnRGaWx0ZXJCYXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9mZ1NlcnZpY2U6IEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLmFkZENvbXBvbmVudChTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50LCBbU01BUlRfRklMVEVSX0JBUl9SRU5ERVJFUl9DT01QT05FTlRdKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zID0gdGhpcy5fdG9vbGJhckl0ZW1SZWZzLnRvQXJyYXkoKS5tYXAoKHJlZikgPT4gcmVmLnRlbXBsYXRlUmVmKTtcblxuICAgICAgICB0aGlzLl90b29sYmFySXRlbVJlZnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zID0gdGhpcy5fdG9vbGJhckl0ZW1SZWZzLnRvQXJyYXkoKS5tYXAoKHJlZikgPT4gcmVmLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUZyb21TdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtcyBjb25kaXRpb24gdmFsdWUgaW50byBodW1hbi1yZWFkYWJsZSB0ZXh0LlxuICAgICAqIEBwYXJhbSBjb25kaXRpb24gU21hcnQgZmlsdGVyIGJhciBjb25kaXRpb24uXG4gICAgICogQHBhcmFtIGZpbHRlclR5cGUgQ29uZGl0aW9uIGZpbHRlciB0eXBlLlxuICAgICAqL1xuICAgIGFzeW5jIGdldERpc3BsYXlWYWx1ZShjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uLCBmaWx0ZXJUeXBlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJCYXJTZXJ2aWNlLmdldERpc3BsYXlWYWx1ZShjb25kaXRpb24sIGZpbHRlclR5cGUpO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIEZpbHRlcmluZyBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93RmlsdGVyaW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRTdWJqZWN0RGVmaW5pdGlvbnMoKTtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogU21hcnRGaWx0ZXJTZXR0aW5nc0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIGZpZWxkczogY29sdW1ucyxcbiAgICAgICAgICAgIGZpbHRlckJ5OiB0aGlzLmZpbHRlckJ5LFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzOiB0aGlzLl9zZWxlY3RlZEZpbHRlcnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBTbWFydEZpbHRlckJhclNldHRpbmdzRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICc1MHJlbScsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuX2luamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChzZWxlY3RlZEZpbHRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnMoc2VsZWN0ZWRGaWx0ZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hJbnB1dENoYW5nZShldmVudDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBldmVudDtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dENoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy5saXZlVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1Ym1pdHMgZmlsdGVycyBhbmQgc2VhcmNoIGZvcm0uXG4gICAgICovXG4gICAgc3VibWl0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIGZvciBzZXR0aW5nIHByZWRlZmluZWQgY29uZmlndXJhdGlvbi4gKi9cbiAgICBhc3luYyBzZXRQcmVzZXQoZGF0YTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2lnbm9yZVByZXNldENoYW5nZSA9IHRydWU7XG4gICAgICAgIGRhdGEuZmlsdGVyQnkgPSBkYXRhLmZpbHRlckJ5IHx8IFtdO1xuICAgICAgICB0aGlzLmZpbHRlckJ5ID0gZGF0YS5maWx0ZXJCeTtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBkYXRhLnNlYXJjaDtcblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yUmVhZHkucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBSZXNldCBmb3JtXG4gICAgICAgICAgICB0aGlzLl9mZ1NlcnZpY2UucmVzZXRGb3JtKHRoaXMuX2Zvcm1HZW5lcmF0b3IuZm9ybSk7XG5cbiAgICAgICAgICAgIC8vIFNldCBuZXcgZGF0YVxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJCeSBvZiB0aGlzLmZpbHRlckJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtQ29udHJvbCh0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0sIGZpbHRlckJ5LmZpZWxkKTtcblxuICAgICAgICAgICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtSXRlbSA9IGNvbnRyb2wuZm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS50cmFuc2Zvcm1Db2xsZWN0aW9uRmlsdGVyKGZpbHRlckJ5KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS5nZXRDb25kaXRpb25GaWVsZFNlbGVjdGVkVmFyaWFudHMoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLFxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnNldFZhbHVlKHNlbGVjdGVkQ29uZGl0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlckJ5Lm1hcCgoZmlsdGVyQnkpID0+IGZpbHRlckJ5LmZpZWxkKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc3ViamVjdC5nZXREYXRhU291cmNlKCk7XG4gICAgICAgICAgICBzb3VyY2UuZGF0YVByb3ZpZGVyLnNldEZpbHRlcnModGhpcy5maWx0ZXJCeSwgdGhpcy5zZWFyY2gpO1xuICAgICAgICAgICAgdGhpcy5zdWJqZWN0LmdldFN1YmplY3QoKS5mZXRjaCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBjdXJyZW50IHByZXNldCBjb25maWd1cmF0aW9uLiAqL1xuICAgIGdldEN1cnJlbnRQcmVzZXQoKTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2gsXG4gICAgICAgICAgICBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB3aGVuIGZvcm0gZ2VuZXJhdG9yIGZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHZhbGlkYXRlZCBhbmQgc3VibWl0dGVkLlxuICAgICAqL1xuICAgIF9vbkZvcm1TdWJtaXR0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25kaXRpb25zID0gdGhpcy5fZ2VuZXJhdGVDb2xsZWN0aW9uRmlsdGVyR3JvdXBzKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXJpbmcoY29uZGl0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENhbGxiYWNrIG1ldGhvZCB3aGVuIGZvcm0gaGFzIGJlZW4gY3JlYXRlZC5cbiAgICAgKiBQb3B1bGF0ZXMgc2VsZWN0ZWQgZmlsdGVycyBhcnJheSB3aXRoIHVzZXItZGVmaW5lZCBkZWZhdWx0IGZpbHRlcnMuXG4gICAgICovXG4gICAgX29uRm9ybUNyZWF0ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YmplY3QpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRmlsdGVycyhbLi4udGhpcy5zdWJqZWN0LmdldERlZmF1bHRGaWVsZHMoKSwgLi4udGhpcy5fc2VsZWN0ZWRGaWx0ZXJzXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gYXdhaXQgdGhpcy5nZXRGb3JtYXR0ZWRDb25kaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zbWFydEZpbHRlcnNDaGFuZ2VkLmVtaXQoeyBmaWx0ZXJCeTogY29uZGl0aW9ucywgc2VhcmNoOiB0aGlzLnNlYXJjaCwgc3ViamVjdDogdGhpcy5zdWJqZWN0IH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpdmVVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUZpbHRlcmluZyhjb25kaXRpb25zKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1HZW5lcmF0b3JSZWFkeS5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdG9nZ2xlRmlsdGVyQmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zaG93RmlsdGVyQmFyID0gIXRoaXMuX3Nob3dGaWx0ZXJCYXI7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHJhdyBmaWx0ZXJzIG9iamVjdCBpbnRvIGFycmF5IG9mIGdyb3VwZWQgZmlsdGVycy5cbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBncm91cGVkIGZpbHRlcnMuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Rm9ybWF0dGVkQ29uZGl0aW9ucygpOiBQcm9taXNlPENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3Vwcyhmb3JtVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVDb2xsZWN0aW9uRmlsdGVyR3JvdXBzKHZhbHVlOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW107XG4gICAgfSk6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbkZpbHRlckdyb3VwczogQ29sbGVjdGlvbkZpbHRlckdyb3VwW10gPSBbXTtcblxuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0U3ViamVjdERlZmluaXRpb25zKCk7XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpXG4gICAgICAgICAgICAuZmlsdGVyKChbLCBmaWVsZENvbmRpdGlvbnNdKSA9PiAhIWZpZWxkQ29uZGl0aW9ucylcbiAgICAgICAgICAgIC5mb3JFYWNoKChbZmllbGROYW1lLCBmaWVsZENvbmRpdGlvbnNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjKSA9PiBjLm5hbWUgPT09IGZpZWxkTmFtZSkgYXMgU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyR3JvdXA6IENvbGxlY3Rpb25GaWx0ZXJHcm91cCA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBjb2x1bW4uY29uZGl0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmaWVsZENvbmRpdGlvbnMuZm9yRWFjaCgoY29uZGl0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckdyb3VwLmZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneTogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29uZGl0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUyOiBjb25kaXRpb24udmFsdWUyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sdW1uLmRhdGFUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbkZpbHRlckdyb3Vwcy5wdXNoKGZpbHRlckdyb3VwKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbXB0eSBmaWx0ZXIgb2JqZWN0cy5cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25GaWx0ZXJHcm91cHMuZmlsdGVyKChmaWx0ZXJHcm91cCkgPT4gZmlsdGVyR3JvdXAuZmlsdGVycz8ubGVuZ3RoID4gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRTdWJqZWN0KHN1YmplY3Q6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXN1YmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N1YmplY3QgPSBzdWJqZWN0O1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlRnJvbVN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TdWJqZWN0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUZyb21TdWJqZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3N1YmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJqZWN0Q29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fc3ViamVjdC5maWVsZHNTdHJlYW0uc3Vic2NyaWJlKGFzeW5jIChjb2x1bW5zOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dlbmVyYXRlRm9ybShjb2x1bW5zLmZpbHRlcigoYykgPT4gYy5maWx0ZXJhYmxlKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZW5lcmF0ZXMgZm9ybSBpdGVtcyB0byBiZSBjb25zdW1lZCBieSBmb3JtIGdlbmVyYXRvciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbHVtbnMgY29sdW1ucyBkZWZpbml0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2VuZXJhdGVGb3JtKGNvbHVtbnM6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaXRlbXM6IER5bmFtaWNGb3JtRmllbGRJdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgY29sdW1uc051bWJlciA9IGdldENvbHVtbnNOdW1iZXIodGhpcy5maWx0ZXJzQ29sdW1uTGF5b3V0ID8/ICcnKTtcbiAgICAgICAgbGV0IGN1cnJlbnRDb2x1bW4gPSAxO1xuXG4gICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgIGxldCBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtID0gdGhpcy5fZ2VuZXJhdGVCYXNlRmllbGRJdGVtKGNvbHVtbik7XG5cbiAgICAgICAgICAgIGlmIChjb2x1bW4ucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEZpbHRlcnMucHVzaChjb2x1bW4ubmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuU0lOR0xFOlxuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5DQVRFR09SWTpcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSAnc2VsZWN0JztcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmlubGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuTVVMVEk6XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ211bHRpLWlucHV0JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuX2dlbmVyYXRlQ3VzdG9tRmlsdGVyRmllbGRJdGVtKGNvbHVtbiwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5JTlBVVDpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5fZ2VuZXJhdGVJbnB1dEZpZWxkSXRlbShjb2x1bW4sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmNvbHVtbiA9IGN1cnJlbnRDb2x1bW47XG4gICAgICAgICAgICBjdXJyZW50Q29sdW1uICs9IDE7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uID4gY29sdW1uc051bWJlcikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4gPSAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb3JtSXRlbXMgPSBpdGVtcztcblxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVDdXN0b21GaWx0ZXJGaWVsZEl0ZW0oXG4gICAgICAgIGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24sXG4gICAgICAgIGl0ZW06IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgaWYgKCFjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSBjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZTtcbiAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS5nZXRDdXN0b21GaWx0ZXJDb25maWd1cmF0aW9uKGNvbHVtbi5jdXN0b21GaWx0ZXJUeXBlKVxuICAgICAgICApO1xuXG4gICAgICAgIGl0ZW0udHlwZSA9IGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS5yZW5kZXJlckNvbXBvbmVudFxuICAgICAgICAgICAgPyBgJHtpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudHlwZX0tcmVuZGVyZXJgXG4gICAgICAgICAgICA6IGl0ZW0udHlwZTtcbiAgICAgICAgaXRlbS50cmFuc2Zvcm1lciA9IGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS52YWx1ZVRyYW5zZm9ybWVyO1xuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZW5lcmF0ZXMgZm9ybSBpdGVtIGJhc2VkIG9uIGRhdGEgdHlwZS5cbiAgICAgKiBAcGFyYW0gY29sdW1uXG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlSW5wdXRGaWVsZEl0ZW0oXG4gICAgICAgIGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24sXG4gICAgICAgIGl0ZW06IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgc3dpdGNoIChjb2x1bW4uZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLkRBVEU6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSAnZGF0ZXBpY2tlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLmNvbnRyb2xUeXBlID0gJ251bWJlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuU1RSSU5HOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEuY29udHJvbFR5cGUgPSAndGV4dCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGJhc2UgZm9ybSBpdGVtIG9iamVjdCB0byBiZSBjb25zdW1lZCBieSBmb3JtIGdlbmVyYXRvciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbHVtbiBjb2x1bW4gZGVmaW5pdGlvblxuICAgICAqIEByZXR1cm5zIGJhc2UgZm9ybSBpdGVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUJhc2VGaWVsZEl0ZW0oY29sdW1uOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbik6IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29sdW1uLm5hbWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjb2x1bW4ubGFiZWwsXG4gICAgICAgICAgICByZXF1aXJlZDogY29sdW1uLnJlcXVpcmVkLFxuICAgICAgICAgICAgdHlwZTogU01BUlRfRklMVEVSX0JBUl9SRU5ERVJFUl9DT01QT05FTlQsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJyAnLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogY29sdW1uLnJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgICBjaG9pY2VzOiBjb2x1bW4uaGFzT3B0aW9ucyA/IHRoaXMuX2dldEZpbHRlckRlZmF1bHRPcHRpb25zKGNvbHVtbi5rZXksIGNvbHVtbi5maWx0ZXJUeXBlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRyYW5zZm9ybWVyOiAoaXRlbVZhbHVlKSA9PiBnZXRTZWxlY3RJdGVtVmFsdWUoaXRlbVZhbHVlKSxcbiAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsRGF0YToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogY29sdW1uLmRhdGFUeXBlLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiBjb2x1bW4uZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbFR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgY2hvaWNlczogY29sdW1uLmhhc09wdGlvbnMgPyB0aGlzLl9nZXRGaWx0ZXJBdmFpbGFibGVPcHRpb25zKGNvbHVtbi5rZXkpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdoZW46ICgpID0+IHRoaXMuX3NlbGVjdGVkRmlsdGVycy5pbmNsdWRlcyhjb2x1bW4ubmFtZSlcbiAgICAgICAgfSBhcyBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXRyaWV2ZXMgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHBhcnRpY3VsYXIgY29sdW1uIGJ5IHVzaW5nIGRhdGEgc291cmNlIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gY29sdW1uIHByb3BlcnR5IG5hbWUgb2YgdGhlIGRhdGEgc291cmNlIGl0ZW1zLlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT59IE9ic2VydmFibGUgd2l0aCB0aGUgYXJyYXkgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RmlsdGVyQXZhaWxhYmxlT3B0aW9ucyhjb2x1bW46IHN0cmluZyk6ICgpID0+IE9ic2VydmFibGU8U2VsZWN0SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLl9nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGaWx0ZXJEZWZhdWx0T3B0aW9ucyhjb2x1bW46IHN0cmluZywgZmlsdGVyVHlwZTogRmlsdGVyVHlwZSk6ICgpID0+IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fZ2V0RmllbGRWYXJpYW50cyhjb2x1bW4pLnBpcGUodGFrZSgxKSkpO1xuXG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9uczogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB2YXJpYW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbjogU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnZXF1YWxUbydcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uLmRpc3BsYXlWYWx1ZSA9IGF3YWl0IHRoaXMuZ2V0RGlzcGxheVZhbHVlKGNvbmRpdGlvbiwgZmlsdGVyVHlwZSk7XG5cbiAgICAgICAgICAgICAgICBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9ucztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEZpZWxkVmFyaWFudHMoY29sdW1uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0LmdldEZpZWxkVmFyaWFudHMoY29sdW1uKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiBkYXRhLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtLnZhbHVlID09PSBpdGVtLnZhbHVlKSA9PT0gaW5kZXgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0U3ViamVjdERlZmluaXRpb25zKCk6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0Py5nZXRTdWJqZWN0RmllbGRzKCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFNldHMgcHJvdmlkZWQgZmlsdGVycyBkaXJlY3RseSB0byB0aGUgZGF0YSBzb3VyY2UuXG4gICAgICogQHBhcmFtIGZpbHRlcnMgYXJyYXkgb2YgZmlsdGVycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9hcHBseUZpbHRlcmluZyhmaWx0ZXJzOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXSk6IHZvaWQge1xuICAgICAgICAvLyBBcHBseSBvdXRzaWRlIGZpbHRlcmluZyBhbmQgZm9yY2Ugc3ViamVjdCB0byBmZXRjaCBuZXcgZGF0YS5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5zdWJqZWN0LmdldERhdGFTb3VyY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJCeSA9IGZpbHRlcnM7XG4gICAgICAgIHNvdXJjZS5kYXRhUHJvdmlkZXIuc2V0RmlsdGVycyhmaWx0ZXJzLCB0aGlzLnNlYXJjaCk7XG4gICAgICAgIHRoaXMuc3ViamVjdC5nZXRTdWJqZWN0KCkuZmV0Y2goKTtcbiAgICAgICAgY29uc3QgZW1pdHRlZFZhbHVlOiBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQgPSB7IHNlYXJjaDogdGhpcy5zZWFyY2gsIGZpbHRlckJ5OiB0aGlzLmZpbHRlckJ5IH07XG4gICAgICAgIHRoaXMuc21hcnRGaWx0ZXJzQXBwbGllZC5lbWl0KHsgLi4uZW1pdHRlZFZhbHVlLCBzdWJqZWN0OiB0aGlzLl9zdWJqZWN0IH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5faWdub3JlUHJlc2V0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNldENoYW5nZWQuZW1pdChlbWl0dGVkVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lnbm9yZVByZXNldENoYW5nZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVGcm9tU3ViamVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRTZWxlY3RlZEZpbHRlcnMoZmlsdGVyczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGY6IHN0cmluZywgaTogbnVtYmVyKSA9PiBmaWx0ZXJzLmluZGV4T2YoZikgPT09IGkpO1xuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yLnJlZnJlc2hTdGVwc1Zpc2liaWxpdHkoKTtcbiAgICB9XG59XG4iLCI8ZGl2PlxuICAgIDxmZC10b29sYmFyIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgIEBpZiAoX3Rvb2xiYXJJdGVtcykge1xuICAgICAgICAgICAgQGZvciAodGVtcGxhdGUgb2YgX3Rvb2xiYXJJdGVtczsgdHJhY2sgdGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvcj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAoaW5wdXRDaGFuZ2UpPVwiX29uU2VhcmNoSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VhcmNoU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICAgICAgICAoY2FuY2VsU2VhcmNoKT1cIl9jYW5jZWxTZWFyY2goKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICAgICAgW2Rpc2FibGVSZWZyZXNoXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnNlYXJjaFBsYWNlaG9sZGVyJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgIEBpZiAoIWxpdmVVcGRhdGUpIHtcbiAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnN1Ym1pdEJ1dHRvbkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBnbHlwaD1cInN5bmNocm9uaXplXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnJlZnJlc2hCdXR0b25BcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dGaWx0ZXJpbmdTZXR0aW5ncygpXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAncGxhdGZvcm1TbWFydEZpbHRlckJhci5maWx0ZXJzQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGU6IHsgZmlsdGVyc0NvdW50OiBfc2VsZWN0ZWRGaWx0ZXJzLmxlbmd0aCB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cIl90b2dnbGVGaWx0ZXJCYXIoKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgKF9zaG93RmlsdGVyQmFyXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuaGlkZUZpbHRlcnNCdXR0b25MYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1TbWFydEZpbHRlckJhci5zaG93RmlsdGVyc0J1dHRvbkxhYmVsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgPC9mZC10b29sYmFyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmRwLXNtYXJ0LWZpbHRlci1iYXJfX2ZpbHRlcnNcIiBbaGlkZGVuXT1cIiFfc2hvd0ZpbHRlckJhclwiPlxuICAgIDxmZHAtZm9ybS1nZW5lcmF0b3JcbiAgICAgICAgKGZvcm1DcmVhdGVkKT1cIl9vbkZvcm1DcmVhdGVkKClcIlxuICAgICAgICAoZm9ybVN1Ym1pdHRlZCk9XCJfb25Gb3JtU3VibWl0dGVkKCRldmVudClcIlxuICAgICAgICBbbm9BZGRpdGlvbmFsQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgW2Zvcm1JdGVtc109XCJfZm9ybUl0ZW1zXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJmaWx0ZXJzQ29sdW1uTGF5b3V0XCJcbiAgICA+PC9mZHAtZm9ybS1nZW5lcmF0b3I+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
43
43
|
exports: [...components]
|
|
44
44
|
}]
|
|
45
45
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NtYXJ0LWZpbHRlci1iYXIvc21hcnQtZmlsdGVyLWJhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSw4RkFBOEYsQ0FBQztBQUN2SixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFFMUcsTUFBTSxVQUFVLEdBQUc7SUFDZix1QkFBdUI7SUFDdkIscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0Qyw4QkFBOEI7SUFDOUIsdUNBQXVDO0lBQ3ZDLHFDQUFxQztJQUNyQyxrQ0FBa0M7Q0FDckMsQ0FBQztBQU1GLE1BQU0sT0FBTyw0QkFBNEI7OEdBQTVCLDRCQUE0QjsrR0FBNUIsNEJBQTRCLFlBYnJDLHVCQUF1QjtZQUN2QixxQ0FBcUM7WUFDckMsc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5Qix1Q0FBdUM7WUFDdkMscUNBQXFDO1lBQ3JDLGtDQUFrQyxhQU5sQyx1QkFBdUI7WUFDdkIscUNBQXFDO1lBQ3JDLHNDQUFzQztZQUN0Qyw4QkFBOEI7WUFDOUIsdUNBQXVDO1lBQ3ZDLHFDQUFxQztZQUNyQyxrQ0FBa0M7K0dBT3pCLDRCQUE0QixZQWJyQyx1QkFBdUI7WUFDdkIscUNBQXFDO1lBR3JDLHVDQUF1QztZQUN2QyxxQ0FBcUM7OzJGQVE1Qiw0QkFBNEI7a0JBSnhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1maWx0ZXItYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24tZmllbGQvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zbWFydC1maWx0ZXItYmFyLWNvbmRpdGlvbnMtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyU2V0dGluZ3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NtYXJ0LWZpbHRlci1iYXItZmllbGQtZGVmaW5pdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NtYXJ0LWZpbHRlci1iYXItc3ViamVjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJUb29sYmFySXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zbWFydC1maWx0ZXItYmFyLXRvb2xiYXItaXRlbS5kaXJlY3RpdmUnO1xuXG5jb25zdCBjb21wb25lbnRzID0gW1xuICAgIFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50LFxuICAgIFNtYXJ0RmlsdGVyQmFyU2V0dGluZ3NEaWFsb2dDb21wb25lbnQsXG4gICAgU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb25EaXJlY3RpdmUsXG4gICAgU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlLFxuICAgIFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uc0RpYWxvZ0NvbXBvbmVudCxcbiAgICBTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50LFxuICAgIFNtYXJ0RmlsdGVyQmFyVG9vbGJhckl0ZW1EaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogWy4uLmNvbXBvbmVudHNdLFxuICAgIGV4cG9ydHM6IFsuLi5jb21wb25lbnRzXVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { FdDate } from '@fundamental-ngx/core/datetime';
|
|
3
3
|
import { FormGeneratorService } from '@fundamental-ngx/platform/form';
|
|
4
|
-
import { FilterableColumnDataType, getFilterStrategiesBasedOnDataType } from '@fundamental-ngx/platform/table';
|
|
5
4
|
import { isSelectItem } from '@fundamental-ngx/platform/shared';
|
|
5
|
+
import { FilterableColumnDataType, getFilterStrategiesBasedOnDataType } from '@fundamental-ngx/platform/table';
|
|
6
6
|
import { selectStrategy } from '@fundamental-ngx/cdk/utils';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@fundamental-ngx/platform/form";
|
|
@@ -173,4 +173,4 @@ export class SmartFilterBarService {
|
|
|
173
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SmartFilterBarService, decorators: [{
|
|
174
174
|
type: Injectable
|
|
175
175
|
}], ctorParameters: () => [{ type: i1.FormGeneratorService }] });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3NtYXJ0LWZpbHRlci1iYXIvc21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFFSCxvQkFBb0IsRUFFdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBRUgsd0JBQXdCLEVBRXhCLGtDQUFrQyxFQUNyQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSxrQ0FBa0MsQ0FBQztBQUk1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUc1RCxNQUFNLE9BQU8scUJBQXFCO0lBSzlCLGNBQWM7SUFDZCxZQUFvQixVQUFnQztRQUFoQyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUxwRCxjQUFjO1FBQ04sNEJBQXVCLEdBQzNCLElBQUksR0FBRyxFQUEyRSxDQUFDO0lBR2hDLENBQUM7SUFFeEQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxPQUF5QztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUMxRCxPQUFPLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1NBQzFEO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsS0FB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QUFDOzhHQXBOUSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQge1xuICAgIEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2wsXG4gICAgRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uRmlsdGVyR3JvdXAsXG4gICAgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLFxuICAgIEZpbHRlckFsbFN0cmF0ZWd5LFxuICAgIGdldEZpbHRlclN0cmF0ZWdpZXNCYXNlZE9uRGF0YVR5cGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZSc7XG5pbXBvcnQgeyBpc1NlbGVjdEl0ZW0sIFNlbGVjdEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY3VzdG9tLWZpbHRlci1jb25maWcnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24nO1xuaW1wb3J0IHsgc2VsZWN0U3RyYXRlZ3kgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTbWFydEZpbHRlckJhclNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VzdG9tRmlsdGVyQ29uZGl0aW9uczogTWFwPFR5cGU8QmFzZUR5bmFtaWNGb3JtR2VuZXJhdG9yQ29udHJvbD4sIFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnPiA9XG4gICAgICAgIG5ldyBNYXA8VHlwZTxCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sPiwgU21hcnRGaWx0ZXJCYXJDdXN0b21GaWx0ZXJDb25maWc+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZnU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGN1c3RvbSBmaWx0ZXIgdHlwZSB0byB0aGUgc21hcnQgZmlsdGVyIGJhci5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb21wb25lbnQgd2FzIGFkZGVkIHN1Y2Nlc3NmdWxseS5cbiAgICAgKi9cbiAgICBhZGRDdXN0b21GaWx0ZXIob3B0aW9uczogU21hcnRGaWx0ZXJCYXJDdXN0b21GaWx0ZXJDb25maWcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbmRpdGlvbkNvbXBvbmVudCAmJiBvcHRpb25zLnJlbmRlcmVyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBvcHRpb25zLmNvbmRpdGlvbkNvbXBvbmVudCA9IG9wdGlvbnMucmVuZGVyZXJDb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29uZGl0aW9uQ29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9mZ1NlcnZpY2UuYWRkQ29tcG9uZW50KG9wdGlvbnMuY29uZGl0aW9uQ29tcG9uZW50LCBvcHRpb25zLnR5cGVzKTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLl9jdXN0b21GaWx0ZXJDb25kaXRpb25zLnNldChvcHRpb25zLmNvbmRpdGlvbkNvbXBvbmVudCwgb3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0ICYmIG9wdGlvbnMucmVuZGVyZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZnU2VydmljZS5hZGRDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBvcHRpb25zLnR5cGVzLm1hcCgodCkgPT4gYCR7dH0tcmVuZGVyZXJgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBwcm92aWRlZCBjb25maWd1cmF0aW9uIG9iamVjdCBvZiB0aGUgY3VzdG9tIGZpbHRlci5cbiAgICAgKiBAcGFyYW0gdHlwZSBGaWx0ZXIgdHlwZS5cbiAgICAgKiBAcmV0dXJucyBDb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKi9cbiAgICBnZXRDdXN0b21GaWx0ZXJDb25maWd1cmF0aW9uKHR5cGU6IHN0cmluZyk6IFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RGVmaW5pdGlvbiA9IHRoaXMuX2ZnU2VydmljZS5nZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKHR5cGUpO1xuXG4gICAgICAgIGlmICghY29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21GaWx0ZXJDb25kaXRpb25zLmdldChjb21wb25lbnREZWZpbml0aW9uLmNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcHBsaWNhYmxlIGNvbmRpdGlvbiBvcHRpb25zIG9mIHRoZSBmaWx0ZXIuXG4gICAgICogQHBhcmFtIHR5cGUgRmlsdGVyIHR5cGUuXG4gICAgICogQHBhcmFtIGRhdGFUeXBlIEZpbHRlciBkYXRhIHR5cGUuXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgYXBwbGljYWJsZSBjb25kaXRpb24gb3B0aW9ucy5cbiAgICAgKi9cbiAgICBnZXRBcHBsaWNhYmxlRmlsdGVyQ29uZGl0aW9ucyhcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBkYXRhVHlwZTogRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlID0gRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLlNUUklOR1xuICAgICk6IEZpbHRlckFsbFN0cmF0ZWd5W10ge1xuICAgICAgICBjb25zdCBjb21wb25lbnREZWZpbml0aW9uID0gdGhpcy5fZmdTZXJ2aWNlLmdldENvbXBvbmVudERlZmluaXRpb25CeVR5cGUodHlwZSk7XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdENvbmRpdGlvbnM6IEZpbHRlckFsbFN0cmF0ZWd5W10gPSBnZXRGaWx0ZXJTdHJhdGVnaWVzQmFzZWRPbkRhdGFUeXBlKFxuICAgICAgICAgICAgZGF0YVR5cGVcbiAgICAgICAgKSBhcyBGaWx0ZXJBbGxTdHJhdGVneVtdO1xuXG4gICAgICAgIGlmICghY29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb25kaXRpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyRGVmaW5pdGlvbiA9IHRoaXMuX2N1c3RvbUZpbHRlckNvbmRpdGlvbnMuZ2V0KGNvbXBvbmVudERlZmluaXRpb24uY29tcG9uZW50KTtcblxuICAgICAgICByZXR1cm4gZmlsdGVyRGVmaW5pdGlvbj8uZmlsdGVyU3RyYXRlZ2llcyB8fCBkZWZhdWx0Q29uZGl0aW9ucztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFzeW5jIGdldERpc3BsYXlWYWx1ZShjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uLCBmaWx0ZXJUeXBlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDdXN0b21GaWx0ZXJDb25maWd1cmF0aW9uKGZpbHRlclR5cGUpO1xuXG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uPy52YWx1ZVJlbmRlcmVyKSB7XG4gICAgICAgICAgICBjb25zdCBvYmogPSBjb25maWd1cmF0aW9uPy52YWx1ZVJlbmRlcmVyKGNvbmRpdGlvbik7XG4gICAgICAgICAgICBjb25zdCBzdHJhdGVneSA9IHNlbGVjdFN0cmF0ZWd5KG9iaik7XG5cbiAgICAgICAgICAgIGxldCByZXR1cm5WYWx1ZSE6IHN0cmluZztcblxuICAgICAgICAgICAgYXdhaXQgc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKG9iaiwgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZTEgPSB0aGlzLl9ub3JtYWxpemVWYWx1ZShjb25kaXRpb24udmFsdWUpO1xuICAgICAgICBjb25zdCB2YWx1ZTIgPSB0aGlzLl9ub3JtYWxpemVWYWx1ZShjb25kaXRpb24udmFsdWUyKTtcblxuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5vcGVyYXRvcikge1xuICAgICAgICAgICAgY2FzZSAnZXF1YWxUbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA9JHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCoke3ZhbHVlMX0qYDtcbiAgICAgICAgICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZTF9Li4uJHt2YWx1ZTJ9YDtcbiAgICAgICAgICAgIGNhc2UgJ2JlZ2luc1dpdGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZTF9KmA7XG4gICAgICAgICAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAqJHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYD4ke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsVG8nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPj0ke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnbGVzc1RoYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWxUbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8PSR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdhZnRlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA+JHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGNhc2UgJ29uT3JBZnRlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA+PSR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdiZWZvcmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdiZWZvcmVPck9uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYDw9JHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3ZhbHVlMX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGZvciBub3JtYWxpemluZyBnZW5lcmF0ZWQgY29uZGl0aW9ucyB0byBkaXNwbGF5IGluIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC5cbiAgICAgKiBAcmV0dXJucyBGb3JtYXR0ZWQgYXJyYXkgb2YgY29uZGl0aW9ucy5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cbiAgICAgKiBAcGFyYW0gY29uZGl0aW9uc1xuICAgICAqL1xuICAgIGFzeW5jIG5vcm1hbGl6ZUNvbmRpdGlvbnMoXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBjb25kaXRpb25zOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdXG4gICAgKTogUHJvbWlzZTxTbWFydEZpbHRlckJhckNvbmRpdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDb25kaXRpb25zOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgY29uZGl0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29uZGl0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgY29uZGl0aW9uKTtcblxuICAgICAgICAgICAgbmV3Q29uZGl0aW9uLmRpc3BsYXlWYWx1ZSA9IGF3YWl0IHRoaXMuZ2V0RGlzcGxheVZhbHVlKFxuICAgICAgICAgICAgICAgIG5ld0NvbmRpdGlvbixcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5ndWlPcHRpb25zPy5hZGRpdGlvbmFsRGF0YS50eXBlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBub3JtYWxpemVkQ29uZGl0aW9ucy5wdXNoKG5ld0NvbmRpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbmRpdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBmb3JtYXR0ZWQgY29uZGl0aW9uIHZhcmlhbnRzLlxuICAgICAqL1xuICAgIGFzeW5jIGdldENvbmRpdGlvbkZpZWxkU2VsZWN0ZWRWYXJpYW50cyhcbiAgICAgICAgZm9ybUl0ZW06IFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGNvbmRpdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW11cbiAgICApOiBQcm9taXNlPFNlbGVjdEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubm9ybWFsaXplQ29uZGl0aW9ucyhmb3JtSXRlbSwgY29uZGl0aW9ucykpLm1hcCgoYzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RJdGVtKGMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbjogU2VsZWN0SXRlbSA9IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogYy5kaXNwbGF5VmFsdWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgY29sbGVjdGlvbiBmaWx0ZXIgaW50byBzbWFydCBmaWx0ZXIgYmFyIGNvbmRpdGlvbi5cbiAgICAgKi9cbiAgICB0cmFuc2Zvcm1Db2xsZWN0aW9uRmlsdGVyKGZpbHRlckdyb3VwOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXApOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlckdyb3VwLmZpbHRlcnMubWFwKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbjogU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IGZpbHRlci5zdHJhdGVneSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlLFxuICAgICAgICAgICAgICAgIHZhbHVlMjogZmlsdGVyLnZhbHVlMlxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE5vcm1hbGl6ZXMgY29uZGl0aW9uIHZhbHVlLlxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgodikgPT4gdGhpcy5fbm9ybWFsaXplVmFsdWUodikpLmpvaW4oJywgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNTZWxlY3RJdGVtKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmxhYmVsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9EYXRlU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zbWFydC1maWx0ZXItYmFyL3NtYXJ0LWZpbHRlci1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEVBRUgsb0JBQW9CLEVBRXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFHSCx3QkFBd0IsRUFDeEIsa0NBQWtDLEVBQ3JDLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFLNUQsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixjQUFjO0lBQ2QsWUFBb0IsVUFBZ0M7UUFBaEMsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFMcEQsY0FBYztRQUNOLDRCQUF1QixHQUMzQixJQUFJLEdBQUcsRUFBMkUsQ0FBQztJQUdoQyxDQUFDO0lBRXhEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsT0FBeUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDMUQsT0FBTyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztTQUMxRDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDN0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxD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TlEscUJBQXFCO2tIQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZERhdGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuaW1wb3J0IHtcbiAgICBCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sLFxuICAgIEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0sIGlzU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7XG4gICAgQ29sbGVjdGlvbkZpbHRlckdyb3VwLFxuICAgIEZpbHRlckFsbFN0cmF0ZWd5LFxuICAgIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZSxcbiAgICBnZXRGaWx0ZXJTdHJhdGVnaWVzQmFzZWRPbkRhdGFUeXBlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUnO1xuXG5pbXBvcnQgeyBzZWxlY3RTdHJhdGVneSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY3VzdG9tLWZpbHRlci1jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJCYXJTZXJ2aWNlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2N1c3RvbUZpbHRlckNvbmRpdGlvbnM6IE1hcDxUeXBlPEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2w+LCBTbWFydEZpbHRlckJhckN1c3RvbUZpbHRlckNvbmZpZz4gPVxuICAgICAgICBuZXcgTWFwPFR5cGU8QmFzZUR5bmFtaWNGb3JtR2VuZXJhdG9yQ29udHJvbD4sIFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mZ1NlcnZpY2U6IEZvcm1HZW5lcmF0b3JTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBjdXN0b20gZmlsdGVyIHR5cGUgdG8gdGhlIHNtYXJ0IGZpbHRlciBiYXIuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgY29tcG9uZW50IHdhcyBhZGRlZCBzdWNjZXNzZnVsbHkuXG4gICAgICovXG4gICAgYWRkQ3VzdG9tRmlsdGVyKG9wdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ3VzdG9tRmlsdGVyQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5jb25kaXRpb25Db21wb25lbnQgJiYgb3B0aW9ucy5yZW5kZXJlckNvbXBvbmVudCkge1xuICAgICAgICAgICAgb3B0aW9ucy5jb25kaXRpb25Db21wb25lbnQgPSBvcHRpb25zLnJlbmRlcmVyQ29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbmRpdGlvbkNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmdTZXJ2aWNlLmFkZENvbXBvbmVudChvcHRpb25zLmNvbmRpdGlvbkNvbXBvbmVudCwgb3B0aW9ucy50eXBlcyk7XG5cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tRmlsdGVyQ29uZGl0aW9ucy5zZXQob3B0aW9ucy5jb25kaXRpb25Db21wb25lbnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdCAmJiBvcHRpb25zLnJlbmRlcmVyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9mZ1NlcnZpY2UuYWRkQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgIG9wdGlvbnMucmVuZGVyZXJDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy50eXBlcy5tYXAoKHQpID0+IGAke3R9LXJlbmRlcmVyYClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgcHJvdmlkZWQgY29uZmlndXJhdGlvbiBvYmplY3Qgb2YgdGhlIGN1c3RvbSBmaWx0ZXIuXG4gICAgICogQHBhcmFtIHR5cGUgRmlsdGVyIHR5cGUuXG4gICAgICogQHJldHVybnMgQ29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICovXG4gICAgZ2V0Q3VzdG9tRmlsdGVyQ29uZmlndXJhdGlvbih0eXBlOiBzdHJpbmcpOiBTbWFydEZpbHRlckJhckN1c3RvbUZpbHRlckNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudERlZmluaXRpb24gPSB0aGlzLl9mZ1NlcnZpY2UuZ2V0Q29tcG9uZW50RGVmaW5pdGlvbkJ5VHlwZSh0eXBlKTtcblxuICAgICAgICBpZiAoIWNvbXBvbmVudERlZmluaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tRmlsdGVyQ29uZGl0aW9ucy5nZXQoY29tcG9uZW50RGVmaW5pdGlvbi5jb21wb25lbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXBwbGljYWJsZSBjb25kaXRpb24gb3B0aW9ucyBvZiB0aGUgZmlsdGVyLlxuICAgICAqIEBwYXJhbSB0eXBlIEZpbHRlciB0eXBlLlxuICAgICAqIEBwYXJhbSBkYXRhVHlwZSBGaWx0ZXIgZGF0YSB0eXBlLlxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGFwcGxpY2FibGUgY29uZGl0aW9uIG9wdGlvbnMuXG4gICAgICovXG4gICAgZ2V0QXBwbGljYWJsZUZpbHRlckNvbmRpdGlvbnMoXG4gICAgICAgIHR5cGU6IHN0cmluZyxcbiAgICAgICAgZGF0YVR5cGU6IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZSA9IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5TVFJJTkdcbiAgICApOiBGaWx0ZXJBbGxTdHJhdGVneVtdIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RGVmaW5pdGlvbiA9IHRoaXMuX2ZnU2VydmljZS5nZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKHR5cGUpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25kaXRpb25zOiBGaWx0ZXJBbGxTdHJhdGVneVtdID0gZ2V0RmlsdGVyU3RyYXRlZ2llc0Jhc2VkT25EYXRhVHlwZShcbiAgICAgICAgICAgIGRhdGFUeXBlXG4gICAgICAgICkgYXMgRmlsdGVyQWxsU3RyYXRlZ3lbXTtcblxuICAgICAgICBpZiAoIWNvbXBvbmVudERlZmluaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29uZGl0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlckRlZmluaXRpb24gPSB0aGlzLl9jdXN0b21GaWx0ZXJDb25kaXRpb25zLmdldChjb21wb25lbnREZWZpbml0aW9uLmNvbXBvbmVudCk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlckRlZmluaXRpb24/LmZpbHRlclN0cmF0ZWdpZXMgfHwgZGVmYXVsdENvbmRpdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhc3luYyBnZXREaXNwbGF5VmFsdWUoY29uZGl0aW9uOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbiwgZmlsdGVyVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuZ2V0Q3VzdG9tRmlsdGVyQ29uZmlndXJhdGlvbihmaWx0ZXJUeXBlKTtcblxuICAgICAgICBpZiAoY29uZmlndXJhdGlvbj8udmFsdWVSZW5kZXJlcikge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gY29uZmlndXJhdGlvbj8udmFsdWVSZW5kZXJlcihjb25kaXRpb24pO1xuICAgICAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSBzZWxlY3RTdHJhdGVneShvYmopO1xuXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWUhOiBzdHJpbmc7XG5cbiAgICAgICAgICAgIGF3YWl0IHN0cmF0ZWd5LmNyZWF0ZVN1YnNjcmlwdGlvbihvYmosICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUxID0gdGhpcy5fbm9ybWFsaXplVmFsdWUoY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgY29uc3QgdmFsdWUyID0gdGhpcy5fbm9ybWFsaXplVmFsdWUoY29uZGl0aW9uLnZhbHVlMik7XG5cbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0b3IpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPSR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdjb250YWlucyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAqJHt2YWx1ZTF9KmA7XG4gICAgICAgICAgICBjYXNlICdiZXR3ZWVuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUxfS4uLiR7dmFsdWUyfWA7XG4gICAgICAgICAgICBjYXNlICdiZWdpbnNXaXRoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUxfSpgO1xuICAgICAgICAgICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKiR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdncmVhdGVyVGhhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA+JHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbFRvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYD49JHt2YWx1ZTF9YDtcbiAgICAgICAgICAgIGNhc2UgJ2xlc3NUaGFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsVG8nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPD0ke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnYWZ0ZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPiR7dmFsdWUxfWA7XG4gICAgICAgICAgICBjYXNlICdvbk9yQWZ0ZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBgPj0ke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3ZhbHVlMX1gO1xuICAgICAgICAgICAgY2FzZSAnYmVmb3JlT3JPbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8PSR7dmFsdWUxfWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZTF9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBmb3Igbm9ybWFsaXppbmcgZ2VuZXJhdGVkIGNvbmRpdGlvbnMgdG8gZGlzcGxheSBpbiBodW1hbi1yZWFkYWJsZSBmb3JtYXQuXG4gICAgICogQHJldHVybnMgRm9ybWF0dGVkIGFycmF5IG9mIGNvbmRpdGlvbnMuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtXG4gICAgICogQHBhcmFtIGNvbmRpdGlvbnNcbiAgICAgKi9cbiAgICBhc3luYyBub3JtYWxpemVDb25kaXRpb25zKFxuICAgICAgICBmb3JtSXRlbTogUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICAgICAgY29uZGl0aW9uczogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXVxuICAgICk6IFByb21pc2U8U21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXT4ge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkQ29uZGl0aW9uczogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbmRpdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGNvbmRpdGlvbik7XG5cbiAgICAgICAgICAgIG5ld0NvbmRpdGlvbi5kaXNwbGF5VmFsdWUgPSBhd2FpdCB0aGlzLmdldERpc3BsYXlWYWx1ZShcbiAgICAgICAgICAgICAgICBuZXdDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZ3VpT3B0aW9ucz8uYWRkaXRpb25hbERhdGEudHlwZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbm9ybWFsaXplZENvbmRpdGlvbnMucHVzaChuZXdDb25kaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRDb25kaXRpb25zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZm9ybWF0dGVkIGNvbmRpdGlvbiB2YXJpYW50cy5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRDb25kaXRpb25GaWVsZFNlbGVjdGVkVmFyaWFudHMoXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBjb25kaXRpb25zOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdXG4gICAgKTogUHJvbWlzZTxTZWxlY3RJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLm5vcm1hbGl6ZUNvbmRpdGlvbnMoZm9ybUl0ZW0sIGNvbmRpdGlvbnMpKS5tYXAoKGM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzU2VsZWN0SXRlbShjKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb246IFNlbGVjdEl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGMuZGlzcGxheVZhbHVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBjXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIGNvbGxlY3Rpb24gZmlsdGVyIGludG8gc21hcnQgZmlsdGVyIGJhciBjb25kaXRpb24uXG4gICAgICovXG4gICAgdHJhbnNmb3JtQ29sbGVjdGlvbkZpbHRlcihmaWx0ZXJHcm91cDogQ29sbGVjdGlvbkZpbHRlckdyb3VwKTogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJHcm91cC5maWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uID0ge1xuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBmaWx0ZXIuc3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTI6IGZpbHRlci52YWx1ZTJcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBOb3JtYWxpemVzIGNvbmRpdGlvbiB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgX25vcm1hbGl6ZVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKHYpID0+IHRoaXMuX25vcm1hbGl6ZVZhbHVlKHYpKS5qb2luKCcsICcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzU2VsZWN0SXRlbSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sYWJlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZkRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXNwbGl0LW1lbnUtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcGxpdC1tZW51LWJ1dHRvbi9mdW5kYW1lbnRhbC1uZ3gtcGxhdGZvcm0tc3BsaXQtbWVudS1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './split-menu-button.component';
|
|
2
2
|
export * from './split-menu-button.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NwbGl0LW1lbnUtYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3BsaXQtbWVudS1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3BsaXQtbWVudS1idXR0b24ubW9kdWxlJztcbiJdfQ==
|