@eui/ecl 17.0.0-rc.6 → 17.0.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/docs/components/EclBreadcrumbSegmentComponent.html +69 -0
  2. package/docs/components/EclCarouselComponent.html +1 -1
  3. package/docs/components/EclMenuMegaItemComponent.html +69 -0
  4. package/docs/components/EclMultiselectComponent.html +24 -0
  5. package/docs/components/EclMultiselectDropdownComponent.html +1 -1
  6. package/docs/components/EclMultiselectInputComponent.html +24 -0
  7. package/docs/components/EclPaginationItemComponent.html +86 -0
  8. package/docs/dependencies.html +2 -2
  9. package/docs/js/search/search_index.js +2 -2
  10. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +6 -2
  11. package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +3 -3
  12. package/esm2022/lib/components/ecl-content-item/ecl-content-item-image.directive.mjs +2 -2
  13. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +6 -2
  14. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.mjs +3 -3
  15. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +6 -3
  16. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +7 -3
  17. package/esm2022/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +6 -2
  18. package/fesm2022/eui-ecl.mjs +31 -12
  19. package/fesm2022/eui-ecl.mjs.map +1 -1
  20. package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +1 -0
  21. package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  22. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts +1 -0
  23. package/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  24. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +2 -1
  25. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  26. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +2 -1
  27. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  28. package/lib/components/ecl-pagination/ecl-pagination-item.component.d.ts +1 -0
  29. package/lib/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
  30. package/package.json +1 -1
@@ -391,7 +391,7 @@ export class EclMultiselectDropdownComponent extends ECLBaseDirective {
391
391
  useExisting: forwardRef((() => EclMultiselectDropdownComponent)),
392
392
  multi: true,
393
393
  },
394
- ], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "eclMultiselectInput", first: true, predicate: ["eclMultiselectInput"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAll", first: true, predicate: ["selectAll"], descendants: true }, { propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true, read: ElementRef }, { propertyName: "clearAllBtn", first: true, predicate: ["clearAllBtn"], descendants: true, read: ElementRef }, { propertyName: "multiOptionComponents", predicate: EclMultiselectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--m\">\n <input\n class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n <div eclCheckbox #selectAll class=\"ecl-select__multiple-all\">\n <input\n eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }}) </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup *ngIf=\"item.isOptGroup()\" [label]=\"item.label\">\n <div\n eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\n [value]=\"elem.value\"\n [label]=\"elem.label\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </div>\n <div\n eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\n [value]=\"item.value\"\n [label]=\"item.label\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\" class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\" class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.CLOSE' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.EclCheckboxDirective, selector: "[eclCheckbox]", inputs: ["isDisabled", "isInvalid"] }, { kind: "component", type: i3.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled"] }, { kind: "directive", type: i4.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "component", type: i5.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i6.EclMultiselectOptionComponent, selector: "div[eclMultiselectOption]", inputs: ["value", "label", "disabled", "isChecked"], outputs: ["optionClick", "optionKeydown"] }, { kind: "component", type: i7.EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: ["isDisabled", "isInvalid", "inputPlaceholder", "selectedItems"], outputs: ["mainInputClick", "mainInputKeydown"] }, { kind: "component", type: i8.EclMultiselectOptgroupComponent, selector: "div[eclMultiselectOptgroup]", inputs: ["label"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
394
+ ], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "eclMultiselectInput", first: true, predicate: ["eclMultiselectInput"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAll", first: true, predicate: ["selectAll"], descendants: true }, { propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true, read: ElementRef }, { propertyName: "clearAllBtn", first: true, predicate: ["clearAllBtn"], descendants: true, read: ElementRef }, { propertyName: "multiOptionComponents", predicate: EclMultiselectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"\n [eclSize]=\"eclSize\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\">\n <input\n class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n <div eclCheckbox #selectAll class=\"ecl-select__multiple-all\">\n <input\n eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }}) </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup *ngIf=\"item.isOptGroup()\" [label]=\"item.label\">\n <div\n eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\n [value]=\"elem.value\"\n [label]=\"elem.label\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </div>\n <div\n eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\n [value]=\"item.value\"\n [label]=\"item.label\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\" class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\" class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.CLOSE' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.EclCheckboxDirective, selector: "[eclCheckbox]", inputs: ["isDisabled", "isInvalid"] }, { kind: "component", type: i3.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled"] }, { kind: "directive", type: i4.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "component", type: i5.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i6.EclMultiselectOptionComponent, selector: "div[eclMultiselectOption]", inputs: ["value", "label", "disabled", "isChecked"], outputs: ["optionClick", "optionKeydown"] }, { kind: "component", type: i7.EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: ["eclSize", "isDisabled", "isInvalid", "inputPlaceholder", "selectedItems"], outputs: ["mainInputClick", "mainInputKeydown"] }, { kind: "component", type: i8.EclMultiselectOptgroupComponent, selector: "div[eclMultiselectOptgroup]", inputs: ["label"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
395
395
  }
396
396
  __decorate([
397
397
  coerceBoolean
@@ -407,7 +407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
407
407
  useExisting: forwardRef((() => EclMultiselectDropdownComponent)),
408
408
  multi: true,
409
409
  },
410
- ], template: "<div\n eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--m\">\n <input\n class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n <div eclCheckbox #selectAll class=\"ecl-select__multiple-all\">\n <input\n eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }}) </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup *ngIf=\"item.isOptGroup()\" [label]=\"item.label\">\n <div\n eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\n [value]=\"elem.value\"\n [label]=\"elem.label\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </div>\n <div\n eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\n [value]=\"item.value\"\n [label]=\"item.label\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\" class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\" class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.CLOSE' | translate }}\n </button>\n </div>\n</div>\n" }]
410
+ ], template: "<div\n eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"\n [eclSize]=\"eclSize\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\">\n <input\n class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n <div eclCheckbox #selectAll class=\"ecl-select__multiple-all\">\n <input\n eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }}) </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup *ngIf=\"item.isOptGroup()\" [label]=\"item.label\">\n <div\n eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\n [value]=\"elem.value\"\n [label]=\"elem.label\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </div>\n <div\n eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\n [value]=\"item.value\"\n [label]=\"item.label\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\" class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\" class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.CLOSE' | translate }}\n </button>\n </div>\n</div>\n" }]
411
411
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.IterableDiffers }], propDecorators: { searchInput: [{
412
412
  type: ViewChild,
413
413
  args: ['searchInput']
@@ -454,4 +454,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
454
454
  type: HostListener,
455
455
  args: ['document:click', ['$event']]
456
456
  }] } });
457
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duL2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi9lY2wtbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUMsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTVELE9BQU8sRUFFSCw2QkFBNkIsR0FFaEMsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFjcEUsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGdCQUFnQjtJQVdqRSxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFD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RkFoQ1EsK0JBQStCO2tCQVozQyxTQUFTOytCQUVJLDZCQUE2QixhQUU1Qjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NkdBR3lCLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDVSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNBLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ04sU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUN1QixRQUFRO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0ssV0FBVztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNELHFCQUFxQjtzQkFBakUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBQ2pDLFNBQVM7c0JBQWxCLE1BQU07Z0JBSUgsU0FBUztzQkFEWixLQUFLO2dCQVNGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlYLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtGLFFBQVE7c0JBRlgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxlQUFlO2dCQThFNUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1qRCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZGdlbiB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENoZWNrYm94RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWNoZWNrYm94JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0SW5wdXRDb21wb25lbnQsIEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCB9IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBFY2xNdWx0aXNlbGVjdE9wdGlvbkNsaWNrRXZlbnQsXG4gICAgRWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQsXG4gICAgRWNsTXVsdGlzZWxlY3RPcHRpb25LZXlkb3duRXZlbnQsXG59IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGl2W2VjbE11bHRpc2VsZWN0RHJvcGRvd25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdlY2xNdWx0aXNlbGVjdElucHV0JykgZWNsTXVsdGlzZWxlY3RJbnB1dDogRWNsTXVsdGlzZWxlY3RJbnB1dENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdzZWxlY3RBbGxDaGVja2JveCcpIHNlbGVjdEFsbENoZWNrYm94OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbCcpIHNlbGVjdEFsbDogRWNsQ2hlY2tib3hEaXJlY3RpdmU7XG4gICAgQFZpZXdDaGlsZCgnY2xvc2VCdG4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2xvc2VCdG46IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnY2xlYXJBbGxCdG4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2xlYXJBbGxCdG46IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZHJlbihFY2xNdWx0aXNlbGVjdE9wdGlvbkNvbXBvbmVudCkgbXVsdGlPcHRpb25Db21wb25lbnRzOiBRdWVyeUxpc3Q8RWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQ+O1xuICAgIEBPdXRwdXQoKSBlY2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0X19tdWx0aXBsZScpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBtYWluSW5wdXRQbGFjZWhvbGRlciA9ICdTZWxlY3QgYW4gaXRlbSc7XG4gICAgQElucHV0KCkgc2VhcmNoRmllbGRQbGFjZWhvbGRlciA9ICdFbnRlciBrZXl3b3JkJztcbiAgICBASW5wdXQoKSBlY2xTaXplID0gJ20nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGxJZCA9ICcnO1xuICAgIGlzU2hvd05vUmVzdWx0c0ZvdW5kID0gZmFsc2U7XG4gICAgaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9IGZhbHNlO1xuICAgIG11bHRpT3B0aW9uRGlyZWN0aXZlczogRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmVbXSA9IFtdO1xuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzSW52YWxpZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3NlbGVjdGVkSXRlbXM6IEVjbE11bHRpc2VsZWN0T3B0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgaXNXcml0ZVZhbHVlQ2FsbGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB2YWx1ZXMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cyk7XG5cbiAgICAgICAgaWYgKGRpZmYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWVzKHRoaXMudmFsdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbElkID0gdGhpcy5nZXRTZWxlY3RBbGxJZCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhpcy5yZXNldENvbXBvbmVudCgpO1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlcyh2YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gICAgb25Fc2NhcGVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlTXVsdGlzZWxlY3REcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbktleVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZU11bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBvcHRpb25zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpID8gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCkubGVuZ3RoIDogMDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRJdGVtcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzSXRlbXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93VG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBpbml0U2VsZWN0ZWRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzXG4gICAgICAgICAgICAuZmlsdGVyKChlbGVtKSA9PiBlbGVtLmlzQ2hlY2tlZClcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DbGlja0NsZWFyQWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KFtdKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoW10pO1xuICAgIH1cblxuICAgIG9uQ2xpY2tDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1VwQ2xvc2VDbGVhcihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpO1xuICAgICAgICBjdXJyZW50T3B0aW9uc1tjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxXS5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd0xlZnRDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvblRhYkNsb3NlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1JpZ2h0Q2xlYXIoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jbG9zZUJ0bi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25FbnRlclNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VhcmNoKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRPcHRpb25zWzBdLm9uRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dVcFNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duTWFpbklucHV0KGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2hvd011bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgb25DbGlja01haW5JbnB1dChldnQ6IEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VsZWN0QWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uc1swXS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFycm93VXBTZWxlY3RBbGwoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goaW5wdXQ6IEV2ZW50VGFyZ2V0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXdvcmQgPSAoaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgIGxldCBpc01hdGNoRm91bmQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGtleXdvcmQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNlbGVjdEFsbCgpO1xuICAgICAgICAgICAgaXNNYXRjaEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmhpZ2hsaWdodFNlYXJjaFRleHQoJycpO1xuICAgICAgICAgICAgICAgIGl0ZW0uc2hvdygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleXdvcmQudG9Mb3dlckNhc2UoKSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlzTWF0Y2hGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlnaGxpZ2h0U2VhcmNoVGV4dChrZXl3b3JkLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNNYXRjaEZvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOb1Jlc3VsdHNGb3VuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWRlTm9SZXN1bHRzRm91bmQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51bnNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5lY2xDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSkpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSkpO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bk9wdGlvbihldnQ6IEVjbE11bHRpc2VsZWN0T3B0aW9uS2V5ZG93bkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleWJvYXJkRXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfRE9XTjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25PcHRpb25BcnJvd0Rvd25BbmRUYWIoZXZ0LmtleWJvYXJkRXZlbnQsIGV2dC5tdWx0aXNlbGVjdE9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfVVA6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uT3B0aW9uQXJyb3dVcChldnQua2V5Ym9hcmRFdmVudCwgZXZ0Lm11bHRpc2VsZWN0T3B0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRU5URVI6IHtcbiAgICAgICAgICAgICAgICAoZXZ0LmtleWJvYXJkRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuVEFCOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkFycm93RG93bkFuZFRhYihldnQua2V5Ym9hcmRFdmVudCwgZXZ0Lm11bHRpc2VsZWN0T3B0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3B0aW9uU2VsZWN0ZWQoZXZ0OiBFY2xNdWx0aXNlbGVjdE9wdGlvbkNsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJPcHRpb24gPSBldnQubXVsdGlzZWxlY3RPcHRpb247XG4gICAgICAgIGlmIChjdXJyT3B0aW9uLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGN1cnJPcHRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9zZWxlY3RlZEl0ZW1zLmluZGV4T2YoY3Vyck9wdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fc2VsZWN0ZWRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZWNsQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0ZWRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0QWxsQWN0aXZlT3B0aW9ucygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmdldEFsbEFjdGl2ZU9wdGlvbnMoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbEFjdGl2ZU9wdGlvbnMoKTogRWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoKGVsZW0pID0+IGVsZW0uaXNBY3RpdmUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7XG4gICAgICAgIC8qIGVtcHR5ICovXG4gICAgfTtcblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLyogZW1wdHkgKi9cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzaG93TXVsdGlzZWxlY3REcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dNdWx0aXNlbGVjdERyb3Bkb3duID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd011bHRpc2VsZWN0RHJvcGRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVTZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbC5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93Tm9SZXN1bHRzRm91bmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93Tm9SZXN1bHRzRm91bmQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU5vUmVzdWx0c0ZvdW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd05vUmVzdWx0c0ZvdW5kID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5pc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdEFsbENoZWNrYm94KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdyaXRlVmFsdWVzKHZhbHVlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cyAmJiB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdmFsdWVzLmluY2x1ZGVzKGl0ZW0udmFsdWUpICYmICFpdGVtLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmlzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzQXJyYXkucHVzaChlbC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9ICF0aGlzLmlzU2hvd011bHRpc2VsZWN0RHJvcGRvd247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk9wdGlvbkFycm93RG93bkFuZFRhYihldnQ6IEtleWJvYXJkRXZlbnQsIG9wdGlvbjogRWNsTXVsdGlzZWxlY3RPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0T3B0aW9uSW5kZXhCeUlkRnJvbUFjdGl2ZU9wdGlvbnMob3B0aW9uLmlkKTtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSBjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2libGluZ0NoZWNrYm94ID0gY3VycmVudE9wdGlvbnNbaW5kZXggKyAxXTtcbiAgICAgICAgICAgIG5leHRTaWJsaW5nQ2hlY2tib3gub25Gb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXJBbGxCdG4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lY2xNdWx0aXNlbGVjdElucHV0Lm9uRm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25PcHRpb25BcnJvd1VwKGV2dDogS2V5Ym9hcmRFdmVudCwgb3B0aW9uOiBFY2xNdWx0aXNlbGVjdE9wdGlvbik6IHZvaWQge1xuICAgICAgICAoZXZ0IGFzIEtleWJvYXJkRXZlbnQpLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRPcHRpb25JbmRleEJ5SWRGcm9tQWN0aXZlT3B0aW9ucyhvcHRpb24uaWQpO1xuICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZTaWJsaW5nQ2hlY2tib3ggPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKVtpbmRleCAtIDFdO1xuICAgICAgICAgICAgcHJldlNpYmxpbmdDaGVja2JveC5vbkZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3RpdmVPcHRpb25zKCk6IEVjbE11bHRpc2VsZWN0T3B0aW9uQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMgPyB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaXNBY3RpdmUpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25JbmRleEJ5SWRGcm9tQWN0aXZlT3B0aW9ucyhpZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdEFsbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB1dWlkZ2VuKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGVjbE11bHRpc2VsZWN0SW5wdXRcbiAgICAjZWNsTXVsdGlzZWxlY3RJbnB1dFxuICAgIFtpbnB1dFBsYWNlaG9sZGVyXT1cIm1haW5JbnB1dFBsYWNlaG9sZGVyXCJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAobWFpbklucHV0Q2xpY2spPVwib25DbGlja01haW5JbnB1dCgkZXZlbnQpXCJcbiAgICAobWFpbklucHV0S2V5ZG93bik9XCJvbktleWRvd25NYWluSW5wdXQoJGV2ZW50KVwiXG4gICAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpc0ludmFsaWRdPVwiaXNJbnZhbGlkXCI+PC9kaXY+XG48ZGl2XG4gICAgW3N0eWxlLmRpc3BsYXldPVwiaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtZHJvcGRvd24gZWNsLXNlbGVjdF9fY29udGFpbmVyIGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tbVwiPlxuICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImVjbC10ZXh0LWlucHV0XCJcbiAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQudGFyZ2V0KVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwU2VhcmNoKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd2Rvd24pPVwib25BcnJvd0Rvd25TZWFyY2goJGV2ZW50KVwiIC8+XG4gICAgPGRpdiBlY2xDaGVja2JveCAjc2VsZWN0QWxsIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtYWxsXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgZWNsQ2hlY2tib3hJbnB1dFxuICAgICAgICAgICAgI3NlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbaWRdPVwic2VsZWN0QWxsSWRcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwU2VsZWN0QWxsKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dkb3duKT1cIm9uQXJyb3dEb3duU2VsZWN0QWxsKCRldmVudClcIiAvPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJzZWxlY3RBbGxJZFwiIGVjbENoZWNrYm94TGFiZWw+IHt7ICdlY2wubXVsdGlzZWxlY3QuU0VMRUNULUFMTCcgfCB0cmFuc2xhdGUgfX0gKHt7IG9wdGlvbnNDb3VudCB9fSkgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9uc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG11bHRpT3B0aW9uRGlyZWN0aXZlc1wiPlxuICAgICAgICAgICAgPGRpdiBlY2xNdWx0aXNlbGVjdE9wdGdyb3VwICpuZ0lmPVwiaXRlbS5pc09wdEdyb3VwKClcIiBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgZWNsTXVsdGlzZWxlY3RPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW0gb2YgaXRlbS5lY2xPcHRpb25JdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJlbGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImVsZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZWxlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiZWxlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJlbGVtLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbkNsaWNrKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25LZXlkb3duKT1cIm9uS2V5ZG93bk9wdGlvbigkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBlY2xNdWx0aXNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uaXNPcHRHcm91cCgpXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAob3B0aW9uQ2xpY2spPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob3B0aW9uS2V5ZG93bik9XCJvbktleWRvd25PcHRpb24oJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd05vUmVzdWx0c0ZvdW5kXCIgY2xhc3M9XCJlY2wtc2VsZWN0X19tdWx0aXBsZS1uby1yZXN1bHRzXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnZWNsLm11bHRpc2VsZWN0Lk5PLVJFU1VMVFMtRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93VG9vbGJhclwiIGNsYXNzPVwiZWNsLXNlbGVjdC1tdWx0aXBsZS10b29sYmFyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICNjbGVhckFsbEJ0blxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJvbkFycm93VXBDbG9zZUNsZWFyKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dyaWdodCk9XCJvbkFycm93UmlnaHRDbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrQ2xlYXJBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgICAge3sgJ2VjbC5tdWx0aXNlbGVjdC5DTEVBUi1BTEwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICNjbG9zZUJ0blxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJvbkFycm93VXBDbG9zZUNsZWFyKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dsZWZ0KT1cIm9uQXJyb3dMZWZ0Q2xvc2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwib25UYWJDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrQ2xvc2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAge3sgJ2VjbC5jb21tb24uQ0xPU0UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duL2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi9lY2wtbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUMsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTVELE9BQU8sRUFFSCw2QkFBNkIsR0FFaEMsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFjcEUsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGdCQUFnQjtJQVdqRSxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFD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RkFoQ1EsK0JBQStCO2tCQVozQyxTQUFTOytCQUVJLDZCQUE2QixhQUU1Qjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NkdBR3lCLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDVSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNBLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ04sU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUN1QixRQUFRO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0ssV0FBVztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNELHFCQUFxQjtzQkFBakUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBQ2pDLFNBQVM7c0JBQWxCLE1BQU07Z0JBSUgsU0FBUztzQkFEWixLQUFLO2dCQVNGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlYLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtGLFFBQVE7c0JBRlgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxlQUFlO2dCQThFNUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1qRCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZGdlbiB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENoZWNrYm94RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWNoZWNrYm94JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0SW5wdXRDb21wb25lbnQsIEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCB9IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBFY2xNdWx0aXNlbGVjdE9wdGlvbkNsaWNrRXZlbnQsXG4gICAgRWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQsXG4gICAgRWNsTXVsdGlzZWxlY3RPcHRpb25LZXlkb3duRXZlbnQsXG59IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGl2W2VjbE11bHRpc2VsZWN0RHJvcGRvd25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdlY2xNdWx0aXNlbGVjdElucHV0JykgZWNsTXVsdGlzZWxlY3RJbnB1dDogRWNsTXVsdGlzZWxlY3RJbnB1dENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdzZWxlY3RBbGxDaGVja2JveCcpIHNlbGVjdEFsbENoZWNrYm94OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbCcpIHNlbGVjdEFsbDogRWNsQ2hlY2tib3hEaXJlY3RpdmU7XG4gICAgQFZpZXdDaGlsZCgnY2xvc2VCdG4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2xvc2VCdG46IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnY2xlYXJBbGxCdG4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2xlYXJBbGxCdG46IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZHJlbihFY2xNdWx0aXNlbGVjdE9wdGlvbkNvbXBvbmVudCkgbXVsdGlPcHRpb25Db21wb25lbnRzOiBRdWVyeUxpc3Q8RWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQ+O1xuICAgIEBPdXRwdXQoKSBlY2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0X19tdWx0aXBsZScpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBtYWluSW5wdXRQbGFjZWhvbGRlciA9ICdTZWxlY3QgYW4gaXRlbSc7XG4gICAgQElucHV0KCkgc2VhcmNoRmllbGRQbGFjZWhvbGRlciA9ICdFbnRlciBrZXl3b3JkJztcbiAgICBASW5wdXQoKSBlY2xTaXplID0gJ20nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGxJZCA9ICcnO1xuICAgIGlzU2hvd05vUmVzdWx0c0ZvdW5kID0gZmFsc2U7XG4gICAgaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9IGZhbHNlO1xuICAgIG11bHRpT3B0aW9uRGlyZWN0aXZlczogRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmVbXSA9IFtdO1xuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzSW52YWxpZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3NlbGVjdGVkSXRlbXM6IEVjbE11bHRpc2VsZWN0T3B0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgaXNXcml0ZVZhbHVlQ2FsbGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB2YWx1ZXMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cyk7XG5cbiAgICAgICAgaWYgKGRpZmYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWVzKHRoaXMudmFsdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbElkID0gdGhpcy5nZXRTZWxlY3RBbGxJZCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhpcy5yZXNldENvbXBvbmVudCgpO1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlcyh2YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gICAgb25Fc2NhcGVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlTXVsdGlzZWxlY3REcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbktleVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZU11bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBvcHRpb25zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpID8gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCkubGVuZ3RoIDogMDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRJdGVtcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzSXRlbXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93VG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBpbml0U2VsZWN0ZWRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzXG4gICAgICAgICAgICAuZmlsdGVyKChlbGVtKSA9PiBlbGVtLmlzQ2hlY2tlZClcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DbGlja0NsZWFyQWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KFtdKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoW10pO1xuICAgIH1cblxuICAgIG9uQ2xpY2tDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1VwQ2xvc2VDbGVhcihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpO1xuICAgICAgICBjdXJyZW50T3B0aW9uc1tjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxXS5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd0xlZnRDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvblRhYkNsb3NlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1JpZ2h0Q2xlYXIoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jbG9zZUJ0bi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25FbnRlclNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VhcmNoKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRPcHRpb25zWzBdLm9uRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dVcFNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duTWFpbklucHV0KGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2hvd011bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgb25DbGlja01haW5JbnB1dChldnQ6IEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VsZWN0QWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uc1swXS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFycm93VXBTZWxlY3RBbGwoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goaW5wdXQ6IEV2ZW50VGFyZ2V0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXdvcmQgPSAoaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgIGxldCBpc01hdGNoRm91bmQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGtleXdvcmQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNlbGVjdEFsbCgpO1xuICAgICAgICAgICAgaXNNYXRjaEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmhpZ2hsaWdodFNlYXJjaFRleHQoJycpO1xuICAgICAgICAgICAgICAgIGl0ZW0uc2hvdygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleXdvcmQudG9Mb3dlckNhc2UoKSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlzTWF0Y2hGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlnaGxpZ2h0U2VhcmNoVGV4dChrZXl3b3JkLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNNYXRjaEZvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOb1Jlc3VsdHNGb3VuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWRlTm9SZXN1bHRzRm91bmQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51bnNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5lY2xDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSkpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSkpO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bk9wdGlvbihldnQ6IEVjbE11bHRpc2VsZWN0T3B0aW9uS2V5ZG93bkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleWJvYXJkRXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfRE9XTjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25PcHRpb25BcnJvd0Rvd25BbmRUYWIoZXZ0LmtleWJvYXJkRXZlbnQsIGV2dC5tdWx0aXNlbGVjdE9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfVVA6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uT3B0aW9uQXJyb3dVcChldnQua2V5Ym9hcmRFdmVudCwgZXZ0Lm11bHRpc2VsZWN0T3B0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRU5URVI6IHtcbiAgICAgICAgICAgICAgICAoZXZ0LmtleWJvYXJkRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuVEFCOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkFycm93RG93bkFuZFRhYihldnQua2V5Ym9hcmRFdmVudCwgZXZ0Lm11bHRpc2VsZWN0T3B0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3B0aW9uU2VsZWN0ZWQoZXZ0OiBFY2xNdWx0aXNlbGVjdE9wdGlvbkNsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJPcHRpb24gPSBldnQubXVsdGlzZWxlY3RPcHRpb247XG4gICAgICAgIGlmIChjdXJyT3B0aW9uLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGN1cnJPcHRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9zZWxlY3RlZEl0ZW1zLmluZGV4T2YoY3Vyck9wdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fc2VsZWN0ZWRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZWNsQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0ZWRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0QWxsQWN0aXZlT3B0aW9ucygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmdldEFsbEFjdGl2ZU9wdGlvbnMoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbEFjdGl2ZU9wdGlvbnMoKTogRWNsTXVsdGlzZWxlY3RPcHRpb25Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoKGVsZW0pID0+IGVsZW0uaXNBY3RpdmUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7XG4gICAgICAgIC8qIGVtcHR5ICovXG4gICAgfTtcblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLyogZW1wdHkgKi9cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzaG93TXVsdGlzZWxlY3REcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dNdWx0aXNlbGVjdERyb3Bkb3duID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd011bHRpc2VsZWN0RHJvcGRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVTZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbC5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93Tm9SZXN1bHRzRm91bmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93Tm9SZXN1bHRzRm91bmQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU5vUmVzdWx0c0ZvdW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd05vUmVzdWx0c0ZvdW5kID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5pc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdEFsbENoZWNrYm94KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdyaXRlVmFsdWVzKHZhbHVlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cyAmJiB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdmFsdWVzLmluY2x1ZGVzKGl0ZW0udmFsdWUpICYmICFpdGVtLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmlzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzQXJyYXkucHVzaChlbC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9ICF0aGlzLmlzU2hvd011bHRpc2VsZWN0RHJvcGRvd247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk9wdGlvbkFycm93RG93bkFuZFRhYihldnQ6IEtleWJvYXJkRXZlbnQsIG9wdGlvbjogRWNsTXVsdGlzZWxlY3RPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0T3B0aW9uSW5kZXhCeUlkRnJvbUFjdGl2ZU9wdGlvbnMob3B0aW9uLmlkKTtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSBjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2libGluZ0NoZWNrYm94ID0gY3VycmVudE9wdGlvbnNbaW5kZXggKyAxXTtcbiAgICAgICAgICAgIG5leHRTaWJsaW5nQ2hlY2tib3gub25Gb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXJBbGxCdG4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lY2xNdWx0aXNlbGVjdElucHV0Lm9uRm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25PcHRpb25BcnJvd1VwKGV2dDogS2V5Ym9hcmRFdmVudCwgb3B0aW9uOiBFY2xNdWx0aXNlbGVjdE9wdGlvbik6IHZvaWQge1xuICAgICAgICAoZXZ0IGFzIEtleWJvYXJkRXZlbnQpLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRPcHRpb25JbmRleEJ5SWRGcm9tQWN0aXZlT3B0aW9ucyhvcHRpb24uaWQpO1xuICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZTaWJsaW5nQ2hlY2tib3ggPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKVtpbmRleCAtIDFdO1xuICAgICAgICAgICAgcHJldlNpYmxpbmdDaGVja2JveC5vbkZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3RpdmVPcHRpb25zKCk6IEVjbE11bHRpc2VsZWN0T3B0aW9uQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMgPyB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaXNBY3RpdmUpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25JbmRleEJ5SWRGcm9tQWN0aXZlT3B0aW9ucyhpZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdEFsbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB1dWlkZ2VuKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGVjbE11bHRpc2VsZWN0SW5wdXRcbiAgICAjZWNsTXVsdGlzZWxlY3RJbnB1dFxuICAgIFtpbnB1dFBsYWNlaG9sZGVyXT1cIm1haW5JbnB1dFBsYWNlaG9sZGVyXCJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAobWFpbklucHV0Q2xpY2spPVwib25DbGlja01haW5JbnB1dCgkZXZlbnQpXCJcbiAgICAobWFpbklucHV0S2V5ZG93bik9XCJvbktleWRvd25NYWluSW5wdXQoJGV2ZW50KVwiXG4gICAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpc0ludmFsaWRdPVwiaXNJbnZhbGlkXCJcbiAgICBbZWNsU2l6ZV09XCJlY2xTaXplXCI+PC9kaXY+XG48ZGl2XG4gICAgW3N0eWxlLmRpc3BsYXldPVwiaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtZHJvcGRvd24gZWNsLXNlbGVjdF9fY29udGFpbmVyIGVjbC1zZWxlY3RfX2NvbnRhaW5lci0te3tlY2xTaXplfX1cIj5cbiAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJlY2wtdGV4dC1pbnB1dFwiXG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpZWxkUGxhY2Vob2xkZXJcIlxuICAgICAgICAoaW5wdXQpPVwib25TZWFyY2goJGV2ZW50LnRhcmdldClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyU2VhcmNoKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd3VwKT1cIm9uQXJyb3dVcFNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dkb3duKT1cIm9uQXJyb3dEb3duU2VhcmNoKCRldmVudClcIiAvPlxuICAgIDxkaXYgZWNsQ2hlY2tib3ggI3NlbGVjdEFsbCBjbGFzcz1cImVjbC1zZWxlY3RfX211bHRpcGxlLWFsbFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGVjbENoZWNrYm94SW5wdXRcbiAgICAgICAgICAgICNzZWxlY3RBbGxDaGVja2JveFxuICAgICAgICAgICAgW2lkXT1cInNlbGVjdEFsbElkXCJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd3VwKT1cIm9uQXJyb3dVcFNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJvbkFycm93RG93blNlbGVjdEFsbCgkZXZlbnQpXCIgLz5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwic2VsZWN0QWxsSWRcIiBlY2xDaGVja2JveExhYmVsPiB7eyAnZWNsLm11bHRpc2VsZWN0LlNFTEVDVC1BTEwnIHwgdHJhbnNsYXRlIH19ICh7eyBvcHRpb25zQ291bnQgfX0pIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVjbC1zZWxlY3RfX211bHRpcGxlLW9wdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtdWx0aU9wdGlvbkRpcmVjdGl2ZXNcIj5cbiAgICAgICAgICAgIDxkaXYgZWNsTXVsdGlzZWxlY3RPcHRncm91cCAqbmdJZj1cIml0ZW0uaXNPcHRHcm91cCgpXCIgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGVjbE11bHRpc2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGVtIG9mIGl0ZW0uZWNsT3B0aW9uSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZWxlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJlbGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVsZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImVsZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZWxlbS5jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25DbGljayk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uS2V5ZG93bik9XCJvbktleWRvd25PcHRpb24oJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgZWNsTXVsdGlzZWxlY3RPcHRpb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmlzT3B0R3JvdXAoKVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiaXRlbS5jbGFzc1wiXG4gICAgICAgICAgICAgICAgKG9wdGlvbkNsaWNrKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9wdGlvbktleWRvd24pPVwib25LZXlkb3duT3B0aW9uKCRldmVudClcIj48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dOb1Jlc3VsdHNGb3VuZFwiIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtbm8tcmVzdWx0c1wiPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ2VjbC5tdWx0aXNlbGVjdC5OTy1SRVNVTFRTLUZPVU5EJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzU2hvd1Rvb2xiYXJcIiBjbGFzcz1cImVjbC1zZWxlY3QtbXVsdGlwbGUtdG9vbGJhclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAjY2xlYXJBbGxCdG5cbiAgICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwQ2xvc2VDbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93cmlnaHQpPVwib25BcnJvd1JpZ2h0Q2xlYXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyQWxsKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7ICdlY2wubXVsdGlzZWxlY3QuQ0xFQVItQUxMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZWNsQnV0dG9uXG4gICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAjY2xvc2VCdG5cbiAgICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwQ2xvc2VDbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93bGVmdCk9XCJvbkFycm93TGVmdENsb3NlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24udGFiKT1cIm9uVGFiQ2xvc2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0Nsb3NlKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7ICdlY2wuY29tbW9uLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -12,12 +12,13 @@ export class EclMultiselectMainInputClickEvent {
12
12
  }
13
13
  export class EclMultiselectInputComponent extends ECLBaseDirective {
14
14
  get cssClasses() {
15
- return [super.getCssClasses('ecl-select__container'), 'ecl-select__container--m'].join(' ').trim();
15
+ return [super.getCssClasses('ecl-select__container'), `ecl-select__container--${this.eclSize}`].join(' ').trim();
16
16
  }
17
17
  constructor() {
18
18
  super();
19
19
  this.mainInputClick = new EventEmitter();
20
20
  this.mainInputKeydown = new EventEmitter();
21
+ this.eclSize = 'm';
21
22
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
23
  this.isDisabled = false;
23
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -52,7 +53,7 @@ export class EclMultiselectInputComponent extends ECLBaseDirective {
52
53
  this.inputMultiselect.nativeElement.focus();
53
54
  }
54
55
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EclMultiselectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: { isDisabled: "isDisabled", isInvalid: "isInvalid", inputPlaceholder: "inputPlaceholder", selectedItems: "selectedItems" }, outputs: { mainInputClick: "mainInputClick", mainInputKeydown: "mainInputKeydown" }, host: { properties: { "class.ecl-select__container--disabled": "this.isDisabled", "class.ecl-select__container--invalid": "this.isInvalid", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "inputMultiselect", first: true, predicate: ["inputMultiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter\" class=\"ecl-select-multiple-selections-counter\">\n <span>{{ selectedItemsCount }}</span>\n</div>\n<input\n class=\"ecl-select ecl-select__multiple-toggle\"\n #inputMultiselect\n type=\"text\"\n [attr.placeholder]=\"inputPlaceholder\"\n readonly=\"true\"\n [value]=\"selectedItems\"\n [attr.disabled]=\"isDisabled ? true : undefined\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\" />\n<div class=\"ecl-select__icon\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" class=\"ecl-select__icon-shape\" transform=\"rotate-180\"></ecl-icon>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }] }); }
56
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: { eclSize: "eclSize", isDisabled: "isDisabled", isInvalid: "isInvalid", inputPlaceholder: "inputPlaceholder", selectedItems: "selectedItems" }, outputs: { mainInputClick: "mainInputClick", mainInputKeydown: "mainInputKeydown" }, host: { properties: { "class.ecl-select__container--disabled": "this.isDisabled", "class.ecl-select__container--invalid": "this.isInvalid", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "inputMultiselect", first: true, predicate: ["inputMultiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter\" class=\"ecl-select-multiple-selections-counter\">\n <span>{{ selectedItemsCount }}</span>\n</div>\n<input\n class=\"ecl-select ecl-select__multiple-toggle\"\n #inputMultiselect\n type=\"text\"\n [attr.placeholder]=\"inputPlaceholder\"\n readonly=\"true\"\n [value]=\"selectedItems\"\n [attr.disabled]=\"isDisabled ? true : undefined\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\" />\n<div class=\"ecl-select__icon\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" class=\"ecl-select__icon-shape\" transform=\"rotate-180\"></ecl-icon>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }] }); }
56
57
  }
57
58
  __decorate([
58
59
  coerceBoolean
@@ -70,6 +71,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
70
71
  type: Output
71
72
  }], mainInputKeydown: [{
72
73
  type: Output
74
+ }], eclSize: [{
75
+ type: Input
73
76
  }], isDisabled: [{
74
77
  type: Input
75
78
  }, {
@@ -88,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
88
91
  }], selectedItems: [{
89
92
  type: Input
90
93
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWlucHV0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXpDLE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsWUFBbUIsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO0NBQ3RDO0FBT0QsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFnQjtJQWM5RCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZHLENBQUM7SUFLRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBckJGLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFDdkUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUN2RCw4REFBOEQ7UUFJOUQsZUFBVSxHQUF3QixLQUFLLENBQUM7UUFDeEMsOERBQThEO1FBSTlELGNBQVMsR0FBd0IsS0FBSyxDQUFDO1FBTzlCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0lBSTVCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksaUNBQWlDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQWtCO1FBQ3hCLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNiLEtBQUssT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07YUFDVDtZQUNELEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO2FBQ1Q7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDO2lJQXhEUSw0QkFBNEI7cUhBQTVCLDRCQUE0QixrbEJDZHpDLGtxQkFnQkE7O0FETUk7SUFIQyxhQUFhO2dFQUcwQjtBQUt4QztJQUhDLGFBQWE7K0RBR3lCOzJGQWI5Qiw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBRUksMEJBQTBCO3dEQUlMLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ25CLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUtQLFVBQVU7c0JBRlQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBTXBELFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxzQ0FBc0M7Z0JBRy9DLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUtYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBldmVudDogRXZlbnQpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdkaXZbZWNsTXVsdGlzZWxlY3RJbnB1dF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdElucHV0Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRNdWx0aXNlbGVjdCcpIGlucHV0TXVsdGlzZWxlY3Q6IEVsZW1lbnRSZWY7XG4gICAgQE91dHB1dCgpIG1haW5JbnB1dENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1haW5JbnB1dEtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcpXG4gICAgaXNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1pbnZhbGlkJylcbiAgICBpc0ludmFsaWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpLCAnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1tJ10uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93Q291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluSW5wdXRDbGljay5lbWl0KG5ldyBFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQoZXZ0KSk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FTlRFUjoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5JbnB1dEtleWRvd24uZW1pdChldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE11bHRpc2VsZWN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtjbGFzcy5lY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlci0tdmlzaWJsZV09XCJpc1Nob3dDb3VudGVyXCIgY2xhc3M9XCJlY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlclwiPlxuICAgIDxzcGFuPnt7IHNlbGVjdGVkSXRlbXNDb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGlucHV0XG4gICAgY2xhc3M9XCJlY2wtc2VsZWN0IGVjbC1zZWxlY3RfX211bHRpcGxlLXRvZ2dsZVwiXG4gICAgI2lucHV0TXVsdGlzZWxlY3RcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiaW5wdXRQbGFjZWhvbGRlclwiXG4gICAgcmVhZG9ubHk9XCJ0cnVlXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCIgLz5cbjxkaXYgY2xhc3M9XCJlY2wtc2VsZWN0X19pY29uXCI+XG4gICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNlbGVjdF9faWNvbi1zaGFwZVwiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIj48L2VjbC1pY29uPlxuPC9kaXY+XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWlucHV0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXpDLE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsWUFBbUIsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO0NBQ3RDO0FBT0QsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFnQjtJQWU5RCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckgsQ0FBQztJQUtEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF0QkYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUMsQ0FBQztRQUN2RSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzlDLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFDdkIsOERBQThEO1FBSTlELGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBQ3hDLDhEQUE4RDtRQUk5RCxjQUFTLEdBQXdCLEtBQUssQ0FBQztRQU85QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVU7UUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFpQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFrQjtRQUN4QixRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDYixLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNyQixNQUFNO2FBQ1Q7WUFDRCxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsTUFBTTthQUNUO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ0wsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEQsQ0FBQztpSUF6RFEsNEJBQTRCO3FIQUE1Qiw0QkFBNEIsc21CQ2R6QyxrcUJBZ0JBOztBRE9JO0lBSEMsYUFBYTtnRUFHMEI7QUFLeEM7SUFIQyxhQUFhOytEQUd5QjsyRkFkOUIsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUVJLDBCQUEwQjt3REFJTCxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNuQixjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBS04sVUFBVTtzQkFGVCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHVDQUF1QztnQkFNcEQsU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHNDQUFzQztnQkFHL0MsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS1gsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGV2ZW50OiBFdmVudCkge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RpdltlY2xNdWx0aXNlbGVjdElucHV0XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tdWx0aXNlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE11bHRpc2VsZWN0SW5wdXRDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBAVmlld0NoaWxkKCdpbnB1dE11bHRpc2VsZWN0JykgaW5wdXRNdWx0aXNlbGVjdDogRWxlbWVudFJlZjtcbiAgICBAT3V0cHV0KCkgbWFpbklucHV0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWFpbklucHV0S2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICAgQElucHV0KCkgZWNsU2l6ZSA9ICdtJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1zZWxlY3RfX2NvbnRhaW5lci0tZGlzYWJsZWQnKVxuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1zZWxlY3RfX2NvbnRhaW5lci0taW52YWxpZCcpXG4gICAgaXNJbnZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0X19jb250YWluZXInKSwgYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93Q291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluSW5wdXRDbGljay5lbWl0KG5ldyBFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQoZXZ0KSk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FTlRFUjoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5JbnB1dEtleWRvd24uZW1pdChldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE11bHRpc2VsZWN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtjbGFzcy5lY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlci0tdmlzaWJsZV09XCJpc1Nob3dDb3VudGVyXCIgY2xhc3M9XCJlY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlclwiPlxuICAgIDxzcGFuPnt7IHNlbGVjdGVkSXRlbXNDb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGlucHV0XG4gICAgY2xhc3M9XCJlY2wtc2VsZWN0IGVjbC1zZWxlY3RfX211bHRpcGxlLXRvZ2dsZVwiXG4gICAgI2lucHV0TXVsdGlzZWxlY3RcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiaW5wdXRQbGFjZWhvbGRlclwiXG4gICAgcmVhZG9ubHk9XCJ0cnVlXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCIgLz5cbjxkaXYgY2xhc3M9XCJlY2wtc2VsZWN0X19pY29uXCI+XG4gICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNlbGVjdF9faWNvbi1zaGFwZVwiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIj48L2VjbC1pY29uPlxuPC9kaXY+XG4iXX0=
@@ -46,6 +46,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
46
46
  this.viewContainerRef = viewContainerRef;
47
47
  this.differs = differs;
48
48
  this.eclChange = new EventEmitter();
49
+ this.eclSize = 'm';
49
50
  this._disabled = false;
50
51
  this._isInvalid = false;
51
52
  this._eclPlaceholder = 'Select item';
@@ -85,7 +86,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
85
86
  createHostWrapperContainer() {
86
87
  const wrapperContainer = document.createElement('div');
87
88
  wrapperContainer.classList.add('ecl-select__container');
88
- wrapperContainer.classList.add('ecl-select__container--m');
89
+ wrapperContainer.classList.add(`ecl-select__container--${this.eclSize}`);
89
90
  return wrapperContainer;
90
91
  }
91
92
  getHostElement() {
@@ -102,6 +103,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
102
103
  this.eclChange.emit(evt);
103
104
  });
104
105
  this.multiselectComponent.mainInputPlaceholder = this.eclPlaceholder;
106
+ this.multiselectComponent.eclSize = this.eclSize;
105
107
  if (ngControl) {
106
108
  ngControl.valueAccessor = this.multiselectComponent;
107
109
  }
@@ -115,7 +117,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
115
117
  });
116
118
  }
117
119
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component }); }
118
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclMultiselectComponent, selector: "select[eclMultiselect]", inputs: { isInvalid: "isInvalid", disabled: "disabled", eclPlaceholder: "eclPlaceholder" }, outputs: { eclChange: "eclChange" }, host: { properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, providers: [
120
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclMultiselectComponent, selector: "select[eclMultiselect]", inputs: { isInvalid: "isInvalid", disabled: "disabled", eclPlaceholder: "eclPlaceholder", eclSize: "eclSize" }, outputs: { eclChange: "eclChange" }, host: { properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, providers: [
119
121
  {
120
122
  provide: NG_VALUE_ACCESSOR,
121
123
  useExisting: forwardRef((() => EclMultiselectComponent)),
@@ -152,5 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
152
154
  type: Output
153
155
  }], eclPlaceholder: [{
154
156
  type: Input
157
+ }], eclSize: [{
158
+ type: Input
155
159
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFFWCxLQUFLLEVBS0wsTUFBTSxFQUdOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBZ0I1RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBR3pELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBMEI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFD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RUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHdCQUF3QixFQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjttS0FHaUUsY0FBYztzQkFBL0UsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBRzVELFNBQVM7c0JBRFosS0FBSztnQkFZRixRQUFRO3NCQUZYLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZUFBZTtnQkFXeEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBSVYsU0FBUztzQkFBbEIsTUFBTTtnQkFFSCxjQUFjO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duL2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdzZWxlY3RbZWNsTXVsdGlzZWxlY3RdJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2xNdWx0aXNlbGVjdENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBEb0NoZWNrLCBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlKSkgZWNsT3B0aW9uSXRlbXM6IFF1ZXJ5TGlzdDxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50LmlzSW52YWxpZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudC5kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCB1bmRlZmluZWQ7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXNlbGVjdCcpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgZWNsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBlY2xQbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2VjbFBsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50Lm1haW5JbnB1dFBsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGVjbFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lY2xQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzSW52YWxpZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2VjbFBsYWNlaG9sZGVyID0gJ1NlbGVjdCBpdGVtJztcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmU+O1xuICAgIHByaXZhdGUgbXVsdGlzZWxlY3RDb21wb25lbnQ6IEVjbE11bHRpc2VsZWN0RHJvcGRvd25Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSBob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFBhcmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGhvc3RXcmFwcGVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbXVsdGlzZWxlY3RDb21wb25lbnRIdG1sOiBIVE1MRGl2RWxlbWVudDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsT3B0aW9uSXRlbXMpO1xuXG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQubXVsdGlPcHRpb25EaXJlY3RpdmVzID0gdGhpcy5lY2xPcHRpb25JdGVtcy50b0FycmF5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3N0RWwgPSB0aGlzLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsID0gdGhpcy5nZXRIb3N0UGFyZW50RWxlbWVudCh0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbCA9IHRoaXMuY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudEh0bWwgPSB0aGlzLmNyZWF0ZU11bHRpc2VsZWN0Q29tcG9uZW50KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF0dGFjaE9wdGlvbnMoKTtcbiAgICAgICAgaWYgKHRoaXMuaG9zdFBhcmVudEVsICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZU9yaWdpbmFsU2VsZWN0Q29tcG9uZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50SHRtbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLnJlcGxhY2VDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0taGlkZGVuJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXInKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXItLW0nKTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MU2VsZWN0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0UGFyZW50RWxlbWVudChob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gaG9zdEVsLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVNdWx0aXNlbGVjdENvbXBvbmVudCgpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgdW5kZWZpbmVkLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCBtdWx0aXNlbGVjdCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQgPSBtdWx0aXNlbGVjdC5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudC5lY2xDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50Lm1haW5JbnB1dFBsYWNlaG9sZGVyID0gdGhpcy5lY2xQbGFjZWhvbGRlcjtcbiAgICAgICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIG11bHRpc2VsZWN0Lmluc3RhbmNlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICAgICAgbXVsdGlzZWxlY3QuaW5zdGFuY2UuaXNJbnZhbGlkID0gdGhpcy5pc0ludmFsaWQ7XG4gICAgICAgIHJldHVybiAobXVsdGlzZWxlY3QubG9jYXRpb24gYXMgRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQubXVsdGlPcHRpb25EaXJlY3RpdmVzID0gdGhpcy5lY2xPcHRpb25JdGVtcy50b0FycmF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFFWCxLQUFLLEVBS0wsTUFBTSxFQUdOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBZ0I1RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBR3pELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBMEI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFD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STtJQURDLGFBQWE7d0RBSWI7MkZBTlEsdUJBQXVCO2tCQWJuQyxTQUFTOytCQUVJLHdCQUF3QixpQkFFbkIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7bUtBR2lFLGNBQWM7c0JBQS9FLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2dCQUc1RCxTQUFTO3NCQURaLEtBQUs7Z0JBWUYsUUFBUTtzQkFGWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGVBQWU7Z0JBV3hCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlWLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUgsY0FBYztzQkFEakIsS0FBSztnQkFVRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtbXVsdGlzZWxlY3QtZHJvcGRvd24vZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9lY2wtbXVsdGlzZWxlY3Qtb3B0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3NlbGVjdFtlY2xNdWx0aXNlbGVjdF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjbE11bHRpc2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbE11bHRpc2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUpKSBlY2xPcHRpb25JdGVtczogUXVlcnlMaXN0PEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlPjtcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG4gICAgc2V0IGlzSW52YWxpZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQuaXNJbnZhbGlkID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50LmRpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0JyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBPdXRwdXQoKSBlY2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVjbFBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZWNsUGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQubWFpbklucHV0UGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZWNsUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VjbFBsYWNlaG9sZGVyO1xuICAgIH1cbiAgICBASW5wdXQoKSBlY2xTaXplID0gJ20nO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZWNsUGxhY2Vob2xkZXIgPSAnU2VsZWN0IGl0ZW0nO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdENvbXBvbmVudDogRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudDtcbiAgICBwcml2YXRlIGhvc3RFbDogSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdENvbXBvbmVudEh0bWw6IEhUTUxEaXZFbGVtZW50O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xPcHRpb25JdGVtcyk7XG5cbiAgICAgICAgaWYgKGRpZmYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudC5tdWx0aU9wdGlvbkRpcmVjdGl2ZXMgPSB0aGlzLmVjbE9wdGlvbkl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50SHRtbCA9IHRoaXMuY3JlYXRlTXVsdGlzZWxlY3RDb21wb25lbnQoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXR0YWNoT3B0aW9ucygpO1xuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnRIdG1sKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVPcmlnaW5hbFNlbGVjdENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwucmVwbGFjZUNoaWxkKHRoaXMuaG9zdFdyYXBwZXJFbCwgdGhpcy5ob3N0RWwpO1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5ob3N0RWwpO1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1oaWRkZW4nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlckNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB3cmFwcGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpO1xuICAgICAgICB3cmFwcGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YCk7XG4gICAgICAgIHJldHVybiB3cmFwcGVyQ29udGFpbmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTFNlbGVjdEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdFBhcmVudEVsZW1lbnQoaG9zdEVsOiBIVE1MU2VsZWN0RWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTXVsdGlzZWxlY3RDb21wb25lbnQoKTogSFRNTERpdkVsZW1lbnQge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIHVuZGVmaW5lZCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAgICAgY29uc3QgbXVsdGlzZWxlY3QgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEVjbE11bHRpc2VsZWN0RHJvcGRvd25Db21wb25lbnQpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50ID0gbXVsdGlzZWxlY3QuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQuZWNsQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lY2xDaGFuZ2UuZW1pdChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbXBvbmVudC5tYWluSW5wdXRQbGFjZWhvbGRlciA9IHRoaXMuZWNsUGxhY2Vob2xkZXI7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQuZWNsU2l6ZSA9IHRoaXMuZWNsU2l6ZTtcbiAgICAgICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzLm11bHRpc2VsZWN0Q29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIG11bHRpc2VsZWN0Lmluc3RhbmNlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICAgICAgbXVsdGlzZWxlY3QuaW5zdGFuY2UuaXNJbnZhbGlkID0gdGhpcy5pc0ludmFsaWQ7XG4gICAgICAgIHJldHVybiAobXVsdGlzZWxlY3QubG9jYXRpb24gYXMgRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb21wb25lbnQubXVsdGlPcHRpb25EaXJlY3RpdmVzID0gdGhpcy5lY2xPcHRpb25JdGVtcy50b0FycmF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -15,6 +15,7 @@ export class EclPaginationItemClickEvent extends EclBaseEvent {
15
15
  export class EclPaginationItemComponent extends ECLBaseDirective {
16
16
  constructor() {
17
17
  super(...arguments);
18
+ this.role = 'listitem';
18
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
20
  this.routerLink = null;
20
21
  this.queryParams = null;
@@ -62,7 +63,7 @@ export class EclPaginationItemComponent extends ECLBaseDirective {
62
63
  return key;
63
64
  }
64
65
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EclPaginationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
65
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i4.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: i5.EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
66
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i4.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: i5.EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
66
67
  }
67
68
  __decorate([
68
69
  coerceBoolean
@@ -79,6 +80,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
79
80
  }], propDecorators: { cssClasses: [{
80
81
  type: HostBinding,
81
82
  args: ['class']
83
+ }], role: [{
84
+ type: HostBinding,
85
+ args: ['attr.role']
82
86
  }], label: [{
83
87
  type: Input
84
88
  }], ariaLabel: [{
@@ -100,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
100
104
  }], pageClick: [{
101
105
  type: Output
102
106
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBR3pELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFZO0NBQUc7QUFPaEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGdCQUFnQjtJQUxoRTs7UUEwQkksOERBQThEO1FBQ3JELGVBQVUsR0FBbUIsSUFBSSxDQUFDO1FBQ2xDLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUNsQyx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBQ2hELFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7S0FnQ3pFO0lBMURHLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFEO2FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFrQkQsV0FBVyxDQUFDLEdBQWU7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztTQUMxQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixHQUFHLEdBQUcsZ0NBQWdDLENBQUM7U0FDMUM7YUFBTTtZQUNILEdBQUcsR0FBRywyQkFBMkIsQ0FBQztTQUNyQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixHQUFHLEdBQUcseUJBQXlCLENBQUM7U0FDbkM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7aUlBMURRLDBCQUEwQjtxSEFBMUIsMEJBQTBCLHFaQ2J2QyxrbkNBNEJBOztBREM0QjtJQUF2QixhQUFhOzZEQUFtQztBQUV6QjtJQUF2QixhQUFhOzBEQUFnQztBQUV0QjtJQUF2QixhQUFhOzhEQUFvQzsyRkFwQnpDLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsaUJBRWhCLGlCQUFpQixDQUFDLElBQUk7OEJBSWpDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQVlYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVrQixTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVaLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9lY2wtYmFzZS5ldmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGFyYW1zLCBRdWVyeVBhcmFtc0hhbmRsaW5nIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGNsYXNzIEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1wYWdpbmF0aW9uLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtcGFnaW5hdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xQYWdpbmF0aW9uSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtcGFnaW5hdGlvbl9faXRlbScpLFxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnQgPyAnZWNsLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzTmV4dCA/ICdlY2wtcGFnaW5hdGlvbl9faXRlbS0tbmV4dCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2aW91cyA/ICdlY2wtcGFnaW5hdGlvbl9faXRlbS0tcHJldmlvdXMnIDogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzQ3VycmVudDogYm9vbGVhbiB8IGFueTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzTmV4dDogYm9vbGVhbiB8IGFueTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzUHJldmlvdXM6IGJvb2xlYW4gfCBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBASW5wdXQoKSByb3V0ZXJMaW5rOiBzdHJpbmcgfCBhbnlbXSA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXM6IFBhcmFtcyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhyZWYgPSAnJztcblxuICAgIEBPdXRwdXQoKSBwYWdlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudD4oKTtcblxuICAgIG9uUGFnZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VDbGljay5uZXh0KG5ldyBFY2xQYWdpbmF0aW9uSXRlbUNsaWNrRXZlbnQoKSk7XG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRpMThuUGFnZUFyaWFMYWJlbEtleSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQga2V5ID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZXh0KSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uR08tVE8tTkVYVC1QQUdFJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXMpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5HTy1UTy1QUkVWLVBBR0UnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLkdPLVRPLVBBR0UnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VMYWJlbEtleSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQga2V5ID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZXh0KSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uTkVYVCc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXZpb3VzKSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uUFJFVklPVVMnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxufVxuIiwiPGFcbiAgICAqbmdJZj1cIiFpc0N1cnJlbnRcIlxuICAgIGVjbExpbmtcbiAgICAoY2xpY2spPVwib25QYWdlQ2xpY2soJGV2ZW50KVwiXG4gICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGFyaWFMYWJlbCB8fCBnZXRpMThuUGFnZUFyaWFMYWJlbEtleSgpIHwgdHJhbnNsYXRlOiB7IHBhZ2VOdW1iZXI6IGxhYmVsIH0gfX1cIlxuICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmtcIlxuICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgW2hyZWZdPVwiaHJlZlwiXG4gICAgY2xhc3M9XCJlY2wtcGFnaW5hdGlvbl9fbGlua1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1ByZXZpb3VzXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4gZWNsTGlua0xhYmVsPnt7IGxhYmVsIHx8IGdldGkxOG5QYWdlTGFiZWxLZXkoKSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNOZXh0XCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTkwXCI+PC9lY2wtaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ3VycmVudFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZWNsLXBhZ2luYXRpb25fX3RleHQgZWNsLXBhZ2luYXRpb25fX3RleHQtLXN1bW1hcnlcIiBhcmlhLWN1cnJlbnQ9XCJ0cnVlXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZWNsLXBhZ2luYXRpb25fX3RleHQgZWNsLXBhZ2luYXRpb25fX3RleHQtLWZ1bGxcIiBhcmlhLWN1cnJlbnQ9XCJ0cnVlXCI+XG4gICAgICAgIHt7ICdlY2wucGFnaW5hdGlvbi5QQUdFJyB8IHRyYW5zbGF0ZTogeyBwYWdlTnVtYmVyOiBsYWJlbCB9IH19XG4gICAgPC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBR3pELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFZO0NBQUc7QUFPaEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGdCQUFnQjtJQUxoRTs7UUFpQjhCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFVNUMsOERBQThEO1FBQ3JELGVBQVUsR0FBbUIsSUFBSSxDQUFDO1FBQ2xDLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUNsQyx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBQ2hELFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7S0FnQ3pFO0lBM0RHLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFEO2FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFtQkQsV0FBVyxDQUFDLEdBQWU7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztTQUMxQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixHQUFHLEdBQUcsZ0NBQWdDLENBQUM7U0FDMUM7YUFBTTtZQUNILEdBQUcsR0FBRywyQkFBMkIsQ0FBQztTQUNyQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixHQUFHLEdBQUcseUJBQXlCLENBQUM7U0FDbkM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7aUlBM0RRLDBCQUEwQjtxSEFBMUIsMEJBQTBCLCthQ2J2QyxrbkNBNEJBOztBREU0QjtJQUF2QixhQUFhOzZEQUFtQztBQUV6QjtJQUF2QixhQUFhOzBEQUFnQztBQUV0QjtJQUF2QixhQUFhOzhEQUFvQzsyRkFyQnpDLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsaUJBRWhCLGlCQUFpQixDQUFDLElBQUk7OEJBSWpDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQVdNLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFFZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFa0IsU0FBUztzQkFBakIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFWixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBhcmFtcywgUXVlcnlQYXJhbXNIYW5kbGluZyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBjbGFzcyBFY2xQYWdpbmF0aW9uSXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge31cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtcGFnaW5hdGlvbi1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsUGFnaW5hdGlvbkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXBhZ2luYXRpb25fX2l0ZW0nKSxcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50ID8gJ2VjbC1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc05leHQgPyAnZWNsLXBhZ2luYXRpb25fX2l0ZW0tLW5leHQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzUHJldmlvdXMgPyAnZWNsLXBhZ2luYXRpb25fX2l0ZW0tLXByZXZpb3VzJyA6ICcnLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbGlzdGl0ZW0nO1xuICAgIFxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc0N1cnJlbnQ6IGJvb2xlYW4gfCBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc05leHQ6IGJvb2xlYW4gfCBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc1ByZXZpb3VzOiBib29sZWFuIHwgYW55O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcm91dGVyTGluazogc3RyaW5nIHwgYW55W10gPSBudWxsO1xuICAgIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtc0hhbmRsaW5nOiBRdWVyeVBhcmFtc0hhbmRsaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBocmVmID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgcGFnZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xQYWdpbmF0aW9uSXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgICBvblBhZ2VDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlQ2xpY2submV4dChuZXcgRWNsUGFnaW5hdGlvbkl0ZW1DbGlja0V2ZW50KCkpO1xuICAgICAgICBpZiAoIXRoaXMuaHJlZikge1xuICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VBcmlhTGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGtleSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTmV4dCkge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLkdPLVRPLU5FWFQtUEFHRSc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXZpb3VzKSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uR08tVE8tUFJFVi1QQUdFJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5HTy1UTy1QQUdFJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIGdldGkxOG5QYWdlTGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGtleSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTmV4dCkge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLk5FWFQnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNQcmV2aW91cykge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLlBSRVZJT1VTJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cbn1cbiIsIjxhXG4gICAgKm5nSWY9XCIhaXNDdXJyZW50XCJcbiAgICBlY2xMaW5rXG4gICAgKGNsaWNrKT1cIm9uUGFnZUNsaWNrKCRldmVudClcIlxuICAgIHZhcmlhbnQ9XCJzdGFuZGFsb25lXCJcbiAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyBhcmlhTGFiZWwgfHwgZ2V0aTE4blBhZ2VBcmlhTGFiZWxLZXkoKSB8IHRyYW5zbGF0ZTogeyBwYWdlTnVtYmVyOiBsYWJlbCB9IH19XCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIGNsYXNzPVwiZWNsLXBhZ2luYXRpb25fX2xpbmtcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQcmV2aW91c1wiPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJ4c1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIj48L2VjbC1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuIGVjbExpbmtMYWJlbD57eyBsYWJlbCB8fCBnZXRpMThuUGFnZUxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTmV4dFwiPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJ4c1wiIHRyYW5zZm9ybT1cInJvdGF0ZS05MFwiPjwvZWNsLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1cnJlbnRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImVjbC1wYWdpbmF0aW9uX190ZXh0IGVjbC1wYWdpbmF0aW9uX190ZXh0LS1zdW1tYXJ5XCIgYXJpYS1jdXJyZW50PVwidHJ1ZVwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImVjbC1wYWdpbmF0aW9uX190ZXh0IGVjbC1wYWdpbmF0aW9uX190ZXh0LS1mdWxsXCIgYXJpYS1jdXJyZW50PVwidHJ1ZVwiPlxuICAgICAgICB7eyAnZWNsLnBhZ2luYXRpb24uUEFHRScgfCB0cmFuc2xhdGU6IHsgcGFnZU51bWJlcjogbGFiZWwgfSB9fVxuICAgIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuIl19