@eui/components 18.0.0-next.50 → 18.0.0-next.51
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/EuiAppSidebarMenuComponent.html +1 -1
- package/docs/components/EuiMenuComponent.html +1 -25
- package/docs/components/EuiMenuItemComponent.html +1 -25
- package/docs/components/EuiSidebarMenuComponent.html +1 -25
- package/docs/components/EuiTimebarComponent.html +25 -326
- package/docs/components/EuiTimelineComponent.html +1 -1
- package/docs/components/EuiTimelineItemComponent.html +2 -2
- package/docs/components/EuiTreeListComponent.html +51 -272
- package/docs/components/EuiTreeListItemComponent.html +57 -399
- package/docs/components/EuiTreeListItemContentComponent.html +3 -3
- package/docs/dependencies.html +1 -1
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-card/eui-card.component.mjs +2 -2
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -7
- package/esm2022/eui-menu/eui-menu.component.mjs +3 -7
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -7
- package/esm2022/eui-tabs/eui-tabs.component.mjs +13 -12
- package/esm2022/eui-timebar/eui-timebar.component.mjs +18 -44
- package/esm2022/eui-timeline/eui-timeline-item.component.mjs +1 -1
- package/esm2022/eui-timeline/eui-timeline.component.mjs +1 -1
- package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +48 -79
- package/esm2022/eui-tree-list/eui-tree-list.component.mjs +19 -46
- package/esm2022/eui-tree-list/item-content/item-content.component.mjs +6 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
- package/eui-menu/eui-menu-item.component.d.ts +1 -3
- package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
- package/eui-menu/eui-menu.component.d.ts +1 -3
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts +1 -3
- package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
- package/eui-tabs/eui-tabs.component.d.ts +1 -0
- package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
- package/eui-timebar/eui-timebar.component.d.ts +10 -16
- package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline-item.component.d.ts +2 -3
- package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline.component.d.ts +1 -2
- package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list-item.component.d.ts +16 -23
- package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list.component.d.ts +10 -19
- package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-card.mjs +2 -2
- package/fesm2022/eui-components-eui-card.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +2 -2
- package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +17 -25
- package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +2 -6
- package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +2 -2
- package/fesm2022/eui-components-eui-tabs.mjs +12 -11
- package/fesm2022/eui-components-eui-tabs.mjs.map +2 -2
- package/fesm2022/eui-components-eui-timebar.mjs +17 -43
- package/fesm2022/eui-components-eui-timebar.mjs.map +2 -2
- package/fesm2022/eui-components-eui-timeline.mjs.map +2 -2
- package/fesm2022/eui-components-eui-tree-list.mjs +76 -128
- package/fesm2022/eui-components-eui-tree-list.mjs.map +4 -4
- package/fesm2022/eui-components-layout.mjs +2 -2
- package/fesm2022/eui-components-layout.mjs.map +2 -2
- package/package.json +3 -3
@@ -35,7 +35,6 @@ export class EuiMenuComponent {
|
|
35
35
|
this.expandAllItems = false;
|
36
36
|
this.isFlat = false;
|
37
37
|
this.hasScrollToItem = false;
|
38
|
-
this.hasLowercaseItems = false; // DEPRECATED! TODO v19: remove
|
39
38
|
this.isClick = new EventEmitter();
|
40
39
|
this.itemClick = new EventEmitter();
|
41
40
|
}
|
@@ -441,7 +440,7 @@ export class EuiMenuComponent {
|
|
441
440
|
}
|
442
441
|
}
|
443
442
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiMenuComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.BaseStatesDirective }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
444
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.6", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute]
|
443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.6", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute] }, outputs: { isClick: "isClick", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "focusableItems", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective }], ngImport: i0, template: "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:1px solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-s);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{font:var(--eui-f-m-bold);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-4xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i4.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i5.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: i6.EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
445
444
|
}
|
446
445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiMenuComponent, decorators: [{
|
447
446
|
type: Component,
|
@@ -449,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
|
|
449
448
|
{
|
450
449
|
directive: BaseStatesDirective,
|
451
450
|
},
|
452
|
-
], encapsulation: ViewEncapsulation.None, template: "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n
|
451
|
+
], encapsulation: ViewEncapsulation.None, template: "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:1px solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-s);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{font:var(--eui-f-m-bold);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-4xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n"] }]
|
453
452
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.BaseStatesDirective }, { type: i0.ChangeDetectorRef }], propDecorators: { focusableItems: [{
|
454
453
|
type: ViewChildren,
|
455
454
|
args: [EuiMenuItemComponent]
|
@@ -490,9 +489,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
|
|
490
489
|
}], hasScrollToItem: [{
|
491
490
|
type: Input,
|
492
491
|
args: [{ transform: booleanAttribute }]
|
493
|
-
}], hasLowercaseItems: [{
|
494
|
-
type: Input,
|
495
|
-
args: [{ transform: booleanAttribute }]
|
496
492
|
}], isClick: [{
|
497
493
|
type: Output
|
498
494
|
}], itemClick: [{
|
@@ -501,4 +497,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
|
|
501
497
|
type: HostListener,
|
502
498
|
args: ['click', ['$event']]
|
503
499
|
}] } });
|
504
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixnQkFBZ0IsRUFHaEIsWUFBWSxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEIsYUFBYSxFQUF3QixNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBR3pCLElBQ1csVUFBVTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQSxDQUFDLENBQUMs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ICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgRXZlbnQgYXMgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgY29uc3VtZUV2ZW50IH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IEV1aU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlNZW51SXRlbSB9IGZyb20gJ0BldWkvYmFzZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aU1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKEV1aU1lbnVJdGVtQ29tcG9uZW50KSBmb2N1c2FibGVJdGVtczogUXVlcnlMaXN0PEV1aU1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLW1lbnUnKSxcbiAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPyAnZXVpLW1lbnUtLWNvbGxhcHNlZCcgOiAnJyxcbiAgICAgICAgICAgICF0aGlzLmhhc0ljb25zID8gJ2V1aS1tZW51LS1uby1pY29ucycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNGbGF0ID8gJ2V1aS1tZW51LS1mbGF0JzogJycsXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpdGVtczogRXVpTWVudUl0ZW1bXTtcbiAgICBASW5wdXQoKSBzZWFyY2hGaWx0ZXJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGV4dGVybmFsTGlua0xhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZnJhZ21lbnRJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbHRlclZhbHVlID0gJyc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ29sbGFwc2VkSW5pdGlhbHMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzRmlsdGVyID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0ljb25zID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1Rvb2x0aXAgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXhwYW5kQWxsSXRlbXMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNGbGF0ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1Njcm9sbFRvSXRlbSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNMb3dlcmNhc2VJdGVtcyA9IGZhbHNlOyAgLy8gREVQUkVDQVRFRCEgVE9ETyB2MTk6IHJlbW92ZVxuXG4gICAgQE91dHB1dCgpIGlzQ2xpY2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdWlNZW51SXRlbT4oKTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGl0ZW1zU3RhdGU6IGFueVtdO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBmb2N1c0tleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxFdWlNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gZmluZHMgZmlyc3QgY2hpbGQgd2hlbiBBcnJvd0Rvd25cbiAgICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4/IHRoaXMuZmluZEZpcnN0RmlsdGVyZWRJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4pIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGZpcnN0Q2hpbGQpO1xuICAgICAgICAvLyBmaW5kcyB0aGUgcGFyZW50IGVsZW1lbnRcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5wYXJlbnQ7XG4gICAgICAgIGNvbnN0IHBhcmVudEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKHBhcmVudCk7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmlzTGlua0l0ZW0gfHwgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5pc1VybEl0ZW0pICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ub25DbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmFjdGlvbkljb24pe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uSWNvbkZvY3VzU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5vbkV4cGFuZFRvZ2dsZShldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5hY3Rpb25JY29uKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FjdGlvbkljb25Gb2N1c1N0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLm9uRXhwYW5kVG9nZ2xlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5jaGlsZHJlbiAmJiB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vZm9jdXNlcyBmaXJzdCBjaGlsZFxuICAgICAgICAgICAgICAgICAgICBmaXJzdEZvY3VzYWJsZUl0ZW0/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZmlyc3RGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmaW5kcyBsYXN0IGZpbHRlcmVkIGNoaWxkIHdoZW4gQXJyb3dEb3duIGFuZCBuYXZpZ2F0aW5nIHdpdGhpbiBzdWJtZW51XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmZpbmRGaWx0ZXJlZEl0ZW1zKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4ID0gKGZpbHRlcmVkQ2hpbGRyZW4/Lmxlbmd0aCkgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGQgPSBmaWx0ZXJlZENoaWxkcmVuW2xhc3RDaGlsZEluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGxhc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBhY3RpdmUgaXRlbSBpcyB0aGUgbGFzdCBjaGlsZCwgcHV0cyB0aGUgZm9jdXMgb24gdGhlIG5leHQgcGFyZW50XG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0gPT09IGxhc3RGb2N1c2FibGVJdGVtKXtcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShwYXJlbnRGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ICsxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNraXBzIHJlbWFpbmluZyBjaGlsZGVuIGluIHRoZSBxdWVyeSBsaXN0IHdoZW4gdGhlcmUgaXMgZXhwYW5kZWQgbm9kZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5za2lwUHJlZGljYXRlKG1lbnVJdGVtID0+IG1lbnVJdGVtLnBhcmVudCAhPSB1bmRlZmluZWQgfHwgbWVudUl0ZW0uaXRlbS52aXNpYmxlID09PSBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmluZHMgZmlyc3QgZmlsdGVyZWQgY2hpbGQgd2hlbiBBcnJvd1VwXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmZpbmRGaWx0ZXJlZEl0ZW1zKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q2hpbGRVcCA9IGZpbHRlcmVkQ2hpbGRyZW5bJzAnXVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUl0ZW1VcCA9IHRoaXMuZmluZEZvY3VzYWJsZUl0ZW0oZmlyc3RDaGlsZFVwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBuYXZpZ2F0aW5nIHVwIG9uIGEgc3VibWVudSBmb2N1c2VzIHRoZSBwYXJlbnQgaWYgdGhlIGFjdGl2ZSBpdGVtIGlzIHRoZSBmaXJzdCBjaGlsZFxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtID09PSBmaXJzdEZvY3VzYWJsZUl0ZW1VcCl7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHBhcmVudEZvY3VzYWJsZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4IC0xKTtcbiAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIG5hdmlnYXRpbmcgdXAgZnJvbSBhIHBhcmVudCBlbGVtZW50IHRvIGFuIGV4cGFuZGVkIHN1Ym1lbnUsIGZpbmRzIHRoZSBsYXN0IGNoaWxkIGFuZCBmb2N1c2VzIGl0XG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4gJiYgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5leHBhbmRlZCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4VXAgPSAoZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGgpIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVJdGVtVXAgPXRoaXMuZmluZEZvY3VzYWJsZUl0ZW0oZmlsdGVyZWRDaGlsZHJlbltsYXN0Q2hpbGRJbmRleFVwXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGxhc3RGb2N1c2FibGVJdGVtVXApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5jb25maWd1cmVJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIC8vIGdldCBjdXJyZW50IHVybFxuICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICAgIC8vIGZpbmQgYW4gaXRlbSB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIG9yIHRoZSBtb3N0IHJlbGV2YW50IG9uZVxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZE1vc3RSZWxldmFudEl0ZW0oY3VycmVudFVybCwgdGhpcy5pdGVtcyk7XG4gICAgICAgICAgICAvLyBleHBhbmQgdG8gdGhhdCBpdGVtXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kVG9HaXZlbkl0ZW0oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBhbmQgLyBDb2xsYXBzZSBBbGwgaXRlbXNcbiAgICAgICAgaWYgKGNoYW5nZXMuZXhwYW5kQWxsSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnNldEV4cGFuZGVkVG9BbGxJdGVtcyhjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlcy5leHBhbmRBbGxJdGVtcy5jdXJyZW50VmFsdWUpLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmZpbHRlclZhbHVlICYmIHRoaXMuaGFzRmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLm9uRmlsdGVyKGNoYW5nZXMuZmlsdGVyVmFsdWUuY3VycmVudFZhbHVlID8/ICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlZnJlc2ggd2hlbiBpbnRlcmFjdGl2ZSBjb2xsYXBzZWQgdG8gaW5pdGlhbHNcbiAgICAgICAgaWYgKGNoYW5nZXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMgPSBjaGFuZ2VzLmhhc0NvbGxhcHNlZEluaXRpYWxzLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbmZpZ3VyZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIExhYmVscyBkZWZhdWx0IHZhbHVlcyAtIFRPRE8gOiB0cmFuc2xhdGlvbnNcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEZpbHRlckxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEZpbHRlckxhYmVsID0gJ1NlYXJjaCBmaWx0ZXInO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudElzVmlzaWJsZUluVmlld3BvcnQgPSAoZWwsIHBhcnRpYWxseVZpc2libGUgPSBmYWxzZSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgeyBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCB9ID0gd2luZG93O1xuICAgICAgICAgICAgcmV0dXJuIHBhcnRpYWxseVZpc2libGVcbiAgICAgICAgICAgID8gKCh0b3AgPiAwICYmIHRvcCA8IGlubmVySGVpZ2h0KSB8fFxuICAgICAgICAgICAgKGJvdHRvbSA+IDAgJiYgYm90dG9tIDwgaW5uZXJIZWlnaHQpKSAmJlxuICAgICAgICAgICAgKChsZWZ0ID4gMCAmJiBsZWZ0IDwgaW5uZXJXaWR0aCkgfHwgKHJpZ2h0ID4gMCAmJiByaWdodCA8IGlubmVyV2lkdGgpKVxuICAgICAgICAgICAgOiB0b3AgPj0gMCAmJiBsZWZ0ID49IDAgJiYgYm90dG9tIDw9IGlubmVySGVpZ2h0ICYmIHJpZ2h0IDw9IGlubmVyV2lkdGg7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gc3Vic2NyaXB0aW9uIHRvIHJvdXRlcyB1cmwgY2hhbmdlcyBmb3IgYWN0aXZhdGluZyB0aGUgc2Nyb2xsSW50b1ZpZXcgKG9wdGlvbmFsKVxuICAgICAgICBpZiAodGhpcy5oYXNTY3JvbGxUb0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5maW5kTW9zdFJlbGV2YW50SXRlbShldmVudC51cmwsIHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChfID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50SXNWaXNpYmxlSW5WaWV3cG9ydChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGluc3RhbnRpYXRlcyBGb2N1c0tleU1hbmFnZXIgd2l0aCB0aGUgcXVlcnkgbGlzdCBvZiBpdGVtcyBlbmFibGluZyB3cmFwcGluZ1xuICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5mb2N1c2FibGVJdGVtcykud2l0aFdyYXAoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljayhpdGVtOiBFdWlNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoIWl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLnVybEV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oaXRlbS51cmxFeHRlcm5hbCwgaXRlbS51cmxFeHRlcm5hbFRhcmdldCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udXJsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBmcmFnbWVudDogdGhpcy5mcmFnbWVudElkIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0uY29tbWFuZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0ubGluaykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zPy5tYXAoKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXQuaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0NsaWNrLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGl0ZW0pO1xuICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGZvY3VzZWRJdGVtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FeHBhbmRUb2dnbGUoaXRlbTogRXVpTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMub25FeHBhbmRUb2dnbGVkKGl0ZW0sIHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgd2h5IHRoZSBhYm92ZSBpcyBuZWVkZWQuIENhbiBpdCBiZSBzaW1wbHkgXCJpdGVtLmV4cGFuZGVkID0gIWl0ZW0uZXhwYW5kZWQ7XCIgP1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUZpbHRlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsdGVyKGV2ZW50OiBFdmVudClcbiAgICBwdWJsaWMgb25GaWx0ZXIodmFsdWU6IHN0cmluZylcbiAgICBwdWJsaWMgb25GaWx0ZXIoZXZlbnRPclZhbHVlOiBFdmVudCB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50T3JWYWx1ZSBpbnN0YW5jZW9mIEV2ZW50XG4gICAgICAgICAgICA/IChldmVudE9yVmFsdWUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlXG4gICAgICAgICAgICA6IGV2ZW50T3JWYWx1ZTtcbiAgICAgICAgdGhpcy5fb25Ub2dnbGVFeHBhbmRBbGxJdGVtcyh2YWx1ZSA/IHRydWUgOiBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZmlsdGVyTWVudUl0ZW1zKHRoaXMuaXRlbXMsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vblRvZ2dsZUV4cGFuZEFsbEl0ZW1zKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnNldEV4cGFuZGVkVG9BbGxJdGVtcyhzdGF0ZSwgdGhpcy5pdGVtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmluZHMgdGhlIEV1aU1lbnVJdGVtQ29tcG9uZW50IGluIHRoZSBxdWVyaWVkIGZvY3VzYWJsZUl0ZW1zW10gdGhhdCAgbWF0Y2hlcyB0aGUgcGFzc2VkIEV1aU1lbnVJdGVtIG9iamVjdFxuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtIGFuIEV1aU1lbnVJdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRGb2N1c2FibGVJdGVtKG1lbnVJdGVtOiBFdWlNZW51SXRlbSApOiBFdWlNZW51SXRlbUNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zLmZpbmQoXG4gICAgICAgICAgICAoZm9jdXNhYmxlSXRlbSkgPT4gZm9jdXNhYmxlSXRlbS5pdGVtLmxhYmVsID09PSBtZW51SXRlbT8ubGFiZWwgJiYgZm9jdXNhYmxlSXRlbS5pdGVtLmlkID09PSBtZW51SXRlbS5pZCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaW5kcyB0aGUgZmlyc3QgaXRlbSB0aGF0IGlzIGZpbHRlcmVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVudUl0ZW1zIGFuIGFycmF5IG9mIEV1aU1lbnVJdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRGaXJzdEZpbHRlcmVkSXRlbShtZW51SXRlbXM6IEV1aU1lbnVJdGVtIFtdKTogRXVpTWVudUl0ZW0ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZmlsdGVyZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbmRzIGFsbCBmaWx0ZXJlZCBtZW51IGl0ZW1zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVudUl0ZW1zIGFuIGFycmF5IG9mIEV1aU1lbnVJdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRGaWx0ZXJlZEl0ZW1zKG1lbnVJdGVtczogRXVpTWVudUl0ZW0gW10pOiBFdWlNZW51SXRlbSBbXSB7XG4gICAgICAgIHJldHVybiBtZW51SXRlbXMuZmlsdGVyKChpdGVtcykgPT4gaXRlbXMuZmlsdGVyZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrcyB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGFjdGlvbiBpY29uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tBY3Rpb25JY29uRm9jdXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGFjdGlvbiBpY29uIGlzIGZvY3VzZWQgYW5kIGlmIG5vdCBmb2N1cyBpdCwgb3RoZXJ3aXNlIGZvY3VzIHRoZSBhY3RpdmUgaXRlbVxuICAgICAgICAhdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5pc0FjdGlvbkljb25Gb2N1c2VkID8gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5mb2N1c0FjdGlvbkljb24oKSA6IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaWx0ZXIgYWxsIG1lbnUgaXRlbXMgZ2l2ZW4gYSB2YWx1ZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBtZW51IGl0ZW1zXG4gICAgICogQHBhcmFtIGZpbHRlclZhbHVlIHRoZSB2YWx1ZSB0byBmaWx0ZXIgbWVudSBpdGVtc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaWx0ZXJNZW51SXRlbXMobWVudUl0ZW1zOiBFdWlNZW51SXRlbVtdLCBmaWx0ZXJWYWx1ZTogc3RyaW5nKTogRXVpTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBtZW51SXRlbXM/Lm1hcCgoaXRlbTogRXVpTWVudUl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyVmFsdWUudG9Mb3dlckNhc2UoKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5maWx0ZXJNZW51SXRlbXMoaXRlbS5jaGlsZHJlbiwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIGl0ZW0uZmlsdGVyZWQgPSBpdGVtLmNoaWxkcmVuLmZpbHRlcigobCkgPT4gbFsnZmlsdGVyZWQnXSA9PT0gdHJ1ZSkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbHRlcmVkID0gZm91bmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGl0ZW0uZmlsdGVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHBhbmQgLyBjb2xsYXBzZSBhbGwgaXRlbXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpc0V4cGFuZGVkXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEV4cGFuZGVkVG9BbGxJdGVtcyhpc0V4cGFuZGVkLCBpdGVtczogRXVpTWVudUl0ZW1bXSk6IEV1aU1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gaXRlbXM/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmV4cGFuZGVkID0gaXNFeHBhbmRlZDtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5zZXRFeHBhbmRlZFRvQWxsSXRlbXMoaXNFeHBhbmRlZCwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpdGVtLCB7IHZpc2libGU6IGl0ZW0udmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGl0ZW0udmlzaWJsZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwYW5kIC8gY29sbGFwc2UgYSBtZW51IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHdoZXJlIHRoZSBcImV4cGFuZFwiIGhhZCBiZWVuIHRvZ2dsZWRcbiAgICAgKiBAcGFyYW0gaXRlbXMgVGhlIGl0ZW1zIGxpc3QgKHVzZWQgZm9yIHJlY3Vyc2lvbilcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgb25FeHBhbmRUb2dnbGVkKGl0ZW06IEV1aU1lbnVJdGVtLCBpdGVtczogRXVpTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtSWR4ID0gaXRlbXM/LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChpdGVtSWR4ID4gLTEpIHtcbiAgICAgICAgICAgIGl0ZW1zW2l0ZW1JZHhdLmV4cGFuZGVkID0gIWl0ZW1zW2l0ZW1JZHhdLmV4cGFuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FeHBhbmRUb2dnbGVkKGl0ZW0sIGkuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29uZmlndXJlIGFuIGFycmF5IG9mIGl0ZW1zIHdpdGggdmlzaWJsZSwgZmlsdGVyZWQgYW5kIGV4cGFuZCAoaW4gY2FzZSBvZiBleHBhbmRBbGxJdGVtcyBmbGFnIGVuYWJsZWQpIHByb3BlcnRpZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwYXJhbSBwYXJlbnQgdGhlIHBhcmVudCBpdGVtIG9mIGl0ZW1zIGlmIGV4aXN0c1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb25maWd1cmVJdGVtcyhpdGVtczogRXVpTWVudUl0ZW1bXSwgcGFyZW50PzogRXVpTWVudUl0ZW0pOiBFdWlNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIC8vIHJlY3Vyc2lvbiBpbiBjYXNlIHRoZXJlIGFyZSBjaGlsZHJlblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5jb25maWd1cmVJdGVtcyhpdGVtLmNoaWxkcmVuLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAvLyBleHBhbmQgYWxsIHBhcmVudHMgd2l0aCBjaGlsZHJlblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZEFsbEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHBvaW50IHRvIHRoZSBwYXJlbnRcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpdGVtLmlkICYmIHRoaXMuaGFzU2Nyb2xsVG9JdGVtKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5pZCA9IHV1aWQudjQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0ubGFiZWwgJiYgdGhpcy5oYXNDb2xsYXBzZWRJbml0aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdvcmRzID0gaXRlbS5sYWJlbC5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmICh3b3Jkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pbml0aWFscyA9IGAke2l0ZW0ubGFiZWwuc3Vic3RyaW5nKDAsIDEpfSR7aXRlbS5sYWJlbC5zdWJzdHJpbmcoMSwgMSl9YDtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaW5pdGlhbHMgPSBgJHt3b3Jkc1swXS5zdWJzdHJpbmcoMCwgMSl9JHt3b3Jkc1sxXS5zdWJzdHJpbmcoMCwgMSl9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGl0ZW0sIHsgdmlzaWJsZTogaXRlbS52aXNpYmxlID09PSB1bmRlZmluZWQgPyB0cnVlIDogaXRlbS52aXNpYmxlLCBmaWx0ZXJlZDogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBVUkwgYW5kIGEgbGlzdCBvZiBpdGVtcywgaXQgd2lsbCBleHBhbmQgdGhlIGl0ZW0gdGhhdCBtYXRjaGVzIHRoZSBVUkwuIElmIG5vdCBpdGVtIG1hdGNoZXMgZXhhY3RseSB0aGUgdXJsLCB0aGVuIGl0IHdpbGxcbiAgICAgKiBtYXRjaCB0aGUgaXRlbSB0aGF0IGlzIG1vc3QgcmVsZXZhbnQgdG8gdGhhdCB1cmwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXNcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZE1vc3RSZWxldmFudEl0ZW0odXJsOiBzdHJpbmcsIGl0ZW1zOiBFdWlNZW51SXRlbVtdLCByZWxldmFudEl0ZW0/OiBFdWlNZW51SXRlbSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgaWYgKCFpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS51cmwgJiYgdXJsLmluZGV4T2YoaXRlbS51cmwuc3Vic3RyKDEpKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVsZXZhbnRJdGVtID0gdGhpcy5nZXRNb3N0UmVsZXZhbnRJdGVtKHVybCwgcmVsZXZhbnRJdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZWxldmFudEl0ZW0gPSB0aGlzLmZpbmRNb3N0UmVsZXZhbnRJdGVtKHVybCwgaXRlbS5jaGlsZHJlbiwgcmVsZXZhbnRJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlbGV2YW50SXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiB0d28gaXRlbXMgd2l0aCB1cmwgcmV0dXJuIHRoZSBvbmUgd2l0aCB0aGUgbW9zdCByZWxldmFudCB1cmwgdGhhdCBtYXRjaGVzIGdpdmVuIHVybFxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBBIFVSTCB0byBiZSBtYXRjaGVkIHdpdGggdGhlIG9uZSBvZiBnaXZlbiBpdGVtc1xuICAgICAqIEBwYXJhbSBpdGVtMVxuICAgICAqIEBwYXJhbSBpdGVtMlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRNb3N0UmVsZXZhbnRJdGVtKHVybDogc3RyaW5nLCBpdGVtMTogRXVpTWVudUl0ZW0sIGl0ZW0yOiBFdWlNZW51SXRlbSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyMSA9IHVybC5yZXBsYWNlKGl0ZW0xPy51cmwgfHwgJycsICcnKTtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyMiA9IHVybC5yZXBsYWNlKGl0ZW0yPy51cmwgfHwgJycsICcnKTtcblxuICAgICAgICByZXR1cm4gcmVtYWluZGVyMS5sZW5ndGggPCByZW1haW5kZXIyLmxlbmd0aCA/IGl0ZW0xIDogaXRlbTI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYW4gaXRlbSwgaWYgdGhlcmUncyBhIHBhcmVudCBleHBhbmQgaXQgdW50aWwgeW91IHJlYWNoIHRoZSByb290IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtIEdpdmVuIG1lbnUgaXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHBhbmRUb0dpdmVuSXRlbShpdGVtOiBFdWlNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5wYXJlbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKGl0ZW0ucGFyZW50LmV4cGFuZGVkID0gdHJ1ZSkpO1xuICAgICAgICAgICAgdGhpcy5leHBhbmRUb0dpdmVuSXRlbShpdGVtLnBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGhhc0ZpbHRlciAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLW1lbnUtZmlsdGVyXCIgKGNsaWNrKT1cIm9uTWVudUZpbHRlckNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGV1aS1pY29uLWlucHV0PlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXNlYXJjaFwiIGZpbGxDb2xvcj1cIm5ldXRyYWwtbGlnaHRlclwiIGFyaWEtbGFiZWw9XCJTZWFyY2ggSWNvblwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgZXVpSW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgW2V1aUNsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlYXJjaEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsdGVyVmFsdWVcIiAvPlxuICAgICAgICA8L2V1aS1pY29uLWlucHV0PlxuICAgIDwvZGl2PlxufVxuXG48dWwgZXVpTGlzdCBjbGFzcz1cImV1aS1tZW51XCIgcm9sZT1cIm1lbnViYXJcIiBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgIEBpZiAoaXRlbXMpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIGxldC1pbmRleCBbbmdGb3JPZl09XCJpdGVtc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBtZW51SXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktbWVudS0tbm8taXRlbXNcIj5ObyBtZW51IGl0ZW1zIGRlZmluZWQ8L3NwYW4+XG4gICAgfVxuPC91bD5cblxuPCEtLSBkZXNjcmliZSB0aGUgcmVjdXJzaXZlIHRlbXBsYXRlIG9mIHRoZSBtZW51IGl0ZW0gLS0+XG48bmctdGVtcGxhdGUgI21lbnVJdGVtVGVtcGxhdGVSZWYgbGV0LWl0ZW09XCJtZW51SXRlbVwiIGxldC1wYXJlbnQ9XCJwYXJlbnRcIiBsZXQtaT1cImluZGV4XCI+XG4gICAgPCEtLSByZW5kZXIgdGhlIG1lbnUgaXRlbS0tPlxuICAgIDxldWktbWVudS1pdGVtXG4gICAgICAgICpuZ0lmPVwiaXRlbS5maWx0ZXJlZFwiXG4gICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgICAgIFtoYXNJY29uXT1cImhhc0ljb25zXCJcbiAgICAgICAgW2hhc1Rvb2x0aXBdPVwiaGFzVG9vbHRpcFwiXG4gICAgICAgIFtpc0NvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiXG4gICAgICAgIFtoYXNDb2xsYXBzZWRJbml0aWFsc109XCJoYXNDb2xsYXBzZWRJbml0aWFsc1wiXG4gICAgICAgIFtpc0xhYmVsTG93ZXJjYXNlXT1cImhhc0xvd2VyY2FzZUl0ZW1zXCJcbiAgICAgICAgKGV4cGFuZFRvZ2dsZSk9XCJvbkV4cGFuZFRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPCEtLSBpZiB0aGUgbWVudSBpdGVtIGhhcyBjaGlsZHJlbiwgcmVuZGVyIHRoZSBjaGlsZHJlbiAtLT5cbiAgICAgICAgPHVsIGV1aUxpc3QgKm5nSWY9XCJpdGVtLmNoaWxkcmVuICYmIGl0ZW0uZXhwYW5kZWRcIiBjbGFzcz1cImV1aS1tZW51IGV1aS1tZW51LXN1YlwiIHJvbGU9XCJtZW51XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlbjsgbGV0IGNoaWxkSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbVRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgbWVudUl0ZW06IGNoaWxkLCBpbmRleDogY2hpbGRJbmRleCwgcGFyZW50OiBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9ldWktbWVudS1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
500
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixnQkFBZ0IsRUFHaEIsWUFBWSxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEIsYUFBYSxFQUF3QixNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBR3pCLElBQ1csVUFBVTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQSxDQUFDLENBQUMs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QkFBaUIsQ0FBQyxJQUFJOzBLQUdELGNBQWM7c0JBQWpELFlBQVk7dUJBQUMsb0JBQW9CO2dCQUd2QixVQUFVO3NCQURwQixXQUFXO3VCQUFDLE9BQU87Z0JBU1gsS0FBSztzQkFBYixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVrQyxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLE1BQU07c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFNUIsT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQWdCUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBFdmVudCBhcyBSb3V0ZXJFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuXG5pbXBvcnQgeyBjb25zdW1lRXZlbnQgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2V1aS1tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV1aU1lbnVJdGVtIH0gZnJvbSAnQGV1aS9iYXNlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oRXVpTWVudUl0ZW1Db21wb25lbnQpIGZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8RXVpTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmdldENzc0NsYXNzZXMoJ2V1aS1tZW51JyksXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID8gJ2V1aS1tZW51LS1jb2xsYXBzZWQnIDogJycsXG4gICAgICAgICAgICAhdGhpcy5oYXNJY29ucyA/ICdldWktbWVudS0tbm8taWNvbnMnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRmxhdCA/ICdldWktbWVudS0tZmxhdCc6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXRlbXM6IEV1aU1lbnVJdGVtW107XG4gICAgQElucHV0KCkgc2VhcmNoRmlsdGVyTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBleHRlcm5hbExpbmtMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZyYWdtZW50SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBmaWx0ZXJWYWx1ZSA9ICcnO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0NvbGxhcHNlZEluaXRpYWxzID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0ZpbHRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNJY29ucyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUb29sdGlwID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV4cGFuZEFsbEl0ZW1zID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRmxhdCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNTY3JvbGxUb0l0ZW0gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEV1aU1lbnVJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+KCk7XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBpdGVtc1N0YXRlOiBhbnlbXTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZm9jdXNLZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8RXVpTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgYmFzZVN0YXRlc0RpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIGZpbmRzIGZpcnN0IGNoaWxkIHdoZW4gQXJyb3dEb3duXG4gICAgICAgIGNvbnN0IGZpcnN0Q2hpbGQgPSB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmNoaWxkcmVuPyB0aGlzLmZpbmRGaXJzdEZpbHRlcmVkSXRlbSh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmNoaWxkcmVuKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVJdGVtID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShmaXJzdENoaWxkKTtcbiAgICAgICAgLy8gZmluZHMgdGhlIHBhcmVudCBlbGVtZW50XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0ucGFyZW50O1xuICAgICAgICBjb25zdCBwYXJlbnRGb2N1c2FibGVJdGVtID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShwYXJlbnQpO1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnRW50ZXInOiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5pc0xpbmtJdGVtIHx8IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaXNVcmxJdGVtKSAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5hY3Rpb25JY29uKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FjdGlvbkljb25Gb2N1c1N0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8ub25FeHBhbmRUb2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uYWN0aW9uSWNvbil7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBY3Rpb25JY29uRm9jdXNTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5vbkV4cGFuZFRvZ2dsZShldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4gJiYgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICAvL2ZvY3VzZXMgZmlyc3QgY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGVJdGVtPy5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGZpcnN0Rm9jdXNhYmxlSXRlbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmluZHMgbGFzdCBmaWx0ZXJlZCBjaGlsZCB3aGVuIEFycm93RG93biBhbmQgbmF2aWdhdGluZyB3aXRoaW4gc3VibWVudVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyhwYXJlbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IChmaWx0ZXJlZENoaWxkcmVuPy5sZW5ndGgpIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdENoaWxkID0gZmlsdGVyZWRDaGlsZHJlbltsYXN0Q2hpbGRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVJdGVtID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShsYXN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgYWN0aXZlIGl0ZW0gaXMgdGhlIGxhc3QgY2hpbGQsIHB1dHMgdGhlIGZvY3VzIG9uIHRoZSBuZXh0IHBhcmVudFxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtID09PSBsYXN0Rm9jdXNhYmxlSXRlbSl7XG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0ocGFyZW50Rm9jdXNhYmxlSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldE5leHRJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCArMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBza2lwcyByZW1haW5pbmcgY2hpbGRlbiBpbiB0aGUgcXVlcnkgbGlzdCB3aGVuIHRoZXJlIGlzIGV4cGFuZGVkIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2tpcFByZWRpY2F0ZShtZW51SXRlbSA9PiBtZW51SXRlbS5wYXJlbnQgIT0gdW5kZWZpbmVkIHx8IG1lbnVJdGVtLml0ZW0udmlzaWJsZSA9PT0gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZpbmRzIGZpcnN0IGZpbHRlcmVkIGNoaWxkIHdoZW4gQXJyb3dVcFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyhwYXJlbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENoaWxkVXAgPSBmaWx0ZXJlZENoaWxkcmVuWycwJ11cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVJdGVtVXAgPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGZpcnN0Q2hpbGRVcCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gbmF2aWdhdGluZyB1cCBvbiBhIHN1Ym1lbnUgZm9jdXNlcyB0aGUgcGFyZW50IGlmIHRoZSBhY3RpdmUgaXRlbSBpcyB0aGUgZmlyc3QgY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbSA9PT0gZmlyc3RGb2N1c2FibGVJdGVtVXApe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShwYXJlbnRGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCAtMSk7XG4gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBuYXZpZ2F0aW5nIHVwIGZyb20gYSBwYXJlbnQgZWxlbWVudCB0byBhbiBleHBhbmRlZCBzdWJtZW51LCBmaW5kcyB0aGUgbGFzdCBjaGlsZCBhbmQgZm9jdXNlcyBpdFxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmNoaWxkcmVuICYmIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uZXhwYW5kZWQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmluZEZpbHRlcmVkSXRlbXModGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleFVwID0gKGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoKSAtIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlSXRlbVVwID10aGlzLmZpbmRGb2N1c2FibGVJdGVtKGZpbHRlcmVkQ2hpbGRyZW5bbGFzdENoaWxkSW5kZXhVcF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShsYXN0Rm9jdXNhYmxlSXRlbVVwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5pdGVtcykge1xuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuY29uZmlndXJlSXRlbXModGhpcy5pdGVtcyk7XG4gICAgICAgICAgICAvLyBnZXQgY3VycmVudCB1cmxcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgICAgICAvLyBmaW5kIGFuIGl0ZW0gdGhhdCBtYXRjaGVzIHRoZSBjdXJyZW50IHVybCBvciB0aGUgbW9zdCByZWxldmFudCBvbmVcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRNb3N0UmVsZXZhbnRJdGVtKGN1cnJlbnRVcmwsIHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgLy8gZXhwYW5kIHRvIHRoYXQgaXRlbVxuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZFRvR2l2ZW5JdGVtKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhwYW5kIC8gQ29sbGFwc2UgQWxsIGl0ZW1zXG4gICAgICAgIGlmIChjaGFuZ2VzLmV4cGFuZEFsbEl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZXRFeHBhbmRlZFRvQWxsSXRlbXMoY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXMuZXhwYW5kQWxsSXRlbXMuY3VycmVudFZhbHVlKSwgdGhpcy5pdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5maWx0ZXJWYWx1ZSAmJiB0aGlzLmhhc0ZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5vbkZpbHRlcihjaGFuZ2VzLmZpbHRlclZhbHVlLmN1cnJlbnRWYWx1ZSA/PyAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWZyZXNoIHdoZW4gaW50ZXJhY3RpdmUgY29sbGFwc2VkIHRvIGluaXRpYWxzXG4gICAgICAgIGlmIChjaGFuZ2VzLmhhc0NvbGxhcHNlZEluaXRpYWxzKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0NvbGxhcHNlZEluaXRpYWxzID0gY2hhbmdlcy5oYXNDb2xsYXBzZWRJbml0aWFscy5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5jb25maWd1cmVJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBMYWJlbHMgZGVmYXVsdCB2YWx1ZXMgLSBUT0RPIDogdHJhbnNsYXRpb25zXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hGaWx0ZXJMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hGaWx0ZXJMYWJlbCA9ICdTZWFyY2ggZmlsdGVyJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRJc1Zpc2libGVJblZpZXdwb3J0ID0gKGVsLCBwYXJ0aWFsbHlWaXNpYmxlID0gZmFsc2UpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0IH0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGggfSA9IHdpbmRvdztcbiAgICAgICAgICAgIHJldHVybiBwYXJ0aWFsbHlWaXNpYmxlXG4gICAgICAgICAgICA/ICgodG9wID4gMCAmJiB0b3AgPCBpbm5lckhlaWdodCkgfHxcbiAgICAgICAgICAgIChib3R0b20gPiAwICYmIGJvdHRvbSA8IGlubmVySGVpZ2h0KSkgJiZcbiAgICAgICAgICAgICgobGVmdCA+IDAgJiYgbGVmdCA8IGlubmVyV2lkdGgpIHx8IChyaWdodCA+IDAgJiYgcmlnaHQgPCBpbm5lcldpZHRoKSlcbiAgICAgICAgICAgIDogdG9wID49IDAgJiYgbGVmdCA+PSAwICYmIGJvdHRvbSA8PSBpbm5lckhlaWdodCAmJiByaWdodCA8PSBpbm5lcldpZHRoO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHN1YnNjcmlwdGlvbiB0byByb3V0ZXMgdXJsIGNoYW5nZXMgZm9yIGFjdGl2YXRpbmcgdGhlIHNjcm9sbEludG9WaWV3IChvcHRpb25hbClcbiAgICAgICAgaWYgKHRoaXMuaGFzU2Nyb2xsVG9JdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZE1vc3RSZWxldmFudEl0ZW0oZXZlbnQudXJsLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZWxlbWVudElzVmlzaWJsZUluVmlld3BvcnQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBpbnN0YW50aWF0ZXMgRm9jdXNLZXlNYW5hZ2VyIHdpdGggdGhlIHF1ZXJ5IGxpc3Qgb2YgaXRlbXMgZW5hYmxpbmcgd3JhcHBpbmdcbiAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMuZm9jdXNhYmxlSXRlbXMpLndpdGhXcmFwKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTp2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2soaXRlbTogRXVpTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS51cmxFeHRlcm5hbCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGl0ZW0udXJsRXh0ZXJuYWwsIGl0ZW0udXJsRXh0ZXJuYWxUYXJnZXQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnVybCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnVybF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgZnJhZ21lbnQ6IHRoaXMuZnJhZ21lbnRJZCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtLmNvbW1hbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkV4cGFuZFRvZ2dsZShpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLmxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcz8ubWFwKChpdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNDbGljay5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLml0ZW1DbGljay5lbWl0KGl0ZW0pO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShpdGVtKTtcbiAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShmb2N1c2VkSXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwYW5kVG9nZ2xlKGl0ZW06IEV1aU1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlZChpdGVtLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIHdoeSB0aGUgYWJvdmUgaXMgbmVlZGVkLiBDYW4gaXQgYmUgc2ltcGx5IFwiaXRlbS5leHBhbmRlZCA9ICFpdGVtLmV4cGFuZGVkO1wiID9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVGaWx0ZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbHRlcihldmVudDogRXZlbnQpXG4gICAgcHVibGljIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcpXG4gICAgcHVibGljIG9uRmlsdGVyKGV2ZW50T3JWYWx1ZTogRXZlbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudE9yVmFsdWUgaW5zdGFuY2VvZiBFdmVudFxuICAgICAgICAgICAgPyAoZXZlbnRPclZhbHVlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZVxuICAgICAgICAgICAgOiBldmVudE9yVmFsdWU7XG4gICAgICAgIHRoaXMuX29uVG9nZ2xlRXhwYW5kQWxsSXRlbXModmFsdWUgPyB0cnVlIDogZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmZpbHRlck1lbnVJdGVtcyh0aGlzLml0ZW1zLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25Ub2dnbGVFeHBhbmRBbGxJdGVtcyhzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZXRFeHBhbmRlZFRvQWxsSXRlbXMoc3RhdGUsIHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbmRzIHRoZSBFdWlNZW51SXRlbUNvbXBvbmVudCBpbiB0aGUgcXVlcmllZCBmb2N1c2FibGVJdGVtc1tdIHRoYXQgIG1hdGNoZXMgdGhlIHBhc3NlZCBFdWlNZW51SXRlbSBvYmplY3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZW51SXRlbSBhbiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRm9jdXNhYmxlSXRlbShtZW51SXRlbTogRXVpTWVudUl0ZW0gKTogRXVpTWVudUl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtcy5maW5kKFxuICAgICAgICAgICAgKGZvY3VzYWJsZUl0ZW0pID0+IGZvY3VzYWJsZUl0ZW0uaXRlbS5sYWJlbCA9PT0gbWVudUl0ZW0/LmxhYmVsICYmIGZvY3VzYWJsZUl0ZW0uaXRlbS5pZCA9PT0gbWVudUl0ZW0uaWQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmluZHMgdGhlIGZpcnN0IGl0ZW0gdGhhdCBpcyBmaWx0ZXJlZFxuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRmlyc3RGaWx0ZXJlZEl0ZW0obWVudUl0ZW1zOiBFdWlNZW51SXRlbSBbXSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmZpbHRlcmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaW5kcyBhbGwgZmlsdGVyZWQgbWVudSBpdGVtc1xuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRmlsdGVyZWRJdGVtcyhtZW51SXRlbXM6IEV1aU1lbnVJdGVtIFtdKTogRXVpTWVudUl0ZW0gW10ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zLmZpbHRlcigoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVja3MgdGhlIGZvY3VzIHN0YXRlIG9mIHRoZSBhY3Rpb24gaWNvblxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrQWN0aW9uSWNvbkZvY3VzU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBhY3Rpb24gaWNvbiBpcyBmb2N1c2VkIGFuZCBpZiBub3QgZm9jdXMgaXQsIG90aGVyd2lzZSBmb2N1cyB0aGUgYWN0aXZlIGl0ZW1cbiAgICAgICAgIXRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaXNBY3Rpb25JY29uRm9jdXNlZCA/IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXNBY3Rpb25JY29uKCkgOiB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmlsdGVyIGFsbCBtZW51IGl0ZW1zIGdpdmVuIGEgdmFsdWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZW51SXRlbXMgYW4gYXJyYXkgb2YgbWVudSBpdGVtc1xuICAgICAqIEBwYXJhbSBmaWx0ZXJWYWx1ZSB0aGUgdmFsdWUgdG8gZmlsdGVyIG1lbnUgaXRlbXNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmlsdGVyTWVudUl0ZW1zKG1lbnVJdGVtczogRXVpTWVudUl0ZW1bXSwgZmlsdGVyVmFsdWU6IHN0cmluZyk6IEV1aU1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zPy5tYXAoKGl0ZW06IEV1aU1lbnVJdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZmlsdGVyTWVudUl0ZW1zKGl0ZW0uY2hpbGRyZW4sIGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbHRlcmVkID0gaXRlbS5jaGlsZHJlbi5maWx0ZXIoKGwpID0+IGxbJ2ZpbHRlcmVkJ10gPT09IHRydWUpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJlZCA9IGZvdW5kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbHRlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwYW5kIC8gY29sbGFwc2UgYWxsIGl0ZW1zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNFeHBhbmRlZFxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRFeHBhbmRlZFRvQWxsSXRlbXMoaXNFeHBhbmRlZCwgaXRlbXM6IEV1aU1lbnVJdGVtW10pOiBFdWlNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5leHBhbmRlZCA9IGlzRXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuc2V0RXhwYW5kZWRUb0FsbEl0ZW1zKGlzRXhwYW5kZWQsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaXRlbSwgeyB2aXNpYmxlOiBpdGVtLnZpc2libGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBpdGVtLnZpc2libGUgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4cGFuZCAvIGNvbGxhcHNlIGEgbWVudSBpdGVtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB3aGVyZSB0aGUgXCJleHBhbmRcIiBoYWQgYmVlbiB0b2dnbGVkXG4gICAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtcyBsaXN0ICh1c2VkIGZvciByZWN1cnNpb24pXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uRXhwYW5kVG9nZ2xlZChpdGVtOiBFdWlNZW51SXRlbSwgaXRlbXM6IEV1aU1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbUlkeCA9IGl0ZW1zPy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoaXRlbUlkeCA+IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1tpdGVtSWR4XS5leHBhbmRlZCA9ICFpdGVtc1tpdGVtSWR4XS5leHBhbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlZChpdGVtLCBpLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbmZpZ3VyZSBhbiBhcnJheSBvZiBpdGVtcyB3aXRoIHZpc2libGUsIGZpbHRlcmVkIGFuZCBleHBhbmQgKGluIGNhc2Ugb2YgZXhwYW5kQWxsSXRlbXMgZmxhZyBlbmFibGVkKSBwcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgRXVpTWVudUl0ZW1cbiAgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBwYXJlbnQgaXRlbSBvZiBpdGVtcyBpZiBleGlzdHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY29uZmlndXJlSXRlbXMoaXRlbXM6IEV1aU1lbnVJdGVtW10sIHBhcmVudD86IEV1aU1lbnVJdGVtKTogRXVpTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBpdGVtcz8ubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAvLyByZWN1cnNpb24gaW4gY2FzZSB0aGVyZSBhcmUgY2hpbGRyZW5cbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuY29uZmlndXJlSXRlbXMoaXRlbS5jaGlsZHJlbiwgaXRlbSk7XG4gICAgICAgICAgICAgICAgLy8gZXhwYW5kIGFsbCBwYXJlbnRzIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5leHBhbmRBbGxJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBwb2ludCB0byB0aGUgcGFyZW50XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXRlbS5pZCAmJiB0aGlzLmhhc1Njcm9sbFRvSXRlbSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uaWQgPSB1dWlkLnY0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsICYmIHRoaXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3b3JkcyA9IGl0ZW0ubGFiZWwuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAod29yZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaW5pdGlhbHMgPSBgJHtpdGVtLmxhYmVsLnN1YnN0cmluZygwLCAxKX0ke2l0ZW0ubGFiZWwuc3Vic3RyaW5nKDEsIDEpfWA7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmluaXRpYWxzID0gYCR7d29yZHNbMF0uc3Vic3RyaW5nKDAsIDEpfSR7d29yZHNbMV0uc3Vic3RyaW5nKDAsIDEpfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpdGVtLCB7IHZpc2libGU6IGl0ZW0udmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGl0ZW0udmlzaWJsZSwgZmlsdGVyZWQ6IHRydWUgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgVVJMIGFuZCBhIGxpc3Qgb2YgaXRlbXMsIGl0IHdpbGwgZXhwYW5kIHRoZSBpdGVtIHRoYXQgbWF0Y2hlcyB0aGUgVVJMLiBJZiBub3QgaXRlbSBtYXRjaGVzIGV4YWN0bHkgdGhlIHVybCwgdGhlbiBpdCB3aWxsXG4gICAgICogbWF0Y2ggdGhlIGl0ZW0gdGhhdCBpcyBtb3N0IHJlbGV2YW50IHRvIHRoYXQgdXJsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRNb3N0UmVsZXZhbnRJdGVtKHVybDogc3RyaW5nLCBpdGVtczogRXVpTWVudUl0ZW1bXSwgcmVsZXZhbnRJdGVtPzogRXVpTWVudUl0ZW0pOiBFdWlNZW51SXRlbSB7XG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0udXJsICYmIHVybC5pbmRleE9mKGl0ZW0udXJsLnN1YnN0cigxKSkgPiAtMSkge1xuICAgICAgICAgICAgICAgIHJlbGV2YW50SXRlbSA9IHRoaXMuZ2V0TW9zdFJlbGV2YW50SXRlbSh1cmwsIHJlbGV2YW50SXRlbSwgaXRlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcmVsZXZhbnRJdGVtID0gdGhpcy5maW5kTW9zdFJlbGV2YW50SXRlbSh1cmwsIGl0ZW0uY2hpbGRyZW4sIHJlbGV2YW50SXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZWxldmFudEl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gdHdvIGl0ZW1zIHdpdGggdXJsIHJldHVybiB0aGUgb25lIHdpdGggdGhlIG1vc3QgcmVsZXZhbnQgdXJsIHRoYXQgbWF0Y2hlcyBnaXZlbiB1cmxcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cmwgQSBVUkwgdG8gYmUgbWF0Y2hlZCB3aXRoIHRoZSBvbmUgb2YgZ2l2ZW4gaXRlbXNcbiAgICAgKiBAcGFyYW0gaXRlbTFcbiAgICAgKiBAcGFyYW0gaXRlbTJcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TW9zdFJlbGV2YW50SXRlbSh1cmw6IHN0cmluZywgaXRlbTE6IEV1aU1lbnVJdGVtLCBpdGVtMjogRXVpTWVudUl0ZW0pOiBFdWlNZW51SXRlbSB7XG4gICAgICAgIGNvbnN0IHJlbWFpbmRlcjEgPSB1cmwucmVwbGFjZShpdGVtMT8udXJsIHx8ICcnLCAnJyk7XG4gICAgICAgIGNvbnN0IHJlbWFpbmRlcjIgPSB1cmwucmVwbGFjZShpdGVtMj8udXJsIHx8ICcnLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIHJlbWFpbmRlcjEubGVuZ3RoIDwgcmVtYWluZGVyMi5sZW5ndGggPyBpdGVtMSA6IGl0ZW0yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGFuIGl0ZW0sIGlmIHRoZXJlJ3MgYSBwYXJlbnQgZXhwYW5kIGl0IHVudGlsIHlvdSByZWFjaCB0aGUgcm9vdCBpdGVtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSBHaXZlbiBtZW51IGl0ZW1cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZXhwYW5kVG9HaXZlbkl0ZW0oaXRlbTogRXVpTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IChpdGVtLnBhcmVudC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kVG9HaXZlbkl0ZW0oaXRlbS5wYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmIChoYXNGaWx0ZXIgJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgPGRpdiBjbGFzcz1cImV1aS1tZW51LWZpbHRlclwiIChjbGljayk9XCJvbk1lbnVGaWx0ZXJDbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxldWktaWNvbi1pbnB1dD5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1zZWFyY2hcIiBmaWxsQ29sb3I9XCJuZXV0cmFsLWxpZ2h0ZXJcIiBhcmlhLWxhYmVsPVwiU2VhcmNoIEljb25cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGV1aUlucHV0VGV4dFxuICAgICAgICAgICAgICAgIFtldWlDbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWFyY2hGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbHRlclZhbHVlXCIgLz5cbiAgICAgICAgPC9ldWktaWNvbi1pbnB1dD5cbiAgICA8L2Rpdj5cbn1cblxuPHVsIGV1aUxpc3QgY2xhc3M9XCJldWktbWVudVwiIHJvbGU9XCJtZW51YmFyXCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICBAaWYgKGl0ZW1zKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBsZXQtaW5kZXggW25nRm9yT2ZdPVwiaXRlbXNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbVRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgbWVudUl0ZW06IGl0ZW0sIGluZGV4OiBpbmRleCB9XCI+IDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLW1lbnUtLW5vLWl0ZW1zXCI+Tm8gbWVudSBpdGVtcyBkZWZpbmVkPC9zcGFuPlxuICAgIH1cbjwvdWw+XG5cbjwhLS0gZGVzY3JpYmUgdGhlIHJlY3Vyc2l2ZSB0ZW1wbGF0ZSBvZiB0aGUgbWVudSBpdGVtIC0tPlxuPG5nLXRlbXBsYXRlICNtZW51SXRlbVRlbXBsYXRlUmVmIGxldC1pdGVtPVwibWVudUl0ZW1cIiBsZXQtcGFyZW50PVwicGFyZW50XCIgbGV0LWk9XCJpbmRleFwiPlxuICAgIDwhLS0gcmVuZGVyIHRoZSBtZW51IGl0ZW0tLT5cbiAgICA8ZXVpLW1lbnUtaXRlbVxuICAgICAgICAqbmdJZj1cIml0ZW0uZmlsdGVyZWRcIlxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgW3BhcmVudF09XCJwYXJlbnRcIlxuICAgICAgICBbaGFzSWNvbl09XCJoYXNJY29uc1wiXG4gICAgICAgIFtoYXNUb29sdGlwXT1cImhhc1Rvb2x0aXBcIlxuICAgICAgICBbaXNDb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICBbaGFzQ29sbGFwc2VkSW5pdGlhbHNdPVwiaGFzQ29sbGFwc2VkSW5pdGlhbHNcIlxuICAgICAgICAoZXhwYW5kVG9nZ2xlKT1cIm9uRXhwYW5kVG9nZ2xlKCRldmVudClcIlxuICAgICAgICAoaXRlbUNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8IS0tIGlmIHRoZSBtZW51IGl0ZW0gaGFzIGNoaWxkcmVuLCByZW5kZXIgdGhlIGNoaWxkcmVuIC0tPlxuICAgICAgICA8dWwgZXVpTGlzdCAqbmdJZj1cIml0ZW0uY2hpbGRyZW4gJiYgaXRlbS5leHBhbmRlZFwiIGNsYXNzPVwiZXVpLW1lbnUgZXVpLW1lbnUtc3ViXCIgcm9sZT1cIm1lbnVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyBsZXQgY2hpbGRJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBtZW51SXRlbTogY2hpbGQsIGluZGV4OiBjaGlsZEluZGV4LCBwYXJlbnQ6IGl0ZW0gfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L2V1aS1tZW51LWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -13,7 +13,6 @@ export class EuiSidebarMenuComponent {
|
|
13
13
|
this.hasIcons = false;
|
14
14
|
this.hasTooltip = false;
|
15
15
|
this.expandAllItems = false;
|
16
|
-
this.hasLowercaseItems = false;
|
17
16
|
this.style = '';
|
18
17
|
this.filterValue = '';
|
19
18
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
@@ -35,11 +34,11 @@ export class EuiSidebarMenuComponent {
|
|
35
34
|
this.isCollapsed = event;
|
36
35
|
}
|
37
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiSidebarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.6", type: EuiSidebarMenuComponent, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute],
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.6", type: EuiSidebarMenuComponent, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], style: "style", fragmentId: "fragmentId", searchFilterLabel: "searchFilterLabel", externalTarget: "externalTarget", filterValue: "filterValue" }, outputs: { menuClick: "menuClick", itemClick: "itemClick" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}.eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu__content{box-shadow:0 8px 10px #b7c0ce33;display:flex;flex-direction:column;height:100%;margin-bottom:var(--eui-s-xs);overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-menu-item .eui-menu-item__link{min-height:calc(2.25 * var(--eui-s-m))}\n"], dependencies: [{ kind: "component", type: i1.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "expandAllItems", "isFlat", "hasScrollToItem"], outputs: ["isClick", "itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
39
38
|
}
|
40
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiSidebarMenuComponent, decorators: [{
|
41
40
|
type: Component,
|
42
|
-
args: [{ selector: 'eui-sidebar-menu', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [
|
41
|
+
args: [{ selector: 'eui-sidebar-menu', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}.eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu__content{box-shadow:0 8px 10px #b7c0ce33;display:flex;flex-direction:column;height:100%;margin-bottom:var(--eui-s-xs);overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-menu-item .eui-menu-item__link{min-height:calc(2.25 * var(--eui-s-m))}\n"] }]
|
43
42
|
}], propDecorators: { string: [{
|
44
43
|
type: HostBinding,
|
45
44
|
args: ['class']
|
@@ -63,9 +62,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
|
|
63
62
|
}], expandAllItems: [{
|
64
63
|
type: Input,
|
65
64
|
args: [{ transform: booleanAttribute }]
|
66
|
-
}], hasLowercaseItems: [{
|
67
|
-
type: Input,
|
68
|
-
args: [{ transform: booleanAttribute }]
|
69
65
|
}], style: [{
|
70
66
|
type: Input
|
71
67
|
}], fragmentId: [{
|
@@ -81,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
|
|
81
77
|
}], itemClick: [{
|
82
78
|
type: Output
|
83
79
|
}] } });
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXNpZGViYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktc2lkZWJhci1tZW51L2V1aS1zaWRlYmFyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXNpZGViYXItbWVudS9ldWktc2lkZWJhci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVbEosTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVEwQixXQUFNLEdBQUcsa0JBQWtCLENBQUM7UUFFbEQsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNyRCxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWEseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXRELFVBQUssR0FBRyxFQUFFLENBQUM7UUFJWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixtSEFBbUg7UUFDbkgsbUdBQW1HO1FBQ3pGLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxjQUFTLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7S0FpQnZFO0lBZlUsaUJBQWlCLENBQUMsSUFBaUI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDdkQsYUFBYSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDdkQsZUFBZSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztxSEF0Q1EsdUJBQXVCO3lHQUF2Qix1QkFBdUIsaUlBT1osZ0JBQWdCLCtDQUNoQixnQkFBZ0IseUNBQ2hCLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLDRDQUNoQixnQkFBZ0Isd0RBQ2hCLGdCQUFnQiw0UkN0QnhDLDR3QkFrQkE7O2tHRFJhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsT0FBTyxpQkFDakMsaUJBQWlCLENBQUMsSUFBSTs4QkFHZixNQUFNO3NCQUEzQixXQUFXO3VCQUFDLE9BQU87Z0JBSVgsS0FBSztzQkFBYixLQUFLO2dCQUVrQyxvQkFBb0I7c0JBQTNELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdFbmNhcHN1bGF0aW9uLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdWlNZW51SXRlbSB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXNpZGViYXItbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1zaWRlYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL19zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpU2lkZWJhck1lbnVDb21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXNpZGViYXItbWVudSc7XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBASW5wdXQoKSBpdGVtczogYW55W10gPSBbXTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNDb2xsYXBzZWRJbml0aWFscyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNGaWx0ZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzSWNvbnMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVG9vbHRpcCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBleHBhbmRBbGxJdGVtcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc3R5bGUgPSAnJztcbiAgICBASW5wdXQoKSBmcmFnbWVudElkOiBzdHJpbmc7IC8vIEFuY2hvciB0byBuYXZpZ2F0ZSB0byAoc2VlIGV1aS1tZW51KVxuICAgIEBJbnB1dCgpIHNlYXJjaEZpbHRlckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0ZXJuYWxUYXJnZXQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBmaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSwgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBAT3V0cHV0KCkgbWVudUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIG9uTWVudUl0ZW1DbGlja2VkKGl0ZW06IEV1aU1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIG9uTWVudUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVDbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgb25NZW51Q29sbGFwc2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGV2ZW50O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJldWktc2lkZWJhci1tZW51X19jb250YWluZXJcIiBbY2xhc3MuZXVpLXNpZGViYXItbWVudV9fY29udGFpbmVyLS1jb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIiBbc3R5bGVdPVwic3R5bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXNpZGViYXItbWVudV9fY29udGVudFwiPlxuICAgICAgICA8ZXVpLW1lbnVcbiAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICBbaGFzRmlsdGVyXT1cImhhc0ZpbHRlclwiXG4gICAgICAgICAgICBbaGFzSWNvbnNdPVwiaGFzSWNvbnNcIlxuICAgICAgICAgICAgW2hhc1Rvb2x0aXBdPVwiaGFzVG9vbHRpcFwiXG4gICAgICAgICAgICBbaXNDb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgW2hhc0NvbGxhcHNlZEluaXRpYWxzXT1cImhhc0NvbGxhcHNlZEluaXRpYWxzXCJcbiAgICAgICAgICAgIFtleHBhbmRBbGxJdGVtc109XCJleHBhbmRBbGxJdGVtc1wiXG4gICAgICAgICAgICBbZnJhZ21lbnRJZF09XCJmcmFnbWVudElkXCJcbiAgICAgICAgICAgIFtzZWFyY2hGaWx0ZXJMYWJlbF09XCJzZWFyY2hGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICBbZmlsdGVyVmFsdWVdPVwiZmlsdGVyVmFsdWVcIlxuICAgICAgICAgICAgKGlzQ2xpY2spPVwib25NZW51Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25NZW51SXRlbUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L2V1aS1tZW51PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|