@provoly/dashboard 1.4.23 → 1.4.25

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.
Files changed (36) hide show
  1. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -1
  2. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  3. package/esm2022/lib/core/store/search/search.actions.mjs +1 -1
  4. package/esm2022/lib/core/store/search/search.effects.mjs +9 -4
  5. package/esm2022/lib/core/store/search/search.service.mjs +1 -1
  6. package/esm2022/lib/dashboard/components/dashboard.component.mjs +8 -26
  7. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +1 -1
  8. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +32 -23
  9. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +4 -6
  10. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  11. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +8 -18
  12. package/esm2022/lib/dashboard/store/manifest-utils.class.mjs +17 -1
  13. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +1 -1
  14. package/esm2022/widgets/widget-map/interaction/tooltip-manager.class.mjs +3 -2
  15. package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
  16. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  17. package/fesm2022/provoly-dashboard-toolbox.mjs +1 -1
  18. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  19. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -1
  20. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  21. package/fesm2022/provoly-dashboard.mjs +108 -109
  22. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  23. package/lib/core/model/manifest.interface.d.ts +7 -0
  24. package/lib/core/store/search/search.actions.d.ts +5 -4
  25. package/lib/core/store/search/search.effects.d.ts +2 -1
  26. package/lib/core/store/search/search.service.d.ts +3 -2
  27. package/lib/dashboard/components/dashboard.component.d.ts +1 -3
  28. package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +3 -9
  29. package/lib/dashboard/filter/components/filter-group/filter-group.component.d.ts +1 -2
  30. package/lib/dashboard/store/dashboard.actions.d.ts +6 -14
  31. package/lib/dashboard/store/dashboard.effects.d.ts +3 -4
  32. package/lib/dashboard/store/manifest-utils.class.d.ts +2 -1
  33. package/package.json +19 -19
  34. package/search/search-fulltext/store/search-fulltext.effects.d.ts +1 -1
  35. package/search/search-mono-class/store/search-mono-class.effects.d.ts +1 -1
  36. package/search/search-multi-class/store/search-multi-class.effects.d.ts +1 -1
@@ -165,7 +165,7 @@ export class PryDatasetDetailComponent extends SubscriptionnerDirective {
165
165
  $event?.stopPropagation();
166
166
  }
167
167
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.PryDialogService }, { token: i2.PryTitleService }, { token: i2.PryI18nService }, { token: i2.WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ (currentDataset$ | async)?.name }}</h1>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button\n *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\"\n role=\"button\"\n class=\"a-btn a-btn--primary u-self-end\"\n (click)=\"editVersion()\"\n >\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n @if (dataset.activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (dataset.activeVersion.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ dataset.activeVersion.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n dataset.activeVersion.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.tags' | i18n }}</span>\n <div class=\"u-display-flex -wrap\">\n @for (category of dataset.categories; track category.id) {\n <span class=\"a-chip -md\"> {{ category.name }}</span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version) {\n <tr\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n @if ((currentDataset$ | async)?.activeVersion?.id === version.id) {\n <pry-icon\n iconSvg=\"check\"\n class=\"check\"\n ></pry-icon>\n }\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (version.id === (currentDataset$ | async)?.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : '@pry.dataset.version.state.' + version.state\n ) | i18n\n }}\n @if (version.state !== 'DELETING') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"\n '@pry.dataset.tooltip.' +\n getVersionTooltipContent(version, (currentDataset$ | async)?.activeVersion?.id) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </td>\n <td>\n @if (\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n ) {\n @if ((canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')) {\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction($event, version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </ng-container>\n }\n }\n </td>\n <td>\n @if (version.hasWarnings || version.state === 'ERROR') {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors($event, version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n }\n </td>\n <td>\n @if (\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n ) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"askDelete(version, $event)\"\n >\n {{ '@pry.dataset.buttonAction.delete' | i18n }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i2.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i2.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i2.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint", "linkedItems"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.MdToHtmlPipe, name: "mdToHtml" }, { kind: "pipe", type: i2.SinceDatePipe, name: "sinceDate" }] }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ (currentDataset$ | async)?.name }}</h1>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button\n *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\"\n role=\"button\"\n class=\"a-btn a-btn--primary u-self-end\"\n (click)=\"editVersion()\"\n >\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n @if (dataset.activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (dataset.activeVersion.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ dataset.activeVersion.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n dataset.activeVersion.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.tags' | i18n }}</span>\n <div class=\"u-display-flex -wrap\">\n @for (category of dataset.categories; track category.id) {\n <span class=\"a-chip -md\"> {{ category.name }}</span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version) {\n <tr\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n @if ((currentDataset$ | async)?.activeVersion?.id === version.id) {\n <pry-icon\n iconSvg=\"check\"\n class=\"check\"\n ></pry-icon>\n }\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (version.id === (currentDataset$ | async)?.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : '@pry.dataset.version.state.' + version.state\n ) | i18n\n }}\n @if (version.state !== 'DELETING') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"\n '@pry.dataset.tooltip.' +\n getVersionTooltipContent(version, (currentDataset$ | async)?.activeVersion?.id) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </td>\n <td>\n @if (\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n ) {\n @if ((canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')) {\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction($event, version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </ng-container>\n }\n }\n </td>\n <td>\n @if (version.hasWarnings || version.state === 'ERROR') {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors($event, version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n }\n </td>\n <td>\n @if (\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n ) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"askDelete(version, $event)\"\n >\n {{ '@pry.dataset.buttonAction.delete' | i18n }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i2.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i2.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i2.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.MdToHtmlPipe, name: "mdToHtml" }, { kind: "pipe", type: i2.SinceDatePipe, name: "sinceDate" }] }); }
169
169
  }
170
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
171
171
  type: Component,
@@ -8,4 +8,4 @@ export var DashboardGridLayout;
8
8
  DashboardGridLayout["QUARTER"] = "1/4";
9
9
  DashboardGridLayout["MANUAL"] = "0";
10
10
  })(DashboardGridLayout || (DashboardGridLayout = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxNQUFNLENBQU4sSUFBWSxtQkFRWDtBQVJELFdBQVksbUJBQW1CO0lBQzdCLGlDQUFVLENBQUE7SUFDViw4Q0FBdUIsQ0FBQTtJQUN2QixnREFBeUIsQ0FBQTtJQUN6Qiw2Q0FBc0IsQ0FBQTtJQUN0QiwrQ0FBd0IsQ0FBQTtJQUN4QixzQ0FBZSxDQUFBO0lBQ2YsbUNBQVksQ0FBQTtBQUNkLENBQUMsRUFSVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBUTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YWRhdGFWYWx1ZSB9IGZyb20gJy4vYWRtaW4tYXBpLm1vZGVsJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4vZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGFydEFnZ3JlZ2F0ZWRXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtYWdncmVnYXRlZC1jaGFydC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhcnRXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IERldGFpbFdpZGdldE9wdGlvbnMgfSBmcm9tICcuL3dpZGdldC1kZXRhaWwtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyYXBoV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LWdyYXBoLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZnJhbWVXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtaWZyYW1lLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZVdpZGdldE9wdGlvbnMgfSBmcm9tICcuL3dpZGdldC1pbWFnZS1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFwV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LW1hcC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFibGVXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtdGFibGUtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRlbXBsYXRlV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LXRlbXBsYXRlLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaWxlV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LXRpbGUtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZlZ2FXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtdmVnYS1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0RGVzY3JpcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtYW5pZmVzdFVybDogc3RyaW5nO1xuICBpbWFnZTogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgbW9kaWZpY2F0aW9uRGF0ZTogc3RyaW5nO1xuICBhY2Nlc3NSaWdodHNCeUdyb3VwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIG93bmVyOiBib29sZWFuO1xuICBkYXRhc291cmNlOiBzdHJpbmdbXTtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YVZhbHVlW107XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXRMYXlvdXQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZExheW91dCB7XG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIGdhcD86IG51bWJlcjtcbiAgcm93cz86IG51bWJlcjtcbiAgbGF5b3V0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBEYXNoYm9hcmRHcmlkTGF5b3V0IHtcbiAgRlVMTCA9ICcxJyxcbiAgVEhJUkRfVkVSVElDQUwgPSAnMS8zdicsXG4gIFRISVJEX0hPUklaT05UQUwgPSAnMS8zaCcsXG4gIEhBTEZfVkVSVElDQUwgPSAnMS8ydicsXG4gIEhBTEZfSE9SSVpPTlRBTCA9ICcxLzJoJyxcbiAgUVVBUlRFUiA9ICcxLzQnLFxuICBNQU5VQUwgPSAnMCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRNYW5pZmVzdCB7XG4gIHJvdXRlPzogc3RyaW5nO1xuICBncmlkPzogR3JpZExheW91dDtcbiAgd2lkZ2V0czogV2lkZ2V0TWFuaWZlc3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxNYW5pZmVzdCB7XG4gIHdpbmRvd3M6IERhc2hib2FyZE1hbmlmZXN0W107XG4gIHJlZnJlc2hSYXRlcz86IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XG4gIGZpbHRlcnM/OiBGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXRNYW5pZmVzdCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGxheW91dDogV2lkZ2V0TGF5b3V0O1xuICBvcHRpb25zPzogV2lkZ2V0T3B0aW9ucztcbiAgZGF0YXNvdXJjZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBoZWFkZXI/OiBib29sZWFuO1xuICBjb250ZXh0TWVudT86IGJvb2xlYW47XG4gIGV4Y2x1ZGVHZW8/OiAnZXhjbHVkZS1hbGwnIHwgJ2V4Y2x1ZGUtbm9uZScgfCAnZXhjbHVkZS1ub3QtZ2VvJyB8ICdleGNsdWRlLWdlbycgfCAnd2lkZ2V0LXR5cGUtYmFzZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVdpZGdldE9wdGlvbnMge1xuICBbb3B0OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFdpZGdldE9wdGlvbnMgPVxuICB8IE1hcFdpZGdldE9wdGlvbnNcbiAgfCBJbWFnZVdpZGdldE9wdGlvbnNcbiAgfCBUYWJsZVdpZGdldE9wdGlvbnNcbiAgfCBEZXRhaWxXaWRnZXRPcHRpb25zXG4gIHwgQ2hhcnRXaWRnZXRPcHRpb25zXG4gIHwgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9uc1xuICB8IElmcmFtZVdpZGdldE9wdGlvbnNcbiAgfCBHcmFwaFdpZGdldE9wdGlvbnNcbiAgfCBUZW1wbGF0ZVdpZGdldE9wdGlvbnNcbiAgfCBUaWxlV2lkZ2V0T3B0aW9uc1xuICB8IFZlZ2FXaWRnZXRPcHRpb25zXG4gIHwgQ3VzdG9tV2lkZ2V0T3B0aW9ucztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxNQUFNLENBQU4sSUFBWSxtQkFRWDtBQVJELFdBQVksbUJBQW1CO0lBQzdCLGlDQUFVLENBQUE7SUFDViw4Q0FBdUIsQ0FBQTtJQUN2QixnREFBeUIsQ0FBQTtJQUN6Qiw2Q0FBc0IsQ0FBQTtJQUN0QiwrQ0FBd0IsQ0FBQTtJQUN4QixzQ0FBZSxDQUFBO0lBQ2YsbUNBQVksQ0FBQTtBQUNkLENBQUMsRUFSVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBUTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YWRhdGFWYWx1ZSB9IGZyb20gJy4vYWRtaW4tYXBpLm1vZGVsJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4vZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGFydEFnZ3JlZ2F0ZWRXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtYWdncmVnYXRlZC1jaGFydC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhcnRXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IERldGFpbFdpZGdldE9wdGlvbnMgfSBmcm9tICcuL3dpZGdldC1kZXRhaWwtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyYXBoV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LWdyYXBoLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZnJhbWVXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtaWZyYW1lLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZVdpZGdldE9wdGlvbnMgfSBmcm9tICcuL3dpZGdldC1pbWFnZS1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFwV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LW1hcC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFibGVXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtdGFibGUtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRlbXBsYXRlV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LXRlbXBsYXRlLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaWxlV2lkZ2V0T3B0aW9ucyB9IGZyb20gJy4vd2lkZ2V0LXRpbGUtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZlZ2FXaWRnZXRPcHRpb25zIH0gZnJvbSAnLi93aWRnZXQtdmVnYS1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0RGVzY3JpcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtYW5pZmVzdFVybDogc3RyaW5nO1xuICBpbWFnZTogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgbW9kaWZpY2F0aW9uRGF0ZTogc3RyaW5nO1xuICBhY2Nlc3NSaWdodHNCeUdyb3VwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIG93bmVyOiBib29sZWFuO1xuICBkYXRhc291cmNlOiBzdHJpbmdbXTtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YVZhbHVlW107XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXRMYXlvdXQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZExheW91dCB7XG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIGdhcD86IG51bWJlcjtcbiAgcm93cz86IG51bWJlcjtcbiAgbGF5b3V0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBEYXNoYm9hcmRHcmlkTGF5b3V0IHtcbiAgRlVMTCA9ICcxJyxcbiAgVEhJUkRfVkVSVElDQUwgPSAnMS8zdicsXG4gIFRISVJEX0hPUklaT05UQUwgPSAnMS8zaCcsXG4gIEhBTEZfVkVSVElDQUwgPSAnMS8ydicsXG4gIEhBTEZfSE9SSVpPTlRBTCA9ICcxLzJoJyxcbiAgUVVBUlRFUiA9ICcxLzQnLFxuICBNQU5VQUwgPSAnMCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRNYW5pZmVzdCB7XG4gIHJvdXRlPzogc3RyaW5nO1xuICBncmlkPzogR3JpZExheW91dDtcbiAgd2lkZ2V0czogV2lkZ2V0TWFuaWZlc3RbXTtcbiAgbGlua2VkSXRlbXM/OiBMaW5rZWRJdGVtc09wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsTWFuaWZlc3Qge1xuICB3aW5kb3dzOiBEYXNoYm9hcmRNYW5pZmVzdFtdO1xuICByZWZyZXNoUmF0ZXM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xuICBmaWx0ZXJzPzogRmlsdGVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0TWFuaWZlc3Qge1xuICB0aXRsZT86IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBsYXlvdXQ6IFdpZGdldExheW91dDtcbiAgb3B0aW9ucz86IFdpZGdldE9wdGlvbnM7XG4gIGRhdGFzb3VyY2U/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgaGVhZGVyPzogYm9vbGVhbjtcbiAgY29udGV4dE1lbnU/OiBib29sZWFuO1xuICBleGNsdWRlR2VvPzogJ2V4Y2x1ZGUtYWxsJyB8ICdleGNsdWRlLW5vbmUnIHwgJ2V4Y2x1ZGUtbm90LWdlbycgfCAnZXhjbHVkZS1nZW8nIHwgJ3dpZGdldC10eXBlLWJhc2VkJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21XaWRnZXRPcHRpb25zIHtcbiAgW29wdDogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBXaWRnZXRPcHRpb25zID1cbiAgfCBNYXBXaWRnZXRPcHRpb25zXG4gIHwgSW1hZ2VXaWRnZXRPcHRpb25zXG4gIHwgVGFibGVXaWRnZXRPcHRpb25zXG4gIHwgRGV0YWlsV2lkZ2V0T3B0aW9uc1xuICB8IENoYXJ0V2lkZ2V0T3B0aW9uc1xuICB8IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnNcbiAgfCBJZnJhbWVXaWRnZXRPcHRpb25zXG4gIHwgR3JhcGhXaWRnZXRPcHRpb25zXG4gIHwgVGVtcGxhdGVXaWRnZXRPcHRpb25zXG4gIHwgVGlsZVdpZGdldE9wdGlvbnNcbiAgfCBWZWdhV2lkZ2V0T3B0aW9uc1xuICB8IEN1c3RvbVdpZGdldE9wdGlvbnM7XG5cbmV4cG9ydCB0eXBlIExpbmtlZEl0ZW1zT3B0aW9ucyA9ICgnc291cmNlJyB8ICdkZXN0aW5hdGlvbicpW107XG5cbmV4cG9ydCB0eXBlIERhdGFzb3VyY2VSZXF1ZXN0ID0ge1xuICBkYXRhc2V0SWQ6IHN0cmluZztcbiAgZXhjbHVkZUdlbzogYm9vbGVhbjtcbiAgbGlua2VkSXRlbXM/OiBMaW5rZWRJdGVtc09wdGlvbnM7XG59O1xuIl19
@@ -9,4 +9,4 @@ export const SearchActions = {
9
9
  getPossibleFilterValues: createAction('[Dashboard] (bus) get possible filter values', props()),
10
10
  setPossibleFilterValues: createAction('[Dashboard] (bus) set possible filter values', props())
11
11
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLE1BQU0sRUFBRSxZQUFZLENBQ2xCLGlCQUFpQixFQUNqQixLQUFLLEVBSUQsQ0FDTDtJQUNELGtCQUFrQixFQUFFLFlBQVksQ0FDOUIseURBQXlELEVBQ3pELEtBQUssRUFNRCxDQUNMO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsRUFBRSxZQUFZLENBQ3pCLHVEQUF1RCxFQUN2RCxLQUFLLEVBQTBFLENBQ2hGO0lBQ0QsYUFBYSxFQUFFLFlBQVksQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLEVBQStCLENBQUM7SUFFdEcsZ0JBQWdCLEVBQUUsWUFBWSxDQUM1Qix5REFBeUQsRUFDekQsS0FBSyxFQUE2QyxDQUNuRDtJQUNELHVCQUF1QixFQUFFLFlBQVksQ0FDbkMsOENBQThDLEVBQzlDLEtBQUssRUFLRCxDQUNMO0lBQ0QsdUJBQXVCLEVBQUUsWUFBWSxDQUNuQyw4Q0FBOEMsRUFDOUMsS0FBSyxFQUEwQyxDQUNoRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tb25vLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbXVsdGktY2xhc3MubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgU2VhcmNoQWN0aW9ucyA9IHtcbiAgc2VhcmNoOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tTZWFyY2hdIHNlYXJjaCcsXG4gICAgcHJvcHM8e1xuICAgICAgcGF5bG9hZDogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkO1xuICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICBsaW5rZWRJdGVtcz86ICgnZGVzdGluYXRpb24nIHwgJ3NvdXJjZScpW107XG4gICAgfT4oKVxuICApLFxuICBnZXREYXRhc291cmNlSXRlbXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1NlYXJjaF0gKGJ1cykgZ2V0IGRhdGFzb3VyY2UgaXRlbXMgKG5vdC1hY3RpdmUtYWN0aW9uKScsXG4gICAgcHJvcHM8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGV4Y2x1ZGVHZW86IGJvb2xlYW47XG4gICAgICBmcm9tOiBzdHJpbmc7XG4gICAgICBuZXh0PzogYm9vbGVhbjtcbiAgICAgIGxpbmtlZEl0ZW1zPzogKCdkZXN0aW5hdGlvbicgfCAnc291cmNlJylbXTtcbiAgICB9PigpXG4gICksXG5cbiAgLy8gcmVzdWx0IFNlYXJjaFxuICBzZWFyY2hTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tTZWFyY2ggQXBpXSAoYnVzKSBTZWFyY2ggU3VjY2VzcyAobm90LWFjdGl2ZS1hY3Rpb24pJyxcbiAgICBwcm9wczx7IHJlc3VsdFNldDogUmVzdWx0U2V0OyBpZD86IHN0cmluZzsgcGFyYW1zPzogc3RyaW5nOyBuZXh0PzogYm9vbGVhbiB9PigpXG4gICksXG4gIHNlYXJjaEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW1NlYXJjaCBBcGldIChidXMpIFNlYXJjaCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55OyBpZD86IHN0cmluZyB9PigpKSxcblxuICBzZXRTZWFyY2hMb2FkaW5nOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tTZWFyY2ggQXBpXSAoYnVzKSBzZXQgU2VhcmNoIGxvYWRpbmcgZGF0YXNvdXJjZSBzdGF0dXMnLFxuICAgIHByb3BzPHsgZGF0YXNvdXJjZXM6IHN0cmluZ1tdOyBzdGFydDogYm9vbGVhbiB9PigpXG4gICksXG4gIGdldFBvc3NpYmxlRmlsdGVyVmFsdWVzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIGdldCBwb3NzaWJsZSBmaWx0ZXIgdmFsdWVzJyxcbiAgICBwcm9wczx7XG4gICAgICBmaWx0ZXJJZDogc3RyaW5nO1xuICAgICAgYXR0cmlidXRlczogeyBpZDogc3RyaW5nOyBkYXRhc291cmNlOiBzdHJpbmcgfVtdO1xuICAgICAgbGltaXQ6IG51bWJlcjtcbiAgICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICB9PigpXG4gICksXG4gIHNldFBvc3NpYmxlRmlsdGVyVmFsdWVzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHNldCBwb3NzaWJsZSBmaWx0ZXIgdmFsdWVzJyxcbiAgICBwcm9wczx7IGZpbHRlcklkOiBzdHJpbmc7IHZhbHVlczogc3RyaW5nW10gfT4oKVxuICApXG59O1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFNbEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLE1BQU0sRUFBRSxZQUFZLENBQ2xCLGlCQUFpQixFQUNqQixLQUFLLEVBSUQsQ0FDTDtJQUNELGtCQUFrQixFQUFFLFlBQVksQ0FDOUIseURBQXlELEVBQ3pELEtBQUssRUFNRCxDQUNMO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsRUFBRSxZQUFZLENBQ3pCLHVEQUF1RCxFQUN2RCxLQUFLLEVBQTBFLENBQ2hGO0lBQ0QsYUFBYSxFQUFFLFlBQVksQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLEVBQStCLENBQUM7SUFFdEcsZ0JBQWdCLEVBQUUsWUFBWSxDQUM1Qix5REFBeUQsRUFDekQsS0FBSyxFQUE2QyxDQUNuRDtJQUNELHVCQUF1QixFQUFFLFlBQVksQ0FDbkMsOENBQThDLEVBQzlDLEtBQUssRUFLRCxDQUNMO0lBQ0QsdUJBQXVCLEVBQUUsWUFBWSxDQUNuQyw4Q0FBOEMsRUFDOUMsS0FBSyxFQUEwQyxDQUNoRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tb25vLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbXVsdGktY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgTGlua2VkSXRlbXNPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IFNlYXJjaEFjdGlvbnMgPSB7XG4gIHNlYXJjaDogY3JlYXRlQWN0aW9uKFxuICAgICdbU2VhcmNoXSBzZWFyY2gnLFxuICAgIHByb3BzPHtcbiAgICAgIHBheWxvYWQ6IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB8IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZDtcbiAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgbGlua2VkSXRlbXM/OiBMaW5rZWRJdGVtc09wdGlvbnM7XG4gICAgfT4oKVxuICApLFxuICBnZXREYXRhc291cmNlSXRlbXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1NlYXJjaF0gKGJ1cykgZ2V0IGRhdGFzb3VyY2UgaXRlbXMgKG5vdC1hY3RpdmUtYWN0aW9uKScsXG4gICAgcHJvcHM8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGV4Y2x1ZGVHZW86IGJvb2xlYW47XG4gICAgICBmcm9tOiBzdHJpbmc7XG4gICAgICBuZXh0PzogYm9vbGVhbjtcbiAgICAgIGxpbmtlZEl0ZW1zPzogTGlua2VkSXRlbXNPcHRpb25zO1xuICAgIH0+KClcbiAgKSxcblxuICAvLyByZXN1bHQgU2VhcmNoXG4gIHNlYXJjaFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1NlYXJjaCBBcGldIChidXMpIFNlYXJjaCBTdWNjZXNzIChub3QtYWN0aXZlLWFjdGlvbiknLFxuICAgIHByb3BzPHsgcmVzdWx0U2V0OiBSZXN1bHRTZXQ7IGlkPzogc3RyaW5nOyBwYXJhbXM/OiBzdHJpbmc7IG5leHQ/OiBib29sZWFuIH0+KClcbiAgKSxcbiAgc2VhcmNoRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbU2VhcmNoIEFwaV0gKGJ1cykgU2VhcmNoIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBhbnk7IGlkPzogc3RyaW5nIH0+KCkpLFxuXG4gIHNldFNlYXJjaExvYWRpbmc6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1NlYXJjaCBBcGldIChidXMpIHNldCBTZWFyY2ggbG9hZGluZyBkYXRhc291cmNlIHN0YXR1cycsXG4gICAgcHJvcHM8eyBkYXRhc291cmNlczogc3RyaW5nW107IHN0YXJ0OiBib29sZWFuIH0+KClcbiAgKSxcbiAgZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgZ2V0IHBvc3NpYmxlIGZpbHRlciB2YWx1ZXMnLFxuICAgIHByb3BzPHtcbiAgICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgICBhdHRyaWJ1dGVzOiB7IGlkOiBzdHJpbmc7IGRhdGFzb3VyY2U6IHN0cmluZyB9W107XG4gICAgICBsaW1pdDogbnVtYmVyO1xuICAgICAgZm9yY2U/OiBib29sZWFuO1xuICAgIH0+KClcbiAgKSxcbiAgc2V0UG9zc2libGVGaWx0ZXJWYWx1ZXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgc2V0IHBvc3NpYmxlIGZpbHRlciB2YWx1ZXMnLFxuICAgIHByb3BzPHsgZmlsdGVySWQ6IHN0cmluZzsgdmFsdWVzOiBzdHJpbmdbXSB9PigpXG4gIClcbn07XG4iXX0=
@@ -27,15 +27,20 @@ export class SearchEffects {
27
27
  })), catchError((error) => [SearchActions.searchFailure({ error, id: props.id })])))))));
28
28
  this.fetchMore$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchMoreItems), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.resultSets)), filter(([props, rank, rs]) => rank === 0 && !!rs[props.id].searchAfter), debounceTime(300), mergeMap(([props]) => {
29
29
  const ds = this.widgetFactoryService.datasourcesToAutoLoad({
30
- type: props.widgetType,
31
- datasource: [props.id]
30
+ widgets: [
31
+ {
32
+ type: props.widgetType,
33
+ datasource: [props.id]
34
+ }
35
+ ]
32
36
  })[0];
33
37
  if (!!ds) {
34
38
  return of(SearchActions.getDatasourceItems({
35
39
  id: ds.datasetId,
36
40
  excludeGeo: ds.excludeGeo,
37
41
  from: 'fetchMore',
38
- next: true
42
+ next: true,
43
+ linkedItems: ds.linkedItems
39
44
  }));
40
45
  }
41
46
  else {
@@ -61,4 +66,4 @@ export class SearchEffects {
61
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, decorators: [{
62
67
  type: Injectable
63
68
  }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.Store }, { type: i4.WidgetFactoryService }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQVksRUFDWixvQkFBMEM7UUFIMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUdwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hC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QUFNLENBQUMsRUFBRSxFQUFFLENBQ3BCLElBQUksQ0FBQyxhQUFhO2FBQ2YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQ0YsQ0FDRixDQUFDO0lBMUhDLENBQUM7OEdBTk8sYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBFTVBUWSwgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlTWFwLCBvZiwgc3dpdGNoTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hBY3Rpb25zIH0gZnJvbSAnLi9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBFWFBMT1JFX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JzIH0gZnJvbSAnLi9zZWFyY2guc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHt9XG5cbiAgc2VhcmNoTmFtZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuayksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSxcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBncm91cEJ5KChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT4gcHJvcHMuaWQpLFxuICAgICAgbWVyZ2VNYXAoKGdyb3VwJCkgPT5cbiAgICAgICAgZ3JvdXAkLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0SXRlbXMoXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgcXVpY2tPcmRlcltwcm9wcy5pZF0sXG4gICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBwcm9wcy5uZXh0ID8gcnNbcHJvcHMuaWRdLnNlYXJjaEFmdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHByb3BzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+XG4gICAgICAgICAgICAgICAgICBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3Moe1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHF1aWNrT3JkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5saW5rZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBwcm9wcy5uZXh0XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtTZWFyY2hBY3Rpb25zLnNlYXJjaEZhaWx1cmUoeyBlcnJvciwgaWQ6IHByb3BzLmlkIH0pXSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBmZXRjaE1vcmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhc2hib2FyZEFjdGlvbnMuZmV0Y2hNb3JlSXRlbXMpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cykpLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmssIHJzXSkgPT4gcmFuayA9PT0gMCAmJiAhIXJzW3Byb3BzLmlkXS5zZWFyY2hBZnRlciksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIG1lcmdlTWFwKChbcHJvcHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5kYXRhc291cmNlc1RvQXV0b0xvYWQoe1xuICAgICAgICAgIHR5cGU6IHByb3BzLndpZGdldFR5cGUsXG4gICAgICAgICAgZGF0YXNvdXJjZTogW3Byb3BzLmlkXVxuICAgICAgICB9IGFzIFdpZGdldE1hbmlmZXN0KVswXTtcblxuICAgICAgICBpZiAoISFkcykge1xuICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgICAgICAgaWQ6IGRzLmRhdGFzZXRJZCxcbiAgICAgICAgICAgICAgZXhjbHVkZUdlbzogZHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgZnJvbTogJ2ZldGNoTW9yZScsXG4gICAgICAgICAgICAgIG5leHQ6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNlYXJjaCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5zZWFyY2gpLFxuICAgICAgbWVyZ2VNYXAoXG4gICAgICAgIChwcm9wczoge1xuICAgICAgICAgIHBheWxvYWQ6IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB8IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZDtcbiAgICAgICAgICBpZD86IHN0cmluZztcbiAgICAgICAgICBsaW5rZWRJdGVtcz86ICgnZGVzdGluYXRpb24nIHwgJ3NvdXJjZScpW107XG4gICAgICAgIH0pID0+XG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChwcm9wcy5wYXlsb2FkLCBwcm9wcy5pZCwgcHJvcHMubGlua2VkSXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdFNldCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKHsgcmVzdWx0U2V0LCBpZDogcHJvcHMuaWQgfSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZWFyY2hTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+XG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0KHtcbiAgICAgICAgICBpZDogYWN0aW9uLmlkID8/IERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gICAgICAgICAgcmVzdWx0U2V0OiBhY3Rpb24ucmVzdWx0U2V0LFxuICAgICAgICAgIHBhcmFtczogYWN0aW9uLnBhcmFtcyxcbiAgICAgICAgICBuZXh0OiBhY3Rpb24ubmV4dFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBnZXRQb3NzaWJsZUZpbHRlclZhbHVlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5nZXRQb3NzaWJsZUZpbHRlclZhbHVlcyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChTZWFyY2hTZWxlY3RvcnMuZmlsdGVyVmFsdWVzKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspKSxcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKFthY3Rpb24sIGZpbHRlclZhbHVlcywgcmFua10pID0+XG4gICAgICAgICAgKGFjdGlvbi5mb3JjZSB8fCAhZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0gfHwgZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0ubGVuZ3RoID09PSAwKSAmJiByYW5rID09PSAwXG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoKFthY3Rpb25dKSA9PlxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAuYXV0b2NvbXBsZXRlKGFjdGlvbi5hdHRyaWJ1dGVzLCAnJywgYWN0aW9uLmxpbWl0KVxuICAgICAgICAgIC5waXBlKG1hcCgodmFsdWVzKSA9PiBTZWFyY2hBY3Rpb25zLnNldFBvc3NpYmxlRmlsdGVyVmFsdWVzKHsgZmlsdGVySWQ6IGFjdGlvbi5maWx0ZXJJZCwgdmFsdWVzIH0pKSlcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQVksRUFDWixvQkFBMEM7UUFIMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUdwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hC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LEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsQ0FDL0csRUFDRCxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLGFBQWE7YUFDZixZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FDRixDQUNGLENBQUM7SUEvSEMsQ0FBQzs4R0FOTyxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIEVNUFRZLCBmaWx0ZXIsIGdyb3VwQnksIG1hcCwgbWVyZ2VNYXAsIG9mLCBzd2l0Y2hNYXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbW9uby1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBGdWxsVGV4dFNlYXJjaFBheWxvYWQsIE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW11bHRpLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaEFjdGlvbnMgfSBmcm9tICcuL3NlYXJjaC5hY3Rpb25zJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuL3NlYXJjaC5jb25zdGFudHMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRNYW5pZmVzdCwgTGlua2VkSXRlbXNPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9ycyB9IGZyb20gJy4vc2VhcmNoLnNlbGVjdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWFyY2hFZmZlY3RzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSB3aWRnZXRGYWN0b3J5U2VydmljZTogV2lkZ2V0RmFjdG9yeVNlcnZpY2VcbiAgKSB7fVxuXG4gIHNlYXJjaE5hbWVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucXVpY2tPcmRlciksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZXN1bHRTZXRzKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcigoW18sIHJhbmtdKSA9PiByYW5rID09PSAwKSxcbiAgICAgIGZpbHRlcigoW3Byb3BzLCByYW5rXSkgPT4gcHJvcHMuaWQgIT09IERFRkFVTFRfTkFNRURfUVVFUllfSUQgJiYgcHJvcHMuaWQgIT09IEVYUExPUkVfTkFNRURfUVVFUllfSUQpLFxuICAgICAgZ3JvdXBCeSgoW3Byb3BzLCByYW5rLCBxdWlja09yZGVyLCByc10pID0+IHByb3BzLmlkKSxcbiAgICAgIG1lcmdlTWFwKChncm91cCQpID0+XG4gICAgICAgIGdyb3VwJC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgIHN3aXRjaE1hcCgoW3Byb3BzLCByYW5rLCBxdWlja09yZGVyLCByc10pID0+XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldEl0ZW1zKFxuICAgICAgICAgICAgICAgIHByb3BzLmlkLFxuICAgICAgICAgICAgICAgIHF1aWNrT3JkZXJbcHJvcHMuaWRdLFxuICAgICAgICAgICAgICAgIHByb3BzLmV4Y2x1ZGVHZW8sXG4gICAgICAgICAgICAgICAgcHJvcHMubmV4dCA/IHJzW3Byb3BzLmlkXS5zZWFyY2hBZnRlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwcm9wcy5saW5rZWRJdGVtc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0U2V0KSA9PlxuICAgICAgICAgICAgICAgICAgU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0U2V0LFxuICAgICAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5zZWFyY2hTZXJ2aWNlLmdldEl0ZW1zU2VyaWFsaXplZFBhcmFtcyhcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICBxdWlja09yZGVyLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmV4Y2x1ZGVHZW8sXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHMubGlua2VkSXRlbXNcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcHJvcHMubmV4dFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZmV0Y2hNb3JlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXNoYm9hcmRBY3Rpb25zLmZldGNoTW9yZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpKSxcbiAgICAgIGZpbHRlcigoW3Byb3BzLCByYW5rLCByc10pID0+IHJhbmsgPT09IDAgJiYgISFyc1twcm9wcy5pZF0uc2VhcmNoQWZ0ZXIpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBtZXJnZU1hcCgoW3Byb3BzXSkgPT4ge1xuICAgICAgICBjb25zdCBkcyA9IHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKHtcbiAgICAgICAgICB3aWRnZXRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6IHByb3BzLndpZGdldFR5cGUsXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IFtwcm9wcy5pZF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0gYXMgRGFzaGJvYXJkTWFuaWZlc3QpWzBdO1xuXG4gICAgICAgIGlmICghIWRzKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKFxuICAgICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgICBpZDogZHMuZGF0YXNldElkLFxuICAgICAgICAgICAgICBleGNsdWRlR2VvOiBkcy5leGNsdWRlR2VvLFxuICAgICAgICAgICAgICBmcm9tOiAnZmV0Y2hNb3JlJyxcbiAgICAgICAgICAgICAgbmV4dDogdHJ1ZSxcbiAgICAgICAgICAgICAgbGlua2VkSXRlbXM6IGRzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzZWFyY2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICAocHJvcHM6IHtcbiAgICAgICAgICBwYXlsb2FkOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgbGlua2VkSXRlbXM/OiBMaW5rZWRJdGVtc09wdGlvbnM7XG4gICAgICAgIH0pID0+XG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChwcm9wcy5wYXlsb2FkLCBwcm9wcy5pZCwgcHJvcHMubGlua2VkSXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdFNldCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKHsgcmVzdWx0U2V0LCBpZDogcHJvcHMuaWQgfSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZWFyY2hTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+XG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0KHtcbiAgICAgICAgICBpZDogYWN0aW9uLmlkID8/IERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gICAgICAgICAgcmVzdWx0U2V0OiBhY3Rpb24ucmVzdWx0U2V0LFxuICAgICAgICAgIHBhcmFtczogYWN0aW9uLnBhcmFtcyxcbiAgICAgICAgICBuZXh0OiBhY3Rpb24ubmV4dFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBnZXRQb3NzaWJsZUZpbHRlclZhbHVlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5nZXRQb3NzaWJsZUZpbHRlclZhbHVlcyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChTZWFyY2hTZWxlY3RvcnMuZmlsdGVyVmFsdWVzKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspKSxcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKFthY3Rpb24sIGZpbHRlclZhbHVlcywgcmFua10pID0+XG4gICAgICAgICAgKGFjdGlvbi5mb3JjZSB8fCAhZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0gfHwgZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0ubGVuZ3RoID09PSAwKSAmJiByYW5rID09PSAwXG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoKFthY3Rpb25dKSA9PlxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAuYXV0b2NvbXBsZXRlKGFjdGlvbi5hdHRyaWJ1dGVzLCAnJywgYWN0aW9uLmxpbWl0KVxuICAgICAgICAgIC5waXBlKG1hcCgodmFsdWVzKSA9PiBTZWFyY2hBY3Rpb25zLnNldFBvc3NpYmxlRmlsdGVyVmFsdWVzKHsgZmlsdGVySWQ6IGFjdGlvbi5maWx0ZXJJZCwgdmFsdWVzIH0pKSlcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
151
151
  providedIn: 'root'
152
152
  }]
153
153
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixL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QUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUNWLFVBS2EsRUFDYixTQUFpQixFQUFFLEVBQ25CLEtBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFXLFNBQVMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsRUFBRTtZQUN0RSxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQTNMVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcucmVkdWNlcic7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbUVuY29kZXIgfSBmcm9tICcuL2ZpbHRlci1wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9kYXRlLXV0aWxzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24gPSAoaWQ6IHN0cmluZywgcmVzdWx0OiBSZXN1bHRTZXQpID0+IFJlc3VsdFNldDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gIHRyYW5zZm9ybWF0aW9uczogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb25bXSA9IFtdO1xuICBmaWx0ZXJzOiB7IFtkYXRhc291cmNlOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSA9IHt9O1xuICBsaW1pdHM6IHsgW3A6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRhdGFzb3VyY2VzOiBEYXRhU291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8Q29uZmlnU3RhdGUgfCBTZWFyY2hTdGF0ZT5cbiAgKSB7XG4gICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5kYXRhc291cmNlRmlsdGVycykuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubGltaXRzKS5zdWJzY3JpYmUoKGxpbWl0cykgPT4ge1xuICAgICAgdGhpcy5saW1pdHMgPSBsaW1pdHM7XG4gICAgfSk7XG4gICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLnN1YnNjcmliZSgoZGF0YXNvdXJjZXMpID0+IHtcbiAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldEl0ZW1zKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVpY2tPcmRlcj86IFJlc3VsdE9yZGVyLFxuICAgIGV4Y2x1ZGVHZW8/OiBib29sZWFuLFxuICAgIHNlYXJjaEFmdGVyPzogc3RyaW5nLFxuICAgIGxpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXIpKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBzZW5kaW5nIGl0ZW1zIHJlcXVlc3Qgd2l0aCBubyBkYXRhc291cmNlIGF0dGFjaGVkLicpO1xuICAgICAgcmV0dXJuIG9mKHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0gYXMgUmVzdWx0U2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkKSA9PiBkLmlkID09PSBpZCk7XG5cbiAgICAgICAgY29uc3Qgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKGxpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ2Rlc3RpbmF0aW9uJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoRGVzdGluYXRpb25JdGVtcyddID0gJ3RydWUnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aFNvdXJjZUl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFJlc3VsdFNldD4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vZGF0YS1zb3VyY2VzL2lkLyR7aWR9L2l0ZW1zYCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogZHM/LnNvdXJjZVR5cGUgPT09ICduYW1lZFF1ZXJ5JyA/IGRzLnJlcXVlc3QudHlwZSA6IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTLFxuICAgICAgICAgICAgZXhjbHVkZUdlbzogZXhjbHVkZUdlbyA/PyBmYWxzZSxcbiAgICAgICAgICAgIHNlYXJjaEFmdGVyOiBzZWFyY2hBZnRlciA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdHNbaWRdIHx8IHRoaXMubGltaXRzWydkZWZhdWx0J10sXG4gICAgICAgICAgICAuLi5vdGhlclBhcmFtc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwYXJhbXMgfVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJzKSA9PiB0aGlzLmFwcGx5VHJhbnNmb3JtYXRpb25zKGlkLCBycykpXG4gICAgKTtcbiAgfVxuXG4gIGdldEl0ZW1zU2VyaWFsaXplZFBhcmFtcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHF1aWNrT3JkZXI6IHtcbiAgICAgIFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQ7XG4gICAgfSA9IHt9LFxuICAgIGV4Y2x1ZGVHZW86IGJvb2xlYW4sXG4gICAgbGlua2VkSXRlbXM/OiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB8JHt0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXJbaWRdKSkudG9TdHJpbmcoKX18JHtleGNsdWRlR2VvID8gJ2V4Y2x1ZGVHZW8nIDogJyd9fCR7bGlua2VkSXRlbXM/LmpvaW4oJywnKX18YDtcbiAgfVxuXG4gIGdldEl0ZW1zRmlsdGVyKGlkOiBzdHJpbmcsIGN1bXVsYXRpdmU/OiBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IGN1bXVsYXRpdmUgPz8gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgRmlsdGVyUGFyYW1FbmNvZGVyKCkgfSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuZmlsdGVyc1tpZF1cbiAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIudmFsdWUgIT09IG51bGwgJiYgZmlsdGVyLnZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAvLyBJTlNJREUgYW5kIE9VVFNJREUgb3BlcmF0b3JzIHVzZXMgMiB2YWx1ZXMgYnV0IG5vdCBzZW50IGluIGFuIGFycmF5LCB2YWx1ZXMgYXJlIHNlcGFyYXRlZCBieSBhIGNvbWFcbiAgICAgICAgICAvLyB3aWNoIG11c3Qgbm90IGJlIGVuY29kZWQgKGFzIGlmIHZhbHVlcyB3ZXJlIGluIGFuIGFycmF5KVxuICAgICAgICAgIGNvbnN0IGlzTXVsdGlWYWx1ZWQgPSBbJ0lOU0lERScsICdPVVRTSURFJ10uZmluZCgodmFsKSA9PiB2YWwgPT09IGZpbHRlci5vcGVyYXRvcikgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoaXNNdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IChmaWx0ZXIudmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBkYXRlIGZpbHRlciB2YWx1ZSBtdXN0IGJlIHNlbmQgaW4gSVNPLTg2MDEgZm9ybWF0XG4gICAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgIHZhbHVlc1RvQWRkVG9QYXJhbXMgPSBpc011bHRpVmFsdWVkXG4gICAgICAgICAgICAgID8gKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nW10pLm1hcCgodmFsdWUpID0+IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlKSlcbiAgICAgICAgICAgICAgOiBEYXRlVXRpbHMucGFyc2VUb0lzb1N0cmluZyh2YWx1ZXNUb0FkZFRvUGFyYW1zIGFzIHN0cmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZXNUb0FkZFRvUGFyYW1zKVxuICAgICAgICAgICAgPyB2YWx1ZXNUb0FkZFRvUGFyYW1zLm1hcCgodikgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHYudG9TdHJpbmcoKS5zcGxpdCgnLCcpLmpvaW4oJ1xcXFwsJykpKS5qb2luKCcsJylcbiAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlc1RvQWRkVG9QYXJhbXMhLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnXFxcXCwnKSk7XG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnZmlsdGVyJywgYCR7ZmlsdGVyLmF0dHJpYnV0ZX0sJHtmaWx0ZXIub3BlcmF0b3J9LCR7dmFsdWV9YCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgZ2V0T3JkZXIocXVpY2tPcmRlcjogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgRmlsdGVyUGFyYW1FbmNvZGVyKCkgfSk7XG4gICAgaWYgKHF1aWNrT3JkZXIpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29yZGVyJywgYCR7cXVpY2tPcmRlci5hdHRyaWJ1dGV9LCR7cXVpY2tPcmRlci5hc2MgPz8gJyd9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29yZGVyJywgJ3RydWUsYXNjJyk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGEgc2VhcmNoIHJlcXVlc3QgKGFuZCBzYXZlcyBpdCBhcyBjdXJyZW50IHNlYXJjaClcbiAgICogQHBhcmFtIGNvbmRpdGlvblxuICAgKi9cbiAgc2VhcmNoKFxuICAgIGNvbmRpdGlvbjogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkLFxuICAgIGlkPzogc3RyaW5nLFxuICAgIHdpdGhMaW5rZWRJdGVtczogKCdkZXN0aW5hdGlvbicgfCAnc291cmNlJylbXSA9IFtdXG4gICk6IE9ic2VydmFibGU8UmVzdWx0U2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgZmlsdGVyKCh1cmwpID0+ICEhdXJsKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucXVpY2tPcmRlciksIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5saW1pdHMpKSxcbiAgICAgIG1lcmdlTWFwKChbdXJsLCBxdWlja09yZGVyLCBsaW1pdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICAgIGlmIChxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdKSB7XG4gICAgICAgICAgcGFyYW1zWydvcmRlciddID0gYCR7cXVpY2tPcmRlcltERUZBVUxUX05BTUVEX1FVRVJZX0lEXT8uYXR0cmlidXRlfSwke1xuICAgICAgICAgICAgcXVpY2tPcmRlcltERUZBVUxUX05BTUVEX1FVRVJZX0lEXT8uYXNjID8/ICcnXG4gICAgICAgICAgfWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5pbmNsdWRlcygnZGVzdGluYXRpb24nKSkge1xuICAgICAgICAgICAgb3RoZXJQYXJhbXNbJ3dpdGhEZXN0aW5hdGlvbkl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh3aXRoTGlua2VkSXRlbXMuaW5jbHVkZXMoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aFNvdXJjZUl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9jb25kaXRpb24gPSB7IC4uLmNvbmRpdGlvbiwgbGltaXQ6IGxpbWl0c1tERUZBVUxUX05BTUVEX1FVRVJZX0lEXSA/PyBsaW1pdHNbJ2RlZmF1bHQnXSwgLi4ub3RoZXJQYXJhbXMgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFJlc3VsdFNldD4oZW5jb2RlVVJJKGAke3VybH0vaXRlbXMvc2VhcmNoYCksIF9jb25kaXRpb24sIHsgcGFyYW1zIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJzKSA9PiB0aGlzLmFwcGx5VHJhbnNmb3JtYXRpb25zKGlkID8/IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIHJzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBhZGQgYSB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbiB3aGVuIGdldHRpbmcgcmVzdWx0cyBmcm9tIGJhY2tlbmRcbiAgICogQHBhcmFtIGZ1bmNcbiAgICovXG4gIGFkZFRyYW5zZm9ybWF0aW9uKGZ1bmM6IFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgdGhpcy50cmFuc2Zvcm1hdGlvbnMucHVzaChmdW5jKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhbGwgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb25zXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gcnNcbiAgICovXG4gIGFwcGx5VHJhbnNmb3JtYXRpb25zKGlkOiBzdHJpbmcsIHJzOiBSZXN1bHRTZXQpIHtcbiAgICBsZXQgdHJhbnNmb3JtZWQgPSBycztcbiAgICB0aGlzLnRyYW5zZm9ybWF0aW9ucy5mb3JFYWNoKChmdW5jKSA9PiAodHJhbnNmb3JtZWQgPSBmdW5jKGlkLCB0cmFuc2Zvcm1lZCkpKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtZWQ7XG4gIH1cblxuICBhdXRvY29tcGxldGUoXG4gICAgYXR0cmlidXRlczpcbiAgICAgIHwge1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgZGF0YXNvdXJjZTogc3RyaW5nO1xuICAgICAgICB9W11cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIHNlYXJjaDogc3RyaW5nID0gJycsXG4gICAgbGltaXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh1cmwpID0+XG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHN0cmluZ1tdPihlbmNvZGVVUkkoYCR7dXJsfS9kYXRhLXNvdXJjZXMvdmFsdWVzYCksIHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiAoYXR0cmlidXRlcyA/PyBbXSkubWFwKChhdHRyKSA9PiAoeyBkYXRhc291cmNlOiBhdHRyLmRhdGFzb3VyY2UsIGF0dHJpYnV0ZTogYXR0ci5pZCB9KSksXG4gICAgICAgICAgdmFsdWU6IHNlYXJjaCxcbiAgICAgICAgICBsaW1pdFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUNOLEVBQVUsRUFDVixVQUF3QixFQUN4QixVQUFvQixFQUNwQixXQUFvQixFQUNwQixjQUFrQyxFQUFFO1FBRXBDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDdkUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFckQsTUFBTSxXQUFXLEdBQThCLEVBQUUsQ0FBQztZQUNsRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUN4QyxXQUFXLENBQUMsc0JBQXNCLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQy9DLENBQUM7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixTQUFTLENBQUMsR0FBRyxHQUFHLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxFQUMvQztnQkFDRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVTtnQkFDcEYsVUFBVSxFQUFFLFVBQVUsSUFBSSxLQUFLO2dCQUMvQixXQUFXLEVBQUUsV0FBVyxJQUFJLFNBQVM7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxHQUFHLFdBQVc7YUFDZixFQUNELEVBQUUsTUFBTSxFQUFFLENBQ1gsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUN0QixFQUFVLEVBQ1YsYUFFSSxFQUFFLEVBQ04sVUFBbUIsRUFDbkIsV0FBZ0M7UUFFaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUM5SSxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQVUsRUFBRSxVQUF1QjtRQUNoRCxJQUFJLE1BQU0sR0FBRyxVQUFVLElBQUksSUFBSSxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDYixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO2lCQUN2RSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxzR0FBc0c7Z0JBQ3RHLDJEQUEyRDtnQkFDM0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBQztnQkFDakcsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDbEIsbUJBQW1CLEdBQUksTUFBTSxDQUFDLEtBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUNELG9EQUFvRDtnQkFDcEQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMzQixtQkFBbUIsR0FBRyxhQUFhO3dCQUNqQyxDQUFDLENBQUUsbUJBQWdDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JGLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsbUJBQTZCLENBQUMsQ0FBQztnQkFDaEUsQ0FBQztnQkFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO29CQUM5QyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDbkcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLG1CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFtQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FDSixTQUFtRixFQUNuRixFQUFXLEVBQ1gsa0JBQWdELEVBQUU7UUFFbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNwRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDM0csUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBK0IsQ0FBQztZQUMvQyxJQUFJLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsSUFDaEUsVUFBVSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQzdDLEVBQUUsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBOEIsRUFBRSxDQUFDO1lBQ2xELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQzVDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQztnQkFDL0MsQ0FBQztnQkFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ2hILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQVksU0FBUyxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLElBQTZCO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsRUFBVSxFQUFFLEVBQWE7UUFDNUMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUNWLFVBS2EsRUFDYixTQUFpQixFQUFFLEVBQ25CLEtBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFXLFNBQVMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsRUFBRTtZQUN0RSxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQTNMVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcucmVkdWNlcic7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbUVuY29kZXIgfSBmcm9tICcuL2ZpbHRlci1wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9kYXRlLXV0aWxzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IExpbmtlZEl0ZW1zT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uID0gKGlkOiBzdHJpbmcsIHJlc3VsdDogUmVzdWx0U2V0KSA9PiBSZXN1bHRTZXQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xuICB0cmFuc2Zvcm1hdGlvbnM6IFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uW10gPSBbXTtcbiAgZmlsdGVyczogeyBbZGF0YXNvdXJjZTogc3RyaW5nXTogRmlsdGVyQ29udGV4dFtdIH0gPSB7fTtcbiAgbGltaXRzOiB7IFtwOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkYXRhc291cmNlczogRGF0YVNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPENvbmZpZ1N0YXRlIHwgU2VhcmNoU3RhdGU+XG4gICkge1xuICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGF0YXNvdXJjZUZpbHRlcnMpLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJzID0gZmlsdGVycztcbiAgICB9KTtcbiAgICBzdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmxpbWl0cykuc3Vic2NyaWJlKChsaW1pdHMpID0+IHtcbiAgICAgIHRoaXMubGltaXRzID0gbGltaXRzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKS5zdWJzY3JpYmUoKGRhdGFzb3VyY2VzKSA9PiB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2VzID0gZGF0YXNvdXJjZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRJdGVtcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHF1aWNrT3JkZXI/OiBSZXN1bHRPcmRlcixcbiAgICBleGNsdWRlR2VvPzogYm9vbGVhbixcbiAgICBzZWFyY2hBZnRlcj86IHN0cmluZyxcbiAgICBsaW5rZWRJdGVtczogTGlua2VkSXRlbXNPcHRpb25zID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXIpKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBzZW5kaW5nIGl0ZW1zIHJlcXVlc3Qgd2l0aCBubyBkYXRhc291cmNlIGF0dGFjaGVkLicpO1xuICAgICAgcmV0dXJuIG9mKHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0gYXMgUmVzdWx0U2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkKSA9PiBkLmlkID09PSBpZCk7XG5cbiAgICAgICAgY29uc3Qgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKGxpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ2Rlc3RpbmF0aW9uJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoRGVzdGluYXRpb25JdGVtcyddID0gJ3RydWUnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aFNvdXJjZUl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFJlc3VsdFNldD4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vZGF0YS1zb3VyY2VzL2lkLyR7aWR9L2l0ZW1zYCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogZHM/LnNvdXJjZVR5cGUgPT09ICduYW1lZFF1ZXJ5JyA/IGRzLnJlcXVlc3QudHlwZSA6IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTLFxuICAgICAgICAgICAgZXhjbHVkZUdlbzogZXhjbHVkZUdlbyA/PyBmYWxzZSxcbiAgICAgICAgICAgIHNlYXJjaEFmdGVyOiBzZWFyY2hBZnRlciA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdHNbaWRdIHx8IHRoaXMubGltaXRzWydkZWZhdWx0J10sXG4gICAgICAgICAgICAuLi5vdGhlclBhcmFtc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwYXJhbXMgfVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJzKSA9PiB0aGlzLmFwcGx5VHJhbnNmb3JtYXRpb25zKGlkLCBycykpXG4gICAgKTtcbiAgfVxuXG4gIGdldEl0ZW1zU2VyaWFsaXplZFBhcmFtcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHF1aWNrT3JkZXI6IHtcbiAgICAgIFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQ7XG4gICAgfSA9IHt9LFxuICAgIGV4Y2x1ZGVHZW86IGJvb2xlYW4sXG4gICAgbGlua2VkSXRlbXM/OiBMaW5rZWRJdGVtc09wdGlvbnNcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHwke3RoaXMuZ2V0SXRlbXNGaWx0ZXIoaWQsIHRoaXMuZ2V0T3JkZXIocXVpY2tPcmRlcltpZF0pKS50b1N0cmluZygpfXwke2V4Y2x1ZGVHZW8gPyAnZXhjbHVkZUdlbycgOiAnJ318JHtsaW5rZWRJdGVtcz8uam9pbignLCcpfXxgO1xuICB9XG5cbiAgZ2V0SXRlbXNGaWx0ZXIoaWQ6IHN0cmluZywgY3VtdWxhdGl2ZT86IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gY3VtdWxhdGl2ZSA/PyBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAodGhpcy5maWx0ZXJzW2lkXSkge1xuICAgICAgdGhpcy5maWx0ZXJzW2lkXVxuICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci52YWx1ZSAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gZmlsdGVyLnZhbHVlO1xuICAgICAgICAgIC8vIElOU0lERSBhbmQgT1VUU0lERSBvcGVyYXRvcnMgdXNlcyAyIHZhbHVlcyBidXQgbm90IHNlbnQgaW4gYW4gYXJyYXksIHZhbHVlcyBhcmUgc2VwYXJhdGVkIGJ5IGEgY29tYVxuICAgICAgICAgIC8vIHdpY2ggbXVzdCBub3QgYmUgZW5jb2RlZCAoYXMgaWYgdmFsdWVzIHdlcmUgaW4gYW4gYXJyYXkpXG4gICAgICAgICAgY29uc3QgaXNNdWx0aVZhbHVlZCA9IFsnSU5TSURFJywgJ09VVFNJREUnXS5maW5kKCh2YWwpID0+IHZhbCA9PT0gZmlsdGVyLm9wZXJhdG9yKSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChpc011bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gKGZpbHRlci52YWx1ZSBhcyBzdHJpbmcpLnNwbGl0KCcsJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGRhdGUgZmlsdGVyIHZhbHVlIG11c3QgYmUgc2VuZCBpbiBJU08tODYwMSBmb3JtYXRcbiAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGlzTXVsdGlWYWx1ZWRcbiAgICAgICAgICAgICAgPyAodmFsdWVzVG9BZGRUb1BhcmFtcyBhcyBzdHJpbmdbXSkubWFwKCh2YWx1ZSkgPT4gRGF0ZVV0aWxzLnBhcnNlVG9Jc29TdHJpbmcodmFsdWUpKVxuICAgICAgICAgICAgICA6IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlc1RvQWRkVG9QYXJhbXMpXG4gICAgICAgICAgICA/IHZhbHVlc1RvQWRkVG9QYXJhbXMubWFwKCh2KSA9PiBlbmNvZGVVUklDb21wb25lbnQodi50b1N0cmluZygpLnNwbGl0KCcsJykuam9pbignXFxcXCwnKSkpLmpvaW4oJywnKVxuICAgICAgICAgICAgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWVzVG9BZGRUb1BhcmFtcyEudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICdcXFxcLCcpKTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdmaWx0ZXInLCBgJHtmaWx0ZXIuYXR0cmlidXRlfSwke2ZpbHRlci5vcGVyYXRvcn0sJHt2YWx1ZX1gKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBnZXRPcmRlcihxdWlja09yZGVyOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCk6IEh0dHBQYXJhbXMge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAocXVpY2tPcmRlcikge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCBgJHtxdWlja09yZGVyLmF0dHJpYnV0ZX0sJHtxdWlja09yZGVyLmFzYyA/PyAnJ31gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCAndHJ1ZSxhc2MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXVuY2ggYSBzZWFyY2ggcmVxdWVzdCAoYW5kIHNhdmVzIGl0IGFzIGN1cnJlbnQgc2VhcmNoKVxuICAgKiBAcGFyYW0gY29uZGl0aW9uXG4gICAqL1xuICBzZWFyY2goXG4gICAgY29uZGl0aW9uOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQsXG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgd2l0aExpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHVybCkgPT4gISF1cmwpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSwgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmxpbWl0cykpLFxuICAgICAgbWVyZ2VNYXAoKFt1cmwsIHF1aWNrT3JkZXIsIGxpbWl0c10pID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgaWYgKHF1aWNrT3JkZXJbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0pIHtcbiAgICAgICAgICBwYXJhbXNbJ29yZGVyJ10gPSBgJHtxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hdHRyaWJ1dGV9LCR7XG4gICAgICAgICAgICBxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hc2MgPz8gJydcbiAgICAgICAgICB9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdGhlclBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmluY2x1ZGVzKCdkZXN0aW5hdGlvbicpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aERlc3RpbmF0aW9uSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5pbmNsdWRlcygnc291cmNlJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoU291cmNlSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX2NvbmRpdGlvbiA9IHsgLi4uY29uZGl0aW9uLCBsaW1pdDogbGltaXRzW0RFRkFVTFRfTkFNRURfUVVFUllfSURdID8/IGxpbWl0c1snZGVmYXVsdCddLCAuLi5vdGhlclBhcmFtcyB9O1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8UmVzdWx0U2V0PihlbmNvZGVVUkkoYCR7dXJsfS9pdGVtcy9zZWFyY2hgKSwgX2NvbmRpdGlvbiwgeyBwYXJhbXMgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocnMpID0+IHRoaXMuYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQgPz8gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgcnMpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHRvIGFkZCBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHdoZW4gZ2V0dGluZyByZXN1bHRzIGZyb20gYmFja2VuZFxuICAgKiBAcGFyYW0gZnVuY1xuICAgKi9cbiAgYWRkVHJhbnNmb3JtYXRpb24oZnVuYzogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICB0aGlzLnRyYW5zZm9ybWF0aW9ucy5wdXNoKGZ1bmMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGFsbCB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbnNcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSByc1xuICAgKi9cbiAgYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQ6IHN0cmluZywgcnM6IFJlc3VsdFNldCkge1xuICAgIGxldCB0cmFuc2Zvcm1lZCA9IHJzO1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb25zLmZvckVhY2goKGZ1bmMpID0+ICh0cmFuc2Zvcm1lZCA9IGZ1bmMoaWQsIHRyYW5zZm9ybWVkKSkpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcbiAgfVxuXG4gIGF1dG9jb21wbGV0ZShcbiAgICBhdHRyaWJ1dGVzOlxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBkYXRhc291cmNlOiBzdHJpbmc7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgc2VhcmNoOiBzdHJpbmcgPSAnJyxcbiAgICBsaW1pdD86IG51bWJlclxuICApIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVybCkgPT5cbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3Q8c3RyaW5nW10+KGVuY29kZVVSSShgJHt1cmx9L2RhdGEtc291cmNlcy92YWx1ZXNgKSwge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzID8/IFtdKS5tYXAoKGF0dHIpID0+ICh7IGRhdGFzb3VyY2U6IGF0dHIuZGF0YXNvdXJjZSwgYXR0cmlidXRlOiBhdHRyLmlkIH0pKSxcbiAgICAgICAgICB2YWx1ZTogc2VhcmNoLFxuICAgICAgICAgIGxpbWl0XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19