@eui/components 18.2.10-snapshot-1740664174340 → 18.2.10-snapshot-1741251940445
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.
- package/docs/components/EuiAutocompleteComponent.html +1 -1
- package/docs/components/EuiLanguageSelectorComponent.html +25 -5
- package/docs/components/EuiPageColumnComponent.html +2 -12
- package/docs/components/EuiPopoverComponent.html +1 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +4 -3
- package/esm2022/eui-language-selector/language-selector.component.mjs +14 -4
- package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +4 -5
- package/esm2022/eui-popover/eui-popover.component.mjs +5 -4
- package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +3 -3
- package/esm2022/eui-table/eui-table.component.mjs +2 -2
- package/esm2022/eui-table-v2/eui-table-v2.component.mjs +2 -2
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +2 -2
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +3 -3
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/eui-language-selector/language-selector.component.d.ts +4 -2
- package/eui-language-selector/language-selector.component.d.ts.map +1 -1
- package/eui-page/components/eui-page-column/eui-page-column.component.d.ts +2 -2
- package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
- package/eui-popover/eui-popover.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-autocomplete.mjs +3 -2
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-language-selector.mjs +13 -3
- package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
- package/fesm2022/eui-components-eui-page.mjs +3 -4
- package/fesm2022/eui-components-eui-page.mjs.map +1 -1
- package/fesm2022/eui-components-eui-popover.mjs +4 -3
- package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
- package/fesm2022/eui-components-eui-slide-toggle.mjs +2 -2
- package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table-v2.mjs +2 -2
- package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table.mjs +2 -2
- package/fesm2022/eui-components-eui-table.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +4 -4
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +3 -3
@@ -18,7 +18,9 @@ export class EuiLanguageSelectorComponent {
|
|
18
18
|
'eui-language-selector',
|
19
19
|
this.languages?.length <= 1 ? 'eui-language-selector--empty' : '',
|
20
20
|
this.isToolbarSelector ? 'eui-language-selector--toolbar-selector' : '',
|
21
|
-
]
|
21
|
+
]
|
22
|
+
.join(' ')
|
23
|
+
.trim();
|
22
24
|
}
|
23
25
|
constructor(cd, euiDialogService, appShellService, translateService, elRef) {
|
24
26
|
this.cd = cd;
|
@@ -29,7 +31,6 @@ export class EuiLanguageSelectorComponent {
|
|
29
31
|
this.hasLanguageSelection = true;
|
30
32
|
this.isToolbarSelector = false;
|
31
33
|
this.euiPrimary = false;
|
32
|
-
this.ariaLabel = 'Change Language';
|
33
34
|
this.languageSelectorClick = new EventEmitter();
|
34
35
|
this.destroy$ = new Subject();
|
35
36
|
}
|
@@ -45,6 +46,12 @@ export class EuiLanguageSelectorComponent {
|
|
45
46
|
get isShowModal() {
|
46
47
|
return this.languages?.length >= 4;
|
47
48
|
}
|
49
|
+
ngOnChanges(changes) {
|
50
|
+
if (changes && changes['ariaLabel']) {
|
51
|
+
this.isAriaLabelChanged = true;
|
52
|
+
this.ariaLabel = changes['ariaLabel'].currentValue;
|
53
|
+
}
|
54
|
+
}
|
48
55
|
ngOnInit() {
|
49
56
|
// update languages array based on AppShell State 'language' changes
|
50
57
|
this.appShellService.state$
|
@@ -58,6 +65,9 @@ export class EuiLanguageSelectorComponent {
|
|
58
65
|
.pipe(takeUntil(this.destroy$), distinctUntilKeyChanged('activeLanguage'), map((state) => state.activeLanguage))
|
59
66
|
.subscribe((activeLanguage) => {
|
60
67
|
this.selectedLanguage = this.getLanguage(activeLanguage);
|
68
|
+
if (!this.isAriaLabelChanged) {
|
69
|
+
this.ariaLabel = `Change Language - Current Language: ${this.selectedLanguage.label}`;
|
70
|
+
}
|
61
71
|
this.cd.detectChanges();
|
62
72
|
});
|
63
73
|
}
|
@@ -117,7 +127,7 @@ export class EuiLanguageSelectorComponent {
|
|
117
127
|
return this.languages.find((lang) => lang.code === languageCode);
|
118
128
|
}
|
119
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiLanguageSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EuiDialogService }, { token: i2.EuiAppShellService }, { token: i3.TranslateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: { hasLanguageSelection: ["hasLanguageSelection", "hasLanguageSelection", booleanAttribute], isToolbarSelector: ["isToolbarSelector", "isToolbarSelector", booleanAttribute], euiPrimary: ["euiPrimary", "euiPrimary", booleanAttribute], ariaLabel: ["aria-label", "ariaLabel"] }, outputs: { languageSelectorClick: "languageSelectorClick" }, host: { properties: { "class": "this.cssClasses" } }, ngImport: i0, template: "@if (!hasLanguageSelection) {\n <button class=\"eui-language-selector__button\"\n euiButton [euiBasicButton]=\"!isToolbarSelector\"\n [euiBranding]=\"isToolbarSelector\"\n (click)=\"onClick()\"\n [attr.aria-label]=\"ariaLabel\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n\n} @else if (hasLanguageSelection && isShowDropDown) {\n <eui-dropdown>\n <button class=\"eui-language-selector__button\"\n [attr.aria-label]=\"ariaLabel\"\n euiButton [euiBasicButton]=\"!isToolbarSelector\"\n [euiBranding]=\"isToolbarSelector\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n\n <eui-dropdown-content>\n <div class=\"eui-language-selector-menu\">\n <button\n *ngFor=\"let language of languages\"\n euiDropdownItem\n attr.data-e2e=\"eui-language-selector-item_{{ language.code }}\"\n class=\"eui-language-selector-menu-language-item\"\n (click)=\"onLanguageChanged(language)\">\n {{ language.label }} ({{ language.code }})\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n\n} @else if (hasLanguageSelection && isShowModal) {\n <button class=\"eui-language-selector__button\"\n euiButton euiBasicButton\n [euiPrimary]=\"isToolbarSelector\"\n (click)=\"onOpen()\"\n [attr.aria-label]=\"ariaLabel\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n}\n\n<ng-template #languageSelectorIcon>\n <eui-icon-svg icon=\"eui-ecl-global\"></eui-icon-svg>\n</ng-template>\n", styles: [".eui-18 .eui-language-selector{align-items:center;cursor:pointer;display:flex;position:relative}.eui-18 .eui-language-selector__button{padding-left:var(--eui-s-s);padding-right:var(--eui-s-s)}.eui-18 .eui-language-selector__code{text-transform:uppercase}.eui-18 .eui-language-selector-menu-language-item{padding:var(--eui-s-m);border-bottom:1px solid var(--eui-c-neutral-bg-light);text-align:center;cursor:pointer}.eui-18 .eui-language-selector-menu-language-item:hover{background:var(--eui-c-neutral-bg-light)}.eui-18 .eui-language-selector--empty{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "component", type: i5.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive", "isFocus"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: { hasLanguageSelection: ["hasLanguageSelection", "hasLanguageSelection", booleanAttribute], isToolbarSelector: ["isToolbarSelector", "isToolbarSelector", booleanAttribute], euiPrimary: ["euiPrimary", "euiPrimary", booleanAttribute], ariaLabel: ["aria-label", "ariaLabel"] }, outputs: { languageSelectorClick: "languageSelectorClick" }, host: { properties: { "class": "this.cssClasses" } }, usesOnChanges: true, ngImport: i0, template: "@if (!hasLanguageSelection) {\n <button class=\"eui-language-selector__button\"\n euiButton [euiBasicButton]=\"!isToolbarSelector\"\n [euiBranding]=\"isToolbarSelector\"\n (click)=\"onClick()\"\n [attr.aria-label]=\"ariaLabel\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n\n} @else if (hasLanguageSelection && isShowDropDown) {\n <eui-dropdown>\n <button class=\"eui-language-selector__button\"\n [attr.aria-label]=\"ariaLabel\"\n euiButton [euiBasicButton]=\"!isToolbarSelector\"\n [euiBranding]=\"isToolbarSelector\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n\n <eui-dropdown-content>\n <div class=\"eui-language-selector-menu\">\n <button\n *ngFor=\"let language of languages\"\n euiDropdownItem\n attr.data-e2e=\"eui-language-selector-item_{{ language.code }}\"\n class=\"eui-language-selector-menu-language-item\"\n (click)=\"onLanguageChanged(language)\">\n {{ language.label }} ({{ language.code }})\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n\n} @else if (hasLanguageSelection && isShowModal) {\n <button class=\"eui-language-selector__button\"\n euiButton euiBasicButton\n [euiPrimary]=\"isToolbarSelector\"\n (click)=\"onOpen()\"\n [attr.aria-label]=\"ariaLabel\">\n <ng-template *ngTemplateOutlet=\"languageSelectorIcon\"></ng-template>\n <span class=\"eui-language-selector__code\">{{ (appShellService.state$ | async).activeLanguage }}</span>\n </button>\n}\n\n<ng-template #languageSelectorIcon>\n <eui-icon-svg icon=\"eui-ecl-global\"></eui-icon-svg>\n</ng-template>\n", styles: [".eui-18 .eui-language-selector{align-items:center;cursor:pointer;display:flex;position:relative}.eui-18 .eui-language-selector__button{padding-left:var(--eui-s-s);padding-right:var(--eui-s-s)}.eui-18 .eui-language-selector__code{text-transform:uppercase}.eui-18 .eui-language-selector-menu-language-item{padding:var(--eui-s-m);border-bottom:1px solid var(--eui-c-neutral-bg-light);text-align:center;cursor:pointer}.eui-18 .eui-language-selector-menu-language-item:hover{background:var(--eui-c-neutral-bg-light)}.eui-18 .eui-language-selector--empty{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "component", type: i5.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive", "isFocus"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
121
131
|
}
|
122
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiLanguageSelectorComponent, decorators: [{
|
123
133
|
type: Component,
|
@@ -140,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
140
150
|
}], languageSelectorClick: [{
|
141
151
|
type: Output
|
142
152
|
}] } });
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLWxhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS1sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBSVgsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEdBR25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sV0FBVyxDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFFL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQVF0RixNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCx1QkFBdUI7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFjRCxZQUNZLEVBQXFCLEVBQ3JCLGdCQUFrQyxFQUNuQyxlQUFtQyxFQUNs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QUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTs4TUFJakMsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBWW9CLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDakIsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUVULHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEV1aUV1TGFuZ3VhZ2VzLCBFdWlMYW5ndWFnZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpRGlhbG9nQ29uZmlnLCBFdWlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kaWFsb2cnO1xuXG5pbXBvcnQgeyBFdWlNb2RhbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1zZWxlY3Rvci9tb2RhbC1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1sYW5ndWFnZS1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9fc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1sYW5ndWFnZS1zZWxlY3RvcicsXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlcz8ubGVuZ3RoIDw9IDEgPyAnZXVpLWxhbmd1YWdlLXNlbGVjdG9yLS1lbXB0eScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNUb29sYmFyU2VsZWN0b3IgPyAnZXVpLWxhbmd1YWdlLXNlbGVjdG9yLS10b29sYmFyLXNlbGVjdG9yJyA6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgbGFuZ3VhZ2VzOiBFdWlMYW5ndWFnZVtdO1xuICAgIHNlbGVjdGVkTGFuZ3VhZ2U6IEV1aUxhbmd1YWdlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0xhbmd1YWdlU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNUb29sYmFyU2VsZWN0b3IgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXVpUHJpbWFyeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbCA9ICdDaGFuZ2UgTGFuZ3VhZ2UnO1xuXG4gICAgQE91dHB1dCgpIGxhbmd1YWdlU2VsZWN0b3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGV1aURpYWxvZ1NlcnZpY2U6IEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhcHBTaGVsbFNlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYXQgbGVhc3Qgb25lIGFuZCBtYXggZm91ciBsYW5ndWFnZXMuXG4gICAgICovXG4gICAgZ2V0IGlzU2hvd0Ryb3BEb3duKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM/Lmxlbmd0aCA+IDEgJiYgdGhpcy5sYW5ndWFnZXM/Lmxlbmd0aCA8IDQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBhdCBsZWFzdCBmaXZlIGxhbmd1YWdlcy5cbiAgICAgKi9cbiAgICBnZXQgaXNTaG93TW9kYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcz8ubGVuZ3RoID49IDQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHVwZGF0ZSBsYW5ndWFnZXMgYXJyYXkgYmFzZWQgb24gQXBwU2hlbGwgU3RhdGUgJ2xhbmd1YWdlJyBjaGFuZ2VzXG4gICAgICAgIHRoaXMuYXBwU2hlbGxTZXJ2aWNlLnN0YXRlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkKCdsYW5ndWFnZXMnKSxcbiAgICAgICAgICAgICAgICBtYXAoKHN0YXRlKSA9PiBzdGF0ZS5sYW5ndWFnZXMpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGFuZ3VhZ2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSBsYW5ndWFnZXMgPyBFdWlFdUxhbmd1YWdlcy5nZXRPcmRlcmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcykgOiBFdWlFdUxhbmd1YWdlcy5nZXRMYW5ndWFnZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBhY3RpdmVMYW5ndWFnZSBhcnJheSBiYXNlZCBvbiBBcHBTaGVsbCBTdGF0ZSAnbGFuZ3VhZ2UnIGNoYW5nZXNcbiAgICAgICAgdGhpcy5hcHBTaGVsbFNlcnZpY2Uuc3RhdGUkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoJ2FjdGl2ZUxhbmd1YWdlJyksXG4gICAgICAgICAgICAgICAgbWFwKChzdGF0ZSkgPT4gc3RhdGUuYWN0aXZlTGFuZ3VhZ2UpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoYWN0aXZlTGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmdldExhbmd1YWdlKGFjdGl2ZUxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhc1Rvb2xiYXJQYXJlbnQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhc1Rvb2xiYXJQYXJlbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZXVpLXRvb2xiYXInKTtcblxuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc1Rvb2xiYXJQYXJlbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNUb29sYmFyU2VsZWN0b3IgPSB0cnVlO1xuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNoYW5nZWQobGFuZ3VhZ2U6IEV1aUxhbmd1YWdlKTogdm9pZCB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgQXBwU2hlbGxTZXJ2aWNlIHN0YXRlXG4gICAgICAgIHRoaXMuYXBwU2hlbGxTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuYXBwU2hlbGxTZXJ2aWNlLnN0YXRlLFxuICAgICAgICAgICAgYWN0aXZlTGFuZ3VhZ2U6IGxhbmd1YWdlLmNvZGUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBtb2RhbCB0aGF0IHJlbmRlcnMgdGhlIFV4TGFuZ3VhZ2UgYXJyYXkgd2l0aCBtb2RhbCBhY3Rpb25zIGJpbmRpbmdzIHRvIHRoaXMgQ29tcG9uZW50XG4gICAgICovXG4gICAgb25PcGVuKHRpdGxlTGFiZWw6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdldWkubGFuZ3VhZ2VTZWxlY3Rvci5tb2RhbFRpdGxlJykpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICAgICAgICBuZXcgRXVpRGlhbG9nQ29uZmlnKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGVMYWJlbCxcbiAgICAgICAgICAgICAgICBoYXNGb290ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhhc0Nsb3NlZE9uQ2xpY2tPdXRzaWRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGJvZHlDb21wb25lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBFdWlNb2RhbFNlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlczogdGhpcy5sYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlOiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNoYW5nZWQ6IChsYW5ndWFnZTogRXVpTGFuZ3VhZ2UpOnZvaWQgPT4gdGhpcy5vbkxhbmd1YWdlQ2hhbmdlZChsYW5ndWFnZSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZWxlY3RvckNsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBVeExhbmd1YWdlIE9iamVjdCBmcm9tIGEgZ2l2ZW4gbGFuZ3VhZ2UgY29kZVxuICAgICAqXG4gICAgICogQHBhcmFtIGxhbmd1YWdlQ29kZSB0d28gY2hhciBsYW5ndWFnZSBjb2RlXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRMYW5ndWFnZShsYW5ndWFnZUNvZGU6IHN0cmluZyk6IEV1aUxhbmd1YWdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcuY29kZSA9PT0gbGFuZ3VhZ2VDb2RlKTtcbiAgICB9XG59XG4iLCJAaWYgKCFoYXNMYW5ndWFnZVNlbGVjdGlvbikge1xuICAgIDxidXR0b24gY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3JfX2J1dHRvblwiXG4gICAgICAgIGV1aUJ1dHRvbiBbZXVpQmFzaWNCdXR0b25dPVwiIWlzVG9vbGJhclNlbGVjdG9yXCJcbiAgICAgICAgW2V1aUJyYW5kaW5nXT1cImlzVG9vbGJhclNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhbmd1YWdlU2VsZWN0b3JJY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3JfX2NvZGVcIj57eyAoYXBwU2hlbGxTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5hY3RpdmVMYW5ndWFnZSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxufSBAZWxzZSBpZiAoaGFzTGFuZ3VhZ2VTZWxlY3Rpb24gJiYgaXNTaG93RHJvcERvd24pIHtcbiAgICA8ZXVpLWRyb3Bkb3duPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZXVpLWxhbmd1YWdlLXNlbGVjdG9yX19idXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgZXVpQnV0dG9uIFtldWlCYXNpY0J1dHRvbl09XCIhaXNUb29sYmFyU2VsZWN0b3JcIlxuICAgICAgICAgICAgW2V1aUJyYW5kaW5nXT1cImlzVG9vbGJhclNlbGVjdG9yXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYW5ndWFnZVNlbGVjdG9ySWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvcl9fY29kZVwiPnt7IChhcHBTaGVsbFNlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmFjdGl2ZUxhbmd1YWdlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLWxhbmd1YWdlLXNlbGVjdG9yLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBsYW5ndWFnZXNcIlxuICAgICAgICAgICAgICAgICAgICBldWlEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgYXR0ci5kYXRhLWUyZT1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvci1pdGVtX3t7IGxhbmd1YWdlLmNvZGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvci1tZW51LWxhbmd1YWdlLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25MYW5ndWFnZUNoYW5nZWQobGFuZ3VhZ2UpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxhbmd1YWdlLmxhYmVsIH19ICh7eyBsYW5ndWFnZS5jb2RlIH19KVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgPC9ldWktZHJvcGRvd24+XG5cbn0gQGVsc2UgaWYgKGhhc0xhbmd1YWdlU2VsZWN0aW9uICYmIGlzU2hvd01vZGFsKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvcl9fYnV0dG9uXCJcbiAgICAgICAgZXVpQnV0dG9uIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgIFtldWlQcmltYXJ5XT1cImlzVG9vbGJhclNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3BlbigpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFuZ3VhZ2VTZWxlY3Rvckljb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvcl9fY29kZVwiPnt7IChhcHBTaGVsbFNlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmFjdGl2ZUxhbmd1YWdlIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxufVxuXG48bmctdGVtcGxhdGUgI2xhbmd1YWdlU2VsZWN0b3JJY29uPlxuICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtZ2xvYmFsXCI+PC9ldWktaWNvbi1zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLWxhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS1sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBSVgsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEdBS25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sV0FBVyxDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFFL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQVF0RixNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCx1QkFBdUI7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFFO2FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFlRCxZQUNZLEVBQXFCLEVBQ3JCLGdCQUFrQyxFQUNuQyxlQUFtQyxFQUNs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LENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sV0FBVyxDQUFDLFlBQW9CO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDckUsQ0FBQzsrR0FoSlEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsc0hBZ0JqQixnQkFBZ0IsaUVBQ2hCLGdCQUFnQiw0Q0FDaEIsZ0JBQWdCLDZNQ2xEeEMsbW5FQWdEQTs7NEZEaEJhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUk7OE1BSWpDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQWVvQixvQkFBb0I7c0JBQTNELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2pCLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBFdWlFdUxhbmd1YWdlcywgRXVpTGFuZ3VhZ2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aURpYWxvZ0NvbmZpZywgRXVpRGlhbG9nU2VydmljZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktZGlhbG9nJztcblxuaW1wb3J0IHsgRXVpTW9kYWxTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtc2VsZWN0b3IvbW9kYWwtc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktbGFuZ3VhZ2Utc2VsZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vX3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aUxhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1sYW5ndWFnZS1zZWxlY3RvcicsXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlcz8ubGVuZ3RoIDw9IDEgPyAnZXVpLWxhbmd1YWdlLXNlbGVjdG9yLS1lbXB0eScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNUb29sYmFyU2VsZWN0b3IgPyAnZXVpLWxhbmd1YWdlLXNlbGVjdG9yLS10b29sYmFyLXNlbGVjdG9yJyA6ICcnLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIGxhbmd1YWdlczogRXVpTGFuZ3VhZ2VbXTtcbiAgICBzZWxlY3RlZExhbmd1YWdlOiBFdWlMYW5ndWFnZTtcbiAgICBpc0FyaWFMYWJlbENoYW5nZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzTGFuZ3VhZ2VTZWxlY3Rpb24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Rvb2xiYXJTZWxlY3RvciA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBldWlQcmltYXJ5ID0gZmFsc2U7XG4gICAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgbGFuZ3VhZ2VTZWxlY3RvckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZXVpRGlhbG9nU2VydmljZTogRXVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHVibGljIGFwcFNoZWxsU2VydmljZTogRXVpQXBwU2hlbGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBhdCBsZWFzdCBvbmUgYW5kIG1heCBmb3VyIGxhbmd1YWdlcy5cbiAgICAgKi9cbiAgICBnZXQgaXNTaG93RHJvcERvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcz8ubGVuZ3RoID4gMSAmJiB0aGlzLmxhbmd1YWdlcz8ubGVuZ3RoIDwgNDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRydWUgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IGZpdmUgbGFuZ3VhZ2VzLlxuICAgICAqL1xuICAgIGdldCBpc1Nob3dNb2RhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzPy5sZW5ndGggPj0gNDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ2FyaWFMYWJlbCddKSB7XG4gICAgICAgICAgICB0aGlzLmlzQXJpYUxhYmVsQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbCA9IGNoYW5nZXNbJ2FyaWFMYWJlbCddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyB1cGRhdGUgbGFuZ3VhZ2VzIGFycmF5IGJhc2VkIG9uIEFwcFNoZWxsIFN0YXRlICdsYW5ndWFnZScgY2hhbmdlc1xuICAgICAgICB0aGlzLmFwcFNoZWxsU2VydmljZS5zdGF0ZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgnbGFuZ3VhZ2VzJyksXG4gICAgICAgICAgICAgICAgbWFwKChzdGF0ZSkgPT4gc3RhdGUubGFuZ3VhZ2VzKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxhbmd1YWdlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzID8gRXVpRXVMYW5ndWFnZXMuZ2V0T3JkZXJlZExhbmd1YWdlcyhsYW5ndWFnZXMpIDogRXVpRXVMYW5ndWFnZXMuZ2V0TGFuZ3VhZ2VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyB1cGRhdGUgYWN0aXZlTGFuZ3VhZ2UgYXJyYXkgYmFzZWQgb24gQXBwU2hlbGwgU3RhdGUgJ2xhbmd1YWdlJyBjaGFuZ2VzXG4gICAgICAgIHRoaXMuYXBwU2hlbGxTZXJ2aWNlLnN0YXRlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkKCdhY3RpdmVMYW5ndWFnZScpLFxuICAgICAgICAgICAgICAgIG1hcCgoc3RhdGUpID0+IHN0YXRlLmFjdGl2ZUxhbmd1YWdlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZUxhbmd1YWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5nZXRMYW5ndWFnZShhY3RpdmVMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQXJpYUxhYmVsQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFyaWFMYWJlbCA9IGBDaGFuZ2UgTGFuZ3VhZ2UgLSBDdXJyZW50IExhbmd1YWdlOiAke3RoaXMuc2VsZWN0ZWRMYW5ndWFnZS5sYWJlbH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhc1Rvb2xiYXJQYXJlbnQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhc1Rvb2xiYXJQYXJlbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZXVpLXRvb2xiYXInKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc1Rvb2xiYXJQYXJlbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNUb29sYmFyU2VsZWN0b3IgPSB0cnVlO1xuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNoYW5nZWQobGFuZ3VhZ2U6IEV1aUxhbmd1YWdlKTogdm9pZCB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgQXBwU2hlbGxTZXJ2aWNlIHN0YXRlXG4gICAgICAgIHRoaXMuYXBwU2hlbGxTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuYXBwU2hlbGxTZXJ2aWNlLnN0YXRlLFxuICAgICAgICAgICAgYWN0aXZlTGFuZ3VhZ2U6IGxhbmd1YWdlLmNvZGUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBtb2RhbCB0aGF0IHJlbmRlcnMgdGhlIFV4TGFuZ3VhZ2UgYXJyYXkgd2l0aCBtb2RhbCBhY3Rpb25zIGJpbmRpbmdzIHRvIHRoaXMgQ29tcG9uZW50XG4gICAgICovXG4gICAgb25PcGVuKHRpdGxlTGFiZWw6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdldWkubGFuZ3VhZ2VTZWxlY3Rvci5tb2RhbFRpdGxlJykpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICAgICAgICBuZXcgRXVpRGlhbG9nQ29uZmlnKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGVMYWJlbCxcbiAgICAgICAgICAgICAgICBoYXNGb290ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhhc0Nsb3NlZE9uQ2xpY2tPdXRzaWRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGJvZHlDb21wb25lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBFdWlNb2RhbFNlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlczogdGhpcy5sYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlOiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNoYW5nZWQ6IChsYW5ndWFnZTogRXVpTGFuZ3VhZ2UpOiB2b2lkID0+IHRoaXMub25MYW5ndWFnZUNoYW5nZWQobGFuZ3VhZ2UpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhbmd1YWdlU2VsZWN0b3JDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0aGUgVXhMYW5ndWFnZSBPYmplY3QgZnJvbSBhIGdpdmVuIGxhbmd1YWdlIGNvZGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsYW5ndWFnZUNvZGUgdHdvIGNoYXIgbGFuZ3VhZ2UgY29kZVxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TGFuZ3VhZ2UobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBFdWlMYW5ndWFnZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcy5maW5kKChsYW5nKSA9PiBsYW5nLmNvZGUgPT09IGxhbmd1YWdlQ29kZSk7XG4gICAgfVxufVxuIiwiQGlmICghaGFzTGFuZ3VhZ2VTZWxlY3Rpb24pIHtcbiAgICA8YnV0dG9uIGNsYXNzPVwiZXVpLWxhbmd1YWdlLXNlbGVjdG9yX19idXR0b25cIlxuICAgICAgICBldWlCdXR0b24gW2V1aUJhc2ljQnV0dG9uXT1cIiFpc1Rvb2xiYXJTZWxlY3RvclwiXG4gICAgICAgIFtldWlCcmFuZGluZ109XCJpc1Rvb2xiYXJTZWxlY3RvclwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYW5ndWFnZVNlbGVjdG9ySWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLWxhbmd1YWdlLXNlbGVjdG9yX19jb2RlXCI+e3sgKGFwcFNoZWxsU2VydmljZS5zdGF0ZSQgfCBhc3luYykuYWN0aXZlTGFuZ3VhZ2UgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbn0gQGVsc2UgaWYgKGhhc0xhbmd1YWdlU2VsZWN0aW9uICYmIGlzU2hvd0Ryb3BEb3duKSB7XG4gICAgPGV1aS1kcm9wZG93bj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvcl9fYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvbiBbZXVpQmFzaWNCdXR0b25dPVwiIWlzVG9vbGJhclNlbGVjdG9yXCJcbiAgICAgICAgICAgIFtldWlCcmFuZGluZ109XCJpc1Rvb2xiYXJTZWxlY3RvclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFuZ3VhZ2VTZWxlY3Rvckljb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3JfX2NvZGVcIj57eyAoYXBwU2hlbGxTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5hY3RpdmVMYW5ndWFnZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGV1aS1kcm9wZG93bi1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1sYW5ndWFnZS1zZWxlY3Rvci1tZW51XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgIGF0dHIuZGF0YS1lMmU9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3ItaXRlbV97eyBsYW5ndWFnZS5jb2RlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3ItbWVudS1sYW5ndWFnZS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGFuZ3VhZ2VDaGFuZ2VkKGxhbmd1YWdlKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsYW5ndWFnZS5sYWJlbCB9fSAoe3sgbGFuZ3VhZ2UuY29kZSB9fSlcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2V1aS1kcm9wZG93bi1jb250ZW50PlxuICAgIDwvZXVpLWRyb3Bkb3duPlxuXG59IEBlbHNlIGlmIChoYXNMYW5ndWFnZVNlbGVjdGlvbiAmJiBpc1Nob3dNb2RhbCkge1xuICAgIDxidXR0b24gY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3JfX2J1dHRvblwiXG4gICAgICAgIGV1aUJ1dHRvbiBldWlCYXNpY0J1dHRvblxuICAgICAgICBbZXVpUHJpbWFyeV09XCJpc1Rvb2xiYXJTZWxlY3RvclwiXG4gICAgICAgIChjbGljayk9XCJvbk9wZW4oKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhbmd1YWdlU2VsZWN0b3JJY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktbGFuZ3VhZ2Utc2VsZWN0b3JfX2NvZGVcIj57eyAoYXBwU2hlbGxTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5hY3RpdmVMYW5ndWFnZSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbn1cblxuPG5nLXRlbXBsYXRlICNsYW5ndWFnZVNlbGVjdG9ySWNvbj5cbiAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLWdsb2JhbFwiPjwvZXVpLWljb24tc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -32,8 +32,6 @@ export class EuiPageColumnComponent {
|
|
32
32
|
this.asService = asService;
|
33
33
|
this.baseStatesDirective = baseStatesDirective;
|
34
34
|
this.autocloseContainerWidth = null;
|
35
|
-
this.expandAriaLabel = 'Expand';
|
36
|
-
this.collapseAriaLabel = 'Collapse';
|
37
35
|
this.isCollapsible = false;
|
38
36
|
this.isCollapsed = false;
|
39
37
|
this.isRightCollapsible = false;
|
@@ -68,13 +66,14 @@ export class EuiPageColumnComponent {
|
|
68
66
|
this.hasPreventMobileRendering = this.pageColumnsParent.hasPreventMobileRendering;
|
69
67
|
}
|
70
68
|
if (this.isAutocloseOnMobile) {
|
71
|
-
this.asService.breakpoints$
|
72
|
-
.pipe(takeUntil(this.destroy$)).subscribe((bkps) => {
|
69
|
+
this.asService.breakpoints$.pipe(takeUntil(this.destroy$)).subscribe((bkps) => {
|
73
70
|
if (bkps.isMobile) {
|
74
71
|
this.isCollapsed = true;
|
75
72
|
}
|
76
73
|
});
|
77
74
|
}
|
75
|
+
this.expandAriaLabel = `Expand ${this.label}`;
|
76
|
+
this.collapseAriaLabel = `Collapse ${this.label}`;
|
78
77
|
}
|
79
78
|
ngOnDestroy() {
|
80
79
|
this.destroy$.next(true);
|
@@ -232,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
232
231
|
type: Directive,
|
233
232
|
args: [{ selector: 'eui-page-column-footer', standalone: true }]
|
234
233
|
}] });
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2UtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2V1aS1wYWdlL2NvbXBvbmVudHMvZXVpLXBhZ2UtY29sdW1uL2V1aS1wYWdlLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9ldWktcGFnZS9jb21wb25lbnRzL2V1aS1wYWdlLWNvbHVtbi9ldWktcGFnZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBRVYsWUFBWSxFQUNaLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixFQUVoQix1QkFBdUIsR0FDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQWlDdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixJQUNJLFVBQVU7UUFDVixPQUFPO1lBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUN6RCxJQUFJLENB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QVEsRUFBRSw2QkFBNkIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQUd4RSxNQUFNLE9BQU8sdUNBQXVDOytHQUF2Qyx1Q0FBdUM7bUdBQXZDLHVDQUF1Qzs7NEZBQXZDLHVDQUF1QztrQkFEbkQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQ0FBcUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQUdoRixNQUFNLE9BQU8sd0NBQXdDOytHQUF4Qyx3Q0FBd0M7bUdBQXhDLHdDQUF3Qzs7NEZBQXhDLHdDQUF3QztrQkFEcEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxzQ0FBc0MsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQUdqRixNQUFNLE9BQU8sNENBQTRDOytHQUE1Qyw0Q0FBNEM7bUdBQTVDLDRDQUE0Qzs7NEZBQTVDLDRDQUE0QztrQkFEeEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQ0FBMEMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQUdyRixNQUFNLE9BQU8saUNBQWlDOytHQUFqQyxpQ0FBaUM7bUdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFEN0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQUdqRSxNQUFNLE9BQU8sbUNBQW1DOytHQUFuQyxtQ0FBbUM7bUdBQW5DLG1DQUFtQzs7NEZBQW5DLG1DQUFtQztrQkFEL0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgUXVlcnlMaXN0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aVBhZ2VDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi4vZXVpLXBhZ2UtY29sdW1ucy9ldWktcGFnZS1jb2x1bW5zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlU3RhdGVzRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBFdWlJY29uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uJztcbmltcG9ydCB7IEV1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktYnV0dG9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBhZ2UtY29sdW1uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXBhZ2UtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBFdWlJY29uTW9kdWxlLFxuICAgICAgICBFdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIC8vIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlTaXplTScsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZTJYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemUzWEwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplNFhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVZhcmlhbnQnLFxuICAgICAgICAgICAgICAgICdldWlIaWdobGlnaHRlZCcsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2VDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktcGFnZS1jb2x1bW4nKSxcbiAgICAgICAgICAgIHRoaXMuc2l6ZSAmJiAhdGhpcy5pc0NvbGxhcHNlZCA/IGBldWktcGFnZS1jb2x1bW4tLXNpemUtJHt0aGlzLnNpemV9YCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA/ICdldWktcGFnZS1jb2x1bW4tLWNvbGxhcHNlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWRXaXRoSWNvbnMgPyAnZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItLXdpdGgtaWNvbnMnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzSGlnaGxpZ2h0ZWQgPyAnZXVpLXBhZ2UtY29sdW1uLS1oaWdobGlnaHRlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPyAnZXVpLXBhZ2UtY29sdW1uLS1hY3RpdmUnIDogJycsXG4gICAgICAgICAgICB0aGlzLmhhc1NpZGViYXJNZW51ID8gJ2V1aS1wYWdlLWNvbHVtbi0taGFzLXNpZGViYXItbWVudScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNIZWFkZXJCb2R5U2hyaW5rZWQgPyAnZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItLXNocmlua2VkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5oYXNQcmV2ZW50TW9iaWxlUmVuZGVyaW5nID8gJ2V1aS1wYWdlLWNvbHVtbi0tcHJldmVudC1tb2JpbGUtcmVuZGVyaW5nJzogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgY29sdW1uXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGJhc2VTdGF0ZXNEaXJlY3RpdmUgc2l6ZSBjb2VyY2VzIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplO1xuICAgIEBJbnB1dCgpIGxhYmVsO1xuICAgIEBJbnB1dCgpIHN1YkxhYmVsO1xuICAgIEBJbnB1dCgpIGF1dG9jbG9zZUNvbnRhaW5lcldpZHRoOiBudW1iZXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGV4cGFuZEFyaWFMYWJlbCA9ICdFeHBhbmQnO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlQXJpYUxhYmVsID0gJ0NvbGxhcHNlJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0NvbGxhcHNpYmxlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzUmlnaHRDb2xsYXBzaWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0hpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ29sbGFwc2VkV2l0aEljb25zID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1NpZGViYXJNZW51ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0hlYWRlckJvZHlTaHJpbmthYmxlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQXV0b2Nsb3NlT25Db250YWluZXJSZXNpemUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBdXRvY2xvc2VPbk1vYmlsZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGNvbGxhcHNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBoZWFkZXJDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgaXNIZWFkZXJCb2R5U2hyaW5rZWQgPSBmYWxzZTtcblxuICAgIGhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uSGVhZGVyQm9keUNvbnRlbnREaXJlY3RpdmUpKVxuICAgIGN1c3RvbUhlYWRlckJvZHlDb250ZW50OiBRdWVyeUxpc3Q8RXVpUGFnZUNvbHVtbkhlYWRlckJvZHlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uSGVhZGVyTGVmdENvbnRlbnREaXJlY3RpdmUpKVxuICAgIGN1c3RvbUhlYWRlckxlZnRDb250ZW50OiBRdWVyeUxpc3Q8RXVpUGFnZUNvbHVtbkhlYWRlckxlZnRDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uSGVhZGVyUmlnaHRDb250ZW50RGlyZWN0aXZlKSlcbiAgICBjdXN0b21IZWFkZXJSaWdodENvbnRlbnQ6IFF1ZXJ5TGlzdDxFdWlQYWdlQ29sdW1uSGVhZGVyUmlnaHRDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uSGVhZGVyQ29sbGFwc2VkQ29udGVudERpcmVjdGl2ZSkpXG4gICAgY3VzdG9tSGVhZGVyQ29sbGFwc2VkQ29udGVudDogUXVlcnlMaXN0PEV1aVBhZ2VDb2x1bW5IZWFkZXJDb2xsYXBzZWRDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uRm9vdGVyQ29udGVudERpcmVjdGl2ZSkpXG4gICAgY3VzdG9tRm9vdGVyQ29udGVudDogUXVlcnlMaXN0PEV1aVBhZ2VDb2x1bW5Gb290ZXJDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIGN1cnJlbnRPZmZzZXQgPSAwO1xuXG4gICAgcHJldmlvdXNPZmZzZXQgPSAwO1xuICAgIHRyZXNoSG9sZCA9IDUwO1xuXG4gICAgcHJpdmF0ZSBwYWdlQ29sdW1uc1BhcmVudDogRXVpUGFnZUNvbHVtbnNDb21wb25lbnQ7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gRXVpUGFnZUNvbHVtbnNDb21wb25lbnQpKSBwYWdlQ29sdW1uc1BhcmVudEluamVjdGVkOiBFdWlQYWdlQ29sdW1uc0NvbXBvbmVudCxcbiAgICAgICAgcHVibGljIGFzU2VydmljZTogRXVpQXBwU2hlbGxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYmFzZVN0YXRlc0RpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5wYWdlQ29sdW1uc1BhcmVudCA9IHBhZ2VDb2x1bW5zUGFyZW50SW5qZWN0ZWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTaXplUyA9IGZhbHNlOyAvLyBCeXBhc3Mgc2l6ZSBkZWZhdWx0XG4gICAgICAgIGlmICh0aGlzLnBhZ2VDb2x1bW5zUGFyZW50ICYmIHRoaXMuaXNBdXRvY2xvc2VPbkNvbnRhaW5lclJlc2l6ZSAmJiB0aGlzLmF1dG9jbG9zZUNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VDb2x1bW5zUGFyZW50LndpZHRoLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHBhcmVudFdpZHRoOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkdGggPD0gdGhpcy5hdXRvY2xvc2VDb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFnZUNvbHVtbnNQYXJlbnQgJiYgdGhpcy5wYWdlQ29sdW1uc1BhcmVudC5oYXNQcmV2ZW50TW9iaWxlUmVuZGVyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcgPSB0aGlzLnBhZ2VDb2x1bW5zUGFyZW50Lmhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0F1dG9jbG9zZU9uTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChia3BzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGJrcHMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1oZWFkZXItYm9keScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdlQ29sdW1uSGVhZGVyQm9keUNvbnRlbnREaXJlY3RpdmUgeyB9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktcGFnZS1jb2x1bW4taGVhZGVyLWxlZnQtY29udGVudCcsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdlQ29sdW1uSGVhZGVyTGVmdENvbnRlbnREaXJlY3RpdmUgeyB9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktcGFnZS1jb2x1bW4taGVhZGVyLXJpZ2h0LWNvbnRlbnQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRXVpUGFnZUNvbHVtbkhlYWRlclJpZ2h0Q29udGVudERpcmVjdGl2ZSB7IH1cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1oZWFkZXItY29sbGFwc2VkLWNvbnRlbnQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRXVpUGFnZUNvbHVtbkhlYWRlckNvbGxhcHNlZENvbnRlbnREaXJlY3RpdmUgeyB9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktcGFnZS1jb2x1bW4tYm9keScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdlQ29sdW1uQm9keUNvbnRlbnREaXJlY3RpdmUgeyB9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktcGFnZS1jb2x1bW4tZm9vdGVyJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2VDb2x1bW5Gb290ZXJDb250ZW50RGlyZWN0aXZlIHsgfVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiQGlmIChsYWJlbCB8fCBzdWJMYWJlbCB8fCBjdXN0b21IZWFkZXJMZWZ0Q29udGVudCB8fCBjdXN0b21IZWFkZXJSaWdodENvbnRlbnQgfHwgaXNDb2xsYXBzaWJsZSkge1xuXG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdlLWNvbHVtbl9faGVhZGVyXCIgW2NsYXNzLmV1aS1wYWdlLWNvbHVtbl9faGVhZGVyLS13aXRoLWljb25zXT1cImlzQ29sbGFwc2VkV2l0aEljb25zXCI+XG4gICAgICAgIEBpZiAoIWN1c3RvbUhlYWRlckxlZnRDb250ZW50KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgQGlmIChsYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGN1c3RvbUhlYWRlckNvbGxhcHNlZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktcGFnZS1jb2x1bW4taGVhZGVyLWNvbGxhcHNlZC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghaXNDb2xsYXBzZWRXaXRoSWNvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzdWJMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LXN1Yi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWhlYWRlci1sZWZ0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2hlYWRlci1yaWdodC1jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGN1c3RvbUhlYWRlclJpZ2h0Q29udGVudCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItcmlnaHQtY29udGVudC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1wYWdlLWNvbHVtbi1oZWFkZXItcmlnaHQtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoaXNDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgIDxidXR0b24gZXVpQnV0dG9uIGV1aUJhc2ljQnV0dG9uIGV1aVNlY29uZGFyeSBldWlSb3VuZGVkIGV1aUljb25CdXR0b24gZXVpU2l6ZVMgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpc0NvbGxhcHNlZCA/IGV4cGFuZEFyaWFMYWJlbCA6IGNvbGxhcHNlQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2hlYWRlci10b2dnbGVcIj5cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmJyZWFrcG9pbnRzLmlzTW9iaWxlICYmICFoYXNQcmV2ZW50TW9iaWxlUmVuZGVyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1kb3duOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzUmlnaHRDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLWJhY2s6c2hhcnBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1mb3J3YXJkOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykuYnJlYWtwb2ludHMuaXNNb2JpbGUgJiYgIWhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLXVwOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzUmlnaHRDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLWZvcndhcmQ6c2hhcnBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1iYWNrOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuXG48IS0tIE9uIG5ldyBsaW5lIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBleHBhbmQvY29sbGFwc2UgJiBjdXN0b20gcmlnaHQgY29udGVudCAtLT5cbkBpZiAoY3VzdG9tSGVhZGVyQm9keUNvbnRlbnQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWhlYWRlci1ib2R5XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuXG48ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19ib2R5XCJcbiAgICBbY2xhc3MuZXVpLXBhZ2UtY29sdW1uLS1jb2xsYXBzZWQtd2l0aC1pY29uc109XCJpc0NvbGxhcHNlZFdpdGhJY29uc1wiIGNka1Njcm9sbGFibGU+XG4gICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbkBpZiAoY3VzdG9tRm9vdGVyQ29udGVudCkge1xuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2Zvb3RlclwiIFtjbGFzcy5ldWktcGFnZS1jb2x1bW5fX2Zvb3Rlci0taGlnaGxpZ2h0ZWRdPVwiaXNIaWdobGlnaHRlZFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktcGFnZS1jb2x1bW4tZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2JvZHk+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWJvZHlcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2UtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2V1aS1wYWdlL2NvbXBvbmVudHMvZXVpLXBhZ2UtY29sdW1uL2V1aS1wYWdlLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9ldWktcGFnZS9jb21wb25lbnRzL2V1aS1wYWdlLWNvbHVtbi9ldWktcGFnZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBRVYsWUFBWSxFQUNaLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixFQUVoQix1QkFBdUIsR0FDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQWlDdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixJQUNJLFVBQVU7UUFDVixPQUFPO1lBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUN6RCxJQUFJLENB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R0FBdkMsdUNBQXVDOzs0RkFBdkMsdUNBQXVDO2tCQURuRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDZCQUE2QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBR3hFLE1BQU0sT0FBTyx1Q0FBdUM7K0dBQXZDLHVDQUF1QzttR0FBdkMsdUNBQXVDOzs0RkFBdkMsdUNBQXVDO2tCQURuRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFDQUFxQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBR2hGLE1BQU0sT0FBTyx3Q0FBd0M7K0dBQXhDLHdDQUF3QzttR0FBeEMsd0NBQXdDOzs0RkFBeEMsd0NBQXdDO2tCQURwRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNDQUFzQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBR2pGLE1BQU0sT0FBTyw0Q0FBNEM7K0dBQTVDLDRDQUE0QzttR0FBNUMsNENBQTRDOzs0RkFBNUMsNENBQTRDO2tCQUR4RCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBDQUEwQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBR3JGLE1BQU0sT0FBTyxpQ0FBaUM7K0dBQWpDLGlDQUFpQzttR0FBakMsaUNBQWlDOzs0RkFBakMsaUNBQWlDO2tCQUQ3QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBR2pFLE1BQU0sT0FBTyxtQ0FBbUM7K0dBQW5DLG1DQUFtQzttR0FBbkMsbUNBQW1DOzs0RkFBbkMsbUNBQW1DO2tCQUQvQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBRdWVyeUxpc3QsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpUGFnZUNvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuLi9ldWktcGFnZS1jb2x1bW5zL2V1aS1wYWdlLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IEV1aUljb25Nb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWljb24nO1xuaW1wb3J0IHsgRXVpQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1idXR0b24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktcGFnZS1jb2x1bW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktcGFnZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEV1aUljb25Nb2R1bGUsXG4gICAgICAgIEV1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgLy8gTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogW1xuICAgICAgICAgICAgICAgICdldWlTaXplUycsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVNJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZUwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplWEwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplMlhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZTNYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemU0WEwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplVmFyaWFudCcsXG4gICAgICAgICAgICAgICAgJ2V1aUhpZ2hsaWdodGVkJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpUGFnZUNvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmdldENzc0NsYXNzZXMoJ2V1aS1wYWdlLWNvbHVtbicpLFxuICAgICAgICAgICAgdGhpcy5zaXplICYmICF0aGlzLmlzQ29sbGFwc2VkID8gYGV1aS1wYWdlLWNvbHVtbi0tc2l6ZS0ke3RoaXMuc2l6ZX1gIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID8gJ2V1aS1wYWdlLWNvbHVtbi0tY29sbGFwc2VkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZFdpdGhJY29ucyA/ICdldWktcGFnZS1jb2x1bW5fX2hlYWRlci0td2l0aC1pY29ucycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNIaWdobGlnaHRlZCA/ICdldWktcGFnZS1jb2x1bW4tLWhpZ2hsaWdodGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA/ICdldWktcGFnZS1jb2x1bW4tLWFjdGl2ZScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaGFzU2lkZWJhck1lbnUgPyAnZXVpLXBhZ2UtY29sdW1uLS1oYXMtc2lkZWJhci1tZW51JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0hlYWRlckJvZHlTaHJpbmtlZCA/ICdldWktcGFnZS1jb2x1bW5fX2hlYWRlci0tc2hyaW5rZWQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcgPyAnZXVpLXBhZ2UtY29sdW1uLS1wcmV2ZW50LW1vYmlsZS1yZW5kZXJpbmcnIDogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgY29sdW1uXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGJhc2VTdGF0ZXNEaXJlY3RpdmUgc2l6ZSBjb2VyY2VzIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBhdXRvY2xvc2VDb250YWluZXJXaWR0aDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSBleHBhbmRBcmlhTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb2xsYXBzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ29sbGFwc2libGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNSaWdodENvbGxhcHNpYmxlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNDb2xsYXBzZWRXaXRoSWNvbnMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzU2lkZWJhck1lbnUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzSGVhZGVyQm9keVNocmlua2FibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBdXRvY2xvc2VPbkNvbnRhaW5lclJlc2l6ZSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0F1dG9jbG9zZU9uTW9iaWxlID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgY29sbGFwc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGhlYWRlckNvbGxhcHNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICBpc0hlYWRlckJvZHlTaHJpbmtlZCA9IGZhbHNlO1xuXG4gICAgaGFzUHJldmVudE1vYmlsZVJlbmRlcmluZyA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVBhZ2VDb2x1bW5IZWFkZXJCb2R5Q29udGVudERpcmVjdGl2ZSkpXG4gICAgY3VzdG9tSGVhZGVyQm9keUNvbnRlbnQ6IFF1ZXJ5TGlzdDxFdWlQYWdlQ29sdW1uSGVhZGVyQm9keUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVBhZ2VDb2x1bW5IZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSkpXG4gICAgY3VzdG9tSGVhZGVyTGVmdENvbnRlbnQ6IFF1ZXJ5TGlzdDxFdWlQYWdlQ29sdW1uSGVhZGVyTGVmdENvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVBhZ2VDb2x1bW5IZWFkZXJSaWdodENvbnRlbnREaXJlY3RpdmUpKVxuICAgIGN1c3RvbUhlYWRlclJpZ2h0Q29udGVudDogUXVlcnlMaXN0PEV1aVBhZ2VDb2x1bW5IZWFkZXJSaWdodENvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVBhZ2VDb2x1bW5IZWFkZXJDb2xsYXBzZWRDb250ZW50RGlyZWN0aXZlKSlcbiAgICBjdXN0b21IZWFkZXJDb2xsYXBzZWRDb250ZW50OiBRdWVyeUxpc3Q8RXVpUGFnZUNvbHVtbkhlYWRlckNvbGxhcHNlZENvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVBhZ2VDb2x1bW5Gb290ZXJDb250ZW50RGlyZWN0aXZlKSlcbiAgICBjdXN0b21Gb290ZXJDb250ZW50OiBRdWVyeUxpc3Q8RXVpUGFnZUNvbHVtbkZvb3RlckNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBwcmV2aW91c09mZnNldCA9IDA7XG4gICAgdHJlc2hIb2xkID0gNTA7XG5cbiAgICBwcml2YXRlIHBhZ2VDb2x1bW5zUGFyZW50OiBFdWlQYWdlQ29sdW1uc0NvbXBvbmVudDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBFdWlQYWdlQ29sdW1uc0NvbXBvbmVudCkpIHBhZ2VDb2x1bW5zUGFyZW50SW5qZWN0ZWQ6IEV1aVBhZ2VDb2x1bW5zQ29tcG9uZW50LFxuICAgICAgICBwdWJsaWMgYXNTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICB0aGlzLnBhZ2VDb2x1bW5zUGFyZW50ID0gcGFnZUNvbHVtbnNQYXJlbnRJbmplY3RlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVNpemVTID0gZmFsc2U7IC8vIEJ5cGFzcyBzaXplIGRlZmF1bHRcbiAgICAgICAgaWYgKHRoaXMucGFnZUNvbHVtbnNQYXJlbnQgJiYgdGhpcy5pc0F1dG9jbG9zZU9uQ29udGFpbmVyUmVzaXplICYmIHRoaXMuYXV0b2Nsb3NlQ29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZUNvbHVtbnNQYXJlbnQud2lkdGgucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHBhcmVudFdpZHRoOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkdGggPD0gdGhpcy5hdXRvY2xvc2VDb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFnZUNvbHVtbnNQYXJlbnQgJiYgdGhpcy5wYWdlQ29sdW1uc1BhcmVudC5oYXNQcmV2ZW50TW9iaWxlUmVuZGVyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcgPSB0aGlzLnBhZ2VDb2x1bW5zUGFyZW50Lmhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0F1dG9jbG9zZU9uTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoYmtwcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChia3BzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRBcmlhTGFiZWwgPSBgRXhwYW5kICR7dGhpcy5sYWJlbH1gO1xuICAgICAgICB0aGlzLmNvbGxhcHNlQXJpYUxhYmVsID0gYENvbGxhcHNlICR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1oZWFkZXItYm9keScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdlQ29sdW1uSGVhZGVyQm9keUNvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1oZWFkZXItbGVmdC1jb250ZW50Jywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2VDb2x1bW5IZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpLXBhZ2UtY29sdW1uLWhlYWRlci1yaWdodC1jb250ZW50Jywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2VDb2x1bW5IZWFkZXJSaWdodENvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1oZWFkZXItY29sbGFwc2VkLWNvbnRlbnQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRXVpUGFnZUNvbHVtbkhlYWRlckNvbGxhcHNlZENvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1wYWdlLWNvbHVtbi1ib2R5Jywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2VDb2x1bW5Cb2R5Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpLXBhZ2UtY29sdW1uLWZvb3RlcicsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdlQ29sdW1uRm9vdGVyQ29udGVudERpcmVjdGl2ZSB7fVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiQGlmIChsYWJlbCB8fCBzdWJMYWJlbCB8fCBjdXN0b21IZWFkZXJMZWZ0Q29udGVudCB8fCBjdXN0b21IZWFkZXJSaWdodENvbnRlbnQgfHwgaXNDb2xsYXBzaWJsZSkge1xuXG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdlLWNvbHVtbl9faGVhZGVyXCIgW2NsYXNzLmV1aS1wYWdlLWNvbHVtbl9faGVhZGVyLS13aXRoLWljb25zXT1cImlzQ29sbGFwc2VkV2l0aEljb25zXCI+XG4gICAgICAgIEBpZiAoIWN1c3RvbUhlYWRlckxlZnRDb250ZW50KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgQGlmIChsYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGN1c3RvbUhlYWRlckNvbGxhcHNlZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktcGFnZS1jb2x1bW4taGVhZGVyLWNvbGxhcHNlZC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghaXNDb2xsYXBzZWRXaXRoSWNvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzdWJMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LXN1Yi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWhlYWRlci1sZWZ0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2hlYWRlci1yaWdodC1jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGN1c3RvbUhlYWRlclJpZ2h0Q29udGVudCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItcmlnaHQtY29udGVudC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1wYWdlLWNvbHVtbi1oZWFkZXItcmlnaHQtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoaXNDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgIDxidXR0b24gZXVpQnV0dG9uIGV1aUJhc2ljQnV0dG9uIGV1aVNlY29uZGFyeSBldWlSb3VuZGVkIGV1aUljb25CdXR0b24gZXVpU2l6ZVMgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpc0NvbGxhcHNlZCA/IGV4cGFuZEFyaWFMYWJlbCA6IGNvbGxhcHNlQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2hlYWRlci10b2dnbGVcIj5cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmJyZWFrcG9pbnRzLmlzTW9iaWxlICYmICFoYXNQcmV2ZW50TW9iaWxlUmVuZGVyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1kb3duOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzUmlnaHRDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLWJhY2s6c2hhcnBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1mb3J3YXJkOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykuYnJlYWtwb2ludHMuaXNNb2JpbGUgJiYgIWhhc1ByZXZlbnRNb2JpbGVSZW5kZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLXVwOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzUmlnaHRDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLWZvcndhcmQ6c2hhcnBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1iYWNrOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuXG48IS0tIE9uIG5ldyBsaW5lIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBleHBhbmQvY29sbGFwc2UgJiBjdXN0b20gcmlnaHQgY29udGVudCAtLT5cbkBpZiAoY3VzdG9tSGVhZGVyQm9keUNvbnRlbnQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19oZWFkZXItbGVmdC1jb250ZW50LWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWhlYWRlci1ib2R5XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuXG48ZGl2IGNsYXNzPVwiZXVpLXBhZ2UtY29sdW1uX19ib2R5XCJcbiAgICBbY2xhc3MuZXVpLXBhZ2UtY29sdW1uLS1jb2xsYXBzZWQtd2l0aC1pY29uc109XCJpc0NvbGxhcHNlZFdpdGhJY29uc1wiIGNka1Njcm9sbGFibGU+XG4gICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbkBpZiAoY3VzdG9tRm9vdGVyQ29udGVudCkge1xuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnZS1jb2x1bW5fX2Zvb3RlclwiIFtjbGFzcy5ldWktcGFnZS1jb2x1bW5fX2Zvb3Rlci0taGlnaGxpZ2h0ZWRdPVwiaXNIaWdobGlnaHRlZFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktcGFnZS1jb2x1bW4tZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2JvZHk+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLXBhZ2UtY29sdW1uLWJvZHlcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -109,9 +109,10 @@ export class EuiPopoverComponent {
|
|
109
109
|
scrollStrategy,
|
110
110
|
disposeOnNavigation: true,
|
111
111
|
width: this.width,
|
112
|
-
panelClass: this.baseStatesDirective.getCssClasses('eui-
|
112
|
+
panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),
|
113
113
|
});
|
114
114
|
this.overlayRef.attach(this.templatePortal);
|
115
|
+
document.querySelector('.cdk-overlay-container')?.classList.add('eui-18');
|
115
116
|
this.positionStrategy = positionStrategy;
|
116
117
|
this.positionStrategyUpdate$.next();
|
117
118
|
this.overlayRef
|
@@ -172,7 +173,7 @@ export class EuiPopoverComponent {
|
|
172
173
|
}));
|
173
174
|
}
|
174
175
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;color:var(--eui-c-neutral-light);display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{display:flex;width:25rem}.eui-18 .eui-popover__container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i8.EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
176
177
|
}
|
177
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiPopoverComponent, decorators: [{
|
178
179
|
type: Component,
|
@@ -189,7 +190,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
189
190
|
'euiSizeVariant',
|
190
191
|
],
|
191
192
|
},
|
192
|
-
], template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}
|
193
|
+
], template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;color:var(--eui-c-neutral-light);display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{display:flex;width:25rem}.eui-18 .eui-popover__container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"] }]
|
193
194
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.ScrollDispatcher }, { type: i2.BaseStatesDirective }], propDecorators: { title: [{
|
194
195
|
type: Input
|
195
196
|
}], position: [{
|
@@ -219,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
219
220
|
type: ViewChild,
|
220
221
|
args: ['templatePortalContent']
|
221
222
|
}] } });
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxTQUFTLEVBTVQsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXJELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxPQUFPLEVBQXNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQXVCaEgsTUFBTSxPQUFPLG1CQUFtQjtJQTZCNUIsWUFBb0IsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxtQkFBd0M7UUFIeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTlCbkQsYUFBUSxHQUF1QixRQUFRLENBQUM7UUFDakQseUZBQXlGO1FBQ2hGLFNBQUksR0FBNkUsU0FBUyxD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QUNwRSxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOytHQWhNUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtS0FPUixnQkFBZ0Isd0RBQ2hCLGdCQUFnQixxREFDaEIsZ0JBQWdCLDBoQkNqRXhDLHUxQ0FnQ0E7OzRGRHdCYSxtQkFBbUI7a0JBckIvQixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxrQkFDckI7d0JBQ1o7NEJBQ0ksU0FBUyxFQUFFLG1CQUFtQjs0QkFDOUIsTUFBTSxFQUFFO2dDQUNKLFVBQVU7Z0NBQ1YsVUFBVTtnQ0FDVixVQUFVO2dDQUNWLFdBQVc7Z0NBQ1gsWUFBWTtnQ0FDWixhQUFhO2dDQUNiLGdCQUFnQjs2QkFDbkI7eUJBQ0o7cUJBQ0o7NEtBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2tDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFJNkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlSZWYsXG4gICAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4sXG4gICAgU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlU3RhdGVzRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5cbmltcG9ydCB7IEV1aVBvcG92ZXJQb3NpdGlvbiwgQk9UVE9NLCBMRUZULCBSSUdIVCwgVE9QLCBnZXRQb3NpdGlvbiB9IGZyb20gJy4vbW9kZWxzL2V1aS1wb3BvdmVyLXBvc2l0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogW1xuICAgICAgICAgICAgICAgICdldWlTaXplUycsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVNJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZUwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplWEwnLFxuICAgICAgICAgICAgICAgICdldWlTaXplMlhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZUF1dG8nLFxuICAgICAgICAgICAgICAgICdldWlTaXplVmFyaWFudCcsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBFdWlQb3BvdmVyUG9zaXRpb24gPSAnYm90dG9tJztcbiAgICAvKiogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCB2ZXJzaW9uIG9mIGV1aSBpbiBmYXZvciBvZiBldWlTaXplVmFyaWFudCAqL1xuICAgIEBJbnB1dCgpIHNpemU6ICdkZWZhdWx0JyB8ICdzbWFsbCcgfCAnbGFyZ2UnIHwgJ2F1dG8nIHwgJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyB8IHN0cmluZyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSB0eXBlOiAnZGVmYXVsdCcgfCAnZmxhdCcgfCAnY29sb3JlZC1oZWFkZXInIHwgJ2NvbG9yZWQtc29saWQnID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNCYWNrRHJvcCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNDbG9zZUJ1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRGlzbWlzc2FibGUgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIG91dHNpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcG9wb3Zlck9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHBvcG92ZXJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBwb3NpdGlvbiQ6IE9ic2VydmFibGU8W0V1aVBvcG92ZXJQb3NpdGlvbiwgRE9NUmVjdF0+O1xuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVQb3J0YWxDb250ZW50JykgdGVtcGxhdGVQb3J0YWxDb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIHByaXZhdGUgdGVtcGxhdGVQb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGlzT3BlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBwcml2YXRlIG9yaWdpbjogRWxlbWVudFJlZjtcbiAgICBwcml2YXRlIHByZWZlcnJlZFBvc2l0b25zOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10gPSBbQk9UVE9NLCBUT1AsIExFRlQsIFJJR0hUXTtcbiAgICBwcml2YXRlIHBvc2l0aW9uU3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcbiAgICBwcml2YXRlIHBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgYmFzZVN0YXRlc0RpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSl7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJlZmVycmVkUG9zaXRvbnMgPSBbVE9QLCBCT1RUT00sIExFRlQsIFJJR0hUXTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW1JJR0hULCBMRUZULCBUT1AsIEJPVFRPTV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW0xFRlQsIFJJR0hULCBUT1AsIEJPVFRPTV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW0JPVFRPTSwgVE9QLCBMRUZULCBSSUdIVF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvblN0cmVhbSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlUG9ydGFsQ29udGVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCB2ZXJzaW9uIG9mIGV1aSBpbiBmYXZvciBvZiBpc09wZW4gKi9cbiAgICBnZXQgaXNQb3BvdmVyT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBldWktcG9wb3ZlciBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQHVzYWdlTm90ZXNcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGV1aS1wb3BvdmVyICNwb3BvdmVyPlxuICAgICAqICAgICBcXEBpZiAocG9wb3Zlci5pc09wZW4pIHtcbiAgICAgKiAgICAgICAgICA8bXktY29tcG9uZW50PjwvbXktY29tcG9uZW50PlxuICAgICAqICAgICB9XG4gICAgICogPC9ldWktcG9wb3Zlcj5cbiAgICAgKiBgYGBcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gd2l0aCB2YWx1ZSBgdHJ1ZWAgd2hlbiBvcGVuLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW4kLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgcG9wb3ZlclxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIHBvcG92ZXIgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlblBvcG92ZXIob3JpZ2luOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSB0aGlzLnNjcm9sbERpc3BhdGNoZXIuYW5jZXN0b3JTY3JvbGxlZChvcmlnaW4pLnN1YnNjcmliZSgoZXZlbnQ6IENka1Njcm9sbGFibGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50ID0gZXZlbnQgPyBldmVudC5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudCA6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKG9yaWdpbiBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50LCBzY3JvbGxhYmxlUGFyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKTtcblxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDEwIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmdldENzc0NsYXNzZXMoJ2V1aS0xOCBldWktcG9wb3ZlcicpLnNwbGl0KCcgJyksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkLm5leHQoKTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGlzbWlzc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZUNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW4kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgcG9wb3ZlclxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbiQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMucG9wb3ZlckNsb3NlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFjdHMgb24gdGhlIEVzYyBrZXlkb3duIGV2ZW50IHRvIGNsb3NlIHRoZSBwb3B1cC4gQ2FuIGJlIHVzZWQgYXMgYWx0ZXJuYXRpdmUgdG8gdGhlIGNsb3NlIGljb24gYnV0dG9uLFxuICAgICAqIG9yIGFzIHRoZSBtYWluIHdheSB0byBjbG9zZSB0aGUgcG9wdXAgd2hlbiBoYXNDbG9zZUJ1dHRvbiBpcyBmYWxzZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBrZXkgZXZlbnQgcHJlc3NlZFxuICAgICAqL1xuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZShvcmlnaW46IEhUTUxFbGVtZW50LCBzY3JvbGxhYmxlUGFyZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvcmlnaW5ZID0gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRZID0gTWF0aC5hYnMoc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCA9IHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gNTA7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChvcmlnaW5ZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCkgfHxcbiAgICAgICAgICAgIChvcmlnaW5ZIC0gc2Nyb2xsYWJsZVBhcmVudFkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50WSArIHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbiBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLnByZWZlcnJlZFBvc2l0b25zKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9zaXRpb25TdHJlYW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb24kID0gdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMpLFxuICAgICAgICAgICAgbWFwKGdldFBvc2l0aW9uKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBtYXAoKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDpcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMub3JpZ2luIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbcG9zaXRpb24sIHJlY3RdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fY29udGFpbmVyIGV1aS1wb3BvdmVyX19jb250YWluZXItLXt7IHR5cGUgfX0gZXVpLTE4XCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fYXJyb3dcIiBbZXVpUG9wb3ZlckFycm93UG9zaXRpb25dPVwicG9zaXRpb24kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2Fycm93LWlubmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9faGVhZGVyLXRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXBvcG92ZXJfX2hlYWRlci1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEaWFsb2cgY2xvc2UgaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2xvc2U6b3V0bGluZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiIGNsYXNzPVwiZXVpLXBvcG92ZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxTQUFTLEVBTVQsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXJELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxPQUFPLEVBQXNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQXVCaEgsTUFBTSxPQUFPLG1CQUFtQjtJQTZCNUIsWUFBb0IsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxtQkFBd0M7UUFIeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTlCbkQsYUFBUSxHQUF1QixRQUFRLENBQUM7UUFDakQseUZBQXlGO1FBQ2hGLFNBQUksR0FBNkUsU0FBUyxD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bXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5UmVmLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIFNjcm9sbERpc3BhdGNoZXIsXG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBFdWlQb3BvdmVyUG9zaXRpb24sIEJPVFRPTSwgTEVGVCwgUklHSFQsIFRPUCwgZ2V0UG9zaXRpb24gfSBmcm9tICcuL21vZGVscy9ldWktcG9wb3Zlci1wb3NpdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlTaXplTScsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZTJYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVBdXRvJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVZhcmlhbnQnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogRXVpUG9wb3ZlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgaW4gZmF2b3Igb2YgZXVpU2l6ZVZhcmlhbnQgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ2xhcmdlJyB8ICdhdXRvJyB8ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCcgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgdHlwZTogJ2RlZmF1bHQnIHwgJ2ZsYXQnIHwgJ2NvbG9yZWQtaGVhZGVyJyB8ICdjb2xvcmVkLXNvbGlkJyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQmFja0Ryb3AgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2xvc2VCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0Rpc21pc3NhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKSBvdXRzaWRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHBvcG92ZXJPcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwb3BvdmVyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgcG9zaXRpb24kOiBPYnNlcnZhYmxlPFtFdWlQb3BvdmVyUG9zaXRpb24sIERPTVJlY3RdPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUG9ydGFsQ29udGVudCcpIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc09wZW4kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBvcmlnaW46IEVsZW1lbnRSZWY7XG4gICAgcHJpdmF0ZSBwcmVmZXJyZWRQb3NpdG9uczogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdID0gW0JPVFRPTSwgVE9QLCBMRUZULCBSSUdIVF07XG4gICAgcHJpdmF0ZSBwb3NpdGlvblN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgcHJpdmF0ZSBwb3NpdGlvblN0cmF0ZWd5VXBkYXRlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpe1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW1RPUCwgQk9UVE9NLCBMRUZULCBSSUdIVF07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtSSUdIVCwgTEVGVCwgVE9QLCBCT1RUT01dO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtMRUZULCBSSUdIVCwgVE9QLCBCT1RUT01dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtCT1RUT00sIFRPUCwgTEVGVCwgUklHSFRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb25TdHJlYW0oKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVBvcnRhbENvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgaW4gZmF2b3Igb2YgaXNPcGVuICovXG4gICAgZ2V0IGlzUG9wb3Zlck9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXVpLXBvcG92ZXIgaXMgb3Blbi5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktcG9wb3ZlciAjcG9wb3Zlcj5cbiAgICAgKiAgICAgXFxAaWYgKHBvcG92ZXIuaXNPcGVuKSB7XG4gICAgICogICAgICAgICAgPG15LWNvbXBvbmVudD48L215LWNvbXBvbmVudD5cbiAgICAgKiAgICAgfVxuICAgICAqIDwvZXVpLXBvcG92ZXI+XG4gICAgICogYGBgXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIHdpdGggdmFsdWUgYHRydWVgIHdoZW4gb3Blbiwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMucG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiBhIHBvcG92ZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIG9mIHRoZSBwb3BvdmVyIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Qb3BvdmVyKG9yaWdpbjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNQb3BvdmVyT3Blbikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gdGhpcy5zY3JvbGxEaXNwYXRjaGVyLmFuY2VzdG9yU2Nyb2xsZWQob3JpZ2luKS5zdWJzY3JpYmUoKGV2ZW50OiBDZGtTY3JvbGxhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudCA9IGV2ZW50ID8gZXZlbnQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQgOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZShvcmlnaW4gYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAxMCB9KTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktcG9wb3ZlcicpLnNwbGl0KCcgJyksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jZGstb3ZlcmxheS1jb250YWluZXInKT8uY2xhc3NMaXN0LmFkZCgnZXVpLTE4Jyk7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkLm5leHQoKTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGlzbWlzc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZUNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW4kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgcG9wb3ZlclxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbiQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMucG9wb3ZlckNsb3NlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFjdHMgb24gdGhlIEVzYyBrZXlkb3duIGV2ZW50IHRvIGNsb3NlIHRoZSBwb3B1cC4gQ2FuIGJlIHVzZWQgYXMgYWx0ZXJuYXRpdmUgdG8gdGhlIGNsb3NlIGljb24gYnV0dG9uLFxuICAgICAqIG9yIGFzIHRoZSBtYWluIHdheSB0byBjbG9zZSB0aGUgcG9wdXAgd2hlbiBoYXNDbG9zZUJ1dHRvbiBpcyBmYWxzZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBrZXkgZXZlbnQgcHJlc3NlZFxuICAgICAqL1xuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZShvcmlnaW46IEhUTUxFbGVtZW50LCBzY3JvbGxhYmxlUGFyZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvcmlnaW5ZID0gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRZID0gTWF0aC5hYnMoc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCA9IHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gNTA7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChvcmlnaW5ZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCkgfHxcbiAgICAgICAgICAgIChvcmlnaW5ZIC0gc2Nyb2xsYWJsZVBhcmVudFkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50WSArIHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbiBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLnByZWZlcnJlZFBvc2l0b25zKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9zaXRpb25TdHJlYW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb24kID0gdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMpLFxuICAgICAgICAgICAgbWFwKGdldFBvc2l0aW9uKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBtYXAoKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDpcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMub3JpZ2luIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbcG9zaXRpb24sIHJlY3RdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fY29udGFpbmVyIGV1aS1wb3BvdmVyX19jb250YWluZXItLXt7IHR5cGUgfX1cIiBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wb3BvdmVyX19hcnJvd1wiIFtldWlQb3BvdmVyQXJyb3dQb3NpdGlvbl09XCJwb3NpdGlvbiRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fYXJyb3ctaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wb3BvdmVyX19oZWFkZXItdGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaGFzQ2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktcG9wb3Zlcl9faGVhZGVyLWNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRpYWxvZyBjbG9zZSBpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjbG9zZTpvdXRsaW5lXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZSgpXCIgY2xhc3M9XCJldWktcG9wb3Zlcl9fY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|