@provoly/dashboard 0.22.4 → 0.22.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +8 -4
- package/dataset/style/_o-pry-dataset-card.scss +24 -2
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +7 -6
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +44 -30
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
- package/esm2022/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/components/dataset.component.mjs +3 -3
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/filters/autocomplete/autocomplete.component.mjs +1 -1
- package/esm2022/filters/list/list-filter.component.mjs +1 -1
- package/esm2022/import/components/import.component.mjs +1 -1
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +3 -3
- package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +8 -4
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/core/components/select/select.component.mjs +21 -9
- package/esm2022/lib/core/components/select/select.module.mjs +5 -4
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +2 -2
- package/esm2022/lib/core/components/share/share.component.mjs +1 -1
- package/esm2022/lib/core/i18n/en.translations.mjs +7 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +8 -3
- package/esm2022/lib/core/store/image/image.service.mjs +4 -3
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +16 -1
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
- package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
- package/esm2022/lib/dashboard/item-utils.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +1 -4
- package/esm2022/lib/dashboard/store/refresh.service.mjs +14 -9
- package/esm2022/notification/store/notification.service.mjs +1 -1
- package/esm2022/notification/style/css.component.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -3
- package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
- package/esm2022/presentation/components/presentation.component.mjs +4 -3
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/search/search-home/search-home.component.mjs +2 -2
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +13 -10
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
- package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +20 -8
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +20 -18
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
- package/esm2022/toolbox/components/share/share.component.mjs +4 -3
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
- package/esm2022/toolbox/components/toolbox.component.mjs +19 -6
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +4 -5
- package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +8 -8
- package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +3 -2
- package/esm2022/widgets/widget-map/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +5 -1
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-admin.mjs +62 -47
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-checkbox.mjs +2 -2
- package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +8 -8
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +1 -1
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +2 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +2 -2
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +6 -5
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +10 -10
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +5 -5
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +83 -52
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -6
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +14 -9
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +108 -65
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/overlay/dialog-confirm.component.d.ts +1 -1
- package/lib/core/components/select/select.component.d.ts +2 -1
- package/lib/core/components/select/select.module.d.ts +2 -1
- package/lib/core/i18n/en.translations.d.ts +5 -0
- package/lib/core/i18n/fr.translations.d.ts +5 -0
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
- package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +8 -1
- package/lib/dashboard/filter/style/_o-pry-filter-group.scss +1 -1
- package/lib/dashboard/store/dashboard.selectors.d.ts +0 -13
- package/lib/dashboard/store/refresh.service.d.ts +3 -1
- package/notification/style/_m-notifications.scss +4 -10
- package/package.json +13 -13
- package/presentation/style/_o-pry-new-presentation.scss +0 -4
- package/presentation/style/_o-pry-presentation.scss +6 -4
- package/restitution/style/_o-restitution-list.scss +1 -1
- package/styles/abstracts/_mixins.scss +13 -0
- package/styles/components/_a-btn.scss +8 -26
- package/styles/components/_a-chip.scss +19 -0
- package/styles/components/_a-pry-select.scss +13 -0
- package/styles/components/_a-range-slider.scss +4 -5
- package/styles/components/_m-info-icon.scss +2 -3
- package/styles/components/_m-nav-links.scss +2 -7
- package/styles/components/{_o-datasources.scss → _o-chips-selector.scss} +3 -4
- package/styles/components/_o-dashboard.scss +41 -7
- package/styles/components/_o-modal.scss +1 -1
- package/styles/components/_o-widget.scss +11 -5
- package/styles/layout/_o-manifest-layout.scss +4 -0
- package/styles/libs/_reset-lib-ol.scss +9 -5
- package/styles/main.scss +7 -7
- package/styles-theme/abstracts-theme/_abstracts-overlays.theme.scss +6 -0
- package/styles-theme/abstracts-theme/variables/_variables-colors.scss +18 -24
- package/styles-theme/abstracts-theme/variables/_variables-decoration.scss +2 -2
- package/styles-theme/abstracts-theme/variables/_variables-typo.scss +2 -2
- package/styles-theme/base-theme/_typography.theme.scss +5 -2
- package/styles-theme/components-theme/_a-btn.theme.scss +42 -73
- package/styles-theme/components-theme/_a-checkbox.theme.scss +3 -45
- package/styles-theme/components-theme/_a-chip.theme.scss +32 -0
- package/styles-theme/components-theme/_a-form-field.theme.scss +1 -1
- package/styles-theme/components-theme/_a-label.theme.scss +1 -0
- package/styles-theme/components-theme/_a-pry-select.theme.scss +13 -7
- package/styles-theme/components-theme/_a-range-slider.theme.scss +16 -16
- package/styles-theme/components-theme/_a-table.theme.scss +2 -2
- package/styles-theme/components-theme/_a-toggle.theme.scss +7 -8
- package/styles-theme/components-theme/_m-btn-sorttable.theme.scss +3 -3
- package/styles-theme/components-theme/_m-filter.theme.scss +4 -13
- package/styles-theme/components-theme/_m-form-radio-group.theme.scss +17 -0
- package/styles-theme/components-theme/_m-info-icon.theme.scss +11 -0
- package/styles-theme/components-theme/_m-minus-plus.theme.scss +2 -2
- package/styles-theme/components-theme/_m-nav-links.theme.scss +18 -0
- package/styles-theme/components-theme/_m-notifications.theme.scss +8 -4
- package/styles-theme/components-theme/_m-time-picker.theme.scss +1 -1
- package/styles-theme/components-theme/_o-catalog.theme.scss +1 -1
- package/styles-theme/components-theme/_o-date-picker.theme.scss +2 -2
- package/styles-theme/components-theme/_o-draggable-menu.theme.scss +2 -2
- package/styles-theme/components-theme/_o-multi-class-field-selection.theme.scss +1 -1
- package/styles-theme/components-theme/_o-object-panel.theme.scss +1 -1
- package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +0 -9
- package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +8 -0
- package/styles-theme/components-theme/_o-pry-presentation.theme.scss +18 -11
- package/styles-theme/components-theme/_o-pry-search-tools.theme.scss +2 -13
- package/styles-theme/components-theme/_o-pry-stepper.theme.scss +6 -8
- package/styles-theme/components-theme/_o-restitution-list.theme.scss +1 -1
- package/styles-theme/components-theme/_o-search-fulltext.theme.scss +2 -2
- package/styles-theme/components-theme/_o-search-multi-class.theme.scss +0 -5
- package/styles-theme/components-theme/_o-settings.theme.scss +1 -1
- package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
- package/styles-theme/components-theme/_o-widget-iframe.theme.scss +2 -2
- package/styles-theme/components-theme/_o-widget.theme.scss +31 -2
- package/styles-theme/components-theme/_overlay.theme.scss +3 -3
- package/styles-theme/layout-theme/_o-base-layout.theme.scss +4 -3
- package/styles-theme/layout-theme/_o-manifest-layout.theme.scss +8 -2
- package/styles-theme/libs-theme/_reset-lib-ol.theme.scss +12 -3
- package/styles-theme/main-theme.scss +6 -4
- package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +3 -1
- package/toolbox/components/filter-settings/filter-settings.component.d.ts +3 -2
- package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +3 -2
- package/toolbox/components/toolbox.component.d.ts +3 -1
- package/toolbox/style/_o-filter-settings.scss +0 -4
- package/toolbox/style/_o-toolbox.scss +2 -26
- package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +3 -0
- package/widgets/widget-graph/component/widget-graph.component.d.ts +0 -1
- package/widgets/widget-graph/style/_o-widget-graph.scss +14 -0
- package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +1 -1
- package/widgets/widget-map/style/{_o-layer-legend.scss → _m-layer-legend.scss} +7 -8
- package/widgets/widget-map/style/_o-widget-map.scss +2 -2
- package/styles/components/_a-chips.scss +0 -15
- package/styles-theme/components-theme/_o-datasources.theme.scss +0 -41
|
@@ -94,7 +94,7 @@ export class ItemUtils {
|
|
|
94
94
|
const attrField = fields.find((f) => f.id === attr.field);
|
|
95
95
|
return attrField && !GeometricFieldTypes.includes(attrField.type);
|
|
96
96
|
})
|
|
97
|
-
.map((attr) => attr.
|
|
97
|
+
.map((attr) => attr.name));
|
|
98
98
|
}
|
|
99
99
|
static ensureItemIdHasCorrectFormat(item) {
|
|
100
100
|
if (!item.id.includes('@')) {
|
|
@@ -106,4 +106,4 @@ export class ItemUtils {
|
|
|
106
106
|
return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxTQUE0QyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTyxDQUNMLENBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUUsSUFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RFLENBQUMsQ0FBRyxJQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQTRCLENBQUMsSUFBSSxFQUFFLENBQzFGLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDZjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMs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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsSUFBVTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQVEsRUFBRSxDQUFRO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDbGFzcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkLCBHZW9tZXRyaWNGaWVsZFR5cGVzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9maWVsZC9maWVsZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9sRmVhdHVyZSB7XG4gIGdldChrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuY29uc3QgaGlkZGVuRmllbGRUZXh0ID0gJyoqKioqKioqKic7XG5cbmV4cG9ydCBjbGFzcyBJdGVtVXRpbHMge1xuICBzdGF0aWMgZ2V0QXR0cmlidXRlVmFsdWUoXG4gICAgaXRlbTogSXRlbSB8IE9sRmVhdHVyZSxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuICEhaXRlbS5nZXQgPyBpdGVtLmdldChhdHRyaWJ1dGUpIDogaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChcbiAgICAgICAgICAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID8/IHt9XG4gICAgICAgICAgICA6ICgoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSkgPz8ge31cbiAgICAgICAgKS52YWx1ZXMgPz8gW11cbiAgICAgIClcbiAgICAgICAgLm1hcCgodjogQXR0cmlidXRlU2ltcGxlVmFsdWUpID0+ICh7IC4uLnYsIHZhbHVlOiB2LnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdi52YWx1ZSB9KSlcbiAgICAgICAgLnNvcnQoSXRlbVV0aWxzLnNvcnRBdHRyaWJ1dGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICFpdGVtLmhhc093blByb3BlcnR5KCdvQ2xhc3MnKVxuICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdXG4gICAgICAgIDogKGl0ZW0gYXMgSXRlbSkuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV1cbiAgICApIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IFZhbHVlVHlwZSB8IFZhbHVlVHlwZVtdIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gaXRlbVthdHRyaWJ1dGVdO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICByZXR1cm4gKEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10pLm1hcCgodikgPT4gdi52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlID8gKHZhbHVlLnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdmFsdWUudmFsdWUpIDogKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEF0dHJpYnV0ZXMoYTogQXR0cmlidXRlU2ltcGxlVmFsdWUsIGI6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJlVmlzaWJsZSA9IChiLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKSAtIChhLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKTtcbiAgICBpZiAoY29tcGFyZVZpc2libGUgIT09IDApIHtcbiAgICAgIHJldHVybiBjb21wYXJlVmlzaWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChiPy5tZXRhZGF0YSA/IChiPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMCkgLVxuICAgICAgKGE/Lm1ldGFkYXRhID8gKGE/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcGVydGluZW50VmFsdWUoaXRlbXM6IEl0ZW1bXSwgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGl0ZW1zXG4gICAgICAubWFwKChpdGVtKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW0sIGF0dHIpKVxuICAgICAgLmZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAubWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2F0aW9uKHR1cGxlOiBhbnlbXSkge1xuICAgIHJldHVybiAhIXR1cGxlWzBdICYmICEhdHVwbGVbMV0gJiYgdHlwZW9mIHR1cGxlWzBdID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdHVwbGVbMV0gPT09ICdudW1iZXInO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNGcm9tQXZhaWxhYmlsaXR5SW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PlxuICAgICAgICAgICAgcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdLm1hcCgoaXRlbSkgPT4gWy4uLk9iamVjdC5rZXlzKGl0ZW0pLCAuLi5PYmplY3Qua2V5cyhpdGVtLmF0dHJpYnV0ZXMpXSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AgIT09ICdhdHRyaWJ1dGVzJylcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEZpZWxkc0ZvckNsYXNzZXMoY2xhc3Nlc0lkOiBzdHJpbmdbXSwgY2xhc3NlczogQ2xhc3NbXSwgZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGNsYXNzZXNJZFxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzczogQ2xhc3MpID0+IG9DbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpISkpXG4gICAgICAgICAgLm1hcCgoZmllbGRzOiBGaWVsZFtdKSA9PiBmaWVsZHMuZmlsdGVyKChmKSA9PiAhIWYpKVxuICAgICAgICAgIC5yZWR1Y2UoKHA6IEZpZWxkW10sIGM6IEZpZWxkW10pID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNMb2NhdGlvbihjbGF6ejogQ2xhc3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkT2JqZWN0KG9iamVjdDogSXRlbSkge1xuICAgIHJldHVybiBvYmplY3Qub0NsYXNzICYmIG9iamVjdC5vQ2xhc3MubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbVJzKFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGRlZnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH1cbiAgKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZGVmcyA/PyB7fTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3MpID0+XG4gICAgICAgICAgICBvQ2xhc3MuYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+XG4gICAgICAgICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKG9DbGFzcywgZGVmaW5pdGlvbnMsIGZpZWxkcykuaW5jbHVkZXMoYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gISFmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKGNsYXp6OiBDbGFzcywgZGVmczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LCBmaWVsZHM6IEZpZWxkW10pIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGVmc1tjbGF6ei5pZCA/PyAnJ10gPz9cbiAgICAgIChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgLmZpbHRlcigoYXR0cikgPT4ge1xuICAgICAgICAgIGNvbnN0IGF0dHJGaWVsZCA9IGZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYXR0ckZpZWxkICYmICFHZW9tZXRyaWNGaWVsZFR5cGVzLmluY2x1ZGVzKGF0dHJGaWVsZC50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZW5zdXJlSXRlbUlkSGFzQ29ycmVjdEZvcm1hdChpdGVtOiBJdGVtKTogSXRlbSB7XG4gICAgaWYgKCFpdGVtLmlkLmluY2x1ZGVzKCdAJykpIHtcbiAgICAgIGl0ZW0uaWQgPSBgJHtpdGVtLm9DbGFzc31AJHtpdGVtLmlkfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgc3RhdGljIHNpbXBsZUFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pO1xuICB9XG59XG4iXX0=
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxTQUE0QyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTyxDQUNMLENBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUUsSUFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RFLENBQUMsQ0FBRyxJQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQTRCLENBQUMsSUFBSSxFQUFFLENBQzFGLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDZjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMs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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsSUFBVTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQVEsRUFBRSxDQUFRO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDbGFzcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkLCBHZW9tZXRyaWNGaWVsZFR5cGVzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9maWVsZC9maWVsZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9sRmVhdHVyZSB7XG4gIGdldChrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuY29uc3QgaGlkZGVuRmllbGRUZXh0ID0gJyoqKioqKioqKic7XG5cbmV4cG9ydCBjbGFzcyBJdGVtVXRpbHMge1xuICBzdGF0aWMgZ2V0QXR0cmlidXRlVmFsdWUoXG4gICAgaXRlbTogSXRlbSB8IE9sRmVhdHVyZSxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuICEhaXRlbS5nZXQgPyBpdGVtLmdldChhdHRyaWJ1dGUpIDogaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChcbiAgICAgICAgICAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID8/IHt9XG4gICAgICAgICAgICA6ICgoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSkgPz8ge31cbiAgICAgICAgKS52YWx1ZXMgPz8gW11cbiAgICAgIClcbiAgICAgICAgLm1hcCgodjogQXR0cmlidXRlU2ltcGxlVmFsdWUpID0+ICh7IC4uLnYsIHZhbHVlOiB2LnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdi52YWx1ZSB9KSlcbiAgICAgICAgLnNvcnQoSXRlbVV0aWxzLnNvcnRBdHRyaWJ1dGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICFpdGVtLmhhc093blByb3BlcnR5KCdvQ2xhc3MnKVxuICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdXG4gICAgICAgIDogKGl0ZW0gYXMgSXRlbSkuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV1cbiAgICApIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IFZhbHVlVHlwZSB8IFZhbHVlVHlwZVtdIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gaXRlbVthdHRyaWJ1dGVdO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICByZXR1cm4gKEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10pLm1hcCgodikgPT4gdi52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlID8gKHZhbHVlLnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdmFsdWUudmFsdWUpIDogKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEF0dHJpYnV0ZXMoYTogQXR0cmlidXRlU2ltcGxlVmFsdWUsIGI6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJlVmlzaWJsZSA9IChiLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKSAtIChhLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKTtcbiAgICBpZiAoY29tcGFyZVZpc2libGUgIT09IDApIHtcbiAgICAgIHJldHVybiBjb21wYXJlVmlzaWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChiPy5tZXRhZGF0YSA/IChiPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMCkgLVxuICAgICAgKGE/Lm1ldGFkYXRhID8gKGE/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcGVydGluZW50VmFsdWUoaXRlbXM6IEl0ZW1bXSwgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGl0ZW1zXG4gICAgICAubWFwKChpdGVtKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW0sIGF0dHIpKVxuICAgICAgLmZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAubWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2F0aW9uKHR1cGxlOiBhbnlbXSkge1xuICAgIHJldHVybiAhIXR1cGxlWzBdICYmICEhdHVwbGVbMV0gJiYgdHlwZW9mIHR1cGxlWzBdID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdHVwbGVbMV0gPT09ICdudW1iZXInO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNGcm9tQXZhaWxhYmlsaXR5SW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PlxuICAgICAgICAgICAgcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdLm1hcCgoaXRlbSkgPT4gWy4uLk9iamVjdC5rZXlzKGl0ZW0pLCAuLi5PYmplY3Qua2V5cyhpdGVtLmF0dHJpYnV0ZXMpXSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AgIT09ICdhdHRyaWJ1dGVzJylcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEZpZWxkc0ZvckNsYXNzZXMoY2xhc3Nlc0lkOiBzdHJpbmdbXSwgY2xhc3NlczogQ2xhc3NbXSwgZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGNsYXNzZXNJZFxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzczogQ2xhc3MpID0+IG9DbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpISkpXG4gICAgICAgICAgLm1hcCgoZmllbGRzOiBGaWVsZFtdKSA9PiBmaWVsZHMuZmlsdGVyKChmKSA9PiAhIWYpKVxuICAgICAgICAgIC5yZWR1Y2UoKHA6IEZpZWxkW10sIGM6IEZpZWxkW10pID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNMb2NhdGlvbihjbGF6ejogQ2xhc3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkT2JqZWN0KG9iamVjdDogSXRlbSkge1xuICAgIHJldHVybiBvYmplY3Qub0NsYXNzICYmIG9iamVjdC5vQ2xhc3MubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbVJzKFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGRlZnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH1cbiAgKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZGVmcyA/PyB7fTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3MpID0+XG4gICAgICAgICAgICBvQ2xhc3MuYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+XG4gICAgICAgICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKG9DbGFzcywgZGVmaW5pdGlvbnMsIGZpZWxkcykuaW5jbHVkZXMoYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gISFmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKGNsYXp6OiBDbGFzcywgZGVmczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LCBmaWVsZHM6IEZpZWxkW10pIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGVmc1tjbGF6ei5pZCA/PyAnJ10gPz9cbiAgICAgIChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgLmZpbHRlcigoYXR0cikgPT4ge1xuICAgICAgICAgIGNvbnN0IGF0dHJGaWVsZCA9IGZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYXR0ckZpZWxkICYmICFHZW9tZXRyaWNGaWVsZFR5cGVzLmluY2x1ZGVzKGF0dHJGaWVsZC50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZW5zdXJlSXRlbUlkSGFzQ29ycmVjdEZvcm1hdChpdGVtOiBJdGVtKTogSXRlbSB7XG4gICAgaWYgKCFpdGVtLmlkLmluY2x1ZGVzKCdAJykpIHtcbiAgICAgIGl0ZW0uaWQgPSBgJHtpdGVtLm9DbGFzc31AJHtpdGVtLmlkfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgc3RhdGljIHNpbXBsZUFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
2
|
import equal from 'fast-deep-equal/es6';
|
|
3
3
|
import { DashboardGridLayout } from '../../core/model/manifest.interface';
|
|
4
|
-
import { ManifestUtils } from './manifest-utils.class';
|
|
5
4
|
import { BASE_DISPLAY_OPTIONS } from '../../core/model/display-options.interface';
|
|
6
5
|
const NEW_WINDOW_TARGET = -1;
|
|
7
6
|
const feature = createFeatureSelector('@pry/dashboard');
|
|
@@ -11,7 +10,6 @@ const currentManifestId = createSelector(manifests, (manifests) => manifests.cur
|
|
|
11
10
|
const globalManifest = createSelector(manifests,
|
|
12
11
|
// @ts-ignore
|
|
13
12
|
(manifests) => ({ windows: [], ...manifests?.manifest } ?? { windows: [] }));
|
|
14
|
-
const manifestDatasources = createSelector(globalManifest, (manifest) => ManifestUtils.getDatasourcesUsedByManifest(manifest));
|
|
15
13
|
const staticManifest = createSelector(manifests,
|
|
16
14
|
// @ts-ignore
|
|
17
15
|
(manifests) => ({ windows: [], ...manifests?.staticManifest } ?? { windows: [] }));
|
|
@@ -90,7 +88,6 @@ export const DashboardSelectors = {
|
|
|
90
88
|
rank,
|
|
91
89
|
currentManifestId,
|
|
92
90
|
globalManifest,
|
|
93
|
-
manifestDatasources,
|
|
94
91
|
refreshRates,
|
|
95
92
|
windowManifest,
|
|
96
93
|
widgetManifest,
|
|
@@ -124,4 +121,4 @@ export const DashboardSelectors = {
|
|
|
124
121
|
displayOptions,
|
|
125
122
|
capabilities
|
|
126
123
|
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUN0RixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUd4QyxPQUFPLEVBQ0wsbUJBQW1CLEVBS3BCLE1BQU0scUNBQXFDLENBQUM7QUFLN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWxGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFN0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQWlCLGdCQUFnQixDQUFDLENBQUM7QUFDeEUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2RixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwRyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4RixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQ25DLFNBQVM7QUFDVCxhQUFhO0FBQ2IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFP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TyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixDQUFDLENBQUM7QUFDbEgsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztBQUU3RixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPO0lBQ1AsSUFBSTtJQUNKLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztJQUNkLGFBQWE7SUFDYixVQUFVO0lBQ1YsT0FBTztJQUNQLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLGVBQWU7SUFDZixRQUFRO0lBQ1IsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxPQUFPO0lBQ1AsVUFBVTtJQUNWLFlBQVk7SUFDWixPQUFPO0lBQ1AsNkJBQTZCO0lBQzdCLDBCQUEwQjtJQUMxQixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGNBQWM7SUFDZCxZQUFZO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIE1lbW9pemVkU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkTWFuaWZlc3QsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBXaWRnZXRMYXlvdXQsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCwgUmVzdWx0U2V0cyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2VsbFBhcmFtcyB9IGZyb20gJy4vZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU3RhdGUgfSBmcm9tICcuL2Rhc2hib2FyZC5yZWR1Y2Vycyc7XG5pbXBvcnQgeyBNYW5pZmVzdFV0aWxzIH0gZnJvbSAnLi9tYW5pZmVzdC11dGlscy5jbGFzcyc7XG5pbXBvcnQgeyBCQVNFX0RJU1BMQVlfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5cbmNvbnN0IE5FV19XSU5ET1dfVEFSR0VUID0gLTE7XG5cbmNvbnN0IGZlYXR1cmUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RGFzaGJvYXJkU3RhdGU+KCdAcHJ5L2Rhc2hib2FyZCcpO1xuY29uc3QgbWFuaWZlc3RzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/Lm1hbmlmZXN0cyk7XG5jb25zdCByYW5rID0gY3JlYXRlU2VsZWN0b3IobWFuaWZlc3RzLCAobWFuaWZlc3RzKSA9PiBtYW5pZmVzdHM/LnRlbmFudHMuaW5kZXhPZihtYW5pZmVzdHMuc2VuZGVyKSk7XG5jb25zdCBjdXJyZW50TWFuaWZlc3RJZCA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLmN1cnJlbnRJZCk7XG5jb25zdCBnbG9iYWxNYW5pZmVzdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBtYW5pZmVzdHMsXG4gIC8vIEB0cy1pZ25vcmVcbiAgKG1hbmlmZXN0cykgPT4gKHsgd2luZG93czogW10sIC4uLm1hbmlmZXN0cz8ubWFuaWZlc3QgfSA/PyAoeyB3aW5kb3dzOiBbXSB9IGFzIEdsb2JhbE1hbmlmZXN0KSlcbik7XG5jb25zdCBtYW5pZmVzdERhdGFzb3VyY2VzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdCkgPT5cbiAgTWFuaWZlc3RVdGlscy5nZXREYXRhc291cmNlc1VzZWRCeU1hbmlmZXN0KG1hbmlmZXN0KVxuKTtcbmNvbnN0IHN0YXRpY01hbmlmZXN0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIG1hbmlmZXN0cyxcbiAgLy8gQHRzLWlnbm9yZVxuICAobWFuaWZlc3RzKSA9PiAoeyB3aW5kb3dzOiBbXSwgLi4ubWFuaWZlc3RzPy5zdGF0aWNNYW5pZmVzdCB9ID8/ICh7IHdpbmRvd3M6IFtdIH0gYXMgR2xvYmFsTWFuaWZlc3QpKVxuKTtcbmNvbnN0IGxvYWRpbmcgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+ICEhbWFuaWZlc3RzPy5sb2FkaW5nKTtcbmNvbnN0IHJlZnJlc2hSYXRlcyA9IGNyZWF0ZVNlbGVjdG9yKGdsb2JhbE1hbmlmZXN0LCAobWFuaWZlc3RzKSA9PiBtYW5pZmVzdHMucmVmcmVzaFJhdGVzID8/IHt9KTtcbmNvbnN0IHdpbmRvd01hbmlmZXN0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIGdsb2JhbE1hbmlmZXN0LFxuICByYW5rLFxuICAobWFuaWZlc3QsIHJhbmspID0+IG1hbmlmZXN0LndpbmRvd3NbcmFua10gPz8gPERhc2hib2FyZE1hbmlmZXN0Pnsgd2lkZ2V0czogW10gfVxuKTtcbmNvbnN0IGdyaWRMYXlvdXQgPSBjcmVhdGVTZWxlY3RvcihcbiAgd2luZG93TWFuaWZlc3QsXG4gIChtYW5pZmVzdCkgPT4gKChtYW5pZmVzdC5ncmlkID8/IHt9KS5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUwpIGFzIHN0cmluZ1xuKTtcbmNvbnN0IG1lbW9pemVXaWRnZXRNYW5pZmVzdCA9IHt9IGFzIGFueTtcbmNvbnN0IHdpZGdldE1hbmlmZXN0ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgaWYgKCFtZW1vaXplV2lkZ2V0TWFuaWZlc3RbaW5kZXhdKSB7XG4gICAgbWVtb2l6ZVdpZGdldE1hbmlmZXN0W2luZGV4XSA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgd2luZG93TWFuaWZlc3QsXG4gICAgICAod2luZG93TWFuaWZlc3Q6IERhc2hib2FyZE1hbmlmZXN0KSA9PlxuICAgICAgICB3aW5kb3dNYW5pZmVzdC53aWRnZXRzW2luZGV4XSA/P1xuICAgICAgICAoe1xuICAgICAgICAgIHR5cGU6ICdwbGFjZWhvbGRlcicsXG4gICAgICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfVxuICAgICAgICB9IGFzIFdpZGdldE1hbmlmZXN0KVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG1lbW9pemVXaWRnZXRNYW5pZmVzdFtpbmRleF0gYXMgTWVtb2l6ZWRTZWxlY3RvcjxEYXNoYm9hcmRNYW5pZmVzdCwgV2lkZ2V0TWFuaWZlc3Q+O1xufTtcbmNvbnN0IG1hbmlmZXN0c0xpc3QgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5saXN0KTtcbmNvbnN0IHRlbmFudHMgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy50ZW5hbnRzID8/IDxzdHJpbmdbXT5bXSk7XG5jb25zdCB0YXJnZXRUZW5hbnRzSW5kZXhlcyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgcmFuaywgKG1hbmlmZXN0cywgcmFuaykgPT4gW1xuICBORVdfV0lORE9XX1RBUkdFVCxcbiAgLi4uKG1hbmlmZXN0cy50ZW5hbnRzID8/IChbXSBhcyBzdHJpbmdbXSkpLm1hcCgodGVuLCBpZHgpID0+IGlkeCkuZmlsdGVyKChpZHgpID0+IGlkeCAhPT0gcmFuaylcbl0pO1xuY29uc3QgcmVzdWx0cyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5yZXN1bHRzKTtcblxuY29uc3QgcmVzdWx0U2V0cyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnJlc3VsdFNldHMgPz8gKHt9IGFzIFJlc3VsdFNldHMpKTtcbmNvbnN0IHJlc3VsdFNldHNQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgcmVzdWx0cyxcbiAgKHJlc3VsdHMpID0+IHJlc3VsdHMucmVzdWx0U2V0c1BhcmFtcyA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KVxuKTtcbmNvbnN0IG5hbWVkUXVlcmllc05hbWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0U2V0cywgKHN0YXRlOiBSZXN1bHRTZXRzKSA9PiBPYmplY3Qua2V5cyhzdGF0ZSkgPz8gPHN0cmluZ1tdPltdKTtcbmNvbnN0IGF2YWlsYWJsZU5hbWVkUXVlcmllcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiB7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4ucmVzdWx0cy5hdmFpbGFibGVEYXRhc291cmNlTmFtZXMsIC4uLk9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0cyldKV0gPz8gPHN0cmluZ1tdPltdO1xufSk7XG5jb25zdCBkZWZhdWx0RGF0YXNvdXJjZU5hbWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMuZGVmYXVsdERhdGFzb3VyY2UgPz8gJ2N1cnJlbnQnKTtcbmNvbnN0IHNlbGVjdGVkSXRlbUlkcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnNlbGVjdGVkSXRlbXMgPz8gKFtdIGFzIHN0cmluZ1tdKSk7XG5jb25zdCBvYmplY3REZXRhaWxzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMub2JqZWN0RGV0YWlscyA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IEl0ZW0gfSkpO1xuY29uc3QgcXVpY2tPcmRlciA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnF1aWNrT3JkZXIgPz8gKHt9IGFzIHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB9KSk7XG5jb25zdCBhbGxJdGVtcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PlxuICBPYmplY3Qua2V5cyhyZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgLm1hcCgocnNLZXkpID0+XG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHRzLnJlc3VsdFNldHNbcnNLZXldLml0ZW1zKVxuICAgICAgICAubWFwKChjbGFzc0tleSkgPT4gKHJlc3VsdHMucmVzdWx0U2V0c1tyc0tleV0gYXMgUmVzdWx0U2V0KS5pdGVtc1tjbGFzc0tleV0pXG4gICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgKVxuICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4pO1xuY29uc3QgZ2V0SXRlbXNCeUlkcyA9IChpZHM6IHN0cmluZ1tdKSA9PlxuICBjcmVhdGVTZWxlY3RvcihhbGxJdGVtcywgKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGlkcy5pbmNsdWRlcyhpdGVtLmlkKSkpO1xuY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RlZEl0ZW1JZHMsXG4gIGFsbEl0ZW1zLFxuICAoaXRlbU5hbWVzLCBhbGxJdGVtcykgPT4gaXRlbU5hbWVzLm1hcCgobmFtZSkgPT4gYWxsSXRlbXMuZmluZCgoaXQpID0+IGl0LmlkID09PSBuYW1lKSkgPz8gKFtdIGFzIEl0ZW1bXSlcbik7XG5jb25zdCBkYXNoYm9hcmQgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uZGFzaGJvYXJkID8/IHt9KTtcbmNvbnN0IGRhc2hib2FyZENlbGxQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihkYXNoYm9hcmQsIChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5wYXJhbXMgPz8gPERhc2hib2FyZENlbGxQYXJhbXM+e30pO1xuY29uc3QgZGFzaGJvYXJkRWRpdGlvbk1vZGUgPSBjcmVhdGVTZWxlY3RvcihkYXNoYm9hcmQsIChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5lZGl0aW9uTW9kZSA/PyBmYWxzZSk7XG5jb25zdCBuYW1lZFF1ZXJpZXNVc2VzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdCkgPT5cbiAgbWFuaWZlc3Qud2luZG93c1xuICAgIC5tYXAoKHdpbmRvdywgaWR4KSA9PiAoeyB3aW5kb3dJbmRleDogaWR4LCB3aWRnZXRzOiB3aW5kb3cud2lkZ2V0cyB9KSlcbiAgICAubWFwKCh7IHdpbmRvd0luZGV4LCB3aWRnZXRzIH0pID0+XG4gICAgICB3aWRnZXRzLm1hcCgod2lkZ2V0KSA9PlxuICAgICAgICAoQXJyYXkuaXNBcnJheSh3aWRnZXQuZGF0YXNvdXJjZSkgPyB3aWRnZXQuZGF0YXNvdXJjZSA6IFt3aWRnZXQuZGF0YXNvdXJjZV0pXG4gICAgICAgICAgLmZpbHRlcigocnNOYW1lKSA9PiByc05hbWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChyc05hbWUpID0+ICh7XG4gICAgICAgICAgICByc05hbWUsXG4gICAgICAgICAgICB3aW5kb3dJbmRleCxcbiAgICAgICAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgICAgICAgbGF5b3V0OiB3aWRnZXQubGF5b3V0XG4gICAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAucmVkdWNlKFxuICAgICAgKHAsIGMpID0+ICh7IC4uLnAsIFtjLnJzTmFtZSA/PyAnJ106IFsuLi4ocFtjLnJzTmFtZSA/PyAnJ10gfHwgW10pLCB7IC4uLmMgfV0gfSksXG4gICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHsgd2luZG93SW5kZXg6IG51bWJlcjsgdHlwZTogc3RyaW5nOyBsYXlvdXQ6IFdpZGdldExheW91dDsgcnNOYW1lPzogc3RyaW5nIH1bXSB9XG4gICAgKVxuKTtcbmNvbnN0IHByZXNlbnRhdGlvbiA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5wcmVzZW50YXRpb24pO1xuY29uc3QgaXNDdXJyZW50UHJlc2VudGF0aW9uTW9kaWZpZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgcHJlc2VudGF0aW9uLFxuICBnbG9iYWxNYW5pZmVzdCxcbiAgKHN0YXRlLCBnbG9iYWwpID0+ICFlcXVhbChnbG9iYWwsIHN0YXRlLmluaXRpYWwpXG4pO1xuY29uc3QgaXNDdXJyZW50UHJlc2VudGF0aW9uT3duZXIgPSBjcmVhdGVTZWxlY3RvcihwcmVzZW50YXRpb24sIChzdGF0ZSkgPT4gISFzdGF0ZS5jdXJyZW50ICYmIHN0YXRlLmN1cnJlbnQub3duZXIpO1xuXG5jb25zdCBmaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/Lm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzID8/IFtdKTtcbmNvbnN0IGRhdGFzb3VyY2VGaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT5cbiAgc3RhdGU/Lm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzXG4gICAgPyBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMucmVkdWNlKFxuICAgICAgICAob2JqOiB7IFtkYXRhc291cmNlSWQ6IHN0cmluZ106IEZpbHRlckNvbnRleHRbXSB9LCBmaWx0ZXI6IEZpbHRlcikgPT4gKFxuICAgICAgICAgIGZpbHRlci5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT5cbiAgICAgICAgICAgIChvYmpbYXR0cmlidXRlLmRhdGFzb3VyY2VdIHx8IChvYmpbYXR0cmlidXRlLmRhdGFzb3VyY2VdID0gW10pKS5wdXNoKHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlOiBhdHRyaWJ1dGUuaWQsXG4gICAgICAgICAgICAgIG9wZXJhdG9yOiBmaWx0ZXIub3BlcmF0b3IgPz8gJycsXG4gICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBvYmpcbiAgICAgICAgKSxcbiAgICAgICAge31cbiAgICAgIClcbiAgICA6IHt9XG4pO1xuY29uc3Qgd21zRmVhdHVyZXMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8ud21zRmVhdHVyZXMpO1xuY29uc3QgZGlzcGxheU9wdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uZGlzcGxheSA/PyBCQVNFX0RJU1BMQVlfT1BUSU9OUyk7XG5jb25zdCBjYXBhYmlsaXRpZXMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uY2FwYWJpbGl0aWVzKTtcblxuZXhwb3J0IGNvbnN0IERhc2hib2FyZFNlbGVjdG9ycyA9IHtcbiAgZmVhdHVyZSxcbiAgcmFuayxcbiAgY3VycmVudE1hbmlmZXN0SWQsXG4gIGdsb2JhbE1hbmlmZXN0LFxuICBtYW5pZmVzdERhdGFzb3VyY2VzLFxuICByZWZyZXNoUmF0ZXMsXG4gIHdpbmRvd01hbmlmZXN0LFxuICB3aWRnZXRNYW5pZmVzdCxcbiAgbWFuaWZlc3RzTGlzdCxcbiAgZ3JpZExheW91dCxcbiAgdGVuYW50cyxcbiAgcmVzdWx0U2V0cyxcbiAgcmVzdWx0U2V0c1BhcmFtcyxcbiAgbmFtZWRRdWVyaWVzTmFtZXMsXG4gIG5hbWVkUXVlcmllc1VzZXMsXG4gIGF2YWlsYWJsZU5hbWVkUXVlcmllcyxcbiAgZGVmYXVsdERhdGFzb3VyY2VOYW1lcyxcbiAgc2VsZWN0ZWRJdGVtSWRzLFxuICBhbGxJdGVtcyxcbiAgZ2V0SXRlbXNCeUlkcyxcbiAgc2VsZWN0ZWRJdGVtcyxcbiAgb2JqZWN0RGV0YWlscyxcbiAgdGFyZ2V0VGVuYW50c0luZGV4ZXMsXG4gIGRhc2hib2FyZCxcbiAgZGFzaGJvYXJkQ2VsbFBhcmFtcyxcbiAgZGFzaGJvYXJkRWRpdGlvbk1vZGUsXG4gIHN0YXRpY01hbmlmZXN0LFxuICBsb2FkaW5nLFxuICBxdWlja09yZGVyLFxuICBwcmVzZW50YXRpb24sXG4gIGZpbHRlcnMsXG4gIGlzQ3VycmVudFByZXNlbnRhdGlvbk1vZGlmaWVkLFxuICBpc0N1cnJlbnRQcmVzZW50YXRpb25Pd25lcixcbiAgZGF0YXNvdXJjZUZpbHRlcnMsXG4gIHdtc0ZlYXR1cmVzLFxuICBkaXNwbGF5T3B0aW9ucyxcbiAgY2FwYWJpbGl0aWVzXG59O1xuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUN0RixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUd4QyxPQUFPLEVBQ0wsbUJBQW1CLEVBS3BCLE1BQU0scUNBQXFDLENBQUM7QUFLN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUU3QixNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUN4RSxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3hGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDbkMsU0FBUztBQUNULGFBQWE7QUFDYixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQUUsUUFBUSxFQUFFLElB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QUMsQ0FBQztBQUNsSCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU87SUFDUCxJQUFJO0lBQ0osaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxZQUFZO0lBQ1osY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsVUFBVTtJQUNWLE9BQU87SUFDUCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixlQUFlO0lBQ2YsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2QsT0FBTztJQUNQLFVBQVU7SUFDVixZQUFZO0lBQ1osT0FBTztJQUNQLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxjQUFjO0lBQ2QsWUFBWTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgRmlsdGVyLCBGaWx0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIERhc2hib2FyZE1hbmlmZXN0LFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgV2lkZ2V0TGF5b3V0LFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRPcmRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQsIFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhc2hib2FyZENlbGxQYXJhbXMgfSBmcm9tICcuL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFN0YXRlIH0gZnJvbSAnLi9kYXNoYm9hcmQucmVkdWNlcnMnO1xuaW1wb3J0IHsgQkFTRV9ESVNQTEFZX09QVElPTlMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5jb25zdCBORVdfV0lORE9XX1RBUkdFVCA9IC0xO1xuXG5jb25zdCBmZWF0dXJlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPERhc2hib2FyZFN0YXRlPignQHByeS9kYXNoYm9hcmQnKTtcbmNvbnN0IG1hbmlmZXN0cyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5tYW5pZmVzdHMpO1xuY29uc3QgcmFuayA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzPy50ZW5hbnRzLmluZGV4T2YobWFuaWZlc3RzLnNlbmRlcikpO1xuY29uc3QgY3VycmVudE1hbmlmZXN0SWQgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5jdXJyZW50SWQpO1xuY29uc3QgZ2xvYmFsTWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgbWFuaWZlc3RzLFxuICAvLyBAdHMtaWdub3JlXG4gIChtYW5pZmVzdHMpID0+ICh7IHdpbmRvd3M6IFtdLCAuLi5tYW5pZmVzdHM/Lm1hbmlmZXN0IH0gPz8gKHsgd2luZG93czogW10gfSBhcyBHbG9iYWxNYW5pZmVzdCkpXG4pO1xuY29uc3Qgc3RhdGljTWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgbWFuaWZlc3RzLFxuICAvLyBAdHMtaWdub3JlXG4gIChtYW5pZmVzdHMpID0+ICh7IHdpbmRvd3M6IFtdLCAuLi5tYW5pZmVzdHM/LnN0YXRpY01hbmlmZXN0IH0gPz8gKHsgd2luZG93czogW10gfSBhcyBHbG9iYWxNYW5pZmVzdCkpXG4pO1xuY29uc3QgbG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gISFtYW5pZmVzdHM/LmxvYWRpbmcpO1xuY29uc3QgcmVmcmVzaFJhdGVzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5yZWZyZXNoUmF0ZXMgPz8ge30pO1xuY29uc3Qgd2luZG93TWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgZ2xvYmFsTWFuaWZlc3QsXG4gIHJhbmssXG4gIChtYW5pZmVzdCwgcmFuaykgPT4gbWFuaWZlc3Qud2luZG93c1tyYW5rXSA/PyA8RGFzaGJvYXJkTWFuaWZlc3Q+eyB3aWRnZXRzOiBbXSB9XG4pO1xuY29uc3QgZ3JpZExheW91dCA9IGNyZWF0ZVNlbGVjdG9yKFxuICB3aW5kb3dNYW5pZmVzdCxcbiAgKG1hbmlmZXN0KSA9PiAoKG1hbmlmZXN0LmdyaWQgPz8ge30pLmxheW91dCA/PyBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkgYXMgc3RyaW5nXG4pO1xuY29uc3QgbWVtb2l6ZVdpZGdldE1hbmlmZXN0ID0ge30gYXMgYW55O1xuY29uc3Qgd2lkZ2V0TWFuaWZlc3QgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICBpZiAoIW1lbW9pemVXaWRnZXRNYW5pZmVzdFtpbmRleF0pIHtcbiAgICBtZW1vaXplV2lkZ2V0TWFuaWZlc3RbaW5kZXhdID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB3aW5kb3dNYW5pZmVzdCxcbiAgICAgICh3aW5kb3dNYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3QpID0+XG4gICAgICAgIHdpbmRvd01hbmlmZXN0LndpZGdldHNbaW5kZXhdID8/XG4gICAgICAgICh7XG4gICAgICAgICAgdHlwZTogJ3BsYWNlaG9sZGVyJyxcbiAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9XG4gICAgICAgIH0gYXMgV2lkZ2V0TWFuaWZlc3QpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbWVtb2l6ZVdpZGdldE1hbmlmZXN0W2luZGV4XSBhcyBNZW1vaXplZFNlbGVjdG9yPERhc2hib2FyZE1hbmlmZXN0LCBXaWRnZXRNYW5pZmVzdD47XG59O1xuY29uc3QgbWFuaWZlc3RzTGlzdCA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLmxpc3QpO1xuY29uc3QgdGVuYW50cyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLnRlbmFudHMgPz8gPHN0cmluZ1tdPltdKTtcbmNvbnN0IHRhcmdldFRlbmFudHNJbmRleGVzID0gY3JlYXRlU2VsZWN0b3IobWFuaWZlc3RzLCByYW5rLCAobWFuaWZlc3RzLCByYW5rKSA9PiBbXG4gIE5FV19XSU5ET1dfVEFSR0VULFxuICAuLi4obWFuaWZlc3RzLnRlbmFudHMgPz8gKFtdIGFzIHN0cmluZ1tdKSkubWFwKCh0ZW4sIGlkeCkgPT4gaWR4KS5maWx0ZXIoKGlkeCkgPT4gaWR4ICE9PSByYW5rKVxuXSk7XG5jb25zdCByZXN1bHRzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/LnJlc3VsdHMpO1xuXG5jb25zdCByZXN1bHRTZXRzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMucmVzdWx0U2V0cyA/PyAoe30gYXMgUmVzdWx0U2V0cykpO1xuY29uc3QgcmVzdWx0U2V0c1BhcmFtcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICByZXN1bHRzLFxuICAocmVzdWx0cykgPT4gcmVzdWx0cy5yZXN1bHRTZXRzUGFyYW1zID8/ICh7fSBhcyB7IFtpZDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pXG4pO1xuY29uc3QgbmFtZWRRdWVyaWVzTmFtZXMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRTZXRzLCAoc3RhdGU6IFJlc3VsdFNldHMpID0+IE9iamVjdC5rZXlzKHN0YXRlKSA/PyA8c3RyaW5nW10+W10pO1xuY29uc3QgYXZhaWxhYmxlTmFtZWRRdWVyaWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5yZXN1bHRzLmF2YWlsYWJsZURhdGFzb3VyY2VOYW1lcywgLi4uT2JqZWN0LmtleXMocmVzdWx0cy5yZXN1bHRTZXRzKV0pXSA/PyA8c3RyaW5nW10+W107XG59KTtcbmNvbnN0IGRlZmF1bHREYXRhc291cmNlTmFtZXMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRzLCAocmVzdWx0cykgPT4gcmVzdWx0cy5kZWZhdWx0RGF0YXNvdXJjZSA/PyAnY3VycmVudCcpO1xuY29uc3Qgc2VsZWN0ZWRJdGVtSWRzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMuc2VsZWN0ZWRJdGVtcyA/PyAoW10gYXMgc3RyaW5nW10pKTtcbmNvbnN0IG9iamVjdERldGFpbHMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRzLCAocmVzdWx0cykgPT4gcmVzdWx0cy5vYmplY3REZXRhaWxzID8/ICh7fSBhcyB7IFtpZDogc3RyaW5nXTogSXRlbSB9KSk7XG5jb25zdCBxdWlja09yZGVyID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMucXVpY2tPcmRlciA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IFJlc3VsdE9yZGVyIH0pKTtcbmNvbnN0IGFsbEl0ZW1zID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+XG4gIE9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAubWFwKChyc0tleSkgPT5cbiAgICAgIE9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0c1tyc0tleV0uaXRlbXMpXG4gICAgICAgIC5tYXAoKGNsYXNzS2V5KSA9PiAocmVzdWx0cy5yZXN1bHRTZXRzW3JzS2V5XSBhcyBSZXN1bHRTZXQpLml0ZW1zW2NsYXNzS2V5XSlcbiAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICApXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbik7XG5jb25zdCBnZXRJdGVtc0J5SWRzID0gKGlkczogc3RyaW5nW10pID0+XG4gIGNyZWF0ZVNlbGVjdG9yKGFsbEl0ZW1zLCAoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaWRzLmluY2x1ZGVzKGl0ZW0uaWQpKSk7XG5jb25zdCBzZWxlY3RlZEl0ZW1zID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdGVkSXRlbUlkcyxcbiAgYWxsSXRlbXMsXG4gIChpdGVtTmFtZXMsIGFsbEl0ZW1zKSA9PiBpdGVtTmFtZXMubWFwKChuYW1lKSA9PiBhbGxJdGVtcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IG5hbWUpKSA/PyAoW10gYXMgSXRlbVtdKVxuKTtcbmNvbnN0IGRhc2hib2FyZCA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5kYXNoYm9hcmQgPz8ge30pO1xuY29uc3QgZGFzaGJvYXJkQ2VsbFBhcmFtcyA9IGNyZWF0ZVNlbGVjdG9yKGRhc2hib2FyZCwgKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLnBhcmFtcyA/PyA8RGFzaGJvYXJkQ2VsbFBhcmFtcz57fSk7XG5jb25zdCBkYXNoYm9hcmRFZGl0aW9uTW9kZSA9IGNyZWF0ZVNlbGVjdG9yKGRhc2hib2FyZCwgKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLmVkaXRpb25Nb2RlID8/IGZhbHNlKTtcbmNvbnN0IG5hbWVkUXVlcmllc1VzZXMgPSBjcmVhdGVTZWxlY3RvcihnbG9iYWxNYW5pZmVzdCwgKG1hbmlmZXN0KSA9PlxuICBtYW5pZmVzdC53aW5kb3dzXG4gICAgLm1hcCgod2luZG93LCBpZHgpID0+ICh7IHdpbmRvd0luZGV4OiBpZHgsIHdpZGdldHM6IHdpbmRvdy53aWRnZXRzIH0pKVxuICAgIC5tYXAoKHsgd2luZG93SW5kZXgsIHdpZGdldHMgfSkgPT5cbiAgICAgIHdpZGdldHMubWFwKCh3aWRnZXQpID0+XG4gICAgICAgIChBcnJheS5pc0FycmF5KHdpZGdldC5kYXRhc291cmNlKSA/IHdpZGdldC5kYXRhc291cmNlIDogW3dpZGdldC5kYXRhc291cmNlXSlcbiAgICAgICAgICAuZmlsdGVyKChyc05hbWUpID0+IHJzTmFtZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKHJzTmFtZSkgPT4gKHtcbiAgICAgICAgICAgIHJzTmFtZSxcbiAgICAgICAgICAgIHdpbmRvd0luZGV4LFxuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICBsYXlvdXQ6IHdpZGdldC5sYXlvdXRcbiAgICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgIC5yZWR1Y2UoXG4gICAgICAocCwgYykgPT4gKHsgLi4ucCwgW2MucnNOYW1lID8/ICcnXTogWy4uLihwW2MucnNOYW1lID8/ICcnXSB8fCBbXSksIHsgLi4uYyB9XSB9KSxcbiAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogeyB3aW5kb3dJbmRleDogbnVtYmVyOyB0eXBlOiBzdHJpbmc7IGxheW91dDogV2lkZ2V0TGF5b3V0OyByc05hbWU/OiBzdHJpbmcgfVtdIH1cbiAgICApXG4pO1xuY29uc3QgcHJlc2VudGF0aW9uID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/LnByZXNlbnRhdGlvbik7XG5jb25zdCBpc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBwcmVzZW50YXRpb24sXG4gIGdsb2JhbE1hbmlmZXN0LFxuICAoc3RhdGUsIGdsb2JhbCkgPT4gIWVxdWFsKGdsb2JhbCwgc3RhdGUuaW5pdGlhbClcbik7XG5jb25zdCBpc0N1cnJlbnRQcmVzZW50YXRpb25Pd25lciA9IGNyZWF0ZVNlbGVjdG9yKHByZXNlbnRhdGlvbiwgKHN0YXRlKSA9PiAhIXN0YXRlLmN1cnJlbnQgJiYgc3RhdGUuY3VycmVudC5vd25lcik7XG5cbmNvbnN0IGZpbHRlcnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMgPz8gW10pO1xuY29uc3QgZGF0YXNvdXJjZUZpbHRlcnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PlxuICBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnNcbiAgICA/IHN0YXRlPy5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycy5yZWR1Y2UoXG4gICAgICAgIChvYmo6IHsgW2RhdGFzb3VyY2VJZDogc3RyaW5nXTogRmlsdGVyQ29udGV4dFtdIH0sIGZpbHRlcjogRmlsdGVyKSA9PiAoXG4gICAgICAgICAgZmlsdGVyLmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cmlidXRlKSA9PlxuICAgICAgICAgICAgKG9ialthdHRyaWJ1dGUuZGF0YXNvdXJjZV0gfHwgKG9ialthdHRyaWJ1dGUuZGF0YXNvdXJjZV0gPSBbXSkpLnB1c2goe1xuICAgICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICAgICAgb3BlcmF0b3I6IGZpbHRlci5vcGVyYXRvciA/PyAnJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICAgIG9ialxuICAgICAgICApLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIDoge31cbik7XG5jb25zdCB3bXNGZWF0dXJlcyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy53bXNGZWF0dXJlcyk7XG5jb25zdCBkaXNwbGF5T3B0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5kaXNwbGF5ID8/IEJBU0VfRElTUExBWV9PUFRJT05TKTtcbmNvbnN0IGNhcGFiaWxpdGllcyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5jYXBhYmlsaXRpZXMpO1xuXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkU2VsZWN0b3JzID0ge1xuICBmZWF0dXJlLFxuICByYW5rLFxuICBjdXJyZW50TWFuaWZlc3RJZCxcbiAgZ2xvYmFsTWFuaWZlc3QsXG4gIHJlZnJlc2hSYXRlcyxcbiAgd2luZG93TWFuaWZlc3QsXG4gIHdpZGdldE1hbmlmZXN0LFxuICBtYW5pZmVzdHNMaXN0LFxuICBncmlkTGF5b3V0LFxuICB0ZW5hbnRzLFxuICByZXN1bHRTZXRzLFxuICByZXN1bHRTZXRzUGFyYW1zLFxuICBuYW1lZFF1ZXJpZXNOYW1lcyxcbiAgbmFtZWRRdWVyaWVzVXNlcyxcbiAgYXZhaWxhYmxlTmFtZWRRdWVyaWVzLFxuICBkZWZhdWx0RGF0YXNvdXJjZU5hbWVzLFxuICBzZWxlY3RlZEl0ZW1JZHMsXG4gIGFsbEl0ZW1zLFxuICBnZXRJdGVtc0J5SWRzLFxuICBzZWxlY3RlZEl0ZW1zLFxuICBvYmplY3REZXRhaWxzLFxuICB0YXJnZXRUZW5hbnRzSW5kZXhlcyxcbiAgZGFzaGJvYXJkLFxuICBkYXNoYm9hcmRDZWxsUGFyYW1zLFxuICBkYXNoYm9hcmRFZGl0aW9uTW9kZSxcbiAgc3RhdGljTWFuaWZlc3QsXG4gIGxvYWRpbmcsXG4gIHF1aWNrT3JkZXIsXG4gIHByZXNlbnRhdGlvbixcbiAgZmlsdGVycyxcbiAgaXNDdXJyZW50UHJlc2VudGF0aW9uTW9kaWZpZWQsXG4gIGlzQ3VycmVudFByZXNlbnRhdGlvbk93bmVyLFxuICBkYXRhc291cmNlRmlsdGVycyxcbiAgd21zRmVhdHVyZXMsXG4gIGRpc3BsYXlPcHRpb25zLFxuICBjYXBhYmlsaXRpZXNcbn07XG4iXX0=
|
|
@@ -5,9 +5,11 @@ import { SearchActions } from '../../core/store/search/search.actions';
|
|
|
5
5
|
import { DashboardSelectors } from './dashboard.selectors';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@ngrx/store";
|
|
8
|
+
import * as i2 from "../components/widgets/widget-instanciator/widget-factory.service";
|
|
8
9
|
export class RefreshService {
|
|
9
|
-
constructor(store) {
|
|
10
|
+
constructor(store, widgetFactoryService) {
|
|
10
11
|
this.store = store;
|
|
12
|
+
this.widgetFactoryService = widgetFactoryService;
|
|
11
13
|
}
|
|
12
14
|
stop() {
|
|
13
15
|
this.subscription?.unsubscribe();
|
|
@@ -15,11 +17,14 @@ export class RefreshService {
|
|
|
15
17
|
start() {
|
|
16
18
|
if (!this.subscription) {
|
|
17
19
|
this.subscription = interval(1000)
|
|
18
|
-
.pipe(withLatestFrom(this.store.select(DashboardSelectors.refreshRates), this.store.select(DashboardSelectors.
|
|
19
|
-
|
|
20
|
-
.
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
.pipe(withLatestFrom(this.store.select(DashboardSelectors.refreshRates), this.store.select(DashboardSelectors.globalManifest)), map(([interval, refreshRates, globalManifest]) => {
|
|
21
|
+
const datasources = this.widgetFactoryService.getObjectsToAutoLoad(globalManifest).datasources;
|
|
22
|
+
return Object.keys(refreshRates)
|
|
23
|
+
.filter((key) => datasources.map((ds) => ds.datasetId).includes(key))
|
|
24
|
+
.filter((key) => refreshRates[key] !== undefined && refreshRates[key] !== 0)
|
|
25
|
+
.filter((key) => interval % refreshRates[key] === 0)
|
|
26
|
+
.map((dsId) => datasources.find((ds) => ds.datasetId === dsId));
|
|
27
|
+
}), filter((rs) => rs.length > 0))
|
|
23
28
|
.subscribe((resultSetsToUpdate) => {
|
|
24
29
|
resultSetsToUpdate.forEach((rs) => {
|
|
25
30
|
this.store.dispatch(SearchActions.getDatasourceItems({
|
|
@@ -31,7 +36,7 @@ export class RefreshService {
|
|
|
31
36
|
});
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, deps: [{ token: i1.Store }, { token: i2.WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
40
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, providedIn: 'root' }); }
|
|
36
41
|
}
|
|
37
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, decorators: [{
|
|
@@ -39,5 +44,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
39
44
|
args: [{
|
|
40
45
|
providedIn: 'root'
|
|
41
46
|
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.WidgetFactoryService }]; } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9yZWZyZXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLM0QsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsS0FBWSxFQUFVLG9CQUEwQztRQUFoRSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUFHLENBQUM7SUFFeEYsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7aUJBQy9CLElBQUksQ0FDSCxjQUFjLENBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUNyRCxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO2dCQUMvQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFDO2dCQUUvRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO3FCQUM3QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3BFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUMzRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNuRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzlCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ2hDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsYUFBYSxDQUFDLGtCQUFrQixDQUFDO3dCQUMvQixFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVM7d0JBQ2hCLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVTt3QkFDekIsSUFBSSxFQUFFLHdCQUF3QjtxQkFDL0IsQ0FBQyxDQUNILENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzsrR0F4Q1UsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlYXJjaEFjdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0b3JlL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi9kYXNoYm9hcmQuc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVmcmVzaFNlcnZpY2Uge1xuICBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgd2lkZ2V0RmFjdG9yeVNlcnZpY2U6IFdpZGdldEZhY3RvcnlTZXJ2aWNlKSB7fVxuXG4gIHN0b3AoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzdGFydCgpIHtcbiAgICBpZiAoIXRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGludGVydmFsKDEwMDApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlZnJlc2hSYXRlcyksXG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZ2xvYmFsTWFuaWZlc3QpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtYXAoKFtpbnRlcnZhbCwgcmVmcmVzaFJhdGVzLCBnbG9iYWxNYW5pZmVzdF0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFzb3VyY2VzID0gdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5nZXRPYmplY3RzVG9BdXRvTG9hZChnbG9iYWxNYW5pZmVzdCkuZGF0YXNvdXJjZXM7XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhyZWZyZXNoUmF0ZXMpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4gZGF0YXNvdXJjZXMubWFwKChkcykgPT4gZHMuZGF0YXNldElkKS5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHJlZnJlc2hSYXRlc1trZXldICE9PSB1bmRlZmluZWQgJiYgcmVmcmVzaFJhdGVzW2tleV0gIT09IDApXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4gaW50ZXJ2YWwgJSByZWZyZXNoUmF0ZXNba2V5XSA9PT0gMClcbiAgICAgICAgICAgICAgLm1hcCgoZHNJZCkgPT4gZGF0YXNvdXJjZXMuZmluZCgoZHMpID0+IGRzLmRhdGFzZXRJZCA9PT0gZHNJZCkhKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaWx0ZXIoKHJzKSA9PiBycy5sZW5ndGggPiAwKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdFNldHNUb1VwZGF0ZSkgPT4ge1xuICAgICAgICAgIHJlc3VsdFNldHNUb1VwZGF0ZS5mb3JFYWNoKChycykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgICAgIGlkOiBycy5kYXRhc2V0SWQsXG4gICAgICAgICAgICAgICAgZXhjbHVkZUdlbzogcnMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBmcm9tOiAnUmVmcmVzaFNlcnZpY2Uuc3RhcnQoKSdcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28
28
|
providedIn: 'root'
|
|
29
29
|
}]
|
|
30
30
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Store }]; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9ub3RpZmljYXRpb24vc3RvcmUvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUtoQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFVBQXNCLEVBQVUsS0FBaUI7UUFBakQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQVk7SUFBRyxDQUFDO0lBRXpFLGtCQUFrQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO2FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7K0dBYlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+KSB7fVxuXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbihpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybClcbiAgICAgIC5waXBlKG1lcmdlTWFwKCh1cmwpID0+IHRoaXMuaHR0cENsaWVudC5kZWxldGUoZW5jb2RlVVJJKGAke3VybH0vbm90aWZpY2F0aW9uL21lL2lkLyR7aWR9YCkpKSk7XG4gIH1cblxuICBkZWxldGVBbGxOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKGVuY29kZVVSSShgJHt1cmx9L25vdGlmaWNhdGlvbi9tZWApKSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -2,10 +2,10 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class PryNotificationCssComponent {
|
|
4
4
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNotificationCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryNotificationCssComponent, selector: "pry-notification-css", ngImport: i0, template: '', isInline: true, styles: [".m-notifications-list__items{margin:0;padding:0}.m-notifications-list__items li{list-style:none}.m-notifications{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.875rem;min-height:1.4375rem}.m-notifications .a-btn{width:2.5rem;height:2.5rem}.m-notifications .a-btn:before{content:\"\";display:block;position:absolute;width:100%;height:100%;border-radius:50%}.m-notifications .a-btn .a-pastille{position:absolute;top:-.4375rem;right:-.4375rem}.m-notifications-list{position:absolute;top:.9375rem;right:10px;display:flex;align-items:center;flex-direction:column;min-width:17.1875rem;max-height:41.5625rem;border-radius:.3125rem}.m-notifications-list .caret-top{position:absolute;z-index:3;bottom:100%;left:14.1875rem;width:0;border:.5rem solid transparent;border-top:none;border-bottom-color:#fff;filter:drop-shadow(0 -.0625rem .0625rem rgba(0,0,0,.1))}.m-notifications-list__header{width:100%;padding:.9375rem}.m-notifications-list__header .a-p.none{margin-top:.625rem}.m-notifications-list__header .a-btn{padding-left:.9375rem;padding-right:.9375rem}.m-notifications-list__content{overflow:auto;height:auto;padding-bottom:.9375rem}.m-notifications-
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryNotificationCssComponent, selector: "pry-notification-css", ngImport: i0, template: '', isInline: true, styles: [".m-notifications-list__items{margin:0;padding:0}.m-notifications-list__items li{list-style:none}.m-notifications{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.875rem;min-height:1.4375rem}.m-notifications .a-btn{width:2.5rem;height:2.5rem}.m-notifications .a-btn:before{content:\"\";display:block;position:absolute;width:100%;height:100%;border-radius:50%}.m-notifications .a-btn .a-pastille{position:absolute;top:-.4375rem;right:-.4375rem}.m-notifications-list{position:absolute;top:.9375rem;right:10px;display:flex;align-items:center;flex-direction:column;min-width:17.1875rem;max-height:41.5625rem;border-radius:.3125rem}.m-notifications-list .caret-top{position:absolute;z-index:3;bottom:100%;left:14.1875rem;width:0;border:.5rem solid transparent;border-top:none;border-bottom-color:#fff;filter:drop-shadow(0 -.0625rem .0625rem rgba(0,0,0,.1))}.m-notifications-list__header{width:100%;padding:.9375rem}.m-notifications-list__header .a-p.none{margin-top:.625rem}.m-notifications-list__header .a-btn{padding-left:.9375rem;padding-right:.9375rem}.m-notifications-list__content{overflow:auto;height:auto;padding-bottom:.9375rem}.m-notifications-list__items__li{position:relative;display:flex;justify-content:space-between;align-items:stretch;padding:.9375rem;gap:.3125rem}.m-notifications-list__items__li__txt{flex:1}.m-notifications-list__items__li__txt .a-h3{display:flex;justify-content:space-between;margin-bottom:0;padding-bottom:.1875rem}.m-notifications-list__items__li__txt .a-p{padding-bottom:0}.m-notifications-list__items__li__txt .a-p.desc{margin-bottom:0}.m-notifications-list__items__li__txt .a-p.desc+a{display:block;margin-top:.625rem;cursor:pointer}.m-notifications-list__items__li .a-btn--delete{position:relative;padding:0 .1875rem;height:auto}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6
6
|
}
|
|
7
7
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNotificationCssComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
|
-
args: [{ selector: 'pry-notification-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".m-notifications-list__items{margin:0;padding:0}.m-notifications-list__items li{list-style:none}.m-notifications{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.875rem;min-height:1.4375rem}.m-notifications .a-btn{width:2.5rem;height:2.5rem}.m-notifications .a-btn:before{content:\"\";display:block;position:absolute;width:100%;height:100%;border-radius:50%}.m-notifications .a-btn .a-pastille{position:absolute;top:-.4375rem;right:-.4375rem}.m-notifications-list{position:absolute;top:.9375rem;right:10px;display:flex;align-items:center;flex-direction:column;min-width:17.1875rem;max-height:41.5625rem;border-radius:.3125rem}.m-notifications-list .caret-top{position:absolute;z-index:3;bottom:100%;left:14.1875rem;width:0;border:.5rem solid transparent;border-top:none;border-bottom-color:#fff;filter:drop-shadow(0 -.0625rem .0625rem rgba(0,0,0,.1))}.m-notifications-list__header{width:100%;padding:.9375rem}.m-notifications-list__header .a-p.none{margin-top:.625rem}.m-notifications-list__header .a-btn{padding-left:.9375rem;padding-right:.9375rem}.m-notifications-list__content{overflow:auto;height:auto;padding-bottom:.9375rem}.m-notifications-
|
|
9
|
+
args: [{ selector: 'pry-notification-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".m-notifications-list__items{margin:0;padding:0}.m-notifications-list__items li{list-style:none}.m-notifications{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.875rem;min-height:1.4375rem}.m-notifications .a-btn{width:2.5rem;height:2.5rem}.m-notifications .a-btn:before{content:\"\";display:block;position:absolute;width:100%;height:100%;border-radius:50%}.m-notifications .a-btn .a-pastille{position:absolute;top:-.4375rem;right:-.4375rem}.m-notifications-list{position:absolute;top:.9375rem;right:10px;display:flex;align-items:center;flex-direction:column;min-width:17.1875rem;max-height:41.5625rem;border-radius:.3125rem}.m-notifications-list .caret-top{position:absolute;z-index:3;bottom:100%;left:14.1875rem;width:0;border:.5rem solid transparent;border-top:none;border-bottom-color:#fff;filter:drop-shadow(0 -.0625rem .0625rem rgba(0,0,0,.1))}.m-notifications-list__header{width:100%;padding:.9375rem}.m-notifications-list__header .a-p.none{margin-top:.625rem}.m-notifications-list__header .a-btn{padding-left:.9375rem;padding-right:.9375rem}.m-notifications-list__content{overflow:auto;height:auto;padding-bottom:.9375rem}.m-notifications-list__items__li{position:relative;display:flex;justify-content:space-between;align-items:stretch;padding:.9375rem;gap:.3125rem}.m-notifications-list__items__li__txt{flex:1}.m-notifications-list__items__li__txt .a-h3{display:flex;justify-content:space-between;margin-bottom:0;padding-bottom:.1875rem}.m-notifications-list__items__li__txt .a-p{padding-bottom:0}.m-notifications-list__items__li__txt .a-p.desc{margin-bottom:0}.m-notifications-list__items__li__txt .a-p.desc+a{display:block;margin-top:.625rem;cursor:pointer}.m-notifications-list__items__li .a-btn--delete{position:relative;padding:0 .1875rem;height:auto}\n"] }]
|
|
10
10
|
}] });
|
|
11
11
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL25vdGlmaWNhdGlvbi9zdHlsZS9jc3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTdELE1BQU0sT0FBTywyQkFBMkI7K0dBQTNCLDJCQUEyQjttR0FBM0IsMkJBQTJCLDREQUo1QixFQUFFOzs0RkFJRCwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LW5vdGlmaWNhdGlvbi1jc3MnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL19tLW5vdGlmaWNhdGlvbnMuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFByeU5vdGlmaWNhdGlvbkNzc0NvbXBvbmVudCB7fVxuIl19
|
|
@@ -278,11 +278,11 @@ export class PryPipelineEditorComponent extends SubscriptionnerDirective {
|
|
|
278
278
|
this.search$.next({ ...$event });
|
|
279
279
|
}
|
|
280
280
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryPipelineEditorComponent, deps: [{ token: i1.Store }, { token: i2.PipelineComponentFactoryService }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
281
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryPipelineEditorComponent, selector: "pry-pipeline-editor", inputs: { pipeline: "pipeline" }, outputs: { goToConsult: "goToConsult" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "canvasParent", first: true, predicate: ["canvasParent"], descendants: true }, { propertyName: "componentRef", first: true, predicate: ["specific"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline\">\n <div class=\"o-pipeline__menu\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories$ | async; let index = index\"\n [item]=\"category\"\n [borderColor]=\"(types$ | async)![category][0].color\"\n [index]=\"index\"\n [showSearchBar]=\"true\"\n [search$]=\"search$\"\n (search)=\"search($event)\"\n translationStringBase=\"@pry.pipeline.\"\n >\n <ul class=\"o-pipeline__components\">\n <ng-container *ngFor=\"let type of (types$ | async)![category]\">\n <li [draggable]=\"!this.disableEditing\" (dragstart)=\"onDragStart($event, type)\">\n <p class=\"a-p\">{{ type.label }}</p>\n <pry-icon [width]=\"2\" [height]=\"20\" iconSvg=\"info\"></pry-icon>\n </li>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n\n <div class=\"o-pipeline__workspace\">\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary
|
|
281
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryPipelineEditorComponent, selector: "pry-pipeline-editor", inputs: { pipeline: "pipeline" }, outputs: { goToConsult: "goToConsult" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "canvasParent", first: true, predicate: ["canvasParent"], descendants: true }, { propertyName: "componentRef", first: true, predicate: ["specific"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline\">\n <div class=\"o-pipeline__menu\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories$ | async; let index = index\"\n [item]=\"category\"\n [borderColor]=\"(types$ | async)![category][0].color\"\n [index]=\"index\"\n [showSearchBar]=\"true\"\n [search$]=\"search$\"\n (search)=\"search($event)\"\n translationStringBase=\"@pry.pipeline.\"\n >\n <ul class=\"o-pipeline__components\">\n <ng-container *ngFor=\"let type of (types$ | async)![category]\">\n <li [draggable]=\"!this.disableEditing\" (dragstart)=\"onDragStart($event, type)\">\n <p class=\"a-p\">{{ type.label }}</p>\n <pry-icon [width]=\"2\" [height]=\"20\" iconSvg=\"info\"></pry-icon>\n </li>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n\n <div class=\"o-pipeline__workspace\">\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"goBack()\">\n {{ '@pry.pipeline.backToDescription' | i18n }}\n </button>\n <ng-container *ngFor=\"let action of actions\">\n <button type=\"button\" (click)=\"clickedAction(action)\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.pipeline.' + action.type | i18n }}\n <pry-icon [iconSvg]=\"action.icon\"></pry-icon>\n </button>\n </ng-container>\n </div>\n <div>\n <h1 class=\"a-h1\">{{ this.pipeline?.title }}</h1>\n </div>\n <div class=\"o-pipeline-editor\">\n <div (drop)=\"onDrop($event)\" class=\"o-pipeline-editor__grid\" #canvasParent>\n <canvas #canvas class=\"canvas\"></canvas>\n </div>\n <div class=\"o-pipeline-editor__properties\">\n <div\n class=\"o-pipeline-editor__properties__node\"\n *ngIf=\"selectedNode$ | async as node\"\n [title]=\"node.properties['id']\"\n >\n <h3 class=\"a-h3\">{{ '@pry.pipeline.selectedTask' | i18n }}</h3>\n <h4 class=\"a-h4\">{{ '@pry.pipeline.type' | i18n }}</h4>\n <p class=\"a-p a-p--type\">{{ node.type }}</p>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"{{ node.id }}\">{{ '@pry.pipeline.title' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"{{ node.id }}\"\n type=\"text\"\n [value]=\"node.title\"\n [disabled]=\"disableEditing\"\n (change)=\"changeTitle(node, $event)\"\n />\n </div>\n </div>\n <div class=\"o-pipeline-editor__properties__detail\" [class.is-empty]=\"!selectedNode\">\n <div>\n <div #specific></div>\n </div>\n </div>\n <div *ngIf=\"((errors$ | async)?.length ?? 0) > 0\" class=\"o-pipeline-editor__properties__errors\">\n <div class=\"o-pipeline-editor__properties__errors__title\">\n <pry-icon iconSvg=\"warning-triangle\"></pry-icon>\n <p class=\"a-p\">{{ '@pry.pipeline.errors' | i18n }}:</p>\n </div>\n <ul>\n <li *ngFor=\"let error of errors$ | async\">\n <span class=\"type\">{{\n (error?.nodeId === '-' ? '@pry.pipeline.global' : '@pry.pipeline.node') | i18n\n }}</span>\n {{ error.translated }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AccordionComponent, selector: "pry-accordion" }, { kind: "component", type: i3.AccordionItemComponent, selector: "pry-accordion-item", inputs: ["item", "borderColor", "index", "translationStringBase", "length", "showSearchBar", "search$"], outputs: ["search"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryPipelineCssComponent, selector: "pry-pipeline-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
282
282
|
}
|
|
283
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryPipelineEditorComponent, decorators: [{
|
|
284
284
|
type: Component,
|
|
285
|
-
args: [{ selector: 'pry-pipeline-editor', template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline\">\n <div class=\"o-pipeline__menu\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories$ | async; let index = index\"\n [item]=\"category\"\n [borderColor]=\"(types$ | async)![category][0].color\"\n [index]=\"index\"\n [showSearchBar]=\"true\"\n [search$]=\"search$\"\n (search)=\"search($event)\"\n translationStringBase=\"@pry.pipeline.\"\n >\n <ul class=\"o-pipeline__components\">\n <ng-container *ngFor=\"let type of (types$ | async)![category]\">\n <li [draggable]=\"!this.disableEditing\" (dragstart)=\"onDragStart($event, type)\">\n <p class=\"a-p\">{{ type.label }}</p>\n <pry-icon [width]=\"2\" [height]=\"20\" iconSvg=\"info\"></pry-icon>\n </li>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n\n <div class=\"o-pipeline__workspace\">\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary
|
|
285
|
+
args: [{ selector: 'pry-pipeline-editor', template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline\">\n <div class=\"o-pipeline__menu\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories$ | async; let index = index\"\n [item]=\"category\"\n [borderColor]=\"(types$ | async)![category][0].color\"\n [index]=\"index\"\n [showSearchBar]=\"true\"\n [search$]=\"search$\"\n (search)=\"search($event)\"\n translationStringBase=\"@pry.pipeline.\"\n >\n <ul class=\"o-pipeline__components\">\n <ng-container *ngFor=\"let type of (types$ | async)![category]\">\n <li [draggable]=\"!this.disableEditing\" (dragstart)=\"onDragStart($event, type)\">\n <p class=\"a-p\">{{ type.label }}</p>\n <pry-icon [width]=\"2\" [height]=\"20\" iconSvg=\"info\"></pry-icon>\n </li>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n\n <div class=\"o-pipeline__workspace\">\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"goBack()\">\n {{ '@pry.pipeline.backToDescription' | i18n }}\n </button>\n <ng-container *ngFor=\"let action of actions\">\n <button type=\"button\" (click)=\"clickedAction(action)\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.pipeline.' + action.type | i18n }}\n <pry-icon [iconSvg]=\"action.icon\"></pry-icon>\n </button>\n </ng-container>\n </div>\n <div>\n <h1 class=\"a-h1\">{{ this.pipeline?.title }}</h1>\n </div>\n <div class=\"o-pipeline-editor\">\n <div (drop)=\"onDrop($event)\" class=\"o-pipeline-editor__grid\" #canvasParent>\n <canvas #canvas class=\"canvas\"></canvas>\n </div>\n <div class=\"o-pipeline-editor__properties\">\n <div\n class=\"o-pipeline-editor__properties__node\"\n *ngIf=\"selectedNode$ | async as node\"\n [title]=\"node.properties['id']\"\n >\n <h3 class=\"a-h3\">{{ '@pry.pipeline.selectedTask' | i18n }}</h3>\n <h4 class=\"a-h4\">{{ '@pry.pipeline.type' | i18n }}</h4>\n <p class=\"a-p a-p--type\">{{ node.type }}</p>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"{{ node.id }}\">{{ '@pry.pipeline.title' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"{{ node.id }}\"\n type=\"text\"\n [value]=\"node.title\"\n [disabled]=\"disableEditing\"\n (change)=\"changeTitle(node, $event)\"\n />\n </div>\n </div>\n <div class=\"o-pipeline-editor__properties__detail\" [class.is-empty]=\"!selectedNode\">\n <div>\n <div #specific></div>\n </div>\n </div>\n <div *ngIf=\"((errors$ | async)?.length ?? 0) > 0\" class=\"o-pipeline-editor__properties__errors\">\n <div class=\"o-pipeline-editor__properties__errors__title\">\n <pry-icon iconSvg=\"warning-triangle\"></pry-icon>\n <p class=\"a-p\">{{ '@pry.pipeline.errors' | i18n }}:</p>\n </div>\n <ul>\n <li *ngFor=\"let error of errors$ | async\">\n <span class=\"type\">{{\n (error?.nodeId === '-' ? '@pry.pipeline.global' : '@pry.pipeline.node') | i18n\n }}</span>\n {{ error.translated }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
286
286
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PipelineComponentFactoryService }, { type: i3.PryI18nService }]; }, propDecorators: { pipeline: [{
|
|
287
287
|
type: Input
|
|
288
288
|
}], goToConsult: [{
|
|
@@ -297,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
297
297
|
type: ViewChild,
|
|
298
298
|
args: ['specific', { read: ViewContainerRef, static: false }]
|
|
299
299
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3BpcGVsaW5lL2NvbXBvbmVudHMvcGlwZWxpbmUtZWRpdG9yL3BpcGVsaW5lLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWVkaXRvci9waXBlbGluZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBcUIsZUFBZSxFQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBR2hFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLG9CQUFvQixDQUFD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QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQTVVVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2WUFLTixnQkFBZ0Isb0RDdENqRCxxakhBeUZBOzs0RkR4RGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHFCQUFxQjt1S0FJdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNjLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ3lDLFlBQVk7c0JBQTdFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zLCBQcnlJMThuU2VydmljZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IExHcmFwaCwgTEdyYXBoQ2FudmFzLCBMR3JhcGhOb2RlLCBMaXRlR3JhcGggfSBmcm9tICdsaXRlZ3JhcGguanMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbWJpbmVMYXRlc3RXaXRoLCBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFBpcGVsaW5lQ29tcG9uZW50RGVmaW5pdGlvbixcbiAgUGlwZWxpbmVDb21wb25lbnRGYWN0b3J5U2VydmljZVxufSBmcm9tICcuLi8uLi9mYWN0b3J5L3BpcGVsaW5lLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZU5vZGUgfSBmcm9tICcuLi8uLi9ub2RlLWNsYXNzL2Jhc2Utbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBOb2RlUGlwZWxpbmVFcnJvciwgUGlwZWxpbmVBY3Rpb25zLCBQaXBlbGluZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvcGlwZWxpbmUuYWN0aW9ucyc7XG5pbXBvcnQgeyBQaXBlbGluZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL3BpcGVsaW5lLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBHcmFwaFNlcmlhbGl6ZXJVdGlscyB9IGZyb20gJy4vZ3JhcGgtc2VyaWFsaXplci51dGlscyc7XG5pbXBvcnQgeyBQcnlTZXJpYWxpemVkUGlwZWxpbmUsIFByeVRyYW5zZm8gfSBmcm9tICcuL3BpcGVsaW5lLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5UID0gJ3BpcGVsaW5lL2NvbXBvbmVudCc7XG5leHBvcnQgY29uc3QgTUlNRV9UWVBFX1BJUEVMSU5FX1BST1BFUlRJRVMgPSAncGlwZWxpbmUvcHJvcGVydGllcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1waXBlbGluZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlwZWxpbmUtZWRpdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlQaXBlbGluZUVkaXRvckNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwaXBlbGluZT86IFByeVRyYW5zZm87XG4gIEBPdXRwdXQoKSBnb1RvQ29uc3VsdCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJ5VHJhbnNmbz4oKTtcbiAgQFZpZXdDaGlsZCgnY2FudmFzJykgY2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc1BhcmVudCcpIGNhbnZhc1BhcmVudCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdzcGVjaWZpYycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBjb21wb25lbnRSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBsR3JhcGhzOiBMR3JhcGhbXSA9IFtdO1xuICBwcml2YXRlIGxHcmFwaENhbnZhcyE6IExHcmFwaENhbnZhcztcbiAgdHlwZXMkOiBPYnNlcnZhYmxlPHsgW2NhdGVnb3J5OiBzdHJpbmddOiBQaXBlbGluZUNvbXBvbmVudERlZmluaXRpb25bXSB9PjtcbiAgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBzZWxlY3RlZE5vZGUkOiBPYnNlcnZhYmxlPEJhc2VOb2RlIHwgdW5kZWZpbmVkPjtcbiAgcmVzcG9uc2UkOiBPYnNlcnZhYmxlPFBpcGVsaW5lUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuICBpbnN0YW5jaWF0ZWRDb21wb25lbnQhOiBDb21wb25lbnRSZWY8YW55PjtcbiAgc2VsZWN0ZWROb2RlPzogQmFzZU5vZGU7XG4gIGFjdGlvbnMgPSBbXSBhcyB7IHR5cGU6IHN0cmluZzsgaWNvbjogc3RyaW5nIH1bXTtcbiAgZXJyb3JzJDogT2JzZXJ2YWJsZTwoTm9kZVBpcGVsaW5lRXJyb3IgJiB7IHRyYW5zbGF0ZWQ6IHN0cmluZyB9KVtdPjtcbiAgZGlzYWJsZUVkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaW1hZ2VzOiB7IHN0YXJ0OiBIVE1MSW1hZ2VFbGVtZW50OyBhZnRlcjogSFRNTEltYWdlRWxlbWVudCB9O1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2U6IFBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIEJhc2VOb2RlLnN0b3JlID0gc3RvcmU7XG4gICAgQmFzZU5vZGUuY2hlY2sgPSAoKSA9PiB0aGlzLmNoZWNrKCk7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG5cbiAgICB0aGlzLnR5cGVzJCA9IGNvbWJpbmVMYXRlc3QoW3BpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UudHlwZXNCeUNhdGVnb3JpZXMkLCB0aGlzLnNlYXJjaCRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZXNCeUNhdGVnb3J5LCBzZWFyY2hdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9IGFzIHsgW2NhdGVnb3J5OiBzdHJpbmddOiBQaXBlbGluZUNvbXBvbmVudERlZmluaXRpb25bXSB9O1xuICAgICAgICBPYmplY3Qua2V5cyh0eXBlc0J5Q2F0ZWdvcnkpLmZvckVhY2goKGNhdCkgPT4ge1xuICAgICAgICAgIHJlc3VsdFtjYXRdID0gdHlwZXNCeUNhdGVnb3J5W2NhdF0uZmlsdGVyKCh0eXBlKSA9PlxuICAgICAgICAgICAgdHlwZS5sYWJlbC50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKChzZWFyY2hbY2F0XSA/PyAnJykudG9Mb2NhbGVMb3dlckNhc2UoKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmNhdGVnb3JpZXMkID0gcGlwZWxpbmVDb21wb25lbnRGYWN0b3J5U2VydmljZS5jYXRlZ29yaWVzJDtcblxuICAgIHRoaXMuc2VsZWN0ZWROb2RlJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFBpcGVsaW5lU2VsZWN0b3JzLnNlbGVjdGVkTm9kZUlkKS5waXBlKG1hcCgoaWQpID0+IHRoaXMuZmluZE5vZGVCeUlkKGlkKSkpO1xuXG4gICAgdGhpcy5yZXNwb25zZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChQaXBlbGluZVNlbGVjdG9ycy5jaGVja1Jlc3BvbnNlKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnJlc3BvbnNlJC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsTm9kZXMuZm9yRWFjaCgoZXJyb3JOb2RlKSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGRlbGV0ZSBlcnJvck5vZGU/LmJnY29sb3I7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIChyZXNwb25zZT8uc3RhdHVzLm1hcCgoc3RhdHVzKSA9PiBzdGF0dXMuZXJyb3JzKS5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pID8/IFtdKVxuICAgICAgICAgID8ubWFwKChlcnJvcikgPT4gdGhpcy5maW5kTm9kZUJ5SWQoZXJyb3Iubm9kZUlkKSlcbiAgICAgICAgICAuZmlsdGVyKChlcnJvck5vZGUpID0+ICEhZXJyb3JOb2RlKVxuICAgICAgICAgIC5mb3JFYWNoKChlcnJvck5vZGUpID0+IChlcnJvck5vZGUhLmJnY29sb3IgPSAnI2Q5MzUzNScpKTtcblxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWROb2RlJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMucmVzcG9uc2UkKSkuc3Vic2NyaWJlKChbbm9kZSwgcmVzcG9uc2VdKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2xlYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKCdkb3duJyk7XG4gICAgICBpZiAobm9kZSkge1xuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLnBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UuZ2V0KG5vZGU/LnR5cGUgPz8gJycpO1xuICAgICAgICBpZiAobW9kdWxlKSB7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5jcmVhdGVDb21wb25lbnQobW9kdWxlLmNvbXBvbmVudCk7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQuaW5zdGFuY2Uubm9kZSA9IG5vZGU7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQuaW5zdGFuY2UuY2hlY2tGbiA9ICgpID0+IHt9O1xuICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlRWRpdGluZztcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLmNoZWNrRm4gPSAoKSA9PiB0aGlzLmNoZWNrKCk7XG4gICAgICAgICAgfSwgMTAwKTtcblxuICAgICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdTdGF0dXMgPSByZXNwb25zZS5zdGF0dXMuZmluZCgoc3RhdHVzKSA9PiBzdGF0dXMubm9kZUlkID09PSBub2RlLnByb3BlcnRpZXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKG1hdGNoaW5nU3RhdHVzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLm1vZGVsID0gbWF0Y2hpbmdTdGF0dXMub3V0TW9kZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLnR5cGUgPT09ICdTdWJHcmFwaE5vZGUnKSB7XG4gICAgICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZXllLWFycm93LWRvd24nLCB0eXBlOiAnZG93bicgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZGVsZXRlJywgdHlwZTogJ2RlbGV0ZScgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUFjdGlvbignZGVsZXRlJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWROb2RlJC5zdWJzY3JpYmUoKG5vZGUpID0+ICh0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGUpKSk7XG5cbiAgICB0aGlzLmVycm9ycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc3BvbnNlJCwgdGhpcy5zZWxlY3RlZE5vZGUkXSkucGlwZShcbiAgICAgIG1hcCgoW3Jlc3BvbnNlLCBzZWxlY3RlZE5vZGVdKSA9PiBbXG4gICAgICAgIC4uLihyZXNwb25zZT8uZXJyb3JzID8/IFtdKS5tYXAoKGVycm9yKSA9PiAoeyAuLi5lcnJvciwgbm9kZUlkOiAnLScgfSkpLFxuICAgICAgICAuLi4ocmVzcG9uc2U/LnN0YXR1cy5maW5kKChzdGF0dXMpID0+IHN0YXR1cy5ub2RlSWQgPT09IChzZWxlY3RlZE5vZGU/LnByb3BlcnRpZXNbJ2lkJ10gPz8gJy0tLS0tJykpPy5lcnJvcnMgPz9cbiAgICAgICAgICBbXSlcbiAgICAgIF0pLFxuICAgICAgbWFwKChlcnJvcnMpID0+XG4gICAgICAgIGVycm9ycy5tYXAoKGVycm9yKSA9PiAoe1xuICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICAgIHRyYW5zbGF0ZWQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LnBpcGVsaW5lLmNvZGVzLicgKyBlcnJvci5jb2RlLCBlcnJvcilcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgLnBpcGUoYXVkaXRUaW1lKDEwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5pbWFnZXMgPSB7XG4gICAgICBzdGFydDogbmV3IEltYWdlKCksXG4gICAgICBhZnRlcjogbmV3IEltYWdlKClcbiAgICB9O1xuICAgIHRoaXMuaW1hZ2VzLnN0YXJ0LnNyYyA9ICcvYXNzZXRzL2JhY2tncm91bmRzL2ltZ19wcm9jZXNzdXMucG5nJztcbiAgICB0aGlzLmltYWdlcy5hZnRlci5zcmMgPSAnJztcbiAgfVxuXG4gIGdldCBjdXJyZW50R3JhcGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubEdyYXBoc1t0aGlzLmxHcmFwaHMubGVuZ3RoIC0gMV07XG4gIH1cblxuICBnZXQgYWxsTm9kZXMoKTogQmFzZU5vZGVbXSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRHcmFwaD8uX25vZGVzID8/IFtdO1xuICB9XG5cbiAgZ2V0IGJhY2tncm91bmRJbWFnZSgpIHtcbiAgICByZXR1cm4gKHRoaXMucGlwZWxpbmU/Lm5vZGVzID8/IFtdKS5sZW5ndGggPiAwID8gdGhpcy5pbWFnZXMuYWZ0ZXIgOiB0aGlzLmltYWdlcy5zdGFydDtcbiAgfVxuXG4gIGZpbmROb2RlQnlJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsTm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5wcm9wZXJ0aWVzWydpZCddID09PSBpZCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sR3JhcGhzLnB1c2gobmV3IExHcmFwaCgpKTtcbiAgICB0aGlzLmxHcmFwaENhbnZhcyA9IG5ldyBMR3JhcGhDYW52YXModGhpcy5jYW52YXMubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyZW50R3JhcGgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLmFsbG93X3NlYXJjaGJveCA9IGZhbHNlO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnRpdGxlX3RleHRfZm9udCA9ICdib2xkIDE0cHggVWJ1bnR1JztcbiAgICB0aGlzLmxHcmFwaENhbnZhcy5pbm5lcl90ZXh0X2ZvbnQgPSAnbm9ybWFsIDEycHggVWJ1bnR1JztcbiAgICB0aGlzLmxHcmFwaENhbnZhcy5kZWZhdWx0X2xpbmtfY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMubEdyYXBoQ2FudmFzLmJhY2tncm91bmRfaW1hZ2UgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5sR3JhcGhDYW52YXMub25EcmF3QmFja2dyb3VuZCA9IChjdHgsIHZlY3RvcikgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIGN0eC5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTtcblxuICAgICAgY29uc3QgaW1nU2l6ZSA9IFszMDYsIDE3MV07XG4gICAgICBjdHguZHJhd0ltYWdlKFxuICAgICAgICB0aGlzLmJhY2tncm91bmRJbWFnZSxcbiAgICAgICAgKHJlY3Qud2lkdGggLSBpbWdTaXplWzBdKSAvIDIsXG4gICAgICAgIChyZWN0LmhlaWdodCAtIGltZ1NpemVbMV0pIC8gMixcbiAgICAgICAgaW1nU2l6ZVswXSxcbiAgICAgICAgaW1nU2l6ZVsxXVxuICAgICAgKTtcbiAgICB9O1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLm9uTm9kZURlc2VsZWN0ZWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgIH07XG4gICAgdGhpcy5jdXJyZW50R3JhcGguc3RhcnQoKTtcbiAgICBpZiAodGhpcy5waXBlbGluZSkge1xuICAgICAgR3JhcGhTZXJpYWxpemVyVXRpbHMuaHlkcmF0ZSh0aGlzLnBpcGVsaW5lIGFzIFByeVNlcmlhbGl6ZWRQaXBlbGluZSwgdGhpcy5jdXJyZW50R3JhcGgpO1xuICAgICAgdGhpcy5kaXNhYmxlRWRpdGluZyA9IHRoaXMucGlwZWxpbmUuYWN0aXZlO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzaXplKCk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICAvLyBNYWtlIGNhbnZhcyBzbyBsaXR0bGUgdGhhdCBpdCBkb2Vzbid0IGltcGFjdCBjc3Mgc2l6ZSBjYWxjdWxhdGlvblxuICAgIHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQud2lkdGggPSAxMDtcbiAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodCA9IDEwO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnJlc2l6ZSgxMCwgMTApO1xuXG4gICAgLy8gTGF0ZXIsIG1ha2UgaXQgZ3JvdyB0byBwcm9wZXIgc2l6ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuY2FudmFzUGFyZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LndpZHRoID0gcmVjdC53aWR0aDtcbiAgICAgIHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XG4gICAgICB0aGlzLmxHcmFwaENhbnZhcy5yZXNpemUocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpO1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgZGlzcGxheUdyYXBoKGdyYXBoOiBMR3JhcGgpIHtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaC5zdG9wKCk7XG4gICAgdGhpcy5sR3JhcGhzLnB1c2goZ3JhcGgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnNldEdyYXBoKGdyYXBoKTtcbiAgICBncmFwaC5zdGFydCgpO1xuICB9XG5cbiAgcG9wR3JhcGgoKSB7XG4gICAgdGhpcy5jdXJyZW50R3JhcGguc3RvcCgpO1xuICAgIHRoaXMubEdyYXBocy5sZW5ndGggPSB0aGlzLmxHcmFwaHMubGVuZ3RoIC0gMTtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaC5zdGFydCgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnNldEdyYXBoKHRoaXMuY3VycmVudEdyYXBoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLmRlc2VsZWN0QWxsTm9kZXMoKTtcbiAgICBpZiAodGhpcy5sR3JhcGhzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oJ3VwJyk7XG4gICAgfVxuICB9XG5cbiAgcHVwR3JhcGgobm9kZTogQmFzZU5vZGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCEhbm9kZS5zdWJHcmFwaCkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5kaXNwbGF5R3JhcGgobm9kZS5zdWJHcmFwaCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgICAgdGhpcy5sR3JhcGhDYW52YXMuZGVzZWxlY3RBbGxOb2RlcygpO1xuICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZXllLWFycm93LXVwJywgdHlwZTogJ3VwJyB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVjaygpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUVkaXRpbmcpIHtcbiAgICAgIHRoaXMucGlwZWxpbmUgPSB7XG4gICAgICAgIC4uLnRoaXMucGlwZWxpbmUsXG4gICAgICAgIC4uLkdyYXBoU2VyaWFsaXplclV0aWxzLnNlcmlhbGl6ZSh0aGlzLmxHcmFwaHNbMF0sIHRoaXMucGlwZWxpbmU/LmlkKVxuICAgICAgfSBhcyBQcnlUcmFuc2ZvO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgUGlwZWxpbmVBY3Rpb25zLmNoZWNrKHtcbiAgICAgICAgICAgIGdyYXBoOiB7XG4gICAgICAgICAgICAgIGlkOiB0aGlzLnBpcGVsaW5lPy5pZCxcbiAgICAgICAgICAgICAgbm9kZXM6IHRoaXMucGlwZWxpbmU/Lm5vZGVzLFxuICAgICAgICAgICAgICBsaW5rczogdGhpcy5waXBlbGluZT8ubGlua3MsXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnBpcGVsaW5lPy50aXRsZSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucGlwZWxpbmU/LmRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaD8uY2hhbmdlKCk7XG4gIH1cblxuICBjcmVhdGVOb2RlKHR5cGU6IHN0cmluZywgcG9zaXRpb246IFtudW1iZXIsIG51bWJlcl0sIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICBjb25zdCB0aXRsZSA9IGFkZGl0aW9uYWxQcm9wZXJ0aWVzLl9sYWJlbCA/PyB0eXBlLnNwbGl0KCcuJylbdHlwZS5zcGxpdCgnLicpLmxlbmd0aCAtIDFdID8/ICc/JztcbiAgICBjb25zdCBub2RlX2NvbnN0ID0gTGl0ZUdyYXBoLmNyZWF0ZU5vZGUodHlwZSwgdGl0bGUsIHt9KTtcbiAgICBpZiAobm9kZV9jb25zdCAhPT0gbnVsbCkge1xuICAgICAgbm9kZV9jb25zdC50aXRsZSA9IHRpdGxlO1xuICAgICAgbm9kZV9jb25zdC5wb3MgPSBwb3NpdGlvbjtcbiAgICAgIE9iamVjdC5rZXlzKGFkZGl0aW9uYWxQcm9wZXJ0aWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgbm9kZV9jb25zdC5wcm9wZXJ0aWVzW2tleV0gPSBhZGRpdGlvbmFsUHJvcGVydGllc1trZXldO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY3VycmVudEdyYXBoLmFkZChub2RlX2NvbnN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBub2RlIG9mIHR5cGUgJHt0eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0KCRldmVudDogRHJhZ0V2ZW50LCBjb21wb25lbnQ6IFBpcGVsaW5lQ29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1BJUEVMSU5FX0NPTVBPTkVOVCkpIHtcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JztcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5ULCBjb21wb25lbnQudHlwZSk7XG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoTUlNRV9UWVBFX1BJUEVMSU5FX1BST1BFUlRJRVMsIEpTT04uc3RyaW5naWZ5KHsgLi4uY29tcG9uZW50LmFkZGl0aW9uYWxQcm9wZXJ0aWVzIH0pKTtcbiAgICB9XG4gIH1cblxuICBvbkRyb3AoJGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoISEkZXZlbnQgJiYgISEkZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBpZiAoJGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcyhNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5UKSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gJGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKE1JTUVfVFlQRV9QSVBFTElORV9DT01QT05FTlQpO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcGVydGllcyA9IEpTT04ucGFyc2UoJGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKE1JTUVfVFlQRV9QSVBFTElORV9QUk9QRVJUSUVTKSk7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZEV2ZW50ID0gdGhpcy5sR3JhcGhDYW52YXMuY29udmVydEV2ZW50VG9DYW52YXNPZmZzZXQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy5jcmVhdGVOb2RlKGNvbXBvbmVudFR5cGUsIFtjb252ZXJ0ZWRFdmVudFswXSwgY29udmVydGVkRXZlbnRbMV1dLCBhZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIHRoaXMuY2hlY2soKTtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVRpdGxlKG5vZGU6IExHcmFwaE5vZGUsICRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbm9kZS50aXRsZSA9ICRldmVudC50YXJnZXQ/LnZhbHVlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgY2xpY2tlZEFjdGlvbihhY3Rpb246IGFueSkge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgdGhpcy5wb3BHcmFwaCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICB0aGlzLnB1cEdyYXBoKHRoaXMuc2VsZWN0ZWROb2RlISk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5jdXJyZW50R3JhcGgucmVtb3ZlKHRoaXMuc2VsZWN0ZWROb2RlISk7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKCdkZWxldGUnKTtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuc2VsZWN0KHsgaWQ6ICcnIH0pKTtcbiAgfVxuXG4gIGFkZEFjdGlvbihhZGQ6IHsgdHlwZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfSkge1xuICAgIGlmICghdGhpcy5hY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uLnR5cGUgPT09IGFkZC50eXBlKSkge1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goYWRkKTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25zLnNvcnQoKGEsIGIpID0+IGEudHlwZS5sb2NhbGVDb21wYXJlKGIudHlwZSkpO1xuICB9XG5cbiAgcmVtb3ZlQWN0aW9uKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnR5cGUgIT09IHR5cGUpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZ29Ub0NvbnN1bHQuZW1pdCh0aGlzLnBpcGVsaW5lKTtcbiAgfVxuXG4gIHNlYXJjaCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHsgLi4uJGV2ZW50IH0pO1xuICB9XG59XG4iLCI8cHJ5LXBpcGVsaW5lLWNzcz48L3ByeS1waXBlbGluZS1jc3M+XG48ZGl2IGNsYXNzPVwiby1waXBlbGluZVwiPlxuICA8ZGl2IGNsYXNzPVwiby1waXBlbGluZV9fbWVudVwiPlxuICAgIDxwcnktYWNjb3JkaW9uPlxuICAgICAgPHByeS1hY2NvcmRpb24taXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllcyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbaXRlbV09XCJjYXRlZ29yeVwiXG4gICAgICAgIFtib3JkZXJDb2xvcl09XCIodHlwZXMkIHwgYXN5bmMpIVtjYXRlZ29yeV1bMF0uY29sb3JcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbc2hvd1NlYXJjaEJhcl09XCJ0cnVlXCJcbiAgICAgICAgW3NlYXJjaCRdPVwic2VhcmNoJFwiXG4gICAgICAgIChzZWFyY2gpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LnBpcGVsaW5lLlwiXG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8tcGlwZWxpbmVfX2NvbXBvbmVudHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0eXBlIG9mICh0eXBlcyQgfCBhc3luYykhW2NhdGVnb3J5XVwiPlxuICAgICAgICAgICAgPGxpIFtkcmFnZ2FibGVdPVwiIXRoaXMuZGlzYWJsZUVkaXRpbmdcIiAoZHJhZ3N0YXJ0KT1cIm9uRHJhZ1N0YXJ0KCRldmVudCwgdHlwZSlcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj57eyB0eXBlLmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjJcIiBbaGVpZ2h0XT1cIjIwXCIgaWNvblN2Zz1cImluZm9cIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvcHJ5LWFjY29yZGlvbi1pdGVtPlxuICAgIDwvcHJ5LWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmVfX3dvcmtzcGFjZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLXBpcGVsaW5lLWxheW91dF9fdG9vbGJveFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLS1zaXplLW1kXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICB7eyAnQHByeS5waXBlbGluZS5iYWNrVG9EZXNjcmlwdGlvbicgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGlja2VkQWN0aW9uKGFjdGlvbilcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLS1zaXplLW1kXCI+XG4gICAgICAgICAge3sgJ0BwcnkucGlwZWxpbmUuJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fVxuICAgICAgICAgIDxwcnktaWNvbiBbaWNvblN2Z109XCJhY3Rpb24uaWNvblwiPjwvcHJ5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxoMSBjbGFzcz1cImEtaDFcIj57eyB0aGlzLnBpcGVsaW5lPy50aXRsZSB9fTwvaDE+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtZWRpdG9yXCI+XG4gICAgICA8ZGl2IChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCIgY2xhc3M9XCJvLXBpcGVsaW5lLWVkaXRvcl9fZ3JpZFwiICNjYW52YXNQYXJlbnQ+XG4gICAgICAgIDxjYW52YXMgI2NhbnZhcyBjbGFzcz1cImNhbnZhc1wiPjwvY2FudmFzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1waXBlbGluZS1lZGl0b3JfX3Byb3BlcnRpZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiby1waXBlbGluZS1lZGl0b3JfX3Byb3BlcnRpZXNfX25vZGVcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWROb2RlJCB8IGFzeW5jIGFzIG5vZGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJub2RlLnByb3BlcnRpZXNbJ2lkJ11cIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiYS1oM1wiPnt7ICdAcHJ5LnBpcGVsaW5lLnNlbGVjdGVkVGFzaycgfCBpMThuIH19PC9oMz5cbiAgICAgICAgICA8aDQgY2xhc3M9XCJhLWg0XCI+e3sgJ0BwcnkucGlwZWxpbmUudHlwZScgfCBpMThuIH19PC9oND5cbiAgICAgICAgICA8cCBjbGFzcz1cImEtcCBhLXAtLXR5cGVcIj57eyBub2RlLnR5cGUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInt7IG5vZGUuaWQgfX1cIj57eyAnQHByeS5waXBlbGluZS50aXRsZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIGlkPVwie3sgbm9kZS5pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm5vZGUudGl0bGVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRpbmdcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZVRpdGxlKG5vZGUsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXBpcGVsaW5lLWVkaXRvcl9fcHJvcGVydGllc19fZGV0YWlsXCIgW2NsYXNzLmlzLWVtcHR5XT1cIiFzZWxlY3RlZE5vZGVcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiAjc3BlY2lmaWM+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKChlcnJvcnMkIHwgYXN5bmMpPy5sZW5ndGggPz8gMCkgPiAwXCIgY2xhc3M9XCJvLXBpcGVsaW5lLWVkaXRvcl9fcHJvcGVydGllc19fZXJyb3JzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtZWRpdG9yX19wcm9wZXJ0aWVzX19lcnJvcnNfX3RpdGxlXCI+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cIndhcm5pbmctdHJpYW5nbGVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj57eyAnQHByeS5waXBlbGluZS5lcnJvcnMnIHwgaTE4biB9fTo8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnMkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eXBlXCI+e3tcbiAgICAgICAgICAgICAgICAoZXJyb3I/Lm5vZGVJZCA9PT0gJy0nID8gJ0BwcnkucGlwZWxpbmUuZ2xvYmFsJyA6ICdAcHJ5LnBpcGVsaW5lLm5vZGUnKSB8IGkxOG5cbiAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgIHt7IGVycm9yLnRyYW5zbGF0ZWQgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3BpcGVsaW5lL2NvbXBvbmVudHMvcGlwZWxpbmUtZWRpdG9yL3BpcGVsaW5lLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWVkaXRvci9waXBlbGluZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBcUIsZUFBZSxFQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBR2hFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLG9CQUFvQixDQUFD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QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQTVVVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2WUFLTixnQkFBZ0Isb0RDdENqRCxpaUhBeUZBOzs0RkR4RGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHFCQUFxQjt1S0FJdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNjLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ3lDLFlBQVk7c0JBQTdFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zLCBQcnlJMThuU2VydmljZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IExHcmFwaCwgTEdyYXBoQ2FudmFzLCBMR3JhcGhOb2RlLCBMaXRlR3JhcGggfSBmcm9tICdsaXRlZ3JhcGguanMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbWJpbmVMYXRlc3RXaXRoLCBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFBpcGVsaW5lQ29tcG9uZW50RGVmaW5pdGlvbixcbiAgUGlwZWxpbmVDb21wb25lbnRGYWN0b3J5U2VydmljZVxufSBmcm9tICcuLi8uLi9mYWN0b3J5L3BpcGVsaW5lLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZU5vZGUgfSBmcm9tICcuLi8uLi9ub2RlLWNsYXNzL2Jhc2Utbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBOb2RlUGlwZWxpbmVFcnJvciwgUGlwZWxpbmVBY3Rpb25zLCBQaXBlbGluZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvcGlwZWxpbmUuYWN0aW9ucyc7XG5pbXBvcnQgeyBQaXBlbGluZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL3BpcGVsaW5lLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBHcmFwaFNlcmlhbGl6ZXJVdGlscyB9IGZyb20gJy4vZ3JhcGgtc2VyaWFsaXplci51dGlscyc7XG5pbXBvcnQgeyBQcnlTZXJpYWxpemVkUGlwZWxpbmUsIFByeVRyYW5zZm8gfSBmcm9tICcuL3BpcGVsaW5lLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5UID0gJ3BpcGVsaW5lL2NvbXBvbmVudCc7XG5leHBvcnQgY29uc3QgTUlNRV9UWVBFX1BJUEVMSU5FX1BST1BFUlRJRVMgPSAncGlwZWxpbmUvcHJvcGVydGllcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1waXBlbGluZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlwZWxpbmUtZWRpdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlQaXBlbGluZUVkaXRvckNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwaXBlbGluZT86IFByeVRyYW5zZm87XG4gIEBPdXRwdXQoKSBnb1RvQ29uc3VsdCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJ5VHJhbnNmbz4oKTtcbiAgQFZpZXdDaGlsZCgnY2FudmFzJykgY2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc1BhcmVudCcpIGNhbnZhc1BhcmVudCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdzcGVjaWZpYycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBjb21wb25lbnRSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBsR3JhcGhzOiBMR3JhcGhbXSA9IFtdO1xuICBwcml2YXRlIGxHcmFwaENhbnZhcyE6IExHcmFwaENhbnZhcztcbiAgdHlwZXMkOiBPYnNlcnZhYmxlPHsgW2NhdGVnb3J5OiBzdHJpbmddOiBQaXBlbGluZUNvbXBvbmVudERlZmluaXRpb25bXSB9PjtcbiAgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBzZWxlY3RlZE5vZGUkOiBPYnNlcnZhYmxlPEJhc2VOb2RlIHwgdW5kZWZpbmVkPjtcbiAgcmVzcG9uc2UkOiBPYnNlcnZhYmxlPFBpcGVsaW5lUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuICBpbnN0YW5jaWF0ZWRDb21wb25lbnQhOiBDb21wb25lbnRSZWY8YW55PjtcbiAgc2VsZWN0ZWROb2RlPzogQmFzZU5vZGU7XG4gIGFjdGlvbnMgPSBbXSBhcyB7IHR5cGU6IHN0cmluZzsgaWNvbjogc3RyaW5nIH1bXTtcbiAgZXJyb3JzJDogT2JzZXJ2YWJsZTwoTm9kZVBpcGVsaW5lRXJyb3IgJiB7IHRyYW5zbGF0ZWQ6IHN0cmluZyB9KVtdPjtcbiAgZGlzYWJsZUVkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaW1hZ2VzOiB7IHN0YXJ0OiBIVE1MSW1hZ2VFbGVtZW50OyBhZnRlcjogSFRNTEltYWdlRWxlbWVudCB9O1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2U6IFBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIEJhc2VOb2RlLnN0b3JlID0gc3RvcmU7XG4gICAgQmFzZU5vZGUuY2hlY2sgPSAoKSA9PiB0aGlzLmNoZWNrKCk7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG5cbiAgICB0aGlzLnR5cGVzJCA9IGNvbWJpbmVMYXRlc3QoW3BpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UudHlwZXNCeUNhdGVnb3JpZXMkLCB0aGlzLnNlYXJjaCRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZXNCeUNhdGVnb3J5LCBzZWFyY2hdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9IGFzIHsgW2NhdGVnb3J5OiBzdHJpbmddOiBQaXBlbGluZUNvbXBvbmVudERlZmluaXRpb25bXSB9O1xuICAgICAgICBPYmplY3Qua2V5cyh0eXBlc0J5Q2F0ZWdvcnkpLmZvckVhY2goKGNhdCkgPT4ge1xuICAgICAgICAgIHJlc3VsdFtjYXRdID0gdHlwZXNCeUNhdGVnb3J5W2NhdF0uZmlsdGVyKCh0eXBlKSA9PlxuICAgICAgICAgICAgdHlwZS5sYWJlbC50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKChzZWFyY2hbY2F0XSA/PyAnJykudG9Mb2NhbGVMb3dlckNhc2UoKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmNhdGVnb3JpZXMkID0gcGlwZWxpbmVDb21wb25lbnRGYWN0b3J5U2VydmljZS5jYXRlZ29yaWVzJDtcblxuICAgIHRoaXMuc2VsZWN0ZWROb2RlJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFBpcGVsaW5lU2VsZWN0b3JzLnNlbGVjdGVkTm9kZUlkKS5waXBlKG1hcCgoaWQpID0+IHRoaXMuZmluZE5vZGVCeUlkKGlkKSkpO1xuXG4gICAgdGhpcy5yZXNwb25zZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChQaXBlbGluZVNlbGVjdG9ycy5jaGVja1Jlc3BvbnNlKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnJlc3BvbnNlJC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsTm9kZXMuZm9yRWFjaCgoZXJyb3JOb2RlKSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGRlbGV0ZSBlcnJvck5vZGU/LmJnY29sb3I7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIChyZXNwb25zZT8uc3RhdHVzLm1hcCgoc3RhdHVzKSA9PiBzdGF0dXMuZXJyb3JzKS5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pID8/IFtdKVxuICAgICAgICAgID8ubWFwKChlcnJvcikgPT4gdGhpcy5maW5kTm9kZUJ5SWQoZXJyb3Iubm9kZUlkKSlcbiAgICAgICAgICAuZmlsdGVyKChlcnJvck5vZGUpID0+ICEhZXJyb3JOb2RlKVxuICAgICAgICAgIC5mb3JFYWNoKChlcnJvck5vZGUpID0+IChlcnJvck5vZGUhLmJnY29sb3IgPSAnI2Q5MzUzNScpKTtcblxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWROb2RlJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMucmVzcG9uc2UkKSkuc3Vic2NyaWJlKChbbm9kZSwgcmVzcG9uc2VdKSA9PiB7XG4gICAgICBpZiAodGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2xlYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKCdkb3duJyk7XG4gICAgICBpZiAobm9kZSkge1xuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLnBpcGVsaW5lQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UuZ2V0KG5vZGU/LnR5cGUgPz8gJycpO1xuICAgICAgICBpZiAobW9kdWxlKSB7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5jcmVhdGVDb21wb25lbnQobW9kdWxlLmNvbXBvbmVudCk7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQuaW5zdGFuY2Uubm9kZSA9IG5vZGU7XG4gICAgICAgICAgdGhpcy5pbnN0YW5jaWF0ZWRDb21wb25lbnQuaW5zdGFuY2UuY2hlY2tGbiA9ICgpID0+IHt9O1xuICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlRWRpdGluZztcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLmNoZWNrRm4gPSAoKSA9PiB0aGlzLmNoZWNrKCk7XG4gICAgICAgICAgfSwgMTAwKTtcblxuICAgICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdTdGF0dXMgPSByZXNwb25zZS5zdGF0dXMuZmluZCgoc3RhdHVzKSA9PiBzdGF0dXMubm9kZUlkID09PSBub2RlLnByb3BlcnRpZXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKG1hdGNoaW5nU3RhdHVzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2lhdGVkQ29tcG9uZW50Lmluc3RhbmNlLm1vZGVsID0gbWF0Y2hpbmdTdGF0dXMub3V0TW9kZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLnR5cGUgPT09ICdTdWJHcmFwaE5vZGUnKSB7XG4gICAgICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZXllLWFycm93LWRvd24nLCB0eXBlOiAnZG93bicgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZGVsZXRlJywgdHlwZTogJ2RlbGV0ZScgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUFjdGlvbignZGVsZXRlJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWROb2RlJC5zdWJzY3JpYmUoKG5vZGUpID0+ICh0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGUpKSk7XG5cbiAgICB0aGlzLmVycm9ycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc3BvbnNlJCwgdGhpcy5zZWxlY3RlZE5vZGUkXSkucGlwZShcbiAgICAgIG1hcCgoW3Jlc3BvbnNlLCBzZWxlY3RlZE5vZGVdKSA9PiBbXG4gICAgICAgIC4uLihyZXNwb25zZT8uZXJyb3JzID8/IFtdKS5tYXAoKGVycm9yKSA9PiAoeyAuLi5lcnJvciwgbm9kZUlkOiAnLScgfSkpLFxuICAgICAgICAuLi4ocmVzcG9uc2U/LnN0YXR1cy5maW5kKChzdGF0dXMpID0+IHN0YXR1cy5ub2RlSWQgPT09IChzZWxlY3RlZE5vZGU/LnByb3BlcnRpZXNbJ2lkJ10gPz8gJy0tLS0tJykpPy5lcnJvcnMgPz9cbiAgICAgICAgICBbXSlcbiAgICAgIF0pLFxuICAgICAgbWFwKChlcnJvcnMpID0+XG4gICAgICAgIGVycm9ycy5tYXAoKGVycm9yKSA9PiAoe1xuICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICAgIHRyYW5zbGF0ZWQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LnBpcGVsaW5lLmNvZGVzLicgKyBlcnJvci5jb2RlLCBlcnJvcilcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgLnBpcGUoYXVkaXRUaW1lKDEwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5pbWFnZXMgPSB7XG4gICAgICBzdGFydDogbmV3IEltYWdlKCksXG4gICAgICBhZnRlcjogbmV3IEltYWdlKClcbiAgICB9O1xuICAgIHRoaXMuaW1hZ2VzLnN0YXJ0LnNyYyA9ICcvYXNzZXRzL2JhY2tncm91bmRzL2ltZ19wcm9jZXNzdXMucG5nJztcbiAgICB0aGlzLmltYWdlcy5hZnRlci5zcmMgPSAnJztcbiAgfVxuXG4gIGdldCBjdXJyZW50R3JhcGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubEdyYXBoc1t0aGlzLmxHcmFwaHMubGVuZ3RoIC0gMV07XG4gIH1cblxuICBnZXQgYWxsTm9kZXMoKTogQmFzZU5vZGVbXSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRHcmFwaD8uX25vZGVzID8/IFtdO1xuICB9XG5cbiAgZ2V0IGJhY2tncm91bmRJbWFnZSgpIHtcbiAgICByZXR1cm4gKHRoaXMucGlwZWxpbmU/Lm5vZGVzID8/IFtdKS5sZW5ndGggPiAwID8gdGhpcy5pbWFnZXMuYWZ0ZXIgOiB0aGlzLmltYWdlcy5zdGFydDtcbiAgfVxuXG4gIGZpbmROb2RlQnlJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsTm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5wcm9wZXJ0aWVzWydpZCddID09PSBpZCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sR3JhcGhzLnB1c2gobmV3IExHcmFwaCgpKTtcbiAgICB0aGlzLmxHcmFwaENhbnZhcyA9IG5ldyBMR3JhcGhDYW52YXModGhpcy5jYW52YXMubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyZW50R3JhcGgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLmFsbG93X3NlYXJjaGJveCA9IGZhbHNlO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnRpdGxlX3RleHRfZm9udCA9ICdib2xkIDE0cHggVWJ1bnR1JztcbiAgICB0aGlzLmxHcmFwaENhbnZhcy5pbm5lcl90ZXh0X2ZvbnQgPSAnbm9ybWFsIDEycHggVWJ1bnR1JztcbiAgICB0aGlzLmxHcmFwaENhbnZhcy5kZWZhdWx0X2xpbmtfY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMubEdyYXBoQ2FudmFzLmJhY2tncm91bmRfaW1hZ2UgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5sR3JhcGhDYW52YXMub25EcmF3QmFja2dyb3VuZCA9IChjdHgsIHZlY3RvcikgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIGN0eC5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTtcblxuICAgICAgY29uc3QgaW1nU2l6ZSA9IFszMDYsIDE3MV07XG4gICAgICBjdHguZHJhd0ltYWdlKFxuICAgICAgICB0aGlzLmJhY2tncm91bmRJbWFnZSxcbiAgICAgICAgKHJlY3Qud2lkdGggLSBpbWdTaXplWzBdKSAvIDIsXG4gICAgICAgIChyZWN0LmhlaWdodCAtIGltZ1NpemVbMV0pIC8gMixcbiAgICAgICAgaW1nU2l6ZVswXSxcbiAgICAgICAgaW1nU2l6ZVsxXVxuICAgICAgKTtcbiAgICB9O1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLm9uTm9kZURlc2VsZWN0ZWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgIH07XG4gICAgdGhpcy5jdXJyZW50R3JhcGguc3RhcnQoKTtcbiAgICBpZiAodGhpcy5waXBlbGluZSkge1xuICAgICAgR3JhcGhTZXJpYWxpemVyVXRpbHMuaHlkcmF0ZSh0aGlzLnBpcGVsaW5lIGFzIFByeVNlcmlhbGl6ZWRQaXBlbGluZSwgdGhpcy5jdXJyZW50R3JhcGgpO1xuICAgICAgdGhpcy5kaXNhYmxlRWRpdGluZyA9IHRoaXMucGlwZWxpbmUuYWN0aXZlO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzaXplKCk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICAvLyBNYWtlIGNhbnZhcyBzbyBsaXR0bGUgdGhhdCBpdCBkb2Vzbid0IGltcGFjdCBjc3Mgc2l6ZSBjYWxjdWxhdGlvblxuICAgIHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQud2lkdGggPSAxMDtcbiAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodCA9IDEwO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnJlc2l6ZSgxMCwgMTApO1xuXG4gICAgLy8gTGF0ZXIsIG1ha2UgaXQgZ3JvdyB0byBwcm9wZXIgc2l6ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuY2FudmFzUGFyZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LndpZHRoID0gcmVjdC53aWR0aDtcbiAgICAgIHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XG4gICAgICB0aGlzLmxHcmFwaENhbnZhcy5yZXNpemUocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpO1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgZGlzcGxheUdyYXBoKGdyYXBoOiBMR3JhcGgpIHtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaC5zdG9wKCk7XG4gICAgdGhpcy5sR3JhcGhzLnB1c2goZ3JhcGgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnNldEdyYXBoKGdyYXBoKTtcbiAgICBncmFwaC5zdGFydCgpO1xuICB9XG5cbiAgcG9wR3JhcGgoKSB7XG4gICAgdGhpcy5jdXJyZW50R3JhcGguc3RvcCgpO1xuICAgIHRoaXMubEdyYXBocy5sZW5ndGggPSB0aGlzLmxHcmFwaHMubGVuZ3RoIC0gMTtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaC5zdGFydCgpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLnNldEdyYXBoKHRoaXMuY3VycmVudEdyYXBoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgIHRoaXMubEdyYXBoQ2FudmFzLmRlc2VsZWN0QWxsTm9kZXMoKTtcbiAgICBpZiAodGhpcy5sR3JhcGhzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oJ3VwJyk7XG4gICAgfVxuICB9XG5cbiAgcHVwR3JhcGgobm9kZTogQmFzZU5vZGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCEhbm9kZS5zdWJHcmFwaCkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5kaXNwbGF5R3JhcGgobm9kZS5zdWJHcmFwaCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy5zZWxlY3QoeyBpZDogJycgfSkpO1xuICAgICAgdGhpcy5sR3JhcGhDYW52YXMuZGVzZWxlY3RBbGxOb2RlcygpO1xuICAgICAgdGhpcy5hZGRBY3Rpb24oeyBpY29uOiAnZXllLWFycm93LXVwJywgdHlwZTogJ3VwJyB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVjaygpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUVkaXRpbmcpIHtcbiAgICAgIHRoaXMucGlwZWxpbmUgPSB7XG4gICAgICAgIC4uLnRoaXMucGlwZWxpbmUsXG4gICAgICAgIC4uLkdyYXBoU2VyaWFsaXplclV0aWxzLnNlcmlhbGl6ZSh0aGlzLmxHcmFwaHNbMF0sIHRoaXMucGlwZWxpbmU/LmlkKVxuICAgICAgfSBhcyBQcnlUcmFuc2ZvO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgUGlwZWxpbmVBY3Rpb25zLmNoZWNrKHtcbiAgICAgICAgICAgIGdyYXBoOiB7XG4gICAgICAgICAgICAgIGlkOiB0aGlzLnBpcGVsaW5lPy5pZCxcbiAgICAgICAgICAgICAgbm9kZXM6IHRoaXMucGlwZWxpbmU/Lm5vZGVzLFxuICAgICAgICAgICAgICBsaW5rczogdGhpcy5waXBlbGluZT8ubGlua3MsXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnBpcGVsaW5lPy50aXRsZSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucGlwZWxpbmU/LmRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmN1cnJlbnRHcmFwaD8uY2hhbmdlKCk7XG4gIH1cblxuICBjcmVhdGVOb2RlKHR5cGU6IHN0cmluZywgcG9zaXRpb246IFtudW1iZXIsIG51bWJlcl0sIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICBjb25zdCB0aXRsZSA9IGFkZGl0aW9uYWxQcm9wZXJ0aWVzLl9sYWJlbCA/PyB0eXBlLnNwbGl0KCcuJylbdHlwZS5zcGxpdCgnLicpLmxlbmd0aCAtIDFdID8/ICc/JztcbiAgICBjb25zdCBub2RlX2NvbnN0ID0gTGl0ZUdyYXBoLmNyZWF0ZU5vZGUodHlwZSwgdGl0bGUsIHt9KTtcbiAgICBpZiAobm9kZV9jb25zdCAhPT0gbnVsbCkge1xuICAgICAgbm9kZV9jb25zdC50aXRsZSA9IHRpdGxlO1xuICAgICAgbm9kZV9jb25zdC5wb3MgPSBwb3NpdGlvbjtcbiAgICAgIE9iamVjdC5rZXlzKGFkZGl0aW9uYWxQcm9wZXJ0aWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgbm9kZV9jb25zdC5wcm9wZXJ0aWVzW2tleV0gPSBhZGRpdGlvbmFsUHJvcGVydGllc1trZXldO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY3VycmVudEdyYXBoLmFkZChub2RlX2NvbnN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBub2RlIG9mIHR5cGUgJHt0eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0KCRldmVudDogRHJhZ0V2ZW50LCBjb21wb25lbnQ6IFBpcGVsaW5lQ29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1BJUEVMSU5FX0NPTVBPTkVOVCkpIHtcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JztcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5ULCBjb21wb25lbnQudHlwZSk7XG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoTUlNRV9UWVBFX1BJUEVMSU5FX1BST1BFUlRJRVMsIEpTT04uc3RyaW5naWZ5KHsgLi4uY29tcG9uZW50LmFkZGl0aW9uYWxQcm9wZXJ0aWVzIH0pKTtcbiAgICB9XG4gIH1cblxuICBvbkRyb3AoJGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoISEkZXZlbnQgJiYgISEkZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBpZiAoJGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcyhNSU1FX1RZUEVfUElQRUxJTkVfQ09NUE9ORU5UKSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gJGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKE1JTUVfVFlQRV9QSVBFTElORV9DT01QT05FTlQpO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcGVydGllcyA9IEpTT04ucGFyc2UoJGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKE1JTUVfVFlQRV9QSVBFTElORV9QUk9QRVJUSUVTKSk7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZEV2ZW50ID0gdGhpcy5sR3JhcGhDYW52YXMuY29udmVydEV2ZW50VG9DYW52YXNPZmZzZXQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy5jcmVhdGVOb2RlKGNvbXBvbmVudFR5cGUsIFtjb252ZXJ0ZWRFdmVudFswXSwgY29udmVydGVkRXZlbnRbMV1dLCBhZGRpdGlvbmFsUHJvcGVydGllcyk7XG4gICAgICAgIHRoaXMuY2hlY2soKTtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVRpdGxlKG5vZGU6IExHcmFwaE5vZGUsICRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbm9kZS50aXRsZSA9ICRldmVudC50YXJnZXQ/LnZhbHVlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgY2xpY2tlZEFjdGlvbihhY3Rpb246IGFueSkge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgdGhpcy5wb3BHcmFwaCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICB0aGlzLnB1cEdyYXBoKHRoaXMuc2VsZWN0ZWROb2RlISk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5jdXJyZW50R3JhcGgucmVtb3ZlKHRoaXMuc2VsZWN0ZWROb2RlISk7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKCdkZWxldGUnKTtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuc2VsZWN0KHsgaWQ6ICcnIH0pKTtcbiAgfVxuXG4gIGFkZEFjdGlvbihhZGQ6IHsgdHlwZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfSkge1xuICAgIGlmICghdGhpcy5hY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uLnR5cGUgPT09IGFkZC50eXBlKSkge1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goYWRkKTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25zLnNvcnQoKGEsIGIpID0+IGEudHlwZS5sb2NhbGVDb21wYXJlKGIudHlwZSkpO1xuICB9XG5cbiAgcmVtb3ZlQWN0aW9uKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnR5cGUgIT09IHR5cGUpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZ29Ub0NvbnN1bHQuZW1pdCh0aGlzLnBpcGVsaW5lKTtcbiAgfVxuXG4gIHNlYXJjaCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHsgLi4uJGV2ZW50IH0pO1xuICB9XG59XG4iLCI8cHJ5LXBpcGVsaW5lLWNzcz48L3ByeS1waXBlbGluZS1jc3M+XG48ZGl2IGNsYXNzPVwiby1waXBlbGluZVwiPlxuICA8ZGl2IGNsYXNzPVwiby1waXBlbGluZV9fbWVudVwiPlxuICAgIDxwcnktYWNjb3JkaW9uPlxuICAgICAgPHByeS1hY2NvcmRpb24taXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllcyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbaXRlbV09XCJjYXRlZ29yeVwiXG4gICAgICAgIFtib3JkZXJDb2xvcl09XCIodHlwZXMkIHwgYXN5bmMpIVtjYXRlZ29yeV1bMF0uY29sb3JcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbc2hvd1NlYXJjaEJhcl09XCJ0cnVlXCJcbiAgICAgICAgW3NlYXJjaCRdPVwic2VhcmNoJFwiXG4gICAgICAgIChzZWFyY2gpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LnBpcGVsaW5lLlwiXG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8tcGlwZWxpbmVfX2NvbXBvbmVudHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0eXBlIG9mICh0eXBlcyQgfCBhc3luYykhW2NhdGVnb3J5XVwiPlxuICAgICAgICAgICAgPGxpIFtkcmFnZ2FibGVdPVwiIXRoaXMuZGlzYWJsZUVkaXRpbmdcIiAoZHJhZ3N0YXJ0KT1cIm9uRHJhZ1N0YXJ0KCRldmVudCwgdHlwZSlcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj57eyB0eXBlLmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjJcIiBbaGVpZ2h0XT1cIjIwXCIgaWNvblN2Zz1cImluZm9cIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvcHJ5LWFjY29yZGlvbi1pdGVtPlxuICAgIDwvcHJ5LWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmVfX3dvcmtzcGFjZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLXBpcGVsaW5lLWxheW91dF9fdG9vbGJveFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgIHt7ICdAcHJ5LnBpcGVsaW5lLmJhY2tUb0Rlc2NyaXB0aW9uJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsaWNrZWRBY3Rpb24oYWN0aW9uKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnBpcGVsaW5lLicgKyBhY3Rpb24udHlwZSB8IGkxOG4gfX1cbiAgICAgICAgICA8cHJ5LWljb24gW2ljb25TdmddPVwiYWN0aW9uLmljb25cIj48L3ByeS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgdGhpcy5waXBlbGluZT8udGl0bGUgfX08L2gxPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLXBpcGVsaW5lLWVkaXRvclwiPlxuICAgICAgPGRpdiAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiIGNsYXNzPVwiby1waXBlbGluZS1lZGl0b3JfX2dyaWRcIiAjY2FudmFzUGFyZW50PlxuICAgICAgICA8Y2FudmFzICNjYW52YXMgY2xhc3M9XCJjYW52YXNcIj48L2NhbnZhcz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtZWRpdG9yX19wcm9wZXJ0aWVzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tcGlwZWxpbmUtZWRpdG9yX19wcm9wZXJ0aWVzX19ub2RlXCJcbiAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTm9kZSQgfCBhc3luYyBhcyBub2RlXCJcbiAgICAgICAgICBbdGl0bGVdPVwibm9kZS5wcm9wZXJ0aWVzWydpZCddXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImEtaDNcIj57eyAnQHByeS5waXBlbGluZS5zZWxlY3RlZFRhc2snIHwgaTE4biB9fTwvaDM+XG4gICAgICAgICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7ICdAcHJ5LnBpcGVsaW5lLnR5cGUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhLXAgYS1wLS10eXBlXCI+e3sgbm9kZS50eXBlIH19PC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ7eyBub2RlLmlkIH19XCI+e3sgJ0BwcnkucGlwZWxpbmUudGl0bGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICBpZD1cInt7IG5vZGUuaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJub2RlLnRpdGxlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0aW5nXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VUaXRsZShub2RlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1waXBlbGluZS1lZGl0b3JfX3Byb3BlcnRpZXNfX2RldGFpbFwiIFtjbGFzcy5pcy1lbXB0eV09XCIhc2VsZWN0ZWROb2RlXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgI3NwZWNpZmljPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIigoZXJyb3JzJCB8IGFzeW5jKT8ubGVuZ3RoID8/IDApID4gMFwiIGNsYXNzPVwiby1waXBlbGluZS1lZGl0b3JfX3Byb3BlcnRpZXNfX2Vycm9yc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXBpcGVsaW5lLWVkaXRvcl9fcHJvcGVydGllc19fZXJyb3JzX190aXRsZVwiPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJ3YXJuaW5nLXRyaWFuZ2xlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+e3sgJ0BwcnkucGlwZWxpbmUuZXJyb3JzJyB8IGkxOG4gfX06PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPnt7XG4gICAgICAgICAgICAgICAgKGVycm9yPy5ub2RlSWQgPT09ICctJyA/ICdAcHJ5LnBpcGVsaW5lLmdsb2JhbCcgOiAnQHByeS5waXBlbGluZS5ub2RlJykgfCBpMThuXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICB7eyBlcnJvci50cmFuc2xhdGVkIH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|