@provoly/dashboard 1.2.5 → 1.2.7

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 (111) hide show
  1. package/components/color-picker/color-picker.component.d.ts +1 -1
  2. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -1
  3. package/dataset/style/_o-pry-dataset-card.scss +7 -3
  4. package/esm2022/components/color-picker/color-picker.component.mjs +2 -2
  5. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +2 -5
  6. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
  7. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +8 -6
  8. package/esm2022/dataset/style/css.component.mjs +2 -2
  9. package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +9 -5
  10. package/esm2022/lib/core/i18n/en.translations.mjs +4 -2
  11. package/esm2022/lib/core/i18n/fr.translations.mjs +4 -2
  12. package/esm2022/lib/core/model/display-options.interface.mjs +7 -4
  13. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  14. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  15. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -1
  16. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +25 -57
  17. package/esm2022/presentation/components/presentation.component.mjs +12 -13
  18. package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +4 -7
  19. package/esm2022/presentation/presentation.module.mjs +10 -14
  20. package/esm2022/presentation/style/css.component.mjs +2 -2
  21. package/esm2022/restitution/style/css.component.mjs +2 -2
  22. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +2 -2
  23. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +2 -2
  24. package/esm2022/toolbox/components/dashboard-details/dashboard-details.component.mjs +4 -4
  25. package/esm2022/toolbox/components/delete/delete.component.mjs +2 -2
  26. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +2 -2
  27. package/esm2022/toolbox/components/edit-mode-action/edit-mode-action.component.mjs +2 -2
  28. package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +2 -2
  29. package/esm2022/toolbox/components/edit-presentation/edit-presentation.component.mjs +64 -0
  30. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +2 -2
  31. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +2 -2
  32. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +2 -2
  33. package/esm2022/toolbox/components/save-view/save-view.component.mjs +7 -15
  34. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +2 -2
  35. package/esm2022/toolbox/components/share/share.component.mjs +2 -2
  36. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +2 -2
  37. package/esm2022/toolbox/components/toolbox.component.mjs +16 -9
  38. package/esm2022/toolbox/public-api.mjs +5 -3
  39. package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +97 -0
  40. package/esm2022/toolbox/shared/toolbox-action/toolbox-action.component.mjs +44 -0
  41. package/esm2022/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +58 -0
  42. package/esm2022/toolbox/style/css.component.mjs +2 -2
  43. package/esm2022/toolbox/toolbox.model.mjs +13 -5
  44. package/esm2022/toolbox/toolbox.module.mjs +21 -10
  45. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
  46. package/esm2022/widgets/widget-analytic/style/css.component.mjs +2 -2
  47. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +19 -14
  48. package/fesm2022/provoly-dashboard-components-color-picker.mjs +1 -1
  49. package/fesm2022/provoly-dashboard-components-color-picker.mjs.map +1 -1
  50. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -4
  51. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  52. package/fesm2022/provoly-dashboard-dataset.mjs +11 -9
  53. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard-presentation.mjs +50 -87
  55. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  56. package/fesm2022/provoly-dashboard-restitution.mjs +2 -2
  57. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard-toolbox.mjs +205 -55
  59. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  60. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +3 -3
  61. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +18 -13
  63. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard.mjs +24 -12
  65. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  66. package/lib/core/i18n/en.translations.d.ts +2 -0
  67. package/lib/core/i18n/fr.translations.d.ts +2 -0
  68. package/lib/core/model/display-options.interface.d.ts +1 -0
  69. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +0 -4
  70. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -0
  71. package/package.json +31 -31
  72. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +14 -21
  73. package/presentation/components/presentation.component.d.ts +7 -8
  74. package/presentation/style/_o-pry-new-presentation.scss +9 -10
  75. package/presentation/style/_o-pry-presentation.scss +1 -3
  76. package/styles/base/_utils.scss +3 -0
  77. package/styles/components/_a-btn.scss +4 -0
  78. package/styles/components/_m-actions-list.scss +5 -1
  79. package/styles/components/_m-presentation-title.scss +1 -5
  80. package/styles/components/_o-widget.scss +5 -6
  81. package/styles/layout/_o-workspace.scss +4 -21
  82. package/styles-theme/components-theme/_a-btn.theme.scss +16 -0
  83. package/styles-theme/main-theme.scss +0 -2
  84. package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +1 -1
  85. package/toolbox/components/clear-view/clear-view.component.d.ts +1 -1
  86. package/toolbox/components/dashboard-details/dashboard-details.component.d.ts +1 -1
  87. package/toolbox/components/delete/delete.component.d.ts +1 -1
  88. package/toolbox/components/drag-widgets/drag-widgets.component.d.ts +1 -1
  89. package/toolbox/components/edit-mode-action/edit-mode-action.component.d.ts +1 -1
  90. package/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.d.ts +1 -1
  91. package/toolbox/components/edit-presentation/edit-presentation.component.d.ts +22 -0
  92. package/toolbox/components/filter-settings/filter-settings.component.d.ts +1 -1
  93. package/toolbox/components/launch-tab/launch-tab.component.d.ts +1 -1
  94. package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +1 -1
  95. package/toolbox/components/save-view/save-view.component.d.ts +5 -6
  96. package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +1 -1
  97. package/toolbox/components/share/share.component.d.ts +1 -1
  98. package/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.d.ts +1 -1
  99. package/toolbox/components/toolbox.component.d.ts +3 -2
  100. package/toolbox/public-api.d.ts +4 -2
  101. package/toolbox/shared/presentation-form/presentation-form.component.d.ts +42 -0
  102. package/toolbox/style/_o-dashboard-details.component.scss +0 -13
  103. package/toolbox/toolbox.model.d.ts +1 -1
  104. package/toolbox/toolbox.module.d.ts +14 -12
  105. package/widgets/widget-analytic/style/_o-widget-analytic.scss +2 -0
  106. package/widgets/widget-map/component/widget-map.component.d.ts +1 -3
  107. package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +0 -46
  108. package/esm2022/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +0 -58
  109. package/styles-theme/layout-theme/_o-workspace.theme.scss +0 -18
  110. /package/toolbox/{components → shared}/toolbox-action/toolbox-action.component.d.ts +0 -0
  111. /package/toolbox/{components → shared}/toolbox-action-instanciator/toolbox-action-instanciator.component.d.ts +0 -0
@@ -44,8 +44,13 @@ export class PryDatasetDetailComponent extends SubscriptionnerDirective {
44
44
  this.isPanelOpen = false;
45
45
  this.datasetItems$ = this.store.select(DashboardSelectors.resultSets);
46
46
  this.compId = nextCompId++;
47
+ this.subscriptions.add(this.store.select(DashboardSelectors.dashboardEditionMode).subscribe((editionMode) => {
48
+ if (editionMode)
49
+ this.store.dispatch(DashboardActions.toggleEditionMode({}));
50
+ }));
47
51
  }
48
52
  ngOnInit() {
53
+ this.canModify$ = this.access?.canModifyDataset(this.dataset) ?? of(false);
49
54
  this.store.dispatch(DataSourceActions.dataset.listVersionsByDatasetId({ id: this.dataset.id }));
50
55
  this.store.dispatch(DashboardActions.removeFilters());
51
56
  this.store.dispatch(SearchActions.getDatasourceItems({
@@ -163,15 +168,12 @@ export class PryDatasetDetailComponent extends SubscriptionnerDirective {
163
168
  this.store.dispatch(DataSourceActions.dataset.confirmDeleteVersion({ version }));
164
169
  $event?.stopPropagation();
165
170
  }
166
- canModify$() {
167
- return this.access ? this.access.canModifyDataset(this.dataset) : of(false);
168
- }
169
171
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", 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 <h2 class=\"a-h1\">{{ dataset.name }}</h2>\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 (activeVersion$ | async; as activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ 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]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\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 *ngIf=\"activeVersionId$ | async as activeVersionId\" 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 <tr\n *ngFor=\"let version of datasetVersions$ | async\"\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n *ngIf=\"version.state !== 'DELETING'\"\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n \"\n >\n <ng-container *ngIf=\"canModify$() && (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 <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"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 </ng-container>\n </td>\n <td>\n <ng-container\n *ngIf=\"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 </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryModalStatusComponent, selector: "pry-modal-status", inputs: ["version"], outputs: ["gotoConsult"] }, { kind: "component", type: i4.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.PrySinceDatePipe, name: "sinceDate" }, { kind: "pipe", type: i6.MdToHtmlPipe, name: "mdToHtml" }] }); }
172
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", 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 <h2 class=\"a-h1\">{{ dataset.name }}</h2>\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 (activeVersion$ | async; as activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ 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]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\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 *ngIf=\"activeVersionId$ | async as activeVersionId\" 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 <tr\n *ngFor=\"let version of datasetVersions$ | async\"\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n *ngIf=\"version.state !== 'DELETING'\"\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n \"\n >\n <ng-container\n *ngIf=\"(canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\"\n >\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 <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"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 </ng-container>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n \"\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 </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryModalStatusComponent, selector: "pry-modal-status", inputs: ["version"], outputs: ["gotoConsult"] }, { kind: "component", type: i4.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.PrySinceDatePipe, name: "sinceDate" }, { kind: "pipe", type: i6.MdToHtmlPipe, name: "mdToHtml" }] }); }
171
173
  }
172
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
173
175
  type: Component,
174
- args: [{ selector: 'pry-dataset-detail', 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 <h2 class=\"a-h1\">{{ dataset.name }}</h2>\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 (activeVersion$ | async; as activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ 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]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\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 *ngIf=\"activeVersionId$ | async as activeVersionId\" 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 <tr\n *ngFor=\"let version of datasetVersions$ | async\"\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n *ngIf=\"version.state !== 'DELETING'\"\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n \"\n >\n <ng-container *ngIf=\"canModify$() && (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 <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"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 </ng-container>\n </td>\n <td>\n <ng-container\n *ngIf=\"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 </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n" }]
176
+ args: [{ selector: 'pry-dataset-detail', 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 <h2 class=\"a-h1\">{{ dataset.name }}</h2>\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 (activeVersion$ | async; as activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ 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]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\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 *ngIf=\"activeVersionId$ | async as activeVersionId\" 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 <tr\n *ngFor=\"let version of datasetVersions$ | async\"\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n *ngIf=\"version.state !== 'DELETING'\"\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n \"\n >\n <ng-container\n *ngIf=\"(canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\"\n >\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 <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"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 </ng-container>\n </td>\n <td>\n <ng-container\n *ngIf=\"\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n \"\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 </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n" }]
175
177
  }], ctorParameters: () => [{ type: i1.Store }, { type: i3.PryBaseAccess, decorators: [{
176
178
  type: Optional
177
179
  }, {
@@ -182,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
182
184
  }], goToCatalog: [{
183
185
  type: Output
184
186
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFHbEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFHaEIsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixRQUFRLEVBRVQsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFFM0MsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBTW5CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFzQ3JFLFlBQ1UsS0FBWSxFQUM0QixNQUFxQjtRQUVyRSxLQUFLLEVBQUUsQ0FBQztRQUhBLFVBQUssR0FBTCxLQUFLLENBQU87UUFDNEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXRDN0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLG1CQUFjLEdBQUc7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFLElBQUk7Z0JBQ1osSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ2pCO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsRUFBRTtvQkFDVixHQUFHLEVBQUUsSUFBSTtvQkFDVCxlQUFlLEVBQUUsSUFBSTtpQkFDdEI7Z0JBQ0QsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ2pCO1NBQ21DLENBQUM7UUFDcEIsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN2QyxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFHaEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakMsaUJBQVksR0FBYSxRQUFRLENBQUMsT0FBTyxDQUFDO1FBRzFDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQVEzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsYUFBYSxDQUFDLGtCQUFrQixDQUFDO1lBQy9CLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsSUFBSSxFQUFFLHNDQUFzQztTQUM3QyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSzthQUMvQixNQUFNLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDOUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDZixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUNqRyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRztvQkFDckIsR0FBRyxJQUFJLENBQUMsZUFBZTtvQkFDdkIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2lCQUN2RSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUscUNBQXFDO1NBQzVDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWEsRUFBRSxPQUF1QjtRQUN2RCxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUM7UUFDdEMsUUFBUSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWEsRUFBRSxPQUF1QjtRQUNsRCxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQXVCLEVBQUUsZUFBdUI7UUFDdkUsUUFBUSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssUUFBUTtnQkFDWCxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNoRSxLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssVUFBVTtnQkFDYixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxTQUFTLENBQUM7WUFDbkI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUF1QjtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pELFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUF1QjtRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQy9DLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLGVBQWdDO1FBQzFDLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUErQjtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBdUIsRUFBRSxNQUFjO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixNQUFNLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQzs4R0F0TVUseUJBQXlCLHVDQXdDZCxnQkFBZ0I7a0dBeEMzQix5QkFBeUIsMEpDekJ0QyxtOFNBb1BBOzsyRkQzTmEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBMkMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQjt5Q0F2QzdCLE9BQU87c0JBQWYsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERhdGFzZXQsXG4gIERhdGFzZXRWZXJzaW9uLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgUFJZX0FDQ0VTU19UT0tFTixcbiAgUHJ5QmFzZUFjY2VzcyxcbiAgUmVzdWx0U2V0cyxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlLFxuICBWaWV3TW9kZSxcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxubGV0IG5leHRDb21wSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZGF0YXNldC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXNldC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeURhdGFzZXREZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhc2V0ITogRGF0YXNldDtcbiAgQE91dHB1dCgpIGdvVG9DYXRhbG9nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB3aWRnZXRNYW5pZmVzdCA9IHtcbiAgICB0YWJsZToge1xuICAgICAgaGVhZGVyOiB0cnVlLFxuICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCBoZWlnaHQ6IDEyLCB3aWR0aDogMTIgfSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgZGF0YXNvdXJjZTogWycnXVxuICAgIH0sXG4gICAgbWFwOiB7XG4gICAgICBoZWFkZXI6IGZhbHNlLFxuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgaGVpZ2h0OiAxMiwgd2lkdGg6IDEyIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGxheWVyczogW10sXG4gICAgICAgIGZpdDogdHJ1ZSxcbiAgICAgICAgYXV0b21hdGljTGF5ZXJzOiB0cnVlXG4gICAgICB9LFxuICAgICAgZGF0YXNvdXJjZTogWycnXVxuICAgIH1cbiAgfSBhcyB7IFtrZXk6IHN0cmluZ106IFdpZGdldE1hbmlmZXN0IH07XG4gIHByb3RlY3RlZCByZWFkb25seSBWaWV3TW9kZSA9IFZpZXdNb2RlO1xuICBjb21wSWQ6IG51bWJlciA9IDA7XG4gIHRhYjogbnVtYmVyID0gMDtcbiAgZGF0YXNldEl0ZW1zJDogT2JzZXJ2YWJsZTxSZXN1bHRTZXRzIHwgbnVsbD47XG4gIHB1YmxpYyBkYXRhc2V0VmVyc2lvbnMkITogT2JzZXJ2YWJsZTxEYXRhc2V0VmVyc2lvbltdPjtcbiAgc2hvd01vZGFsU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkRGF0YXNldFZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbjtcbiAgc2VsZWN0ZWRNb2RlOiBWaWV3TW9kZSA9IFZpZXdNb2RlLkNPTlNVTFQ7XG4gIGFjdGl2ZVZlcnNpb24kITogT2JzZXJ2YWJsZTxEYXRhc2V0VmVyc2lvbiB8IHVuZGVmaW5lZD47XG4gIGFjdGl2ZVZlcnNpb25JZCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGlzRWRpdGluZ1ZlcnNpb24gPSBmYWxzZTtcblxuICBpc1BhbmVsT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBSWV9BQ0NFU1NfVE9LRU4pIHByb3RlY3RlZCBhY2Nlc3M6IFByeUJhc2VBY2Nlc3NcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmRhdGFzZXRJdGVtcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cyk7XG4gICAgdGhpcy5jb21wSWQgPSBuZXh0Q29tcElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zQnlEYXRhc2V0SWQoeyBpZDogdGhpcy5kYXRhc2V0LmlkIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVycygpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICBpZDogdGhpcy5kYXRhc2V0LmlkLFxuICAgICAgICBleGNsdWRlR2VvOiBmYWxzZSxcbiAgICAgICAgZnJvbTogJ1ByeURhdGFzZXREZXRhaWxDb21wb25lbnQubmdPbkluaXQoKSdcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5tYXRjaGluZ0RhdGFzZXRWZXJzaW9ucyh0aGlzLmRhdGFzZXQuaWQpKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IFsuLi5yZXNdLnNvcnQoKGEsIGIpID0+IGIudmVyc2lvbiAtIGEudmVyc2lvbikpKTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoKHZlcnNpb25zKSA9PlxuICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJylcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVmVyc2lvbklkJCA9IHRoaXMuYWN0aXZlVmVyc2lvbiQucGlwZShtYXAoKHZlcnNpb24pID0+IHZlcnNpb24/LmlkID8/ICctMScpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmRhdGFzZXRWZXJzaW9ucyQuc3Vic2NyaWJlKCh2ZXJzaW9ucykgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbiA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0ZWRWZXJzaW9uLFxuICAgICAgICAgICAgLi4udmVyc2lvbnMuZmluZCgodmVyc2lvbikgPT4gdmVyc2lvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZFZlcnNpb24/LmlkKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ10uZGF0YXNvdXJjZSA9IFt0aGlzLmRhdGFzZXQuaWRdO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ21hcCddLmRhdGFzb3VyY2UgPSBbdGhpcy5kYXRhc2V0LmlkXTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmdvVG9DYXRhbG9nLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKCkpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICBpZDogdGhpcy5kYXRhc2V0LmlkLFxuICAgICAgICBleGNsdWRlR2VvOiBmYWxzZSxcbiAgICAgICAgZnJvbTogJ1ByeURhdGFzZXREZXRhaWxDb21wb25lbnQucmVmcmVzaCgpJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMoKSk7XG4gIH1cblxuICBnb1RvQ29uc3VsdCh2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0VmVyc2lvbiA9IHZlcnNpb247XG4gICAgdGhpcy5zaG93TW9kYWxTdGF0dXMgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IFZpZXdNb2RlLkNPTlNVTFQ7XG4gIH1cblxuICBzd2l0Y2gobnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYiA9IG51bWJlcjtcbiAgfVxuXG4gIGhhbmRsZUJ1dHRvbkFjdGlvbigkZXZlbnQ6IEV2ZW50LCB2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbikge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNldFZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHN3aXRjaCAodmVyc2lvbi5zdGF0ZSkge1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdJTkFDVElWRSc6XG4gICAgICAgIHRoaXMuYWN0aXZhdGVWZXJzaW9uKHZlcnNpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN1bHRFcnJvcnMoJGV2ZW50OiBFdmVudCwgdmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBnZXRWZXJzaW9uVG9vbHRpcENvbnRlbnQodmVyc2lvbjogRGF0YXNldFZlcnNpb24sIGFjdGl2ZVZlcnNpb25JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2ZXJzaW9uLnN0YXRlKSB7XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24uaWQgPT09IGFjdGl2ZVZlcnNpb25JZCA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJztcbiAgICAgIGNhc2UgJ0xPQURJTkcnOlxuICAgICAgY2FzZSAnSU5ERVhJTkcnOlxuICAgICAgICByZXR1cm4gJ2xvYWRpbmcnO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb25UYWJTd2l0Y2goJGV2ZW50OiBudW1iZXIpIHtcbiAgICBpZiAoWzAsIDEsIDJdLmluY2x1ZGVzKCRldmVudCkpIHtcbiAgICAgIHRoaXMuaXNQYW5lbE9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYW5lbChzZWxlY3RlZFZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbikge1xuICAgIGlmIChzZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gc2VsZWN0ZWRWZXJzaW9uO1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLmlzRWRpdGluZ1ZlcnNpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9ICF0aGlzLmlzUGFuZWxPcGVuO1xuICAgICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZWRpdFZlcnNpb24oKSB7XG4gICAgdGhpcy5pc0VkaXRpbmdWZXJzaW9uID0gdHJ1ZTtcbiAgfVxuXG4gIGZvcm1WYWxpZGF0ZWQoJGV2ZW50OiBQYXJ0aWFsPERhdGFzZXRWZXJzaW9uPikge1xuICAgIHRoaXMuaXNFZGl0aW5nVmVyc2lvbiA9IGZhbHNlO1xuICB9XG5cbiAgYXNrRGVsZXRlKHZlcnNpb246IERhdGFzZXRWZXJzaW9uLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGVsZXRlVmVyc2lvbih7IHZlcnNpb24gfSkpO1xuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBjYW5Nb2RpZnkkKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2VzcyA/IHRoaXMuYWNjZXNzLmNhbk1vZGlmeURhdGFzZXQodGhpcy5kYXRhc2V0KSA6IG9mKGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJnb0JhY2soKVwiPnt7ICdAcHJ5LmRhdGFzZXQucmV0dXJuVG9MaXN0JyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAge3sgJ0BwcnkuZGF0YXNldC5yZWZyZXNoJyB8IGkxOG4gfX1cbiAgICA8cHJ5LWljb24gaWNvblN2Zz1cInN5bmNocm9cIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWxheW91dF9fY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhLXBcIj5cbiAgICAgIDxoMiBjbGFzcz1cImEtaDFcIj57eyBkYXRhc2V0Lm5hbWUgfX08L2gyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm8tZGF0YXNldC1kZXRhaWxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtZGV0YWlsX19jb250ZW50XCI+XG4gICAgICAgIDxwcnktdGFiLWdyb3VwIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuZGF0YXNldC5cIiAoY2xpY2tlZFRhYklkeCk9XCJvblRhYlN3aXRjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImluZm9ybWF0aW9uXCIgbmFtZT1cImluZm9ybWF0aW9uXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJ0YWJsZVwiIG5hbWU9XCJkYXRhXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJtYXBcIiBuYW1lPVwibWFwXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJkYXRhc2V0VmVyc2lvbnNcIiBuYW1lPVwidmVyc2lvbkhpc3RvcnlcIj48L3ByeS10YWI+XG4gICAgICAgIDwvcHJ5LXRhYi1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc1BhbmVsT3Blbikge1xuICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtbGF5b3V0X19wYW5lbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhbmVsX19oZWFkZXIgdS1kaXNwbGF5LWZsZXggLWp1c3RpZnktc3BhY2UtYmV0d2VlblwiPlxuICAgICAgICA8aDM+e3sgJ0BwcnkuZGF0YXNldC5pbmZvcm1hdGlvbicgfCBpMThuIH19PC9oMz5cbiAgICAgICAgPGJ1dHRvbiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbF9fY29udGVudCB1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIEBpZiAoIWlzRWRpdGluZ1ZlcnNpb24pIHtcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y3Rpb25EYXRlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAoc2VsZWN0ZWRWZXJzaW9uPy5wcm9kdWN0aW9uRGF0ZSB8IGRhdGU6ICdkZC1NTS15eXl5LCBISDptbScpID8/XG4gICAgICAgICAgICAgICAgKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5wcm9kdWNlcicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRWZXJzaW9uPy5wcm9kdWNlciA/PyAoJ0BwcnkuZGF0YXNldC52ZXJzaW9uLm5vdFByb3ZpZGVkJyB8IGkxOG4pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24uYWRkaXRpb25hbEluZm9ybWF0aW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1pbmZvcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRWZXJzaW9uPy5hZGRpdGlvbmFsSW5mb3JtYXRpb24gPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB8IG1kVG9IdG1sXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnYWRtaW4nLCBwYWdlOiAnbGlzdC1kYXRhc2V0JywgYWN0aW9uOiAnZWRpdF92ZXJzaW9uJyB9XCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeSB1LXNlbGYtZW5kXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0VmVyc2lvbigpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24uZWRpdCcgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxwcnktZGF0YXNldC12ZXJzaW9uLWZvcm1cbiAgICAgICAgICAgIFt2ZXJzaW9uXT1cInNlbGVjdGVkVmVyc2lvblwiXG4gICAgICAgICAgICAoZm9ybVZhbGlkYXRlZCk9XCJmb3JtVmFsaWRhdGVkKCRldmVudClcIlxuICAgICAgICAgID48L3ByeS1kYXRhc2V0LXZlcnNpb24tZm9ybT5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2luZm9ybWF0aW9uPlxuICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWNvbHVtbiBvLWRhdGFzZXQtZGV0YWlsX19pbmZvcm1hdGlvblwiPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8c3Bhbj57eyBkYXRhc2V0LmRlc2NyaXB0aW9uID8/ICgnQHByeS5kYXRhc2V0LnZlcnNpb24ubm90UHJvdmlkZWQnIHwgaTE4bikgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgQGlmIChhY3RpdmVWZXJzaW9uJCB8IGFzeW5jOyBhcyBhY3RpdmVWZXJzaW9uKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24ucHJvZHVjdGlvbkRhdGUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAoYWN0aXZlVmVyc2lvbj8ucHJvZHVjdGlvbkRhdGUgfCBkYXRlOiAnZGQtTU0teXl5eSwgSEg6bW0nKSA/PyAoJ0BwcnkuZGF0YXNldC52ZXJzaW9uLm5vdFByb3ZpZGVkJyB8IGkxOG4pXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24ucHJvZHVjZXInIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgYWN0aXZlVmVyc2lvbj8ucHJvZHVjZXIgPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLmFkZGl0aW9uYWxJbmZvcm1hdGlvbicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2ZXJzaW9uLWluZm9ybWF0aW9uXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cImFjdGl2ZVZlcnNpb24/LmFkZGl0aW9uYWxJbmZvcm1hdGlvbiA/PyAoJ0BwcnkuZGF0YXNldC52ZXJzaW9uLm5vdFByb3ZpZGVkJyB8IGkxOG4pIHwgbWRUb0h0bWxcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgPHA+e3sgJ0BwcnkuZGF0YXNldC5ub0FjdGl2ZVZlcnNpb24nIHwgaTE4biB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ11dIH1cIj48L3ByeS1kYXNoYm9hcmQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbWFwPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ21hcCddXSB9XCI+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RhdGFzZXRWZXJzaW9ucz5cbiAgPGRpdiAqbmdJZj1cImFjdGl2ZVZlcnNpb25JZCQgfCBhc3luYyBhcyBhY3RpdmVWZXJzaW9uSWRcIiBjbGFzcz1cImRhdGFzZXQtZGV0YWlsX190YWJsZSB0YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICA8Y2FwdGlvbj5cbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5kYXRhc2V0LnRpdGxlJyB8IGkxOG5cbiAgICAgICAgfX0sXG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWN0aW9uLnNvcnRhYmxlQ29sdW1uSGVhZGVyJyB8IGkxOG5cbiAgICAgICAgfX1cbiAgICAgIDwvY2FwdGlvbj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24udGl0bGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQuZGF0ZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC5zdGF0dXMnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdmVyc2lvbiBvZiBkYXRhc2V0VmVyc2lvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQYW5lbCh2ZXJzaW9uKVwiXG4gICAgICAgICAgW2NsYXNzLi1zZWxlY3RlZF09XCJ2ZXJzaW9uLmlkID09PSBzZWxlY3RlZFZlcnNpb24/LmlkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7IHZlcnNpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgPHByeS1pY29uICpuZ0lmPVwiYWN0aXZlVmVyc2lvbklkID09PSB2ZXJzaW9uLmlkXCIgaWNvblN2Zz1cImNoZWNrXCIgY2xhc3M9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cInZlcnNpb24ubGFzdE1vZGlmaWVkIHwgc2luY2VEYXRlOiB7IG9ubHlMb2NhbGU6IHRydWUgfVwiXG4gICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgdmVyc2lvbi5sYXN0TW9kaWZpZWQgfCBzaW5jZURhdGU6IHsgb25seUxvY2FsZTogdHJ1ZSB9IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIChhY3RpdmVWZXJzaW9uSWQgPT09IHZlcnNpb24uaWRcbiAgICAgICAgICAgICAgICA/ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5jdXJyZW50bHlBY3RpdmUnXG4gICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnZlcnNpb24uJyArIHZlcnNpb24uc3RhdGVcbiAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwidmVyc2lvbi5zdGF0ZSAhPT0gJ0RFTEVUSU5HJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibS1pbmZvLWljb24gYS10b29sdGlwIC10b29sdGlwLXdpZHRoLW1kXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LmRhdGFzZXQudG9vbHRpcC4nICsgZ2V0VmVyc2lvblRvb2x0aXBDb250ZW50KHZlcnNpb24sIGFjdGl2ZVZlcnNpb25JZCkgfCBpMThuXCJcbiAgICAgICAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj5pPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgdmVyc2lvbi5zdGF0ZSAhPT0gJ0xPQURJTkcnICYmXG4gICAgICAgICAgICAgICAgdmVyc2lvbi5zdGF0ZSAhPT0gJ0lOREVYSU5HJyAmJlxuICAgICAgICAgICAgICAgIHZlcnNpb24uc3RhdGUgIT09ICdFUlJPUicgJiZcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLnN0YXRlICE9PSAnREVMRVRJTkcnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5Nb2RpZnkkKCkgJiYgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdJTkFDVElWRScpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbGlzdC1kYXRhc2V0JywgYWN0aW9uOiAnYWN0aXZhdGUnIH1cIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkFjdGlvbigkZXZlbnQsIHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uJyArIHZlcnNpb24uc3RhdGUgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC50b29sdGlwLmludmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ0BwcnkuZGF0YXNldC50b29sdGlwLnZhbGlkYXRlQnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmVyc2lvbi5oYXNXYXJuaW5ncyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29uc3VsdEVycm9ycygkZXZlbnQsIHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAodmVyc2lvbi5zdGF0ZSA9PT0gJ0VSUk9SJyA/ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLkVSUk9SJyA6ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLldBUk5JTkcnKVxuICAgICAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cInZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdFUlJPUicgfHwgdmVyc2lvbi5zdGF0ZSA9PT0gJ0lOQUNUSVZFJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXNrRGVsZXRlKHZlcnNpb24sICRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uZGVsZXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TW9kYWxTdGF0dXNcIj5cbiAgPHByeS1tb2RhbC1zdGF0dXMgW3ZlcnNpb25dPVwic2VsZWN0ZWREYXRhc2V0VmVyc2lvblwiIChnb3RvQ29uc3VsdCk9XCJnb1RvQ29uc3VsdCgkZXZlbnQpXCI+PC9wcnktbW9kYWwtc3RhdHVzPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFHbEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFHaEIsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixRQUFRLEVBRVQsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFFM0MsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBTW5CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUF1Q3JFLFlBQ1UsS0FBWSxFQUM0QixNQUFxQjtRQUVyRSxLQUFLLEVBQUUsQ0FBQztRQUhBLFVBQUssR0FBTCxLQUFLLENBQU87UUFDNEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXZDN0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLG1CQUFjLEdBQUc7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFLElBQUk7Z0JBQ1osSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFF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QXlQQTs7MkZEaE9hLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxvQkFBb0I7OzBCQTRDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7eUNBeEM3QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhc2V0LFxuICBEYXRhc2V0VmVyc2lvbixcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIFBSWV9BQ0NFU1NfVE9LRU4sXG4gIFByeUJhc2VBY2Nlc3MsXG4gIFJlc3VsdFNldHMsXG4gIFNlYXJjaEFjdGlvbnMsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSxcbiAgVmlld01vZGUsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmxldCBuZXh0Q29tcElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWRhdGFzZXQtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlEYXRhc2V0RGV0YWlsQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGF0YXNldCE6IERhdGFzZXQ7XG4gIEBPdXRwdXQoKSBnb1RvQ2F0YWxvZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgd2lkZ2V0TWFuaWZlc3QgPSB7XG4gICAgdGFibGU6IHtcbiAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgaGVpZ2h0OiAxMiwgd2lkdGg6IDEyIH0sXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICAgIGRhdGFzb3VyY2U6IFsnJ11cbiAgICB9LFxuICAgIG1hcDoge1xuICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICAgIHR5cGU6ICdtYXAnLFxuICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIGhlaWdodDogMTIsIHdpZHRoOiAxMiB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBsYXllcnM6IFtdLFxuICAgICAgICBmaXQ6IHRydWUsXG4gICAgICAgIGF1dG9tYXRpY0xheWVyczogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFsnJ11cbiAgICB9XG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBXaWRnZXRNYW5pZmVzdCB9O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVmlld01vZGUgPSBWaWV3TW9kZTtcbiAgY29tcElkOiBudW1iZXIgPSAwO1xuICB0YWI6IG51bWJlciA9IDA7XG4gIGRhdGFzZXRJdGVtcyQ6IE9ic2VydmFibGU8UmVzdWx0U2V0cyB8IG51bGw+O1xuICBwdWJsaWMgZGF0YXNldFZlcnNpb25zJCE6IE9ic2VydmFibGU8RGF0YXNldFZlcnNpb25bXT47XG4gIHNob3dNb2RhbFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGFzZXRWZXJzaW9uPzogRGF0YXNldFZlcnNpb247XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DT05TVUxUO1xuICBhY3RpdmVWZXJzaW9uJCE6IE9ic2VydmFibGU8RGF0YXNldFZlcnNpb24gfCB1bmRlZmluZWQ+O1xuICBhY3RpdmVWZXJzaW9uSWQkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpc0VkaXRpbmdWZXJzaW9uID0gZmFsc2U7XG4gIGNhbk1vZGlmeSQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGlzUGFuZWxPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkVmVyc2lvbj86IERhdGFzZXRWZXJzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUFJZX0FDQ0VTU19UT0tFTikgcHJvdGVjdGVkIGFjY2VzczogUHJ5QmFzZUFjY2Vzc1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGF0YXNldEl0ZW1zJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZXN1bHRTZXRzKTtcbiAgICB0aGlzLmNvbXBJZCA9IG5leHRDb21wSWQrKztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmRhc2hib2FyZEVkaXRpb25Nb2RlKS5zdWJzY3JpYmUoKGVkaXRpb25Nb2RlKSA9PiB7XG4gICAgICAgIGlmIChlZGl0aW9uTW9kZSkgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnRvZ2dsZUVkaXRpb25Nb2RlKHt9KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNhbk1vZGlmeSQgPSB0aGlzLmFjY2Vzcz8uY2FuTW9kaWZ5RGF0YXNldCh0aGlzLmRhdGFzZXQpID8/IG9mKGZhbHNlKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zQnlEYXRhc2V0SWQoeyBpZDogdGhpcy5kYXRhc2V0LmlkIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVycygpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICBpZDogdGhpcy5kYXRhc2V0LmlkLFxuICAgICAgICBleGNsdWRlR2VvOiBmYWxzZSxcbiAgICAgICAgZnJvbTogJ1ByeURhdGFzZXREZXRhaWxDb21wb25lbnQubmdPbkluaXQoKSdcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5tYXRjaGluZ0RhdGFzZXRWZXJzaW9ucyh0aGlzLmRhdGFzZXQuaWQpKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IFsuLi5yZXNdLnNvcnQoKGEsIGIpID0+IGIudmVyc2lvbiAtIGEudmVyc2lvbikpKTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoKHZlcnNpb25zKSA9PlxuICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJylcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVmVyc2lvbklkJCA9IHRoaXMuYWN0aXZlVmVyc2lvbiQucGlwZShtYXAoKHZlcnNpb24pID0+IHZlcnNpb24/LmlkID8/ICctMScpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmRhdGFzZXRWZXJzaW9ucyQuc3Vic2NyaWJlKCh2ZXJzaW9ucykgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbiA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0ZWRWZXJzaW9uLFxuICAgICAgICAgICAgLi4udmVyc2lvbnMuZmluZCgodmVyc2lvbikgPT4gdmVyc2lvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZFZlcnNpb24/LmlkKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ10uZGF0YXNvdXJjZSA9IFt0aGlzLmRhdGFzZXQuaWRdO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ21hcCddLmRhdGFzb3VyY2UgPSBbdGhpcy5kYXRhc2V0LmlkXTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmdvVG9DYXRhbG9nLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKCkpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICBpZDogdGhpcy5kYXRhc2V0LmlkLFxuICAgICAgICBleGNsdWRlR2VvOiBmYWxzZSxcbiAgICAgICAgZnJvbTogJ1ByeURhdGFzZXREZXRhaWxDb21wb25lbnQucmVmcmVzaCgpJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMoKSk7XG4gIH1cblxuICBnb1RvQ29uc3VsdCh2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0VmVyc2lvbiA9IHZlcnNpb247XG4gICAgdGhpcy5zaG93TW9kYWxTdGF0dXMgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IFZpZXdNb2RlLkNPTlNVTFQ7XG4gIH1cblxuICBzd2l0Y2gobnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYiA9IG51bWJlcjtcbiAgfVxuXG4gIGhhbmRsZUJ1dHRvbkFjdGlvbigkZXZlbnQ6IEV2ZW50LCB2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbikge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNldFZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHN3aXRjaCAodmVyc2lvbi5zdGF0ZSkge1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdJTkFDVElWRSc6XG4gICAgICAgIHRoaXMuYWN0aXZhdGVWZXJzaW9uKHZlcnNpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN1bHRFcnJvcnMoJGV2ZW50OiBFdmVudCwgdmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBnZXRWZXJzaW9uVG9vbHRpcENvbnRlbnQodmVyc2lvbjogRGF0YXNldFZlcnNpb24sIGFjdGl2ZVZlcnNpb25JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2ZXJzaW9uLnN0YXRlKSB7XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24uaWQgPT09IGFjdGl2ZVZlcnNpb25JZCA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJztcbiAgICAgIGNhc2UgJ0xPQURJTkcnOlxuICAgICAgY2FzZSAnSU5ERVhJTkcnOlxuICAgICAgICByZXR1cm4gJ2xvYWRpbmcnO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb25UYWJTd2l0Y2goJGV2ZW50OiBudW1iZXIpIHtcbiAgICBpZiAoWzAsIDEsIDJdLmluY2x1ZGVzKCRldmVudCkpIHtcbiAgICAgIHRoaXMuaXNQYW5lbE9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYW5lbChzZWxlY3RlZFZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbikge1xuICAgIGlmIChzZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gc2VsZWN0ZWRWZXJzaW9uO1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLmlzRWRpdGluZ1ZlcnNpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9ICF0aGlzLmlzUGFuZWxPcGVuO1xuICAgICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZWRpdFZlcnNpb24oKSB7XG4gICAgdGhpcy5pc0VkaXRpbmdWZXJzaW9uID0gdHJ1ZTtcbiAgfVxuXG4gIGZvcm1WYWxpZGF0ZWQoJGV2ZW50OiBQYXJ0aWFsPERhdGFzZXRWZXJzaW9uPikge1xuICAgIHRoaXMuaXNFZGl0aW5nVmVyc2lvbiA9IGZhbHNlO1xuICB9XG5cbiAgYXNrRGVsZXRlKHZlcnNpb246IERhdGFzZXRWZXJzaW9uLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGVsZXRlVmVyc2lvbih7IHZlcnNpb24gfSkpO1xuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiZ29CYWNrKClcIj57eyAnQHByeS5kYXRhc2V0LnJldHVyblRvTGlzdCcgfCBpMThuIH19PC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlZnJlc2goKVwiPlxuICAgIHt7ICdAcHJ5LmRhdGFzZXQucmVmcmVzaCcgfCBpMThuIH19XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJzeW5jaHJvXCI+PC9wcnktaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm8tZGF0YXNldC1sYXlvdXRcIj5cbiAgPGRpdiBjbGFzcz1cIm8tZGF0YXNldC1sYXlvdXRfX2NvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYS1wXCI+XG4gICAgICA8aDIgY2xhc3M9XCJhLWgxXCI+e3sgZGF0YXNldC5uYW1lIH19PC9oMj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtZGV0YWlsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWRldGFpbF9fY29udGVudFwiPlxuICAgICAgICA8cHJ5LXRhYi1ncm91cCB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmRhdGFzZXQuXCIgKGNsaWNrZWRUYWJJZHgpPVwib25UYWJTd2l0Y2goJGV2ZW50KVwiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJpbmZvcm1hdGlvblwiIG5hbWU9XCJpbmZvcm1hdGlvblwiPjwvcHJ5LXRhYj5cbiAgICAgICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwidGFibGVcIiBuYW1lPVwiZGF0YVwiPjwvcHJ5LXRhYj5cbiAgICAgICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwibWFwXCIgbmFtZT1cIm1hcFwiPjwvcHJ5LXRhYj5cbiAgICAgICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiZGF0YXNldFZlcnNpb25zXCIgbmFtZT1cInZlcnNpb25IaXN0b3J5XCI+PC9wcnktdGFiPlxuICAgICAgICA8L3ByeS10YWItZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZiAoaXNQYW5lbE9wZW4pIHtcbiAgICA8ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWxheW91dF9fcGFuZWxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbF9faGVhZGVyIHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgPGgzPnt7ICdAcHJ5LmRhdGFzZXQuaW5mb3JtYXRpb24nIHwgaTE4biB9fTwvaDM+XG4gICAgICAgIDxidXR0b24gcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCI+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWxfX2NvbnRlbnQgdS1kaXNwbGF5LWZsZXggLWNvbHVtblwiPlxuICAgICAgICBAaWYgKCFpc0VkaXRpbmdWZXJzaW9uKSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5wcm9kdWN0aW9uRGF0ZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgKHNlbGVjdGVkVmVyc2lvbj8ucHJvZHVjdGlvbkRhdGUgfCBkYXRlOiAnZGQtTU0teXl5eSwgSEg6bW0nKSA/P1xuICAgICAgICAgICAgICAgICgnQHByeS5kYXRhc2V0LnZlcnNpb24ubm90UHJvdmlkZWQnIHwgaTE4bilcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24ucHJvZHVjZXInIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHNlbGVjdGVkVmVyc2lvbj8ucHJvZHVjZXIgPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLmFkZGl0aW9uYWxJbmZvcm1hdGlvbicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInZlcnNpb24taW5mb3JtYXRpb25cIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVmVyc2lvbj8uYWRkaXRpb25hbEluZm9ybWF0aW9uID8/ICgnQHByeS5kYXRhc2V0LnZlcnNpb24ubm90UHJvdmlkZWQnIHwgaTE4bikgfCBtZFRvSHRtbFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2xpc3QtZGF0YXNldCcsIGFjdGlvbjogJ2VkaXRfdmVyc2lvbicgfVwiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgdS1zZWxmLWVuZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdFZlcnNpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmVkaXQnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8cHJ5LWRhdGFzZXQtdmVyc2lvbi1mb3JtXG4gICAgICAgICAgICBbdmVyc2lvbl09XCJzZWxlY3RlZFZlcnNpb25cIlxuICAgICAgICAgICAgKGZvcm1WYWxpZGF0ZWQpPVwiZm9ybVZhbGlkYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9wcnktZGF0YXNldC12ZXJzaW9uLWZvcm0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbmZvcm1hdGlvbj5cbiAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1jb2x1bW4gby1kYXRhc2V0LWRldGFpbF9faW5mb3JtYXRpb25cIj5cbiAgICA8ZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPHNwYW4+e3sgZGF0YXNldC5kZXNjcmlwdGlvbiA/PyAoJ0BwcnkuZGF0YXNldC52ZXJzaW9uLm5vdFByb3ZpZGVkJyB8IGkxOG4pIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoYWN0aXZlVmVyc2lvbiQgfCBhc3luYzsgYXMgYWN0aXZlVmVyc2lvbikge1xuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y3Rpb25EYXRlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgKGFjdGl2ZVZlcnNpb24/LnByb2R1Y3Rpb25EYXRlIHwgZGF0ZTogJ2RkLU1NLXl5eXksIEhIOm1tJykgPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y2VyJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGFjdGl2ZVZlcnNpb24/LnByb2R1Y2VyID8/ICgnQHByeS5kYXRhc2V0LnZlcnNpb24ubm90UHJvdmlkZWQnIHwgaTE4bikgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5hZGRpdGlvbmFsSW5mb3JtYXRpb24nIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1pbmZvcm1hdGlvblwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJhY3RpdmVWZXJzaW9uPy5hZGRpdGlvbmFsSW5mb3JtYXRpb24gPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB8IG1kVG9IdG1sXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYS1wXCI+XG4gICAgICAgIDxwPnt7ICdAcHJ5LmRhdGFzZXQubm9BY3RpdmVWZXJzaW9uJyB8IGkxOG4gfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZT5cbiAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1jb250YWluZXJcIj5cbiAgICA8cHJ5LWRhc2hib2FyZCBbc3RhdGljRGFzaGJvYXJkXT1cInsgd2lkZ2V0czogW3dpZGdldE1hbmlmZXN0Wyd0YWJsZSddXSB9XCI+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI21hcD5cbiAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1jb250YWluZXJcIj5cbiAgICA8cHJ5LWRhc2hib2FyZCBbc3RhdGljRGFzaGJvYXJkXT1cInsgd2lkZ2V0czogW3dpZGdldE1hbmlmZXN0WydtYXAnXV0gfVwiPjwvcHJ5LWRhc2hib2FyZD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkYXRhc2V0VmVyc2lvbnM+XG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVWZXJzaW9uSWQkIHwgYXN5bmMgYXMgYWN0aXZlVmVyc2lvbklkXCIgY2xhc3M9XCJkYXRhc2V0LWRldGFpbF9fdGFibGUgdGFibGUtY29udGFpbmVyXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgPGNhcHRpb24+XG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuXG4gICAgICAgIH19LFxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFjdGlvbi5zb3J0YWJsZUNvbHVtbkhlYWRlcicgfCBpMThuXG4gICAgICAgIH19XG4gICAgICA8L2NhcHRpb24+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnRpdGxlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LmRhdGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQuc3RhdHVzJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHZlcnNpb24gb2YgZGF0YXNldFZlcnNpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGFuZWwodmVyc2lvbilcIlxuICAgICAgICAgIFtjbGFzcy4tc2VsZWN0ZWRdPVwidmVyc2lvbi5pZCA9PT0gc2VsZWN0ZWRWZXJzaW9uPy5pZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7eyB2ZXJzaW9uLnZlcnNpb24gfX1cbiAgICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cImFjdGl2ZVZlcnNpb25JZCA9PT0gdmVyc2lvbi5pZFwiIGljb25Tdmc9XCJjaGVja1wiIGNsYXNzPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImEtdG9vbHRpcFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCJ2ZXJzaW9uLmxhc3RNb2RpZmllZCB8IHNpbmNlRGF0ZTogeyBvbmx5TG9jYWxlOiB0cnVlIH1cIlxuICAgICAgICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgc2luY2VEYXRlOiB7IG9ubHlMb2NhbGU6IHRydWUgfSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoYWN0aXZlVmVyc2lvbklkID09PSB2ZXJzaW9uLmlkXG4gICAgICAgICAgICAgICAgPyAnQHByeS5kYXRhc2V0LnZlcnNpb24uY3VycmVudGx5QWN0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ0BwcnkuZGF0YXNldC52ZXJzaW9uLicgKyB2ZXJzaW9uLnN0YXRlXG4gICAgICAgICAgICAgICkgfCBpMThuXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cInZlcnNpb24uc3RhdGUgIT09ICdERUxFVElORydcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1tZFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5kYXRhc2V0LnRvb2x0aXAuJyArIGdldFZlcnNpb25Ub29sdGlwQ29udGVudCh2ZXJzaW9uLCBhY3RpdmVWZXJzaW9uSWQpIHwgaTE4blwiXG4gICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+aTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIHZlcnNpb24uc3RhdGUgIT09ICdMT0FESU5HJyAmJlxuICAgICAgICAgICAgICAgIHZlcnNpb24uc3RhdGUgIT09ICdJTkRFWElORycgJiZcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLnN0YXRlICE9PSAnRVJST1InICYmXG4gICAgICAgICAgICAgICAgdmVyc2lvbi5zdGF0ZSAhPT0gJ0RFTEVUSU5HJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoY2FuTW9kaWZ5JCB8IGFzeW5jKSAmJiAodmVyc2lvbi5zdGF0ZSA9PT0gJ0FDVElWRScgfHwgdmVyc2lvbi5zdGF0ZSA9PT0gJ0lOQUNUSVZFJylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbGlzdC1kYXRhc2V0JywgYWN0aW9uOiAnYWN0aXZhdGUnIH1cIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkFjdGlvbigkZXZlbnQsIHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uJyArIHZlcnNpb24uc3RhdGUgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC50b29sdGlwLmludmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ0BwcnkuZGF0YXNldC50b29sdGlwLnZhbGlkYXRlQnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmVyc2lvbi5oYXNXYXJuaW5ncyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29uc3VsdEVycm9ycygkZXZlbnQsIHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAodmVyc2lvbi5zdGF0ZSA9PT0gJ0VSUk9SJyA/ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLkVSUk9SJyA6ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLldBUk5JTkcnKVxuICAgICAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChjYW5Nb2RpZnkkIHwgYXN5bmMpICYmXG4gICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdFUlJPUicgfHwgdmVyc2lvbi5zdGF0ZSA9PT0gJ0lOQUNUSVZFJylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSBhLWJ0bi0taWNvbi10ZXh0IG5nLXN0YXItaW5zZXJ0ZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhc2tEZWxldGUodmVyc2lvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5kYXRhc2V0LmJ1dHRvbkFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNb2RhbFN0YXR1c1wiPlxuICA8cHJ5LW1vZGFsLXN0YXR1cyBbdmVyc2lvbl09XCJzZWxlY3RlZERhdGFzZXRWZXJzaW9uXCIgKGdvdG9Db25zdWx0KT1cImdvVG9Db25zdWx0KCRldmVudClcIj48L3ByeS1tb2RhbC1zdGF0dXM+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -2,10 +2,10 @@ import { Component, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class PryDatasetCssComponent {
4
4
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryDatasetCssComponent, selector: "pry-dataset-css", ngImport: i0, template: '', isInline: true, styles: [".o-pry-dataset{margin:0;padding:0}.o-pry-dataset li{list-style:none}.dataset-layout{display:flex;flex-direction:column;align-items:center}.dataset-layout__content{width:100%;padding:.625rem 1.25rem 3.125rem;height:100%;overflow:auto}.o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-gap:.625rem;column-gap:1.5rem;row-gap:2rem;padding-bottom:9.375rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset__item{display:flex;flex-direction:column;align-items:stretch}.o-dataset-layout{position:relative;overflow:hidden;height:100%}\n", ".o-pry-dataset-card{display:flex;flex-direction:column;align-items:stretch;position:relative;margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;height:9.375rem}.o-pry-dataset-card:hover{cursor:pointer}.o-pry-dataset-card:hover .o-pry-dataset-card__footer pry-icon{visibility:visible;opacity:1}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__description-container{position:relative;width:100%}.o-pry-dataset-card__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-pry-dataset-card__txt{flex-grow:1;padding:.625rem .9375rem}.o-pry-dataset-card__txt .a-h3{font-size:.875rem}.o-pry-dataset-card__txt .a-p{font-size:.8125rem}.o-pry-dataset-card__txt .a-p.-date{margin-bottom:0}.o-pry-dataset-card__footer{display:flex;align-items:center;justify-content:center}.o-pry-dataset-card__footer .a-btn{margin-left:1.25rem}.o-pry-dataset-card__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail .o-dataset-layout__panel .version-information h1,pry-dataset-detail .o-dataset-layout__panel .version-information h2,pry-dataset-detail .o-dataset-layout__panel .version-information h3,pry-dataset-detail .o-dataset-layout__panel .version-information h4,pry-dataset-detail .o-dataset-layout__panel .version-information h5,pry-dataset-detail .o-dataset-layout__panel .version-information h6{padding:0;margin:0;color:#253043}pry-dataset-detail .o-dataset-layout__panel .version-information h5{font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information span,pry-dataset-detail .o-dataset-layout__panel .version-information p{font-size:.875rem;color:#263340;white-space:pre-wrap}pry-dataset-detail .o-dataset-layout__panel .version-information div{padding-bottom:10px}pry-dataset-detail .o-dataset-layout__panel .version-information ul,pry-dataset-detail .o-dataset-layout__panel .version-information ol{margin:0;line-height:1rem}pry-dataset-detail .o-dataset-layout__panel .version-information li{color:#253043;font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information table{border-collapse:collapse}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr td{padding:.75rem .5rem;text-align:left}pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .o-dataset-layout{display:flex}pry-dataset-detail .o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem;flex:1}pry-dataset-detail .o-dataset-layout__panel{width:20.625rem;border-left:solid 1px #D8E7F7;padding:.625rem;font-size:.875rem;color:#263340}pry-dataset-detail .o-dataset-layout__panel .a-label{font-weight:700}pry-dataset-detail .o-dataset-layout .panel__content{gap:.9375rem}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .m-info-icon{margin:0 .5rem}.o-dataset-detail{height:80%}.o-dataset-detail__content{height:100%;margin:0 2rem}.o-dataset-detail__information{padding:.625rem;font-size:.875rem;color:#263340;background:#fff;border-radius:4px;gap:.9375rem}.o-dataset-detail__information .a-label{font-weight:700}.o-dataset-detail pry-tab-group .o-tabs{height:100%}.o-dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}.o-dataset-detail tr{height:1.875rem}.o-dataset-detail tr.-selected{background-color:#f5f7f9}.o-dataset-detail td .a-btn+.a-btn{margin-left:.625rem}\n", ".o-dataset-version-form .a-label{font-weight:700}\n"], encapsulation: i0.ViewEncapsulation.None }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryDatasetCssComponent, selector: "pry-dataset-css", ngImport: i0, template: '', isInline: true, styles: [".o-pry-dataset{margin:0;padding:0}.o-pry-dataset li{list-style:none}.dataset-layout{display:flex;flex-direction:column;align-items:center}.dataset-layout__content{width:100%;padding:.625rem 1.25rem 3.125rem;height:100%;overflow:auto}.o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-gap:.625rem;column-gap:1.5rem;row-gap:2rem;padding-bottom:9.375rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset__item{display:flex;flex-direction:column;align-items:stretch}.o-dataset-layout{position:relative;overflow:hidden;height:100%}\n", ".o-pry-dataset-card{display:flex;flex-direction:column;align-items:stretch;position:relative;margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;height:9.375rem}.o-pry-dataset-card:hover{cursor:pointer}.o-pry-dataset-card:hover .o-pry-dataset-card__footer pry-icon{visibility:visible;opacity:1}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__description-container{position:relative;width:100%}.o-pry-dataset-card__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-pry-dataset-card__txt{flex-grow:1;padding:.625rem .9375rem}.o-pry-dataset-card__txt .a-h3{font-size:.875rem}.o-pry-dataset-card__txt .a-p{font-size:.8125rem}.o-pry-dataset-card__txt .a-p.-date{margin-bottom:0}.o-pry-dataset-card__footer{display:flex;align-items:center;justify-content:center}.o-pry-dataset-card__footer .a-btn{margin-left:1.25rem}.o-pry-dataset-card__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-pry-dataset-card .dataset-name{width:16.875rem}.o-pry-dataset-card .dataset-name.a-tooltip[data-tooltip]:after{top:calc(100% - 15px);max-width:18.75rem;word-break:break-word}\n", "pry-dataset-detail .o-dataset-layout__panel .version-information h1,pry-dataset-detail .o-dataset-layout__panel .version-information h2,pry-dataset-detail .o-dataset-layout__panel .version-information h3,pry-dataset-detail .o-dataset-layout__panel .version-information h4,pry-dataset-detail .o-dataset-layout__panel .version-information h5,pry-dataset-detail .o-dataset-layout__panel .version-information h6{padding:0;margin:0;color:#253043}pry-dataset-detail .o-dataset-layout__panel .version-information h5{font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information span,pry-dataset-detail .o-dataset-layout__panel .version-information p{font-size:.875rem;color:#263340;white-space:pre-wrap}pry-dataset-detail .o-dataset-layout__panel .version-information div{padding-bottom:10px}pry-dataset-detail .o-dataset-layout__panel .version-information ul,pry-dataset-detail .o-dataset-layout__panel .version-information ol{margin:0;line-height:1rem}pry-dataset-detail .o-dataset-layout__panel .version-information li{color:#253043;font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information table{border-collapse:collapse}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr td{padding:.75rem .5rem;text-align:left}pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .o-dataset-layout{display:flex}pry-dataset-detail .o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem;flex:1}pry-dataset-detail .o-dataset-layout__panel{width:20.625rem;border-left:solid 1px #D8E7F7;padding:.625rem;font-size:.875rem;color:#263340}pry-dataset-detail .o-dataset-layout__panel .a-label{font-weight:700}pry-dataset-detail .o-dataset-layout .panel__content{gap:.9375rem}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .m-info-icon{margin:0 .5rem}.o-dataset-detail{height:80%}.o-dataset-detail__content{height:100%;margin:0 2rem}.o-dataset-detail__information{padding:.625rem;font-size:.875rem;color:#263340;background:#fff;border-radius:4px;gap:.9375rem}.o-dataset-detail__information .a-label{font-weight:700}.o-dataset-detail pry-tab-group .o-tabs{height:100%}.o-dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}.o-dataset-detail tr{height:1.875rem}.o-dataset-detail tr.-selected{background-color:#f5f7f9}.o-dataset-detail td .a-btn+.a-btn{margin-left:.625rem}\n", ".o-dataset-version-form .a-label{font-weight:700}\n"], encapsulation: i0.ViewEncapsulation.None }); }
6
6
  }
7
7
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetCssComponent, decorators: [{
8
8
  type: Component,
9
- args: [{ selector: 'pry-dataset-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-pry-dataset{margin:0;padding:0}.o-pry-dataset li{list-style:none}.dataset-layout{display:flex;flex-direction:column;align-items:center}.dataset-layout__content{width:100%;padding:.625rem 1.25rem 3.125rem;height:100%;overflow:auto}.o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-gap:.625rem;column-gap:1.5rem;row-gap:2rem;padding-bottom:9.375rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset__item{display:flex;flex-direction:column;align-items:stretch}.o-dataset-layout{position:relative;overflow:hidden;height:100%}\n", ".o-pry-dataset-card{display:flex;flex-direction:column;align-items:stretch;position:relative;margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;height:9.375rem}.o-pry-dataset-card:hover{cursor:pointer}.o-pry-dataset-card:hover .o-pry-dataset-card__footer pry-icon{visibility:visible;opacity:1}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__description-container{position:relative;width:100%}.o-pry-dataset-card__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-pry-dataset-card__txt{flex-grow:1;padding:.625rem .9375rem}.o-pry-dataset-card__txt .a-h3{font-size:.875rem}.o-pry-dataset-card__txt .a-p{font-size:.8125rem}.o-pry-dataset-card__txt .a-p.-date{margin-bottom:0}.o-pry-dataset-card__footer{display:flex;align-items:center;justify-content:center}.o-pry-dataset-card__footer .a-btn{margin-left:1.25rem}.o-pry-dataset-card__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail .o-dataset-layout__panel .version-information h1,pry-dataset-detail .o-dataset-layout__panel .version-information h2,pry-dataset-detail .o-dataset-layout__panel .version-information h3,pry-dataset-detail .o-dataset-layout__panel .version-information h4,pry-dataset-detail .o-dataset-layout__panel .version-information h5,pry-dataset-detail .o-dataset-layout__panel .version-information h6{padding:0;margin:0;color:#253043}pry-dataset-detail .o-dataset-layout__panel .version-information h5{font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information span,pry-dataset-detail .o-dataset-layout__panel .version-information p{font-size:.875rem;color:#263340;white-space:pre-wrap}pry-dataset-detail .o-dataset-layout__panel .version-information div{padding-bottom:10px}pry-dataset-detail .o-dataset-layout__panel .version-information ul,pry-dataset-detail .o-dataset-layout__panel .version-information ol{margin:0;line-height:1rem}pry-dataset-detail .o-dataset-layout__panel .version-information li{color:#253043;font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information table{border-collapse:collapse}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr td{padding:.75rem .5rem;text-align:left}pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .o-dataset-layout{display:flex}pry-dataset-detail .o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem;flex:1}pry-dataset-detail .o-dataset-layout__panel{width:20.625rem;border-left:solid 1px #D8E7F7;padding:.625rem;font-size:.875rem;color:#263340}pry-dataset-detail .o-dataset-layout__panel .a-label{font-weight:700}pry-dataset-detail .o-dataset-layout .panel__content{gap:.9375rem}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .m-info-icon{margin:0 .5rem}.o-dataset-detail{height:80%}.o-dataset-detail__content{height:100%;margin:0 2rem}.o-dataset-detail__information{padding:.625rem;font-size:.875rem;color:#263340;background:#fff;border-radius:4px;gap:.9375rem}.o-dataset-detail__information .a-label{font-weight:700}.o-dataset-detail pry-tab-group .o-tabs{height:100%}.o-dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}.o-dataset-detail tr{height:1.875rem}.o-dataset-detail tr.-selected{background-color:#f5f7f9}.o-dataset-detail td .a-btn+.a-btn{margin-left:.625rem}\n", ".o-dataset-version-form .a-label{font-weight:700}\n"] }]
9
+ args: [{ selector: 'pry-dataset-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-pry-dataset{margin:0;padding:0}.o-pry-dataset li{list-style:none}.dataset-layout{display:flex;flex-direction:column;align-items:center}.dataset-layout__content{width:100%;padding:.625rem 1.25rem 3.125rem;height:100%;overflow:auto}.o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-gap:.625rem;column-gap:1.5rem;row-gap:2rem;padding-bottom:9.375rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset__item{display:flex;flex-direction:column;align-items:stretch}.o-dataset-layout{position:relative;overflow:hidden;height:100%}\n", ".o-pry-dataset-card{display:flex;flex-direction:column;align-items:stretch;position:relative;margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;height:9.375rem}.o-pry-dataset-card:hover{cursor:pointer}.o-pry-dataset-card:hover .o-pry-dataset-card__footer pry-icon{visibility:visible;opacity:1}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__description-container{position:relative;width:100%}.o-pry-dataset-card__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-pry-dataset-card__txt{flex-grow:1;padding:.625rem .9375rem}.o-pry-dataset-card__txt .a-h3{font-size:.875rem}.o-pry-dataset-card__txt .a-p{font-size:.8125rem}.o-pry-dataset-card__txt .a-p.-date{margin-bottom:0}.o-pry-dataset-card__footer{display:flex;align-items:center;justify-content:center}.o-pry-dataset-card__footer .a-btn{margin-left:1.25rem}.o-pry-dataset-card__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-pry-dataset-card .dataset-name{width:16.875rem}.o-pry-dataset-card .dataset-name.a-tooltip[data-tooltip]:after{top:calc(100% - 15px);max-width:18.75rem;word-break:break-word}\n", "pry-dataset-detail .o-dataset-layout__panel .version-information h1,pry-dataset-detail .o-dataset-layout__panel .version-information h2,pry-dataset-detail .o-dataset-layout__panel .version-information h3,pry-dataset-detail .o-dataset-layout__panel .version-information h4,pry-dataset-detail .o-dataset-layout__panel .version-information h5,pry-dataset-detail .o-dataset-layout__panel .version-information h6{padding:0;margin:0;color:#253043}pry-dataset-detail .o-dataset-layout__panel .version-information h5{font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information span,pry-dataset-detail .o-dataset-layout__panel .version-information p{font-size:.875rem;color:#263340;white-space:pre-wrap}pry-dataset-detail .o-dataset-layout__panel .version-information div{padding-bottom:10px}pry-dataset-detail .o-dataset-layout__panel .version-information ul,pry-dataset-detail .o-dataset-layout__panel .version-information ol{margin:0;line-height:1rem}pry-dataset-detail .o-dataset-layout__panel .version-information li{color:#253043;font-size:.875rem}pry-dataset-detail .o-dataset-layout__panel .version-information table{border-collapse:collapse}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}pry-dataset-detail .o-dataset-layout__panel .version-information table tbody tr td{padding:.75rem .5rem;text-align:left}pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .o-dataset-layout{display:flex}pry-dataset-detail .o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem;flex:1}pry-dataset-detail .o-dataset-layout__panel{width:20.625rem;border-left:solid 1px #D8E7F7;padding:.625rem;font-size:.875rem;color:#263340}pry-dataset-detail .o-dataset-layout__panel .a-label{font-weight:700}pry-dataset-detail .o-dataset-layout .panel__content{gap:.9375rem}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .m-info-icon{margin:0 .5rem}.o-dataset-detail{height:80%}.o-dataset-detail__content{height:100%;margin:0 2rem}.o-dataset-detail__information{padding:.625rem;font-size:.875rem;color:#263340;background:#fff;border-radius:4px;gap:.9375rem}.o-dataset-detail__information .a-label{font-weight:700}.o-dataset-detail pry-tab-group .o-tabs{height:100%}.o-dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}.o-dataset-detail tr{height:1.875rem}.o-dataset-detail tr.-selected{background-color:#f5f7f9}.o-dataset-detail td .a-btn+.a-btn{margin-left:.625rem}\n", ".o-dataset-version-form .a-label{font-weight:700}\n"] }]
10
10
  }] });
11
11
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvc3R5bGUvY3NzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVE3RCxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7a0dBQXRCLHNCQUFzQix1REFKdkIsRUFBRTs7MkZBSUQsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1kYXRhc2V0LWNzcycsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vX28tcHJ5LWRhdGFzZXQuc2NzcycsICcuL19vLXByeS1kYXRhc2V0LWNhcmQuc2NzcycsICcuL19vLXByeS1kYXRhc2V0LWRldGFpbC5zY3NzJywgJy4vX28tcHJ5LWRhdGFzZXQtdmVyc2lvbi1mb3JtLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBQcnlEYXRhc2V0Q3NzQ29tcG9uZW50IHt9XG4iXX0=
@@ -3,9 +3,10 @@ import { PRY_DIALOG_DATA } from '../../overlay/dialog.service';
3
3
  import { DashboardActions } from '../../../../dashboard/store/dashboard.actions';
4
4
  import { DataSourceSelectors } from '../../../store/data-source/data-source.selectors';
5
5
  import { getCommonDatasourceGroupsForManifest } from '../share.utils';
6
- import { BehaviorSubject, map } from 'rxjs';
6
+ import { BehaviorSubject, map, combineLatest } from 'rxjs';
7
7
  import equal from 'fast-deep-equal/es6';
8
8
  import { DataSourceActions } from '../../../store/data-source/data-source.actions';
9
+ import { DashboardSelectors } from '../../../../dashboard/store/dashboard.selectors';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@ngrx/store";
11
12
  import * as i2 from "../../overlay/dialog-ref";
@@ -24,9 +25,12 @@ export class PryAccessRightsShareModalComponent {
24
25
  this.store.dispatch(DataSourceActions.dataset.loadDataset());
25
26
  this.manifest = this.data.manifest;
26
27
  this.accessRightsByGroup = { ...this.manifest.accessRightsByGroup };
27
- this.allowedShareGroups$ = this.store.select(DataSourceSelectors.datasets).pipe(map((datasets) => {
28
- return this.manifest.datasource.length > 0
29
- ? getCommonDatasourceGroupsForManifest(this.manifest, datasets)
28
+ this.allowedShareGroups$ = combineLatest([
29
+ this.store.select(DataSourceSelectors.datasets),
30
+ this.store.select(DashboardSelectors.currentManifest)
31
+ ]).pipe(map(([datasets, current]) => {
32
+ return current && current.datasource.length > 0
33
+ ? getCommonDatasourceGroupsForManifest(current, datasets)
30
34
  : null;
31
35
  }));
32
36
  }
@@ -91,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
91
95
  type: ViewChild,
92
96
  args: ['crossVisibility']
93
97
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwvYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwvYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7QUFNbkYsTUFBTSxPQUFPLGtDQUFrQztJQVk3QyxZQUNVLEtBQWlCLEVBQ2pCLFNBQTJELEVBRTNELElBRVA7UUFMTyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQWtEO1FB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a0NBQWtDLG1FQWVuQyxlQUFlO2tHQWZkLGtDQUFrQyxrYkNoQi9DLCs4Q0F1Q0E7OzJGRHZCYSxrQ0FBa0M7a0JBSjlDLFNBQVM7K0JBQ0UsK0JBQStCOzswQkFrQnRDLE1BQU07MkJBQUMsZUFBZTt5Q0FSSCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0MsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNDLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDWSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByeURpYWxvZ1JlZiB9IGZyb20gJy4uLy4uL292ZXJsYXkvZGlhbG9nLXJlZic7XG5pbXBvcnQgeyBQUllfRElBTE9HX0RBVEEgfSBmcm9tICcuLi8uLi9vdmVybGF5L2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IGdldENvbW1vbkRhdGFzb3VyY2VHcm91cHNGb3JNYW5pZmVzdCB9IGZyb20gJy4uL3NoYXJlLnV0aWxzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFjY2Vzc1JpZ2h0c1NoYXJlTW9kYWxDb21wb25lbnQge1xuICBtYW5pZmVzdDogTWFuaWZlc3REZXNjcmlwdGlvbjtcbiAgYWNjZXNzUmlnaHRzQnlHcm91cDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG5cbiAgYWxsb3dlZFNoYXJlR3JvdXBzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IG51bGw+O1xuICBkaXNhYmxlU2hhcmVCdXR0b24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY29uZmlybScpIGNvbmZpcm0hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc3VibWl0Jykgc3VibWl0ITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nyb3NzJykgY3Jvc3MhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3NWaXNpYmlsaXR5JykgY3Jvc3NWaXNpYmlsaXR5ITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogUHJ5RGlhbG9nUmVmPFByeUFjY2Vzc1JpZ2h0c1NoYXJlTW9kYWxDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoUFJZX0RJQUxPR19EQVRBKVxuICAgIHByaXZhdGUgZGF0YToge1xuICAgICAgbWFuaWZlc3Q6IE1hbmlmZXN0RGVzY3JpcHRpb247XG4gICAgfVxuICApIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5tYW5pZmVzdCA9IHRoaXMuZGF0YS5tYW5pZmVzdDtcbiAgICB0aGlzLmFjY2Vzc1JpZ2h0c0J5R3JvdXAgPSB7IC4uLnRoaXMubWFuaWZlc3QuYWNjZXNzUmlnaHRzQnlHcm91cCB9O1xuXG4gICAgdGhpcy5hbGxvd2VkU2hhcmVHcm91cHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5kYXRhc2V0cykucGlwZShcbiAgICAgIG1hcCgoZGF0YXNldHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFuaWZlc3QuZGF0YXNvdXJjZS5sZW5ndGggPiAwXG4gICAgICAgICAgPyBnZXRDb21tb25EYXRhc291cmNlR3JvdXBzRm9yTWFuaWZlc3QodGhpcy5tYW5pZmVzdCwgZGF0YXNldHMpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlQWNjZXNzUmlnaHRzKCRldmVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9KSB7XG4gICAgdGhpcy5hY2Nlc3NSaWdodHNCeUdyb3VwID0gJGV2ZW50O1xuICAgIHRoaXMudXBkYXRlRGlzYWJsZUJ1dHRvblZhbHVlKCk7XG4gIH1cblxuICB1cGRhdGVEaXNhYmxlQnV0dG9uVmFsdWUoKSB7XG4gICAgaWYgKGVxdWFsKHRoaXMuYWNjZXNzUmlnaHRzQnlHcm91cCwgdGhpcy5tYW5pZmVzdC5hY2Nlc3NSaWdodHNCeUdyb3VwKSkge1xuICAgICAgdGhpcy5kaXNhYmxlU2hhcmVCdXR0b24kLm5leHQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVTaGFyZUJ1dHRvbiQuZ2V0VmFsdWUoKSkge1xuICAgICAgICB0aGlzLmRpc2FibGVTaGFyZUJ1dHRvbiQubmV4dChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMuc2F2ZU1hbmlmZXN0KHtcbiAgICAgICAgaWQ6IHRoaXMubWFuaWZlc3QuaWQgPz8gJycsXG4gICAgICAgIG5hbWU6IHRoaXMubWFuaWZlc3QubmFtZSA/PyAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMubWFuaWZlc3QuZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICAgIGltYWdlOiB0aGlzLm1hbmlmZXN0LmltYWdlID8/ICcnLFxuICAgICAgICBhY2Nlc3NSaWdodHNCeUdyb3VwOiB0aGlzLmFjY2Vzc1JpZ2h0c0J5R3JvdXBcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRvZ2dsZU1vZGFsKCk7XG4gIH1cblxuICB0b2dnbGVNb2RhbCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgZm9jdXNDcm9zc0VsZW1lbnQoKSB7XG4gICAgaWYgKHRoaXMuY3Jvc3NWaXNpYmlsaXR5KSB7XG4gICAgICB0aGlzLmNyb3NzVmlzaWJpbGl0eT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmNyb3NzPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c1ZhbGlkYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuY29uZmlybSkge1xuICAgICAgdGhpcy5jb25maXJtLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5zdWJtaXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZyBzaGFyZSBhY2Nlc3MgcmlnaHRzXCI+XG4gIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlXCI+e3sgJ0BwcnkudG9vbGJveC5zaGFyZUFjY2Vzc1JpZ2h0cycgfCBpMThuIH19PC9oMj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlTW9kYWwoKVwiXG4gICAgICAgICNjcm9zc1Zpc2liaWxpdHlcbiAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cImZvY3VzVmFsaWRhdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cHJ5LWFjY2Vzcy1yaWdodHMtc2hhcmVcbiAgICBbKG5nTW9kZWwpXT1cImFjY2Vzc1JpZ2h0c0J5R3JvdXBcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUFjY2Vzc1JpZ2h0cygkZXZlbnQpXCJcbiAgICBbbWFuaWZlc3REZXNjcmlwdGlvbl09XCJtYW5pZmVzdFwiXG4gICAgW2FsbG93ZWRHcm91cHNdPVwiYWxsb3dlZFNoYXJlR3JvdXBzJCB8IGFzeW5jXCJcbiAgPjwvcHJ5LWFjY2Vzcy1yaWdodHMtc2hhcmU+XG4gIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCBtLWJ0bi1ncm91cCAtanVzdGlmeS1jZW50ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwidG9nZ2xlTW9kYWwoKVwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICNzdWJtaXRcbiAgICAgIChrZXlkb3duLnRhYik9XCJmb2N1c0Nyb3NzRWxlbWVudCgpXCJcbiAgICAgIChjbGljayk9XCJ2YWxpZGF0ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmRpc2FibGVTaGFyZUJ1dHRvbiQgfCBhc3luY1wiXG4gICAgPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwvYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwvYWNjZXNzLXJpZ2h0cy1zaGFyZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7O0FBTXJGLE1BQU0sT0FBTyxrQ0FBa0M7SUFZN0MsWUFDVSxLQUFpQixFQUNqQixTQUEyRCxFQUUzRCxJQUVQ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Q0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0FoRlUsa0NBQWtDLG1FQWVuQyxlQUFlO2tHQWZkLGtDQUFrQyxrYkNqQi9DLCs4Q0F1Q0E7OzJGRHRCYSxrQ0FBa0M7a0JBSjlDLFNBQVM7K0JBQ0UsK0JBQStCOzswQkFrQnRDLE1BQU07MkJBQUMsZUFBZTt5Q0FSSCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0MsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNDLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDWSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByeURpYWxvZ1JlZiB9IGZyb20gJy4uLy4uL292ZXJsYXkvZGlhbG9nLXJlZic7XG5pbXBvcnQgeyBQUllfRElBTE9HX0RBVEEgfSBmcm9tICcuLi8uLi9vdmVybGF5L2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IGdldENvbW1vbkRhdGFzb3VyY2VHcm91cHNGb3JNYW5pZmVzdCB9IGZyb20gJy4uL3NoYXJlLnV0aWxzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY2Vzcy1yaWdodHMtc2hhcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFjY2Vzc1JpZ2h0c1NoYXJlTW9kYWxDb21wb25lbnQge1xuICBtYW5pZmVzdDogTWFuaWZlc3REZXNjcmlwdGlvbjtcbiAgYWNjZXNzUmlnaHRzQnlHcm91cDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG5cbiAgYWxsb3dlZFNoYXJlR3JvdXBzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IG51bGw+O1xuICBkaXNhYmxlU2hhcmVCdXR0b24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY29uZmlybScpIGNvbmZpcm0hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc3VibWl0Jykgc3VibWl0ITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nyb3NzJykgY3Jvc3MhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3NWaXNpYmlsaXR5JykgY3Jvc3NWaXNpYmlsaXR5ITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogUHJ5RGlhbG9nUmVmPFByeUFjY2Vzc1JpZ2h0c1NoYXJlTW9kYWxDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoUFJZX0RJQUxPR19EQVRBKVxuICAgIHByaXZhdGUgZGF0YToge1xuICAgICAgbWFuaWZlc3Q6IE1hbmlmZXN0RGVzY3JpcHRpb247XG4gICAgfVxuICApIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5tYW5pZmVzdCA9IHRoaXMuZGF0YS5tYW5pZmVzdDtcbiAgICB0aGlzLmFjY2Vzc1JpZ2h0c0J5R3JvdXAgPSB7IC4uLnRoaXMubWFuaWZlc3QuYWNjZXNzUmlnaHRzQnlHcm91cCB9O1xuXG4gICAgdGhpcy5hbGxvd2VkU2hhcmVHcm91cHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmRhdGFzZXRzKSxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5jdXJyZW50TWFuaWZlc3QpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFzZXRzLCBjdXJyZW50XSkgPT4ge1xuICAgICAgICByZXR1cm4gY3VycmVudCAmJiBjdXJyZW50LmRhdGFzb3VyY2UubGVuZ3RoID4gMFxuICAgICAgICAgID8gZ2V0Q29tbW9uRGF0YXNvdXJjZUdyb3Vwc0Zvck1hbmlmZXN0KGN1cnJlbnQsIGRhdGFzZXRzKVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUFjY2Vzc1JpZ2h0cygkZXZlbnQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSkge1xuICAgIHRoaXMuYWNjZXNzUmlnaHRzQnlHcm91cCA9ICRldmVudDtcbiAgICB0aGlzLnVwZGF0ZURpc2FibGVCdXR0b25WYWx1ZSgpO1xuICB9XG5cbiAgdXBkYXRlRGlzYWJsZUJ1dHRvblZhbHVlKCkge1xuICAgIGlmIChlcXVhbCh0aGlzLmFjY2Vzc1JpZ2h0c0J5R3JvdXAsIHRoaXMubWFuaWZlc3QuYWNjZXNzUmlnaHRzQnlHcm91cCkpIHtcbiAgICAgIHRoaXMuZGlzYWJsZVNoYXJlQnV0dG9uJC5uZXh0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlU2hhcmVCdXR0b24kLmdldFZhbHVlKCkpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlU2hhcmVCdXR0b24kLm5leHQoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNhdmVNYW5pZmVzdCh7XG4gICAgICAgIGlkOiB0aGlzLm1hbmlmZXN0LmlkID8/ICcnLFxuICAgICAgICBuYW1lOiB0aGlzLm1hbmlmZXN0Lm5hbWUgPz8gJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLm1hbmlmZXN0LmRlc2NyaXB0aW9uID8/ICcnLFxuICAgICAgICBpbWFnZTogdGhpcy5tYW5pZmVzdC5pbWFnZSA/PyAnJyxcbiAgICAgICAgYWNjZXNzUmlnaHRzQnlHcm91cDogdGhpcy5hY2Nlc3NSaWdodHNCeUdyb3VwXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy50b2dnbGVNb2RhbCgpO1xuICB9XG5cbiAgdG9nZ2xlTW9kYWwoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIGZvY3VzQ3Jvc3NFbGVtZW50KCkge1xuICAgIGlmICh0aGlzLmNyb3NzVmlzaWJpbGl0eSkge1xuICAgICAgdGhpcy5jcm9zc1Zpc2liaWxpdHk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5jcm9zcz8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNWYWxpZGF0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm0pIHtcbiAgICAgIHRoaXMuY29uZmlybS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuc3VibWl0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tbW9kYWxcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgc2hhcmUgYWNjZXNzIHJpZ2h0c1wiPlxuICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPnt7ICdAcHJ5LnRvb2xib3guc2hhcmVBY2Nlc3NSaWdodHMnIHwgaTE4biB9fTwvaDI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKClcIlxuICAgICAgICAjY3Jvc3NWaXNpYmlsaXR5XG4gICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgICA+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlXG4gICAgWyhuZ01vZGVsKV09XCJhY2Nlc3NSaWdodHNCeUdyb3VwXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVBY2Nlc3NSaWdodHMoJGV2ZW50KVwiXG4gICAgW21hbmlmZXN0RGVzY3JpcHRpb25dPVwibWFuaWZlc3RcIlxuICAgIFthbGxvd2VkR3JvdXBzXT1cImFsbG93ZWRTaGFyZUdyb3VwcyQgfCBhc3luY1wiXG4gID48L3ByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlPlxuICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggbS1idG4tZ3JvdXAgLWp1c3RpZnktY2VudGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAjc3VibWl0XG4gICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICAoY2xpY2spPVwidmFsaWRhdGUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwidGhpcy5kaXNhYmxlU2hhcmVCdXR0b24kIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGUnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19