@provoly/hypervisor 2.3.0 → 2.3.2

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.
@@ -123,11 +123,11 @@ export class EventListComponent extends SubscriptionnerDirective {
123
123
  }
124
124
  }
125
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: i3.InfiniteScrollService }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i4.OverlayPositionBuilder }, { token: i4.CdkScrollable, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem", predicate: ["elem"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table journal-table-event\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>,&nbsp;</span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell td-journal-di\" #elem>\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\"\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i8.EventColumnOrderComponent, selector: "hvy-event-column-order" }, { kind: "component", type: i9.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i10.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.I18nPipe, name: "i18n" }, { kind: "pipe", type: i12.DisplayLocaleDateTime, name: "displayLocaleDatetime" }] }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventListComponent, selector: "hvy-event-list", inputs: { disableGotoDetail: "disableGotoDetail" }, viewQueries: [{ propertyName: "diTooltip", first: true, predicate: ["diTooltip"], descendants: true }, { propertyName: "elem", predicate: ["elem"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table journal-table-event\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th class=\"-eye-link\"><div></div></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>,&nbsp;</span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell td-journal-di\" #elem>\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\"\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i8.EventColumnOrderComponent, selector: "hvy-event-column-order" }, { kind: "component", type: i9.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i10.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.I18nPipe, name: "i18n" }, { kind: "pipe", type: i12.DisplayLocaleDateTime, name: "displayLocaleDatetime" }] }); }
127
127
  }
128
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventListComponent, decorators: [{
129
129
  type: Component,
130
- args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table journal-table-event\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>,&nbsp;</span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell td-journal-di\" #elem>\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\"\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n" }]
130
+ args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table journal-table-event\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$ | async\" (ngModelChange)=\"selectAll($event)\">\n <div>\n ({{(selectedIds$| async)?.length}})\n </div>\n </pry-checkbox>\n </th>\n <th>\n <hvy-event-column-order field=\"criticality\">{{ '@hvy.event.criticality.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"id\">{{ '@hvy.event.id' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"domain\">{{ '@hvy.event.domain.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"name\">{{ '@hvy.event.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n {{ '@hvy.event.dis' | i18n }}\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"source\">{{ '@hvy.event.source' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\"\n >{{ '@hvy.procedure.progress' | i18n }}\n </hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"category\">{{ '@hvy.event.category.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDateTable' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\"\n >{{ '@hvy.event.lastModificationDateTable' | i18n }}\n </hvy-event-column-order>\n </th>\n <th class=\"-eye-link\"><div></div></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$ | async; track event.id; let index = $index) {\n <tr class=\"o-hvy-events-table__line\" [class.-nogo]=\"disableGotoDetail\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell checkbox\">\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"\n ></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered icon\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell id\">\n {{ padId.fn(event.id) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell domain\">\n {{ event.domain ?? '' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell name\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n @if (event.equipment) {\n {{ event.equipment.name ? event.equipment.name : '' }} -\n {{ event.equipment ? ('@hvy.event.family.' + event.equipment.family | i18n) : '' }}\n }\n </div>\n <div class=\"o-hvy-events-table__line__cell__name__subsub\">\n <span>{{ event.address }}</span>\n @if(event.district) {\n @if(event.address) {\n <span>,&nbsp;</span>\n }\n <span>{{(\"@hvy.event.places.\" + event.district | i18n)}} </span>\n }\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell td-journal-di\" #elem>\n @if (getEventDisLength(event) > 0){\n <div class=\"o-hvy-last-events__services__item__icon\">\n <div class=\"event-dis-container\"\n (mouseenter)=\"showDiTooltip(event, index)\"\n (mouseleave)=\"showDiTooltip(event, index)\">\n <pry-icon iconSvg=\"service\" [height]=\"30\" [width]=\"30\"></pry-icon>\n <div class=\"event-dis-number\">\n {{eventDisLength}}\n </div>\n </div>\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered status\">\n <hvy-status-display [item]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell source\">\n {{ event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n) }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered progress\">{{ event.procedureProgress }} %</td>\n <td class=\"o-hvy-events-table__line__cell category\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">\n {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n @if (event.subCategory && event.subCategory !== 'NONE') {\n <div class=\"o-hvy-events-table__line__cell__name__sub\">\n {{ '@hvy.event.subCategory.' + event.subCategory | i18n }}\n </div>\n }\n </td>\n <td class=\"o-hvy-events-table__line__cell creation-date\">\n {{ event.creationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell modification-date\">\n {{ event.lastModificationDate | displayLocaleDatetime }}\n </td>\n <td class=\"o-hvy-events-table__line__cell link\">\n @if (!disableGotoDetail) {\n <a\n [routerLink]=\"EVENT_LINK.fn(event, _store)\"\n [title]=\"\n '@hvy.event.consult'\n | i18n: { howMany: Math.max(1, event.linkedEvents), plural: event.linkedEvents > 1 ? 's' : '' }\n \"\n >\n <div class=\"consult-link\">\n <pry-icon iconSvg=\"eye\" [height]=\"30\" [width]=\"40\"></pry-icon>\n @if (event.linkedEvents > 1) {\n <div class=\"indicator-badge\">{{ event.linkedEvents }}</div>\n }\n </div>\n </a>\n }\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #diTooltip let-event>\n <div class=\"event-dis-tooltip\">\n @for (di of event.dis; track di){\n <div>\n - {{di.id}} ({{'@hvy.procedure.status.' + di.status | i18n}})\n </div>\n }\n </div>\n</ng-template>\n\n" }]
131
131
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: i3.InfiniteScrollService }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i4.OverlayPositionBuilder }, { type: i4.CdkScrollable, decorators: [{
132
132
  type: Optional
133
133
  }, {
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
141
141
  type: ViewChildren,
142
142
  args: ['elem', { read: ElementRef }]
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUFFLElBQUksRUFDaEIsS0FBSyxFQUFFLFFBQVEsRUFFZixTQUFTLEVBQ1QsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUdMLGFBQWEsRUFHZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEVBQUUsRUFBRSxDQUFDLEtBQXdDLEVBQUUsS0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMs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dkhhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQXdCdkIsUUFBUTs7MEJBQUksSUFBSTt5Q0FiVixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ21DLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDSyxJQUFJO3NCQUEvQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3QsXG4gIElucHV0LCBPcHRpb25hbCwgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZX0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cEV2ZW50U3VtbWFyeSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9pbmZpbml0ZVNjcm9sbC5zZXJ2aWNlJztcbmltcG9ydCB7IHBhZElkIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9wYWQtaWQuZnVuY3Rpb24nO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2RrU2Nyb2xsYWJsZSxcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgT3ZlcmxheVJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7VGVtcGxhdGVQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9MSU5LID0ge1xuICBmbjogKGV2ZW50OiBIeXBFdmVudERldGFpbHMgfCBIeXBFdmVudFN1bW1hcnksIHN0b3JlOiBTdG9yZTxhbnk+KSA9PiBbJy4vJywgcGFkSWQuZm4oZXZlbnQuaWQpXVxufTtcblxuZXhwb3J0IGNvbnN0IHN0YXR1c09yZGVyIDogeyBba2V5OiBzdHJpbmddOiBudW1iZXJ9ID0ge1xuICBORVc6IDAsXG4gIEFTS0VEOiAxLFxuICBJTl9QUk9HUkVTUzogMixcbiAgRE9ORTogMyxcbiAgQ0FOQ0VMTEVEOiA0LFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudExpc3RDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxIeXBFdmVudERldGFpbHNbXT47XG4gIGV2ZW50RGlzTGVuZ3RoID0gMDtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgRVZFTlRfTElOSyA9IEVWRU5UX0xJTks7XG4gIF9zdG9yZSA9IHRoaXMuc3RvcmU7XG4gIGFsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgX2luaGliaXQgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlR290b0RldGFpbDogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnZGlUb29sdGlwJywge3N0YXRpYzogZmFsc2V9KSBkaVRvb2x0aXAhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdlbGVtJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGVsZW0hOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzY3JvbGw6IEluZmluaXRlU2Nyb2xsU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgc2Nyb2xsQ29udGFpbmVyOiBDZGtTY3JvbGxhYmxlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudDxDdXN0b21FdmVudD4od2luZG93LCAnam91cm5hbC1yZWZyZXNoJykucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG5ldyBDdXN0b21FdmVudChgam91cm5hbC1yZWZyZXNoYCwgeyBkZXRhaWw6IHRydWUgfSkpXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmxvYWQoe30pKTtcbiAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmV2ZW50cykucGlwZShtYXAoZXZlbnRzID0+IGV2ZW50cy5tYXAoZXZlbnQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIGRpczogZXZlbnQuZGlzPy5maWx0ZXIoZGkgPT4gISFkaSAmJiAhIWRpLmlkKS5zb3J0KGZ1bmN0aW9uIChhLGIpe1xuICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIHN0cmluZ10gLSBzdGF0dXNPcmRlcltiLnN0YXR1cyBhcyBzdHJpbmddKVxuICAgICAgfSlcbiAgICB9XG4gICAgfSkpKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLnNlbGVjdGVkSWRzKTtcbiAgICB0aGlzLmFsbFNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZXZlbnRzJCwgdGhpcy5zZWxlY3RlZElkcyRdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2V2ZW50cywgc2VsZWN0ZWRJZHNdKSA9PiBldmVudHMubGVuZ3RoID4gMCAmJiBldmVudHMuZmlsdGVyKChldikgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGV2LmlkKSkubGVuZ3RoID09PSAwXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zY3JvbGwuaXNFbmRPZlBhZ2UodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBFdmVudFNlbGVjdG9ycy5ub01vcmVFdmVudHMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmxvYWQoeyBuZXh0OiB0cnVlIH0pKTtcbiAgICAgICAgdGhpcy5faW5oaWJpdCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5faW5oaWJpdCA9IGZhbHNlLCAxMDAwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLl9pbmhpYml0ID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3QoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscywgJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5pbmhpYml0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2VsZWN0KHsgaWRzOiBbZXZlbnQuaWRdLCBjdW11bGF0aXZlOiB0cnVlIH0pKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzZWxlY3RBbGwoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuX2luaGliaXQpIHtcbiAgICAgIGNvbnN0IHRtcFN1YiA9IHRoaXMuZXZlbnRzJC5zdWJzY3JpYmUoKGV2ZW50cykgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5zZWxlY3QoeyBpZHM6ICRldmVudCA/IGV2ZW50cy5tYXAoKGV2KSA9PiBldi5pZCkgOiBbXSwgY3VtdWxhdGl2ZTogZmFsc2UgfSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRtcFN1Yi51bnN1YnNjcmliZSgpLCAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbmhpYml0KCkge1xuICAgIHRoaXMuX2luaGliaXQgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuX2luaGliaXQgPSBmYWxzZSksIDEwMCk7XG4gIH1cblxuICBnb1RvKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUdvdG9EZXRhaWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLkVWRU5UX0xJTksuZm4oZXZlbnQsIHRoaXMuc3RvcmUpKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZ2V0RXZlbnREaXNMZW5ndGgoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyl7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnREaXNMZW5ndGggPSAgZXZlbnQuZGlzPy5maWx0ZXIoZXZlID0+ICEhZXZlKS5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIHNob3dEaVRvb2x0aXAoZXZlbnQ6SHlwRXZlbnREZXRhaWxzLCBpbmRleDpudW1iZXIpe1xuICAgIGlmKCEhdGhpcy5vdmVybGF5UmVmKXtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtLmdldChpbmRleCkhKVxuICAgICAgICAud2l0aFNjcm9sbGFibGVDb250YWluZXJzKFt0aGlzLnNjcm9sbENvbnRhaW5lcl0gYXMgQ2RrU2Nyb2xsYWJsZVtdKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xuICAgICAgICAgIG9mZnNldFg6IC0yNSxcbiAgICAgICAgICBvZmZzZXRZOiAtMzUsXG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICB9XSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRpVG9vbHRpcCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCA8YW55PnsgJGltcGxpY2l0OiBldmVudCB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFkSWQgPSBwYWRJZDtcbn1cbiIsIjx0YWJsZSBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZSBqb3VybmFsLXRhYmxlLWV2ZW50XCI+XG4gIDx0aGVhZD5cbiAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2hlYWRlclwiPlxuICAgICAgPHRoIGNsYXNzPVwiLWNoZWNrYm94XCI+XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiYWxsU2VsZWN0ZWQkIHwgYXN5bmNcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAoe3soc2VsZWN0ZWRJZHMkfCBhc3luYyk/Lmxlbmd0aH19KVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ByeS1jaGVja2JveD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY3JpdGljYWxpdHlcIj57eyAnQGh2eS5ldmVudC5jcml0aWNhbGl0eS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImlkXCI+e3sgJ0BodnkuZXZlbnQuaWQnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiZG9tYWluXCI+e3sgJ0BodnkuZXZlbnQuZG9tYWluLm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwibmFtZVwiPnt7ICdAaHZ5LmV2ZW50Lm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIHt7ICdAaHZ5LmV2ZW50LmRpcycgfCBpMThuIH19XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInN0YXR1c1wiPnt7ICdAaHZ5LmV2ZW50LnN0YXR1cy5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInNvdXJjZVwiPnt7ICdAaHZ5LmV2ZW50LnNvdXJjZScgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJwcm9jZWR1cmVQcm9ncmVzc1wiXG4gICAgICAgICAgPnt7ICdAaHZ5LnByb2NlZHVyZS5wcm9ncmVzcycgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY2F0ZWdvcnlcIj57eyAnQGh2eS5ldmVudC5jYXRlZ29yeS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImNyZWF0aW9uRGF0ZVwiPnt7ICdAaHZ5LmV2ZW50LmNyZWF0aW9uRGF0ZVRhYmxlJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImxhc3RNb2RpZmljYXRpb25EYXRlXCJcbiAgICAgICAgICA+e3sgJ0BodnkuZXZlbnQubGFzdE1vZGlmaWNhdGlvbkRhdGVUYWJsZScgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgQGZvciAoZXZlbnQgb2YgZXZlbnRzJCB8IGFzeW5jOyB0cmFjayBldmVudC5pZDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVcIiBbY2xhc3MuLW5vZ29dPVwiZGlzYWJsZUdvdG9EZXRhaWxcIiAoY2xpY2spPVwiZ29UbyhldmVudClcIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIGNoZWNrYm94XCI+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgW25nTW9kZWxdPVwiKHNlbGVjdGVkSWRzJCB8IGFzeW5jKSEuaW5jbHVkZXMoZXZlbnQuaWQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoZXZlbnQsICRldmVudClcIlxuICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZCBpY29uXCI+XG4gICAgICAgICAgPGh2eS1pY29uLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCI+PC9odnktaWNvbi1kaXNwbGF5PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgaWRcIj5cbiAgICAgICAgICB7eyBwYWRJZC5mbihldmVudC5pZCkgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIGRvbWFpblwiPlxuICAgICAgICAgIHt7IGV2ZW50LmRvbWFpbiA/PyAnJyB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgbmFtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX21haW5cIj57eyBldmVudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbF9fbmFtZV9fc3ViXCI+XG4gICAgICAgICAgICBAaWYgKGV2ZW50LmVxdWlwbWVudCkge1xuICAgICAgICAgICAgICB7eyBldmVudC5lcXVpcG1lbnQubmFtZSA/IGV2ZW50LmVxdWlwbWVudC5uYW1lIDogJycgfX0gLVxuICAgICAgICAgICAgICB7eyBldmVudC5lcXVpcG1lbnQgPyAoJ0BodnkuZXZlbnQuZmFtaWx5LicgKyBldmVudC5lcXVpcG1lbnQuZmFtaWx5IHwgaTE4bikgOiAnJyB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YnN1YlwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgZXZlbnQuYWRkcmVzcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIEBpZihldmVudC5kaXN0cmljdCkge1xuICAgICAgICAgICAgICBAaWYoZXZlbnQuYWRkcmVzcykge1xuICAgICAgICAgICAgICAgIDxzcGFuPiwmbmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4+e3soXCJAaHZ5LmV2ZW50LnBsYWNlcy5cIiArIGV2ZW50LmRpc3RyaWN0IHwgaTE4bil9fSA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCB0ZC1qb3VybmFsLWRpXCIgI2VsZW0+XG4gICAgICAgICAgQGlmIChnZXRFdmVudERpc0xlbmd0aChldmVudCkgPiAwKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1sYXN0LWV2ZW50c19fc2VydmljZXNfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRpcy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dEaVRvb2x0aXAoZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0RpVG9vbHRpcChldmVudCwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJzZXJ2aWNlXCIgW2hlaWdodF09XCIzMFwiIFt3aWR0aF09XCIzMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICB7e2V2ZW50RGlzTGVuZ3RofX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZCBzdGF0dXNcIj5cbiAgICAgICAgICA8aHZ5LXN0YXR1cy1kaXNwbGF5IFtpdGVtXT1cImV2ZW50XCI+PC9odnktc3RhdHVzLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBzb3VyY2VcIj5cbiAgICAgICAgICB7eyBldmVudC5leHRlcm5hbFNvdXJjZVJlZiA/PyAoJ0BodnkuZXZlbnQuaHlwZXJ2aXNvcicgfCBpMThuKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkIHByb2dyZXNzXCI+e3sgZXZlbnQucHJvY2VkdXJlUHJvZ3Jlc3MgfX0gJTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjYXRlZ29yeVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX21haW5cIj5cbiAgICAgICAgICAgIHt7ICdAaHZ5LmV2ZW50LmNhdGVnb3J5LicgKyBldmVudC5jYXRlZ29yeSB8IGkxOG4gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGV2ZW50LnN1YkNhdGVnb3J5ICYmIGV2ZW50LnN1YkNhdGVnb3J5ICE9PSAnTk9ORScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPlxuICAgICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5zdWJDYXRlZ29yeS4nICsgZXZlbnQuc3ViQ2F0ZWdvcnkgfCBpMThuIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjcmVhdGlvbi1kYXRlXCI+XG4gICAgICAgICAge3sgZXZlbnQuY3JlYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBtb2RpZmljYXRpb24tZGF0ZVwiPlxuICAgICAgICAgIHt7IGV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlIHwgZGlzcGxheUxvY2FsZURhdGV0aW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBsaW5rXCI+XG4gICAgICAgICAgQGlmICghZGlzYWJsZUdvdG9EZXRhaWwpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIkVWRU5UX0xJTksuZm4oZXZlbnQsIF9zdG9yZSlcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgJ0BodnkuZXZlbnQuY29uc3VsdCdcbiAgICAgICAgICAgICAgICAgIHwgaTE4bjogeyBob3dNYW55OiBNYXRoLm1heCgxLCBldmVudC5saW5rZWRFdmVudHMpLCBwbHVyYWw6IGV2ZW50LmxpbmtlZEV2ZW50cyA+IDEgPyAncycgOiAnJyB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdWx0LWxpbmtcIj5cbiAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFtoZWlnaHRdPVwiMzBcIiBbd2lkdGhdPVwiNDBcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIEBpZiAoZXZlbnQubGlua2VkRXZlbnRzID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZGljYXRvci1iYWRnZVwiPnt7IGV2ZW50LmxpbmtlZEV2ZW50cyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICB9IEBlbXB0eSB7XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fZW1wdHlcIiBjb2xzcGFuPVwiNTBcIj5cbiAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5lbXB0eScgfCBpMThuIH19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPG5nLXRlbXBsYXRlICNkaVRvb2x0aXAgbGV0LWV2ZW50PlxuICA8ZGl2IGNsYXNzPVwiZXZlbnQtZGlzLXRvb2x0aXBcIj5cbiAgICBAZm9yIChkaSBvZiBldmVudC5kaXM7IHRyYWNrIGRpKXtcbiAgICAgIDxkaXY+XG4gICAgICAgIC0ge3tkaS5pZH19ICh7eydAaHZ5LnByb2NlZHVyZS5zdGF0dXMuJyArIGRpLnN0YXR1cyB8IGkxOG59fSlcbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUFFLElBQUksRUFDaEIsS0FBSyxFQUFFLFFBQVEsRUFFZixTQUFTLEVBQ1QsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUdMLGFBQWEsRUFHZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEVBQUUsRUFBRSxDQUFDLEtBQXdDLEVBQUUsS0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMs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dkhhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQXdCdkIsUUFBUTs7MEJBQUksSUFBSTt5Q0FiVixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ21DLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDSyxJQUFJO3NCQUEvQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3QsXG4gIElucHV0LCBPcHRpb25hbCwgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZX0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cEV2ZW50U3VtbWFyeSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9pbmZpbml0ZVNjcm9sbC5zZXJ2aWNlJztcbmltcG9ydCB7IHBhZElkIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9wYWQtaWQuZnVuY3Rpb24nO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2RrU2Nyb2xsYWJsZSxcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgT3ZlcmxheVJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7VGVtcGxhdGVQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9MSU5LID0ge1xuICBmbjogKGV2ZW50OiBIeXBFdmVudERldGFpbHMgfCBIeXBFdmVudFN1bW1hcnksIHN0b3JlOiBTdG9yZTxhbnk+KSA9PiBbJy4vJywgcGFkSWQuZm4oZXZlbnQuaWQpXVxufTtcblxuZXhwb3J0IGNvbnN0IHN0YXR1c09yZGVyIDogeyBba2V5OiBzdHJpbmddOiBudW1iZXJ9ID0ge1xuICBORVc6IDAsXG4gIEFTS0VEOiAxLFxuICBJTl9QUk9HUkVTUzogMixcbiAgRE9ORTogMyxcbiAgQ0FOQ0VMTEVEOiA0LFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudExpc3RDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxIeXBFdmVudERldGFpbHNbXT47XG4gIGV2ZW50RGlzTGVuZ3RoID0gMDtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgRVZFTlRfTElOSyA9IEVWRU5UX0xJTks7XG4gIF9zdG9yZSA9IHRoaXMuc3RvcmU7XG4gIGFsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgX2luaGliaXQgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlR290b0RldGFpbDogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnZGlUb29sdGlwJywge3N0YXRpYzogZmFsc2V9KSBkaVRvb2x0aXAhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdlbGVtJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGVsZW0hOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzY3JvbGw6IEluZmluaXRlU2Nyb2xsU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgc2Nyb2xsQ29udGFpbmVyOiBDZGtTY3JvbGxhYmxlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudDxDdXN0b21FdmVudD4od2luZG93LCAnam91cm5hbC1yZWZyZXNoJykucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG5ldyBDdXN0b21FdmVudChgam91cm5hbC1yZWZyZXNoYCwgeyBkZXRhaWw6IHRydWUgfSkpXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmxvYWQoe30pKTtcbiAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmV2ZW50cykucGlwZShtYXAoZXZlbnRzID0+IGV2ZW50cy5tYXAoZXZlbnQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIGRpczogZXZlbnQuZGlzPy5maWx0ZXIoZGkgPT4gISFkaSAmJiAhIWRpLmlkKS5zb3J0KGZ1bmN0aW9uIChhLGIpe1xuICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIHN0cmluZ10gLSBzdGF0dXNPcmRlcltiLnN0YXR1cyBhcyBzdHJpbmddKVxuICAgICAgfSlcbiAgICB9XG4gICAgfSkpKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLnNlbGVjdGVkSWRzKTtcbiAgICB0aGlzLmFsbFNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZXZlbnRzJCwgdGhpcy5zZWxlY3RlZElkcyRdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2V2ZW50cywgc2VsZWN0ZWRJZHNdKSA9PiBldmVudHMubGVuZ3RoID4gMCAmJiBldmVudHMuZmlsdGVyKChldikgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGV2LmlkKSkubGVuZ3RoID09PSAwXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zY3JvbGwuaXNFbmRPZlBhZ2UodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBFdmVudFNlbGVjdG9ycy5ub01vcmVFdmVudHMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmxvYWQoeyBuZXh0OiB0cnVlIH0pKTtcbiAgICAgICAgdGhpcy5faW5oaWJpdCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5faW5oaWJpdCA9IGZhbHNlLCAxMDAwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLl9pbmhpYml0ID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3QoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscywgJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5pbmhpYml0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2VsZWN0KHsgaWRzOiBbZXZlbnQuaWRdLCBjdW11bGF0aXZlOiB0cnVlIH0pKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzZWxlY3RBbGwoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuX2luaGliaXQpIHtcbiAgICAgIGNvbnN0IHRtcFN1YiA9IHRoaXMuZXZlbnRzJC5zdWJzY3JpYmUoKGV2ZW50cykgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5zZWxlY3QoeyBpZHM6ICRldmVudCA/IGV2ZW50cy5tYXAoKGV2KSA9PiBldi5pZCkgOiBbXSwgY3VtdWxhdGl2ZTogZmFsc2UgfSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRtcFN1Yi51bnN1YnNjcmliZSgpLCAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbmhpYml0KCkge1xuICAgIHRoaXMuX2luaGliaXQgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuX2luaGliaXQgPSBmYWxzZSksIDEwMCk7XG4gIH1cblxuICBnb1RvKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUdvdG9EZXRhaWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLkVWRU5UX0xJTksuZm4oZXZlbnQsIHRoaXMuc3RvcmUpKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZ2V0RXZlbnREaXNMZW5ndGgoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyl7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnREaXNMZW5ndGggPSAgZXZlbnQuZGlzPy5maWx0ZXIoZXZlID0+ICEhZXZlKS5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIHNob3dEaVRvb2x0aXAoZXZlbnQ6SHlwRXZlbnREZXRhaWxzLCBpbmRleDpudW1iZXIpe1xuICAgIGlmKCEhdGhpcy5vdmVybGF5UmVmKXtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtLmdldChpbmRleCkhKVxuICAgICAgICAud2l0aFNjcm9sbGFibGVDb250YWluZXJzKFt0aGlzLnNjcm9sbENvbnRhaW5lcl0gYXMgQ2RrU2Nyb2xsYWJsZVtdKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xuICAgICAgICAgIG9mZnNldFg6IC0yNSxcbiAgICAgICAgICBvZmZzZXRZOiAtMzUsXG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICB9XSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRpVG9vbHRpcCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCA8YW55PnsgJGltcGxpY2l0OiBldmVudCB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFkSWQgPSBwYWRJZDtcbn1cbiIsIjx0YWJsZSBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZSBqb3VybmFsLXRhYmxlLWV2ZW50XCI+XG4gIDx0aGVhZD5cbiAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2hlYWRlclwiPlxuICAgICAgPHRoIGNsYXNzPVwiLWNoZWNrYm94XCI+XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiYWxsU2VsZWN0ZWQkIHwgYXN5bmNcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAoe3soc2VsZWN0ZWRJZHMkfCBhc3luYyk/Lmxlbmd0aH19KVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ByeS1jaGVja2JveD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY3JpdGljYWxpdHlcIj57eyAnQGh2eS5ldmVudC5jcml0aWNhbGl0eS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImlkXCI+e3sgJ0BodnkuZXZlbnQuaWQnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiZG9tYWluXCI+e3sgJ0BodnkuZXZlbnQuZG9tYWluLm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwibmFtZVwiPnt7ICdAaHZ5LmV2ZW50Lm5hbWUnIHwgaTE4biB9fTwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIHt7ICdAaHZ5LmV2ZW50LmRpcycgfCBpMThuIH19XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInN0YXR1c1wiPnt7ICdAaHZ5LmV2ZW50LnN0YXR1cy5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cInNvdXJjZVwiPnt7ICdAaHZ5LmV2ZW50LnNvdXJjZScgfCBpMThuIH19PC9odnktZXZlbnQtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1ldmVudC1jb2x1bW4tb3JkZXIgZmllbGQ9XCJwcm9jZWR1cmVQcm9ncmVzc1wiXG4gICAgICAgICAgPnt7ICdAaHZ5LnByb2NlZHVyZS5wcm9ncmVzcycgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktZXZlbnQtY29sdW1uLW9yZGVyIGZpZWxkPVwiY2F0ZWdvcnlcIj57eyAnQGh2eS5ldmVudC5jYXRlZ29yeS5uYW1lJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImNyZWF0aW9uRGF0ZVwiPnt7ICdAaHZ5LmV2ZW50LmNyZWF0aW9uRGF0ZVRhYmxlJyB8IGkxOG4gfX08L2h2eS1ldmVudC1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LWV2ZW50LWNvbHVtbi1vcmRlciBmaWVsZD1cImxhc3RNb2RpZmljYXRpb25EYXRlXCJcbiAgICAgICAgICA+e3sgJ0BodnkuZXZlbnQubGFzdE1vZGlmaWNhdGlvbkRhdGVUYWJsZScgfCBpMThuIH19XG4gICAgICAgIDwvaHZ5LWV2ZW50LWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGggY2xhc3M9XCItZXllLWxpbmtcIj48ZGl2PjwvZGl2PjwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIEBmb3IgKGV2ZW50IG9mIGV2ZW50cyQgfCBhc3luYzsgdHJhY2sgZXZlbnQuaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgPHRyIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lXCIgW2NsYXNzLi1ub2dvXT1cImRpc2FibGVHb3RvRGV0YWlsXCIgKGNsaWNrKT1cImdvVG8oZXZlbnQpXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBjaGVja2JveFwiPlxuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIihzZWxlY3RlZElkcyQgfCBhc3luYykhLmluY2x1ZGVzKGV2ZW50LmlkKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGV2ZW50LCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWQgaWNvblwiPlxuICAgICAgICAgIDxodnktaWNvbi1kaXNwbGF5IFtldmVudF09XCJldmVudFwiPjwvaHZ5LWljb24tZGlzcGxheT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIGlkXCI+XG4gICAgICAgICAge3sgcGFkSWQuZm4oZXZlbnQuaWQpIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCBkb21haW5cIj5cbiAgICAgICAgICB7eyBldmVudC5kb21haW4gPz8gJycgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIG5hbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19tYWluXCI+e3sgZXZlbnQubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPlxuICAgICAgICAgICAgQGlmIChldmVudC5lcXVpcG1lbnQpIHtcbiAgICAgICAgICAgICAge3sgZXZlbnQuZXF1aXBtZW50Lm5hbWUgPyBldmVudC5lcXVpcG1lbnQubmFtZSA6ICcnIH19IC1cbiAgICAgICAgICAgICAge3sgZXZlbnQuZXF1aXBtZW50ID8gKCdAaHZ5LmV2ZW50LmZhbWlseS4nICsgZXZlbnQuZXF1aXBtZW50LmZhbWlseSB8IGkxOG4pIDogJycgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19zdWJzdWJcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGV2ZW50LmFkZHJlc3MgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYoZXZlbnQuZGlzdHJpY3QpIHtcbiAgICAgICAgICAgICAgQGlmKGV2ZW50LmFkZHJlc3MpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj4sJm5ic3A7PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuPnt7KFwiQGh2eS5ldmVudC5wbGFjZXMuXCIgKyBldmVudC5kaXN0cmljdCB8IGkxOG4pfX0gPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgdGQtam91cm5hbC1kaVwiICNlbGVtPlxuICAgICAgICAgIEBpZiAoZ2V0RXZlbnREaXNMZW5ndGgoZXZlbnQpID4gMCl7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktbGFzdC1ldmVudHNfX3NlcnZpY2VzX19pdGVtX19pY29uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1kaXMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93RGlUb29sdGlwKGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dEaVRvb2x0aXAoZXZlbnQsIGluZGV4KVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VydmljZVwiIFtoZWlnaHRdPVwiMzBcIiBbd2lkdGhdPVwiMzBcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRpcy1udW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3tldmVudERpc0xlbmd0aH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWQgc3RhdHVzXCI+XG4gICAgICAgICAgPGh2eS1zdGF0dXMtZGlzcGxheSBbaXRlbV09XCJldmVudFwiPjwvaHZ5LXN0YXR1cy1kaXNwbGF5PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgc291cmNlXCI+XG4gICAgICAgICAge3sgZXZlbnQuZXh0ZXJuYWxTb3VyY2VSZWYgPz8gKCdAaHZ5LmV2ZW50Lmh5cGVydmlzb3InIHwgaTE4bikgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZCBwcm9ncmVzc1wiPnt7IGV2ZW50LnByb2NlZHVyZVByb2dyZXNzIH19ICU8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgY2F0ZWdvcnlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19tYWluXCI+XG4gICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5jYXRlZ29yeS4nICsgZXZlbnQuY2F0ZWdvcnkgfCBpMThuIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChldmVudC5zdWJDYXRlZ29yeSAmJiBldmVudC5zdWJDYXRlZ29yeSAhPT0gJ05PTkUnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19zdWJcIj5cbiAgICAgICAgICAgICAge3sgJ0BodnkuZXZlbnQuc3ViQ2F0ZWdvcnkuJyArIGV2ZW50LnN1YkNhdGVnb3J5IHwgaTE4biB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgY3JlYXRpb24tZGF0ZVwiPlxuICAgICAgICAgIHt7IGV2ZW50LmNyZWF0aW9uRGF0ZSB8IGRpc3BsYXlMb2NhbGVEYXRldGltZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgbW9kaWZpY2F0aW9uLWRhdGVcIj5cbiAgICAgICAgICB7eyBldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IGRpc3BsYXlMb2NhbGVEYXRldGltZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgbGlua1wiPlxuICAgICAgICAgIEBpZiAoIWRpc2FibGVHb3RvRGV0YWlsKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJFVkVOVF9MSU5LLmZuKGV2ZW50LCBfc3RvcmUpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICdAaHZ5LmV2ZW50LmNvbnN1bHQnXG4gICAgICAgICAgICAgICAgICB8IGkxOG46IHsgaG93TWFueTogTWF0aC5tYXgoMSwgZXZlbnQubGlua2VkRXZlbnRzKSwgcGx1cmFsOiBldmVudC5saW5rZWRFdmVudHMgPiAxID8gJ3MnIDogJycgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3VsdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJleWVcIiBbaGVpZ2h0XT1cIjMwXCIgW3dpZHRoXT1cIjQwXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICBAaWYgKGV2ZW50LmxpbmtlZEV2ZW50cyA+IDEpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmRpY2F0b3ItYmFkZ2VcIj57eyBldmVudC5saW5rZWRFdmVudHMgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPHRyPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2VtcHR5XCIgY29sc3Bhbj1cIjUwXCI+XG4gICAgICAgICAgPGRpdj57eyAnQGh2eS5ldmVudC5sb2cuZW1wdHknIHwgaTE4biB9fTwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGlUb29sdGlwIGxldC1ldmVudD5cbiAgPGRpdiBjbGFzcz1cImV2ZW50LWRpcy10b29sdGlwXCI+XG4gICAgQGZvciAoZGkgb2YgZXZlbnQuZGlzOyB0cmFjayBkaSl7XG4gICAgICA8ZGl2PlxuICAgICAgICAtIHt7ZGkuaWR9fSAoe3snQGh2eS5wcm9jZWR1cmUuc3RhdHVzLicgKyBkaS5zdGF0dXMgfCBpMThufX0pXG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
@@ -219,7 +219,11 @@ export const frTranslations = {
219
219
  IN_PROGRESS: 'En cours',
220
220
  DONE: 'Terminé',
221
221
  CANCELLED: 'Annulé',
222
- OT_CLOSED: 'Terminé'
222
+ OT_CLOSED: 'Terminé',
223
+ active: {
224
+ true: 'Actif',
225
+ false: 'Inactif'
226
+ },
223
227
  }
224
228
  },
225
229
  associationModal: {
@@ -273,4 +277,4 @@ export const frTranslations = {
273
277
  }
274
278
  }
275
279
  };
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2ZyLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLElBQUksRUFBRSx5Q0FBeUM7YUFDaEQ7WUFDRCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLEVBQUUsRUFBRSxhQUFhO1lBQ2pCLElBQUksRUFBRSxXQUFXO1lBQ2pCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLFlBQVksRUFBRSxpQ0FBaUM7Z0JBQy9DLGtCQUFrQixFQUFFLHlCQUF5QjtnQkFDN0MsWUFBWSxFQUFFLGlCQUFpQjtnQkFDL0IsaUJBQWlCLEVBQUUsOEJBQThCO2dCQUNqRCxvQkFBb0IsRUFBRSxpQ0FBaUM7Z0JBQ3ZELG9CQUFvQixFQUFFLGtDQUFrQztnQkFDeEQsdUJBQXVCLEVBQUUscUNBQXFDO2FBQy9EO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEdBQUcsRUFBRSxTQUFTO2dCQUNkLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLFNBQVM7YUFDcEI7WUFDRCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFNBQVMsRUFBRSwyQkFB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QU0sRUFBRSxRQUFRO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFlBQVksRUFBRSxVQUFVO2FBQ3pCO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAaHZ5Jzoge1xuICAgIGV2ZW50OiB7XG4gICAgICByZW1vdmU6IHtcbiAgICAgICAgdGl0bGU6ICdEaXNzb2NpZXIgbFxcJ8OpdsOpbmVtZW50JyxcbiAgICAgICAgdGV4dDogJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIGxlIGRpc3NvY2llciA/J1xuICAgICAgfSxcbiAgICAgIGRpc3RyaWN0OiAnVmlsbGUvUXVhcnRpZXInLFxuICAgICAgaWQ6ICdJZGVudGlmaWFudCcsXG4gICAgICBuYW1lOiAnw4l2w6luZW1lbnQnLFxuICAgICAgZGlzOiAnREknLFxuICAgICAgc3ViQ2F0ZWdvcnk6IHtcbiAgICAgICAgbmFtZTogJ1NvdXMtY2F0w6lnb3JpZScsXG4gICAgICAgIE5PTkU6ICdBdWN1bmUnLFxuICAgICAgICBVTlVTVUFMX0ZMT1c6ICdBZmZsdWVuY2UgYW5vcm1hbGUgZGUgcGVyc29ubmVzJyxcbiAgICAgICAgVFJBRkZJQ19DT05HRVNUSU9OOiAnQ29uZ2VzdGlvbiBkZSB2w6loaWN1bGVzJyxcbiAgICAgICAgV0lMRF9TVE9SQUdFOiAnRMOpcMO0dHMgc2F1dmFnZXMnLFxuICAgICAgICBDQVJSRUZPVVJfQVVfTk9JUjogJ0NhcnJlZm91ciBhdSBub2lyIChQbGFuaWZpw6kpJyxcbiAgICAgICAgQ0FSUkVGT1VSX0NMSUdOT1RBTlQ6ICdDYXJyZWZvdXIgY2xpZ25vdGFudCAoUGxhbmlmacOpKScsXG4gICAgICAgIENBUlJFRk9VUl9BVV9OT0lSX05QOiAnQ2FycmVmb3VyIGF1IG5vaXIgKE5vbiBwbGFuaWZpw6kpJyxcbiAgICAgICAgQ0FSUkVGT1VSX0NMSUdOT1RBTlRfTlA6ICdDYXJyZWZvdXIgY2xpZ25vdGFudCAoTm9uIHBsYW5pZmnDqSknXG4gICAgICB9LFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIG5hbWU6ICdTdGF0dXQgw6l2w6luZW1lbnQnLFxuICAgICAgICBORVc6ICdOb3V2ZWF1JyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdFbiBjb3VycycsXG4gICAgICAgIERPTkU6ICdDbMO0dHVyw6knLFxuICAgICAgICBPVF9DTE9TRUQ6ICdDbMO0dHVyw6knLFxuICAgICAgICBBUkNISVZFRDogJ0FyY2hpdsOpJ1xuICAgICAgfSxcbiAgICAgIGFkZHJlc3M6ICdBZHJlc3NlJyxcbiAgICAgIHNvdXJjZTogJ1NvdXJjZScsXG4gICAgICBleHRlcm5hbElkOiAnUsOpZsOpcmVuY2UgZXh0ZXJuZScsXG4gICAgICBoeXBlcnZpc29yOiAnSHlwZXJ2aXNldXInLFxuICAgICAgZXF1aXBtZW50OiBcIlLDqWbDqXJlbmNlIGRlIGwnw6lxdWlwZW1lbnRcIixcbiAgICAgIGVxdWlwbWVudEVudGl0eTogXCJFbnRpdMOpIGRlIGwnw6lxdWlwZW1lbnRcIixcbiAgICAgIG5vdEZvdW5kOiAnRXF1aXBlbWVudCBpbmNvbm51JyxcbiAgICAgIGRvbWFpbjoge1xuICAgICAgICBuYW1lOiAnTcOpdGllcidcbiAgICAgIH0sXG4gICAgICBzdGFydERhdGU6ICdEYXRlIGRlIGTDqWJ1dCcsXG4gICAgICBlbmREYXRlOiAnRGF0ZSBkZSBmaW4nLFxuICAgICAgY3JlYXRpb25EYXRlOiAnRGF0ZSBkZSBjcsOpYXRpb24nLFxuICAgICAgY3JlYXRpb25EYXRlVGFibGU6ICdDcsOpYXRpb24nLFxuICAgICAgY3JlYXRvcjogJ0Nyw6lhdGV1cicsXG4gICAgICBlcnJvckRhdGU6ICdWZXVpbGxleiBzYWlzaXIgdW5lIGRhdGUgZGUgZmluIHBvc3TDqXJpZXVyZSDDoCBsYSBkYXRlIGRlIGTDqWJ1dC4nLFxuICAgICAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6ICdEYXRlIGRlIGRlcm5pw6hyZSBtb2RpZmljYXRpb24nLFxuICAgICAgbGFzdE1vZGlmaWNhdGlvbkRhdGVUYWJsZTogJ01vZGlmaWNhdGlvbicsXG4gICAgICBjbG9zZURhdGU6ICdEYXRlIGRlIGNsw7R0dXJlJyxcbiAgICAgIGRldGFpbDogYERlc2NyaXB0aW9uIGRlIGwnw6l2w6luZW1lbnRgLFxuICAgICAgZGV0YWlsczogJ0Rlc2NyaXB0aW9uIGRlcyDDqXbDqW5lbWVudHMnLFxuICAgICAgbG9nOiB7XG4gICAgICAgIG5hbWU6ICdKb3VybmFsIGRlcyDDqXbDqW5lbWVudHMnLFxuICAgICAgICBlbXB0eTogJ0F1Y3VuIMOpdsOpbmVtZW50LicsXG4gICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgICAgYWRkcmVzczogJ0FkcmVzc2UnLFxuICAgICAgICAgIGRldGFpbDogJ0luZm9ybWF0aW9ucycsXG4gICAgICAgICAgbWFuZGF0b3J5OiAnKiBDaGFtcHMgb2JsaWdhdG9pcmVzJyxcbiAgICAgICAgICBuYW1lOiAnTm9tJyxcbiAgICAgICAgICBpZDogJ0lkZW50aWZpYW50JyxcbiAgICAgICAgICBjYXRlZ29yeTogJ0NhdMOpZ29yaWUnLFxuICAgICAgICAgIGNsb3NlOiAnQ2zDtHR1cmVyIHRvdXMgY2VzIMOpdsOpbmVtZW50cycsXG4gICAgICAgICAgY2xvc2VkOiAnVG91cyBjbMO0dHVyw6lzJyxcbiAgICAgICAgICBjb21tZW50czoge1xuICAgICAgICAgICAgbmFtZTogXCJDb21tZW50YWlyZXMgZGUgbCfDqXbDqW5lbWVudCAoe3tuYn19KVwiLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICfDiWNyaXZleiB2b3RyZSBjb21tZW50YWlyZScsXG4gICAgICAgICAgICBhY3Rpb25zOiAnQ29tbWVudGFpcmVzICh7e25ifX0pJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJvY2VkdXJlOiB7XG4gICAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyIGxhIHByb2PDqWR1cmUnLFxuICAgICAgICAgIG1vZGlmeTogJ0NoYW5nZXIgZGUgcHJvY8OpZHVyZScsXG4gICAgICAgICAgcHJvZ3Jlc3M6ICdQcm9ncmVzc2lvbicsXG4gICAgICAgICAgbm9BY3Rpb246IFwiVW5lIHByb2PDqWR1cmUgZXN0IHVuZSBzdWNjZXNzaW9uIGQnYWN0aW9ucyDDoCByw6lhbGlzZXIgc2Vsb24gbCdvcmRyZSBkJ2ludGVydmVudGlvbi5cIixcbiAgICAgICAgICBuYW1lOiAnUHJvY8OpZHVyZSBjb21tdW5lJyxcbiAgICAgICAgICBuYW1lMTogJ1Byb2PDqWR1cmUnLFxuICAgICAgICAgIG5vbmU6ICdBdWN1bmUgcHJvY8OpZHVyZSBu4oCZYSDDqXTDqSBhc3NvY2nDqWUgw6AgY2V0IMOpdsOpbmVtZW50LidcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgIG5hbWU6IFwiQ2F0w6lnb3JpZSBkJ8OpdsOpbmVtZW50XCIsXG4gICAgICAgIE1BTklGRVNUQVRJT046ICdNYW5pZmVzdGF0aW9uJyxcbiAgICAgICAgTElNSVQ6ICdTZXVpbCcsXG4gICAgICAgIE9VVE9GT1JERVI6ICdIb3JzIFNlcnZpY2UnLFxuICAgICAgICBBTk9NQUxZOiAnQW5vbWFsaWUnXG4gICAgICB9LFxuICAgICAgY3JpdGljYWxpdHk6IHtcbiAgICAgICAgbmFtZTogJ0NyaXRpY2l0w6knLFxuICAgICAgICBMT1c6ICdGYWlibGUnLFxuICAgICAgICBNRURJVU06ICdNb3llbm5lJyxcbiAgICAgICAgSElHSDogJ0hhdXRlJ1xuICAgICAgfSxcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICBzZWFyY2g6ICdSZWNoZXJjaGV6IHBhciDDqXF1aXBlbWVudCcsXG4gICAgICAgIG5hbWU6ICdGaWx0cmVyJyxcbiAgICAgICAgY2hvaWNlOiB7XG4gICAgICAgICAgYWxsOiAnVG91cydcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICdSw6lpbml0aWFsaXNlcidcbiAgICAgIH0sXG4gICAgICBjbG9zZToge1xuICAgICAgICBvbmVUaXRsZTogJ0Nsw7R0dXJlciB1biDDqXbDqW5lbWVudCcsXG4gICAgICAgIG11bHRpVGl0bGU6ICdDbMO0dHVyZXIgZGVzIMOpdsOpbmVtZW50cycsXG4gICAgICAgIG9uZTogJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIGNsw7R0dXJlciBjZXQgw6l2w6luZW1lbnQgPycsXG4gICAgICAgIG11bHRpOiAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgY2zDtHR1cmVyIHRvdXMgY2VzIMOpdsOpbmVtZW50cyA/JyxcbiAgICAgICAgY29tbWVudDogJ0NvbW1lbnRhaXJlIGRlIGNsw7R0dXJlJ1xuICAgICAgfSxcbiAgICAgIGluc3RhbGxEYXRlOiBcIkRhdGUgZCdpbnN0YWxsYXRpb25cIixcbiAgICAgIG1hbmFnZWQ6ICfDiXF1aXBlbWVudCB0w6lsw6lnw6lyw6knLFxuICAgICAgcHJtOiAnTsKwIGR1IGNvbnRyYXQgUFJNJyxcbiAgICAgIHByZXNlbmNlU2Vuc29yOiAnQ2FwdGV1ciBkZSBwcsOpc2VuY2UnLFxuICAgICAgcGFyZW50OiAnUGFyZW50JyxcbiAgICAgIHBhcmVudEV2ZW50OiB7XG4gICAgICAgIG5hbWU6ICfDiXbDqW5lbWVudCBwYXJlbnQnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXogcGFyIGlkZW50aWZpYW50IG91IG5vbSdcbiAgICAgIH0sXG4gICAgICBjb25zdWx0OiAnQ29uc3VsdGVyIHt7aG93TWFueX19IMOpdsOpbmVtZW50e3twbHVyYWx9fScsXG4gICAgICBlbnRpdHk6IHtcbiAgICAgICAgTk9URk9VTkQ6ICfDiXF1aXBlbWVudCBpbmNvbm51J1xuICAgICAgfSxcbiAgICAgIGNvbW1lbnQ6IHtcbiAgICAgICAgbGFzdERldGFpbDogJ0Rlcm5pZXIgY29tbWVudGFpcmUgZHUge3tkYXl9fSDDoCB7e2hvdXJ9fSBwYXIge3tjcmVhdG9yfX0nLFxuICAgICAgICBkZXRhaWw6ICdDb21tZW50YWlyZSBkdSB7e2RheX19IMOgIHt7aG91cn19IHBhciB7e2NyZWF0b3J9fScsXG4gICAgICAgIG1vcmU6ICdWb2lyIHBsdXMgZGUgY29tbWVudGFpcmVzJyxcbiAgICAgICAgbGVzczogJ1ZvaXIgbW9pbnMgZGUgY29tbWVudGFpcmVzJyxcbiAgICAgICAgaGVhZDogJ3t7bmJ9fSBjb21tZW50YWlyZScsXG4gICAgICAgIGhlYWRzOiAne3tuYn19IGNvbW1lbnRhaXJlcydcbiAgICAgIH0sXG4gICAgICBlcXVpcG1lbnRQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXogcGFyIHLDqWbDqXJlbmNlIG91IGZhbWlsbGUnLFxuICAgICAgZXhwb3J0OiB7XG4gICAgICAgIGZpbGVuYW1lOiAnSHlwZXJ2aXNldXJfRXhwb3J0X0pvdXJuYWxfRXZlbmVtZW50cydcbiAgICAgIH0sXG4gICAgICBhZGQ6IHtcbiAgICAgICAgdGl0bGU6ICdBam91dGVyIHVuIMOpdsOpbmVtZW50JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdM4oCZw6l2w6luZW1lbnQgc+KAmWFqb3V0ZXJhIGF1IGdyb3VwZSBk4oCZw6l2w6luZW1lbnRzIGV0IHNlcmEgYXNzb2Npw6kgw6AgbGEgcHJvY8OpZHVyZSBjb21tdW5lLicsXG4gICAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXIgdW4gw6l2w6luZW1lbnQnXG4gICAgICB9XG4gICAgfSxcbiAgICBldmVudFN1bW1hcnk6IHtcbiAgICAgIGZyb206ICdEdScsXG4gICAgICB0bzogJ2F1JyxcbiAgICAgIG5vQ29udGVudDoge1xuICAgICAgICBORVc6ICdBdWN1biBub3V2ZWwgw6l2w6luZW1lbnQuJyxcbiAgICAgICAgSU5fUFJPR1JFU1M6IFwiQXVjdW4gw6l2w6luZW1lbnQgbidlc3QgZW4gY291cnMuXCIsXG4gICAgICAgIERPTkU6IFwiQXVjdW4gw6l2w6luZW1lbnQgbidlc3QgY2zDtHR1csOpLlwiXG4gICAgICB9LFxuICAgICAgc3RhdHVzTGFiZWxzOiB7XG4gICAgICAgIE5FVzogJ05vdXZlYXV4JyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdFbiBjb3VycycsXG4gICAgICAgIERPTkU6ICdDbMO0dHVyw6lzJ1xuICAgICAgfSxcbiAgICAgIGNyaXRpY2FsaXR5TGFiZWxzOiB7XG4gICAgICAgIExPVzogJ0ZhaWJsZScsXG4gICAgICAgIE1FRElVTTogJ01veWVubmUnLFxuICAgICAgICBISUdIOiAnSGF1dGUnLFxuICAgICAgICBBTEw6ICdUb3VzJ1xuICAgICAgfVxuICAgIH0sXG4gICAgcHJvY2VkdXJlOiB7XG4gICAgICBjaGVja2JveDoge1xuICAgICAgICBORVc6ICfDgCBmYWlyZScsXG4gICAgICAgIElOX1BST0dSRVNTOiAnRW4gY291cnMnLFxuICAgICAgICBET05FOiAnVGVybWluw6knXG4gICAgICB9LFxuICAgICAgZXRhdDogJ8OJdGF0JyxcbiAgICAgIGFscmVhZHlFeGlzdHM6ICdDZSB0aXRyZSBleGlzdGUgZMOpasOgLiBWZXVpbGxleiBlbiBzYWlzaXIgdW4gYXV0cmUuJyxcbiAgICAgIG5hbWU6ICdQcm9jw6lkdXJlJyxcbiAgICAgIHByb2dyZXNzOiAnJSBhdmFuY2VtZW50IHByb2PDqWR1cmUnLFxuICAgICAgdXNlQ291bnQ6ICdVc2FnZScsXG4gICAgICB0aXRsZTogJ1RpdHJlJyxcbiAgICAgIGNhdGVnb3J5OiAnTcOpdGllcicsXG4gICAgICBhdXRob3I6ICdDcsOpYXRldXInLFxuICAgICAgaWQ6ICdJZGVudGlmaWFudCcsXG4gICAgICBtaXNzaW5nUHJvcGVydHk6ICdQcm9wcmnDqXTDqSBtYW5xdWFudGUnLFxuICAgICAgbm9Db250ZW50OiAnQXVjdW5lIHByb2PDqWR1cmUuJyxcbiAgICAgIGRvbWFpbjogJ03DqXRpZXInLFxuICAgICAgY2F0YWxvZzogJ0JpYmxpb3Row6hxdWUgZGVzIHByb2PDqWR1cmVzJyxcbiAgICAgIGRldGFpbDogJ0Rlc2NyaXB0aW9uIGRlIGxhIHByb2PDqWR1cmUnLFxuICAgICAgYWN0aW9uczogJ0FjdGlvbnMgYXNzb2Npw6llcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGNyZWF0b3I6ICdDcsOpYXRldXInLFxuICAgICAgZm9ybVRpdGxlOiAnSW5mb3JtYXRpb25zJyxcbiAgICAgIGFjdGlvbjoge1xuICAgICAgICBhZGQ6ICdBam91dGVyIHVuZSBhY3Rpb24nLFxuICAgICAgICBjcmVhdGU6ICdBam91dGVyIHVuZSBhY3Rpb24nLFxuICAgICAgICBtb2RpZnk6IFwiTW9kaWZpZXIgbCdhY3Rpb25cIixcbiAgICAgICAgY29tbWVudDogJ0NvbW1lbnRlcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICAgIHVwZGF0ZTogJ01vZGlmaWVyJyxcbiAgICAgICAgZG9uZTogJ1Rlcm1pbmVyJyxcbiAgICAgICAgUEhPTkU6ICdBcHBlbGVyIGxlIG3DqXRpZXIvcG9saWNlIHBvdXIgc8OpY3VyaXNhdGlvbicsXG4gICAgICAgIFNNUzogJ0luZm9ybWVyIGxlIG3DqXRpZXIgcGFyIHTDqWzDqXBob25lL1NNUyAocGVyc29ubmUvc2VydmljZSknLFxuICAgICAgICBPVEhFUjogJ0F1dHJlJyxcbiAgICAgICAgQVNLRURfU0VSVklDRTogXCJDcsOpZXIgdW5lIGRlbWFuZGUgZOKAmWludGVydmVudGlvbiBHTUFPXCIsXG4gICAgICAgIEVNQUlMOiAnSW5mb3JtZXIgbGUgbcOpdGllciBwYXIgbWFpbCAocGVyc29ubmUvc2VydmljZSknLFxuICAgICAgICB0bzogJ2F1JyxcbiAgICAgICAgYXQ6ICfDoCcsXG4gICAgICAgIHNlcnZpY2U6IFwiRGVtYW5kZSBkJ2ludGVydmVudGlvblwiLFxuICAgICAgICBwbGFjZWhvbGRlcjoge1xuICAgICAgICAgIG5hbWU6ICdRdWkgPycsXG4gICAgICAgICAgcGhvbmU6ICcrMzMnLFxuICAgICAgICAgIGVtYWlsOiAnZXg6IG5vbUBlLW1haWwuY29tJyxcbiAgICAgICAgICBzZXJ2aWNlOiBcIlNhaXNpc3NleiBsYSBkZW1hbmRlIGQnaW50ZXJ2ZW50aW9uXCIsXG4gICAgICAgICAgb3RoZXI6ICdTYWlzaXNzZXogdm90cmUgdGV4dGUnLFxuICAgICAgICAgIGFjdGlvbjogJ1PDqWxlY3Rpb25uZXIgdW5lIGFjdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAgcXVlc3Rpb246IHtcbiAgICAgICAgICBQSE9ORTogJ0FwcGVsZXInLFxuICAgICAgICAgIFNNUzogJ0luZm9ybWVyJyxcbiAgICAgICAgICBFTUFJTDogJ0Vudm95ZXIgdW4gZS1tYWlsIMOgJyxcbiAgICAgICAgICBBU0tFRF9TRVJWSUNFOiBcIkNyw6llciB1bmUgZGVtYW5kZSBk4oCZaW50ZXJ2ZW50aW9uIEdNQU9cIixcbiAgICAgICAgICBPVEhFUjogJ0F1dHJlJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIE5FVzogJ0Nyw6nDqScsXG4gICAgICAgIEFTS0VEOiAnRGVtYW5kw6knLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0VuIGNvdXJzJyxcbiAgICAgICAgRE9ORTogJ1Rlcm1pbsOpJyxcbiAgICAgICAgQ0FOQ0VMTEVEOiAnQW5udWzDqScsXG4gICAgICAgIE9UX0NMT1NFRDogJ1Rlcm1pbsOpJ1xuICAgICAgfVxuICAgIH0sXG4gICAgYXNzb2NpYXRpb25Nb2RhbDoge1xuICAgICAgdGl0bGU6ICdBc3NvY2llciDDoCB1bmUgcHJvY8OpZHVyZScsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Fzc29jaWVyIHVuZSBwcm9jw6lkdXJlIMOgIGRlcyDDqXbDqW5lbWVudHMgcGVybWV0IGRlIHPDqWxlY3Rpb25uZXIgbGEgbGlzdGUgZGVzIGFjdGlvbnMgw6AgcsOpYWxpc2VyIHBvdXIgdHJhaXRlciBjZXMgw6l2w6luZW1lbnRzLicsXG4gICAgICBsaW5rZWRFdmVudHM6ICfDiXbDqW5lbWVudHMgbGnDqXMnLFxuICAgICAgY2F0ZWdvcnlGaWx0ZXI6ICdGaWx0cmVyIHBhciBtw6l0aWVyJyxcbiAgICAgIHNlYXJjaFByb2NlZHVyZTogJ1JlY2hlcmNoZXIgdW5lIHByb2PDqWR1cmUnLFxuICAgICAgZG9tYWluUGxhY2Vob2xkZXI6ICdTw6lsZWN0aW9ubmVyIHVuIG3DqXRpZXInLFxuICAgICAgcHJvY2VkdXJlUGxhY2Vob2xkZXI6ICdSZWNoZXJjaGV6IHBhciBpZGVudGlmaWFudCwgdGl0cmUgb3UgY3LDqWF0ZXVyJ1xuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICBjb25zdWx0OiAnQ29uc3VsdGVyJyxcbiAgICAgIGNsb3NlOiAnQ2zDtHR1cmVyJyxcbiAgICAgIHNlbmQ6ICdFbnZveWVyJyxcbiAgICAgIGNvbW1lbnQ6ICdDb21tZW50ZXInLFxuICAgICAgYXNzb2NpYXRlOiAnQXNzb2NpZXIgw6AgdW5lIHByb2PDqWR1cmUnLFxuICAgICAgdmFsaWRhdGU6ICdWYWxpZGVyJyxcbiAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlcicsXG4gICAgICB1cGRhdGU6ICdNb2RpZmllcicsXG4gICAgICBjcmVhdGU6ICdDcsOpZXInXG4gICAgfSxcbiAgICBzZXJ2aWNlOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgTkVXOiAnQ3LDqcOpJyxcbiAgICAgICAgQVNLRUQ6ICdEZW1hbmTDqScsXG4gICAgICAgIElOX1BST0dSRVNTOiAnRW4gY291cnMnLFxuICAgICAgICBET05FOiAnVGVybWluw6knLFxuICAgICAgICBDQU5DRUxMRUQ6ICdBbm51bMOpJyxcbiAgICAgICAgT1RfQ0xPU0VEOiAnVGVybWluw6knLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiBcIkNyw6llciB1bmUgZGVtYW5kZSBkJ2ludGVydmVudGlvblwiLFxuICAgICAgc3VidGl0bGU6IFwiQ3LDqWVyIHVuZSBkZW1hbmRlIGQnaW50ZXJ2ZW50aW9uIHBvdXIgdHJhaXRlciBjZXMgw6l2w6luZW1lbnRzLlwiLFxuICAgICAgcmVhc29uOiAnT2JqZXQgZGUgbGEgZGVtYW5kZScsXG4gICAgICB0eXBlOiAnTmF0dXJlIGRlIGxhIGRlbWFuZGUnLFxuICAgICAgcHJpb3JpdHk6ICdQcmlvcml0w6knLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBkZSBsYSBkZW1hbmRlJyxcbiAgICAgIHRhcmdldDogJ8OJcXVpcGVtZW50JyxcbiAgICAgIGd0aTogJ0dUSSAoaGV1cmVzKScsXG4gICAgICBndHI6ICdHVFIgKGhldXJlcyknLFxuICAgICAgZ3RycDogJ0dUUlAgKGhldXJlcyknLFxuICAgICAgZGVzY3JpYmU6ICdEZXNjcmlwdGlvbiBkZSBsYSBkZW1hbmRlJyxcbiAgICAgIG5vRXF1aXA6ICdBdWN1biDDqXF1aXBlbWVudCcsXG4gICAgICBkb21haW46ICdNw6l0aWVyJyxcbiAgICAgIHByaW9yaXRpZXM6IHtcbiAgICAgICAgJzEtTUlORVVSJzogJ01pbmV1cicsXG4gICAgICAgICcyLU1BSkVVUic6ICdNYWpldXInLFxuICAgICAgICAnMy1CTE9RVUFOVCc6ICdCbG9xdWFudCdcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2ZyLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLElBQUksRUFBRSx5Q0FBeUM7YUFDaEQ7WUFDRCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLEVBQUUsRUFBRSxhQUFhO1lBQ2pCLElBQUksRUFBRSxXQUFXO1lBQ2pCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLFlBQVksRUFBRSxpQ0FBaUM7Z0JBQy9DLGtCQUFrQixFQUFFLHlCQUF5QjtnQkFDN0MsWUFBWSxFQUFFLGlCQUFpQjtnQkFDL0IsaUJBQWlCLEVBQUUsOEJBQThCO2dCQUNqRCxvQkFBb0IsRUFBRSxpQ0FBaUM7Z0JBQ3ZELG9CQUFvQixFQUFFLGtDQUFrQztnQkFDeEQsdUJBQXVCLEVBQUUscUNBQXFDO2FBQy9EO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEdBQUcsRUFBRSxTQUFTO2dCQUNkLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLFNBQVM7YUFDcEI7WUFDRCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFNBQVMsRUFBRSwyQkFB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LEVBQUUsZUFBZTtZQUNyQixRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxRQUFRO2dCQUNwQixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsWUFBWSxFQUFFLFVBQVU7YUFDekI7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmclRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BodnknOiB7XG4gICAgZXZlbnQ6IHtcbiAgICAgIHJlbW92ZToge1xuICAgICAgICB0aXRsZTogJ0Rpc3NvY2llciBsXFwnw6l2w6luZW1lbnQnLFxuICAgICAgICB0ZXh0OiAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgbGUgZGlzc29jaWVyID8nXG4gICAgICB9LFxuICAgICAgZGlzdHJpY3Q6ICdWaWxsZS9RdWFydGllcicsXG4gICAgICBpZDogJ0lkZW50aWZpYW50JyxcbiAgICAgIG5hbWU6ICfDiXbDqW5lbWVudCcsXG4gICAgICBkaXM6ICdESScsXG4gICAgICBzdWJDYXRlZ29yeToge1xuICAgICAgICBuYW1lOiAnU291cy1jYXTDqWdvcmllJyxcbiAgICAgICAgTk9ORTogJ0F1Y3VuZScsXG4gICAgICAgIFVOVVNVQUxfRkxPVzogJ0FmZmx1ZW5jZSBhbm9ybWFsZSBkZSBwZXJzb25uZXMnLFxuICAgICAgICBUUkFGRklDX0NPTkdFU1RJT046ICdDb25nZXN0aW9uIGRlIHbDqWhpY3VsZXMnLFxuICAgICAgICBXSUxEX1NUT1JBR0U6ICdEw6lww7R0cyBzYXV2YWdlcycsXG4gICAgICAgIENBUlJFRk9VUl9BVV9OT0lSOiAnQ2FycmVmb3VyIGF1IG5vaXIgKFBsYW5pZmnDqSknLFxuICAgICAgICBDQVJSRUZPVVJfQ0xJR05PVEFOVDogJ0NhcnJlZm91ciBjbGlnbm90YW50IChQbGFuaWZpw6kpJyxcbiAgICAgICAgQ0FSUkVGT1VSX0FVX05PSVJfTlA6ICdDYXJyZWZvdXIgYXUgbm9pciAoTm9uIHBsYW5pZmnDqSknLFxuICAgICAgICBDQVJSRUZPVVJfQ0xJR05PVEFOVF9OUDogJ0NhcnJlZm91ciBjbGlnbm90YW50IChOb24gcGxhbmlmacOpKSdcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgbmFtZTogJ1N0YXR1dCDDqXbDqW5lbWVudCcsXG4gICAgICAgIE5FVzogJ05vdXZlYXUnLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0VuIGNvdXJzJyxcbiAgICAgICAgRE9ORTogJ0Nsw7R0dXLDqScsXG4gICAgICAgIE9UX0NMT1NFRDogJ0Nsw7R0dXLDqScsXG4gICAgICAgIEFSQ0hJVkVEOiAnQXJjaGl2w6knXG4gICAgICB9LFxuICAgICAgYWRkcmVzczogJ0FkcmVzc2UnLFxuICAgICAgc291cmNlOiAnU291cmNlJyxcbiAgICAgIGV4dGVybmFsSWQ6ICdSw6lmw6lyZW5jZSBleHRlcm5lJyxcbiAgICAgIGh5cGVydmlzb3I6ICdIeXBlcnZpc2V1cicsXG4gICAgICBlcXVpcG1lbnQ6IFwiUsOpZsOpcmVuY2UgZGUgbCfDqXF1aXBlbWVudFwiLFxuICAgICAgZXF1aXBtZW50RW50aXR5OiBcIkVudGl0w6kgZGUgbCfDqXF1aXBlbWVudFwiLFxuICAgICAgbm90Rm91bmQ6ICdFcXVpcGVtZW50IGluY29ubnUnLFxuICAgICAgZG9tYWluOiB7XG4gICAgICAgIG5hbWU6ICdNw6l0aWVyJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0RGF0ZTogJ0RhdGUgZGUgZMOpYnV0JyxcbiAgICAgIGVuZERhdGU6ICdEYXRlIGRlIGZpbicsXG4gICAgICBjcmVhdGlvbkRhdGU6ICdEYXRlIGRlIGNyw6lhdGlvbicsXG4gICAgICBjcmVhdGlvbkRhdGVUYWJsZTogJ0Nyw6lhdGlvbicsXG4gICAgICBjcmVhdG9yOiAnQ3LDqWF0ZXVyJyxcbiAgICAgIGVycm9yRGF0ZTogJ1ZldWlsbGV6IHNhaXNpciB1bmUgZGF0ZSBkZSBmaW4gcG9zdMOpcmlldXJlIMOgIGxhIGRhdGUgZGUgZMOpYnV0LicsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZTogJ0RhdGUgZGUgZGVybmnDqHJlIG1vZGlmaWNhdGlvbicsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZVRhYmxlOiAnTW9kaWZpY2F0aW9uJyxcbiAgICAgIGNsb3NlRGF0ZTogJ0RhdGUgZGUgY2zDtHR1cmUnLFxuICAgICAgZGV0YWlsOiBgRGVzY3JpcHRpb24gZGUgbCfDqXbDqW5lbWVudGAsXG4gICAgICBkZXRhaWxzOiAnRGVzY3JpcHRpb24gZGVzIMOpdsOpbmVtZW50cycsXG4gICAgICBsb2c6IHtcbiAgICAgICAgbmFtZTogJ0pvdXJuYWwgZGVzIMOpdsOpbmVtZW50cycsXG4gICAgICAgIGVtcHR5OiAnQXVjdW4gw6l2w6luZW1lbnQuJyxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICBhZGRyZXNzOiAnQWRyZXNzZScsXG4gICAgICAgICAgZGV0YWlsOiAnSW5mb3JtYXRpb25zJyxcbiAgICAgICAgICBtYW5kYXRvcnk6ICcqIENoYW1wcyBvYmxpZ2F0b2lyZXMnLFxuICAgICAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgICAgIGlkOiAnSWRlbnRpZmlhbnQnLFxuICAgICAgICAgIGNhdGVnb3J5OiAnQ2F0w6lnb3JpZScsXG4gICAgICAgICAgY2xvc2U6ICdDbMO0dHVyZXIgdG91cyBjZXMgw6l2w6luZW1lbnRzJyxcbiAgICAgICAgICBjbG9zZWQ6ICdUb3VzIGNsw7R0dXLDqXMnLFxuICAgICAgICAgIGNvbW1lbnRzOiB7XG4gICAgICAgICAgICBuYW1lOiBcIkNvbW1lbnRhaXJlcyBkZSBsJ8OpdsOpbmVtZW50ICh7e25ifX0pXCIsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ8OJY3JpdmV6IHZvdHJlIGNvbW1lbnRhaXJlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6ICdDb21tZW50YWlyZXMgKHt7bmJ9fSknXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcm9jZWR1cmU6IHtcbiAgICAgICAgICBkZWxldGU6ICdTdXBwcmltZXIgbGEgcHJvY8OpZHVyZScsXG4gICAgICAgICAgbW9kaWZ5OiAnQ2hhbmdlciBkZSBwcm9jw6lkdXJlJyxcbiAgICAgICAgICBwcm9ncmVzczogJ1Byb2dyZXNzaW9uJyxcbiAgICAgICAgICBub0FjdGlvbjogXCJVbmUgcHJvY8OpZHVyZSBlc3QgdW5lIHN1Y2Nlc3Npb24gZCdhY3Rpb25zIMOgIHLDqWFsaXNlciBzZWxvbiBsJ29yZHJlIGQnaW50ZXJ2ZW50aW9uLlwiLFxuICAgICAgICAgIG5hbWU6ICdQcm9jw6lkdXJlIGNvbW11bmUnLFxuICAgICAgICAgIG5hbWUxOiAnUHJvY8OpZHVyZScsXG4gICAgICAgICAgbm9uZTogJ0F1Y3VuZSBwcm9jw6lkdXJlIG7igJlhIMOpdMOpIGFzc29jacOpZSDDoCBjZXQgw6l2w6luZW1lbnQuJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgbmFtZTogXCJDYXTDqWdvcmllIGQnw6l2w6luZW1lbnRcIixcbiAgICAgICAgTUFOSUZFU1RBVElPTjogJ01hbmlmZXN0YXRpb24nLFxuICAgICAgICBMSU1JVDogJ1NldWlsJyxcbiAgICAgICAgT1VUT0ZPUkRFUjogJ0hvcnMgU2VydmljZScsXG4gICAgICAgIEFOT01BTFk6ICdBbm9tYWxpZSdcbiAgICAgIH0sXG4gICAgICBjcml0aWNhbGl0eToge1xuICAgICAgICBuYW1lOiAnQ3JpdGljaXTDqScsXG4gICAgICAgIExPVzogJ0ZhaWJsZScsXG4gICAgICAgIE1FRElVTTogJ01veWVubmUnLFxuICAgICAgICBISUdIOiAnSGF1dGUnXG4gICAgICB9LFxuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXogcGFyIMOpcXVpcGVtZW50JyxcbiAgICAgICAgbmFtZTogJ0ZpbHRyZXInLFxuICAgICAgICBjaG9pY2U6IHtcbiAgICAgICAgICBhbGw6ICdUb3VzJ1xuICAgICAgICB9LFxuICAgICAgICByZXNldDogJ1LDqWluaXRpYWxpc2VyJ1xuICAgICAgfSxcbiAgICAgIGNsb3NlOiB7XG4gICAgICAgIG9uZVRpdGxlOiAnQ2zDtHR1cmVyIHVuIMOpdsOpbmVtZW50JyxcbiAgICAgICAgbXVsdGlUaXRsZTogJ0Nsw7R0dXJlciBkZXMgw6l2w6luZW1lbnRzJyxcbiAgICAgICAgb25lOiAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgY2zDtHR1cmVyIGNldCDDqXbDqW5lbWVudCA/JyxcbiAgICAgICAgbXVsdGk6ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBjbMO0dHVyZXIgdG91cyBjZXMgw6l2w6luZW1lbnRzID8nLFxuICAgICAgICBjb21tZW50OiAnQ29tbWVudGFpcmUgZGUgY2zDtHR1cmUnXG4gICAgICB9LFxuICAgICAgaW5zdGFsbERhdGU6IFwiRGF0ZSBkJ2luc3RhbGxhdGlvblwiLFxuICAgICAgbWFuYWdlZDogJ8OJcXVpcGVtZW50IHTDqWzDqWfDqXLDqScsXG4gICAgICBwcm06ICdOwrAgZHUgY29udHJhdCBQUk0nLFxuICAgICAgcHJlc2VuY2VTZW5zb3I6ICdDYXB0ZXVyIGRlIHByw6lzZW5jZScsXG4gICAgICBwYXJlbnQ6ICdQYXJlbnQnLFxuICAgICAgcGFyZW50RXZlbnQ6IHtcbiAgICAgICAgbmFtZTogJ8OJdsOpbmVtZW50IHBhcmVudCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnUmVjaGVyY2hleiBwYXIgaWRlbnRpZmlhbnQgb3Ugbm9tJ1xuICAgICAgfSxcbiAgICAgIGNvbnN1bHQ6ICdDb25zdWx0ZXIge3tob3dNYW55fX0gw6l2w6luZW1lbnR7e3BsdXJhbH19JyxcbiAgICAgIGVudGl0eToge1xuICAgICAgICBOT1RGT1VORDogJ8OJcXVpcGVtZW50IGluY29ubnUnXG4gICAgICB9LFxuICAgICAgY29tbWVudDoge1xuICAgICAgICBsYXN0RGV0YWlsOiAnRGVybmllciBjb21tZW50YWlyZSBkdSB7e2RheX19IMOgIHt7aG91cn19IHBhciB7e2NyZWF0b3J9fScsXG4gICAgICAgIGRldGFpbDogJ0NvbW1lbnRhaXJlIGR1IHt7ZGF5fX0gw6Age3tob3VyfX0gcGFyIHt7Y3JlYXRvcn19JyxcbiAgICAgICAgbW9yZTogJ1ZvaXIgcGx1cyBkZSBjb21tZW50YWlyZXMnLFxuICAgICAgICBsZXNzOiAnVm9pciBtb2lucyBkZSBjb21tZW50YWlyZXMnLFxuICAgICAgICBoZWFkOiAne3tuYn19IGNvbW1lbnRhaXJlJyxcbiAgICAgICAgaGVhZHM6ICd7e25ifX0gY29tbWVudGFpcmVzJ1xuICAgICAgfSxcbiAgICAgIGVxdWlwbWVudFBsYWNlaG9sZGVyOiAnUmVjaGVyY2hleiBwYXIgcsOpZsOpcmVuY2Ugb3UgZmFtaWxsZScsXG4gICAgICBleHBvcnQ6IHtcbiAgICAgICAgZmlsZW5hbWU6ICdIeXBlcnZpc2V1cl9FeHBvcnRfSm91cm5hbF9FdmVuZW1lbnRzJ1xuICAgICAgfSxcbiAgICAgIGFkZDoge1xuICAgICAgICB0aXRsZTogJ0Fqb3V0ZXIgdW4gw6l2w6luZW1lbnQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0zigJnDqXbDqW5lbWVudCBz4oCZYWpvdXRlcmEgYXUgZ3JvdXBlIGTigJnDqXbDqW5lbWVudHMgZXQgc2VyYSBhc3NvY2nDqSDDoCBsYSBwcm9jw6lkdXJlIGNvbW11bmUuJyxcbiAgICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlciB1biDDqXbDqW5lbWVudCdcbiAgICAgIH1cbiAgICB9LFxuICAgIGV2ZW50U3VtbWFyeToge1xuICAgICAgZnJvbTogJ0R1JyxcbiAgICAgIHRvOiAnYXUnLFxuICAgICAgbm9Db250ZW50OiB7XG4gICAgICAgIE5FVzogJ0F1Y3VuIG5vdXZlbCDDqXbDqW5lbWVudC4nLFxuICAgICAgICBJTl9QUk9HUkVTUzogXCJBdWN1biDDqXbDqW5lbWVudCBuJ2VzdCBlbiBjb3Vycy5cIixcbiAgICAgICAgRE9ORTogXCJBdWN1biDDqXbDqW5lbWVudCBuJ2VzdCBjbMO0dHVyw6kuXCJcbiAgICAgIH0sXG4gICAgICBzdGF0dXNMYWJlbHM6IHtcbiAgICAgICAgTkVXOiAnTm91dmVhdXgnLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0VuIGNvdXJzJyxcbiAgICAgICAgRE9ORTogJ0Nsw7R0dXLDqXMnXG4gICAgICB9LFxuICAgICAgY3JpdGljYWxpdHlMYWJlbHM6IHtcbiAgICAgICAgTE9XOiAnRmFpYmxlJyxcbiAgICAgICAgTUVESVVNOiAnTW95ZW5uZScsXG4gICAgICAgIEhJR0g6ICdIYXV0ZScsXG4gICAgICAgIEFMTDogJ1RvdXMnXG4gICAgICB9XG4gICAgfSxcbiAgICBwcm9jZWR1cmU6IHtcbiAgICAgIGNoZWNrYm94OiB7XG4gICAgICAgIE5FVzogJ8OAIGZhaXJlJyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdFbiBjb3VycycsXG4gICAgICAgIERPTkU6ICdUZXJtaW7DqSdcbiAgICAgIH0sXG4gICAgICBldGF0OiAnw4l0YXQnLFxuICAgICAgYWxyZWFkeUV4aXN0czogJ0NlIHRpdHJlIGV4aXN0ZSBkw6lqw6AuIFZldWlsbGV6IGVuIHNhaXNpciB1biBhdXRyZS4nLFxuICAgICAgbmFtZTogJ1Byb2PDqWR1cmUnLFxuICAgICAgcHJvZ3Jlc3M6ICclIGF2YW5jZW1lbnQgcHJvY8OpZHVyZScsXG4gICAgICB1c2VDb3VudDogJ1VzYWdlJyxcbiAgICAgIHRpdGxlOiAnVGl0cmUnLFxuICAgICAgY2F0ZWdvcnk6ICdNw6l0aWVyJyxcbiAgICAgIGF1dGhvcjogJ0Nyw6lhdGV1cicsXG4gICAgICBpZDogJ0lkZW50aWZpYW50JyxcbiAgICAgIG1pc3NpbmdQcm9wZXJ0eTogJ1Byb3ByacOpdMOpIG1hbnF1YW50ZScsXG4gICAgICBub0NvbnRlbnQ6ICdBdWN1bmUgcHJvY8OpZHVyZS4nLFxuICAgICAgZG9tYWluOiAnTcOpdGllcicsXG4gICAgICBjYXRhbG9nOiAnQmlibGlvdGjDqHF1ZSBkZXMgcHJvY8OpZHVyZXMnLFxuICAgICAgZGV0YWlsOiAnRGVzY3JpcHRpb24gZGUgbGEgcHJvY8OpZHVyZScsXG4gICAgICBhY3Rpb25zOiAnQWN0aW9ucyBhc3NvY2nDqWVzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgY3JlYXRvcjogJ0Nyw6lhdGV1cicsXG4gICAgICBmb3JtVGl0bGU6ICdJbmZvcm1hdGlvbnMnLFxuICAgICAgYWN0aW9uOiB7XG4gICAgICAgIGFkZDogJ0Fqb3V0ZXIgdW5lIGFjdGlvbicsXG4gICAgICAgIGNyZWF0ZTogJ0Fqb3V0ZXIgdW5lIGFjdGlvbicsXG4gICAgICAgIG1vZGlmeTogXCJNb2RpZmllciBsJ2FjdGlvblwiLFxuICAgICAgICBjb21tZW50OiAnQ29tbWVudGVyJyxcbiAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgICAgdXBkYXRlOiAnTW9kaWZpZXInLFxuICAgICAgICBkb25lOiAnVGVybWluZXInLFxuICAgICAgICBQSE9ORTogJ0FwcGVsZXIgbGUgbcOpdGllci9wb2xpY2UgcG91ciBzw6ljdXJpc2F0aW9uJyxcbiAgICAgICAgU01TOiAnSW5mb3JtZXIgbGUgbcOpdGllciBwYXIgdMOpbMOpcGhvbmUvU01TIChwZXJzb25uZS9zZXJ2aWNlKScsXG4gICAgICAgIE9USEVSOiAnQXV0cmUnLFxuICAgICAgICBBU0tFRF9TRVJWSUNFOiBcIkNyw6llciB1bmUgZGVtYW5kZSBk4oCZaW50ZXJ2ZW50aW9uIEdNQU9cIixcbiAgICAgICAgRU1BSUw6ICdJbmZvcm1lciBsZSBtw6l0aWVyIHBhciBtYWlsIChwZXJzb25uZS9zZXJ2aWNlKScsXG4gICAgICAgIHRvOiAnYXUnLFxuICAgICAgICBhdDogJ8OgJyxcbiAgICAgICAgc2VydmljZTogXCJEZW1hbmRlIGQnaW50ZXJ2ZW50aW9uXCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiB7XG4gICAgICAgICAgbmFtZTogJ1F1aSA/JyxcbiAgICAgICAgICBwaG9uZTogJyszMycsXG4gICAgICAgICAgZW1haWw6ICdleDogbm9tQGUtbWFpbC5jb20nLFxuICAgICAgICAgIHNlcnZpY2U6IFwiU2Fpc2lzc2V6IGxhIGRlbWFuZGUgZCdpbnRlcnZlbnRpb25cIixcbiAgICAgICAgICBvdGhlcjogJ1NhaXNpc3NleiB2b3RyZSB0ZXh0ZScsXG4gICAgICAgICAgYWN0aW9uOiAnU8OpbGVjdGlvbm5lciB1bmUgYWN0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBxdWVzdGlvbjoge1xuICAgICAgICAgIFBIT05FOiAnQXBwZWxlcicsXG4gICAgICAgICAgU01TOiAnSW5mb3JtZXInLFxuICAgICAgICAgIEVNQUlMOiAnRW52b3llciB1biBlLW1haWwgw6AnLFxuICAgICAgICAgIEFTS0VEX1NFUlZJQ0U6IFwiQ3LDqWVyIHVuZSBkZW1hbmRlIGTigJlpbnRlcnZlbnRpb24gR01BT1wiLFxuICAgICAgICAgIE9USEVSOiAnQXV0cmUnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgTkVXOiAnQ3LDqcOpJyxcbiAgICAgICAgQVNLRUQ6ICdEZW1hbmTDqScsXG4gICAgICAgIElOX1BST0dSRVNTOiAnRW4gY291cnMnLFxuICAgICAgICBET05FOiAnVGVybWluw6knLFxuICAgICAgICBDQU5DRUxMRUQ6ICdBbm51bMOpJyxcbiAgICAgICAgT1RfQ0xPU0VEOiAnVGVybWluw6knLFxuICAgICAgICBhY3RpdmU6e1xuICAgICAgICAgIHRydWU6ICdBY3RpZicsXG4gICAgICAgICAgZmFsc2U6ICdJbmFjdGlmJ1xuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgYXNzb2NpYXRpb25Nb2RhbDoge1xuICAgICAgdGl0bGU6ICdBc3NvY2llciDDoCB1bmUgcHJvY8OpZHVyZScsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Fzc29jaWVyIHVuZSBwcm9jw6lkdXJlIMOgIGRlcyDDqXbDqW5lbWVudHMgcGVybWV0IGRlIHPDqWxlY3Rpb25uZXIgbGEgbGlzdGUgZGVzIGFjdGlvbnMgw6AgcsOpYWxpc2VyIHBvdXIgdHJhaXRlciBjZXMgw6l2w6luZW1lbnRzLicsXG4gICAgICBsaW5rZWRFdmVudHM6ICfDiXbDqW5lbWVudHMgbGnDqXMnLFxuICAgICAgY2F0ZWdvcnlGaWx0ZXI6ICdGaWx0cmVyIHBhciBtw6l0aWVyJyxcbiAgICAgIHNlYXJjaFByb2NlZHVyZTogJ1JlY2hlcmNoZXIgdW5lIHByb2PDqWR1cmUnLFxuICAgICAgZG9tYWluUGxhY2Vob2xkZXI6ICdTw6lsZWN0aW9ubmVyIHVuIG3DqXRpZXInLFxuICAgICAgcHJvY2VkdXJlUGxhY2Vob2xkZXI6ICdSZWNoZXJjaGV6IHBhciBpZGVudGlmaWFudCwgdGl0cmUgb3UgY3LDqWF0ZXVyJ1xuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICBjb25zdWx0OiAnQ29uc3VsdGVyJyxcbiAgICAgIGNsb3NlOiAnQ2zDtHR1cmVyJyxcbiAgICAgIHNlbmQ6ICdFbnZveWVyJyxcbiAgICAgIGNvbW1lbnQ6ICdDb21tZW50ZXInLFxuICAgICAgYXNzb2NpYXRlOiAnQXNzb2NpZXIgw6AgdW5lIHByb2PDqWR1cmUnLFxuICAgICAgdmFsaWRhdGU6ICdWYWxpZGVyJyxcbiAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlcicsXG4gICAgICB1cGRhdGU6ICdNb2RpZmllcicsXG4gICAgICBjcmVhdGU6ICdDcsOpZXInXG4gICAgfSxcbiAgICBzZXJ2aWNlOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgTkVXOiAnQ3LDqcOpJyxcbiAgICAgICAgQVNLRUQ6ICdEZW1hbmTDqScsXG4gICAgICAgIElOX1BST0dSRVNTOiAnRW4gY291cnMnLFxuICAgICAgICBET05FOiAnVGVybWluw6knLFxuICAgICAgICBDQU5DRUxMRUQ6ICdBbm51bMOpJyxcbiAgICAgICAgT1RfQ0xPU0VEOiAnVGVybWluw6knLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiBcIkNyw6llciB1bmUgZGVtYW5kZSBkJ2ludGVydmVudGlvblwiLFxuICAgICAgc3VidGl0bGU6IFwiQ3LDqWVyIHVuZSBkZW1hbmRlIGQnaW50ZXJ2ZW50aW9uIHBvdXIgdHJhaXRlciBjZXMgw6l2w6luZW1lbnRzLlwiLFxuICAgICAgcmVhc29uOiAnT2JqZXQgZGUgbGEgZGVtYW5kZScsXG4gICAgICB0eXBlOiAnTmF0dXJlIGRlIGxhIGRlbWFuZGUnLFxuICAgICAgcHJpb3JpdHk6ICdQcmlvcml0w6knLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBkZSBsYSBkZW1hbmRlJyxcbiAgICAgIHRhcmdldDogJ8OJcXVpcGVtZW50JyxcbiAgICAgIGd0aTogJ0dUSSAoaGV1cmVzKScsXG4gICAgICBndHI6ICdHVFIgKGhldXJlcyknLFxuICAgICAgZ3RycDogJ0dUUlAgKGhldXJlcyknLFxuICAgICAgZGVzY3JpYmU6ICdEZXNjcmlwdGlvbiBkZSBsYSBkZW1hbmRlJyxcbiAgICAgIG5vRXF1aXA6ICdBdWN1biDDqXF1aXBlbWVudCcsXG4gICAgICBkb21haW46ICdNw6l0aWVyJyxcbiAgICAgIHByaW9yaXRpZXM6IHtcbiAgICAgICAgJzEtTUlORVVSJzogJ01pbmV1cicsXG4gICAgICAgICcyLU1BSkVVUic6ICdNYWpldXInLFxuICAgICAgICAnMy1CTE9RVUFOVCc6ICdCbG9xdWFudCdcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLXByb2NlZHVyZS1tb2RlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS1tb2RlbC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4vaHlwLWFjdGlvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh5cFByb2NlZHVyZU1vZGVsIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZztcbiAgY3JlYXRvcjogc3RyaW5nO1xuICBhY3Rpb25zOiBIeXBBY3Rpb25bXTtcbiAgdXNlQ291bnQ6IG51bWJlcjtcbiAgZG9tYWluOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLXByb2NlZHVyZS1tb2RlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS1tb2RlbC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4vaHlwLWFjdGlvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh5cFByb2NlZHVyZU1vZGVsIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZztcbiAgY3JlYXRvcjogc3RyaW5nO1xuICBhY3Rpb25zOiBIeXBBY3Rpb25bXTtcbiAgdXNlQ291bnQ6IG51bWJlcjtcbiAgZG9tYWluOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgbGFzdFVwZGF0ZURhdGVBY3RpdmU6IHN0cmluZztcbn1cbiJdfQ==
@@ -10,8 +10,9 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ngrx/effects";
11
11
  import * as i2 from "@angular/forms";
12
12
  import * as i3 from "@provoly/dashboard";
13
- import * as i4 from "../../general/procedure-actions/procedure-actions.component";
14
- import * as i5 from "../../general/for-datetime-local-pipe/for-datetime-local.pipe";
13
+ import * as i4 from "@angular/common";
14
+ import * as i5 from "../../general/procedure-actions/procedure-actions.component";
15
+ import * as i6 from "../../general/for-datetime-local-pipe/for-datetime-local.pipe";
15
16
  export class ProcedureModelDetailComponent extends SubscriptionnerDirective {
16
17
  set cancelModifications(evt) {
17
18
  this.modifications = {};
@@ -111,11 +112,11 @@ export class ProcedureModelDetailComponent extends SubscriptionnerDirective {
111
112
  this._outputModifications();
112
113
  }
113
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureModelDetailComponent, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureModelDetailComponent, selector: "hvy-procedure-model-detail", inputs: { model: "model", username: "username", title: "title", eventErrors: "eventErrors", readonly: "readonly", readOnlyComment: "readOnlyComment", cancelModifications: "cancelModifications" }, outputs: { eventErrorsChange: "eventErrorsChange", modified: "modified" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-procedure-detail\">\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <table>\n <tbody>\n <!--identifiant-->\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n <!--titre-->\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n @if (hasError('title')) {\n <span class=\"a-form-field -error\">{{ '@hvy.procedure.alreadyExists' | i18n }}</span>\n }\n </td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <!--createur-->\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n <!--date de cr\u00E9ation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <!--date de derni\u00E8re modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions?.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "readOnlyComment", "enableEditActions", "events", "disableSaveDIButton", "initialActions", "procedureModificationsActions", "actions"], outputs: ["modified", "commented", "refreshActions"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureModelDetailComponent, selector: "hvy-procedure-model-detail", inputs: { model: "model", username: "username", title: "title", eventErrors: "eventErrors", readonly: "readonly", readOnlyComment: "readOnlyComment", cancelModifications: "cancelModifications" }, outputs: { eventErrorsChange: "eventErrorsChange", modified: "modified" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-procedure-detail\">\n <div>\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n @if (modifiedModel && modifiedModel.active) {\n Proc\u00E9dure r\u00E9activ\u00E9e depuis le {{ model?.lastUpdateDateActive! | forDateTimeLocal }}\n } @else {\n Proc\u00E9dure d\u00E9sactiv\u00E9e depuis le {{ model?.lastUpdateDateActive! | forDateTimeLocal }}\n }\n </div>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <div>\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <span class=\"slt-ind2-bubble-container\">\n @if (model.active !== undefined) {\n <div [ngClass]=\"model.active ? '-green' : '-red'\">{{ '@hvy.procedure.status.active.' + model.active | i18n }}</div>\n }\n </span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n <!--titre-->\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n @if (hasError('title')) {\n <span class=\"a-form-field -error\">{{ '@hvy.procedure.alreadyExists' | i18n }}</span>\n }\n </td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <!--createur-->\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n <!--date de cr\u00E9ation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <!--date de derni\u00E8re modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions?.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i5.ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "readOnlyComment", "enableEditActions", "events", "disableSaveDIButton", "initialActions", "procedureModificationsActions", "actions"], outputs: ["modified", "commented", "refreshActions"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
115
116
  }
116
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureModelDetailComponent, decorators: [{
117
118
  type: Component,
118
- args: [{ selector: 'hvy-procedure-model-detail', template: "<div class=\"o-hvy-procedure-detail\">\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <table>\n <tbody>\n <!--identifiant-->\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n <!--titre-->\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n @if (hasError('title')) {\n <span class=\"a-form-field -error\">{{ '@hvy.procedure.alreadyExists' | i18n }}</span>\n }\n </td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <!--createur-->\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n <!--date de cr\u00E9ation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <!--date de derni\u00E8re modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions?.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
119
+ args: [{ selector: 'hvy-procedure-model-detail', template: "<div class=\"o-hvy-procedure-detail\">\n <div>\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n @if (modifiedModel && modifiedModel.active) {\n Proc\u00E9dure r\u00E9activ\u00E9e depuis le {{ model?.lastUpdateDateActive! | forDateTimeLocal }}\n } @else {\n Proc\u00E9dure d\u00E9sactiv\u00E9e depuis le {{ model?.lastUpdateDateActive! | forDateTimeLocal }}\n }\n </div>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <div>\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <span class=\"slt-ind2-bubble-container\">\n @if (model.active !== undefined) {\n <div [ngClass]=\"model.active ? '-green' : '-red'\">{{ '@hvy.procedure.status.active.' + model.active | i18n }}</div>\n }\n </span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n <!--titre-->\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n @if (hasError('title')) {\n <span class=\"a-form-field -error\">{{ '@hvy.procedure.alreadyExists' | i18n }}</span>\n }\n </td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <!--createur-->\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n <!--date de cr\u00E9ation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <!--date de derni\u00E8re modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions?.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
119
120
  }], ctorParameters: () => [{ type: i1.Actions }], propDecorators: { model: [{
120
121
  type: Input
121
122
  }], username: [{
@@ -135,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
135
136
  }], cancelModifications: [{
136
137
  type: Input
137
138
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLW1vZGVsLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9wcm9jZWR1cmUvbW9kZWwtZGV0YWlsL3Byb2NlZHVyZS1tb2RlbC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvcHJvY2VkdXJlL21vZGVsLWRldGFpbC9wcm9jZWR1cmUtbW9kZWwtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFNM0IsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHdCQUF3QjtJQWN6RSxJQUFhLG1CQUFtQixDQUFDLEdBQVE7UUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQXVCLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQW9CLFFBQWlCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQXJCNUIsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUNsQyxrQkFBYSxHQUErQixFQUFFLENBQUM7UUFFL0MsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFdBQU0sR0FBc0MsRUFBRSxDQUFDO1FBQ3RDLGdCQUFXLEdBQXdDLEVBQUUsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBcUMsQ0FBQztRQUMxRSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQW1ELENBQUM7UUFDdEUsWUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDbkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQThHZCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBakcvQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDOUI7YUFDRSxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUMsQ0FDTCxDQUFBO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDWjthQUNFLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUNMLENBQUE7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUNaO2FBQ0UsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQ0wsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRSxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXdCO1FBQy9CLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWSxFQUFFLE1BQWE7UUFDaEMsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUNkLElBQUcsSUFBSSxLQUFLLE1BQU0sRUFBQyxDQUFDO2dCQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUM7Z0JBQ3JFLElBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUM7b0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQztZQUNELGFBQWE7WUFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRXpFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLGFBQWE7Z0JBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNsQyxhQUFhO29CQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUVwQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLGFBQWE7b0JBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBRUgsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFtQjtRQUMvQixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBeEhVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHdXQ2hCMUMsa2pKQWlIQTs7MkZEakdhLDZCQUE2QjtrQkFKekMsU0FBUzsrQkFDRSw0QkFBNEI7NEVBSTdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFTyxtQkFBbUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1wcm9jZWR1cmUtbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IERPTUFJTlMgfSBmcm9tICcuLi8uLi9tb2RlbC9kb21haW5zLmNvbnN0YW50JztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHBhZElkIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9wYWQtaWQuZnVuY3Rpb24nO1xuaW1wb3J0IHtBY3Rpb25zLCBvZlR5cGV9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XG5pbXBvcnQge1Byb2NlZHVyZUFjdGlvbnN9IGZyb20gXCIuLi8uLi9zdG9yZS9wcm9jZWR1cmUvcHJvY2VkdXJlLmFjdGlvbnNcIjtcbmltcG9ydCB7ZGVsYXl9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtbW9kZWwtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2NlZHVyZS1tb2RlbC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByb2NlZHVyZU1vZGVsRGV0YWlsQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbW9kZWw/OiBIeXBQcm9jZWR1cmVNb2RlbDtcbiAgQElucHV0KCkgdXNlcm5hbWU6IHN0cmluZyA9ICd4eHgnO1xuICBtb2RpZmljYXRpb25zOiBQYXJ0aWFsPEh5cFByb2NlZHVyZU1vZGVsPiA9IHt9O1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgc2F2ZWQgPSBmYWxzZTtcbiAgZXJyb3JzOiB7IGZpZWxkOiBzdHJpbmc7IGNvZGU6IHN0cmluZyB9W10gPSBbXTtcbiAgQElucHV0KCkgZXZlbnRFcnJvcnMgIDogeyBmaWVsZDogc3RyaW5nOyBjb2RlOiBzdHJpbmcgfVtdID0gW107XG4gIEBPdXRwdXQoKSBldmVudEVycm9yc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogc3RyaW5nOyBjb2RlOiBzdHJpbmcgfVtdPigpO1xuICBAT3V0cHV0KCkgbW9kaWZpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFtQYXJ0aWFsPEh5cFByb2NlZHVyZU1vZGVsPiwgSHlwUHJvY2VkdXJlTW9kZWxdPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRE9NQUlOUyA9IERPTUFJTlMudmFsdWVzO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkT25seUNvbW1lbnQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgY2FuY2VsTW9kaWZpY2F0aW9ucyhldnQ6IGFueSkge1xuICAgIHRoaXMubW9kaWZpY2F0aW9ucyA9IHt9O1xuICAgIHRoaXMuX291dHB1dE1vZGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIGdldCBtb2RpZmllZE1vZGVsKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMubW9kZWwsIC4uLih0aGlzLm1vZGlmaWNhdGlvbnMgPz8ge30pIH0gYXMgSHlwUHJvY2VkdXJlTW9kZWw7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoUHJvY2VkdXJlQWN0aW9ucy5zYXZlKVxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiByZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYXZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIClcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoUHJvY2VkdXJlQWN0aW9ucy5zYXZlU3VjY2VzcyksXG4gICAgICAgIGRlbGF5KDEwMDApLFxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiByZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYXZlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKFByb2NlZHVyZUFjdGlvbnMuc2F2ZUZhaWx1cmUpLFxuICAgICAgICBkZWxheSgxMDAwKSxcbiAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgaGFzRXJyb3IocHJvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmZpbmQoKGVycikgPT4gZXJyLmZpZWxkID09PSBwcm9wKSA/PyBmYWxzZTtcbiAgfVxuXG4gIHZhbGlkYXRlKG1vZGVsOiBIeXBQcm9jZWR1cmVNb2RlbCkge1xuICAgIGlmICghIW1vZGVsKSB7XG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCAvXlxccyskLyk7XG4gICAgICBpZiAoIW1vZGVsLm5hbWUgfHwgbW9kZWwubmFtZS5sZW5ndGggPT09IDAgfHwgcmVnZXgudGVzdChtb2RlbC5uYW1lKSkge1xuICAgICAgICB0aGlzLmVycm9ycy5wdXNoKHsgZmllbGQ6ICduYW1lJywgY29kZTogJ3JlcXVpcmVkJyB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghbW9kZWwuZG9tYWluIHx8IG1vZGVsLmRvbWFpbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5lcnJvcnMucHVzaCh7IGZpZWxkOiAnZG9tYWluJywgY29kZTogJ3JlcXVpcmVkJyB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghbW9kZWwuZGVzY3JpcHRpb24gfHwgbW9kZWwuZGVzY3JpcHRpb24ubGVuZ3RoID09PSAwIHx8IHJlZ2V4LnRlc3QobW9kZWwuZGVzY3JpcHRpb24pKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLnB1c2goeyBmaWVsZDogJ2Rlc2NyaXB0aW9uJywgY29kZTogJ3JlcXVpcmVkJyB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXZlbnRFcnJvcnNDaGFuZ2UubmV4dCh0aGlzLmVycm9ycyk7XG4gICAgfVxuICB9XG5cbiAgbW9kaWZ5KHByb3A6IHN0cmluZywgJGV2ZW50OiBFdmVudCkge1xuICAgIGlmKCF0aGlzLnNhdmVkKXtcbiAgICAgIGlmKHByb3AgPT09ICduYW1lJyl7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5lcnJvcnMuZmluZEluZGV4KGVycm9yID0+IGVycm9yLmZpZWxkID09ICd0aXRsZScpO1xuICAgICAgICBpZihpbmRleCAhPT0gLTEpe1xuICAgICAgICAgIHRoaXMuZXJyb3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQgPyAkZXZlbnQudGFyZ2V0Py52YWx1ZSA6ICRldmVudDtcblxuICAgICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5tb2RlbFtwcm9wXSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5tb2RpZmljYXRpb25zW3Byb3BdID0gbmV3VmFsdWU7XG5cbiAgICAgICAgICB0aGlzLl9vdXRwdXRNb2RpZmljYXRpb25zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGRlbGV0ZSB0aGlzLm1vZGlmaWNhdGlvbnNbcHJvcF07XG4gICAgICAgICAgdGhpcy5fb3V0cHV0TW9kaWZpY2F0aW9ucygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIF9vdXRwdXRNb2RpZmljYXRpb25zKCkge1xuICAgIHRoaXMudmFsaWRhdGUodGhpcy5tb2RpZmllZE1vZGVsKTtcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQoW3RoaXMubW9kaWZpY2F0aW9ucywgdGhpcy5tb2RpZmllZE1vZGVsXSk7XG4gIH1cblxuICB1cGRhdGVBY3Rpb25zKCRldmVudDogSHlwQWN0aW9uW10pIHtcbiAgICBpZiAoZXF1YWwoJGV2ZW50LCB0aGlzLm1vZGVsPy5hY3Rpb25zKSkge1xuICAgICAgZGVsZXRlIHRoaXMubW9kaWZpY2F0aW9ucy5hY3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGlmaWNhdGlvbnMuYWN0aW9ucyA9ICRldmVudDtcbiAgICB9XG4gICAgdGhpcy5fb3V0cHV0TW9kaWZpY2F0aW9ucygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZElkID0gcGFkSWQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktcHJvY2VkdXJlLWRldGFpbFwiPlxuICA8aDE+e3sgdGl0bGUgPz8gJ0BodnkucHJvY2VkdXJlLmRldGFpbCcgfCBpMThuIH19PC9oMT5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LXByb2NlZHVyZS1kZXRhaWxfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1wcm9jZWR1cmUtZGV0YWlsX19jb250YWluZXJfX3Njcm9sbGFibGVcIj5cbiAgICAgIEBpZiAobW9kaWZpZWRNb2RlbDsgYXMgbW9kZWwpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LXByb2NlZHVyZS1kZXRhaWxfX2Zvcm1cIj5cbiAgICAgICAgICA8aDM+e3sgJ0BodnkucHJvY2VkdXJlLmZvcm1UaXRsZScgfCBpMThuIH19PC9oMz5cbiAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIDwhLS1pZGVudGlmaWFudC0tPlxuICAgICAgICAgICAgICBAaWYgKG1vZGVsLmlkID4gMCkge1xuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuaWQnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbdmFsdWVdPVwicGFkSWQuZm4obW9kZWwuaWQpXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8IS0tdGl0cmUtLT5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5wcm9jZWR1cmUudGl0bGUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ25hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJtb2RlbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJtb2RpZnkoJ25hbWUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW21heExlbmd0aF09XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgQGlmIChoYXNFcnJvcigndGl0bGUnKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImEtZm9ybS1maWVsZCAtZXJyb3JcIj57eyAnQGh2eS5wcm9jZWR1cmUuYWxyZWFkeUV4aXN0cycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwhLS1tZXRpZXItLT5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5kb21haW4ubmFtZScgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJET01BSU5TXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZWwuZG9tYWluXCJcbiAgICAgICAgICAgICAgICAgICAgaTE4blByZWZpeD1cIkBodnkuZXZlbnQuZG9tYWluLlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ2RvbWFpbicpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kaWZ5KCdkb21haW4nLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPCEtLWRlc2NyaXB0aW9uLS0+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkucHJvY2VkdXJlLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCdkZXNjcmlwdGlvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kaWZ5KCdkZXNjcmlwdGlvbicsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjI1NlwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tY3JlYXRldXItLT5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5wcm9jZWR1cmUuY3JlYXRvcicgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cIm1vZGVsLmNyZWF0b3JcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwhLS1kYXRlIGRlIGNyw6lhdGlvbi0tPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5jcmVhdGlvbkRhdGUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVsLmNyZWF0aW9uRGF0ZSB8IGZvckRhdGVUaW1lTG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwhLS1kYXRlIGRlIGRlcm5pw6hyZSBtb2RpZmljYXRpb24tLT5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVsLmxhc3RNb2RpZmljYXRpb25EYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1wcm9jZWR1cmUtZGV0YWlsX19hY3Rpb25zXCI+XG4gICAgICAgICAgPGgzPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb25zJyB8IGkxOG4gfX0gKHt7IG1vZGVsLmFjdGlvbnM/Lmxlbmd0aCB9fSk8L2gzPlxuICAgICAgICAgIDxodnktcHJvY2VkdXJlLWFjdGlvbnNcbiAgICAgICAgICAgIFthY3Rpb25zXT1cIm1vZGVsLmFjdGlvbnNcIlxuICAgICAgICAgICAgKG1vZGlmaWVkKT1cInVwZGF0ZUFjdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW3JlYWRPbmx5Q29tbWVudF09XCJyZWFkT25seUNvbW1lbnRcIlxuICAgICAgICAgICAgbW9kZT1cIm1vZGVsXCJcbiAgICAgICAgICAgIFtlbmFibGVFZGl0QWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgICA+PC9odnktcHJvY2VkdXJlLWFjdGlvbnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLW1vZGVsLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9wcm9jZWR1cmUvbW9kZWwtZGV0YWlsL3Byb2NlZHVyZS1tb2RlbC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvcHJvY2VkdXJlL21vZGVsLWRldGFpbC9wcm9jZWR1cmUtbW9kZWwtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTTNCLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx3QkFBd0I7SUFjekUsSUFBYSxtQkFBbUIsQ0FBQyxHQUFRO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUF1QixDQUFDO0lBQy9FLENBQUM7SUFFRCxZQUFvQixRQUFpQjtRQUNuQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVM7UUFyQjVCLGFBQVEsR0FBVyxLQUFLLENBQUM7UUFDbEMsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBRS9DLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxXQUFNLEdBQXNDLEVBQUUsQ0FBQztRQUN0QyxnQkFBVyxHQUF3QyxFQUFFLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFDMUUsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFtRCxDQUFDO1FBQ3RFLFlBQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ25DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUE4R2QsVUFBSyxHQUFHLEtBQUssQ0FBQztRQWpHL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQzlCO2FBQ0UsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLENBQUM7U0FDRixDQUFDLENBQ0wsQ0FBQTtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQ1o7YUFDRSxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDckIsQ0FBQztTQUNGLENBQUMsQ0FDTCxDQUFBO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDWjthQUNFLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUF3QjtRQUMvQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMxRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxNQUFhO1FBQ2hDLElBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUM7WUFDZCxJQUFHLElBQUksS0FBSyxNQUFNLEVBQUMsQ0FBQztnQkFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDO2dCQUNyRSxJQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDO29CQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7WUFDRCxhQUFhO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUV6RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixhQUFhO2dCQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsYUFBYTtvQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztvQkFFcEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixhQUFhO29CQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUVILENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBbUI7UUFDL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXhIVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix3V0NoQjFDLGtxS0ErSEE7OzJGRC9HYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCOzRFQUk3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRU8sbUJBQW1CO3NCQUEvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBQcm9jZWR1cmVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtcHJvY2VkdXJlLW1vZGVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBwYWRJZCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcGFkLWlkLmZ1bmN0aW9uJztcbmltcG9ydCB7QWN0aW9ucywgb2ZUeXBlfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xuaW1wb3J0IHtQcm9jZWR1cmVBY3Rpb25zfSBmcm9tIFwiLi4vLi4vc3RvcmUvcHJvY2VkdXJlL3Byb2NlZHVyZS5hY3Rpb25zXCI7XG5pbXBvcnQge2RlbGF5fSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktcHJvY2VkdXJlLW1vZGVsLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZWR1cmUtbW9kZWwtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVNb2RlbERldGFpbENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIG1vZGVsPzogSHlwUHJvY2VkdXJlTW9kZWw7XG4gIEBJbnB1dCgpIHVzZXJuYW1lOiBzdHJpbmcgPSAneHh4JztcbiAgbW9kaWZpY2F0aW9uczogUGFydGlhbDxIeXBQcm9jZWR1cmVNb2RlbD4gPSB7fTtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIHNhdmVkID0gZmFsc2U7XG4gIGVycm9yczogeyBmaWVsZDogc3RyaW5nOyBjb2RlOiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgpIGV2ZW50RXJyb3JzICA6IHsgZmllbGQ6IHN0cmluZzsgY29kZTogc3RyaW5nIH1bXSA9IFtdO1xuICBAT3V0cHV0KCkgZXZlbnRFcnJvcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgY29kZTogc3RyaW5nIH1bXT4oKTtcbiAgQE91dHB1dCgpIG1vZGlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcjxbUGFydGlhbDxIeXBQcm9jZWR1cmVNb2RlbD4sIEh5cFByb2NlZHVyZU1vZGVsXT4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IERPTUFJTlMgPSBET01BSU5TLnZhbHVlcztcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZE9ubHlDb21tZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGNhbmNlbE1vZGlmaWNhdGlvbnMoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLm1vZGlmaWNhdGlvbnMgPSB7fTtcbiAgICB0aGlzLl9vdXRwdXRNb2RpZmljYXRpb25zKCk7XG4gIH1cblxuICBnZXQgbW9kaWZpZWRNb2RlbCgpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLm1vZGVsLCAuLi4odGhpcy5tb2RpZmljYXRpb25zID8/IHt9KSB9IGFzIEh5cFByb2NlZHVyZU1vZGVsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKFByb2NlZHVyZUFjdGlvbnMuc2F2ZSlcbiAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKFByb2NlZHVyZUFjdGlvbnMuc2F2ZVN1Y2Nlc3MpLFxuICAgICAgICBkZWxheSgxMDAwKSxcbiAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShQcm9jZWR1cmVBY3Rpb25zLnNhdmVGYWlsdXJlKSxcbiAgICAgICAgZGVsYXkoMTAwMCksXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNhdmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGhhc0Vycm9yKHByb3A6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5maW5kKChlcnIpID0+IGVyci5maWVsZCA9PT0gcHJvcCkgPz8gZmFsc2U7XG4gIH1cblxuICB2YWxpZGF0ZShtb2RlbDogSHlwUHJvY2VkdXJlTW9kZWwpIHtcbiAgICBpZiAoISFtb2RlbCkge1xuICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cCggL15cXHMrJC8pO1xuICAgICAgaWYgKCFtb2RlbC5uYW1lIHx8IG1vZGVsLm5hbWUubGVuZ3RoID09PSAwIHx8IHJlZ2V4LnRlc3QobW9kZWwubmFtZSkpIHtcbiAgICAgICAgdGhpcy5lcnJvcnMucHVzaCh7IGZpZWxkOiAnbmFtZScsIGNvZGU6ICdyZXF1aXJlZCcgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW1vZGVsLmRvbWFpbiB8fCBtb2RlbC5kb21haW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLnB1c2goeyBmaWVsZDogJ2RvbWFpbicsIGNvZGU6ICdyZXF1aXJlZCcgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW1vZGVsLmRlc2NyaXB0aW9uIHx8IG1vZGVsLmRlc2NyaXB0aW9uLmxlbmd0aCA9PT0gMCB8fCByZWdleC50ZXN0KG1vZGVsLmRlc2NyaXB0aW9uKSkge1xuICAgICAgICB0aGlzLmVycm9ycy5wdXNoKHsgZmllbGQ6ICdkZXNjcmlwdGlvbicsIGNvZGU6ICdyZXF1aXJlZCcgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmV2ZW50RXJyb3JzQ2hhbmdlLm5leHQodGhpcy5lcnJvcnMpO1xuICAgIH1cbiAgfVxuXG4gIG1vZGlmeShwcm9wOiBzdHJpbmcsICRldmVudDogRXZlbnQpIHtcbiAgICBpZighdGhpcy5zYXZlZCl7XG4gICAgICBpZihwcm9wID09PSAnbmFtZScpe1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZXJyb3JzLmZpbmRJbmRleChlcnJvciA9PiBlcnJvci5maWVsZCA9PSAndGl0bGUnKTtcbiAgICAgICAgaWYoaW5kZXggIT09IC0xKXtcbiAgICAgICAgICB0aGlzLmVycm9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9ICRldmVudCBpbnN0YW5jZW9mIEV2ZW50ID8gJGV2ZW50LnRhcmdldD8udmFsdWUgOiAkZXZlbnQ7XG5cbiAgICAgIGlmICh0aGlzLm1vZGVsKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMubW9kZWxbcHJvcF0gIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMubW9kaWZpY2F0aW9uc1twcm9wXSA9IG5ld1ZhbHVlO1xuXG4gICAgICAgICAgdGhpcy5fb3V0cHV0TW9kaWZpY2F0aW9ucygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBkZWxldGUgdGhpcy5tb2RpZmljYXRpb25zW3Byb3BdO1xuICAgICAgICAgIHRoaXMuX291dHB1dE1vZGlmaWNhdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBfb3V0cHV0TW9kaWZpY2F0aW9ucygpIHtcbiAgICB0aGlzLnZhbGlkYXRlKHRoaXMubW9kaWZpZWRNb2RlbCk7XG4gICAgdGhpcy5tb2RpZmllZC5uZXh0KFt0aGlzLm1vZGlmaWNhdGlvbnMsIHRoaXMubW9kaWZpZWRNb2RlbF0pO1xuICB9XG5cbiAgdXBkYXRlQWN0aW9ucygkZXZlbnQ6IEh5cEFjdGlvbltdKSB7XG4gICAgaWYgKGVxdWFsKCRldmVudCwgdGhpcy5tb2RlbD8uYWN0aW9ucykpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLm1vZGlmaWNhdGlvbnMuYWN0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RpZmljYXRpb25zLmFjdGlvbnMgPSAkZXZlbnQ7XG4gICAgfVxuICAgIHRoaXMuX291dHB1dE1vZGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYWRJZCA9IHBhZElkO1xufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LXByb2NlZHVyZS1kZXRhaWxcIj5cbiAgPGRpdj5cbiAgICA8aDE+e3sgdGl0bGUgPz8gJ0BodnkucHJvY2VkdXJlLmRldGFpbCcgfCBpMThuIH19PC9oMT5cbiAgICBAaWYgKG1vZGlmaWVkTW9kZWwgJiYgbW9kaWZpZWRNb2RlbC5hY3RpdmUpIHtcbiAgICAgIFByb2PDqWR1cmUgcsOpYWN0aXbDqWUgZGVwdWlzIGxlIHt7IG1vZGVsPy5sYXN0VXBkYXRlRGF0ZUFjdGl2ZSEgfCBmb3JEYXRlVGltZUxvY2FsIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICBQcm9jw6lkdXJlIGTDqXNhY3RpdsOpZSBkZXB1aXMgbGUge3sgbW9kZWw/Lmxhc3RVcGRhdGVEYXRlQWN0aXZlISB8IGZvckRhdGVUaW1lTG9jYWwgfX1cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1odnktcHJvY2VkdXJlLWRldGFpbF9fY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LXByb2NlZHVyZS1kZXRhaWxfX2NvbnRhaW5lcl9fc2Nyb2xsYWJsZVwiPlxuICAgICAgQGlmIChtb2RpZmllZE1vZGVsOyBhcyBtb2RlbCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktcHJvY2VkdXJlLWRldGFpbF9fZm9ybVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDM+e3sgJ0BodnkucHJvY2VkdXJlLmZvcm1UaXRsZScgfCBpMThuIH19PC9oMz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2x0LWluZDItYnViYmxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICBAaWYgKG1vZGVsLmFjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJtb2RlbC5hY3RpdmUgPyAnLWdyZWVuJyA6ICctcmVkJ1wiPnt7ICdAaHZ5LnByb2NlZHVyZS5zdGF0dXMuYWN0aXZlLicgKyBtb2RlbC5hY3RpdmUgfCBpMThuICB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHRhYmxlPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICA8IS0taWRlbnRpZmlhbnQtLT5cbiAgICAgICAgICAgICAgQGlmIChtb2RlbC5pZCA+IDApIHtcbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQubG9nLmV2ZW50LmlkJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cInBhZElkLmZuKG1vZGVsLmlkKVwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPCEtLXRpdHJlLS0+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkucHJvY2VkdXJlLnRpdGxlJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCduYW1lJylcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9kZWwubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibW9kaWZ5KCduYW1lJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaGFzRXJyb3IoJ3RpdGxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWZvcm0tZmllbGQgLWVycm9yXCI+e3sgJ0BodnkucHJvY2VkdXJlLmFscmVhZHlFeGlzdHMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tbWV0aWVyLS0+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQuZG9tYWluLm5hbWUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiRE9NQUlOU1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsLmRvbWFpblwiXG4gICAgICAgICAgICAgICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LmV2ZW50LmRvbWFpbi5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCdkb21haW4nKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeSgnZG9tYWluJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwhLS1kZXNjcmlwdGlvbi0tPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LnByb2NlZHVyZS5kZXNjcmlwdGlvbicgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcignZGVzY3JpcHRpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeSgnZGVzY3JpcHRpb24nLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW21heExlbmd0aF09XCIyNTZcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPCEtLWNyZWF0ZXVyLS0+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkucHJvY2VkdXJlLmNyZWF0b3InIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFt2YWx1ZV09XCJtb2RlbC5jcmVhdG9yXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tZGF0ZSBkZSBjcsOpYXRpb24tLT5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQuY3JlYXRpb25EYXRlJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJtb2RlbC5jcmVhdGlvbkRhdGUgfCBmb3JEYXRlVGltZUxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tZGF0ZSBkZSBkZXJuacOocmUgbW9kaWZpY2F0aW9uLS0+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJtb2RlbC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IGZvckRhdGVUaW1lTG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktcHJvY2VkdXJlLWRldGFpbF9fYWN0aW9uc1wiPlxuICAgICAgICAgIDxoMz57eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9ucycgfCBpMThuIH19ICh7eyBtb2RlbC5hY3Rpb25zPy5sZW5ndGggfX0pPC9oMz5cbiAgICAgICAgICA8aHZ5LXByb2NlZHVyZS1hY3Rpb25zXG4gICAgICAgICAgICBbYWN0aW9uc109XCJtb2RlbC5hY3Rpb25zXCJcbiAgICAgICAgICAgIChtb2RpZmllZCk9XCJ1cGRhdGVBY3Rpb25zKCRldmVudClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFtyZWFkT25seUNvbW1lbnRdPVwicmVhZE9ubHlDb21tZW50XCJcbiAgICAgICAgICAgIG1vZGU9XCJtb2RlbFwiXG4gICAgICAgICAgICBbZW5hYmxlRWRpdEFjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvaHZ5LXByb2NlZHVyZS1hY3Rpb25zPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==