@alauda/ui 6.4.6-beta.6 → 6.4.6-beta.9

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.
@@ -9,7 +9,8 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/cdk/overlay";
10
10
  import * as i2 from "../../icon/icon.component";
11
11
  import * as i3 from "@angular/common";
12
- import * as i4 from "@angular/cdk/portal";
12
+ import * as i4 from "@angular/cdk/scrolling";
13
+ import * as i5 from "@angular/cdk/portal";
13
14
  export const DATA = new InjectionToken('drawer-data');
14
15
  const DRAWER_OVERLAY_CLASS = 'aui-drawer-overlay';
15
16
  const SIZE_MAPPER = {
@@ -178,10 +179,10 @@ export class DrawerComponent extends DrawerRef {
178
179
  }
179
180
  }
180
181
  DrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
181
- DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DrawerComponent, selector: "aui-drawer", inputs: { title: "title", footer: "footer", size: "size", offsetY: "offsetY", visible: "visible", content: "content", hideOnClickOutside: "hideOnClickOutside", showClose: "showClose", drawerClass: "drawerClass", mask: "mask", maskClosable: "maskClosable", divider: "divider", width: "width" }, outputs: { drawerViewInit: "drawerViewInit", close: "close" }, queries: [{ propertyName: "titleTemplate", first: true, predicate: DrawerHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "contentTemplate", first: true, predicate: DrawerContentDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: DrawerFooterDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "drawerTemplate", first: true, predicate: ["drawerTemplate"], descendants: true, static: true }, { propertyName: "bodyPortalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div class=\"aui-drawer__body\">\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0}:root .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}html[aui-theme-mode=light] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer-mask.isOpen{height:100%}.aui-drawer{position:fixed;top:0;bottom:0;right:0;z-index:9999;transition:transform .3s,opacity .3s,box-shaow .3s;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);color:rgb(var(--aui-color-main-text))}:root .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer__content{background-color:rgb(var(--aui-color-n-10));position:absolute;height:100%;right:0;width:100%}.aui-drawer__header{margin:0 20px;padding:20px 0;display:flex;justify-content:space-between}.aui-drawer__title{flex:1;font-size:var(--aui-font-size-xxl);line-height:var(--aui-line-height-xxl);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-drawer__close{z-index:10;margin-left:16px;display:flex;align-items:center;font-size:var(--aui-icon-size-m);color:rgb(var(--aui-color-n-4));cursor:pointer}.aui-drawer__close:hover{color:rgb(var(--aui-color-primary))}.aui-drawer__body-wrapper{width:100%;height:100%;display:flex;flex-flow:column nowrap;position:relative;z-index:1}.aui-drawer__body{padding:0 20px;overflow:hidden;overflow-y:auto;height:100%}.aui-drawer__footer{margin:0 20px;padding:20px 0}.aui-drawer.hasDivider .aui-drawer__header{padding-bottom:16px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-drawer.hasDivider .aui-drawer__body{padding:16px 20px}.aui-drawer.hasDivider .aui-drawer__footer{padding-top:16px;border-top:1px solid rgb(var(--aui-color-n-8))}\n"], components: [{ type: i2.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
+ DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DrawerComponent, selector: "aui-drawer", inputs: { title: "title", footer: "footer", size: "size", offsetY: "offsetY", visible: "visible", content: "content", hideOnClickOutside: "hideOnClickOutside", showClose: "showClose", drawerClass: "drawerClass", mask: "mask", maskClosable: "maskClosable", divider: "divider", width: "width" }, outputs: { drawerViewInit: "drawerViewInit", close: "close" }, queries: [{ propertyName: "titleTemplate", first: true, predicate: DrawerHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "contentTemplate", first: true, predicate: DrawerContentDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: DrawerFooterDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "drawerTemplate", first: true, predicate: ["drawerTemplate"], descendants: true, static: true }, { propertyName: "bodyPortalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div\n class=\"aui-drawer__body\"\n cdkScrollable\n >\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0}:root .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}html[aui-theme-mode=light] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer-mask.isOpen{height:100%}.aui-drawer{position:fixed;top:0;bottom:0;right:0;z-index:9999;transition:transform .3s,opacity .3s,box-shaow .3s;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);color:rgb(var(--aui-color-main-text))}:root .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer__content{background-color:rgb(var(--aui-color-n-10));position:absolute;height:100%;right:0;width:100%}.aui-drawer__header{margin:0 20px;padding:20px 0;display:flex;justify-content:space-between}.aui-drawer__title{flex:1;font-size:var(--aui-font-size-xxl);line-height:var(--aui-line-height-xxl);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-drawer__close{z-index:10;margin-left:16px;display:flex;align-items:center;font-size:var(--aui-icon-size-m);color:rgb(var(--aui-color-n-4));cursor:pointer}.aui-drawer__close:hover{color:rgb(var(--aui-color-primary))}.aui-drawer__body-wrapper{width:100%;height:100%;display:flex;flex-flow:column nowrap;position:relative;z-index:1}.aui-drawer__body{padding:0 20px;overflow:hidden;overflow-y:auto;height:100%}.aui-drawer__footer{margin:0 20px;padding:20px 0}.aui-drawer.hasDivider .aui-drawer__header{padding-bottom:16px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-drawer.hasDivider .aui-drawer__body{padding:16px 20px}.aui-drawer.hasDivider .aui-drawer__footer{padding-top:16px;border-top:1px solid rgb(var(--aui-color-n-8))}\n"], components: [{ type: i2.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DrawerComponent, decorators: [{
183
184
  type: Component,
184
- args: [{ selector: 'aui-drawer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div class=\"aui-drawer__body\">\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0}:root .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}html[aui-theme-mode=light] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer-mask.isOpen{height:100%}.aui-drawer{position:fixed;top:0;bottom:0;right:0;z-index:9999;transition:transform .3s,opacity .3s,box-shaow .3s;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);color:rgb(var(--aui-color-main-text))}:root .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer__content{background-color:rgb(var(--aui-color-n-10));position:absolute;height:100%;right:0;width:100%}.aui-drawer__header{margin:0 20px;padding:20px 0;display:flex;justify-content:space-between}.aui-drawer__title{flex:1;font-size:var(--aui-font-size-xxl);line-height:var(--aui-line-height-xxl);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-drawer__close{z-index:10;margin-left:16px;display:flex;align-items:center;font-size:var(--aui-icon-size-m);color:rgb(var(--aui-color-n-4));cursor:pointer}.aui-drawer__close:hover{color:rgb(var(--aui-color-primary))}.aui-drawer__body-wrapper{width:100%;height:100%;display:flex;flex-flow:column nowrap;position:relative;z-index:1}.aui-drawer__body{padding:0 20px;overflow:hidden;overflow-y:auto;height:100%}.aui-drawer__footer{margin:0 20px;padding:20px 0}.aui-drawer.hasDivider .aui-drawer__header{padding-bottom:16px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-drawer.hasDivider .aui-drawer__body{padding:16px 20px}.aui-drawer.hasDivider .aui-drawer__footer{padding-top:16px;border-top:1px solid rgb(var(--aui-color-n-8))}\n"] }]
185
+ args: [{ selector: 'aui-drawer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div\n class=\"aui-drawer__body\"\n cdkScrollable\n >\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0}:root .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}html[aui-theme-mode=light] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.4)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer-mask{background-color:rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer-mask.isOpen{height:100%}.aui-drawer{position:fixed;top:0;bottom:0;right:0;z-index:9999;transition:transform .3s,opacity .3s,box-shaow .3s;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);color:rgb(var(--aui-color-main-text))}:root .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-drawer.isOpen .aui-drawer__content{box-shadow:-2px 0 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-drawer__content{background-color:rgb(var(--aui-color-n-10));position:absolute;height:100%;right:0;width:100%}.aui-drawer__header{margin:0 20px;padding:20px 0;display:flex;justify-content:space-between}.aui-drawer__title{flex:1;font-size:var(--aui-font-size-xxl);line-height:var(--aui-line-height-xxl);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-drawer__close{z-index:10;margin-left:16px;display:flex;align-items:center;font-size:var(--aui-icon-size-m);color:rgb(var(--aui-color-n-4));cursor:pointer}.aui-drawer__close:hover{color:rgb(var(--aui-color-primary))}.aui-drawer__body-wrapper{width:100%;height:100%;display:flex;flex-flow:column nowrap;position:relative;z-index:1}.aui-drawer__body{padding:0 20px;overflow:hidden;overflow-y:auto;height:100%}.aui-drawer__footer{margin:0 20px;padding:20px 0}.aui-drawer.hasDivider .aui-drawer__header{padding-bottom:16px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-drawer.hasDivider .aui-drawer__body{padding:16px 20px}.aui-drawer.hasDivider .aui-drawer__footer{padding-top:16px;border-top:1px solid rgb(var(--aui-color-n-8))}\n"] }]
185
186
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.Overlay }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
186
187
  type: Input
187
188
  }], footer: [{
@@ -228,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
228
229
  type: ContentChild,
229
230
  args: [DrawerFooterDirective, { read: TemplateRef }]
230
231
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kcmF3ZXIvY29tcG9uZW50L2RyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZHJhd2VyL2NvbXBvbmVudC9kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBSUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxJQUFJLEVBQ0osU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFFN0IsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXRELE1BQU0sb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFFbEQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRztJQUN2QixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHO0lBQ3hCLENBQUMsVUFB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QUFFLFdBQVcsRUFBRTtnQkFJM0QsY0FBYztzQkFEYixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBUZW1wbGF0ZVBvcnRhbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzVGVtcGxhdGVSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmltcG9ydCB7IERyYXdlclJlZiwgRHJhd2VyU2l6ZSB9IGZyb20gJy4vZHJhd2VyLXJlZic7XG5pbXBvcnQge1xuICBEcmF3ZXJDb250ZW50RGlyZWN0aXZlLFxuICBEcmF3ZXJGb290ZXJEaXJlY3RpdmUsXG4gIERyYXdlckhlYWRlckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi9oZWxwZXItZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBEQVRBID0gbmV3IEluamVjdGlvblRva2VuKCdkcmF3ZXItZGF0YScpO1xuXG5jb25zdCBEUkFXRVJfT1ZFUkxBWV9DTEFTUyA9ICdhdWktZHJhd2VyLW92ZXJsYXknO1xuXG5jb25zdCBTSVpFX01BUFBFUiA9IHtcbiAgW0RyYXdlclNpemUuU21hbGxdOiA0MDAsXG4gIFtEcmF3ZXJTaXplLk1lZGl1bV06IDYwMCxcbiAgW0RyYXdlclNpemUuQmlnXTogODAwLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudDxcbiAgICBUID0gQ29tcG9uZW50VHlwZTx1bmtub3duPixcbiAgICBSID0gdW5rbm93bixcbiAgICBEID0gdW5rbm93bixcbiAgPlxuICBleHRlbmRzIERyYXdlclJlZjxULCBSPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgdGl0bGU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGZvb3Rlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgc2l6ZTogRHJhd2VyU2l6ZSA9IERyYXdlclNpemUuTWVkaXVtO1xuXG4gIEBJbnB1dCgpXG4gIG9mZnNldFkgPSAnMHB4JztcblxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPFQ+IHwgQ29tcG9uZW50VHlwZTxUPjtcblxuICBASW5wdXQoKVxuICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaG93Q2xvc2UgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGRyYXdlckNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbWFzazogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBtYXNrQ2xvc2FibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgZGl2aWRlciA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSBTSVpFX01BUFBFUltEcmF3ZXJTaXplLk1lZGl1bV07XG4gIEBJbnB1dCgpXG4gIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB3aWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBnZXQgZHJhd2VyQ2xhc3NlcygpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdhdWktZHJhd2VyJzogdHJ1ZSxcbiAgICAgIGhhc0RpdmlkZXI6IHRoaXMuZGl2aWRlcixcbiAgICAgIC4uLighdGhpcy5kcmF3ZXJDbGFzcyA/IG51bGwgOiB7IFt0aGlzLmRyYXdlckNsYXNzXTogdHJ1ZSB9KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhZnRlckNsb3NlZCQgPSBuZXcgU3ViamVjdDxSPigpO1xuXG4gIGdldCBhZnRlckNsb3NlZCgpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5hZnRlckNsb3NlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGFmdGVyT3BlbiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGdldCBhZnRlck9wZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuYWZ0ZXJPcGVuJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBkcmF3ZXJWaWV3SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZHJhd2VyVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkcmF3ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBib2R5UG9ydGFsT3V0bGV0OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgQENvbnRlbnRDaGlsZChEcmF3ZXJIZWFkZXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgdGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD47XG5cbiAgQENvbnRlbnRDaGlsZChEcmF3ZXJDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4gfCBDb21wb25lbnRUeXBlPFQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoRHJhd2VyRm9vdGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPjtcblxuICBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBjb21wb25lbnRJbnN0YW5jZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnRlbnRQYXJhbXM6IEQ7XG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHBvcnRhbDogVGVtcGxhdGVQb3J0YWw7XG4gIHRlbXBsYXRlQ29udGV4dCA9IHt9O1xuICBnZXQgdHJhbnNmb3JtKCkge1xuICAgIHJldHVybiBgdHJhbnNsYXRlWCgke3RoaXMudmlzaWJsZSA/IDAgOiAnMTAwJSd9KWA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXR0YWNoT3ZlcmxheSgpO1xuICAgIHRoaXMudXBkYXRlQm9keU92ZXJmbG93KCk7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy5jb250ZW50UGFyYW1zIH07XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdmlzaWJsZSB9ID0gY2hhbmdlcztcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB2aXNpYmxlLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoIXZpc2libGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgLy8g5LiN5biM5pyb6buY6K6k5YWz6Zet5pe277yMZHJhd2VyIOa4suafk+WQjuWwseinpuWPkSBjbG9zZSDkuovku7ZcbiAgICAgICAgdGhpcy5kaXNwb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYXR0YWNoQm9keUNvbnRlbnQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJhd2VyVmlld0luaXQuZW1pdCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLnBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy5kcmF3ZXJUZW1wbGF0ZSxcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUodGhpcy5nZXRPdmVybGF5Q29uZmlnKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMucG9ydGFsKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgLy8g5Yik5pat6byg5qCH54K55Ye75LqL5Lu255qEIHRhcmdldCDmmK/lkKbkuLogb3ZlcmxheS1jb250YWluZXIg55qE5a2Q6IqC54K577yM5aaC5p6c5piv77yM5YiZ5LiN5YWz6ZetIGRyYXdlcuOAglxuICAgICAgICAgIC8vIOS4uuS6humBv+WFjeeCueWHuyBkcmF3ZXIg6YeM55qEIHRvb2x0aXAg5ZCOIGRyYXdlciDooqvlhbPpl63jgIJcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnZpc2libGUgJiZcbiAgICAgICAgICAgIHRoaXMuaGlkZU9uQ2xpY2tPdXRzaWRlICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBOb2RlICYmXG4gICAgICAgICAgICAhdGhpcy5vdmVybGF5UmVmLmhvc3RFbGVtZW50Py5wYXJlbnROb2RlPy5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcGFuZWxDbGFzczogRFJBV0VSX09WRVJMQVlfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hCb2R5Q29udGVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/LmRpc3Bvc2UoKTtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50IHx8IHRoaXMuY29udGVudFRlbXBsYXRlO1xuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgVHlwZSkge1xuICAgICAgY29uc3QgY29tcG9uZW50UG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbDxUPihcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogREFUQSxcbiAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuY29udGVudFBhcmFtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9XG4gICAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldD8uYXR0YWNoQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudFBvcnRhbCk7XG4gICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMuY29udGVudFBhcmFtcyk7XG4gICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQm9keU92ZXJmbG93KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnNjcm9sbFN0cmF0ZWd5LmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnNjcm9sbFN0cmF0ZWd5LmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgdGhpcy5hZnRlck9wZW4kLm5leHQoKTtcbiAgICB0aGlzLmFmdGVyT3BlbiQuY29tcGxldGUoKTtcbiAgICB0aGlzLnVwZGF0ZUJvZHlPdmVyZmxvdygpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZGlzcG9zZShyZXN1bHQ6IFIgPSBudWxsKSB7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgdGhpcy5hZnRlckNsb3NlZCQubmV4dChyZXN1bHQpO1xuICAgIHRoaXMuYWZ0ZXJDbG9zZWQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy51cGRhdGVCb2R5T3ZlcmZsb3coKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcG9zZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgfVxuXG4gIG1hc2tDbGljaygpIHtcbiAgICBpZiAodGhpcy5tYXNrQ2xvc2FibGUgJiYgdGhpcy5tYXNrKSB7XG4gICAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGlzcG9zZU92ZXJsYXkoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNkcmF3ZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgICpuZ0lmPVwibWFza1wiXG4gICAgY2xhc3M9XCJhdWktZHJhd2VyLW1hc2tcIlxuICAgIFtjbGFzcy5pc09wZW5dPVwidmlzaWJsZVwiXG4gICAgKGNsaWNrKT1cIm1hc2tDbGljaygpXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW3N0eWxlLm1hcmdpblRvcF09XCJvZmZzZXRZXCJcbiAgICBbbmdDbGFzc109XCJkcmF3ZXJDbGFzc2VzXCJcbiAgICBbY2xhc3MuaXNPcGVuXT1cInZpc2libGVcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgd2lkdGg6IHdpZHRoICsgJ3B4J1xuICAgIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImF1aS1kcmF3ZXJfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdWktZHJhd2VyX19ib2R5LXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF1aS1kcmF3ZXJfX2hlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWktZHJhd2VyX190aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKHRpdGxlIHx8IHRpdGxlVGVtcGxhdGUpOyBlbHNlIGVsc2VUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0aXRsZSB8fCB0aXRsZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KHRpdGxlIHx8IHRpdGxlVGVtcGxhdGUpXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidGVtcGxhdGVDb250ZXh0XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImF1aS1kcmF3ZXJfX2Nsb3NlXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0Nsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkaXNwb3NlKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwiY2xvc2VcIj48L2F1aS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXVpLWRyYXdlcl9fYm9keVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihjb250ZW50IHx8IGNvbnRlbnRUZW1wbGF0ZSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAkYW55KGNvbnRlbnQgfHwgY29udGVudFRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB0ZW1wbGF0ZUNvbnRleHRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJmb290ZXIgfHwgZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpLWRyYXdlcl9fZm9vdGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoZm9vdGVyIHx8IGZvb3RlclRlbXBsYXRlKTsgZWxzZSBlbHNlVGVtcGxhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGZvb3RlciB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cImZvb3RlciB8fCBmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZm9vdGVyIHx8IGZvb3RlclRlbXBsYXRlKVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ0ZW1wbGF0ZUNvbnRleHRcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kcmF3ZXIvY29tcG9uZW50L2RyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZHJhd2VyL2NvbXBvbmVudC9kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBSUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxJQUFJLEVBQ0osU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRTdCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV0RCxNQUFNLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO0FBRWxELE1BQU0sV0FBVyxHQUFHO0lBQ2xCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUc7SUFDdkIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRztJQUN4QixDQUFDLFVB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RUFBRSxXQUFXLEVBQUU7Z0JBSTNELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRUeXBlLFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBDZGtQb3J0YWxPdXRsZXQsXG4gIENvbXBvbmVudFBvcnRhbCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBEcmF3ZXJSZWYsIERyYXdlclNpemUgfSBmcm9tICcuL2RyYXdlci1yZWYnO1xuaW1wb3J0IHtcbiAgRHJhd2VyQ29udGVudERpcmVjdGl2ZSxcbiAgRHJhd2VyRm9vdGVyRGlyZWN0aXZlLFxuICBEcmF3ZXJIZWFkZXJEaXJlY3RpdmUsXG59IGZyb20gJy4vaGVscGVyLWRpcmVjdGl2ZXMnO1xuXG5leHBvcnQgY29uc3QgREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbignZHJhd2VyLWRhdGEnKTtcblxuY29uc3QgRFJBV0VSX09WRVJMQVlfQ0xBU1MgPSAnYXVpLWRyYXdlci1vdmVybGF5JztcblxuY29uc3QgU0laRV9NQVBQRVIgPSB7XG4gIFtEcmF3ZXJTaXplLlNtYWxsXTogNDAwLFxuICBbRHJhd2VyU2l6ZS5NZWRpdW1dOiA2MDAsXG4gIFtEcmF3ZXJTaXplLkJpZ106IDgwMCxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcmF3ZXJDb21wb25lbnQ8XG4gICAgVCA9IENvbXBvbmVudFR5cGU8dW5rbm93bj4sXG4gICAgUiA9IHVua25vd24sXG4gICAgRCA9IHVua25vd24sXG4gID5cbiAgZXh0ZW5kcyBEcmF3ZXJSZWY8VCwgUj5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBmb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IERyYXdlclNpemUgPSBEcmF3ZXJTaXplLk1lZGl1bTtcblxuICBASW5wdXQoKVxuICBvZmZzZXRZID0gJzBweCc7XG5cbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBjb250ZW50OiBUZW1wbGF0ZVJlZjxUPiB8IENvbXBvbmVudFR5cGU8VD47XG5cbiAgQElucHV0KClcbiAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2hvd0Nsb3NlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBkcmF3ZXJDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG1hc2s6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgbWFza0Nsb3NhYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGRpdmlkZXIgPSB0cnVlO1xuXG4gIHByaXZhdGUgX3ZhbHVlID0gU0laRV9NQVBQRVJbRHJhd2VyU2l6ZS5NZWRpdW1dO1xuICBASW5wdXQoKVxuICBzZXQgd2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgZ2V0IGRyYXdlckNsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICAnYXVpLWRyYXdlcic6IHRydWUsXG4gICAgICBoYXNEaXZpZGVyOiB0aGlzLmRpdmlkZXIsXG4gICAgICAuLi4oIXRoaXMuZHJhd2VyQ2xhc3MgPyBudWxsIDogeyBbdGhpcy5kcmF3ZXJDbGFzc106IHRydWUgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWZ0ZXJDbG9zZWQkID0gbmV3IFN1YmplY3Q8Uj4oKTtcblxuICBnZXQgYWZ0ZXJDbG9zZWQoKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuYWZ0ZXJDbG9zZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhZnRlck9wZW4kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgYWZ0ZXJPcGVuKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFmdGVyT3BlbiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgZHJhd2VyVmlld0luaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RyYXdlclRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZHJhd2VyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgYm9keVBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gIEBDb250ZW50Q2hpbGQoRHJhd2VySGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoRHJhd2VyQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+IHwgQ29tcG9uZW50VHlwZTxUPjtcblxuICBAQ29udGVudENoaWxkKERyYXdlckZvb3RlckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD47XG5cbiAgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgY29tcG9uZW50SW5zdGFuY2U6IFQgfCBudWxsID0gbnVsbDtcblxuICBjb250ZW50UGFyYW1zOiBEO1xuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICB0ZW1wbGF0ZUNvbnRleHQgPSB7fTtcbiAgZ2V0IHRyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZVgoJHt0aGlzLnZpc2libGUgPyAwIDogJzEwMCUnfSlgO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmF0dGFjaE92ZXJsYXkoKTtcbiAgICB0aGlzLnVwZGF0ZUJvZHlPdmVyZmxvdygpO1xuICAgIHRoaXMudGVtcGxhdGVDb250ZXh0ID0geyAkaW1wbGljaXQ6IHRoaXMuY29udGVudFBhcmFtcyB9O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZpc2libGUgfSA9IGNoYW5nZXM7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaWJsZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCF2aXNpYmxlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgIC8vIOS4jeW4jOacm+m7mOiupOWFs+mXreaXtu+8jGRyYXdlciDmuLLmn5PlkI7lsLHop6blj5EgY2xvc2Ug5LqL5Lu2XG4gICAgICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmF0dGFjaEJvZHlDb250ZW50KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyYXdlclZpZXdJbml0LmVtaXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoT3ZlcmxheSgpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMuZHJhd2VyVGVtcGxhdGUsXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHRoaXMuZ2V0T3ZlcmxheUNvbmZpZygpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLnBvcnRhbCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIC8vIOWIpOaWrem8oOagh+eCueWHu+S6i+S7tueahCB0YXJnZXQg5piv5ZCm5Li6IG92ZXJsYXktY29udGFpbmVyIOeahOWtkOiKgueCue+8jOWmguaenOaYr++8jOWImeS4jeWFs+mXrSBkcmF3ZXLjgIJcbiAgICAgICAgICAvLyDkuLrkuobpgb/lhY3ngrnlh7sgZHJhd2VyIOmHjOeahCB0b29sdGlwIOWQjiBkcmF3ZXIg6KKr5YWz6Zet44CCXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy52aXNpYmxlICYmXG4gICAgICAgICAgICB0aGlzLmhpZGVPbkNsaWNrT3V0c2lkZSAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcmxheVJlZi5ob3N0RWxlbWVudD8ucGFyZW50Tm9kZT8uY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5kaXNwb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBhbmVsQ2xhc3M6IERSQVdFUl9PVkVSTEFZX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoQm9keUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5ib2R5UG9ydGFsT3V0bGV0Py5kaXNwb3NlKCk7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudCB8fCB0aGlzLmNvbnRlbnRUZW1wbGF0ZTtcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFR5cGUpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWw8VD4oXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIG51bGwsXG4gICAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByb3ZpZGU6IERBVEEsXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLmNvbnRlbnRQYXJhbXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPVxuICAgICAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/LmF0dGFjaENvbXBvbmVudFBvcnRhbChjb21wb25lbnRQb3J0YWwpO1xuICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRlbnRQYXJhbXMpO1xuICAgICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUJvZHlPdmVyZmxvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5nZXRDb25maWcoKS5zY3JvbGxTdHJhdGVneS5lbmFibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5nZXRDb25maWcoKS5zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIHRoaXMuYWZ0ZXJPcGVuJC5uZXh0KCk7XG4gICAgdGhpcy5hZnRlck9wZW4kLmNvbXBsZXRlKCk7XG4gICAgdGhpcy51cGRhdGVCb2R5T3ZlcmZsb3coKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGRpc3Bvc2UocmVzdWx0OiBSID0gbnVsbCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIHRoaXMuYWZ0ZXJDbG9zZWQkLm5leHQocmVzdWx0KTtcbiAgICB0aGlzLmFmdGVyQ2xvc2VkJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMudXBkYXRlQm9keU92ZXJmbG93KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2VPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gIH1cblxuICBtYXNrQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubWFza0Nsb3NhYmxlICYmIHRoaXMubWFzaykge1xuICAgICAgdGhpcy5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRpc3Bvc2VPdmVybGF5KCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZHJhd2VyVGVtcGxhdGU+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm1hc2tcIlxuICAgIGNsYXNzPVwiYXVpLWRyYXdlci1tYXNrXCJcbiAgICBbY2xhc3MuaXNPcGVuXT1cInZpc2libGVcIlxuICAgIChjbGljayk9XCJtYXNrQ2xpY2soKVwiXG4gID48L2Rpdj5cbiAgPGRpdlxuICAgIFtzdHlsZS5tYXJnaW5Ub3BdPVwib2Zmc2V0WVwiXG4gICAgW25nQ2xhc3NdPVwiZHJhd2VyQ2xhc3Nlc1wiXG4gICAgW2NsYXNzLmlzT3Blbl09XCJ2aXNpYmxlXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybSxcbiAgICAgIHdpZHRoOiB3aWR0aCArICdweCdcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhdWktZHJhd2VyX19jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVpLWRyYXdlcl9fYm9keS13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdWktZHJhd2VyX19oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXVpLWRyYXdlcl9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZih0aXRsZSB8fCB0aXRsZVRlbXBsYXRlKTsgZWxzZSBlbHNlVGVtcGxhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwidGl0bGUgfHwgdGl0bGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0aXRsZSB8fCB0aXRsZVRlbXBsYXRlKVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRlbXBsYXRlQ29udGV4dFwiXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJhdWktZHJhd2VyX19jbG9zZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dDbG9zZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGlzcG9zZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cImNsb3NlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXVpLWRyYXdlcl9fYm9keVwiXG4gICAgICAgICAgY2RrU2Nyb2xsYWJsZVxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGNvbnRlbnQgfHwgY29udGVudFRlbXBsYXRlKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICRhbnkoY29udGVudCB8fCBjb250ZW50VGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHRlbXBsYXRlQ29udGV4dFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cImZvb3RlciB8fCBmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhdWktZHJhd2VyX19mb290ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihmb290ZXIgfHwgZm9vdGVyVGVtcGxhdGUpOyBlbHNlIGVsc2VUZW1wbGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZm9vdGVyIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9vdGVyIHx8IGZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShmb290ZXIgfHwgZm9vdGVyVGVtcGxhdGUpXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRlbXBsYXRlQ29udGV4dFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -57,10 +57,10 @@ export class SearchComponent {
57
57
  }
58
58
  }
59
59
  SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: SearchComponent, selector: "aui-search", inputs: { size: "size", searchButton: "searchButton", clearable: "clearable", searching: "searching", placeholder: "placeholder", disabled: "disabled", keyword: "keyword" }, outputs: { keywordChange: "keywordChange", search: "search", clear: "clear" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"], components: [{ type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: i2.InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
60
+ SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: SearchComponent, selector: "aui-search", inputs: { size: "size", searchButton: "searchButton", clearable: "clearable", searching: "searching", placeholder: "placeholder", disabled: "disabled", keyword: "keyword" }, outputs: { keywordChange: "keywordChange", search: "search", clear: "clear" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"], components: [{ type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: i2.InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, decorators: [{
62
62
  type: Component,
63
- args: [{ selector: 'aui-search', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"] }]
63
+ args: [{ selector: 'aui-search', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"] }]
64
64
  }], propDecorators: { size: [{
65
65
  type: Input
66
66
  }], searchButton: [{
@@ -26,6 +26,7 @@ export class MultiSelectComponent extends BaseSelect {
26
26
  this.maxRowCount = 0;
27
27
  this.customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight
28
28
  this.inputValue = '';
29
+ this.hasDisabledOption = false;
29
30
  this.withMaxRowCount = createWithMaxRowCount(this);
30
31
  this.focused = false;
31
32
  this.trackByValue = (_, item) => this.trackFn(item.value);
@@ -103,7 +104,7 @@ export class MultiSelectComponent extends BaseSelect {
103
104
  return 1;
104
105
  }
105
106
  return 0;
106
- })), publishRef());
107
+ })), tap(options => (this.hasDisabledOption = options.some(o => o.disabled))), publishRef());
107
108
  }
108
109
  ngAfterViewInit() {
109
110
  super.ngAfterViewInit();
@@ -152,7 +153,8 @@ export class MultiSelectComponent extends BaseSelect {
152
153
  onKeyDown(event) {
153
154
  if (event.key === 'Backspace' &&
154
155
  this.filterString === '' &&
155
- this.model.length > 0) {
156
+ this.model.length > 0 &&
157
+ !this.hasDisabledOption) {
156
158
  this.removeValue(this.model[this.model.length - 1]);
157
159
  event.stopPropagation();
158
160
  event.preventDefault();
@@ -305,4 +307,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
305
307
  type: HostBinding,
306
308
  args: ['style.display']
307
309
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsYUFBYSxFQUNiLEVBQUUsRUFDRixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFFTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFDTCxlQUFlLEdBR2hCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBeUJ6QixNQUFNLE9BQU8sb0JBQ1gsU0FBUSxVQUFrQjtJQXdGMUIsWUFBWSxHQUFzQixFQUFtQixRQUFtQjtRQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEd0MsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXJGeEUsUUFBRyxHQUFRLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZ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QkFVTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkzQyxZQUFZO3NCQURmLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGNyZWF0ZVdpdGhNYXhSb3dDb3VudCB9IGZyb20gJy4uLy4uL2lucHV0L3RhZ3MtaW5wdXQvd2l0aC1tYXgtcm93LWNvdW50JztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICBCZW0sXG4gIGJ1aWxkQmVtLFxuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBCYXNlU2VsZWN0IH0gZnJvbSAnLi4vYmFzZS1zZWxlY3QnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VsZWN0QWxsU3RhdHVzLFxuICBTZWxlY3RGaWx0ZXJPcHRpb24sXG4gIFRhZ0NsYXNzRm4sXG59IGZyb20gJy4uL3NlbGVjdC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1tdWx0aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vdGFnL3RhZy5jb21wb25lbnQuc2NzcycsXG4gICAgJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQmFzZVNlbGVjdCxcbiAgICAgIHVzZUV4aXN0aW5nOiBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgZXh0ZW5kcyBCYXNlU2VsZWN0PFQsIFRbXT5cbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0XG57XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS1tdWx0aS1zZWxlY3QnKTtcbiAgYmVtU2VsZWN0QWxsOiBCZW0gPSBidWlsZEJlbSgnYXVpLW9wdGlvbicpO1xuICBzZWxlY3RlZE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEZpbHRlck9wdGlvbjxUPj4+O1xuICBzZWxlY3RBbGxTdGF0dXMkOiBPYnNlcnZhYmxlPFNlbGVjdEFsbFN0YXR1cz47XG4gIHNlbGVjdEFsbFN0YXR1czogU2VsZWN0QWxsU3RhdHVzO1xuICBoYXNFbmFibGVkT3B0aW9ucyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBfYWxsb3dTZWxlY3RBbGwgPSBmYWxzZTtcbiAgb3ZlcnJpZGUgaXNNdWx0aSA9IHRydWU7XG4gIG92ZXJyaWRlIG1vZGVsOiBUW10gPSBbXTtcblxuICB2YWx1ZXMkID0gdGhpcy5tb2RlbCQ7XG5cbiAgQElucHV0KClcbiAgdGFnQ2xhc3NGbjogVGFnQ2xhc3NGbjxUPjtcblxuICBASW5wdXQoKVxuICBtYXhSb3dDb3VudCA9IDA7XG5cbiAgQElucHV0KClcbiAgY3VzdG9tUm93SGVpZ2h0ID0gMDsgLy8gMDogdXNlIGRlZmF1bHQgc3R5bGUgY29uc3QgdmFsdWUsID4gMTogZm9yIGBgYHRhZ0NsYXNzRm5gYGAgbWF5YmUgYWZmZWN0IGxpbmVIZWlnaHRcblxuICBASW5wdXQoKVxuICBnZXQgYWxsb3dTZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93U2VsZWN0QWxsO1xuICB9XG5cbiAgc2V0IGFsbG93U2VsZWN0QWxsKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fYWxsb3dTZWxlY3RBbGwgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dFZhbHVlTWlycm9yJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXRWYWx1ZU1pcnJvcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpXG4gIGdldCBob3N0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aE1heFJvd0NvdW50Lmhvc3RQb3NpdGlvbigpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgZ2V0IGhvc3REaXNwbGF5KCkge1xuICAgIHJldHVybiB0aGlzLndpdGhNYXhSb3dDb3VudC5ob3N0RGlzcGxheSgpO1xuICB9XG5cbiAgaW5wdXRWYWx1ZSA9ICcnO1xuXG4gIGdldCByb290Q2xhc3MoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSB8fCBDb21wb25lbnRTaXplLk1lZGl1bTtcbiAgICByZXR1cm4gYGF1aS1pbnB1dCAke3RoaXMuYmVtLmJsb2NrKHNpemUpfSAke1xuICAgICAgdGhpcy5kaXNhYmxlZCA/ICdpc0Rpc2FibGVkJyA6ICcnXG4gICAgfSAke3RoaXMuZm9jdXNlZCA/ICdpc0ZvY3VzZWQnIDogJyd9ICR7XG4gICAgICB0aGlzLmRpc3BsYXlDbGVhckJ0biA/ICdpc0NsZWFyYWJsZScgOiAnJ1xuICAgIH0gJHt0aGlzLm1heFJvd0NvdW50ID4gMCA/ICd3aXRoSGVpZ2h0TGltaXQnIDogJyd9YDtcbiAgfVxuXG4gIGdldCB0YWdTaXplKCkge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09IENvbXBvbmVudFNpemUuTGFyZ2VcbiAgICAgID8gQ29tcG9uZW50U2l6ZS5NZWRpdW1cbiAgICAgIDogQ29tcG9uZW50U2l6ZS5NaW5pO1xuICB9XG5cbiAgZ2V0IGlucHV0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmVtLmVsZW1lbnQoJ2lucHV0Jywge1xuICAgICAgaGlkZGVuOiB0aGlzLmlucHV0UmVhZG9ubHksXG4gICAgfSl9IGF1aS10YWcgYXVpLXRhZy0tJHt0aGlzLnRhZ1NpemV9YDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Q2xlYXJCdG4oKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJhYmxlICYmIHRoaXMubW9kZWwubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IG1heEhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy53aXRoTWF4Um93Q291bnQubWF4SGVpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHdpdGhNYXhSb3dDb3VudCA9IGNyZWF0ZVdpdGhNYXhSb3dDb3VudCh0aGlzKTtcblxuICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgdHJhY2tCeVZhbHVlID0gKF86IG51bWJlciwgaXRlbTogU2VsZWN0RmlsdGVyT3B0aW9uPFQ+KSA9PlxuICAgIHRoaXMudHJhY2tGbihpdGVtLnZhbHVlKTtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcihjZHIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1vZGVsJCxcbiAgICAgIChcbiAgICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzIGFzIE9ic2VydmFibGU8UXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4+XG4gICAgICApLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgICBvcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1hcChvcHRpb24gPT5cbiAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWwkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWxDb250ZXh0JCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkJCxcbiAgICAgICAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoW3ZhbHVlLCBsYWJlbCwgbGFiZWxDb250ZXh0LCBkaXNhYmxlZF0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogb2YoW10gYXMgQXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+PiksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZXMsIG9wdGlvbnNdKSA9PlxuICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgb3B0aW9uID0+IHRoaXMudHJhY2tGbihvcHRpb24udmFsdWUpID09PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4ob3B0aW9uLnZhbHVlKSksXG4gICAgICAgICAgICAgICAgICBsYWJlbENvbnRleHQ6IG9wdGlvbi5sYWJlbENvbnRleHQsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKHZhbHVlKSB8fCBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gc29ydCBkaXNhYmxlZCBvcHRpb25zIGFzIGZpcnN0XG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGlmIChhLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuc2VsZWN0QWxsU3RhdHVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hbGxPcHRpb25zJCxcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbYWxsT3B0aW9uc10pID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIC4uLihhbGxPcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgLmZpbHRlcigoeyB2aXNpYmxlLCBkaXNhYmxlZCB9KSA9PiB2aXNpYmxlICYmICFkaXNhYmxlZClcbiAgICAgICAgICAgIC5tYXAoKHsgc2VsZWN0ZWQkIH0pID0+IHNlbGVjdGVkJCksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIG1hcChzdGF0dXNlcyA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc3RhdHVzZXMuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyBTZWxlY3RBbGxTdGF0dXMuRW1wdHlcbiAgICAgICAgICA6IHNlbGVjdGVkLmxlbmd0aCAhPT0gc3RhdHVzZXMubGVuZ3RoXG4gICAgICAgICAgPyBTZWxlY3RBbGxTdGF0dXMuSW5kZXRlcm1pbmF0ZVxuICAgICAgICAgIDogU2VsZWN0QWxsU3RhdHVzLkNoZWNrZWQ7XG4gICAgICB9KSxcbiAgICAgIHN0YXJ0V2l0aChTZWxlY3RBbGxTdGF0dXMuRW1wdHkpLFxuICAgICAgdGFwKHNlbGVjdEFsbFN0YXR1cyA9PiAodGhpcy5zZWxlY3RBbGxTdGF0dXMgPSBzZWxlY3RBbGxTdGF0dXMpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICAgIHRoaXMuaGFzRW5hYmxlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmFsbE9wdGlvbnMkLFxuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbYWxsT3B0aW9uc10pID0+XG4gICAgICAgICAgISFhbGxPcHRpb25zLmZpbHRlcigoeyB2aXNpYmxlLCBkaXNhYmxlZCB9KSA9PiB2aXNpYmxlICYmICFkaXNhYmxlZClcbiAgICAgICAgICAgIC5sZW5ndGgsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBvblNob3dPcHRpb25zKCkge1xuICAgIHN1cGVyLm9uU2hvd09wdGlvbnMoKTtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSGlkZU9wdGlvbnMoKSB7XG4gICAgc3VwZXIub25IaWRlT3B0aW9ucygpO1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgc3VwZXIub25JbnB1dChldmVudCk7XG4gICAgdGhpcy5zZXRJbnB1dFdpZHRoKCk7XG4gICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gIH1cblxuICBvbklucHV0Rm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uSW5wdXRCbHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiZcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID09PSAnJyAmJlxuICAgICAgdGhpcy5tb2RlbC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbHVlKHRoaXMubW9kZWxbdGhpcy5tb2RlbC5sZW5ndGggLSAxXSk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy50cmFja0ZuKHZhbHVlKSlcbiAgICAgICAgICAuaW5jbHVkZXMoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdEZvY3VzZWRPcHRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25LZXlEb3duKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RPcHRpb24ob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pIHtcbiAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkVmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaXNDdXN0b20gPSAhdGhpcy5jb250ZW50T3B0aW9ucy5zb21lKFxuICAgICAgKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IG9wdGlvbi52YWx1ZSxcbiAgICApO1xuICAgIGlmIChpc0N1c3RvbSkge1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBhZGRWYWx1ZSh2YWx1ZTogVCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubW9kZWwuY29uY2F0KHZhbHVlKTtcbiAgICB0aGlzLmVtaXRWYWx1ZSh2YWx1ZXMpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVmFsdWUodmFsdWU6IFQpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm1vZGVsLmZpbHRlcihcbiAgICAgIGl0ZW0gPT4gdGhpcy50cmFja0ZuKGl0ZW0pICE9PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICk7XG4gICAgdGhpcy5lbWl0VmFsdWUodmFsdWVzKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRvb2x0aXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUoW10pO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvblNlbGVjdEFsbENsaWNrKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZpc2libGVPcHRpb25zVmFsdWUgPSB0aGlzLmFsbE9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKHsgdmlzaWJsZSwgZGlzYWJsZWQgfSkgPT4gdmlzaWJsZSAmJiAhZGlzYWJsZWQpXG4gICAgICAubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdEFsbFN0YXR1cyA9PT0gU2VsZWN0QWxsU3RhdHVzLkNoZWNrZWQpIHtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKFxuICAgICAgICB0aGlzLm1vZGVsLmZpbHRlcih2YWx1ZSA9PiAhdGhpcy5pbmNsdWRlcyh2aXNpYmxlT3B0aW9uc1ZhbHVlLCB2YWx1ZSkpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0VmFsdWUoXG4gICAgICAgIHRoaXMubW9kZWwuY29uY2F0KHZpc2libGVPcHRpb25zVmFsdWUpLnJlZHVjZTxUW10+KChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuaW5jbHVkZXMoYWNjLCBjdXJyKSkge1xuICAgICAgICAgICAgYWNjLnB1c2goY3Vycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlcyh2YWx1ZXM6IFRbXSwgdmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWVzLnNvbWUodiA9PiB0aGlzLnRyYWNrRm4odikgPT09IHRoaXMudHJhY2tGbih2YWx1ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSW4odjogVFtdKTogVFtdIHtcbiAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHYgfHwgW107XG4gIH1cblxuICBwcml2YXRlIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5zZXRJbnB1dFdpZHRoKCk7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAnJztcbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSBpbnB1dCBlbGVtZW50IHdpZHRoIGFjY29yZGluZyB0byBpdHMgdmFsdWVcbiAgcHJpdmF0ZSBzZXRJbnB1dFdpZHRoKCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAnd2lkdGgnLFxuICAgICAgICAgIGAke3RoaXMuaW5wdXRWYWx1ZU1pcnJvci5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRofXB4YCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwicm9vdENsYXNzXCJcbiAgI3NlbGVjdFJlZlxuICAjdG9vbHRpcFJlZj1cImF1aVRvb2x0aXBcIlxuICBbYXVpVG9vbHRpcF09XCJ0ZW1wbGF0ZVJlZlwiXG4gIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIHN0YXJ0XCJcbiAgYXVpVG9vbHRpcFR5cGU9XCJwbGFpblwiXG4gIChhdWlUb29sdGlwU2hvdyk9XCJvblNob3dPcHRpb25zKClcIlxuICAoYXVpVG9vbHRpcEhpZGUpPVwib25IaWRlT3B0aW9ucygpXCJcbiAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhdWktbXVsdGktc2VsZWN0X19zdWZmaXhcIj5cbiAgICA8c3BhbiBjbGFzcz1cImF1aS1tdWx0aS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktbXVsdGktc2VsZWN0X19pbmRpY2F0b3JcIlxuICAgICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3NwaW5uZXInIDogJ2NhcmV0X2Rvd25fcydcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktbXVsdGktc2VsZWN0X19jbGVhclwiXG4gICAgICAgIGljb249XCJjbG9zZV9zbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKCRldmVudClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPHNwYW5cbiAgICBbaGlkZGVuXT1cIm1vZGVsLmxlbmd0aCB8fCBpbnB1dFJlZi52YWx1ZS5sZW5ndGhcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgncGxhY2Vob2xkZXInKVwiXG4gID5cbiAgICB7eyBwbGFjZWhvbGRlciB9fVxuICA8L3NwYW4+XG4gIDxhdWktdGFnXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlWYWx1ZVwiXG4gICAgdHlwZT1cImluZm9cIlxuICAgIFtyb3VuZF09XCJ0cnVlXCJcbiAgICBbYm9yZGVyXT1cInRydWVcIlxuICAgIFtzaXplXT1cInRhZ1NpemVcIlxuICAgIFtjbG9zZWFibGVdPVwiIWRpc2FibGVkICYmICFvcHRpb24uZGlzYWJsZWRcIlxuICAgIChjbG9zZSk9XCJyZW1vdmVWYWx1ZShvcHRpb24udmFsdWUpXCJcbiAgICBbbmdDbGFzc109XCJ0YWdDbGFzc0ZuICYmIHRhZ0NsYXNzRm4ob3B0aW9uLmxhYmVsLCBvcHRpb24udmFsdWUpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihvcHRpb24ubGFiZWwpOyBlbHNlIGxhYmVsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwib3B0aW9uLmxhYmVsQ29udGV4dFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2F1aS10YWc+XG4gIDxpbnB1dFxuICAgICNpbnB1dFJlZlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZG9ubHlcIlxuICAgIFtjbGFzc109XCJpbnB1dENsYXNzXCJcbiAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKClcIlxuICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgLz5cbiAgPHNwYW5cbiAgICAjaW5wdXRWYWx1ZU1pcnJvclxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnbWlycm9yJylcIlxuICA+XG4gICAge3sgaW5wdXRWYWx1ZSB9fVxuICA8L3NwYW4+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjb3B0aW9uTGlzdFJlZlxuICAgICAgY2xhc3M9XCJhdWktb3B0aW9uLWNvbnRhaW5lcl9fY29udGVudFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGFsbG93U2VsZWN0QWxsICYmXG4gICAgICAgICAgKGhhc0VuYWJsZWRPcHRpb25zJCB8IGFzeW5jKSAmJlxuICAgICAgICAgICgoaGFzVmlzaWJsZU9wdGlvbiQgfCBhc3luYykgfHxcbiAgICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiAoY3VzdG9tQ3JlYXRlZE9wdGlvbnMkIHwgYXN5bmMpLmxlbmd0aCkgfHxcbiAgICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcpKVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJhdWktb3B0aW9uXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtU2VsZWN0QWxsLmJsb2NrKHNpemUkIHwgYXN5bmMpXCJcbiAgICAgICAgICBbY2xhc3MuaXNEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwiISEoc2VsZWN0QWxsU3RhdHVzJCB8IGFzeW5jKVwiXG4gICAgICAgICAgW2NsYXNzLmlzTXVsdGldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0QWxsQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImF1aS1vcHRpb25fX3BvaW50ZXJcIj5cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICBbaWNvbl09XCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0QWxsU3RhdHVzJCB8IGFzeW5jKSA9PT0gJ2NoZWNrZWQnXG4gICAgICAgICAgICAgICAgICA/ICdjaGVja19zJ1xuICAgICAgICAgICAgICAgICAgOiAnc3F1YXJlX3MnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIShzZWxlY3RBbGxTdGF0dXMkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgIDwvaT5cbiAgICAgICAgICB7eyAnc2VsZWN0X2FsbCcgfCBhdWlJMThuIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgI2lucHV0dGluZ09wdGlvblxuICAgICAgICAqbmdJZj1cImFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZyAmJiAhKGhhc01hdGNoZWRPcHRpb24kIHwgYXN5bmMpXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlclN0cmluZ1wiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbHRlclN0cmluZyB9fVxuICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93Q3JlYXRlXCI+XG4gICAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgIShcbiAgICAgICAgICAoaGFzVmlzaWJsZU9wdGlvbiQgfCBhc3luYykgfHxcbiAgICAgICAgICAoYWxsb3dDcmVhdGUgJiYgKGN1c3RvbUNyZWF0ZWRPcHRpb25zJCB8IGFzeW5jKS5sZW5ndGgpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZylcbiAgICAgICAgKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX3BsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhdWktb3B0aW9uLXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsYUFBYSxFQUNiLEVBQUUsRUFDRixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFFTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFDTCxlQUFlLEdBR2hCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBeUJ6QixNQUFNLE9BQU8sb0JBQ1gsU0FBUSxVQUFrQjtJQXlGMUIsWUFBWSxHQUFzQixFQUFtQixRQUFtQjtRQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEd0MsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXRGeEUsUUFBRyxHQUFRLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZ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QkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsc0JBQXNCO3lCQUNsQztxQkFDRjtnSUFvQkQsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsS0FBSztnQkFVTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkzQyxZQUFZO3NCQURmLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGNyZWF0ZVdpdGhNYXhSb3dDb3VudCB9IGZyb20gJy4uLy4uL2lucHV0L3RhZ3MtaW5wdXQvd2l0aC1tYXgtcm93LWNvdW50JztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICBCZW0sXG4gIGJ1aWxkQmVtLFxuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBCYXNlU2VsZWN0IH0gZnJvbSAnLi4vYmFzZS1zZWxlY3QnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VsZWN0QWxsU3RhdHVzLFxuICBTZWxlY3RGaWx0ZXJPcHRpb24sXG4gIFRhZ0NsYXNzRm4sXG59IGZyb20gJy4uL3NlbGVjdC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1tdWx0aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vdGFnL3RhZy5jb21wb25lbnQuc2NzcycsXG4gICAgJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQmFzZVNlbGVjdCxcbiAgICAgIHVzZUV4aXN0aW5nOiBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgZXh0ZW5kcyBCYXNlU2VsZWN0PFQsIFRbXT5cbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0XG57XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS1tdWx0aS1zZWxlY3QnKTtcbiAgYmVtU2VsZWN0QWxsOiBCZW0gPSBidWlsZEJlbSgnYXVpLW9wdGlvbicpO1xuICBzZWxlY3RlZE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEZpbHRlck9wdGlvbjxUPj4+O1xuICBzZWxlY3RBbGxTdGF0dXMkOiBPYnNlcnZhYmxlPFNlbGVjdEFsbFN0YXR1cz47XG4gIHNlbGVjdEFsbFN0YXR1czogU2VsZWN0QWxsU3RhdHVzO1xuICBoYXNFbmFibGVkT3B0aW9ucyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBfYWxsb3dTZWxlY3RBbGwgPSBmYWxzZTtcbiAgb3ZlcnJpZGUgaXNNdWx0aSA9IHRydWU7XG4gIG92ZXJyaWRlIG1vZGVsOiBUW10gPSBbXTtcblxuICB2YWx1ZXMkID0gdGhpcy5tb2RlbCQ7XG5cbiAgQElucHV0KClcbiAgdGFnQ2xhc3NGbjogVGFnQ2xhc3NGbjxUPjtcblxuICBASW5wdXQoKVxuICBtYXhSb3dDb3VudCA9IDA7XG5cbiAgQElucHV0KClcbiAgY3VzdG9tUm93SGVpZ2h0ID0gMDsgLy8gMDogdXNlIGRlZmF1bHQgc3R5bGUgY29uc3QgdmFsdWUsID4gMTogZm9yIGBgYHRhZ0NsYXNzRm5gYGAgbWF5YmUgYWZmZWN0IGxpbmVIZWlnaHRcblxuICBASW5wdXQoKVxuICBnZXQgYWxsb3dTZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93U2VsZWN0QWxsO1xuICB9XG5cbiAgc2V0IGFsbG93U2VsZWN0QWxsKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fYWxsb3dTZWxlY3RBbGwgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dFZhbHVlTWlycm9yJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXRWYWx1ZU1pcnJvcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpXG4gIGdldCBob3N0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aE1heFJvd0NvdW50Lmhvc3RQb3NpdGlvbigpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgZ2V0IGhvc3REaXNwbGF5KCkge1xuICAgIHJldHVybiB0aGlzLndpdGhNYXhSb3dDb3VudC5ob3N0RGlzcGxheSgpO1xuICB9XG5cbiAgaW5wdXRWYWx1ZSA9ICcnO1xuICBoYXNEaXNhYmxlZE9wdGlvbiA9IGZhbHNlO1xuXG4gIGdldCByb290Q2xhc3MoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSB8fCBDb21wb25lbnRTaXplLk1lZGl1bTtcbiAgICByZXR1cm4gYGF1aS1pbnB1dCAke3RoaXMuYmVtLmJsb2NrKHNpemUpfSAke1xuICAgICAgdGhpcy5kaXNhYmxlZCA/ICdpc0Rpc2FibGVkJyA6ICcnXG4gICAgfSAke3RoaXMuZm9jdXNlZCA/ICdpc0ZvY3VzZWQnIDogJyd9ICR7XG4gICAgICB0aGlzLmRpc3BsYXlDbGVhckJ0biA/ICdpc0NsZWFyYWJsZScgOiAnJ1xuICAgIH0gJHt0aGlzLm1heFJvd0NvdW50ID4gMCA/ICd3aXRoSGVpZ2h0TGltaXQnIDogJyd9YDtcbiAgfVxuXG4gIGdldCB0YWdTaXplKCkge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09IENvbXBvbmVudFNpemUuTGFyZ2VcbiAgICAgID8gQ29tcG9uZW50U2l6ZS5NZWRpdW1cbiAgICAgIDogQ29tcG9uZW50U2l6ZS5NaW5pO1xuICB9XG5cbiAgZ2V0IGlucHV0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmVtLmVsZW1lbnQoJ2lucHV0Jywge1xuICAgICAgaGlkZGVuOiB0aGlzLmlucHV0UmVhZG9ubHksXG4gICAgfSl9IGF1aS10YWcgYXVpLXRhZy0tJHt0aGlzLnRhZ1NpemV9YDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Q2xlYXJCdG4oKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJhYmxlICYmIHRoaXMubW9kZWwubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IG1heEhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy53aXRoTWF4Um93Q291bnQubWF4SGVpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHdpdGhNYXhSb3dDb3VudCA9IGNyZWF0ZVdpdGhNYXhSb3dDb3VudCh0aGlzKTtcblxuICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgdHJhY2tCeVZhbHVlID0gKF86IG51bWJlciwgaXRlbTogU2VsZWN0RmlsdGVyT3B0aW9uPFQ+KSA9PlxuICAgIHRoaXMudHJhY2tGbihpdGVtLnZhbHVlKTtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcihjZHIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1vZGVsJCxcbiAgICAgIChcbiAgICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzIGFzIE9ic2VydmFibGU8UXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4+XG4gICAgICApLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgICBvcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1hcChvcHRpb24gPT5cbiAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWwkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWxDb250ZXh0JCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkJCxcbiAgICAgICAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoW3ZhbHVlLCBsYWJlbCwgbGFiZWxDb250ZXh0LCBkaXNhYmxlZF0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogb2YoW10gYXMgQXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+PiksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZXMsIG9wdGlvbnNdKSA9PlxuICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgb3B0aW9uID0+IHRoaXMudHJhY2tGbihvcHRpb24udmFsdWUpID09PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4ob3B0aW9uLnZhbHVlKSksXG4gICAgICAgICAgICAgICAgICBsYWJlbENvbnRleHQ6IG9wdGlvbi5sYWJlbENvbnRleHQsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKHZhbHVlKSB8fCBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gc29ydCBkaXNhYmxlZCBvcHRpb25zIGFzIGZpcnN0XG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGlmIChhLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHRhcChvcHRpb25zID0+ICh0aGlzLmhhc0Rpc2FibGVkT3B0aW9uID0gb3B0aW9ucy5zb21lKG8gPT4gby5kaXNhYmxlZCkpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuc2VsZWN0QWxsU3RhdHVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hbGxPcHRpb25zJCxcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbYWxsT3B0aW9uc10pID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIC4uLihhbGxPcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgLmZpbHRlcigoeyB2aXNpYmxlLCBkaXNhYmxlZCB9KSA9PiB2aXNpYmxlICYmICFkaXNhYmxlZClcbiAgICAgICAgICAgIC5tYXAoKHsgc2VsZWN0ZWQkIH0pID0+IHNlbGVjdGVkJCksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIG1hcChzdGF0dXNlcyA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc3RhdHVzZXMuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyBTZWxlY3RBbGxTdGF0dXMuRW1wdHlcbiAgICAgICAgICA6IHNlbGVjdGVkLmxlbmd0aCAhPT0gc3RhdHVzZXMubGVuZ3RoXG4gICAgICAgICAgPyBTZWxlY3RBbGxTdGF0dXMuSW5kZXRlcm1pbmF0ZVxuICAgICAgICAgIDogU2VsZWN0QWxsU3RhdHVzLkNoZWNrZWQ7XG4gICAgICB9KSxcbiAgICAgIHN0YXJ0V2l0aChTZWxlY3RBbGxTdGF0dXMuRW1wdHkpLFxuICAgICAgdGFwKHNlbGVjdEFsbFN0YXR1cyA9PiAodGhpcy5zZWxlY3RBbGxTdGF0dXMgPSBzZWxlY3RBbGxTdGF0dXMpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICAgIHRoaXMuaGFzRW5hYmxlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmFsbE9wdGlvbnMkLFxuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbYWxsT3B0aW9uc10pID0+XG4gICAgICAgICAgISFhbGxPcHRpb25zLmZpbHRlcigoeyB2aXNpYmxlLCBkaXNhYmxlZCB9KSA9PiB2aXNpYmxlICYmICFkaXNhYmxlZClcbiAgICAgICAgICAgIC5sZW5ndGgsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBvblNob3dPcHRpb25zKCkge1xuICAgIHN1cGVyLm9uU2hvd09wdGlvbnMoKTtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSGlkZU9wdGlvbnMoKSB7XG4gICAgc3VwZXIub25IaWRlT3B0aW9ucygpO1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgc3VwZXIub25JbnB1dChldmVudCk7XG4gICAgdGhpcy5zZXRJbnB1dFdpZHRoKCk7XG4gICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gIH1cblxuICBvbklucHV0Rm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uSW5wdXRCbHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiZcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID09PSAnJyAmJlxuICAgICAgdGhpcy5tb2RlbC5sZW5ndGggPiAwICYmXG4gICAgICAhdGhpcy5oYXNEaXNhYmxlZE9wdGlvblxuICAgICkge1xuICAgICAgdGhpcy5yZW1vdmVWYWx1ZSh0aGlzLm1vZGVsW3RoaXMubW9kZWwubGVuZ3RoIC0gMV0pO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubW9kZWxcbiAgICAgICAgICAubWFwKHZhbHVlID0+IHRoaXMudHJhY2tGbih2YWx1ZSkpXG4gICAgICAgICAgLmluY2x1ZGVzKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLm9uS2V5RG93bihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5yZW1vdmVWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGlzQ3VzdG9tID0gIXRoaXMuY29udGVudE9wdGlvbnMuc29tZShcbiAgICAgICh7IHZhbHVlIH0pID0+IHZhbHVlID09PSBvcHRpb24udmFsdWUsXG4gICAgKTtcbiAgICBpZiAoaXNDdXN0b20pIHtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkT3B0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkVmFsdWUodmFsdWU6IFQpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm1vZGVsLmNvbmNhdCh2YWx1ZSk7XG4gICAgdGhpcy5lbWl0VmFsdWUodmFsdWVzKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRvb2x0aXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKHZhbHVlOiBUKSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5tb2RlbC5maWx0ZXIoXG4gICAgICBpdGVtID0+IHRoaXMudHJhY2tGbihpdGVtKSAhPT0gdGhpcy50cmFja0ZuKHZhbHVlKSxcbiAgICApO1xuICAgIHRoaXMuZW1pdFZhbHVlKHZhbHVlcyk7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMucmVzZXRJbnB1dCgpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbGVhclZhbHVlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZW1pdFZhbHVlKFtdKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDbGljaygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uc1ZhbHVlID0gdGhpcy5hbGxPcHRpb25zXG4gICAgICAuZmlsdGVyKCh7IHZpc2libGUsIGRpc2FibGVkIH0pID0+IHZpc2libGUgJiYgIWRpc2FibGVkKVxuICAgICAgLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RBbGxTdGF0dXMgPT09IFNlbGVjdEFsbFN0YXR1cy5DaGVja2VkKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZShcbiAgICAgICAgdGhpcy5tb2RlbC5maWx0ZXIodmFsdWUgPT4gIXRoaXMuaW5jbHVkZXModmlzaWJsZU9wdGlvbnNWYWx1ZSwgdmFsdWUpKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKFxuICAgICAgICB0aGlzLm1vZGVsLmNvbmNhdCh2aXNpYmxlT3B0aW9uc1ZhbHVlKS5yZWR1Y2U8VFtdPigoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmluY2x1ZGVzKGFjYywgY3VycikpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGN1cnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5jbHVkZXModmFsdWVzOiBUW10sIHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuIHZhbHVlcy5zb21lKHYgPT4gdGhpcy50cmFja0ZuKHYpID09PSB0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUluKHY6IFRbXSk6IFRbXSB7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICAgIHJldHVybiB2IHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElucHV0KCkge1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuc2V0SW5wdXRXaWR0aCgpO1xuICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gIH1cblxuICAvLyBjYWxjdWxhdGUgaW5wdXQgZWxlbWVudCB3aWR0aCBhY2NvcmRpbmcgdG8gaXRzIHZhbHVlXG4gIHByaXZhdGUgc2V0SW5wdXRXaWR0aCgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHZhbHVlO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgICBgJHt0aGlzLmlucHV0VmFsdWVNaXJyb3IubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aH1weGAsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cInJvb3RDbGFzc1wiXG4gICNzZWxlY3RSZWZcbiAgI3Rvb2x0aXBSZWY9XCJhdWlUb29sdGlwXCJcbiAgW2F1aVRvb2x0aXBdPVwidGVtcGxhdGVSZWZcIlxuICBbYXVpVG9vbHRpcERpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBzdGFydFwiXG4gIGF1aVRvb2x0aXBUeXBlPVwicGxhaW5cIlxuICAoYXVpVG9vbHRpcFNob3cpPVwib25TaG93T3B0aW9ucygpXCJcbiAgKGF1aVRvb2x0aXBIaWRlKT1cIm9uSGlkZU9wdGlvbnMoKVwiXG4gIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhIZWlnaHRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9fc3VmZml4XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhdWktbXVsdGktc2VsZWN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9faW5kaWNhdG9yXCJcbiAgICAgICAgW2ljb25dPVwibG9hZGluZyA/ICdzcGlubmVyJyA6ICdjYXJldF9kb3duX3MnXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLW11bHRpLXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICBpY29uPVwiY2xvc2Vfc21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxzcGFuXG4gICAgW2hpZGRlbl09XCJtb2RlbC5sZW5ndGggfHwgaW5wdXRSZWYudmFsdWUubGVuZ3RoXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ3BsYWNlaG9sZGVyJylcIlxuICA+XG4gICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgPC9zcGFuPlxuICA8YXVpLXRhZ1xuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5VmFsdWVcIlxuICAgIHR5cGU9XCJpbmZvXCJcbiAgICBbcm91bmRdPVwidHJ1ZVwiXG4gICAgW2JvcmRlcl09XCJ0cnVlXCJcbiAgICBbc2l6ZV09XCJ0YWdTaXplXCJcbiAgICBbY2xvc2VhYmxlXT1cIiFkaXNhYmxlZCAmJiAhb3B0aW9uLmRpc2FibGVkXCJcbiAgICAoY2xvc2UpPVwicmVtb3ZlVmFsdWUob3B0aW9uLnZhbHVlKVwiXG4gICAgW25nQ2xhc3NdPVwidGFnQ2xhc3NGbiAmJiB0YWdDbGFzc0ZuKG9wdGlvbi5sYWJlbCwgb3B0aW9uLnZhbHVlKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImlzVGVtcGxhdGVSZWYob3B0aW9uLmxhYmVsKTsgZWxzZSBsYWJlbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIm9wdGlvbi5sYWJlbENvbnRleHRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktdGFnPlxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRvbmx5XCJcbiAgICBbY2xhc3NdPVwiaW5wdXRDbGFzc1wiXG4gICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygpXCJcbiAgICAoYmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gIC8+XG4gIDxzcGFuXG4gICAgI2lucHV0VmFsdWVNaXJyb3JcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ21pcnJvcicpXCJcbiAgPlxuICAgIHt7IGlucHV0VmFsdWUgfX1cbiAgPC9zcGFuPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyXCJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI29wdGlvbkxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBhbGxvd1NlbGVjdEFsbCAmJlxuICAgICAgICAgIChoYXNFbmFibGVkT3B0aW9ucyQgfCBhc3luYykgJiZcbiAgICAgICAgICAoKGhhc1Zpc2libGVPcHRpb24kIHwgYXN5bmMpIHx8XG4gICAgICAgICAgICAoYWxsb3dDcmVhdGUgJiYgKGN1c3RvbUNyZWF0ZWRPcHRpb25zJCB8IGFzeW5jKS5sZW5ndGgpIHx8XG4gICAgICAgICAgICAoYWxsb3dDcmVhdGUgJiYgZmlsdGVyU3RyaW5nKSlcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXVpLW9wdGlvblwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbVNlbGVjdEFsbC5ibG9jayhzaXplJCB8IGFzeW5jKVwiXG4gICAgICAgICAgW2NsYXNzLmlzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtjbGFzcy5pc1NlbGVjdGVkXT1cIiEhKHNlbGVjdEFsbFN0YXR1cyQgfCBhc3luYylcIlxuICAgICAgICAgIFtjbGFzcy5pc011bHRpXT1cInRydWVcIlxuICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEFsbENsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJhdWktb3B0aW9uX19wb2ludGVyXCI+XG4gICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgW2ljb25dPVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdEFsbFN0YXR1cyQgfCBhc3luYykgPT09ICdjaGVja2VkJ1xuICAgICAgICAgICAgICAgICAgPyAnY2hlY2tfcydcbiAgICAgICAgICAgICAgICAgIDogJ3NxdWFyZV9zJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiEoc2VsZWN0QWxsU3RhdHVzJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2k+XG4gICAgICAgICAge3sgJ3NlbGVjdF9hbGwnIHwgYXVpSTE4biB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICNpbnB1dHRpbmdPcHRpb25cbiAgICAgICAgKm5nSWY9XCJhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcgJiYgIShoYXNNYXRjaGVkT3B0aW9uJCB8IGFzeW5jKVwiXG4gICAgICAgIFt2YWx1ZV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgICAgPlxuICAgICAgICB7eyBmaWx0ZXJTdHJpbmcgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd0NyZWF0ZVwiPlxuICAgICAgICA8YXVpLW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3VzdG9tQ3JlYXRlZE9wdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgKGhhc1Zpc2libGVPcHRpb24kIHwgYXN5bmMpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIChjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luYykubGVuZ3RoKSB8fFxuICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcpXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyX19wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXVpLW9wdGlvbi1wbGFjZWhvbGRlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19