@provoly/hypervisor 1.4.78 → 1.4.80

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.
@@ -30,7 +30,7 @@ export class ChoiceFilterComponent extends HvyUnitFilterComponent {
30
30
  if (this.allSelected()) {
31
31
  return this.i18nService.instant(this.allLabel);
32
32
  }
33
- if (this.value().length > 1) {
33
+ if (this.value().length >= 0) {
34
34
  return `(${this.value().length})`;
35
35
  }
36
36
  if (this.value().length === 1) {
@@ -133,11 +133,11 @@ export class ChoiceFilterComponent extends HvyUnitFilterComponent {
133
133
  setTimeout(() => (this.inhibate = undefined), 50);
134
134
  }
135
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ChoiceFilterComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.PryI18nService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { allLabel: "allLabel", label: "label", i18nPrefix: "i18nPrefix", addNonLeaves: "addNonLeaves", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { allLabel: "allLabel", label: "label", i18nPrefix: "i18nPrefix", addNonLeaves: "addNonLeaves", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-no-value]=\"displayValue()==='(0)'\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
137
137
  }
138
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ChoiceFilterComponent, decorators: [{
139
139
  type: Component,
140
- args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n" }]
140
+ args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-no-value]=\"displayValue()==='(0)'\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n" }]
141
141
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i3.PryI18nService }, { type: i0.ElementRef }], propDecorators: { allLabel: [{
142
142
  type: Input
143
143
  }], label: [{
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
152
152
  type: ViewChild,
153
153
  args: ['template', { read: TemplateRef }]
154
154
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2Nob2ljZS9jaG9pY2UtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2ZpbHRlcnMvY2hvaWNlL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBRVIsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBWXJDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7YUFDeEQsY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBeUJyQixZQUNVLEtBQVksRUFDWixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsV0FBMkIsRUFDM0IsR0FBZTtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQU5BLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZ0JBQVcsR0FBWCxX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QUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs4R0EvSVUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEtBRnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsMkdBYXZFLFdBQVcsb0RDMUM1QywyMERBa0RBOzsyRkRuQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixhQUVsQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztxTEFNN0YsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFd0MsUUFBUTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdnlVbml0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaHZ5LXVuaXQtZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEh2eUNob2ljZUZpbHRlciA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogeyBrZXk6IHN0cmluZyB9W107XG59W107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1jaG9pY2UtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENob2ljZUZpbHRlckNvbXBvbmVudCkgfV1cbn0pXG5leHBvcnQgY2xhc3MgQ2hvaWNlRmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgaWRDb3VudGVyID0gMDtcbiAgaWQgPSAtMTtcblxuICBASW5wdXQoKSBhbGxMYWJlbDogc3RyaW5nID0gJ0BodnkuZXZlbnQuZmlsdGVyLmNob2ljZS5hbGwnO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ25vLWxhYmVsLWRlZmluZWQnO1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYWRkTm9uTGVhdmVzOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbHVlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmdbXT4gPSBzaWduYWwoW10pO1xuICBASW5wdXQoKSBjaG9pY2VzOiBIdnlDaG9pY2VGaWx0ZXIgPSBbXTtcbiAgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGluaGliYXRlPzogc3RyaW5nO1xuICBkaXNwbGF5VmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCh0aGlzLmFsbExhYmVsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUoKS5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gYCgke3RoaXMudmFsdWUoKS5sZW5ndGh9KWA7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuU2VydmljZS5pbnN0YW50KHRoaXMuaTE4blByZWZpeCArIHRoaXMudmFsdWUoKVswXSk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBDaG9pY2VGaWx0ZXJDb21wb25lbnQuaWRDb3VudGVyKys7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmZpbHRlcnMpLCB0aGlzLl9maWx0ZXJTZXQkXSkuc3Vic2NyaWJlKChbZmlsdGVycywgZmlsdGVyU2V0XSkgPT4ge1xuICAgICAgICB0aGlzLmFzc2lnblZhbHVlKFxuICAgICAgICAgIChmaWx0ZXJzW2ZpbHRlclNldF0gPz8ge30pLmhhc093blByb3BlcnR5KHRoaXMucHJvcClcbiAgICAgICAgICAgID8gZmlsdGVyc1tmaWx0ZXJTZXRdW3RoaXMucHJvcF0ubGVuZ3RoID09PSAxICYmIGZpbHRlcnNbZmlsdGVyU2V0XVt0aGlzLnByb3BdWzBdID09PSAnJ1xuICAgICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICAgIDogZmlsdGVyc1tmaWx0ZXJTZXRdW3RoaXMucHJvcF1cbiAgICAgICAgICAgIDogdGhpcy5hbGxWYWx1ZXMoKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGFyYW1zKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB7XG4gICAgaWYgKHRoaXMudmFsdWUoKS5sZW5ndGggPT09IHRoaXMuYWxsVmFsdWVzKCkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiB7IFt0aGlzLnByb3BdOiB0aGlzLnZhbHVlKCkubGVuZ3RoID09PSAwID8gWycnXSA6IHRoaXMudmFsdWUoKSB9O1xuICB9XG5cbiAgdG9nZ2xlTW9kYWwoKSB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMudHJpZ2dlckluaGliYXRlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJyxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ20tY29udGV4dC1tZW51LXdyYXBwZXInLCAnby1jaG9pY2UtZmlsdGVyLXBvcHVwJ11cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZU1vZGFsKCkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBjb25zdCBjb250ZXh0TWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vLWNob2ljZS1maWx0ZXItcG9wdXAnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmICghIWNvbnRleHRNZW51KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS5sZWZ0ID0gcmVjdC54ICsgJ3B4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUubWluV2lkdGggPSByZWN0LnJpZ2h0IC0gcmVjdC54ICsgJ3B4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUudG9wID0gcmVjdC5ib3R0b20gKyAncHgnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrQWxsKCkge1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKCkpIHtcbiAgICAgIHRoaXMuYXNzaWduVmFsdWUoW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKHRoaXMuYWxsVmFsdWVzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZShlbHQ6IHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogeyBrZXk6IHN0cmluZyB9W10gfSkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQoZWx0KTtcbiAgICBjb25zdCBlbHRTdWJLZXlzID0gIWVsdC5jaGlsZHJlbiA/IFtlbHQua2V5XSA6IGVsdC5jaGlsZHJlbi5tYXAoKGNoKSA9PiBjaC5rZXkpO1xuICAgIGlmICghaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5hc3NpZ25WYWx1ZShbLi4ubmV3IFNldChbLi4udGhpcy52YWx1ZSgpLCAuLi5lbHRTdWJLZXlzXSldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKCkuZmlsdGVyKCh2KSA9PiAhZWx0U3ViS2V5cy5pbmNsdWRlcyh2KSkpO1xuICAgIH1cbiAgfVxuXG4gIGFsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNob2ljZXMubWFwKChjaG9pY2UpID0+IHRoaXMuaXNTZWxlY3RlZChjaG9pY2UpKS5yZWR1Y2UoKHAsIGMpID0+IHAgJiYgYywgdHJ1ZSk7XG4gIH1cblxuICBpc1NlbGVjdGVkKGNob2ljZTogeyBrZXk6IHN0cmluZzsgY2hpbGRyZW4/OiB7IGtleTogc3RyaW5nIH1bXSB9KTogYm9vbGVhbiB7XG4gICAgaWYgKCFjaG9pY2UuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlKCkuaW5jbHVkZXMoY2hvaWNlLmtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjaG9pY2UuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gdGhpcy5pc1NlbGVjdGVkKGNoaWxkKSkucmVkdWNlKChwLCBjKSA9PiBwICYmIGMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGFsbFZhbHVlcygpIHtcbiAgICBjb25zdCBicmFuY2hlcyA9IHRoaXMuY2hvaWNlcy5maWx0ZXIoKGNob2ljZSkgPT4gY2hvaWNlLmNoaWxkcmVuKS5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLmtleSk7XG4gICAgcmV0dXJuIHRoaXMuY2hvaWNlc1xuICAgICAgLm1hcCgoY2hvaWNlKSA9PlxuICAgICAgICAhY2hvaWNlLmNoaWxkcmVuXG4gICAgICAgICAgPyBbY2hvaWNlLmtleV1cbiAgICAgICAgICA6IFsuLi5jaG9pY2UuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gY2hpbGQua2V5KSwgLi4uKHRoaXMuYWRkTm9uTGVhdmVzID8gYnJhbmNoZXMgOiBbXSldXG4gICAgICApXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKHZhbHVlczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMuaW5oaWJhdGUgfHwgdGhpcy5pbmhpYmF0ZSAhPT0gdGhpcy5maWx0ZXJTZXQpIHtcbiAgICAgIHRoaXMudHJpZ2dlckluaGliYXRlKCk7XG5cbiAgICAgIC8vIEFkZCBvciByZW1vdmVzIHRyZWUgYnJhbmNoZXMsIGFjY29yZGluZyB0byBjaGlsZHJlbiBzdGF0dXNlc1xuICAgICAgY29uc3QgYnJhbmNoZXMgPSB0aGlzLmNob2ljZXMuZmlsdGVyKChjaG9pY2UpID0+IGNob2ljZS5jaGlsZHJlbikubWFwKChjaG9pY2UpID0+IGNob2ljZS5rZXkpO1xuICAgICAgY29uc3Qgd2l0aG91dEJyYW5jaGVzID0gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+ICFicmFuY2hlcy5pbmNsdWRlcyh2YWx1ZSkpO1xuICAgICAgY29uc3QgYWRkZWRCcmFuY2hWYWx1ZXMgPSB0aGlzLmNob2ljZXNcbiAgICAgICAgLmZpbHRlcigoY2hvaWNlKSA9PiBjaG9pY2UuY2hpbGRyZW4gJiYgIWNob2ljZS5jaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gIXZhbHVlcy5pbmNsdWRlcyhjaGlsZC5rZXkpKSlcbiAgICAgICAgLm1hcCgoY2hvaWNlKSA9PiBjaG9pY2Uua2V5KTtcbiAgICAgIHRoaXMudmFsdWUuc2V0KFsuLi53aXRob3V0QnJhbmNoZXMsIC4uLih0aGlzLmFkZE5vbkxlYXZlcyA/IGFkZGVkQnJhbmNoVmFsdWVzIDogW10pXSk7XG5cbiAgICAgIHRoaXMuY2hhbmdlZC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VySW5oaWJhdGUoKSB7XG4gICAgdGhpcy5pbmhpYmF0ZSA9IHRoaXMuZmlsdGVyU2V0O1xuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaW5oaWJhdGUgPSB1bmRlZmluZWQpLCA1MCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKClcIlxuICAjYnV0dG9uXG4gIGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlciAtaG9yaXpvbnRhbFwiXG4gIFtjbGFzcy4taGlnaGxpZ2h0XT1cImRpc3BsYXlWYWx1ZSgpICE9PSAoYWxsTGFiZWwgfCBpMThuKVwiXG4gIFtjbGFzcy4tZm9jdXNdPVwib3ZlcmxheVJlZlwiXG4+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyX19jaG9pY2UtdmFsdWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX2xhYmVsXCI+e3sgbGFiZWwgfCBpMThuIH19IDo8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyX192YWx1ZVwiIHR5cGU9XCJ0ZXh0XCIgaWQ9XCJzZWxlY3Rfe3sgaWQgfX1cIj57eyBkaXNwbGF5VmFsdWUoKSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxwcnktaWNvbiBbaWNvblN2Z109XCIhIW92ZXJsYXlSZWYgPyAnY2hldnJvbl90b3AnIDogJ2NoZXZyb25fYm90dG9tJ1wiIFt3aWR0aF09XCIxMFwiIFtoZWlnaHRdPVwiMTBcIj48L3ByeS1pY29uPlxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm0tY29udGV4dC1tZW51IG8taHZ5LWNob2ljZS1maWx0ZXJcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImNob2ljZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgaWQ9XCJjaG9pY2VcIlxuICAgIHJvbGU9XCJtZW51XCJcbiAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fYWxsXCI+XG4gICAgICA8cHJ5LWNoZWNrYm94IFtuZ01vZGVsXT1cImFsbFNlbGVjdGVkKClcIiAobmdNb2RlbENoYW5nZSk9XCJjbGlja0FsbCgpXCI+XG4gICAgICAgIDxzcGFuPnt7IGFsbExhYmVsIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgIDwvZGl2PlxuICAgIEBmb3IgKGVsdCBvZiBjaG9pY2VzOyB0cmFjayBlbHQua2V5KSB7XG4gICAgICBAaWYgKCFlbHQuY2hpbGRyZW4pIHtcbiAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKGVsdClcIiAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGUoZWx0KVwiIGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fcm9vdFwiPlxuICAgICAgICAgIDxzcGFuPnt7IGkxOG5QcmVmaXggKyBlbHQua2V5IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9wcnktY2hlY2tib3g+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKGVsdClcIiAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGUoZWx0KVwiIGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fcm9vdFwiPlxuICAgICAgICAgIDxzcGFuPnt7IGkxOG5QcmVmaXggKyBlbHQua2V5IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9wcnktY2hlY2tib3g+XG4gICAgICAgIEBmb3IgKGNoaWxkIG9mIGVsdC5jaGlsZHJlbjsgdHJhY2sgY2hpbGQua2V5KSB7XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgW25nTW9kZWxdPVwiaXNTZWxlY3RlZChjaGlsZClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGNoaWxkKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX2NoaWxkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBpMThuUHJlZml4ICsgY2hpbGQua2V5IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3ByeS1jaGVja2JveD5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2Nob2ljZS9jaG9pY2UtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2ZpbHRlcnMvY2hvaWNlL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBRVIsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBWXJDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7YUFDeEQsY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBeUJyQixZQUNVLEtBQVksRUFDWixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsV0FBMkIsRUFDM0IsR0FBZTtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQU5BLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZ0JBQVcsR0FBWCxX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QUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs4R0EvSVUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEtBRnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsMkdBYXZFLFdBQVcsb0RDMUM1QywyM0RBbURBOzsyRkRwQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixhQUVsQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztxTEFNN0YsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFd0MsUUFBUTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdnlVbml0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaHZ5LXVuaXQtZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEh2eUNob2ljZUZpbHRlciA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogeyBrZXk6IHN0cmluZyB9W107XG59W107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1jaG9pY2UtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENob2ljZUZpbHRlckNvbXBvbmVudCkgfV1cbn0pXG5leHBvcnQgY2xhc3MgQ2hvaWNlRmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgaWRDb3VudGVyID0gMDtcbiAgaWQgPSAtMTtcblxuICBASW5wdXQoKSBhbGxMYWJlbDogc3RyaW5nID0gJ0BodnkuZXZlbnQuZmlsdGVyLmNob2ljZS5hbGwnO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ25vLWxhYmVsLWRlZmluZWQnO1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYWRkTm9uTGVhdmVzOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbHVlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmdbXT4gPSBzaWduYWwoW10pO1xuICBASW5wdXQoKSBjaG9pY2VzOiBIdnlDaG9pY2VGaWx0ZXIgPSBbXTtcbiAgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGluaGliYXRlPzogc3RyaW5nO1xuICBkaXNwbGF5VmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCh0aGlzLmFsbExhYmVsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUoKS5sZW5ndGggPj0gMCkge1xuICAgICAgcmV0dXJuIGAoJHt0aGlzLnZhbHVlKCkubGVuZ3RofSlgO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSgpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCh0aGlzLmkxOG5QcmVmaXggKyB0aGlzLnZhbHVlKClbMF0pO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gQ2hvaWNlRmlsdGVyQ29tcG9uZW50LmlkQ291bnRlcisrO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKSwgdGhpcy5fZmlsdGVyU2V0JF0pLnN1YnNjcmliZSgoW2ZpbHRlcnMsIGZpbHRlclNldF0pID0+IHtcbiAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZShcbiAgICAgICAgICAoZmlsdGVyc1tmaWx0ZXJTZXRdID8/IHt9KS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByb3ApXG4gICAgICAgICAgICA/IGZpbHRlcnNbZmlsdGVyU2V0XVt0aGlzLnByb3BdLmxlbmd0aCA9PT0gMSAmJiBmaWx0ZXJzW2ZpbHRlclNldF1bdGhpcy5wcm9wXVswXSA9PT0gJydcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IGZpbHRlcnNbZmlsdGVyU2V0XVt0aGlzLnByb3BdXG4gICAgICAgICAgICA6IHRoaXMuYWxsVmFsdWVzKClcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBhcmFtcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICAgIGlmICh0aGlzLnZhbHVlKCkubGVuZ3RoID09PSB0aGlzLmFsbFZhbHVlcygpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4geyBbdGhpcy5wcm9wXTogdGhpcy52YWx1ZSgpLmxlbmd0aCA9PT0gMCA/IFsnJ10gOiB0aGlzLnZhbHVlKCkgfTtcbiAgfVxuXG4gIHRvZ2dsZU1vZGFsKCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLnRyaWdnZXJJbmhpYmF0ZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCcsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudS13cmFwcGVyJywgJ28tY2hvaWNlLWZpbHRlci1wb3B1cCddXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVNb2RhbCgpKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuby1jaG9pY2UtZmlsdGVyLXBvcHVwJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFjb250ZXh0TWVudSkge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUubGVmdCA9IHJlY3QueCArICdweCc7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLm1pbldpZHRoID0gcmVjdC5yaWdodCAtIHJlY3QueCArICdweCc7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLnRvcCA9IHJlY3QuYm90dG9tICsgJ3B4JztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjbGlja0FsbCgpIHtcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hc3NpZ25WYWx1ZSh0aGlzLmFsbFZhbHVlcygpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoZWx0OiB7IGtleTogc3RyaW5nOyBjaGlsZHJlbj86IHsga2V5OiBzdHJpbmcgfVtdIH0pIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkKGVsdCk7XG4gICAgY29uc3QgZWx0U3ViS2V5cyA9ICFlbHQuY2hpbGRyZW4gPyBbZWx0LmtleV0gOiBlbHQuY2hpbGRyZW4ubWFwKChjaCkgPT4gY2gua2V5KTtcbiAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYXNzaWduVmFsdWUoWy4uLm5ldyBTZXQoWy4uLnRoaXMudmFsdWUoKSwgLi4uZWx0U3ViS2V5c10pXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXNzaWduVmFsdWUodGhpcy52YWx1ZSgpLmZpbHRlcigodikgPT4gIWVsdFN1YktleXMuaW5jbHVkZXModikpKTtcbiAgICB9XG4gIH1cblxuICBhbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaG9pY2VzLm1hcCgoY2hvaWNlKSA9PiB0aGlzLmlzU2VsZWN0ZWQoY2hvaWNlKSkucmVkdWNlKChwLCBjKSA9PiBwICYmIGMsIHRydWUpO1xuICB9XG5cbiAgaXNTZWxlY3RlZChjaG9pY2U6IHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogeyBrZXk6IHN0cmluZyB9W10gfSk6IGJvb2xlYW4ge1xuICAgIGlmICghY2hvaWNlLmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSgpLmluY2x1ZGVzKGNob2ljZS5rZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2hvaWNlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHRoaXMuaXNTZWxlY3RlZChjaGlsZCkpLnJlZHVjZSgocCwgYykgPT4gcCAmJiBjLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBhbGxWYWx1ZXMoKSB7XG4gICAgY29uc3QgYnJhbmNoZXMgPSB0aGlzLmNob2ljZXMuZmlsdGVyKChjaG9pY2UpID0+IGNob2ljZS5jaGlsZHJlbikubWFwKChjaG9pY2UpID0+IGNob2ljZS5rZXkpO1xuICAgIHJldHVybiB0aGlzLmNob2ljZXNcbiAgICAgIC5tYXAoKGNob2ljZSkgPT5cbiAgICAgICAgIWNob2ljZS5jaGlsZHJlblxuICAgICAgICAgID8gW2Nob2ljZS5rZXldXG4gICAgICAgICAgOiBbLi4uY2hvaWNlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLmtleSksIC4uLih0aGlzLmFkZE5vbkxlYXZlcyA/IGJyYW5jaGVzIDogW10pXVxuICAgICAgKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSk7XG4gIH1cblxuICBhc3NpZ25WYWx1ZSh2YWx1ZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCF0aGlzLmluaGliYXRlIHx8IHRoaXMuaW5oaWJhdGUgIT09IHRoaXMuZmlsdGVyU2V0KSB7XG4gICAgICB0aGlzLnRyaWdnZXJJbmhpYmF0ZSgpO1xuXG4gICAgICAvLyBBZGQgb3IgcmVtb3ZlcyB0cmVlIGJyYW5jaGVzLCBhY2NvcmRpbmcgdG8gY2hpbGRyZW4gc3RhdHVzZXNcbiAgICAgIGNvbnN0IGJyYW5jaGVzID0gdGhpcy5jaG9pY2VzLmZpbHRlcigoY2hvaWNlKSA9PiBjaG9pY2UuY2hpbGRyZW4pLm1hcCgoY2hvaWNlKSA9PiBjaG9pY2Uua2V5KTtcbiAgICAgIGNvbnN0IHdpdGhvdXRCcmFuY2hlcyA9IHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiAhYnJhbmNoZXMuaW5jbHVkZXModmFsdWUpKTtcbiAgICAgIGNvbnN0IGFkZGVkQnJhbmNoVmFsdWVzID0gdGhpcy5jaG9pY2VzXG4gICAgICAgIC5maWx0ZXIoKGNob2ljZSkgPT4gY2hvaWNlLmNoaWxkcmVuICYmICFjaG9pY2UuY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+ICF2YWx1ZXMuaW5jbHVkZXMoY2hpbGQua2V5KSkpXG4gICAgICAgIC5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLmtleSk7XG4gICAgICB0aGlzLnZhbHVlLnNldChbLi4ud2l0aG91dEJyYW5jaGVzLCAuLi4odGhpcy5hZGROb25MZWF2ZXMgPyBhZGRlZEJyYW5jaFZhbHVlcyA6IFtdKV0pO1xuXG4gICAgICB0aGlzLmNoYW5nZWQubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJpZ2dlckluaGliYXRlKCkge1xuICAgIHRoaXMuaW5oaWJhdGUgPSB0aGlzLmZpbHRlclNldDtcbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmluaGliYXRlID0gdW5kZWZpbmVkKSwgNTApO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIChjbGljayk9XCJ0b2dnbGVNb2RhbCgpXCJcbiAgI2J1dHRvblxuICBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXIgLWhvcml6b250YWxcIlxuICBbY2xhc3MuLWhpZ2hsaWdodF09XCJkaXNwbGF5VmFsdWUoKSAhPT0gKGFsbExhYmVsIHwgaTE4bilcIlxuICBbY2xhc3MuLW5vLXZhbHVlXT1cImRpc3BsYXlWYWx1ZSgpPT09JygwKSdcIlxuICBbY2xhc3MuLWZvY3VzXT1cIm92ZXJsYXlSZWZcIlxuPlxuICA8ZGl2IGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fY2hvaWNlLXZhbHVlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyX19sYWJlbFwiPnt7IGxhYmVsIHwgaTE4biB9fSA6PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fdmFsdWVcIiB0eXBlPVwidGV4dFwiIGlkPVwic2VsZWN0X3t7IGlkIH19XCI+e3sgZGlzcGxheVZhbHVlKCkgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8cHJ5LWljb24gW2ljb25TdmddPVwiISFvdmVybGF5UmVmID8gJ2NoZXZyb25fdG9wJyA6ICdjaGV2cm9uX2JvdHRvbSdcIiBbd2lkdGhdPVwiMTBcIiBbaGVpZ2h0XT1cIjEwXCI+PC9wcnktaWNvbj5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtLWNvbnRleHQtbWVudSBvLWh2eS1jaG9pY2UtZmlsdGVyXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJjaG9pY2VcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGlkPVwiY2hvaWNlXCJcbiAgICByb2xlPVwibWVudVwiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX2FsbFwiPlxuICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJhbGxTZWxlY3RlZCgpXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2xpY2tBbGwoKVwiPlxuICAgICAgICA8c3Bhbj57eyBhbGxMYWJlbCB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8L3ByeS1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChlbHQgb2YgY2hvaWNlczsgdHJhY2sgZWx0LmtleSkge1xuICAgICAgQGlmICghZWx0LmNoaWxkcmVuKSB7XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZChlbHQpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGVsdClcIiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX3Jvb3RcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuUHJlZml4ICsgZWx0LmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZChlbHQpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGVsdClcIiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX3Jvb3RcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuUHJlZml4ICsgZWx0LmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgICAgICBAZm9yIChjaGlsZCBvZiBlbHQuY2hpbGRyZW47IHRyYWNrIGNoaWxkLmtleSkge1xuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzU2VsZWN0ZWQoY2hpbGQpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZShjaGlsZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyX19jaGlsZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgaTE4blByZWZpeCArIGNoaWxkLmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9wcnktY2hlY2tib3g+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -16,7 +16,7 @@ export class EventFiltersComponent extends SubscriptionnerDirective {
16
16
  }
17
17
  filter() {
18
18
  let filters = this.filters.map((filter) => filter.getParams()).reduce((p, c) => ({ ...p, ...c }), {});
19
- if (this.filterSet === 'dashboard-ep') {
19
+ if (this.filterSet !== 'events') {
20
20
  filters = { ...filters, ['deleted']: ['false'] };
21
21
  }
22
22
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
@@ -25,7 +25,7 @@ export class EventFiltersComponent extends SubscriptionnerDirective {
25
25
  }
26
26
  reset() {
27
27
  let filters = {};
28
- if (this.filterSet === 'dashboard-ep') {
28
+ if (this.filterSet !== 'events') {
29
29
  filters = { ...filters, ['deleted']: ['false'] };
30
30
  }
31
31
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
46
46
  }], filtered: [{
47
47
  type: Output
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL29uL2NsaWNrL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9vbi9jbGljay9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFNckUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHdCQUF3QjtJQUtqRSxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUp2QixjQUFTLEdBQUcsUUFBUSxDQUFDO1FBRXBCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSTlDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLElBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxjQUFjLEVBQUMsQ0FBQztZQUNwQyxPQUFPLEdBQUcsRUFBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxjQUFjLEVBQUMsQ0FBQztZQUNwQyxPQUFPLEdBQUcsRUFBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OEdBL0JVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlPQ1ZsQyxxZkFZQTs7MkZERmEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjswRUFJcEIsU0FBUztzQkFBakIsS0FBSztnQkFDNEMsT0FBTztzQkFBeEQsZUFBZTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUN0QyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudEZpbHRlcnNDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZmlsdGVyU2V0ID0gJ2dsb2JhbCc7XG4gIEBDb250ZW50Q2hpbGRyZW4oJ2ZpbHRlcicsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZmlsdGVycyE6IFF1ZXJ5TGlzdDxIdnlVbml0RmlsdGVyQ29tcG9uZW50PjtcbiAgQE91dHB1dCgpIGZpbHRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiAoZmlsdGVyLmZpbHRlclNldCA9IHRoaXMuZmlsdGVyU2V0KSk7XG4gIH1cblxuICBmaWx0ZXIoKSB7XG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMubWFwKChmaWx0ZXIpID0+IGZpbHRlci5nZXRQYXJhbXMoKSkucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSk7XG4gICAgaWYodGhpcy5maWx0ZXJTZXQgPT09ICdkYXNoYm9hcmQtZXAnKXtcbiAgICAgIGZpbHRlcnMgPSB7Li4uZmlsdGVycywgWydkZWxldGVkJ106IFsnZmFsc2UnXX07XG4gICAgfVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmZpbHRlcih7IGZpbHRlcnMsIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICAgIHRoaXMuZmlsdGVyZWQubmV4dCgpO1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZm9yY2VDbG9zZU1hcFRvb2x0aXAnKSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICBsZXQgZmlsdGVycyA9IHt9O1xuICAgIGlmKHRoaXMuZmlsdGVyU2V0ID09PSAnZGFzaGJvYXJkLWVwJyl7XG4gICAgICBmaWx0ZXJzID0gey4uLmZpbHRlcnMsIFsnZGVsZXRlZCddOiBbJ2ZhbHNlJ119O1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzLCBmaWx0ZXJTZXQ6IHRoaXMuZmlsdGVyU2V0IH0pKTtcbiAgICB0aGlzLmZpbHRlcmVkLm5leHQoKTtcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2ZvcmNlQ2xvc2VNYXBUb29sdGlwJykpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtZmlsdGVyc1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzX19idXR0b25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIFt0aXRsZV09XCInQGh2eS5ldmVudC5maWx0ZXIucmVzZXQnIHwgaTE4blwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJyZXNldF9maWx0ZXJfZXZlbnRcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImZpbHRlcigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAge3sgJ0BodnkuZXZlbnQuZmlsdGVyLm5hbWUnIHwgaTE4biB9fVxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJldmVudF9maWx0ZXJcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL29uL2NsaWNrL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9vbi9jbGljay9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFNckUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHdCQUF3QjtJQUtqRSxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUp2QixjQUFTLEdBQUcsUUFBUSxDQUFDO1FBRXBCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSTlDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLElBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsRUFBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsRUFBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OEdBL0JVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlPQ1ZsQyxxZkFZQTs7MkZERmEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjswRUFJcEIsU0FBUztzQkFBakIsS0FBSztnQkFDNEMsT0FBTztzQkFBeEQsZUFBZTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUN0QyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudEZpbHRlcnNDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZmlsdGVyU2V0ID0gJ2dsb2JhbCc7XG4gIEBDb250ZW50Q2hpbGRyZW4oJ2ZpbHRlcicsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZmlsdGVycyE6IFF1ZXJ5TGlzdDxIdnlVbml0RmlsdGVyQ29tcG9uZW50PjtcbiAgQE91dHB1dCgpIGZpbHRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiAoZmlsdGVyLmZpbHRlclNldCA9IHRoaXMuZmlsdGVyU2V0KSk7XG4gIH1cblxuICBmaWx0ZXIoKSB7XG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMubWFwKChmaWx0ZXIpID0+IGZpbHRlci5nZXRQYXJhbXMoKSkucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSk7XG4gICAgaWYodGhpcy5maWx0ZXJTZXQgIT09ICdldmVudHMnKSB7XG4gICAgICBmaWx0ZXJzID0gey4uLmZpbHRlcnMsIFsnZGVsZXRlZCddOiBbJ2ZhbHNlJ119O1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzLCBmaWx0ZXJTZXQ6IHRoaXMuZmlsdGVyU2V0IH0pKTtcbiAgICB0aGlzLmZpbHRlcmVkLm5leHQoKTtcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2ZvcmNlQ2xvc2VNYXBUb29sdGlwJykpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgbGV0IGZpbHRlcnMgPSB7fTtcbiAgICBpZih0aGlzLmZpbHRlclNldCAhPT0gJ2V2ZW50cycpIHtcbiAgICAgIGZpbHRlcnMgPSB7Li4uZmlsdGVycywgWydkZWxldGVkJ106IFsnZmFsc2UnXX07XG4gICAgfVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmZpbHRlcih7IGZpbHRlcnMsIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICAgIHRoaXMuZmlsdGVyZWQubmV4dCgpO1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZm9yY2VDbG9zZU1hcFRvb2x0aXAnKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LWZpbHRlcnNfX2J1dHRvbnNcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJyZXNldCgpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgW3RpdGxlXT1cIidAaHZ5LmV2ZW50LmZpbHRlci5yZXNldCcgfCBpMThuXCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInJlc2V0X2ZpbHRlcl9ldmVudFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZmlsdGVyKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICB7eyAnQGh2eS5ldmVudC5maWx0ZXIubmFtZScgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV2ZW50X2ZpbHRlclwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -40,7 +40,11 @@ export class HvyCreateServiceComponent extends SubscriptionnerDirective {
40
40
  ...ev.equipment,
41
41
  displayName: `${ev.equipment?.name} - ${this.i18nService.instant('@hvy.event.family.' + ev.equipment?.family)}`
42
42
  }))
43
- ];
43
+ ].filter((obj, index, arr) => {
44
+ return arr.findIndex(o => {
45
+ return JSON.stringify(o) === JSON.stringify(obj);
46
+ }) === index;
47
+ });
44
48
  this.serviceService.types().subscribe((types) => {
45
49
  this.types = types;
46
50
  this.updateAllowedTypes();
@@ -130,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
130
134
  type: Inject,
131
135
  args: [PRY_DIALOG_DATA]
132
136
  }] }, { type: i2.ServiceService }, { type: i1.PryI18nService }] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9zZXJ2aWNlL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvc2VydmljZS9jcmVhdGUtc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFnQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFvQjdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFpQnJFLFlBQ1UsTUFBK0MsRUFDdkIsSUFBNkQsRUFDckYsY0FBOEIsRUFDOUIsV0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFMQSxXQUFNLEdBQU4sTUFBTSxDQUF5QztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUF5RDtRQUNyRixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBcEJyQyxXQUFNLEdBQTJCO1lBQy9CLEtBQUssRUFBRSxRQUFRO1lBQ2YsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDRixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDekIsZUFBVSxHQUErQyxFQUFFLENBQUM7UUFDNUQsaUJBQVksR0FBcUIsRUFBRSxDQUFDO1FBU2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3JHLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEI7Z0JBQ0UsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDO2dCQUM3RCxFQUFFLEVBQUUsa0JBQWtCO2FBQ3ZCO1lBQ0QsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07aUJBQ2hCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQzlCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDWixHQUFHLEVBQUUsQ0FBQyxTQUFTO2dCQUNmLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUU7YUFDaEgsQ0FBQyxDQUFDO1NBQ04sQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQ3pFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBSSxTQUEwQixDQUFDLE1BQU0sQ0FBQztRQUMxRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUk7WUFDbkUsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRSxHQUFHO1NBQ1YsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNoQixHQUFHLElBQUksQ0FBQyxNQUFNO1lBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUN0RixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ25DLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDdkcsQ0FBQztJQUNKLENBQUM7OEdBbklVLHlCQUF5Qiw4Q0FtQjFCLGVBQWU7a0dBbkJkLHlCQUF5QixpRkN6QnRDLHU0SEF1RkE7OzJGRDlEYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkFzQjNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQUllfRElBTE9HX0RBVEEsIFByeURpYWxvZ1JlZiwgUHJ5STE4blNlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBFcXVpcG1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9oeXAtZXF1aXBtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlQWN0aW9uIH0gZnJvbSAnLi9zZXJ2aWNlLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlVHlwZSwgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEh5cENyZWF0ZVNlcnZpY2VSZXN1bHQgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZXF1aXBtZW50OiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBwcmlvcml0eTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGd0aT86IHN0cmluZztcbiAgZ3RyPzogc3RyaW5nO1xuICBndHJwPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWNyZWF0ZS1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgcmVzdWx0OiBIeXBDcmVhdGVTZXJ2aWNlUmVzdWx0ID0ge1xuICAgIHZhbHVlOiAnY2FuY2VsJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkb21haW46ICcnLFxuICAgIHByaW9yaXR5OiAnJyxcbiAgICBlcXVpcG1lbnQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJ1xuICB9O1xuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIHR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG4gIHByaW9yaXRpZXMgPSBbJzEtTUlORVVSJywgJzItTUFKRVVSJywgJzMtQkxPUVVBTlQnXTtcbiAgZG9tYWlucyA9IERPTUFJTlMudmFsdWVzO1xuICBlcXVpcG1lbnRzOiAoSHlwRXF1aXBtZW50IHwgeyBkaXNwbGF5TmFtZTogc3RyaW5nIH0pW10gPSBbXTtcbiAgYWxsb3dlZFR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1JlZjxIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50PixcbiAgICBASW5qZWN0KFBSWV9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IHsgYWN0aW9uOiBIeXBTZXJ2aWNlQWN0aW9uOyBldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdIH0sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlU2VydmljZTogU2VydmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlc3VsdC5uYW1lID1cbiAgICAgIHRoaXMuZGF0YS5ldmVudHMgJiYgdGhpcy5kYXRhLmV2ZW50cy5sZW5ndGggPiAwID8gdGhpcy5kYXRhLmV2ZW50c1swXS5uYW1lIDogdGhpcy5kYXRhLmFjdGlvbi5uYW1lO1xuICAgIHRoaXMuZXF1aXBtZW50cyA9IFtcbiAgICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQGh2eS5zZXJ2aWNlLm5vRXF1aXAnKSxcbiAgICAgICAgaWQ6ICdfX05PX0VRVUlQTUVOVF9fJ1xuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuZGF0YS5ldmVudHNcbiAgICAgICAgLmZpbHRlcigoZXYpID0+ICEhZXYuZXF1aXBtZW50KVxuICAgICAgICAubWFwKChldikgPT4gKHtcbiAgICAgICAgICAuLi5ldi5lcXVpcG1lbnQsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IGAke2V2LmVxdWlwbWVudD8ubmFtZX0gLSAke3RoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQGh2eS5ldmVudC5mYW1pbHkuJyArIGV2LmVxdWlwbWVudD8uZmFtaWx5KX1gXG4gICAgICAgIH0pKVxuICAgIF07XG4gICAgdGhpcy5zZXJ2aWNlU2VydmljZS50eXBlcygpLnN1YnNjcmliZSgodHlwZXMpID0+IHtcbiAgICAgIHRoaXMudHlwZXMgPSB0eXBlcztcbiAgICAgIHRoaXMudXBkYXRlQWxsb3dlZFR5cGVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBhY3Rpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UodGhpcy5yZXN1bHQpO1xuICB9XG5cbiAgb25FcXVpcG1lbnRDaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5lcXVpcG1lbnQgPSAkZXZlbnQ7XG4gICAgY29uc3QgZXF1aXBtZW50ID0gKFxuICAgICAgdGhpcy5lcXVpcG1lbnRzLmZpbHRlcigoZXF1aXBtZW50KSA9PiBlcXVpcG1lbnQuaGFzT3duUHJvcGVydHkoJ2RvbWFpbicpKSBhcyBIeXBFcXVpcG1lbnRbXVxuICAgICkuZmluZCgoZXF1aXApID0+IGVxdWlwLmlkID09PSAkZXZlbnQpO1xuICAgIGlmIChlcXVpcG1lbnQpIHtcbiAgICAgIHRoaXMucmVzdWx0LmRvbWFpbiA9IChlcXVpcG1lbnQgYXMgSHlwRXF1aXBtZW50KS5kb21haW47XG4gICAgfVxuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5kZXNjcmlwdGlvbiA9ICRldmVudDtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvblR5cGVDaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC50eXBlID0gJGV2ZW50O1xuICAgIGNvbnN0IHR5cGVWYWx1ZSA9IHRoaXMudHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5uYW1lID09PSAkZXZlbnQpID8/IHtcbiAgICAgIGd0aTogJy0nLFxuICAgICAgZ3RyOiAnLScsXG4gICAgICBndHJwOiAnLSdcbiAgICB9O1xuICAgIHRoaXMucmVzdWx0Lmd0aSA9ICh0eXBlVmFsdWUuZ3RpID8/ICctJykgKyAnJztcbiAgICB0aGlzLnJlc3VsdC5ndHIgPSAodHlwZVZhbHVlLmd0ciA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5yZXN1bHQuZ3RycCA9ICh0eXBlVmFsdWUuZ3RycCA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgb25Qcmlvcml0eUNoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzdWx0LnByaW9yaXR5ID0gJGV2ZW50O1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uRG9tYWluQ2hhbmdlKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHQuZG9tYWluID0gJGV2ZW50O1xuICAgIHRoaXMudXBkYXRlQWxsb3dlZFR5cGVzKCk7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgaGFzRXJyb3IodHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgY2hlY2soKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICBpZiAoIXRoaXMucmVzdWx0Lm5hbWUgfHwgdGhpcy5yZXN1bHQubmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ25hbWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5lcXVpcG1lbnQgfHwgdGhpcy5yZXN1bHQuZXF1aXBtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCgndGFyZ2V0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZGVzY3JpcHRpb24gfHwgdGhpcy5yZXN1bHQuZGVzY3JpcHRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdkZXNjcmlwdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LnR5cGUgfHwgdGhpcy5yZXN1bHQudHlwZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3R5cGUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5wcmlvcml0eSB8fCB0aGlzLnJlc3VsdC5wcmlvcml0eS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3ByaW9yaXR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZG9tYWluIHx8IHRoaXMucmVzdWx0LmRvbWFpbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ2RvbWFpbicpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZURJKCkge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlKHtcbiAgICAgIC4uLnRoaXMucmVzdWx0LFxuICAgICAgZXF1aXBtZW50OiB0aGlzLnJlc3VsdC5lcXVpcG1lbnQgPT09ICdfX05PX0VRVUlQTUVOVF9fJyA/IG51bGwgOiB0aGlzLnJlc3VsdC5lcXVpcG1lbnQsXG4gICAgICB2YWx1ZTogJ29rJ1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSh7IHZhbHVlOiAnY2FuY2VsJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQWxsb3dlZFR5cGVzKCkge1xuICAgIHRoaXMuYWxsb3dlZFR5cGVzID0gdGhpcy50eXBlcy5maWx0ZXIoXG4gICAgICAodHlwZSkgPT4gIXRoaXMucmVzdWx0LmRvbWFpbiB8fCB0aGlzLnJlc3VsdC5kb21haW4ubGVuZ3RoID09PSAwIHx8IHR5cGUuZG9tYWluID09PSB0aGlzLnJlc3VsdC5kb21haW5cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VcIj5cbiAgPGgzPnt7ICdAaHZ5LnNlcnZpY2UudGl0bGUnIHwgaTE4biB9fTwvaDM+XG4gIDxzcGFuPnt7ICdAaHZ5LnNlcnZpY2Uuc3VidGl0bGUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19yZWFzb24gbS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgPGxhYmVsPnt7ICdAaHZ5LnNlcnZpY2UucmVhc29uJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgIDxpbnB1dCBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJyZXN1bHQubmFtZVwiIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ25hbWUnKVwiIC8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgPGxhYmVsPnt7ICdAaHZ5LnNlcnZpY2UudGFyZ2V0JyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBbaXRlbXNdPVwiZXF1aXBtZW50c1wiXG4gICAgICBbbmdNb2RlbF09XCJyZXN1bHQuZXF1aXBtZW50XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRXF1aXBtZW50Q2hhbmdlKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIicnIHwgaTE4blwiXG4gICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCd0YXJnZXQnKVwiXG4gICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICBiaW5kTGFiZWw9XCJkaXNwbGF5TmFtZVwiXG4gICAgPjwvcHJ5LXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgby1odnktY3JlYXRlLXNlcnZpY2VfX3ByaW9yaXR5LW5hdHVyZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLmRvbWFpbicgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIFtpdGVtc109XCJkb21haW5zXCJcbiAgICAgICAgW25nTW9kZWxdPVwicmVzdWx0LmRvbWFpblwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRG9tYWluQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJycgfCBpMThuXCJcbiAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcignZG9tYWluJylcIlxuICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5ldmVudC5kb21haW4uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsPnt7ICdAaHZ5LnNlcnZpY2UucHJpb3JpdHknIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwicHJpb3JpdGllc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC5wcmlvcml0eVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUHJpb3JpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGkxOG5cIlxuICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCdwcmlvcml0eScpXCJcbiAgICAgICAgaTE4blByZWZpeD1cIkBodnkuc2VydmljZS5wcmlvcml0aWVzLlwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnR5cGUnIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwiYWxsb3dlZFR5cGVzXCJcbiAgICAgICAgW25nTW9kZWxdPVwicmVzdWx0LnR5cGVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGkxOG5cIlxuICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCd0eXBlJylcIlxuICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgYmluZFZhbHVlPVwibmFtZVwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3VycyBtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX2hvdXJzX19lbGVtZW50XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiZ3RpXCI+e3sgJ0Bodnkuc2VydmljZS5ndGknIHwgaTE4biB9fSA6PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImd0aVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbbmdNb2RlbF09XCJyZXN1bHQuZ3RpID8/ICctJ1wiIHJlYWRvbmx5IFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX2hvdXJzX19lbGVtZW50XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiZ3RyXCI+e3sgJ0Bodnkuc2VydmljZS5ndHInIHwgaTE4biB9fSA6PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImd0clwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbbmdNb2RlbF09XCJyZXN1bHQuZ3RyID8/ICctJ1wiIHJlYWRvbmx5IFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX2hvdXJzX19lbGVtZW50XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiZ3RycFwiPnt7ICdAaHZ5LnNlcnZpY2UuZ3RycCcgfCBpMThuIH19IDo8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwiZ3RycFwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbbmdNb2RlbF09XCJyZXN1bHQuZ3RycCA/PyAnLSdcIiByZWFkb25seSBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX2Rlc2NyaXB0aW9uIG0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiPnt7ICdAaHZ5LnNlcnZpY2UuZGVzY3JpcHRpb24nIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgPHRleHRhcmVhXG4gICAgICBbbmdNb2RlbF09XCJyZXN1bHQuZGVzY3JpcHRpb25cIlxuICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcignZGVzY3JpcHRpb24nKVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRlc2NyaXB0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgW21heExlbmd0aF09XCIyNTZcIlxuICAgICAgaWQ9XCJkZXNjcmlwdGlvblwiXG4gICAgPjwvdGV4dGFyZWE+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2J1dHRvbnMgdS1kaXNwbGF5LWZsZXggLWp1c3RpZnktY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cInRoaXMuZXJyb3JzLmxlbmd0aCAhPT0gMFwiIChjbGljayk9XCJjcmVhdGVESSgpXCI+XG4gICAgICB7eyAnQGh2eS5hY3Rpb24udmFsaWRhdGUnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPnt7ICdAaHZ5LmFjdGlvbi5jYW5jZWwnIHwgaTE4biB9fTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9zZXJ2aWNlL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvc2VydmljZS9jcmVhdGUtc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFnQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFvQjdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFpQnJFLFlBQ1UsTUFBK0MsRUFDdkIsSUFBNkQsRUFDckYsY0FBOEIsRUFDOUIsV0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFMQSxXQUFNLEdBQU4sTUFBTSxDQUF5QztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUF5RDtRQUNyRixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBcEJyQyxXQUFNLEdBQTJCO1lBQy9CLEtBQUssRUFBRSxRQUFRO1lBQ2YsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJ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QWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNkLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDdEYsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNuQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3ZHLENBQUM7SUFDSixDQUFDOzhHQTFJVSx5QkFBeUIsOENBbUIxQixlQUFlO2tHQW5CZCx5QkFBeUIsaUZDekJ0Qyx1NEhBdUZBOzsyRkQ5RGEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBc0IzQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUFJZX0RJQUxPR19EQVRBLCBQcnlEaWFsb2dSZWYsIFByeUkxOG5TZXJ2aWNlLCBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHlwRXF1aXBtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvaHlwLWVxdWlwbWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwU2VydmljZUFjdGlvbiB9IGZyb20gJy4vc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwU2VydmljZVR5cGUsIFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VydmljZS9zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRE9NQUlOUyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVsL2RvbWFpbnMuY29uc3RhbnQnO1xuaW1wb3J0IHsgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBIeXBDcmVhdGVTZXJ2aWNlUmVzdWx0ID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVxdWlwbWVudDogc3RyaW5nO1xuICBkb21haW46IHN0cmluZztcbiAgcHJpb3JpdHk6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBndGk/OiBzdHJpbmc7XG4gIGd0cj86IHN0cmluZztcbiAgZ3RycD86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1jcmVhdGUtc2VydmljZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtc2VydmljZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSHZ5Q3JlYXRlU2VydmljZUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIHJlc3VsdDogSHlwQ3JlYXRlU2VydmljZVJlc3VsdCA9IHtcbiAgICB2YWx1ZTogJ2NhbmNlbCcsXG4gICAgbmFtZTogJycsXG4gICAgZG9tYWluOiAnJyxcbiAgICBwcmlvcml0eTogJycsXG4gICAgZXF1aXBtZW50OiAnJyxcbiAgICB0eXBlOiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJydcbiAgfTtcbiAgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICB0eXBlczogSHlwU2VydmljZVR5cGVbXSA9IFtdO1xuICBwcmlvcml0aWVzID0gWycxLU1JTkVVUicsICcyLU1BSkVVUicsICczLUJMT1FVQU5UJ107XG4gIGRvbWFpbnMgPSBET01BSU5TLnZhbHVlcztcbiAgZXF1aXBtZW50czogKEh5cEVxdWlwbWVudCB8IHsgZGlzcGxheU5hbWU6IHN0cmluZyB9KVtdID0gW107XG4gIGFsbG93ZWRUeXBlczogSHlwU2VydmljZVR5cGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBQcnlEaWFsb2dSZWY8SHZ5Q3JlYXRlU2VydmljZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChQUllfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IGFjdGlvbjogSHlwU2VydmljZUFjdGlvbjsgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSB9LFxuICAgIHByaXZhdGUgc2VydmljZVNlcnZpY2U6IFNlcnZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZXN1bHQubmFtZSA9XG4gICAgICB0aGlzLmRhdGEuZXZlbnRzICYmIHRoaXMuZGF0YS5ldmVudHMubGVuZ3RoID4gMCA/IHRoaXMuZGF0YS5ldmVudHNbMF0ubmFtZSA6IHRoaXMuZGF0YS5hY3Rpb24ubmFtZTtcbiAgICB0aGlzLmVxdWlwbWVudHMgPSBbXG4gICAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0Bodnkuc2VydmljZS5ub0VxdWlwJyksXG4gICAgICAgIGlkOiAnX19OT19FUVVJUE1FTlRfXydcbiAgICAgIH0sXG4gICAgICAuLi50aGlzLmRhdGEuZXZlbnRzXG4gICAgICAgIC5maWx0ZXIoKGV2KSA9PiAhIWV2LmVxdWlwbWVudClcbiAgICAgICAgLm1hcCgoZXYpID0+ICh7XG4gICAgICAgICAgLi4uZXYuZXF1aXBtZW50LFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJHtldi5lcXVpcG1lbnQ/Lm5hbWV9IC0gJHt0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BodnkuZXZlbnQuZmFtaWx5LicgKyBldi5lcXVpcG1lbnQ/LmZhbWlseSl9YFxuICAgICAgICB9KSlcbiAgICBdLmZpbHRlcigob2JqLCBpbmRleCwgYXJyKSA9PlxuICAgIHtcbiAgICAgIHJldHVybiBhcnIuZmluZEluZGV4KG8gPT5cbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8pID09PSBKU09OLnN0cmluZ2lmeShvYmopXG4gICAgICB9KSA9PT0gaW5kZXhcbiAgICB9KTtcblxuICAgIHRoaXMuc2VydmljZVNlcnZpY2UudHlwZXMoKS5zdWJzY3JpYmUoKHR5cGVzKSA9PiB7XG4gICAgICB0aGlzLnR5cGVzID0gdHlwZXM7XG4gICAgICB0aGlzLnVwZGF0ZUFsbG93ZWRUeXBlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgYWN0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlKHRoaXMucmVzdWx0KTtcbiAgfVxuXG4gIG9uRXF1aXBtZW50Q2hhbmdlKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHQuZXF1aXBtZW50ID0gJGV2ZW50O1xuICAgIGNvbnN0IGVxdWlwbWVudCA9IChcbiAgICAgIHRoaXMuZXF1aXBtZW50cy5maWx0ZXIoKGVxdWlwbWVudCkgPT4gZXF1aXBtZW50Lmhhc093blByb3BlcnR5KCdkb21haW4nKSkgYXMgSHlwRXF1aXBtZW50W11cbiAgICApLmZpbmQoKGVxdWlwKSA9PiBlcXVpcC5pZCA9PT0gJGV2ZW50KTtcbiAgICBpZiAoZXF1aXBtZW50KSB7XG4gICAgICB0aGlzLnJlc3VsdC5kb21haW4gPSAoZXF1aXBtZW50IGFzIEh5cEVxdWlwbWVudCkuZG9tYWluO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvbkRlc2NyaXB0aW9uQ2hhbmdlKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHQuZGVzY3JpcHRpb24gPSAkZXZlbnQ7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgb25UeXBlQ2hhbmdlKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHQudHlwZSA9ICRldmVudDtcbiAgICBjb25zdCB0eXBlVmFsdWUgPSB0aGlzLnR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUubmFtZSA9PT0gJGV2ZW50KSA/PyB7XG4gICAgICBndGk6ICctJyxcbiAgICAgIGd0cjogJy0nLFxuICAgICAgZ3RycDogJy0nXG4gICAgfTtcbiAgICB0aGlzLnJlc3VsdC5ndGkgPSAodHlwZVZhbHVlLmd0aSA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5yZXN1bHQuZ3RyID0gKHR5cGVWYWx1ZS5ndHIgPz8gJy0nKSArICcnO1xuICAgIHRoaXMucmVzdWx0Lmd0cnAgPSAodHlwZVZhbHVlLmd0cnAgPz8gJy0nKSArICcnO1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uUHJpb3JpdHlDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlc3VsdC5wcmlvcml0eSA9ICRldmVudDtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvbkRvbWFpbkNoYW5nZSgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LmRvbWFpbiA9ICRldmVudDtcbiAgICB0aGlzLnVwZGF0ZUFsbG93ZWRUeXBlcygpO1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIGhhc0Vycm9yKHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5pbmNsdWRlcyh0eXBlKTtcbiAgfVxuXG4gIGNoZWNrKCkge1xuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5uYW1lIHx8IHRoaXMucmVzdWx0Lm5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCduYW1lJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZXF1aXBtZW50IHx8IHRoaXMucmVzdWx0LmVxdWlwbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3RhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LmRlc2NyaXB0aW9uIHx8IHRoaXMucmVzdWx0LmRlc2NyaXB0aW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCgnZGVzY3JpcHRpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC50eXBlIHx8IHRoaXMucmVzdWx0LnR5cGUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCd0eXBlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQucHJpb3JpdHkgfHwgdGhpcy5yZXN1bHQucHJpb3JpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdwcmlvcml0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LmRvbWFpbiB8fCB0aGlzLnJlc3VsdC5kb21haW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdkb21haW4nKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVESSgpIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSh7XG4gICAgICAuLi50aGlzLnJlc3VsdCxcbiAgICAgIGVxdWlwbWVudDogdGhpcy5yZXN1bHQuZXF1aXBtZW50ID09PSAnX19OT19FUVVJUE1FTlRfXycgPyBudWxsIDogdGhpcy5yZXN1bHQuZXF1aXBtZW50LFxuICAgICAgdmFsdWU6ICdvaydcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoeyB2YWx1ZTogJ2NhbmNlbCcgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFsbG93ZWRUeXBlcygpIHtcbiAgICB0aGlzLmFsbG93ZWRUeXBlcyA9IHRoaXMudHlwZXMuZmlsdGVyKFxuICAgICAgKHR5cGUpID0+ICF0aGlzLnJlc3VsdC5kb21haW4gfHwgdGhpcy5yZXN1bHQuZG9tYWluLmxlbmd0aCA9PT0gMCB8fCB0eXBlLmRvbWFpbiA9PT0gdGhpcy5yZXN1bHQuZG9tYWluXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlXCI+XG4gIDxoMz57eyAnQGh2eS5zZXJ2aWNlLnRpdGxlJyB8IGkxOG4gfX08L2gzPlxuICA8c3Bhbj57eyAnQGh2eS5zZXJ2aWNlLnN1YnRpdGxlJyB8IGkxOG4gfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9fcmVhc29uIG0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnJlYXNvbicgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICA8aW5wdXQgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicmVzdWx0Lm5hbWVcIiBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCduYW1lJylcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnRhcmdldCcgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICA8cHJ5LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cImVxdWlwbWVudHNcIlxuICAgICAgW25nTW9kZWxdPVwicmVzdWx0LmVxdWlwbWVudFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkVxdWlwbWVudENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGkxOG5cIlxuICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigndGFyZ2V0JylcIlxuICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgYmluZExhYmVsPVwiZGlzcGxheU5hbWVcIlxuICAgID48L3ByeS1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIG8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19wcmlvcml0eS1uYXR1cmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS5kb21haW4nIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwiZG9tYWluc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC5kb21haW5cIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRvbWFpbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicnIHwgaTE4blwiXG4gICAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ2RvbWFpbicpXCJcbiAgICAgICAgaTE4blByZWZpeD1cIkBodnkuZXZlbnQuZG9tYWluLlwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnByaW9yaXR5JyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cInByaW9yaXRpZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJyZXN1bHQucHJpb3JpdHlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblByaW9yaXR5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJycgfCBpMThuXCJcbiAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigncHJpb3JpdHknKVwiXG4gICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LnNlcnZpY2UucHJpb3JpdGllcy5cIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS50eXBlJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cImFsbG93ZWRUeXBlc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC50eXBlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UeXBlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJycgfCBpMThuXCJcbiAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigndHlwZScpXCJcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cIm5hbWVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9faG91cnMgbS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0aVwiPnt7ICdAaHZ5LnNlcnZpY2UuZ3RpJyB8IGkxOG4gfX0gOjwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJndGlcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0aSA/PyAnLSdcIiByZWFkb25seSBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0clwiPnt7ICdAaHZ5LnNlcnZpY2UuZ3RyJyB8IGkxOG4gfX0gOjwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJndHJcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0ciA/PyAnLSdcIiByZWFkb25seSBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0cnBcIj57eyAnQGh2eS5zZXJ2aWNlLmd0cnAnIHwgaTE4biB9fSA6PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImd0cnBcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0cnAgPz8gJy0nXCIgcmVhZG9ubHkgW2Rpc2FibGVkXT1cInRydWVcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19kZXNjcmlwdGlvbiBtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICA8bGFiZWwgZm9yPVwiZGVzY3JpcHRpb25cIj57eyAnQGh2eS5zZXJ2aWNlLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgIDx0ZXh0YXJlYVxuICAgICAgW25nTW9kZWxdPVwicmVzdWx0LmRlc2NyaXB0aW9uXCJcbiAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ2Rlc2NyaXB0aW9uJylcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EZXNjcmlwdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYXhMZW5ndGhdPVwiMjU2XCJcbiAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgID48L3RleHRhcmVhPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19idXR0b25zIHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJ0aGlzLmVycm9ycy5sZW5ndGggIT09IDBcIiAoY2xpY2spPVwiY3JlYXRlREkoKVwiPlxuICAgICAge3sgJ0BodnkuYWN0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj57eyAnQGh2eS5hY3Rpb24uY2FuY2VsJyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1164,7 +1164,11 @@ class HvyCreateServiceComponent extends SubscriptionnerDirective {
1164
1164
  ...ev.equipment,
1165
1165
  displayName: `${ev.equipment?.name} - ${this.i18nService.instant('@hvy.event.family.' + ev.equipment?.family)}`
1166
1166
  }))
1167
- ];
1167
+ ].filter((obj, index, arr) => {
1168
+ return arr.findIndex(o => {
1169
+ return JSON.stringify(o) === JSON.stringify(obj);
1170
+ }) === index;
1171
+ });
1168
1172
  this.serviceService.types().subscribe((types) => {
1169
1173
  this.types = types;
1170
1174
  this.updateAllowedTypes();
@@ -2621,7 +2625,7 @@ class EventFiltersComponent extends SubscriptionnerDirective {
2621
2625
  }
2622
2626
  filter() {
2623
2627
  let filters = this.filters.map((filter) => filter.getParams()).reduce((p, c) => ({ ...p, ...c }), {});
2624
- if (this.filterSet === 'dashboard-ep') {
2628
+ if (this.filterSet !== 'events') {
2625
2629
  filters = { ...filters, ['deleted']: ['false'] };
2626
2630
  }
2627
2631
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
@@ -2630,7 +2634,7 @@ class EventFiltersComponent extends SubscriptionnerDirective {
2630
2634
  }
2631
2635
  reset() {
2632
2636
  let filters = {};
2633
- if (this.filterSet === 'dashboard-ep') {
2637
+ if (this.filterSet !== 'events') {
2634
2638
  filters = { ...filters, ['deleted']: ['false'] };
2635
2639
  }
2636
2640
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
@@ -2764,7 +2768,7 @@ class ChoiceFilterComponent extends HvyUnitFilterComponent {
2764
2768
  if (this.allSelected()) {
2765
2769
  return this.i18nService.instant(this.allLabel);
2766
2770
  }
2767
- if (this.value().length > 1) {
2771
+ if (this.value().length >= 0) {
2768
2772
  return `(${this.value().length})`;
2769
2773
  }
2770
2774
  if (this.value().length === 1) {
@@ -2867,11 +2871,11 @@ class ChoiceFilterComponent extends HvyUnitFilterComponent {
2867
2871
  setTimeout(() => (this.inhibate = undefined), 50);
2868
2872
  }
2869
2873
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ChoiceFilterComponent, deps: [{ token: i1$1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1$3.PryI18nService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2870
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { allLabel: "allLabel", label: "label", i18nPrefix: "i18nPrefix", addNonLeaves: "addNonLeaves", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }] }); }
2874
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { allLabel: "allLabel", label: "label", i18nPrefix: "i18nPrefix", addNonLeaves: "addNonLeaves", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-no-value]=\"displayValue()==='(0)'\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }] }); }
2871
2875
  }
2872
2876
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ChoiceFilterComponent, decorators: [{
2873
2877
  type: Component,
2874
- args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n" }]
2878
+ args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<button\n (click)=\"toggleModal()\"\n #button\n class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== (allLabel | i18n)\"\n [class.-no-value]=\"displayValue()==='(0)'\"\n [class.-focus]=\"overlayRef\"\n>\n <div class=\"o-hvy-choice-filter__choice-value\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }} :</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{ id }}\">{{ displayValue() }}</span>\n </div>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"choice\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ allLabel | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices; track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children; track child.key) {\n <pry-checkbox\n [ngModel]=\"isSelected(child)\"\n (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\"\n >\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n" }]
2875
2879
  }], ctorParameters: () => [{ type: i1$1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1$3.PryI18nService }, { type: i0.ElementRef }], propDecorators: { allLabel: [{
2876
2880
  type: Input
2877
2881
  }], label: [{