qms-angular 1.0.55 → 1.0.56
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/bundles/qms-angular.umd.js +4003 -12241
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/app-icon/app-icon.module.js +16 -29
- package/esm2015/lib/components/app-icon/icon-registry.service.js +7 -9
- package/esm2015/lib/components/badges/qms-badges.component.js +15 -24
- package/esm2015/lib/components/badges/qms-badges.module.js +18 -33
- package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +13 -19
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +17 -30
- package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +10 -11
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +17 -20
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +28 -40
- package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +26 -50
- package/esm2015/lib/components/button/button-toggle.js +85 -120
- package/esm2015/lib/components/button/button.js +78 -86
- package/esm2015/lib/components/button/button.module.js +27 -51
- package/esm2015/lib/components/comment/comment.js +18 -29
- package/esm2015/lib/components/dialog/dialog.js +28 -38
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +16 -24
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +31 -71
- package/esm2015/lib/components/list/list.js +89 -101
- package/esm2015/lib/components/list/list.module.js +50 -94
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +29 -55
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +20 -39
- package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +22 -32
- package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +25 -35
- package/esm2015/lib/components/related/content/related-content.component.js +12 -19
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +25 -29
- package/esm2015/lib/components/related/popup/related-popup.component.js +33 -50
- package/esm2015/lib/components/related/related.module.js +43 -96
- package/esm2015/lib/components/related/risk/analysis/analysis.component.js +17 -23
- package/esm2015/lib/components/related/risk/list/list.component.js +18 -22
- package/esm2015/lib/components/related/risk/result/result.component.js +16 -23
- package/esm2015/lib/components/related/service/related-global.service.js +6 -7
- package/esm2015/lib/components/related/sidenav/sidenav.component.js +12 -21
- package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-reports.module.js +20 -29
- package/esm2015/lib/components/rich-text/rich-text.js +32 -47
- package/esm2015/lib/components/rich-text/rich-text.module.js +21 -35
- package/esm2015/lib/components/select-dialog/select-dialog.js +16 -31
- package/esm2015/lib/components/select-include-children/select-include-children.component.js +33 -47
- package/esm2015/lib/components/select-include-children/select-include-children.module.js +33 -78
- package/esm2015/lib/components/select-include-children/services/select-global.service.js +6 -7
- package/esm2015/lib/components/suffix-field/suffix-field.directive.js +21 -22
- package/esm2015/lib/components/table/table-action.js +31 -31
- package/esm2015/lib/components/table/table.module.js +21 -37
- package/esm2015/lib/components/test-only/test-only.component.js +11 -14
- package/esm2015/lib/components/tooltip/tooltip.js +19 -24
- package/esm2015/lib/components/tooltip/tooltip.module.js +20 -38
- package/esm2015/lib/components/tree/tree.component.js +33 -46
- package/esm2015/lib/components/tree/tree.module.js +30 -69
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +16 -22
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +31 -71
- package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
- package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +14 -17
- package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +13 -14
- package/esm2015/lib/directives/chips/chip-body.directive.js +10 -11
- package/esm2015/lib/directives/chips/chip.directive.js +13 -13
- package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +16 -19
- package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +20 -26
- package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +15 -19
- package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +18 -25
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +20 -24
- package/esm2015/lib/directives/form.directive.js +51 -48
- package/esm2015/lib/directives/margin.directive.js +14 -15
- package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +10 -11
- package/esm2015/lib/directives/range-slider/range-slider.directive.js +14 -17
- package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +15 -16
- package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
- package/esm2015/lib/directives/search-field.directive.js +22 -21
- package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +14 -15
- package/esm2015/lib/directives/tab/tab-group.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-label.directive.js +10 -11
- package/esm2015/lib/directives/text-block/text-block-line.directive.js +16 -20
- package/esm2015/lib/directives/text-block/text-block.directive.js +14 -17
- package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +13 -14
- package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +22 -35
- package/esm2015/lib/material-module.js +16 -35
- package/esm2015/lib/model/en.js +4 -35
- package/esm2015/lib/model/no.js +3 -34
- package/esm2015/lib/pipe/dateFormat.pipe.js +10 -11
- package/esm2015/lib/qms-angular.component.js +11 -13
- package/esm2015/lib/qms-angular.module.js +121 -232
- package/esm2015/lib/qms-angular.service.js +8 -9
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +12 -32
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +1 -5
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +1 -10
- package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +1 -2
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +16 -23
- package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +19 -34
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +53 -577
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +35 -69
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +8 -12
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +30 -39
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +20 -29
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +23 -35
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +20 -30
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +18 -27
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +4 -7
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +44 -118
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +55 -131
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +26 -66
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +8 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
- package/esm2015/lib/services/translation-registry.service.js +8 -9
- package/esm2015/lib/shared.module.js +4 -9
- package/esm2015/public-api.js +1 -16
- package/esm2015/qms-angular.js +9 -1
- package/fesm2015/qms-angular.js +3031 -11134
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/app-icon/app-icon.module.d.ts +0 -7
- package/lib/components/app-icon/icon-registry.service.d.ts +0 -3
- package/lib/components/badges/qms-badges.component.d.ts +0 -3
- package/lib/components/badges/qms-badges.module.d.ts +0 -9
- package/lib/components/banner/qms-banner/qms-banner.component.d.ts +0 -3
- package/lib/components/banner/qms-banner/qms-banner.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +0 -8
- package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +0 -13
- package/lib/components/button/button-toggle.d.ts +0 -5
- package/lib/components/button/button.d.ts +0 -7
- package/lib/components/button/button.module.d.ts +0 -9
- package/lib/components/comment/comment.d.ts +0 -3
- package/lib/components/dialog/dialog.d.ts +0 -5
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +0 -3
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +0 -16
- package/lib/components/list/list.d.ts +0 -15
- package/lib/components/list/list.module.d.ts +0 -11
- package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +0 -3
- package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +0 -12
- package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -3
- package/lib/components/qms-stepper/qms-stepper.module.d.ts +0 -8
- package/lib/components/related/content/related-content.component.d.ts +0 -3
- package/lib/components/related/list-other-related/list-related.component.d.ts +0 -3
- package/lib/components/related/popup/related-popup.component.d.ts +0 -3
- package/lib/components/related/related.module.d.ts +0 -29
- package/lib/components/related/risk/analysis/analysis.component.d.ts +0 -3
- package/lib/components/related/risk/list/list.component.d.ts +0 -3
- package/lib/components/related/risk/result/result.component.d.ts +0 -3
- package/lib/components/related/service/related-global.service.d.ts +0 -3
- package/lib/components/related/sidenav/sidenav.component.d.ts +0 -3
- package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-reports.module.d.ts +0 -7
- package/lib/components/rich-text/rich-text.d.ts +0 -3
- package/lib/components/rich-text/rich-text.module.d.ts +0 -8
- package/lib/components/select-dialog/select-dialog.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.component.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.module.d.ts +0 -25
- package/lib/components/select-include-children/services/select-global.service.d.ts +0 -3
- package/lib/components/suffix-field/suffix-field.directive.d.ts +0 -5
- package/lib/components/table/table-action.d.ts +0 -5
- package/lib/components/table/table.module.d.ts +0 -8
- package/lib/components/test-only/test-only.component.d.ts +0 -3
- package/lib/components/tooltip/tooltip.d.ts +0 -3
- package/lib/components/tooltip/tooltip.module.d.ts +0 -9
- package/lib/components/tree/tree.component.d.ts +0 -3
- package/lib/components/tree/tree.module.d.ts +0 -22
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +0 -3
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +0 -16
- package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +0 -3
- package/lib/directives/chips/chip-body.directive.d.ts +0 -3
- package/lib/directives/chips/chip.directive.d.ts +0 -3
- package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload.directive.d.ts +0 -5
- package/lib/directives/form.directive.d.ts +0 -11
- package/lib/directives/margin.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider.directive.d.ts +0 -3
- package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +0 -3
- package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -3
- package/lib/directives/search-field.directive.d.ts +0 -5
- package/lib/directives/side-sheet/drawer-content.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group-advanced.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group.directive.d.ts +0 -3
- package/lib/directives/tab/tab-label.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block-line.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-image.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +0 -3
- package/lib/material-module.d.ts +0 -12
- package/lib/model/en.d.ts +0 -31
- package/lib/model/no.d.ts +0 -31
- package/lib/pipe/dateFormat.pipe.d.ts +0 -3
- package/lib/qms-angular.component.d.ts +0 -3
- package/lib/qms-angular.module.d.ts +0 -49
- package/lib/qms-angular.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
- package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +0 -4
- package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +0 -9
- package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +0 -1
- package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -88
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +2 -11
- package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +0 -4
- package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +0 -8
- package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +0 -44
- package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +0 -4
- package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +0 -3
- package/lib/services/translation-registry.service.d.ts +0 -3
- package/lib/shared.module.d.ts +0 -4
- package/lib.theme.scss +0 -8
- package/package.json +2 -1
- package/public-api.d.ts +0 -14
- package/qms-angular.d.ts +8 -1
- package/qms-angular.metadata.json +1 -0
- package/src/assets/jointjs/scss/bpmn.scss +35 -36
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
- package/src/assets/qms-ckeditor-plugin/package-lock.json +12177 -17
- package/src/assets/qms-ckeditor-plugin/package.json +0 -1
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +3 -22
- package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -24
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -7
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +0 -20
- package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +43 -47
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +108 -72
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +3 -4
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +0 -13
- package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +24 -23
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +50 -1
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
- package/src/lib/components/tree/tree.component.scss +1 -1
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +1 -15
- package/src/lib/qms-ckeditor-components/styles/_layout.scss +0 -24
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +0 -7
- package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +0 -16
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +0 -105
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +0 -3762
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +0 -68
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +0 -372
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +0 -1041
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +0 -326
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +0 -318
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +0 -80
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +0 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +0 -43
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +0 -322
- package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +0 -26
- package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +0 -14
- package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +0 -48
- package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +0 -18
- package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +0 -17
- package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +0 -62
- package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +0 -1183
- package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +0 -216
- package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +0 -61
- package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +0 -36
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +0 -18
- package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +0 -44
- package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +0 -13
- package/src/assets/images/ckeditor5.svg +0 -1
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +0 -92
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +0 -93
- package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +0 -202
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
- package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
- package/src/assets/jointjs/images/image-icon1.svg +0 -1
- package/src/assets/jointjs/images/image-icon2.svg +0 -6
- package/src/assets/jointjs/images/image-icon3.svg +0 -11
- package/src/assets/jointjs/images/image-icon4.svg +0 -8
- package/src/assets/jointjs/images/member-female.png +0 -0
- package/src/assets/jointjs/images/member-male.png +0 -0
- package/src/assets/jointjs/images/no-color-icon.svg +0 -72
- package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
- package/src/assets/jointjs/images/save-icon-modern.png +0 -0
- package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
- package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
- package/src/assets/jointjs/images/transparent-icon.svg +0 -50
- package/src/assets/jointjs/scss/style.dark.scss +0 -233
- package/src/assets/jointjs/scss/style.material.scss +0 -234
- package/src/assets/jointjs/scss/style.modern.scss +0 -225
- package/src/assets/jointjs/scss/style.scss +0 -216
- package/src/assets/jointjs/scss/theme-picker.scss +0 -21
- package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +0 -28
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +0 -63
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +0 -58
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +0 -507
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +0 -1
- package/src/lib/components/select-one/select-one.component.scss +0 -240
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +0 -16
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +0 -5
- package/src/themes/_non-bg-srcollbar.scss +0 -4
@@ -1,34 +1,19 @@
|
|
1
|
-
import { EventEmitter, ViewChild, ViewEncapsulation, ViewChildren } from '@angular/core';
|
1
|
+
import { ChangeDetectorRef, EventEmitter, ViewChild, ViewEncapsulation, ViewChildren, ElementRef } from '@angular/core';
|
2
2
|
import { Component, HostListener, Inject } from '@angular/core';
|
3
3
|
import { FormControl } from '@angular/forms';
|
4
4
|
import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
5
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
5
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
6
|
+
import { MatIconRegistry } from '@angular/material/icon';
|
7
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
6
8
|
import { Subject } from 'rxjs';
|
7
9
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
10
|
+
import { TranslateLibraryService } from '../../services/translation-registry.service';
|
11
|
+
import { QMSIconRegistryService } from '../app-icon/icon-registry.service';
|
12
|
+
import { SelectPopupData } from './model/select-popup-data.model';
|
8
13
|
import { SelectOption } from './model/select-option.model';
|
14
|
+
import { QMSSelectGlobalService } from './services/select-global.service';
|
9
15
|
import { TreeComponent } from '../tree/tree.component';
|
10
16
|
import { SelectConst } from './model/select.const';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
import * as i1 from "../../services/translation-registry.service";
|
13
|
-
import * as i2 from "@angular/material/dialog";
|
14
|
-
import * as i3 from "./services/select-global.service";
|
15
|
-
import * as i4 from "@angular/material/icon";
|
16
|
-
import * as i5 from "@angular/platform-browser";
|
17
|
-
import * as i6 from "../app-icon/icon-registry.service";
|
18
|
-
import * as i7 from "@angular/material/autocomplete";
|
19
|
-
import * as i8 from "@angular/cdk/scrolling";
|
20
|
-
import * as i9 from "@angular/material/core";
|
21
|
-
import * as i10 from "../tree/tree.component";
|
22
|
-
import * as i11 from "@angular/material/button";
|
23
|
-
import * as i12 from "@angular/material/slide-toggle";
|
24
|
-
import * as i13 from "../button/button";
|
25
|
-
import * as i14 from "@angular/material/input";
|
26
|
-
import * as i15 from "@angular/forms";
|
27
|
-
import * as i16 from "../../directives/scrollbar/scrollbar.directive";
|
28
|
-
import * as i17 from "@angular/common";
|
29
|
-
import * as i18 from "../../directives/tooltip/tooltip-renderer.directive";
|
30
|
-
import * as i19 from "../../directives/form.directive";
|
31
|
-
import * as i20 from "./model/select-popup-data.model";
|
32
17
|
export class SelectIncludeChildrenPopUpComponent {
|
33
18
|
constructor(cdRef, translate, dialogRef, globalService, iconRegistry, sanitizer, appIconService, elem, data) {
|
34
19
|
this.cdRef = cdRef;
|
@@ -536,27 +521,28 @@ export class SelectIncludeChildrenPopUpComponent {
|
|
536
521
|
this.includeChildren = !!e.checked;
|
537
522
|
}
|
538
523
|
}
|
539
|
-
SelectIncludeChildrenPopUpComponent
|
540
|
-
SelectIncludeChildrenPopUpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: SelectIncludeChildrenPopUpComponent, selector: "qms-select-include-children-popup", host: { listeners: { "window:message": "onMessage($event)" } }, viewQueries: [{ propertyName: "autoComplete", first: true, predicate: ["autoCompleteInputSearch"], descendants: true, read: MatAutocompleteTrigger, static: true }, { propertyName: "dataTrees", predicate: TreeComponent, descendants: true }], ngImport: i0, template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ headerName | uppercase }}</span>\r\n </div>\r\n </div>\r\n \r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n \r\n <div class=\"line__divider\"></div>\r\n \r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"filteredOptions\"\r\n >\r\n <span class=\"search__module-title\">Hello</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n >\r\n <!-- <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item> -->\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n \r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content col-12\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\">\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n ></qms-tree>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n \r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{getItemChipName(item)}}</span>\r\n <mat-icon\r\n *ngIf=\"!treeConfig?.selectOne\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n <div class=\"select__toggle-include\">\r\n <mat-slide-toggle\r\n [checked]=\"includeChildren\"\r\n (change)=\"setValue($event)\"\r\n color=\"default\"\r\n qms-group-options>\r\n <span class=\"text-label\">Select label</span>\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n \r\n <div class=\"line__divider\"></div>\r\n \r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n ", styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .select__toggle-include{width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i8.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation"], outputs: ["scrolledIndexChange"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10.TreeComponent, selector: "qms-tree", inputs: ["treeData", "treeConfig", "selectedData", "selectedRiskData", "disabledList", "expandOnTitleClick"], outputs: ["selectNodeEvent", "selectFolderEvent", "checkBoxEvent", "childCheckedEvent", "nodeExpandEvent", "getChildNodeSelectOne"] }, { type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i12.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i13.QMSButton, selector: "button[qms-btn], button[qms-btn-lg], button[qms-btn-outlined],\n button[qms-btn-outlined-lg], button[qms-btn-text], button[qms-btn-text-lg],\n button[qms-btn-fab],button[qms-btn-fab-sm],button[qms-btn-fab-ext],\n button[qms-btn-fab-outlined],button[qms-btn-fab-outlined-sm],button[qms-btn-fab-outlined-ext]", inputs: ["disabled", "color"], exportAs: ["qmsButton"] }], directives: [{ type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i14.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i15.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i16.QMSScrollbarDirective, selector: "[qms-scrollbar]", inputs: ["isNoneBackground"] }, { type: i17.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i17.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i17.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i18.QMSToolTipRendererDirective, selector: "[qms-tool-tip]", inputs: ["showToolTip", "mode", "qms-tool-tip", "contentTemplate", "position"] }, { type: i19.QMSGroupOptionDirective, selector: "[qms-group-options]" }, { type: i19.AutocompleteOffDirective, selector: "[qms-group-options]" }, { type: i17.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "uppercase": i17.UpperCasePipe }, encapsulation: i0.ViewEncapsulation.None });
|
541
|
-
|
542
|
-
type:
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtaW5jbHVkZS1jaGlsZHJlbi9zZWxlY3QtaW5jbHVkZS1jaGlsZHJlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFlBQVksRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQStCLFlBQVksRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNoSyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVW5ELE1BQU0sT0FBTyxtQ0FBbUM7SUF5QzVDLFlBQ1ksS0FBd0IsRUFDekIsU0FBa0MsRUFDbEMsU0FBNEQsRUFDNUQsYUFBcUMsRUFDcEMsWUFBNkIsRUFDN0IsU0FBdUIsRUFDdkIsY0FBc0MsRUFDdEMsSUFBZ0IsRUFDUSxJQUFxQjtRQVI3QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN6QixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFtRDtRQUM1RCxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBQ3RDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDUSxTQUFJLEdBQUosSUFBSSxDQUFpQjtRQWpEekQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFxQixFQUFFLENBQUM7UUFHaEMsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBQzFDLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUN2QyxpQkFBWSxHQUF3QixFQUFFLENBQUM7UUFFdkMsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBQzlDLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFFNUMsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUl4Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixjQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFDckMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsbUJBQWMsR0FBaUIsSUFBSSxDQUFDO1FBQ3BDLDBCQUFxQixHQUFRLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBaUI5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDbEQsY0FBYyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxjQUFjLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRCxjQUFjLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlELGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUQsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQUs7UUFDWCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLGtCQUFrQixFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqRDtRQUNELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2RixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtRQUNELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3RCO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBR0QscUJBQXFCLENBQUMsSUFBa0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEssTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUNoQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUdqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQ3BILE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3JCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDcEgsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNsQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsb0JBQW9CLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNwSCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM3QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVUsRUFBRSxJQUFXO1FBQy9CLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBb0I7UUFDaEMsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4RyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ3pGLElBQUksYUFBYSxJQUFJLGFBQWEsRUFBRTtZQUNwQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQzlHLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUUxRixJQUFJLFdBQVcsRUFBRTtZQUNqQixJQUFJLGFBQWEsQ0FBQyxZQUFZLElBQUksU0FBUyxFQUFFO2dCQUN6QyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQzthQUNoRTtpQkFDSTtnQkFDRCxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDO2FBQy9DO1NBQ0E7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9CO2FBQ0ksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QjtTQUNKO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsRUFBRTt3QkFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNyQztpQkFDQTthQUNKO1NBRUE7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNqQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUFZLENBQUMsSUFBa0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRTtZQUNsQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztTQUNGO1FBRUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEIsSUFBSSxJQUFTLENBQUM7WUFDZCxJQUFJLE1BQWMsQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFlO1FBQy9CLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO1lBRW5CLE1BQU0sSUFBSSxHQUFhO2dCQUNuQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNuQixRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDMUIsQ0FBQztZQUVGLElBQUksWUFBWSxHQUFlLElBQUksQ0FBQyxRQUFRO2dCQUN4QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3JDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDUixPQUFPO29CQUNILEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTztvQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ3BCLFFBQVEsRUFBRSxFQUFFO29CQUNaLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDeEIsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxjQUFjLEdBQWdCLElBQUksQ0FBQyxRQUFRO2dCQUMzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU1QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO2dCQUM5QixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQzt3QkFDdEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUNSLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO3dCQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUTtxQkFDNUIsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQ0k7Z0JBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7d0JBQ25CLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTt3QkFDUixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUk7d0JBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTt3QkFDdkMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNO3dCQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVE7cUJBQzVCLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNOO1lBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQzNFLElBQUksY0FBYyxFQUFFO2dCQUNoQixjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDQTtRQUNELE9BQU87SUFDWCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGtFQUFrRTtJQUNsRSxJQUFJO0lBRUosb0JBQW9CLENBQUMsSUFBeUI7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRTVCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVwRyxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDckM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3pCLElBQUksUUFBZ0IsQ0FBQztvQkFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO3dCQUNqQixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDakU7eUJBQ0k7d0JBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ2xFO29CQUNELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7NEJBQzVCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7NEJBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7NEJBQzFELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO3lCQUN4QixDQUFDLENBQUM7cUJBQ047aUJBQ0o7Z0JBRUQsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO29CQUN0RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbkcsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7NEJBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7NEJBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFROzRCQUNqSCxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFOzRCQUMxRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7eUJBQ3hCLENBQUMsQ0FBQztxQkFDTjtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUMvRTtZQUVELElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO29CQUNuQixVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUN0QixJQUFJLENBQUMscUJBQXFCLENBQUM7NEJBQzNCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdkIsS0FBSyxFQUFFLENBQUM7NEJBQ1IsVUFBVSxFQUFFLElBQUk7NEJBQ2hCLFFBQVEsRUFBRSxJQUFJOzRCQUNkLFFBQVEsRUFBRSxLQUFLO3lCQUNkLENBQUMsQ0FBQztvQkFDUCxDQUFDLENBQUMsQ0FBQztpQkFDTjtnQkFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25GO1NBQ0o7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUFBLENBQUM7SUFFRixVQUFVO1FBQ04sc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJO1FBQ0osU0FBUztRQUNULDZDQUE2QztRQUM3QyxJQUFJO0lBQ1IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFvQixFQUFFLGFBQXNCO1FBQ3hELElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2pDLElBQUksYUFBYSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM1RztRQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFrQjtRQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFjO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVELG9DQUFvQztJQUNwQywrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyxrREFBa0Q7SUFDbEQsbURBQW1EO0lBQ25ELGdEQUFnRDtJQUNoRCxpREFBaUQ7SUFDakQsMkNBQTJDO0lBQzNDLG1EQUFtRDtJQUNuRCx3Q0FBd0M7SUFDeEMsOENBQThDO0lBQzlDLG1CQUFtQjtJQUNuQix3Q0FBd0M7SUFDeEMsWUFBWTtJQUNaLFFBQVE7SUFDUixnQ0FBZ0M7SUFDaEMsb0NBQW9DO0lBQ3BDLGtEQUFrRDtJQUNsRCw0Q0FBNEM7SUFDNUMsZ0RBQWdEO0lBQ2hELDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsNENBQTRDO0lBQzVDLHdDQUF3QztJQUN4Qyx1Q0FBdUM7SUFDdkMsbUJBQW1CO0lBQ25CLGlDQUFpQztJQUNqQyxZQUFZO0lBQ1osUUFBUTtJQUNSLDBCQUEwQjtJQUMxQiwwQ0FBMEM7SUFDMUMsNkJBQTZCO0lBQzdCLDRCQUE0QjtJQUM1QiwrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLCtCQUErQjtJQUMvQiw4QkFBOEI7SUFDOUIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6QixlQUFlO0lBQ2Ysb0NBQW9DO0lBQ3BDLFFBQVE7SUFDUixJQUFJO0lBRUoscUJBQXFCO0lBQ3JCLG1EQUFtRDtJQUNuRCw4REFBOEQ7SUFDOUQsK0RBQStEO0lBQy9ELDBCQUEwQjtJQUMxQixJQUFJO0lBRVIsNkJBQTZCO0lBQzdCLHNCQUFzQjtJQUN0QiwrQkFBK0I7SUFDL0Isc0NBQXNDO0lBQ3RDLDRCQUE0QjtJQUM1Qix5Q0FBeUM7SUFDekMsZ0NBQWdDO0lBQ2hDLHNDQUFzQztJQUN0Qyw4QkFBOEI7SUFDOUIsbUNBQW1DO0lBQ25DLGlDQUFpQztJQUNqQyxzQ0FBc0M7SUFDdEMscUNBQXFDO0lBQ3JDLDJDQUEyQztJQUMzQyxpQ0FBaUM7SUFDakMsc0NBQXNDO0lBQ3RDLHlDQUF5QztJQUN6QywrQ0FBK0M7SUFDL0MsNEJBQTRCO0lBQzVCLHVDQUF1QztJQUN2QyxrQ0FBa0M7SUFDbEMsbUNBQW1DO0lBQ25DLFFBQVE7SUFDUixNQUFNO0lBRU4sd0NBQXdDO0lBQ3hDLG9HQUFvRztJQUNwRyxnQ0FBZ0M7SUFDaEMsUUFBUTtJQUNSLG1CQUFtQjtJQUNuQixNQUFNO0lBRU4sb0NBQW9DO0lBQ3BDLHFEQUFxRDtJQUNyRCxvRkFBb0Y7SUFDcEYsUUFBUTtJQUNSLDJEQUEyRDtJQUMzRCxxRkFBcUY7SUFDckYsUUFBUTtJQUNSLG1CQUFtQjtJQUNuQixNQUFNO0lBRUYsZ0JBQWdCLENBQUMsSUFBa0I7UUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hLLElBQUksWUFBWSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztnQkFDdkIsRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ25CLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtnQkFDL0IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDO2dCQUNSLFFBQVEsRUFBRSxLQUFLO2FBQ2xCLENBQUMsQ0FBQztTQUNGO2FBQ0k7WUFDRCw0QkFBNEI7U0FDL0I7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQUk7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25LLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxJQUFrQjtRQUNsQyx3QkFBd0I7UUFDeEIscUZBQXFGO1FBQ3JGLHlDQUF5QztRQUN6QywwQ0FBMEM7UUFDMUMsTUFBTTtRQUNOLHFIQUFxSDtRQUNySCx5Q0FBeUM7UUFDekMsdUNBQXVDO1FBQ3ZDLE1BQU07UUFDTixJQUFJLElBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUk7SUFDUixDQUFDO0lBRUwsNENBQTRDO0lBQzVDLG9DQUFvQztJQUNwQyxpREFBaUQ7SUFDakQsOENBQThDO0lBQzlDLGlEQUFpRDtJQUNqRCxvR0FBb0c7SUFDcEcsd0dBQXdHO0lBQ3hHLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsUUFBUTtJQUNSLGlFQUFpRTtJQUNqRSxNQUFNO0lBRUYsbUJBQW1CLENBQUMsSUFBSTs7UUFDcEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUV0QixRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2pILElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbkgsWUFBWSxHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQywwQ0FBRSxTQUFTLDBDQUFFLFFBQVEsRUFBRSxDQUFDO1FBRTlELElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxZQUFZO1FBQzlCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7O2dJQXRrQlEsbUNBQW1DLHVSQWtEaEMsZUFBZTtvSEFsRGxCLG1DQUFtQyw2T0F1Q0Usc0JBQXNCLDBEQUZ0RCxhQUFhLGdEQ2xFL0IsMmtOQXNMRTsyRkR6SlcsbUNBQW1DO2tCQU4vQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFdBQVcsRUFBRSwwQ0FBMEM7b0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO29CQUN2RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQW1EUSxNQUFNOzJCQUFDLGVBQWU7NENBYk0sU0FBUztzQkFBekMsWUFBWTt1QkFBQyxhQUFhLEVBQUUsRUFBRTtnQkFHL0IsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBcUNwRixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRyZWUtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9hcHAtaWNvbi9pY29uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWxlY3RQb3B1cERhdGEgfSBmcm9tICcuL21vZGVsL3NlbGVjdC1wb3B1cC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RlbC9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TU2VsZWN0R2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0LWdsb2JhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlRmxhdE5vZGUgfSBmcm9tICcuLi90cmVlL21vZGVsL3RyZWUtZmxhdC1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RDb25zdCB9IGZyb20gJy4vbW9kZWwvc2VsZWN0LmNvbnN0JztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtc2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4tcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW5jbHVkZS1jaGlsZHJlbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Qb3BVcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIExBTkc6IGFueTtcclxuICAgIGhlYWRlck5hbWUgPSAnJztcclxuICAgIHRyZWVEYXRhOiBBcnJheTxUcmVlTW9kZWw+ID0gW107XHJcbiAgICB0cmVlQ29uZmlnOiBUcmVlQ29uZmlnO1xyXG5cclxuICAgIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8U2VsZWN0T3B0aW9uPiA9IFtdO1xyXG4gICAgU2VsZWN0T3B0aW9uOiBBcnJheTxTZWxlY3RPcHRpb24+ID0gW107XHJcbiAgICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuXHJcbiAgICBjb21tb25DaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gICAgZG9jdW1lbnRDaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gICAgc2luZ2xlUHJvY2Vzc0xpc3Q6IEFycmF5PFNlbGVjdE9wdGlvbj4gPSBbXTtcclxuXHJcbiAgICBpdGVtVHlwZSA9IDA7XHJcbiAgICBzZWxlY3RlZFJpc2tEYXRhOiBhbnkgPSBbXTtcclxuICAgIGRpc2FibGVkTGlzdDogYW55ID0gW107XHJcbiAgICBkaXNhYmxlZExpc3QyOiBhbnkgPSBbXTtcclxuICAgIG1heFNlbGVjdEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gICAgY2FuT25seVNlbGVjdEl0ZW06IGJvb2xlYW47XHJcblxyXG4gICAgaXNEb2N1bWVudEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgc2luZ2xlU2VsZWN0T3B0aW9uID0gZmFsc2U7XHJcbiAgICBzZWFyY2hPcmRlciA9IFtdO1xyXG5cclxuICAgIG15Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gICAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZEZvbGRlcjogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgIGxpc3RDaGlsZHJlblNlbGVjdE9uZTogYW55ID0gW107XHJcbiAgICBpbmNsdWRlQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgb25FeHBhbmRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wdGlvbj4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFRyZWVDb21wb25lbnQsIHt9KSBkYXRhVHJlZXM6IFF1ZXJ5TGlzdDxUcmVlQ29tcG9uZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdhdXRvQ29tcGxldGVJbnB1dFNlYXJjaCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBhdXRvQ29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2VsZWN0SW5jbHVkZUNoaWxkcmVuUG9wVXBDb21wb25lbnQ+LFxyXG4gICAgICAgIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBRTVNTZWxlY3RHbG9iYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgICAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZWxlbTogRWxlbWVudFJlZixcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFNlbGVjdFBvcHVwRGF0YVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJOYW1lID0gZGF0YS5oZWFkZXJOYW1lO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEgPSBkYXRhLnRyZWVEYXRhO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbmZpZyA9IGRhdGEudHJlZUNvbmZpZztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUmlza0RhdGEgPSBkYXRhPy5zZWxlY3RlZE5vZGUgfHwgW107XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZExpc3QgPSBkYXRhLmRpc2FibGVkTGlzdCB8fCBbXTtcclxuICAgICAgICB0aGlzLnNpbmdsZVNlbGVjdE9wdGlvbiA9IGRhdGEudHJlZUNvbmZpZy5zaW5nbGVTZWxlY3RlZE5vZGU7XHJcbiAgICAgICAgdGhpcy5tYXhTZWxlY3RJdGVtQ291bnQgPSBkYXRhLm1heFNlbGVjdEl0ZW1Db3VudDtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclByb2Nlc3NJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclByb2Nlc3NBcmVhSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEb2N1bWVudEljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRm9sZGVySWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEZXZpYXRpb25JY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckNoZWNrbGlzdEljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUmlza0ljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNldFNlYXJjaFJlc3VsdChbXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxyXG4gICAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09IFNlbGVjdENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5teUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVsYXRlZCh2YWwpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlYXJjaE9yZGVyID0gdGhpcy5nZXRTZWFyY2hPcmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMgJiYgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW06IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmlsdGVyKHggPT4gKHguaWQudG9Mb3dlckNhc2UoKSAhPT0gaXRlbS5pZC50b0xvd2VyQ2FzZSgpIHx8IHgucGFyZW50SWQudG9Mb3dlckNhc2UoKSAhPT0gaXRlbS5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSk7XHJcbiAgICAgICAgY29uc3QgdGVtcEFyciA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHRlbXBBcnJEb2N1bWVudCA9IFtdO1xyXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdFByb2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0RG9jdW1lbnRMaXN0ID0gW107XHJcblxyXG5cclxuICAgICAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaWQudG9Mb3dlckNhc2UoKSA9PT0geC5pZC50b0xvd2VyQ2FzZSgpICYmIGVsZW1lbnQucGFyZW50SWQudG9Mb3dlckNhc2UoKSA9PT0geC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHRlbXBBcnIucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaWQudG9Mb3dlckNhc2UoKSA9PT0geC5pZC50b0xvd2VyQ2FzZSgpICYmIGVsZW1lbnQucGFyZW50SWQudG9Mb3dlckNhc2UoKSA9PT0geC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIG5ld1NlbGVjdFByb2Nlc3NMaXN0LnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IG5ld1NlbGVjdFByb2Nlc3NMaXN0O1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gWy4uLnRlbXBBcnJdO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50Q2hlY2tlZExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pZC50b0xvd2VyQ2FzZSgpID09PSB4LmlkLnRvTG93ZXJDYXNlKCkgJiYgZWxlbWVudC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpID09PSB4LnBhcmVudElkLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGVtcEFyckRvY3VtZW50LnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc01hdGNoVHJ1ZShhcnI6IGFueVtdLCBhcnIyOiBhbnlbXSkge1xyXG4gICAgICAgIHJldHVybiBhcnIuZXZlcnkoKGkpID0+IHtcclxuICAgICAgICByZXR1cm4gYXJyMi5pbmNsdWRlcyhpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRSZXN1bHRIZWlnaHQoYXJyPzogU2VsZWN0T3B0aW9uW10pIHtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgICAgbWF4SGVpZ2h0ID0gdGhpcy5nZXRPZmZzZXRIZWlnaHQocG9wdXBfY29udGVudCwgdHJ1ZSkgKyB0aGlzLmdldE9mZnNldEhlaWdodChsaW5lX19kaXZpZGVyLCB0cnVlKSAqIDI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcicpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAodmlld3JlcG9ydHMpIHtcclxuICAgICAgICBpZiAoY29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblNlYXJjaFJlbGF0ZWQoX3ZhbDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICAgICAgICBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5teUNvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgKF92YWwpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoISFfdmFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoX3ZhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZS5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZVtpbmRleF07XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc2Vjb25kRWwgPSB0aGlzLmZpbHRlcmVkT3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0RWwuaWQgPT09IHNlY29uZEVsLmlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zcGxpY2UoaiwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2VhcmNoUmVzdWx0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlSZWxhdGVkKHJlbGF0ZWQ/OiBTZWxlY3RPcHRpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiByZWxhdGVkID8gcmVsYXRlZC5pdGVtTmFtZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RTZWFyY2goaXRlbTogU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkTGlzdCA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICAgICAgdGhpcy5TZWxlY3RPcHRpb24gPSBbXTtcclxuICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4geC5pZCA9PT0gaXRlbS5pZCAmJiB4LnBhcmVudElkID09PSBpdGVtLnBhcmVudElkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IC0xO1xyXG4gICAgICAgIGxldCBub2RlOiBhbnk7XHJcbiAgICAgICAgbGV0IHR5cGVJZDogbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3ROb2RlUmVjdXJzaXZlKGl0ZW06IFRyZWVNb2RlbCkge1xyXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5yb290SWQ7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5vZGU6IFRyZWVOb2RlID0ge1xyXG4gICAgICAgICAgICBpZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0ucm9vdE5hbWUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBsZXQgbm9kZUNoaWxkcmVuOiBUcmVlTm9kZVtdID0gdGhpcy50cmVlRGF0YS5cclxuICAgICAgICAgICAgZmlsdGVyKHggPT4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkKS5cclxuICAgICAgICAgICAgbWFwKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHguY2hpbGRJZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0uY2hpbGROYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucm9vdElkXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBub2RlU3ViZm9sZGVyczogVHJlZU1vZGVsW10gPSB0aGlzLnRyZWVEYXRhLlxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiB4LnBhcmVudElkID09PSBpdGVtLnJvb3RJZCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRyZWVDb25maWcuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudE5hbWU6IGl0ZW0ucm9vdE5hbWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuU2VsZWN0T3B0aW9uLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHguaWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLmRpc3BsYXlJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50TmFtZTogaXRlbS5yb290TmFtZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW25vZGVdLmNvbmNhdChub2RlQ2hpbGRyZW4pKTtcclxuICAgICAgICBpZiAobm9kZVN1YmZvbGRlcnMpIHtcclxuICAgICAgICAgICAgbm9kZVN1YmZvbGRlcnMuZm9yRWFjaChmb2xkZXIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUoZm9sZGVyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0VHlwZVByb2Nlc3MoZXhwYW5kKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIGV4cGFuZCA/IHRoaXMuZGF0YVR5cGUuYXJlYSA6IHRoaXMuZGF0YVR5cGUucHJvY2VzcztcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXRDb21tb25DaGVja2VkTm9kZShsaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+KSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uQ2hlY2tlZExpc3QucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RPcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5leHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLnJvb3RJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbFR5cGU6IGl0ZW0ubGV2ZWxUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RPcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkICYmIHAucm9vdElkID09PSBpdGVtLnBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROYW1lOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5wYXJlbnRJZCA/IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnN1Yk5hbWUgOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxUeXBlOiBpdGVtLmxldmVsVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVQcm9jZXNzTGlzdF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAmJiB0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUxpc3QgPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5zbGljZSgwLCB0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAqIC0xKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZW1vdmVMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGVja2VkTm9kZUxpc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbS5pdGVtTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNDaGlsZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5zbGljZSh0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAqIC0xKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRDbGljaygpIHtcclxuICAgICAgICAvLyBpZiAodGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGb2xkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuY2hlY2tlZE5vZGVMaXN0KTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLlNlbGVjdE9wdGlvbik7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE9mZnNldEhlaWdodChlbGVtZW50OiBIVE1MRWxlbWVudCwgaW5jbHVkZU1hcmdpbjogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGVsbUhlaWdodCA9IDAsIGVsbU1hcmdpbiA9IDA7XHJcblxyXG4gICAgICAgIGVsbUhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIGlmIChpbmNsdWRlTWFyZ2luKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgICBlbG1NYXJnaW4gPSBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpblRvcC5yZXBsYWNlKCdweCcsICcnKSkgKyBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpbkJvdHRvbS5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKGVsbUhlaWdodCArIGVsbU1hcmdpbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUNoaXBOYW1lKGl0ZW06IFNlbGVjdE9wdGlvbikge1xyXG4gICAgICAgIHJldHVybiAoaXRlbS5wYXJlbnROYW1lKSA/IGAke2l0ZW0ucGFyZW50TmFtZX0vJHtpdGVtLml0ZW1OYW1lfWAgOiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBnZXROb2RlSWNvbihpdGVtOiBTZWxlY3RPcHRpb24pIHtcclxuICAgIC8vICAgICBzd2l0Y2ggKGl0ZW0uaXRlbVR5cGUpIHtcclxuICAgIC8vICAgICBjYXNlIERhdGFUeXBlLmZvbGRlcjoge1xyXG4gICAgLy8gICAgICAgICBzd2l0Y2ggKGl0ZW0ubGV2ZWxUeXBlKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkZXBhcnRtZW50X2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgIC8vICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlRvcEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdsb2NhbF9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICBkZWZhdWx0OlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgIC8vICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZGVwYXJ0bWVudCc7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9lbnRlcnByaXNlJztcclxuICAgIC8vICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfbG9jYWwnO1xyXG4gICAgLy8gICAgICAgICBkZWZhdWx0OlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAvLyAgICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ3Byb2Nlc3NfYXJlYV9vdXRsaW5lZCc7XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgLy8gICAgIGNhc2UgRGF0YVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ2RldmlhdGlvbic7XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAvLyAgICAgICAgIHJldHVybiAnY2hlY2tsaXN0JztcclxuICAgIC8vICAgICBjYXNlIERhdGFUeXBlLnJpc2s6XHJcbiAgICAvLyAgICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAvLyAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBnZXRTZWFyY2hPcmRlcigpIHtcclxuICAgIC8vICAgICBsZXQgc2VhcmNoVHlwZXMgPSBPYmplY3Qua2V5cyh0aGlzLmRhdGFUeXBlKVxyXG4gICAgLy8gICAgIC5tYXAoa2V5ID0+ICh7IHZhbHVlOiB0aGlzLmRhdGFUeXBlW2tleV0sIGtleToga2V5IH0pKTtcclxuICAgIC8vICAgICBzZWFyY2hUeXBlcyA9IHNlYXJjaFR5cGVzLnNsaWNlKHNlYXJjaFR5cGVzLmxlbmd0aCAvIDIpO1xyXG4gICAgLy8gICAgIHJldHVybiBzZWFyY2hUeXBlcztcclxuICAgIC8vIH1cclxuXHJcbi8vICAgZ2V0VGl0bGUodHlwZTogbnVtYmVyKSB7XHJcbi8vICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuLy8gICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuUFJPQ0VTU0VTO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmFyZWE6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5QUk9DRVNTX0FSRUE7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5ET0NVTUVOVFM7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuZm9sZGVyOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuRk9MREVSO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuLy8gICAgICAgICByZXR1cm4gdGhpcy5MQU5HLkRFVklBVElPTjtcclxuLy8gICAgICAgY2FzZSBEYXRhVHlwZS5kZXZpYXRpb25UeXBlOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuREVWSUFUSU9OX1RZUEU7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuY2hlY2tsaXN0OlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuQ0hFQ0tMSVNUO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5OlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuQ0hFQ0tMSVNUX0NBVEVHT1JZO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLnJpc2s6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5BU1NFU1NNRU5UO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLnJpc2tGb2xkZXI6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5GT0xERVI7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRQYXJlbnROYW1lKGl0ZW06IFNlbGVjdE9wdGlvbikge1xyXG4vLyAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbi8vICAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWU7XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm4gbnVsbDtcclxuLy8gICB9XHJcblxyXG4vLyAgIGdldEl0ZW1JZChpdGVtOiBTZWxlY3RPcHRpb24pIHtcclxuLy8gICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnByb2Nlc3MpIHtcclxuLy8gICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5QUk9DRVNTX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbi8vICAgICB9XHJcbi8vICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50KSB7XHJcbi8vICAgICAgIHJldHVybiBgJHt0aGlzLkxBTkcuRE9DVU1FTlRfSUR9OiAke2l0ZW0uaXRlbU51bWJlcklkfTsgJHtpdGVtLnN0YXR1c05hbWV9YDtcclxuLy8gICAgIH1cclxuLy8gICAgIHJldHVybiBudWxsO1xyXG4vLyAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RJdGVtKG5vZGU6IFNlbGVjdE9wdGlvbikge1xyXG4gICAgICAgIGNvbnN0IFNlbGVjdE9wdGlvbiA9IHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbmQoeCA9PiAoeC5pZC50b0xvd2VyQ2FzZSgpID09PSBub2RlLmlkLnRvTG93ZXJDYXNlKCkgJiYgeC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpID09PSBub2RlLnBhcmVudElkLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgICBpZiAoU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDaGVja2VkTm9kZUxpc3Qoe1xyXG4gICAgICAgICAgICBpZDogU2VsZWN0T3B0aW9uLmlkLFxyXG4gICAgICAgICAgICBuYW1lOiBub2RlLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogU2VsZWN0T3B0aW9uLnBhcmVudElkLFxyXG4gICAgICAgICAgICBoYXNDaGlsZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGV4cGFuZGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBsZXZlbDogMCxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5zZWxlY3RSZWxhdGVkKG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc05vZGVTZWxlY3RlZChub2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbHRlcih4ID0+ICh4LmlkLnRvTG93ZXJDYXNlKCkgPT09IG5vZGUuaWQudG9Mb3dlckNhc2UoKSAmJiB4LnBhcmVudElkLnRvTG93ZXJDYXNlKCkgPT09IG5vZGUucGFyZW50SWQudG9Mb3dlckNhc2UoKSkpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldENoaWxkcmVuT2ZGb2xkZXIobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuc3BsaXRWaWV3KSB7XHJcbiAgICAgICAgLy8gY29uc3QgcGFyZW50VGV4dHMgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGV4dC1ub2RlLXBhcmVudCcpO1xyXG4gICAgICAgIC8vIFtdLmZvckVhY2guY2FsbChwYXJlbnRUZXh0cywgKGVsKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZS1pdGVtJyk7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgLy8gY29uc3QgaXRlbUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAjXyR7bm9kZS5wYXJlbnRJZCA/IG5vZGUucGFyZW50SWQgOiAnJ31fJHtub2RlLmlkfV8ke25vZGUubGV2ZWx9YCk7XHJcbiAgICAgICAgLy8gW10uZm9yRWFjaC5jYWxsKGl0ZW1FbGVtZW50LCAoZWwpID0+IHtcclxuICAgICAgICAvLyAgICAgZWwuY2xhc3NMaXN0LmFkZCgnYWN0aXZlLWl0ZW0nKTtcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBsZXQgaXRlbSA9IG5ldyBTZWxlY3RPcHRpb24oKTtcclxuICAgICAgICBpdGVtLmlkID0gbm9kZS5pZDtcclxuICAgICAgICBpdGVtLml0ZW1OYW1lID0gbm9kZS5uYW1lO1xyXG4gICAgICAgIGl0ZW0ubGV2ZWxUeXBlID0gbm9kZS5sZXZlbFR5cGU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG5vZGU7XHJcbiAgICAgICAgdGhpcy5vbkV4cGFuZEZvbGRlci5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbi8vICAgY2FuU2hvd1NlYXJjaE9wdGlvbihtb2R1bGVJZDogbnVtYmVyKSB7XHJcbi8vICAgICBpZiAodGhpcy5jYW5Pbmx5U2VsZWN0SXRlbSAmJlxyXG4vLyAgICAgICAobW9kdWxlSWQgPT09IERhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5XHJcbi8vICAgICAgICAgfHwgbW9kdWxlSWQgPT09IERhdGFUeXBlLnJpc2tGb2xkZXJcclxuLy8gICAgICAgICB8fCBtb2R1bGVJZCA9PT0gRGF0YVR5cGUuZGV2aWF0aW9uVHlwZVxyXG4vLyAgICAgICAgIHx8IChtb2R1bGVJZCA9PT0gRGF0YVR5cGUuYXJlYSAmJiB0aGlzLnRyZWVDb25maWcgJiYgIXRoaXMudHJlZUNvbmZpZy5zaW5nbGVTZWxlY3RPcHRpb24pXHJcbi8vICAgICAgICAgfHwgKG1vZHVsZUlkID09PSBEYXRhVHlwZS5mb2xkZXIgJiYgdGhpcy50cmVlQ29uZmlnMiAmJiAhdGhpcy50cmVlQ29uZmlnMi5zaW5nbGVTZWxlY3RPcHRpb24pXHJcbi8vICAgICAgICkpIHtcclxuLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4vLyAgICAgfVxyXG4vLyAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKG1vZHVsZUlkKS5sZW5ndGggPiAwO1xyXG4vLyAgIH1cclxuXHJcbiAgICBzZWxlY3ROb2RlVHJlZUV2ZW50KG5vZGUpIHtcclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgcGFyZW50TmFtZSA9ICcnO1xyXG4gICAgICAgIGxldCBpdGVtTnVtYmVySWQgPSAnJztcclxuXHJcbiAgICAgICAgcG9zaXRpb24gPSAhbm9kZS5leHBhbmRhYmxlID8gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IG5vZGUuaWQgJiYgcC5yb290SWQgPT09IG5vZGUucGFyZW50SWQpIDpcclxuICAgICAgICB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleChwID0+IHAucm9vdElkID09PSBub2RlLmlkKTtcclxuICAgICAgICBwYXJlbnROYW1lID0gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0ucGFyZW50SWQgPyB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5zdWJOYW1lIDogdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0ucm9vdE5hbWU7XHJcbiAgICAgICAgaXRlbU51bWJlcklkID0gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0/LmRpc3BsYXlJZD8udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgICBpdGVtTmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxyXG4gICAgICAgIHBhcmVudE5hbWU6IHBhcmVudE5hbWUsXHJcbiAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtTnVtYmVySWQsXHJcbiAgICAgICAgbGV2ZWxUeXBlOiBub2RlLmxldmVsVHlwZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENoaWxkTm9kZVNlbGVjdE9uZShsaXN0Q2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZSA9IFtdO1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lID0gbGlzdENoaWxkcmVuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFZhbHVlKGUpe1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUNoaWxkcmVuID0gISFlLmNoZWNrZWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInFtc2xpYl9yZWxhdGVkX3BvcHVwXCIgY2xhc3M9XCJxbXNsaWJfX3JlbGF0ZWRfX3BvcHVwX19jb250YWluZXJcIj5cclxuICAgIDxkaXYgaWQ9XCJxbXNsaWJfcmVsYXRlZF9wb3B1cF9oZWFkZXJcIj5cclxuICAgICAgPHNwYW4gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiYnV0dG9uX19jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPGRpdiBpZD1cInFtc2xpYl9yZWxhdGVkX3BvcHVwX2hlYWRlcl8wMDFcIiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICAgICAgPHNwYW4+e3sgaGVhZGVyTmFtZSB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICAgIDxkaXZcclxuICAgICAgaWQ9XCJxbXNsaWJfcmVsYXRlZF9wb3B1cF9zZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImlucHV0X19maWVsZFwiXHJcbiAgICAgIChjbGljayk9XCJzaG93U2VhcmNoUmVzdWx0KClcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjbmFtZVxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IExBTkcuU0VBUkNIIH19XCJcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJteUNvbnRyb2xcIlxyXG4gICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgI2F1dG9Db21wbGV0ZUlucHV0U2VhcmNoXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwibGluZV9fZGl2aWRlclwiPjwvZGl2PlxyXG4gIFxyXG4gICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVJlbGF0ZWRcIlxyXG4gICAgICBjbGFzcz1cIm1hdC1hdXRvY29tcGxldGVfcmVsYXRlZC12aWV3cG9ydFwiXHJcbiAgICA+XHJcbiAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcclxuICAgICAgICBxbXMtc2Nyb2xsYmFyXHJcbiAgICAgICAgaXRlbVNpemU9XCIxMFwiXHJcbiAgICAgICAgY2xhc3M9XCJyZWxhdGVkLXZpZXdwb3J0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHR5cGUgb2Ygc2VhcmNoT3JkZXJcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hfX21vZHVsZS1yZXN1bHRcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImZpbHRlcmVkT3B0aW9uc1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoX19tb2R1bGUtdGl0bGVcIj5IZWxsbzwvc3Bhbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaF9fb3B0aW9uXCJcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGdldE1vZHVsZUZpbHRlcmVkT3B0aW9ucygpXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHFtcy1saXN0LWl0ZW0gdHlwZT1cImltYWdlLXNxdWFyZVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgIGxlYWRpbmctaWNvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiaW1hZ2Utc3F1YXJlXCJcclxuICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiZ2V0Tm9kZUljb24ob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgcW1zLWxpc3QtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgcW1zLWxpbmVcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2FwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgcW1zLXRvb2wtdGlwPVwie3tcclxuICAgICAgICAgICAgICAgICAgICAgIGlzRWxsaXBzaXNBY3RpdmUoc2VhcmNoSXRlbVJlc3VsdCkgPyBvcHRpb24ucGFyZW50TmFtZSA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGU9XCJkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldFBhcmVudE5hbWUob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAjc2VhcmNoSXRlbVJlc3VsdCBjbGFzcz1cInNlYXJjaF9fcmVzdWx0X19wYXJlbnQtbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLnBhcmVudE5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHFtcy1saW5lIHR5cGU9XCJzdWJ0aXRsZVwiIGNsYXNzPVwic2VhcmNoX19vcHRpb24tbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5pdGVtTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24uYnJlYWRjdW1icyAmJiBvcHRpb24uYnJlYWRjdW1icy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHFtcy1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJyZWFkY3J1bWItY29udGFpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG51bURpc3BsYXlJdGVtPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbm9kZXNdPVwib3B0aW9uLmJyZWFkY3VtYnNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L3Ftcy1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBxbXMtbGluZSBjb2xvcj1cImRlZmF1bHQtc3VidGl0bGVcIiAqbmdJZj1cImdldEl0ZW1JZChvcHRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgc2VhcmNoX19kZXNjcmlwdGlvbi1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxfb2ZmZXJcclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICB7eyBnZXRJdGVtSWQob3B0aW9uKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9xbXMtbGlzdC1pdGVtPiAtLT5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gIFxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJxbXMtc2Nyb2xsYmFyIHFtc2xpYl9yZWxhdGVkX3BvcHVwX2NvbnRlbnQgY29sLTEyXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICBwYW5lbF9fY29udGVudF9pdGVtOiBjaGVja2VkTm9kZUxpc3QubGVuZ3RoLFxyXG4gICAgICAgICAgICBwYW5lbF9fY29udGVudDogIWNoZWNrZWROb2RlTGlzdC5sZW5ndGhcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwicW1zbGliX3JlbGF0ZWRfcG9wdXBfY29tbW9uXzAwMlwiPlxyXG4gICAgICAgICAgICAgICAgPHFtcy10cmVlXHJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVEYXRhXT1cInRyZWVEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJlZUNvbmZpZ109XCJ0cmVlQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkUmlza0RhdGFdPVwic2VsZWN0ZWRSaXNrRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkTGlzdF09XCJkaXNhYmxlZExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGVja0JveEV2ZW50KT1cImdldENvbW1vbkNoZWNrZWROb2RlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChub2RlRXhwYW5kRXZlbnQpPVwiZ2V0Q2hpbGRyZW5PZkZvbGRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Tm9kZUV2ZW50KT1cInNlbGVjdE5vZGVUcmVlRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdldENoaWxkTm9kZVNlbGVjdE9uZSk9XCJnZXRDaGlsZE5vZGVTZWxlY3RPbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9xbXMtdHJlZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICAgIDxkaXYgKm5nSWY9XCJjaGVja2VkTm9kZUxpc3QubGVuZ3RoXCIgY2xhc3M9XCJsaW5lX19kaXZpZGVyXCI+PC9kaXY+XHJcbiAgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tlZE5vZGVMaXN0Lmxlbmd0aFwiIGNsYXNzPVwicGFuZWxfX2l0ZW0gcW1zLXNjcm9sbGJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRlZF9faXRlbV9faW5saW5lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hlY2tlZE5vZGVMaXN0XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLml0ZW1OYW1lXCJcclxuICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgIGNsYXNzPVwicmVsYXRlZF9faXRlbV9fY29udGVudFwiXHJcbiAgICAgICAgICBxbXMtdG9vbC10aXA9XCJ7e1xyXG4gICAgICAgICAgICBpc0VsbGlwc2lzQWN0aXZlKGl0ZW1OYW1lKSA/IGdldEl0ZW1DaGlwTmFtZShpdGVtKSA6ICcnXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICBtb2RlPVwiZGFya1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGVkX19pdGVtX19jb250ZW50X25hbWVcIiAjaXRlbU5hbWU+XHJcbiAgICAgICAgICAgICAge3tnZXRJdGVtQ2hpcE5hbWUoaXRlbSl9fTwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgICAgICAqbmdJZj1cIiF0cmVlQ29uZmlnPy5zZWxlY3RPbmVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW0pXCJcclxuICAgICAgICAgICAgPmNhbmNlbDwvbWF0LWljb25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RfX3RvZ2dsZS1pbmNsdWRlXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICAgIFtjaGVja2VkXT1cImluY2x1ZGVDaGlsZHJlblwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNldFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgY29sb3I9XCJkZWZhdWx0XCJcclxuICAgICAgICAgIHFtcy1ncm91cC1vcHRpb25zPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxhYmVsXCI+U2VsZWN0IGxhYmVsPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICAgIDxkaXYgY2xhc3M9XCJsaW5lX19kaXZpZGVyXCI+PC9kaXY+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlybV9fYnV0dG9uX19ncm91cHNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiIWNoZWNrZWROb2RlTGlzdC5sZW5ndGhcIlxyXG4gICAgICAgIHFtcy1idG5cclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDdweFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQWRkQ2xpY2soKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBMQU5HLkFERCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiY2hlY2tlZE5vZGVMaXN0Lmxlbmd0aFwiXHJcbiAgICAgICAgcW1zLWJ0blxyXG4gICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4XCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGRDbGljaygpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IExBTkcuQUREIH19ICh7eyBjaGVja2VkTm9kZUxpc3QubGVuZ3RoIH19KVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHFtcy1idG4tdGV4dFxyXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgJ21hcmdpbi10b3AnOiBjaGVja2VkTm9kZUxpc3QubGVuZ3RoID8gJzBweCcgOiAnN3B4JyB9XCJcclxuICAgICAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgTEFORy5DQU5DRUwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgIl19
|
524
|
+
SelectIncludeChildrenPopUpComponent.decorators = [
|
525
|
+
{ type: Component, args: [{
|
526
|
+
selector: 'qms-select-include-children-popup',
|
527
|
+
template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ headerName | uppercase }}</span>\r\n </div>\r\n </div>\r\n \r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n \r\n <div class=\"line__divider\"></div>\r\n \r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"filteredOptions\"\r\n >\r\n <span class=\"search__module-title\">Hello</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n >\r\n <!-- <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item> -->\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n \r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content col-12\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\">\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n ></qms-tree>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n \r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{getItemChipName(item)}}</span>\r\n <mat-icon\r\n *ngIf=\"!treeConfig?.selectOne\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n <div class=\"select__toggle-include\">\r\n <mat-slide-toggle\r\n [checked]=\"includeChildren\"\r\n (change)=\"setValue($event)\"\r\n color=\"default\"\r\n qms-group-options>\r\n <span class=\"text-label\">Select label</span>\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n \r\n <div class=\"line__divider\"></div>\r\n \r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n ",
|
528
|
+
encapsulation: ViewEncapsulation.None,
|
529
|
+
styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .select__toggle-include{width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
|
530
|
+
},] }
|
531
|
+
];
|
532
|
+
SelectIncludeChildrenPopUpComponent.ctorParameters = () => [
|
533
|
+
{ type: ChangeDetectorRef },
|
534
|
+
{ type: TranslateLibraryService },
|
535
|
+
{ type: MatDialogRef },
|
536
|
+
{ type: QMSSelectGlobalService },
|
537
|
+
{ type: MatIconRegistry },
|
538
|
+
{ type: DomSanitizer },
|
539
|
+
{ type: QMSIconRegistryService },
|
540
|
+
{ type: ElementRef },
|
541
|
+
{ type: SelectPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
542
|
+
];
|
543
|
+
SelectIncludeChildrenPopUpComponent.propDecorators = {
|
544
|
+
dataTrees: [{ type: ViewChildren, args: [TreeComponent, {},] }],
|
545
|
+
autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
|
546
|
+
onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
|
547
|
+
};
|
548
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUs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QUN0Qzs7O1lBNUJRLGlCQUFpQjtZQVVqQix1QkFBdUI7WUFOdkIsWUFBWTtZQVdaLHNCQUFzQjtZQVZ0QixlQUFlO1lBQ2YsWUFBWTtZQUtaLHNCQUFzQjtZQVgrRixVQUFVO1lBWS9ILGVBQWUsdUJBbUVmLE1BQU0sU0FBQyxlQUFlOzs7d0JBYjFCLFlBQVksU0FBQyxhQUFhLEVBQUUsRUFBRTsyQkFFOUIsU0FBUyxTQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBb0NuRixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRyZWUtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9hcHAtaWNvbi9pY29uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWxlY3RQb3B1cERhdGEgfSBmcm9tICcuL21vZGVsL3NlbGVjdC1wb3B1cC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RlbC9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TU2VsZWN0R2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0LWdsb2JhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlRmxhdE5vZGUgfSBmcm9tICcuLi90cmVlL21vZGVsL3RyZWUtZmxhdC1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RDb25zdCB9IGZyb20gJy4vbW9kZWwvc2VsZWN0LmNvbnN0JztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtc2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4tcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW5jbHVkZS1jaGlsZHJlbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Qb3BVcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIExBTkc6IGFueTtcclxuICAgIGhlYWRlck5hbWUgPSAnJztcclxuICAgIHRyZWVEYXRhOiBBcnJheTxUcmVlTW9kZWw+ID0gW107XHJcbiAgICB0cmVlQ29uZmlnOiBUcmVlQ29uZmlnO1xyXG5cclxuICAgIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8U2VsZWN0T3B0aW9uPiA9IFtdO1xyXG4gICAgU2VsZWN0T3B0aW9uOiBBcnJheTxTZWxlY3RPcHRpb24+ID0gW107XHJcbiAgICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuXHJcbiAgICBjb21tb25DaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gICAgZG9jdW1lbnRDaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gICAgc2luZ2xlUHJvY2Vzc0xpc3Q6IEFycmF5PFNlbGVjdE9wdGlvbj4gPSBbXTtcclxuXHJcbiAgICBpdGVtVHlwZSA9IDA7XHJcbiAgICBzZWxlY3RlZFJpc2tEYXRhOiBhbnkgPSBbXTtcclxuICAgIGRpc2FibGVkTGlzdDogYW55ID0gW107XHJcbiAgICBkaXNhYmxlZExpc3QyOiBhbnkgPSBbXTtcclxuICAgIG1heFNlbGVjdEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gICAgY2FuT25seVNlbGVjdEl0ZW06IGJvb2xlYW47XHJcblxyXG4gICAgaXNEb2N1bWVudEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgc2luZ2xlU2VsZWN0T3B0aW9uID0gZmFsc2U7XHJcbiAgICBzZWFyY2hPcmRlciA9IFtdO1xyXG5cclxuICAgIG15Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gICAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZEZvbGRlcjogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgIGxpc3RDaGlsZHJlblNlbGVjdE9uZTogYW55ID0gW107XHJcbiAgICBpbmNsdWRlQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgb25FeHBhbmRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wdGlvbj4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFRyZWVDb21wb25lbnQsIHt9KSBkYXRhVHJlZXM6IFF1ZXJ5TGlzdDxUcmVlQ29tcG9uZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdhdXRvQ29tcGxldGVJbnB1dFNlYXJjaCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBhdXRvQ29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2VsZWN0SW5jbHVkZUNoaWxkcmVuUG9wVXBDb21wb25lbnQ+LFxyXG4gICAgICAgIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBRTVNTZWxlY3RHbG9iYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgICAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZWxlbTogRWxlbWVudFJlZixcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFNlbGVjdFBvcHVwRGF0YVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJOYW1lID0gZGF0YS5oZWFkZXJOYW1lO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEgPSBkYXRhLnRyZWVEYXRhO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbmZpZyA9IGRhdGEudHJlZUNvbmZpZztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUmlza0RhdGEgPSBkYXRhPy5zZWxlY3RlZE5vZGUgfHwgW107XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZExpc3QgPSBkYXRhLmRpc2FibGVkTGlzdCB8fCBbXTtcclxuICAgICAgICB0aGlzLnNpbmdsZVNlbGVjdE9wdGlvbiA9IGRhdGEudHJlZUNvbmZpZy5zaW5nbGVTZWxlY3RlZE5vZGU7XHJcbiAgICAgICAgdGhpcy5tYXhTZWxlY3RJdGVtQ291bnQgPSBkYXRhLm1heFNlbGVjdEl0ZW1Db3VudDtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclByb2Nlc3NJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclByb2Nlc3NBcmVhSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEb2N1bWVudEljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRm9sZGVySWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEZXZpYXRpb25JY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckNoZWNrbGlzdEljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUmlza0ljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNldFNlYXJjaFJlc3VsdChbXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxyXG4gICAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09IFNlbGVjdENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5teUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVsYXRlZCh2YWwpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlYXJjaE9yZGVyID0gdGhpcy5nZXRTZWFyY2hPcmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMgJiYgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW06IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmlsdGVyKHggPT4gKHguaWQudG9Mb3dlckNhc2UoKSAhPT0gaXRlbS5pZC50b0xvd2VyQ2FzZSgpIHx8IHgucGFyZW50SWQudG9Mb3dlckNhc2UoKSAhPT0gaXRlbS5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSk7XHJcbiAgICAgICAgY29uc3QgdGVtcEFyciA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHRlbXBBcnJEb2N1bWVudCA9IFtdO1xyXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdFByb2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0RG9jdW1lbnRMaXN0ID0gW107XHJcblxyXG5cclxuICAgICAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaWQudG9Mb3dlckNhc2UoKSA9PT0geC5pZC50b0xvd2VyQ2FzZSgpICYmIGVsZW1lbnQucGFyZW50SWQudG9Mb3dlckNhc2UoKSA9PT0geC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHRlbXBBcnIucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaWQudG9Mb3dlckNhc2UoKSA9PT0geC5pZC50b0xvd2VyQ2FzZSgpICYmIGVsZW1lbnQucGFyZW50SWQudG9Mb3dlckNhc2UoKSA9PT0geC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIG5ld1NlbGVjdFByb2Nlc3NMaXN0LnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IG5ld1NlbGVjdFByb2Nlc3NMaXN0O1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gWy4uLnRlbXBBcnJdO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50Q2hlY2tlZExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pZC50b0xvd2VyQ2FzZSgpID09PSB4LmlkLnRvTG93ZXJDYXNlKCkgJiYgZWxlbWVudC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpID09PSB4LnBhcmVudElkLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGVtcEFyckRvY3VtZW50LnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc01hdGNoVHJ1ZShhcnI6IGFueVtdLCBhcnIyOiBhbnlbXSkge1xyXG4gICAgICAgIHJldHVybiBhcnIuZXZlcnkoKGkpID0+IHtcclxuICAgICAgICByZXR1cm4gYXJyMi5pbmNsdWRlcyhpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRSZXN1bHRIZWlnaHQoYXJyPzogU2VsZWN0T3B0aW9uW10pIHtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgICAgbWF4SGVpZ2h0ID0gdGhpcy5nZXRPZmZzZXRIZWlnaHQocG9wdXBfY29udGVudCwgdHJ1ZSkgKyB0aGlzLmdldE9mZnNldEhlaWdodChsaW5lX19kaXZpZGVyLCB0cnVlKSAqIDI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcicpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAodmlld3JlcG9ydHMpIHtcclxuICAgICAgICBpZiAoY29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblNlYXJjaFJlbGF0ZWQoX3ZhbDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICAgICAgICBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5teUNvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgKF92YWwpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoISFfdmFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoX3ZhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZS5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZVtpbmRleF07XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc2Vjb25kRWwgPSB0aGlzLmZpbHRlcmVkT3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0RWwuaWQgPT09IHNlY29uZEVsLmlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zcGxpY2UoaiwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2VhcmNoUmVzdWx0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlSZWxhdGVkKHJlbGF0ZWQ/OiBTZWxlY3RPcHRpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiByZWxhdGVkID8gcmVsYXRlZC5pdGVtTmFtZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RTZWFyY2goaXRlbTogU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkTGlzdCA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICAgICAgdGhpcy5TZWxlY3RPcHRpb24gPSBbXTtcclxuICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4geC5pZCA9PT0gaXRlbS5pZCAmJiB4LnBhcmVudElkID09PSBpdGVtLnBhcmVudElkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IC0xO1xyXG4gICAgICAgIGxldCBub2RlOiBhbnk7XHJcbiAgICAgICAgbGV0IHR5cGVJZDogbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3ROb2RlUmVjdXJzaXZlKGl0ZW06IFRyZWVNb2RlbCkge1xyXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5yb290SWQ7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5vZGU6IFRyZWVOb2RlID0ge1xyXG4gICAgICAgICAgICBpZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0ucm9vdE5hbWUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBsZXQgbm9kZUNoaWxkcmVuOiBUcmVlTm9kZVtdID0gdGhpcy50cmVlRGF0YS5cclxuICAgICAgICAgICAgZmlsdGVyKHggPT4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkKS5cclxuICAgICAgICAgICAgbWFwKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHguY2hpbGRJZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0uY2hpbGROYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucm9vdElkXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBub2RlU3ViZm9sZGVyczogVHJlZU1vZGVsW10gPSB0aGlzLnRyZWVEYXRhLlxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiB4LnBhcmVudElkID09PSBpdGVtLnJvb3RJZCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRyZWVDb25maWcuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudE5hbWU6IGl0ZW0ucm9vdE5hbWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuU2VsZWN0T3B0aW9uLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHguaWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLmRpc3BsYXlJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50TmFtZTogaXRlbS5yb290TmFtZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW25vZGVdLmNvbmNhdChub2RlQ2hpbGRyZW4pKTtcclxuICAgICAgICBpZiAobm9kZVN1YmZvbGRlcnMpIHtcclxuICAgICAgICAgICAgbm9kZVN1YmZvbGRlcnMuZm9yRWFjaChmb2xkZXIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUoZm9sZGVyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0VHlwZVByb2Nlc3MoZXhwYW5kKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIGV4cGFuZCA/IHRoaXMuZGF0YVR5cGUuYXJlYSA6IHRoaXMuZGF0YVR5cGUucHJvY2VzcztcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXRDb21tb25DaGVja2VkTm9kZShsaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+KSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uQ2hlY2tlZExpc3QucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RPcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5leHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLnJvb3RJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbFR5cGU6IGl0ZW0ubGV2ZWxUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RPcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkICYmIHAucm9vdElkID09PSBpdGVtLnBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROYW1lOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5wYXJlbnRJZCA/IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnN1Yk5hbWUgOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxUeXBlOiBpdGVtLmxldmVsVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVQcm9jZXNzTGlzdF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAmJiB0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUxpc3QgPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5zbGljZSgwLCB0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAqIC0xKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZW1vdmVMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGVja2VkTm9kZUxpc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbS5pdGVtTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNDaGlsZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5zbGljZSh0aGlzLm1heFNlbGVjdEl0ZW1Db3VudCAqIC0xKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRDbGljaygpIHtcclxuICAgICAgICAvLyBpZiAodGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGb2xkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuY2hlY2tlZE5vZGVMaXN0KTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLlNlbGVjdE9wdGlvbik7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE9mZnNldEhlaWdodChlbGVtZW50OiBIVE1MRWxlbWVudCwgaW5jbHVkZU1hcmdpbjogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGVsbUhlaWdodCA9IDAsIGVsbU1hcmdpbiA9IDA7XHJcblxyXG4gICAgICAgIGVsbUhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIGlmIChpbmNsdWRlTWFyZ2luKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgICBlbG1NYXJnaW4gPSBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpblRvcC5yZXBsYWNlKCdweCcsICcnKSkgKyBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpbkJvdHRvbS5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKGVsbUhlaWdodCArIGVsbU1hcmdpbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUNoaXBOYW1lKGl0ZW06IFNlbGVjdE9wdGlvbikge1xyXG4gICAgICAgIHJldHVybiAoaXRlbS5wYXJlbnROYW1lKSA/IGAke2l0ZW0ucGFyZW50TmFtZX0vJHtpdGVtLml0ZW1OYW1lfWAgOiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBnZXROb2RlSWNvbihpdGVtOiBTZWxlY3RPcHRpb24pIHtcclxuICAgIC8vICAgICBzd2l0Y2ggKGl0ZW0uaXRlbVR5cGUpIHtcclxuICAgIC8vICAgICBjYXNlIERhdGFUeXBlLmZvbGRlcjoge1xyXG4gICAgLy8gICAgICAgICBzd2l0Y2ggKGl0ZW0ubGV2ZWxUeXBlKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkZXBhcnRtZW50X2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgIC8vICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlRvcEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdsb2NhbF9mb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICBkZWZhdWx0OlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgIC8vICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZGVwYXJ0bWVudCc7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgLy8gICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9lbnRlcnByaXNlJztcclxuICAgIC8vICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfbG9jYWwnO1xyXG4gICAgLy8gICAgICAgICBkZWZhdWx0OlxyXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAvLyAgICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ3Byb2Nlc3NfYXJlYV9vdXRsaW5lZCc7XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgLy8gICAgIGNhc2UgRGF0YVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgLy8gICAgICAgICByZXR1cm4gJ2RldmlhdGlvbic7XHJcbiAgICAvLyAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAvLyAgICAgICAgIHJldHVybiAnY2hlY2tsaXN0JztcclxuICAgIC8vICAgICBjYXNlIERhdGFUeXBlLnJpc2s6XHJcbiAgICAvLyAgICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAvLyAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBnZXRTZWFyY2hPcmRlcigpIHtcclxuICAgIC8vICAgICBsZXQgc2VhcmNoVHlwZXMgPSBPYmplY3Qua2V5cyh0aGlzLmRhdGFUeXBlKVxyXG4gICAgLy8gICAgIC5tYXAoa2V5ID0+ICh7IHZhbHVlOiB0aGlzLmRhdGFUeXBlW2tleV0sIGtleToga2V5IH0pKTtcclxuICAgIC8vICAgICBzZWFyY2hUeXBlcyA9IHNlYXJjaFR5cGVzLnNsaWNlKHNlYXJjaFR5cGVzLmxlbmd0aCAvIDIpO1xyXG4gICAgLy8gICAgIHJldHVybiBzZWFyY2hUeXBlcztcclxuICAgIC8vIH1cclxuXHJcbi8vICAgZ2V0VGl0bGUodHlwZTogbnVtYmVyKSB7XHJcbi8vICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuLy8gICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuUFJPQ0VTU0VTO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmFyZWE6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5QUk9DRVNTX0FSRUE7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5ET0NVTUVOVFM7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuZm9sZGVyOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuRk9MREVSO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuLy8gICAgICAgICByZXR1cm4gdGhpcy5MQU5HLkRFVklBVElPTjtcclxuLy8gICAgICAgY2FzZSBEYXRhVHlwZS5kZXZpYXRpb25UeXBlOlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuREVWSUFUSU9OX1RZUEU7XHJcbi8vICAgICAgIGNhc2UgRGF0YVR5cGUuY2hlY2tsaXN0OlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuQ0hFQ0tMSVNUO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5OlxyXG4vLyAgICAgICAgIHJldHVybiB0aGlzLkxBTkcuQ0hFQ0tMSVNUX0NBVEVHT1JZO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLnJpc2s6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5BU1NFU1NNRU5UO1xyXG4vLyAgICAgICBjYXNlIERhdGFUeXBlLnJpc2tGb2xkZXI6XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuTEFORy5GT0xERVI7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRQYXJlbnROYW1lKGl0ZW06IFNlbGVjdE9wdGlvbikge1xyXG4vLyAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbi8vICAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWU7XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm4gbnVsbDtcclxuLy8gICB9XHJcblxyXG4vLyAgIGdldEl0ZW1JZChpdGVtOiBTZWxlY3RPcHRpb24pIHtcclxuLy8gICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnByb2Nlc3MpIHtcclxuLy8gICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5QUk9DRVNTX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbi8vICAgICB9XHJcbi8vICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50KSB7XHJcbi8vICAgICAgIHJldHVybiBgJHt0aGlzLkxBTkcuRE9DVU1FTlRfSUR9OiAke2l0ZW0uaXRlbU51bWJlcklkfTsgJHtpdGVtLnN0YXR1c05hbWV9YDtcclxuLy8gICAgIH1cclxuLy8gICAgIHJldHVybiBudWxsO1xyXG4vLyAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RJdGVtKG5vZGU6IFNlbGVjdE9wdGlvbikge1xyXG4gICAgICAgIGNvbnN0IFNlbGVjdE9wdGlvbiA9IHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbmQoeCA9PiAoeC5pZC50b0xvd2VyQ2FzZSgpID09PSBub2RlLmlkLnRvTG93ZXJDYXNlKCkgJiYgeC5wYXJlbnRJZC50b0xvd2VyQ2FzZSgpID09PSBub2RlLnBhcmVudElkLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgICBpZiAoU2VsZWN0T3B0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDaGVja2VkTm9kZUxpc3Qoe1xyXG4gICAgICAgICAgICBpZDogU2VsZWN0T3B0aW9uLmlkLFxyXG4gICAgICAgICAgICBuYW1lOiBub2RlLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogU2VsZWN0T3B0aW9uLnBhcmVudElkLFxyXG4gICAgICAgICAgICBoYXNDaGlsZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGV4cGFuZGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBsZXZlbDogMCxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5zZWxlY3RSZWxhdGVkKG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc05vZGVTZWxlY3RlZChub2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbHRlcih4ID0+ICh4LmlkLnRvTG93ZXJDYXNlKCkgPT09IG5vZGUuaWQudG9Mb3dlckNhc2UoKSAmJiB4LnBhcmVudElkLnRvTG93ZXJDYXNlKCkgPT09IG5vZGUucGFyZW50SWQudG9Mb3dlckNhc2UoKSkpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldENoaWxkcmVuT2ZGb2xkZXIobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuc3BsaXRWaWV3KSB7XHJcbiAgICAgICAgLy8gY29uc3QgcGFyZW50VGV4dHMgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGV4dC1ub2RlLXBhcmVudCcpO1xyXG4gICAgICAgIC8vIFtdLmZvckVhY2guY2FsbChwYXJlbnRUZXh0cywgKGVsKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZS1pdGVtJyk7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgLy8gY29uc3QgaXRlbUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAjXyR7bm9kZS5wYXJlbnRJZCA/IG5vZGUucGFyZW50SWQgOiAnJ31fJHtub2RlLmlkfV8ke25vZGUubGV2ZWx9YCk7XHJcbiAgICAgICAgLy8gW10uZm9yRWFjaC5jYWxsKGl0ZW1FbGVtZW50LCAoZWwpID0+IHtcclxuICAgICAgICAvLyAgICAgZWwuY2xhc3NMaXN0LmFkZCgnYWN0aXZlLWl0ZW0nKTtcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBsZXQgaXRlbSA9IG5ldyBTZWxlY3RPcHRpb24oKTtcclxuICAgICAgICBpdGVtLmlkID0gbm9kZS5pZDtcclxuICAgICAgICBpdGVtLml0ZW1OYW1lID0gbm9kZS5uYW1lO1xyXG4gICAgICAgIGl0ZW0ubGV2ZWxUeXBlID0gbm9kZS5sZXZlbFR5cGU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG5vZGU7XHJcbiAgICAgICAgdGhpcy5vbkV4cGFuZEZvbGRlci5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbi8vICAgY2FuU2hvd1NlYXJjaE9wdGlvbihtb2R1bGVJZDogbnVtYmVyKSB7XHJcbi8vICAgICBpZiAodGhpcy5jYW5Pbmx5U2VsZWN0SXRlbSAmJlxyXG4vLyAgICAgICAobW9kdWxlSWQgPT09IERhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5XHJcbi8vICAgICAgICAgfHwgbW9kdWxlSWQgPT09IERhdGFUeXBlLnJpc2tGb2xkZXJcclxuLy8gICAgICAgICB8fCBtb2R1bGVJZCA9PT0gRGF0YVR5cGUuZGV2aWF0aW9uVHlwZVxyXG4vLyAgICAgICAgIHx8IChtb2R1bGVJZCA9PT0gRGF0YVR5cGUuYXJlYSAmJiB0aGlzLnRyZWVDb25maWcgJiYgIXRoaXMudHJlZUNvbmZpZy5zaW5nbGVTZWxlY3RPcHRpb24pXHJcbi8vICAgICAgICAgfHwgKG1vZHVsZUlkID09PSBEYXRhVHlwZS5mb2xkZXIgJiYgdGhpcy50cmVlQ29uZmlnMiAmJiAhdGhpcy50cmVlQ29uZmlnMi5zaW5nbGVTZWxlY3RPcHRpb24pXHJcbi8vICAgICAgICkpIHtcclxuLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4vLyAgICAgfVxyXG4vLyAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKG1vZHVsZUlkKS5sZW5ndGggPiAwO1xyXG4vLyAgIH1cclxuXHJcbiAgICBzZWxlY3ROb2RlVHJlZUV2ZW50KG5vZGUpIHtcclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgcGFyZW50TmFtZSA9ICcnO1xyXG4gICAgICAgIGxldCBpdGVtTnVtYmVySWQgPSAnJztcclxuXHJcbiAgICAgICAgcG9zaXRpb24gPSAhbm9kZS5leHBhbmRhYmxlID8gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IG5vZGUuaWQgJiYgcC5yb290SWQgPT09IG5vZGUucGFyZW50SWQpIDpcclxuICAgICAgICB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleChwID0+IHAucm9vdElkID09PSBub2RlLmlkKTtcclxuICAgICAgICBwYXJlbnROYW1lID0gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0ucGFyZW50SWQgPyB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5zdWJOYW1lIDogdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0ucm9vdE5hbWU7XHJcbiAgICAgICAgaXRlbU51bWJlcklkID0gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl0/LmRpc3BsYXlJZD8udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgICBpdGVtTmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxyXG4gICAgICAgIHBhcmVudE5hbWU6IHBhcmVudE5hbWUsXHJcbiAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtTnVtYmVySWQsXHJcbiAgICAgICAgbGV2ZWxUeXBlOiBub2RlLmxldmVsVHlwZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENoaWxkTm9kZVNlbGVjdE9uZShsaXN0Q2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZSA9IFtdO1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lID0gbGlzdENoaWxkcmVuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFZhbHVlKGUpe1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUNoaWxkcmVuID0gISFlLmNoZWNrZWQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
@@ -20,83 +20,38 @@ import { QMSButtonModule } from "../button/button.module";
|
|
20
20
|
import { QMSListModule } from "../list/list.module";
|
21
21
|
import { QMSTreeModule } from "../tree/tree.module";
|
22
22
|
import { SelectIncludeChildrenPopUpComponent } from "./select-include-children.component";
|
23
|
-
import * as i0 from "@angular/core";
|
24
23
|
export class QMSSelectIncludeChildrenModule {
|
25
24
|
}
|
26
|
-
QMSSelectIncludeChildrenModule
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
MatListModule,
|
60
|
-
SharedMaterialModule,
|
61
|
-
QMSListModule,
|
62
|
-
QmsAngularModule,
|
63
|
-
QMSBreadcrumbModule,
|
64
|
-
QMSAppIconModule,
|
65
|
-
QMSTreeModule,
|
66
|
-
QMSButtonModule,
|
67
|
-
MatSlideToggleModule
|
68
|
-
]] });
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSSelectIncludeChildrenModule, decorators: [{
|
70
|
-
type: NgModule,
|
71
|
-
args: [{
|
72
|
-
declarations: [
|
73
|
-
SelectIncludeChildrenPopUpComponent
|
74
|
-
],
|
75
|
-
imports: [
|
76
|
-
CommonModule,
|
77
|
-
MatTreeModule,
|
78
|
-
MatIconModule,
|
79
|
-
MatButtonModule,
|
80
|
-
MatCheckboxModule,
|
81
|
-
MatExpansionModule,
|
82
|
-
MatAutocompleteModule,
|
83
|
-
ReactiveFormsModule,
|
84
|
-
ScrollingModule,
|
85
|
-
MatCardModule,
|
86
|
-
MatSidenavModule,
|
87
|
-
MatListModule,
|
88
|
-
SharedMaterialModule,
|
89
|
-
QMSListModule,
|
90
|
-
QmsAngularModule,
|
91
|
-
QMSBreadcrumbModule,
|
92
|
-
QMSAppIconModule,
|
93
|
-
QMSTreeModule,
|
94
|
-
QMSButtonModule,
|
95
|
-
MatSlideToggleModule
|
96
|
-
],
|
97
|
-
exports: [
|
98
|
-
SelectIncludeChildrenPopUpComponent
|
99
|
-
]
|
100
|
-
}]
|
101
|
-
}] });
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFnQzFGLE1BQU0sT0FBTyw4QkFBOEI7OzJIQUE5Qiw4QkFBOEI7NEhBQTlCLDhCQUE4QixpQkE1QnZDLG1DQUFtQyxhQUduQyxZQUFZO1FBQ1osYUFBYTtRQUNiLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixlQUFlO1FBQ2Ysb0JBQW9CLGFBR3BCLG1DQUFtQzs0SEFHMUIsOEJBQThCLFlBMUJoQztZQUNQLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWU7WUFDZixvQkFBb0I7U0FDckI7MkZBS1UsOEJBQThCO2tCQTlCMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUNBQW1DO3FCQUNwQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQ0FBbUM7cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcclxuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90cmVlXCI7XHJcbmltcG9ydCB7IFNoYXJlZE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwtbW9kdWxlJztcclxuaW1wb3J0IHsgUW1zQW5ndWxhck1vZHVsZSB9IGZyb20gJy4uLy4uL3Ftcy1hbmd1bGFyLm1vZHVsZSc7XHJcbmltcG9ydCB7IFFNU0FwcEljb25Nb2R1bGUgfSBmcm9tIFwiLi4vYXBwLWljb24vYXBwLWljb24ubW9kdWxlXCI7XHJcbmltcG9ydCB7IFFNU0JyZWFkY3J1bWJNb2R1bGUgfSBmcm9tIFwiLi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBRTVNCdXR0b25Nb2R1bGUgfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHsgUU1TTGlzdE1vZHVsZSB9IGZyb20gXCIuLi9saXN0L2xpc3QubW9kdWxlXCI7XHJcbmltcG9ydCB7IFFNU1RyZWVNb2R1bGUgfSBmcm9tIFwiLi4vdHJlZS90cmVlLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Qb3BVcENvbXBvbmVudCB9IGZyb20gXCIuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNlbGVjdEluY2x1ZGVDaGlsZHJlblBvcFVwQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRUcmVlTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgUU1TTGlzdE1vZHVsZSxcclxuICAgIFFtc0FuZ3VsYXJNb2R1bGUsXHJcbiAgICBRTVNCcmVhZGNydW1iTW9kdWxlLFxyXG4gICAgUU1TQXBwSWNvbk1vZHVsZSxcclxuICAgIFFNU1RyZWVNb2R1bGUsXHJcbiAgICBRTVNCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VsZWN0SW5jbHVkZUNoaWxkcmVuUG9wVXBDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Nb2R1bGUgeyB9XHJcbiJdfQ==
|
25
|
+
QMSSelectIncludeChildrenModule.decorators = [
|
26
|
+
{ type: NgModule, args: [{
|
27
|
+
declarations: [
|
28
|
+
SelectIncludeChildrenPopUpComponent
|
29
|
+
],
|
30
|
+
imports: [
|
31
|
+
CommonModule,
|
32
|
+
MatTreeModule,
|
33
|
+
MatIconModule,
|
34
|
+
MatButtonModule,
|
35
|
+
MatCheckboxModule,
|
36
|
+
MatExpansionModule,
|
37
|
+
MatAutocompleteModule,
|
38
|
+
ReactiveFormsModule,
|
39
|
+
ScrollingModule,
|
40
|
+
MatCardModule,
|
41
|
+
MatSidenavModule,
|
42
|
+
MatListModule,
|
43
|
+
SharedMaterialModule,
|
44
|
+
QMSListModule,
|
45
|
+
QmsAngularModule,
|
46
|
+
QMSBreadcrumbModule,
|
47
|
+
QMSAppIconModule,
|
48
|
+
QMSTreeModule,
|
49
|
+
QMSButtonModule,
|
50
|
+
MatSlideToggleModule
|
51
|
+
],
|
52
|
+
exports: [
|
53
|
+
SelectIncludeChildrenPopUpComponent
|
54
|
+
]
|
55
|
+
},] }
|
56
|
+
];
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWluY2x1ZGUtY2hpbGRyZW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQWdDMUYsTUFBTSxPQUFPLDhCQUE4Qjs7O1lBOUIxQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLG1DQUFtQztpQkFDcEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixrQkFBa0I7b0JBQ2xCLHFCQUFxQjtvQkFDckIsbUJBQW1CO29CQUNuQixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLG9CQUFvQjtvQkFDcEIsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2Ysb0JBQW9CO2lCQUNyQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUNBQW1DO2lCQUNwQzthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcclxuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90cmVlXCI7XHJcbmltcG9ydCB7IFNoYXJlZE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwtbW9kdWxlJztcclxuaW1wb3J0IHsgUW1zQW5ndWxhck1vZHVsZSB9IGZyb20gJy4uLy4uL3Ftcy1hbmd1bGFyLm1vZHVsZSc7XHJcbmltcG9ydCB7IFFNU0FwcEljb25Nb2R1bGUgfSBmcm9tIFwiLi4vYXBwLWljb24vYXBwLWljb24ubW9kdWxlXCI7XHJcbmltcG9ydCB7IFFNU0JyZWFkY3J1bWJNb2R1bGUgfSBmcm9tIFwiLi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBRTVNCdXR0b25Nb2R1bGUgfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHsgUU1TTGlzdE1vZHVsZSB9IGZyb20gXCIuLi9saXN0L2xpc3QubW9kdWxlXCI7XHJcbmltcG9ydCB7IFFNU1RyZWVNb2R1bGUgfSBmcm9tIFwiLi4vdHJlZS90cmVlLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Qb3BVcENvbXBvbmVudCB9IGZyb20gXCIuL3NlbGVjdC1pbmNsdWRlLWNoaWxkcmVuLmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNlbGVjdEluY2x1ZGVDaGlsZHJlblBvcFVwQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRUcmVlTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgUU1TTGlzdE1vZHVsZSxcclxuICAgIFFtc0FuZ3VsYXJNb2R1bGUsXHJcbiAgICBRTVNCcmVhZGNydW1iTW9kdWxlLFxyXG4gICAgUU1TQXBwSWNvbk1vZHVsZSxcclxuICAgIFFNU1RyZWVNb2R1bGUsXHJcbiAgICBRTVNCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VsZWN0SW5jbHVkZUNoaWxkcmVuUG9wVXBDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNTZWxlY3RJbmNsdWRlQ2hpbGRyZW5Nb2R1bGUgeyB9XHJcbiJdfQ==
|