@alauda/ui 7.3.3-beta.46 → 7.3.3-beta.48

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.
@@ -83,7 +83,7 @@ export class SelectComponent extends BaseSelect {
83
83
  provide: BaseSelect,
84
84
  useExisting: SelectComponent,
85
85
  },
86
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: InputGroupComponent, selector: "aui-input-group" }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: InputSuffixDirective, selector: "[auiInputSuffix]" }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionComponent, selector: "aui-option", inputs: ["label", "labelContext", "value", "disabled"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
86
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly || inaction\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;max-width:90vw;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: InputGroupComponent, selector: "aui-input-group" }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: InputSuffixDirective, selector: "[auiInputSuffix]" }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionComponent, selector: "aui-option", inputs: ["label", "labelContext", "value", "disabled"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SelectComponent, decorators: [{
89
89
  type: Component,
@@ -108,9 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
108
108
  OptionComponent,
109
109
  NgFor,
110
110
  AsyncPipe,
111
- ], template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
111
+ ], template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly || inaction\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;max-width:90vw;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
112
112
  }], propDecorators: { inputRef: [{
113
113
  type: ViewChild,
114
114
  args: ['inputRef', { static: true }]
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxFQUNGLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQW1DNUQsTUFBTSxPQUFPLGVBQ1gsU0FBUSxVQUFhO0lBSXJCLFFBQVEsQ0FBaUI7SUFFekIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFB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LEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsaUJBQWlCO3lCQUM3QjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsS0FBSzt3QkFDTCxTQUFTO3FCQUNWOzhCQU9ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBjb21iaW5lTGF0ZXN0LFxuICBvZixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQge1xuICBJbnB1dENvbXBvbmVudCxcbiAgSW5wdXRTdWZmaXhEaXJlY3RpdmUsXG4gIElucHV0R3JvdXBDb21wb25lbnQsXG59IGZyb20gJy4uL2lucHV0JztcbmltcG9ydCB7IGNvZXJjZVN0cmluZywgcHVibGlzaFJlZiB9IGZyb20gJy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcblxuaW1wb3J0IHsgQmFzZVNlbGVjdCB9IGZyb20gJy4vYmFzZS1zZWxlY3QnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuL3NlbGVjdC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBCYXNlU2VsZWN0LFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIElucHV0U3VmZml4RGlyZWN0aXZlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgZXh0ZW5kcyBCYXNlU2VsZWN0PFQ+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGlucHV0UmVmOiBJbnB1dENvbXBvbmVudDtcblxuICB2YWx1ZXMkID0gdGhpcy5tb2RlbCQuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAodmFsID0+IFt2YWxdKSk7XG5cbiAgc2VsZWN0ZWRPcHRpb24kOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbj47XG5cbiAgaGFzU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGdldCByb290Q2xhc3MoKSB7XG4gICAgcmV0dXJuIGBhdWktc2VsZWN0IGF1aS1zZWxlY3QtLSR7dGhpcy5zaXplfWA7XG4gIH1cblxuICBnZXQgY29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGBhdWktb3B0aW9uLWNvbnRhaW5lciBhdWktb3B0aW9uLWNvbnRhaW5lci0tJHt0aGlzLnNpemV9YDtcbiAgfVxuXG4gIGlzQ2xlYXJhYmxlID0gKGhhc1NlbGVjdGVkOiBib29sZWFuKSA9PlxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJhYmxlICYmIGhhc1NlbGVjdGVkO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24kID0gY29tYmluZUxhdGVzdChbXG4gICAgICAoXG4gICAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICAgKS5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGVkJCkpLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCBhcyB2b2lkKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBvcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChvcHRpb24gPT5cbiAgICAgICAgICAgICAgb3B0aW9uXG4gICAgICAgICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlJCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsJCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsQ29udGV4dCQsXG4gICAgICAgICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKFt2YWx1ZSwgbGFiZWwsIGxhYmVsQ29udGV4dF0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBvZihudWxsIGFzIHZvaWQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHRoaXMubW9kZWwkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtvcHRpb24sIHZhbHVlXSkgPT5cbiAgICAgICAgb3B0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCB8fFxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKG9wdGlvbi52YWx1ZSkgfHxcbiAgICAgICAgICAgICAgICBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKG9wdGlvbi52YWx1ZSkpLFxuICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yNDUxNVxuICAgICAgICAgICAgICBsYWJlbENvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAuLi4ob3B0aW9uLmxhYmVsQ29udGV4dCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsRm4/Lih2YWx1ZSkgfHwgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbih2YWx1ZSkpLFxuICAgICAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaGFzU2VsZWN0ZWQkID0gdGhpcy5zZWxlY3RlZE9wdGlvbiQucGlwZShcbiAgICAgIG1hcCgoeyBsYWJlbCB9KSA9PiAhIWxhYmVsKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb25WaXNpYmxlT3B0aW9ucyh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHN1cGVyLm9uU2hvd09wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25IaWRlT3B0aW9ucygpO1xuICAgICAgdGhpcy5pbnB1dFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVJbih2OiBUKTogVCB7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLmNsb3NlT3B0aW9uKCk7XG4gIH1cblxuICBjbGVhclZhbHVlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZW1pdFZhbHVlKG51bGwpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cInJvb3RDbGFzc1wiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmlzQ2xlYXJhYmxlXT1cImlzQ2xlYXJhYmxlKGhhc1NlbGVjdGVkJCB8IGFzeW5jKVwiXG4gIFtjbGFzcy5pc0ZpbHRlcmFibGVdPVwiZmlsdGVyYWJsZVwiXG4gIFtjbGFzcy5pc09wZW5lZF09XCJvcGVuZWRcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgYXVpVG9vbHRpcEFuaW1UeXBlPVwic2NhbGVZXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBWaXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZU9wdGlvbnMoJGV2ZW50KVwiXG4+XG4gIDxhdWktaW5wdXQtZ3JvdXA+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9faW5wdXRcIlxuICAgICAgW2NsYXNzLmF1aS1zZWxlY3RfX2lucHV0LWluYWN0aW9uXT1cImluYWN0aW9uXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBhdWktaW5wdXRcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiIShoYXNTZWxlY3RlZCQgfCBhc3luYykgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwiY2xvc2VPcHRpb24oKVwiXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgYXVpSW5wdXRTdWZmaXhcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9faWNvbi1jb250YWluZXJcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2luZGljYXRvclwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnY2FyZXRfZG93bl9zJ1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRPcHRpb24kIHwgYXN5bmMpICYmICFmaWx0ZXJTdHJpbmdcIlxuICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19sYWJlbC1jb250YWluZXIgYXVpLWlucHV0IGF1aS1pbnB1dC0te3sgc2l6ZSB9fVwiXG4gICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdWktc2VsZWN0X19sYWJlbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHNlbGVjdGVkT3B0aW9uJCB8IGFzeW5jKS5sYWJlbCBhcyBvcHRpb25MYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihvcHRpb25MYWJlbCk7IGVsc2UgbGFiZWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uTGFiZWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIihzZWxlY3RlZE9wdGlvbiQgfCBhc3luYykubGFiZWxDb250ZXh0XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsYWJlbD57eyBvcHRpb25MYWJlbCB9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXVpLWlucHV0LWdyb3VwPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjb3B0aW9uTGlzdFJlZlxuICAgICAgY2xhc3M9XCJhdWktb3B0aW9uLWNvbnRhaW5lcl9fY29udGVudFwiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgI2lucHV0dGluZ09wdGlvblxuICAgICAgICAqbmdJZj1cImFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZyAmJiAhKGhhc01hdGNoZWRPcHRpb24kIHwgYXN5bmMpXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlclN0cmluZ1wiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbHRlclN0cmluZyB9fVxuICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93Q3JlYXRlXCI+XG4gICAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgIShcbiAgICAgICAgICAoaGFzVmlzaWJsZU9wdGlvbiQgfCBhc3luYykgfHxcbiAgICAgICAgICAoYWxsb3dDcmVhdGUgJiYgKGN1c3RvbUNyZWF0ZWRPcHRpb25zJCB8IGFzeW5jKS5sZW5ndGgpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZylcbiAgICAgICAgKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX3BsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhdWktb3B0aW9uLXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxFQUNGLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQW1DNUQsTUFBTSxPQUFPLGVBQ1gsU0FBUSxVQUFhO0lBSXJCLFFBQVEsQ0FBaUI7SUFFekIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFB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LEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsaUJBQWlCO3lCQUM3QjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsS0FBSzt3QkFDTCxTQUFTO3FCQUNWOzhCQU9ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBjb21iaW5lTGF0ZXN0LFxuICBvZixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQge1xuICBJbnB1dENvbXBvbmVudCxcbiAgSW5wdXRTdWZmaXhEaXJlY3RpdmUsXG4gIElucHV0R3JvdXBDb21wb25lbnQsXG59IGZyb20gJy4uL2lucHV0JztcbmltcG9ydCB7IGNvZXJjZVN0cmluZywgcHVibGlzaFJlZiB9IGZyb20gJy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcblxuaW1wb3J0IHsgQmFzZVNlbGVjdCB9IGZyb20gJy4vYmFzZS1zZWxlY3QnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuL3NlbGVjdC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBCYXNlU2VsZWN0LFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIElucHV0U3VmZml4RGlyZWN0aXZlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgZXh0ZW5kcyBCYXNlU2VsZWN0PFQ+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGlucHV0UmVmOiBJbnB1dENvbXBvbmVudDtcblxuICB2YWx1ZXMkID0gdGhpcy5tb2RlbCQuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAodmFsID0+IFt2YWxdKSk7XG5cbiAgc2VsZWN0ZWRPcHRpb24kOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbj47XG5cbiAgaGFzU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGdldCByb290Q2xhc3MoKSB7XG4gICAgcmV0dXJuIGBhdWktc2VsZWN0IGF1aS1zZWxlY3QtLSR7dGhpcy5zaXplfWA7XG4gIH1cblxuICBnZXQgY29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGBhdWktb3B0aW9uLWNvbnRhaW5lciBhdWktb3B0aW9uLWNvbnRhaW5lci0tJHt0aGlzLnNpemV9YDtcbiAgfVxuXG4gIGlzQ2xlYXJhYmxlID0gKGhhc1NlbGVjdGVkOiBib29sZWFuKSA9PlxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJhYmxlICYmIGhhc1NlbGVjdGVkO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24kID0gY29tYmluZUxhdGVzdChbXG4gICAgICAoXG4gICAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICAgKS5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGVkJCkpLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCBhcyB2b2lkKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBvcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChvcHRpb24gPT5cbiAgICAgICAgICAgICAgb3B0aW9uXG4gICAgICAgICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlJCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsJCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsQ29udGV4dCQsXG4gICAgICAgICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKFt2YWx1ZSwgbGFiZWwsIGxhYmVsQ29udGV4dF0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBvZihudWxsIGFzIHZvaWQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHRoaXMubW9kZWwkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtvcHRpb24sIHZhbHVlXSkgPT5cbiAgICAgICAgb3B0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCB8fFxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKG9wdGlvbi52YWx1ZSkgfHxcbiAgICAgICAgICAgICAgICBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKG9wdGlvbi52YWx1ZSkpLFxuICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yNDUxNVxuICAgICAgICAgICAgICBsYWJlbENvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAuLi4ob3B0aW9uLmxhYmVsQ29udGV4dCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsRm4/Lih2YWx1ZSkgfHwgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbih2YWx1ZSkpLFxuICAgICAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaGFzU2VsZWN0ZWQkID0gdGhpcy5zZWxlY3RlZE9wdGlvbiQucGlwZShcbiAgICAgIG1hcCgoeyBsYWJlbCB9KSA9PiAhIWxhYmVsKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb25WaXNpYmxlT3B0aW9ucyh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHN1cGVyLm9uU2hvd09wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25IaWRlT3B0aW9ucygpO1xuICAgICAgdGhpcy5pbnB1dFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVJbih2OiBUKTogVCB7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLmNsb3NlT3B0aW9uKCk7XG4gIH1cblxuICBjbGVhclZhbHVlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZW1pdFZhbHVlKG51bGwpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cInJvb3RDbGFzc1wiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmlzQ2xlYXJhYmxlXT1cImlzQ2xlYXJhYmxlKGhhc1NlbGVjdGVkJCB8IGFzeW5jKVwiXG4gIFtjbGFzcy5pc0ZpbHRlcmFibGVdPVwiZmlsdGVyYWJsZVwiXG4gIFtjbGFzcy5pc09wZW5lZF09XCJvcGVuZWRcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgYXVpVG9vbHRpcEFuaW1UeXBlPVwic2NhbGVZXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBWaXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZU9wdGlvbnMoJGV2ZW50KVwiXG4+XG4gIDxhdWktaW5wdXQtZ3JvdXA+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9faW5wdXRcIlxuICAgICAgW2NsYXNzLmF1aS1zZWxlY3RfX2lucHV0LWluYWN0aW9uXT1cImluYWN0aW9uXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBhdWktaW5wdXRcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpbmFjdGlvblwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiIShoYXNTZWxlY3RlZCQgfCBhc3luYykgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwiY2xvc2VPcHRpb24oKVwiXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgYXVpSW5wdXRTdWZmaXhcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9faWNvbi1jb250YWluZXJcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2luZGljYXRvclwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnY2FyZXRfZG93bl9zJ1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRPcHRpb24kIHwgYXN5bmMpICYmICFmaWx0ZXJTdHJpbmdcIlxuICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19sYWJlbC1jb250YWluZXIgYXVpLWlucHV0IGF1aS1pbnB1dC0te3sgc2l6ZSB9fVwiXG4gICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdWktc2VsZWN0X19sYWJlbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHNlbGVjdGVkT3B0aW9uJCB8IGFzeW5jKS5sYWJlbCBhcyBvcHRpb25MYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihvcHRpb25MYWJlbCk7IGVsc2UgbGFiZWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uTGFiZWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIihzZWxlY3RlZE9wdGlvbiQgfCBhc3luYykubGFiZWxDb250ZXh0XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsYWJlbD57eyBvcHRpb25MYWJlbCB9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXVpLWlucHV0LWdyb3VwPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjb3B0aW9uTGlzdFJlZlxuICAgICAgY2xhc3M9XCJhdWktb3B0aW9uLWNvbnRhaW5lcl9fY29udGVudFwiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgI2lucHV0dGluZ09wdGlvblxuICAgICAgICAqbmdJZj1cImFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZyAmJiAhKGhhc01hdGNoZWRPcHRpb24kIHwgYXN5bmMpXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlclN0cmluZ1wiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbHRlclN0cmluZyB9fVxuICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93Q3JlYXRlXCI+XG4gICAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgIShcbiAgICAgICAgICAoaGFzVmlzaWJsZU9wdGlvbiQgfCBhc3luYykgfHxcbiAgICAgICAgICAoYWxsb3dDcmVhdGUgJiYgKGN1c3RvbUNyZWF0ZWRPcHRpb25zJCB8IGFzeW5jKS5sZW5ndGgpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIGZpbHRlclN0cmluZylcbiAgICAgICAgKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX3BsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhdWktb3B0aW9uLXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -156,7 +156,7 @@ export class TreeSelectComponent extends CommonFormControl {
156
156
  useExisting: forwardRef(() => TreeSelectComponent),
157
157
  multi: true,
158
158
  },
159
- ], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, static: true }, { propertyName: "tooltipRef", first: true, predicate: ["tooltipRef"], descendants: true, static: true }, { propertyName: "nodeListRef", first: true, predicate: ["nodeListRef"], descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipAnimType=\"scaleY\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-tree-select__icon-container .aui-icon{margin:0!important}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__indicator{display:flex}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex;pointer-events:auto}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(function () { return InputGroupComponent; }), selector: "aui-input-group" }, { kind: "component", type: i0.forwardRef(function () { return InputComponent; }), selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: i0.forwardRef(function () { return InputSuffixDirective; }), selector: "[auiInputSuffix]" }, { kind: "component", type: i0.forwardRef(function () { return IconComponent; }), selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: i0.forwardRef(function () { return TooltipDirective; }), selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return TreeNodeComponent; }), selector: "aui-tree-node", inputs: ["nodeData", "leafOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
159
+ ], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, static: true }, { propertyName: "tooltipRef", first: true, predicate: ["tooltipRef"], descendants: true, static: true }, { propertyName: "nodeListRef", first: true, predicate: ["nodeListRef"], descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipAnimType=\"scaleY\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;max-width:90vw;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-tree-select__icon-container .aui-icon{margin:0!important}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__indicator{display:flex}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex;pointer-events:auto}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(function () { return InputGroupComponent; }), selector: "aui-input-group" }, { kind: "component", type: i0.forwardRef(function () { return InputComponent; }), selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: i0.forwardRef(function () { return InputSuffixDirective; }), selector: "[auiInputSuffix]" }, { kind: "component", type: i0.forwardRef(function () { return IconComponent; }), selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: i0.forwardRef(function () { return TooltipDirective; }), selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return TreeNodeComponent; }), selector: "aui-tree-node", inputs: ["nodeData", "leafOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
160
160
  }
161
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TreeSelectComponent, decorators: [{
162
162
  type: Component,
@@ -175,7 +175,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
175
175
  NgIf,
176
176
  NgFor,
177
177
  forwardRef(() => TreeNodeComponent),
178
- ], template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipAnimType=\"scaleY\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-tree-select__icon-container .aui-icon{margin:0!important}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__indicator{display:flex}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex;pointer-events:auto}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
178
+ ], template: "<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipAnimType=\"scaleY\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleNodes($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeOption()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-tree-node-container{padding:8px 0;max-width:90vw;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tree-node-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10);position:relative;overflow:auto}.aui-tree-node-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-tree-node-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tree-node-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-tree-node-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-tree-node-container--small .aui-tree-node-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-tree-node-container--small .aui-tree-node-container__placeholder{font-size:var(--aui-font-size-s)}.aui-tree-select{display:inline-block;position:relative;width:100%}.aui-tree-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-tree-select__icon-container .aui-icon{margin:0!important}.aui-tree-select.isDisabled .aui-tree-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-tree-select__indicator{display:flex}.aui-tree-select__clear{display:none}.aui-tree-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-tree-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__indicator{display:none}.aui-tree-select.isClearable:not(.isDisabled):hover .aui-tree-select__clear{display:flex;pointer-events:auto}.aui-tree-select:not(.isDisabled):hover .aui-input{border-color:rgb(var(--aui-color-primary))}.aui-tree-select__input.aui-input[readonly]:not([disabled]){background-color:rgb(var(--aui-color-n-9));cursor:text}aui-tree-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-tree-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tree-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tree-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
179
179
  }], propDecorators: { nodesData: [{
180
180
  type: Input
181
181
  }], loading: [{
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
335
335
  type: ViewChildren,
336
336
  args: ['treeNodes']
337
337
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUVMLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUE4QmhFLE1BQU0sT0FBTyxtQkFBaUMsU0FBUSxpQkFBb0I7SUFDeEUsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBR0QsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUdoQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBR2pCLFVBQVUsQ0FBVTtJQUdwQixTQUFTLENBQVU7SUFHbkIsUUFBUSxDQUFVO0lBR2xCLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBRzFCLE9BQU8sR0FBZSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBR3BDLE9BQU8sQ0FBd0I7SUFHL0IsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFHMUMsSUFBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFHaEMsSUFBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFHdEIsU0FBUyxDQUEwQjtJQUduQyxVQUFVLENBQW1CO0lBR3ZDLFdBQVcsQ0FBMEI7SUFHckMsUUFBUSxDQUFpQjtJQUVqQixVQUFVLEdBQXVCLEVBQUUsQ0FBQztJQUNwQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ1YsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6RSxhQUFhLEdBQXVCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFdkUsY0FBYyxDQUFTO0lBQ3ZCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsWUFBWSxHQUF1QixFQUFFLENBQUM7SUFFdEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQUc7UUFDbEIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWdCO1FBQzdCLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1FBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQ3ZDLENBQUMsTUFBTSxDQUFDO0lBQ1gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUEwQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ3pELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVU7WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDOUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRWtCLE9BQU8sQ0FBQyxDQUFJO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlFLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNoRSxDQUFDO0lBR0QsWUFBWSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRSxhQUFhLENBQUMsUUFBNEIsRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2pCLENBQUMsU0FBNkIsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUM3QyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUN6RSxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFpQjtRQUN4QyxPQUFPLENBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUs7WUFDVixZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTLENBQUMsWUFBb0IsRUFBRSxJQUFpQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxRQUFRLENBQUksS0FBUTtRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBL01VLG1CQUFtQjsyRkFBbkIsbUJBQW1CLDhLQXFCVixpQkFBaUIseUNBR2pCLGlCQUFpQixzQ0FHakIsaUJBQWlCLHFKQTlDMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsZ2VDOURILGcyREFxRUEsa2tJREpJLG1CQUFtQixtR0FDbkIsY0FBYyxzSkFDZCxvQkFBb0Isb0dBQ3BCLGFBQWEsbU1BQ2IsZ0JBQWdCLGtXQUNoQixJQUFJLG9JQUNKLEtBQUssMEpBZ09JLGlCQUFpQjs7MkZBNU5qQixtQkFBbUI7a0JBMUIvQixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLGFBQ2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3FCQUNwQzs4QkFJRyxTQUFTO3NCQURaLEtBQUs7Z0JBZU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtnQkFJdkMsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO2dCQUl2QyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLElBQUk7c0JBREgsTUFBTTtnQkFJRyxTQUFTO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekMsV0FBVztzQkFEVixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQW1LekMsTUFBTSxPQUFPLGlCQUFpQjtJQXdDVDtJQXZDbkIsR0FBRyxHQUFRLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU3QixTQUFTLENBQWM7SUFDZCxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWpELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELFFBQVEsR0FBRyxJQUFJLENBQUM7SUFHaEIsUUFBUSxDQUEwQjtJQUdsQyxVQUFVLENBQWtDO0lBRTVDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFRSxNQUFNLENBQXlCO0lBQ2hELFNBQVMsQ0FBc0I7SUFDL0IsWUFBWSxDQUFzQjtJQUNsQyxRQUFRLENBQXNCO0lBRTlCLFlBQ0UsTUFBOEIsRUFDYixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUV2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUNELENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUMzQixXQUFXO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQ3RFLEVBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDM0IsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxFQUFFLENBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtZQUN6QixJQUFJLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUM3QyxFQUNELFVBQVUsRUFBRSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixTQUFTLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUUsQ0FDbkQsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoQixFQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDckMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWTtZQUNqQixxQkFBcUI7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3JDLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDbEQscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELHFCQUFxQixDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVMsRUFBRSxJQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUEwQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzNCLGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUM1QixDQUFDO1NBQ0g7SUFDSCxDQUFDO3VHQXBKVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixvSEFvQlIsaUJBQWlCLDhORTNUdkMsOGdEQXdEQSxzOENGK09hLGlCQUFpQiw0RkFGbEIsSUFBSSw2RkFBRSxhQUFhLDRKQUFFLEtBQUs7OzJGQUV6QixpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLGNBQ2QsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUM7dUlBVWpDLFFBQVE7c0JBRFgsS0FBSztnQkFjTixRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vZm9ybSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4uL2lucHV0L2hlbHBlci1kaXJlY3RpdmVzJztcbmltcG9ydCB7IElucHV0R3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQmVtLFxuICBidWlsZEJlbSxcbiAgY29lcmNlQXR0ckJvb2xlYW4sXG4gIGNvZXJjZVN0cmluZyxcbiAgcHVibGlzaFJlZixcbiAgc2Nyb2xsSW50b1ZpZXcsXG59IGZyb20gJy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRyYWNrRm4gfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0LnR5cGVzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtc2VsZWN0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyZWVTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgSW5wdXRTdWZmaXhEaXJlY3RpdmUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBUcmVlTm9kZUNvbXBvbmVudCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8VD4ge1xuICBASW5wdXQoKVxuICBnZXQgbm9kZXNEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2Rlc0RhdGE7XG4gIH1cblxuICBzZXQgbm9kZXNEYXRhKHZhbCkge1xuICAgIGlmICghdmFsIHx8IHZhbCA9PT0gdGhpcy5fbm9kZXNEYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX25vZGVzRGF0YSA9IHZhbDtcbiAgICB0aGlzLmZsYXR0ZWROb2RlcyA9IHRoaXMuZmxhdE5vZGVzRGF0YSh2YWwpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0RGlzcGxheSh0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZmlsdGVyYWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGNsZWFyYWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGxlYWZPbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm47XG5cbiAgQElucHV0KClcbiAgdHJhY2tGbjogVHJhY2tGbjxUPiA9IHRoaXMuX3RyYWNrRm47XG5cbiAgQElucHV0KClcbiAgbGFiZWxGbj86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgc2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgc2VsZWN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwUmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHRvb2x0aXBSZWY6IFRvb2x0aXBEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnbm9kZUxpc3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBub2RlTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogSW5wdXRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfbm9kZXNEYXRhOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXTtcbiAgcHJpdmF0ZSBfZmlsdGVyU3RyaW5nID0gJyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyU3RyaW5nJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuZmlsdGVyU3RyaW5nKTtcblxuICBmaWx0ZXJTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmZpbHRlclN0cmluZyQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnRhaW5lcldpZHRoOiBzdHJpbmc7XG4gIGRpc3BsYXlUZXh0ID0gJyc7XG4gIGZsYXR0ZWROb2RlczogQXJyYXk8VHJlZU5vZGU8VD4+ID0gW107XG5cbiAgZ2V0IGlzQ2xlYXJhYmxlKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsZWFyYWJsZSAmJiB0aGlzLmdldElucHV0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbHRpcFJlZi5pc0NyZWF0ZWQ7XG4gIH1cblxuICBnZXQgaW5wdXRSZWFkb25seSgpIHtcbiAgICByZXR1cm4gISh0aGlzLmZpbHRlcmFibGUgJiYgdGhpcy5vcGVuZWQpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU3RyaW5nO1xuICB9XG5cbiAgc2V0IGZpbHRlclN0cmluZyh2YWwpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl9maWx0ZXJTdHJpbmcpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN0cmluZyA9IHZhbDtcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCQubmV4dCh2YWwpO1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgb25WaXNpYmxlTm9kZXModmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5zZWxlY3RSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICB0aGlzLnNob3cuZW1pdCgpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ob2RlQ2xpY2sobm9kZTogVHJlZU5vZGVDb21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnNlbGVjdE5vZGUobm9kZSk7XG4gIH1cblxuICBnZXRWaXNpYmxlTm9kZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZWROb2Rlcy5maWx0ZXIobm9kZSA9PlxuICAgICAgdGhpcy5maWx0ZXJGbih0aGlzLmZpbHRlclN0cmluZywgbm9kZSksXG4gICAgKS5sZW5ndGg7XG4gIH1cblxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVOb2RlQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKCFub2RlLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZShub2RlLm5vZGVEYXRhLnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5PcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlT3B0aW9uKCkge1xuICAgIHRoaXMuaW5wdXRSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kaXNwbGF5VGV4dDtcbiAgICB0aGlzLnRvb2x0aXBSZWYuaGlkZSgpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0RGlzcGxheSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgcGlja2VkTm9kZSA9IHRoaXMuZmxhdHRlZE5vZGVzLmZpbmQoXG4gICAgICBub2RlID0+IHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSA9PT0gdGhpcy50cmFja0ZuKHZhbHVlKSxcbiAgICApO1xuICAgIHRoaXMuZGlzcGxheVRleHQgPSBwaWNrZWROb2RlXG4gICAgICA/IHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShwaWNrZWROb2RlKS50b1N0cmluZygpXG4gICAgICA6IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUobnVsbCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUluKHY6IFQpOiBUIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdERpc3BsYXkodik7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCA/IHRoaXMuZGlzcGxheVRleHQgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgZ2V0SW5wdXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJhYmxlICYmIHRoaXMub3BlbmVkID8gJycgOiB0aGlzLmRpc3BsYXlUZXh0O1xuICB9XG5cbiAgLy8gYHRoaXNgIGlzIG5vdCBhdmFpbGFibGUgaW4gYHRyYWNrQnlgLi4uXG4gIHRyYWNrQnlMYWJlbCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVOb2RlPFQ+KSA9PiB0aGlzLmdldExhYmVsRnJvbU5vZGUobm9kZSk7XG5cbiAgcHJpdmF0ZSBmbGF0Tm9kZXNEYXRhKG5vZGVzOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXSk6IEFycmF5PFRyZWVOb2RlPFQ+PiB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZShcbiAgICAgIChwcmV2VmFsdWU6IEFycmF5PFRyZWVOb2RlPFQ+PiwgY3VycmVudE5vZGUpID0+XG4gICAgICAgIHByZXZWYWx1ZS5jb25jYXQoY3VycmVudE5vZGUsIHRoaXMuZmxhdE5vZGVzRGF0YShjdXJyZW50Tm9kZS5jaGlsZHJlbikpLFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tTm9kZShub2RlOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxhYmVsRm4/Lihub2RlLnZhbHVlKSB8fFxuICAgICAgbm9kZS5sYWJlbCB8fFxuICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oZmlsdGVyU3RyaW5nOiBzdHJpbmcsIG5vZGU6IFRyZWVOb2RlPFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShub2RlKT8uaW5jbHVkZXMoZmlsdGVyU3RyaW5nID8/ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYWNrRm48VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLW5vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudCwgTmdGb3JdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS10cmVlLW5vZGUnKTtcblxuICBwcml2YXRlIF9ub2RlRGF0YTogVHJlZU5vZGU8VD47XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZURhdGEkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGU8VD4+KHRoaXMubm9kZURhdGEpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG5vZGVEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2RlRGF0YTtcbiAgfVxuXG4gIHNldCBub2RlRGF0YSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9ub2RlRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2RlRGF0YSA9IHZhbDtcbiAgICB0aGlzLm5vZGVEYXRhJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VBdHRyQm9vbGVhbiB9KVxuICBsZWFmT25seSA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0aXRsZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZHJlbigndHJlZU5vZGVzJylcbiAgY2hpbGROb2RlczogUXVlcnlMaXN0PFRyZWVOb2RlQ29tcG9uZW50PFQ+PjtcblxuICBzZWxlY3RlZCA9IGZhbHNlO1xuICB2aXNpYmxlID0gdHJ1ZTtcbiAgaXNMZWFmID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD47XG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VsZlZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB2aXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnNlbGVjdCA9IHNlbGVjdDtcbiAgICB0aGlzLnNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3QubW9kZWwkLFxuICAgICAgdGhpcy5ub2RlRGF0YSQkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS52YWx1ZSkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2VsZWN0VmFsdWUsIHNlbGZWYWx1ZV0pID0+XG4gICAgICAgICAgc2VsZWN0VmFsdWUgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdC50cmFja0ZuKHNlbGVjdFZhbHVlKSA9PT0gdGhpcy5zZWxlY3QudHJhY2tGbihzZWxmVmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRhcChzZWxlY3RlZCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gICAgdGhpcy5zZWxmVmlzaWJsZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0LmZpbHRlclN0cmluZyQsXG4gICAgICB0aGlzLm5vZGVEYXRhJCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlclN0cmluZywgbm9kZURhdGFdKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdC5maWx0ZXJGbihmaWx0ZXJTdHJpbmcsIG5vZGVEYXRhKSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBoYXNWaXNpYmxlQ2hpbGROb2RlcyQgPSB0aGlzLmNoaWxkTm9kZXMuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuY2hpbGROb2RlcyksXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzOiBRdWVyeUxpc3Q8VHJlZU5vZGVDb21wb25lbnQ8VD4+KSA9PlxuICAgICAgICBub2Rlcy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KG5vZGVzLm1hcChub2RlID0+IG5vZGUudmlzaWJsZSQpKVxuICAgICAgICAgIDogb2YoW2ZhbHNlXSksXG4gICAgICApLFxuICAgICAgbWFwKHZpc2libGUgPT4gdmlzaWJsZS5zb21lKEJvb2xlYW4pKSxcbiAgICAgIHRhcChoYXNWaXNpYmxlQ2hpbGRyZW4gPT4gKHRoaXMuaXNMZWFmID0gIWhhc1Zpc2libGVDaGlsZHJlbikpLFxuICAgICk7XG4gICAgdGhpcy52aXNpYmxlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxmVmlzaWJsZSQsXG4gICAgICBoYXNWaXNpYmxlQ2hpbGROb2RlcyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMudmlzaWJsZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubm9kZURhdGEuZGlzYWJsZWQgfHwgdGhpcy5ub2RlRGF0YS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxlYWZPbmx5ICYmICF0aGlzLmlzTGVhZikge1xuICAgICAgdGhpcy5zd2l0Y2hFeHBhbmRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdC5vbk5vZGVDbGljayh0aGlzKTtcbiAgfVxuXG4gIHN3aXRjaEV4cGFuZGVkKCkge1xuICAgIHRoaXMubm9kZURhdGEuZXhwYW5kZWQgPSAhdGhpcy5ub2RlRGF0YS5leHBhbmRlZDtcbiAgICBpZiAodGhpcy5ub2RlRGF0YS5leHBhbmRlZCAmJiB0aGlzLmNoaWxkTm9kZXMubGFzdCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcy5jaGlsZE5vZGVzLmxhc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdC51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS5leHBhbmRlZFxuICAgICAgPyB0aGlzLm5vZGVEYXRhLmV4cGFuZGVkSWNvbiB8fCB0aGlzLm5vZGVEYXRhLmljb25cbiAgICAgIDogdGhpcy5ub2RlRGF0YS5pY29uO1xuICB9XG5cbiAgdHJhY2tCeUxhYmVsKF86IG51bWJlciwgZGF0YTogVHJlZU5vZGU8VD4pIHtcbiAgICByZXR1cm4gZGF0YS5sYWJlbDtcbiAgfVxuXG4gIHNjcm9sbFRvTm9kZShub2RlOiBUcmVlTm9kZUNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLnNlbGVjdC5ub2RlTGlzdFJlZikge1xuICAgICAgc2Nyb2xsSW50b1ZpZXcoXG4gICAgICAgIHRoaXMuc2VsZWN0Lm5vZGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG5vZGUudGl0bGVSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0XCJcbiAgW2NsYXNzLmlzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaXNDbGVhcmFibGVdPVwiaXNDbGVhcmFibGVcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBBbmltVHlwZT1cInNjYWxlWVwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBWaXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZU5vZGVzKCRldmVudClcIlxuPlxuICA8YXVpLWlucHV0LWdyb3VwPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLXNlbGVjdF9faW5wdXRcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGF1aS1pbnB1dFxuICAgICAgW3ZhbHVlXT1cImdldElucHV0VmFsdWUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZG9ubHlcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJjbG9zZU9wdGlvbigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICBhdWlJbnB1dFN1ZmZpeFxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2luZGljYXRvclwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnY2FyZXRfZG93bl9zJ1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS10cmVlLXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICBpY29uPVwieG1hcmtfc21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hdWktaW5wdXQtZ3JvdXA+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjbm9kZUxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxhdWktdHJlZS1ub2RlXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG5vZGVzRGF0YTsgdHJhY2tCeTogdHJhY2tCeUxhYmVsXCJcbiAgICAgICAgW25vZGVEYXRhXT1cImRhdGFcIlxuICAgICAgICBbbGVhZk9ubHldPVwibGVhZk9ubHlcIlxuICAgICAgPjwvYXVpLXRyZWUtbm9kZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFnZXRWaXNpYmxlTm9kZUNvdW50KClcIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlLWNvbnRhaW5lcl9fcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF1aS10cmVlLW5vZGUtcGxhY2Vob2xkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXZcbiAgW2hpZGRlbl09XCIhdmlzaWJsZVwiXG4gIGNsYXNzPVwiYXVpLXRyZWUtbm9kZVwiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkXCJcbiAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICBbYXR0ci5kYXRhLXZhbHVlXT1cIm5vZGVEYXRhLnZhbHVlXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fY29udGVudFwiXG4gICAgW2NsYXNzLmlzTGVmdE9ubHldPVwibGVhZk9ubHkgJiYgIWlzTGVhZiAmJiAhbm9kZURhdGEuZGlzYWJsZWRcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cIm5vZGVEYXRhLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlX19sb2FkaW5nXCJcbiAgICAgIG1hcmdpbj1cImxlZnRcIlxuICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgIFtpY29uXT1cIidzcGlubmVyJ1wiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cIiFub2RlRGF0YS5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9faW5kaWNhdG9yXCJcbiAgICAgIFtjbGFzcy5pc1Zpc2libGVdPVwibm9kZURhdGEuY2hpbGRyZW5cIlxuICAgICAgbWFyZ2luPVwibGVmdFwiXG4gICAgICBzaXplPVwiMTZcIlxuICAgICAgW2ljb25dPVwibm9kZURhdGEuZXhwYW5kZWQgPyAnYW5nbGVfZG93bicgOiAnYW5nbGVfcmlnaHQnXCJcbiAgICAgIChjbGljayk9XCJzd2l0Y2hFeHBhbmRlZCgpXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgICA8c3BhblxuICAgICAgI3RpdGxlUmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX3RpdGxlXCJcbiAgICAgIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkIHx8IG5vZGVEYXRhLmxvYWRpbmdcIlxuICAgICAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgW2NsYXNzLnVuc2VsZWN0YWJsZV09XCJsZWFmT25seSAmJiAhaXNMZWFmXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICAqbmdJZj1cIm5vZGVEYXRhLmljb25cIlxuICAgICAgICBtYXJnaW49XCJyaWdodFwiXG4gICAgICAgIFtpY29uXT1cImdldEljb24oKVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIHt7IG5vZGVEYXRhLmxhYmVsIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwibm9kZURhdGEuY2hpbGRyZW5cIlxuICAgIFtoaWRkZW5dPVwiIW5vZGVEYXRhLmV4cGFuZGVkXCJcbiAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX2NoaWxkcmVuXCJcbiAgPlxuICAgIDxhdWktdHJlZS1ub2RlXG4gICAgICAjdHJlZU5vZGVzXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBub2RlRGF0YS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUxhYmVsXCJcbiAgICAgIFtub2RlRGF0YV09XCJkYXRhXCJcbiAgICAgIFtsZWFmT25seV09XCJsZWFmT25seVwiXG4gICAgPjwvYXVpLXRyZWUtbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUVMLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxtQkFBbUIs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ZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vZm9ybSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4uL2lucHV0L2hlbHBlci1kaXJlY3RpdmVzJztcbmltcG9ydCB7IElucHV0R3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQmVtLFxuICBidWlsZEJlbSxcbiAgY29lcmNlQXR0ckJvb2xlYW4sXG4gIGNvZXJjZVN0cmluZyxcbiAgcHVibGlzaFJlZixcbiAgc2Nyb2xsSW50b1ZpZXcsXG59IGZyb20gJy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRyYWNrRm4gfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0LnR5cGVzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtc2VsZWN0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyZWVTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgSW5wdXRTdWZmaXhEaXJlY3RpdmUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBUcmVlTm9kZUNvbXBvbmVudCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8VD4ge1xuICBASW5wdXQoKVxuICBnZXQgbm9kZXNEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2Rlc0RhdGE7XG4gIH1cblxuICBzZXQgbm9kZXNEYXRhKHZhbCkge1xuICAgIGlmICghdmFsIHx8IHZhbCA9PT0gdGhpcy5fbm9kZXNEYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX25vZGVzRGF0YSA9IHZhbDtcbiAgICB0aGlzLmZsYXR0ZWROb2RlcyA9IHRoaXMuZmxhdE5vZGVzRGF0YSh2YWwpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0RGlzcGxheSh0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgZmlsdGVyYWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGNsZWFyYWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGxlYWZPbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm47XG5cbiAgQElucHV0KClcbiAgdHJhY2tGbjogVHJhY2tGbjxUPiA9IHRoaXMuX3RyYWNrRm47XG5cbiAgQElucHV0KClcbiAgbGFiZWxGbj86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgc2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgc2VsZWN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwUmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHRvb2x0aXBSZWY6IFRvb2x0aXBEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnbm9kZUxpc3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBub2RlTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogSW5wdXRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfbm9kZXNEYXRhOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXTtcbiAgcHJpdmF0ZSBfZmlsdGVyU3RyaW5nID0gJyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyU3RyaW5nJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuZmlsdGVyU3RyaW5nKTtcblxuICBmaWx0ZXJTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmZpbHRlclN0cmluZyQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnRhaW5lcldpZHRoOiBzdHJpbmc7XG4gIGRpc3BsYXlUZXh0ID0gJyc7XG4gIGZsYXR0ZWROb2RlczogQXJyYXk8VHJlZU5vZGU8VD4+ID0gW107XG5cbiAgZ2V0IGlzQ2xlYXJhYmxlKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsZWFyYWJsZSAmJiB0aGlzLmdldElucHV0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbHRpcFJlZi5pc0NyZWF0ZWQ7XG4gIH1cblxuICBnZXQgaW5wdXRSZWFkb25seSgpIHtcbiAgICByZXR1cm4gISh0aGlzLmZpbHRlcmFibGUgJiYgdGhpcy5vcGVuZWQpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU3RyaW5nO1xuICB9XG5cbiAgc2V0IGZpbHRlclN0cmluZyh2YWwpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl9maWx0ZXJTdHJpbmcpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN0cmluZyA9IHZhbDtcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCQubmV4dCh2YWwpO1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgb25WaXNpYmxlTm9kZXModmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5zZWxlY3RSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICB0aGlzLnNob3cuZW1pdCgpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ob2RlQ2xpY2sobm9kZTogVHJlZU5vZGVDb21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnNlbGVjdE5vZGUobm9kZSk7XG4gIH1cblxuICBnZXRWaXNpYmxlTm9kZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZWROb2Rlcy5maWx0ZXIobm9kZSA9PlxuICAgICAgdGhpcy5maWx0ZXJGbih0aGlzLmZpbHRlclN0cmluZywgbm9kZSksXG4gICAgKS5sZW5ndGg7XG4gIH1cblxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVOb2RlQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKCFub2RlLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZShub2RlLm5vZGVEYXRhLnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5PcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlT3B0aW9uKCkge1xuICAgIHRoaXMuaW5wdXRSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kaXNwbGF5VGV4dDtcbiAgICB0aGlzLnRvb2x0aXBSZWYuaGlkZSgpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0RGlzcGxheSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgcGlja2VkTm9kZSA9IHRoaXMuZmxhdHRlZE5vZGVzLmZpbmQoXG4gICAgICBub2RlID0+IHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSA9PT0gdGhpcy50cmFja0ZuKHZhbHVlKSxcbiAgICApO1xuICAgIHRoaXMuZGlzcGxheVRleHQgPSBwaWNrZWROb2RlXG4gICAgICA/IHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShwaWNrZWROb2RlKS50b1N0cmluZygpXG4gICAgICA6IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lbWl0VmFsdWUobnVsbCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUluKHY6IFQpOiBUIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdERpc3BsYXkodik7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCA/IHRoaXMuZGlzcGxheVRleHQgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgZ2V0SW5wdXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJhYmxlICYmIHRoaXMub3BlbmVkID8gJycgOiB0aGlzLmRpc3BsYXlUZXh0O1xuICB9XG5cbiAgLy8gYHRoaXNgIGlzIG5vdCBhdmFpbGFibGUgaW4gYHRyYWNrQnlgLi4uXG4gIHRyYWNrQnlMYWJlbCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVOb2RlPFQ+KSA9PiB0aGlzLmdldExhYmVsRnJvbU5vZGUobm9kZSk7XG5cbiAgcHJpdmF0ZSBmbGF0Tm9kZXNEYXRhKG5vZGVzOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXSk6IEFycmF5PFRyZWVOb2RlPFQ+PiB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZShcbiAgICAgIChwcmV2VmFsdWU6IEFycmF5PFRyZWVOb2RlPFQ+PiwgY3VycmVudE5vZGUpID0+XG4gICAgICAgIHByZXZWYWx1ZS5jb25jYXQoY3VycmVudE5vZGUsIHRoaXMuZmxhdE5vZGVzRGF0YShjdXJyZW50Tm9kZS5jaGlsZHJlbikpLFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tTm9kZShub2RlOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxhYmVsRm4/Lihub2RlLnZhbHVlKSB8fFxuICAgICAgbm9kZS5sYWJlbCB8fFxuICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oZmlsdGVyU3RyaW5nOiBzdHJpbmcsIG5vZGU6IFRyZWVOb2RlPFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShub2RlKT8uaW5jbHVkZXMoZmlsdGVyU3RyaW5nID8/ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYWNrRm48VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLW5vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudCwgTmdGb3JdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS10cmVlLW5vZGUnKTtcblxuICBwcml2YXRlIF9ub2RlRGF0YTogVHJlZU5vZGU8VD47XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZURhdGEkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGU8VD4+KHRoaXMubm9kZURhdGEpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG5vZGVEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2RlRGF0YTtcbiAgfVxuXG4gIHNldCBub2RlRGF0YSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9ub2RlRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2RlRGF0YSA9IHZhbDtcbiAgICB0aGlzLm5vZGVEYXRhJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VBdHRyQm9vbGVhbiB9KVxuICBsZWFmT25seSA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0aXRsZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZHJlbigndHJlZU5vZGVzJylcbiAgY2hpbGROb2RlczogUXVlcnlMaXN0PFRyZWVOb2RlQ29tcG9uZW50PFQ+PjtcblxuICBzZWxlY3RlZCA9IGZhbHNlO1xuICB2aXNpYmxlID0gdHJ1ZTtcbiAgaXNMZWFmID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD47XG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VsZlZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB2aXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnNlbGVjdCA9IHNlbGVjdDtcbiAgICB0aGlzLnNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3QubW9kZWwkLFxuICAgICAgdGhpcy5ub2RlRGF0YSQkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS52YWx1ZSkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2VsZWN0VmFsdWUsIHNlbGZWYWx1ZV0pID0+XG4gICAgICAgICAgc2VsZWN0VmFsdWUgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdC50cmFja0ZuKHNlbGVjdFZhbHVlKSA9PT0gdGhpcy5zZWxlY3QudHJhY2tGbihzZWxmVmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRhcChzZWxlY3RlZCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gICAgdGhpcy5zZWxmVmlzaWJsZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0LmZpbHRlclN0cmluZyQsXG4gICAgICB0aGlzLm5vZGVEYXRhJCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlclN0cmluZywgbm9kZURhdGFdKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdC5maWx0ZXJGbihmaWx0ZXJTdHJpbmcsIG5vZGVEYXRhKSxcbiAgICAgICksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBoYXNWaXNpYmxlQ2hpbGROb2RlcyQgPSB0aGlzLmNoaWxkTm9kZXMuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuY2hpbGROb2RlcyksXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzOiBRdWVyeUxpc3Q8VHJlZU5vZGVDb21wb25lbnQ8VD4+KSA9PlxuICAgICAgICBub2Rlcy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KG5vZGVzLm1hcChub2RlID0+IG5vZGUudmlzaWJsZSQpKVxuICAgICAgICAgIDogb2YoW2ZhbHNlXSksXG4gICAgICApLFxuICAgICAgbWFwKHZpc2libGUgPT4gdmlzaWJsZS5zb21lKEJvb2xlYW4pKSxcbiAgICAgIHRhcChoYXNWaXNpYmxlQ2hpbGRyZW4gPT4gKHRoaXMuaXNMZWFmID0gIWhhc1Zpc2libGVDaGlsZHJlbikpLFxuICAgICk7XG4gICAgdGhpcy52aXNpYmxlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxmVmlzaWJsZSQsXG4gICAgICBoYXNWaXNpYmxlQ2hpbGROb2RlcyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMudmlzaWJsZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubm9kZURhdGEuZGlzYWJsZWQgfHwgdGhpcy5ub2RlRGF0YS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxlYWZPbmx5ICYmICF0aGlzLmlzTGVhZikge1xuICAgICAgdGhpcy5zd2l0Y2hFeHBhbmRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdC5vbk5vZGVDbGljayh0aGlzKTtcbiAgfVxuXG4gIHN3aXRjaEV4cGFuZGVkKCkge1xuICAgIHRoaXMubm9kZURhdGEuZXhwYW5kZWQgPSAhdGhpcy5ub2RlRGF0YS5leHBhbmRlZDtcbiAgICBpZiAodGhpcy5ub2RlRGF0YS5leHBhbmRlZCAmJiB0aGlzLmNoaWxkTm9kZXMubGFzdCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcy5jaGlsZE5vZGVzLmxhc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdC51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS5leHBhbmRlZFxuICAgICAgPyB0aGlzLm5vZGVEYXRhLmV4cGFuZGVkSWNvbiB8fCB0aGlzLm5vZGVEYXRhLmljb25cbiAgICAgIDogdGhpcy5ub2RlRGF0YS5pY29uO1xuICB9XG5cbiAgdHJhY2tCeUxhYmVsKF86IG51bWJlciwgZGF0YTogVHJlZU5vZGU8VD4pIHtcbiAgICByZXR1cm4gZGF0YS5sYWJlbDtcbiAgfVxuXG4gIHNjcm9sbFRvTm9kZShub2RlOiBUcmVlTm9kZUNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLnNlbGVjdC5ub2RlTGlzdFJlZikge1xuICAgICAgc2Nyb2xsSW50b1ZpZXcoXG4gICAgICAgIHRoaXMuc2VsZWN0Lm5vZGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG5vZGUudGl0bGVSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0XCJcbiAgW2NsYXNzLmlzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaXNDbGVhcmFibGVdPVwiaXNDbGVhcmFibGVcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBBbmltVHlwZT1cInNjYWxlWVwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBWaXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZU5vZGVzKCRldmVudClcIlxuPlxuICA8YXVpLWlucHV0LWdyb3VwPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLXNlbGVjdF9faW5wdXRcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGF1aS1pbnB1dFxuICAgICAgW3ZhbHVlXT1cImdldElucHV0VmFsdWUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZG9ubHlcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJjbG9zZU9wdGlvbigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICBhdWlJbnB1dFN1ZmZpeFxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2luZGljYXRvclwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnY2FyZXRfZG93bl9zJ1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS10cmVlLXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICBpY29uPVwieG1hcmtfc21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hdWktaW5wdXQtZ3JvdXA+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjbm9kZUxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxhdWktdHJlZS1ub2RlXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG5vZGVzRGF0YTsgdHJhY2tCeTogdHJhY2tCeUxhYmVsXCJcbiAgICAgICAgW25vZGVEYXRhXT1cImRhdGFcIlxuICAgICAgICBbbGVhZk9ubHldPVwibGVhZk9ubHlcIlxuICAgICAgPjwvYXVpLXRyZWUtbm9kZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFnZXRWaXNpYmxlTm9kZUNvdW50KClcIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlLWNvbnRhaW5lcl9fcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF1aS10cmVlLW5vZGUtcGxhY2Vob2xkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXZcbiAgW2hpZGRlbl09XCIhdmlzaWJsZVwiXG4gIGNsYXNzPVwiYXVpLXRyZWUtbm9kZVwiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkXCJcbiAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICBbYXR0ci5kYXRhLXZhbHVlXT1cIm5vZGVEYXRhLnZhbHVlXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fY29udGVudFwiXG4gICAgW2NsYXNzLmlzTGVmdE9ubHldPVwibGVhZk9ubHkgJiYgIWlzTGVhZiAmJiAhbm9kZURhdGEuZGlzYWJsZWRcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cIm5vZGVEYXRhLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlX19sb2FkaW5nXCJcbiAgICAgIG1hcmdpbj1cImxlZnRcIlxuICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgIFtpY29uXT1cIidzcGlubmVyJ1wiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cIiFub2RlRGF0YS5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9faW5kaWNhdG9yXCJcbiAgICAgIFtjbGFzcy5pc1Zpc2libGVdPVwibm9kZURhdGEuY2hpbGRyZW5cIlxuICAgICAgbWFyZ2luPVwibGVmdFwiXG4gICAgICBzaXplPVwiMTZcIlxuICAgICAgW2ljb25dPVwibm9kZURhdGEuZXhwYW5kZWQgPyAnYW5nbGVfZG93bicgOiAnYW5nbGVfcmlnaHQnXCJcbiAgICAgIChjbGljayk9XCJzd2l0Y2hFeHBhbmRlZCgpXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgICA8c3BhblxuICAgICAgI3RpdGxlUmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX3RpdGxlXCJcbiAgICAgIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkIHx8IG5vZGVEYXRhLmxvYWRpbmdcIlxuICAgICAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgW2NsYXNzLnVuc2VsZWN0YWJsZV09XCJsZWFmT25seSAmJiAhaXNMZWFmXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICAqbmdJZj1cIm5vZGVEYXRhLmljb25cIlxuICAgICAgICBtYXJnaW49XCJyaWdodFwiXG4gICAgICAgIFtpY29uXT1cImdldEljb24oKVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIHt7IG5vZGVEYXRhLmxhYmVsIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwibm9kZURhdGEuY2hpbGRyZW5cIlxuICAgIFtoaWRkZW5dPVwiIW5vZGVEYXRhLmV4cGFuZGVkXCJcbiAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX2NoaWxkcmVuXCJcbiAgPlxuICAgIDxhdWktdHJlZS1ub2RlXG4gICAgICAjdHJlZU5vZGVzXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBub2RlRGF0YS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUxhYmVsXCJcbiAgICAgIFtub2RlRGF0YV09XCJkYXRhXCJcbiAgICAgIFtsZWFmT25seV09XCJsZWFmT25seVwiXG4gICAgPjwvYXVpLXRyZWUtbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==