@eui/components 16.2.12-snapshot-1708517991522 → 16.2.12

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.
@@ -330,11 +330,11 @@ export class EuiTabsComponent {
330
330
  this.cd.detectChanges();
331
331
  }
332
332
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
333
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiTabsComponent, selector: "eui-tabs", inputs: { styleClass: "styleClass", tabs: "tabs", activeTabIndex: "activeTabIndex", e2eAttr: "e2eAttr", pathMatch: "pathMatch", isMainNavigation: "isMainNavigation", isHandleChangeTab: "isHandleChangeTab", isSubTabs: "isSubTabs", isVerticalTabs: "isVerticalTabs" }, outputs: { tabClosed: "tabClosed", tabSelected: "tabSelected", tabClose: "tabClose", tabSelect: "tabSelect" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(function () { return EuiTabComponent; }) }], viewQueries: [{ propertyName: "euiTabsItems", first: true, predicate: ["euiTabsItems"], descendants: true }, { propertyName: "euiTabsItemsWrapper", first: true, predicate: ["euiTabsItemsWrapper"], descendants: true }, { propertyName: "host", first: true, predicate: ["host"], descendants: true }, { propertyName: "euiTabLabelItems", predicate: ["euiTabLabelItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\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: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "content", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "directive", type: i8.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
333
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiTabsComponent, selector: "eui-tabs", inputs: { styleClass: "styleClass", tabs: "tabs", activeTabIndex: "activeTabIndex", e2eAttr: "e2eAttr", pathMatch: "pathMatch", isMainNavigation: "isMainNavigation", isHandleChangeTab: "isHandleChangeTab", isSubTabs: "isSubTabs", isVerticalTabs: "isVerticalTabs" }, outputs: { tabClosed: "tabClosed", tabSelected: "tabSelected", tabClose: "tabClose", tabSelect: "tabSelect" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(function () { return EuiTabComponent; }) }], viewQueries: [{ propertyName: "euiTabsItems", first: true, predicate: ["euiTabsItems"], descendants: true }, { propertyName: "euiTabsItemsWrapper", first: true, predicate: ["euiTabsItemsWrapper"], descendants: true }, { propertyName: "host", first: true, predicate: ["host"], descendants: true }, { propertyName: "euiTabLabelItems", predicate: ["euiTabLabelItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\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: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "content", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "directive", type: i8.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
334
334
  }
335
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiTabsComponent, decorators: [{
336
336
  type: Component,
337
- args: [{ selector: 'eui-tabs', encapsulation: ViewEncapsulation.None, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\n"] }]
337
+ args: [{ selector: 'eui-tabs', encapsulation: ViewEncapsulation.None, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\n"] }]
338
338
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.AnimationBuilder }]; }, propDecorators: { styleClass: [{
339
339
  type: Input
340
340
  }], tabs: [{
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
395
395
  type: HostBinding,
396
396
  args: ['class']
397
397
  }] } });
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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QU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRXFFLEtBQUs7c0JBQWhGLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFDYixnQkFBZ0I7c0JBQTVFLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDUyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNiLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFRYixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixjQUFjO3NCQURqQixLQUFLO2dCQXFJTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtON0Msb0JBQW9CO0FBRXBCLE1BQU0sT0FBTywrQkFBK0I7SUFENUM7UUFFMEIsaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztLQUMxRTtrSUFGWSwrQkFBK0I7c0hBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRTs4QkFFcEIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25GYWN0b3J5LCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICcuL2V1aS10YWIvZXVpLXRhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRhYnM6IEV1aVRhYkNvbXBvbmVudFtdID0gW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiSW5kZXggPSBudWxsO1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVGFiQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX3RhYnM6IFF1ZXJ5TGlzdDxFdWlUYWJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hvc3QnKSBob3N0OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc01haW5OYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNYWluTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGlzTWFpbk5hdmlnYXRpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc01haW5OYXZpZ2F0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2hhbmdlVGFiKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWI7XG4gICAgfVxuICAgIHNldCBpc0hhbmRsZUNoYW5nZVRhYih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2hhbmdlVGFiID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDaGFuZ2VUYWIgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1N1YlRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N1YlRhYnM7XG4gICAgfVxuICAgIHNldCBpc1N1YlRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1N1YlRhYnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1ZlcnRpY2FsVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxUYWJzO1xuICAgIH1cbiAgICBzZXQgaXNWZXJ0aWNhbFRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzVmVydGljYWxUYWJzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBzdGVwTW92ZSA9IDQwMDtcbiAgICAvKipcbiAgICAgKiBGb3IgcmFjZSBjb25kaXRpb24gcmVhc29uLCB0aGUgd3JhcHBlciB3aWR0aCBpcyBub3QgY29ycmVjdGx5IGNhbGN1bGF0ZWQgd2hlbiB0aGUgY29tcG9uZW50IHBhc3NlcyBmcm9tIG5vLXNjcm9sbCBzdGF0ZSB0byBzY3JvbGxcbiAgICAgKiBzdGF0ZS4gVG8gZml4IHRoaXMgaXNzdWUsIHdlIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdldFNjcm9sbGluZ1N0YXR1cyBtZXRob2QgaXMgY2FsbGVkLlxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMTogVGhlIG51bWJlciBvZiB0YWJzIGRvZXMgbm90IHJlcXVpcmUgYW55IHNjcm9sbDpcbiAgICAgKiAtIFdpdGhvdXQgYW55IGZpeCB0aGUgc2Nyb2xsIHdpbGwgaGF2ZSBhIGRlbHRhIG9mIDY0IGF0IHRoZSBmaXJzdCBhY3RpdmF0aW9uLCB0aGVuIG9uIHRoZSBmaXJzdCBuby1zY3JvbGwgdG8gc2Nyb2xsIHN0YXRlLFxuICAgICAqIC0gd2UgaGFkIDY0IHRvIHRoZSBtb3ZlXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAyOiBUaGUgbnVtYmVyIG9mIHRhYnMgcmVxdWlyZXMgYSBzY3JvbGw6XG4gICAgICogLSBJbiB0aGlzIGNhc2UgdGhlIHdyYXBwZXIgd2lkdGggaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRkIHRoZSBkZWx0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2Nyb2xsaW5nQ291bnQgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHsgdXJsOiB0aGlzLnJvdXRlci51cmwgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFic1dpdGhVcmwgPSB0aGlzLnRhYnMuZmlsdGVyKCh0KSA9PiB0LnVybCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YWJzV2l0aFVybC5sZW5ndGggPT09IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4gZS51cmwgPT09IHQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJzV2l0aFVybC5maW5kSW5kZXgoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHQudXJsICsgJygvPyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZS51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID09PSBpID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEgPyB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9MZWZ0KCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgKyB0aGlzLnN0ZXBNb3ZlO1xuICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub1JpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCAtIHRoaXMuc3RlcE1vdmU7XG5cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIYW5kbGVDaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudGFic1tpbmRleF0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYiAmJiAhdGhpcy5pc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWIpICYmICF0aGlzLmlzVmVydGljYWxUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNldFdpZHRoICs9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IGNvbnRhaW5lcldpZHRoIC8gMiAtIHN1YnNldFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3RlZC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25LZXlVcChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09ICdFbnRlcicgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLm1hcCgodCwgaSkgPT4gKGkgPT09IGluZGV4ID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWQuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGNsb3NlVGFiKGluZGV4OiBudW1iZXIsIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbaW5kZXhdO1xuICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0uaXNIYW5kbGVDbG9zZU9uQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZS5pbmRleCk7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYkNsb3NlZC5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgdGhpcy50YWJDbG9zZS5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHRhYiBwYXNzIGluIHBhcmFtZXRlci5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktdGFicyAjdGFicz5cbiAgICAgKiAgICAgPGV1aS10YWIgaXNDbG9zYWJsZSBpc0hhbmRsZUNsb3NlT25DbG9zZT5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWxhYmVsPlRhYiBsYWJlbDwvZXVpLXRhYi1sYWJlbD5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWNvbnRlbnQ+VGFiIGNvbnRlbnQ8L2V1aS10YWItY29udGVudD5cbiAgICAgKiAgICAgPC9ldWktdGFiPlxuICAgICAqIDwvZXVpLXRhYnM+XG4gICAgICogYGBgXG4gICAgICogLi4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudGFicy5jbG9zZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBjbG9zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaXNpYmxlSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnRhYnNbaW5kZXggLSAxXSk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1Zpc2libGVJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYigwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIocHJldmlvdXNWaXNpYmxlSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLmFjdGl2ZVRhYkluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYjogSFRNTERpdkVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICByZXR1cm4gYWN0aXZlVGFiLm9mZnNldExlZnQgLSA0OCA+IDAgJiYgYWN0aXZlVGFiLm9mZnNldExlZnQgKyBhY3RpdmVUYWIuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCAtIDQ4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2Nyb2xsVG8oc2Nyb2xsVG86IG51bWJlciwgaXNBbmltYXRlZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICBjb25zdCB0aW1pbmdzID0gaXNBbmltYXRlZCA/ICc1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknIDogMDtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uOiBBbmltYXRpb25GYWN0b3J5ID0gdGhpcy5idWlsZGVyLmJ1aWxkKFthbmltYXRlKHRpbWluZ3MsIHN0eWxlKHsgJ21hcmdpbi1sZWZ0JzogK3Njcm9sbFRvICsgJ3B4JyB9KSldKTtcblxuICAgICAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbi5jcmVhdGUodGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnBsYXllci5wbGF5KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG5cbiAgICAgICAgaWYgKHNjcm9sbFRvID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID09PSB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsaW5nU3RhdHVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gY29udGFpbmVyV2lkdGggPCB3cmFwcGVyV2lkdGg7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGluZykge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoIDw9IE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgKyAzMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhRml4ID0gdGhpcy5zY3JvbGxpbmdDb3VudCA9PT0gMCA/IDY0IDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzIgLSBkZWx0YUZpeDtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpVGFic1JpZ2h0Q29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS10YWJzX19yaWdodC1jb250ZW50LXdyYXBwZXInO1xufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPGRpdlxuICAgICNob3N0XG4gICAgY2xhc3M9XCJldWktdGFicyB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbl09XCJpc01haW5OYXZpZ2F0aW9uXCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCJcbiAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCIgW2NsYXNzLmV1aS10YWJzX193cmFwcGVyLS1ob3Jpem9udGFsXT1cIiFpc1ZlcnRpY2FsVGFic1wiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0tdmVydGljYWxdPVwiaXNWZXJ0aWNhbFRhYnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2V1aVRhYnNJdGVtc1xuICAgICAgICAgICAgY2xhc3M9XCJldWktdGFic19faXRlbXNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0tc2Nyb2xsaW5nXT1cInNjcm9sbGluZ1wiXG4gICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8ZGl2ICNldWlUYWJzSXRlbXNXcmFwcGVyIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zLXdyYXBwZXJcIiBbYXR0ci5kYXRhLW9mZnNldF09XCJjdXJyZW50T2Zmc2V0XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmlzVmlzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWNsb3NhYmxlXT1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1zZWNvbmRhcnldPVwidGFiLmV1aVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tcHJpbWFyeV09XCJ0YWIuZXVpUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0taW5mb109XCJ0YWIuZXVpSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc3VjY2Vzc109XCJ0YWIuZXVpU3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0td2FybmluZ109XCJ0YWIuZXVpV2FybmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tZGFuZ2VyXT1cInRhYi5ldWlEYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWFjY2VudF09XCJ0YWIuZXVpQWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1iYWNrZ3JvdW5kLWZpbGxlZF09XCJ0YWIuaGFzQmFja2dyb3VuZEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1pdGVtX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVMYWJlbC50ZW1wbGF0ZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aVNpemVYU1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cIm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHRhYiBidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LW1sLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1lY2wtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWJfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19sZWZ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MZWZ0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIGxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLWJhY2tcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19yaWdodC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1mb3J3YXJkXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fcmlnaHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpVGFic1JpZ2h0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1jb250ZW50LXdyYXBwZXJcIiB0YWJpbmRleD1cIjBcIiAqbmdJZj1cImkgPT09IGFjdGl2ZVRhYkluZGV4ICYmIHRhYi50ZW1wbGF0ZUNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi50ZW1wbGF0ZUNvbnRlbnQudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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QU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRXFFLEtBQUs7c0JBQWhGLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFDYixnQkFBZ0I7c0JBQTVFLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDUyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNiLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFRYixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixjQUFjO3NCQURqQixLQUFLO2dCQXFJTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtON0Msb0JBQW9CO0FBRXBCLE1BQU0sT0FBTywrQkFBK0I7SUFENUM7UUFFMEIsaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztLQUMxRTtrSUFGWSwrQkFBK0I7c0hBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRTs4QkFFcEIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25GYWN0b3J5LCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICcuL2V1aS10YWIvZXVpLXRhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRhYnM6IEV1aVRhYkNvbXBvbmVudFtdID0gW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiSW5kZXggPSBudWxsO1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVGFiQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX3RhYnM6IFF1ZXJ5TGlzdDxFdWlUYWJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hvc3QnKSBob3N0OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc01haW5OYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNYWluTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGlzTWFpbk5hdmlnYXRpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc01haW5OYXZpZ2F0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2hhbmdlVGFiKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWI7XG4gICAgfVxuICAgIHNldCBpc0hhbmRsZUNoYW5nZVRhYih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2hhbmdlVGFiID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDaGFuZ2VUYWIgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1N1YlRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N1YlRhYnM7XG4gICAgfVxuICAgIHNldCBpc1N1YlRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1N1YlRhYnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1ZlcnRpY2FsVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxUYWJzO1xuICAgIH1cbiAgICBzZXQgaXNWZXJ0aWNhbFRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzVmVydGljYWxUYWJzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBzdGVwTW92ZSA9IDQwMDtcbiAgICAvKipcbiAgICAgKiBGb3IgcmFjZSBjb25kaXRpb24gcmVhc29uLCB0aGUgd3JhcHBlciB3aWR0aCBpcyBub3QgY29ycmVjdGx5IGNhbGN1bGF0ZWQgd2hlbiB0aGUgY29tcG9uZW50IHBhc3NlcyBmcm9tIG5vLXNjcm9sbCBzdGF0ZSB0byBzY3JvbGxcbiAgICAgKiBzdGF0ZS4gVG8gZml4IHRoaXMgaXNzdWUsIHdlIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdldFNjcm9sbGluZ1N0YXR1cyBtZXRob2QgaXMgY2FsbGVkLlxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMTogVGhlIG51bWJlciBvZiB0YWJzIGRvZXMgbm90IHJlcXVpcmUgYW55IHNjcm9sbDpcbiAgICAgKiAtIFdpdGhvdXQgYW55IGZpeCB0aGUgc2Nyb2xsIHdpbGwgaGF2ZSBhIGRlbHRhIG9mIDY0IGF0IHRoZSBmaXJzdCBhY3RpdmF0aW9uLCB0aGVuIG9uIHRoZSBmaXJzdCBuby1zY3JvbGwgdG8gc2Nyb2xsIHN0YXRlLFxuICAgICAqIC0gd2UgaGFkIDY0IHRvIHRoZSBtb3ZlXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAyOiBUaGUgbnVtYmVyIG9mIHRhYnMgcmVxdWlyZXMgYSBzY3JvbGw6XG4gICAgICogLSBJbiB0aGlzIGNhc2UgdGhlIHdyYXBwZXIgd2lkdGggaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRkIHRoZSBkZWx0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2Nyb2xsaW5nQ291bnQgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHsgdXJsOiB0aGlzLnJvdXRlci51cmwgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFic1dpdGhVcmwgPSB0aGlzLnRhYnMuZmlsdGVyKCh0KSA9PiB0LnVybCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YWJzV2l0aFVybC5sZW5ndGggPT09IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4gZS51cmwgPT09IHQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJzV2l0aFVybC5maW5kSW5kZXgoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHQudXJsICsgJygvPyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZS51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID09PSBpID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEgPyB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9MZWZ0KCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgKyB0aGlzLnN0ZXBNb3ZlO1xuICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub1JpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCAtIHRoaXMuc3RlcE1vdmU7XG5cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIYW5kbGVDaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudGFic1tpbmRleF0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYiAmJiAhdGhpcy5pc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWIpICYmICF0aGlzLmlzVmVydGljYWxUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNldFdpZHRoICs9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IGNvbnRhaW5lcldpZHRoIC8gMiAtIHN1YnNldFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3RlZC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25LZXlVcChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09ICdFbnRlcicgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLm1hcCgodCwgaSkgPT4gKGkgPT09IGluZGV4ID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWQuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGNsb3NlVGFiKGluZGV4OiBudW1iZXIsIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbaW5kZXhdO1xuICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0uaXNIYW5kbGVDbG9zZU9uQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZS5pbmRleCk7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYkNsb3NlZC5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgdGhpcy50YWJDbG9zZS5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHRhYiBwYXNzIGluIHBhcmFtZXRlci5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktdGFicyAjdGFicz5cbiAgICAgKiAgICAgPGV1aS10YWIgaXNDbG9zYWJsZSBpc0hhbmRsZUNsb3NlT25DbG9zZT5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWxhYmVsPlRhYiBsYWJlbDwvZXVpLXRhYi1sYWJlbD5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWNvbnRlbnQ+VGFiIGNvbnRlbnQ8L2V1aS10YWItY29udGVudD5cbiAgICAgKiAgICAgPC9ldWktdGFiPlxuICAgICAqIDwvZXVpLXRhYnM+XG4gICAgICogYGBgXG4gICAgICogLi4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudGFicy5jbG9zZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBjbG9zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaXNpYmxlSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnRhYnNbaW5kZXggLSAxXSk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1Zpc2libGVJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYigwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIocHJldmlvdXNWaXNpYmxlSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLmFjdGl2ZVRhYkluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYjogSFRNTERpdkVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICByZXR1cm4gYWN0aXZlVGFiLm9mZnNldExlZnQgLSA0OCA+IDAgJiYgYWN0aXZlVGFiLm9mZnNldExlZnQgKyBhY3RpdmVUYWIuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCAtIDQ4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2Nyb2xsVG8oc2Nyb2xsVG86IG51bWJlciwgaXNBbmltYXRlZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICBjb25zdCB0aW1pbmdzID0gaXNBbmltYXRlZCA/ICc1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknIDogMDtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uOiBBbmltYXRpb25GYWN0b3J5ID0gdGhpcy5idWlsZGVyLmJ1aWxkKFthbmltYXRlKHRpbWluZ3MsIHN0eWxlKHsgJ21hcmdpbi1sZWZ0JzogK3Njcm9sbFRvICsgJ3B4JyB9KSldKTtcblxuICAgICAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbi5jcmVhdGUodGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnBsYXllci5wbGF5KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG5cbiAgICAgICAgaWYgKHNjcm9sbFRvID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID09PSB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsaW5nU3RhdHVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gY29udGFpbmVyV2lkdGggPCB3cmFwcGVyV2lkdGg7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGluZykge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoIDw9IE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgKyAzMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhRml4ID0gdGhpcy5zY3JvbGxpbmdDb3VudCA9PT0gMCA/IDY0IDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzIgLSBkZWx0YUZpeDtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpVGFic1JpZ2h0Q29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS10YWJzX19yaWdodC1jb250ZW50LXdyYXBwZXInO1xufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPGRpdlxuICAgICNob3N0XG4gICAgY2xhc3M9XCJldWktdGFicyB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbl09XCJpc01haW5OYXZpZ2F0aW9uXCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCJcbiAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCIgW2NsYXNzLmV1aS10YWJzX193cmFwcGVyLS1ob3Jpem9udGFsXT1cIiFpc1ZlcnRpY2FsVGFic1wiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0tdmVydGljYWxdPVwiaXNWZXJ0aWNhbFRhYnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2V1aVRhYnNJdGVtc1xuICAgICAgICAgICAgY2xhc3M9XCJldWktdGFic19faXRlbXNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0tc2Nyb2xsaW5nXT1cInNjcm9sbGluZ1wiXG4gICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8ZGl2ICNldWlUYWJzSXRlbXNXcmFwcGVyIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zLXdyYXBwZXJcIiBbYXR0ci5kYXRhLW9mZnNldF09XCJjdXJyZW50T2Zmc2V0XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmlzVmlzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWNsb3NhYmxlXT1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1zZWNvbmRhcnldPVwidGFiLmV1aVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tcHJpbWFyeV09XCJ0YWIuZXVpUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0taW5mb109XCJ0YWIuZXVpSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc3VjY2Vzc109XCJ0YWIuZXVpU3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0td2FybmluZ109XCJ0YWIuZXVpV2FybmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tZGFuZ2VyXT1cInRhYi5ldWlEYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWFjY2VudF09XCJ0YWIuZXVpQWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1iYWNrZ3JvdW5kLWZpbGxlZF09XCJ0YWIuaGFzQmFja2dyb3VuZEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1pdGVtX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVMYWJlbC50ZW1wbGF0ZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aVNpemVYU1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHRhYiBidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LW1sLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1lY2wtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWJfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19sZWZ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MZWZ0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIGxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLWJhY2tcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19yaWdodC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1mb3J3YXJkXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fcmlnaHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpVGFic1JpZ2h0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1jb250ZW50LXdyYXBwZXJcIiB0YWJpbmRleD1cIjBcIiAqbmdJZj1cImkgPT09IGFjdGl2ZVRhYkluZGV4ICYmIHRhYi50ZW1wbGF0ZUNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi50ZW1wbGF0ZUNvbnRlbnQudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19