ets-fe-ng-sdk 18.0.21 → 18.0.23

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.
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, booleanAttribute, computed, effect, inject, input, model, signal, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, booleanAttribute, computed, effect, inject, input, model, signal, } from '@angular/core';
2
2
  import { faLock } from '@fortawesome/free-solid-svg-icons';
3
3
  import { BtnService } from './btn.service';
4
4
  import { SDKTranslatePipe } from '../../pipes/translate.pipe';
@@ -285,11 +285,11 @@ export class BtnComponent {
285
285
  this.disabled.set(false);
286
286
  }
287
287
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BtnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
288
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: BtnComponent, isStandalone: true, selector: "app-btn", inputs: { formSchema: { classPropertyName: "formSchema", publicName: "formSchema", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, centerBtn: { classPropertyName: "centerBtn", publicName: "centerBtn", isSignal: true, isRequired: false, transformFunction: null }, danger: { classPropertyName: "danger", publicName: "danger", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, verbose: { classPropertyName: "verbose", publicName: "verbose", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, _icon: { classPropertyName: "_icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, _rightIcon: { classPropertyName: "_rightIcon", publicName: "rightIcon", isSignal: false, isRequired: false, transformFunction: null }, _leftIcon: { classPropertyName: "_leftIcon", publicName: "leftIcon", isSignal: false, isRequired: false, transformFunction: null }, _type: { classPropertyName: "_type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, _group: { classPropertyName: "_group", publicName: "group", isSignal: false, isRequired: false, transformFunction: null }, actionType: { classPropertyName: "actionType", publicName: "actionType", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, excludeLogging: { classPropertyName: "excludeLogging", publicName: "excludeLogging", isSignal: false, isRequired: false, transformFunction: booleanAttribute2 }, loggingValue: { classPropertyName: "loggingValue", publicName: "loggingValue", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, customIcon: { classPropertyName: "customIcon", publicName: "customIcon", isSignal: false, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, forms: { classPropertyName: "forms", publicName: "forms", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "help", isSignal: true, isRequired: false, transformFunction: null }, _iconBtn: { classPropertyName: "_iconBtn", publicName: "iconBtn", isSignal: false, isRequired: false, transformFunction: booleanAttribute2 }, mclass: { classPropertyName: "mclass", publicName: "mclass", isSignal: true, isRequired: false, transformFunction: null }, showHelpIcon: { classPropertyName: "showHelpIcon", publicName: "showHelpIcon", isSignal: true, isRequired: false, transformFunction: null }, _rightCustomIcon: { classPropertyName: "_rightCustomIcon", publicName: "rightCustomIcon", isSignal: false, isRequired: false, transformFunction: null }, leftCustomIcon: { classPropertyName: "leftCustomIcon", publicName: "leftCustomIcon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, valid: { classPropertyName: "valid", publicName: "valid", isSignal: true, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, onFormInvalid: { classPropertyName: "onFormInvalid", publicName: "onFormInvalid", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { loading: "loadingChange", leftCustomIcon: "leftCustomIconChange", mclick: "mclick", disabled: "disabledChange" }, viewQueries: [{ propertyName: "innerText", first: true, predicate: ["innerText"], descendants: true }], ngImport: i0, template: "@if (verbose()) {\n <div class=\"\">\n formState():{{formState()|json}}\n </div>\n <div class=\"\">\n form():{{form()?.value|json}}\n </div>\n}\n<span\n class=\"{{ class() }} d-flex align-items-center justify-content-center\"\n [ngClass]=\"{ disabled: isDisabled(), mini: mini() }\"\n (click)=\"btnS.checkForm(this)\">\n @if (showHelpIcon() && help()) {\n <i class=\"fa fa-info-circle me-2 text-primary\" [matTooltip]=\"help() | appTranslate | async\"></i>\n }\n <button\n type=\"{{ actionType() }}\"\n class=\"{{ mclass() }} {{ _mclass() || 'btn' }} d-flex align-items-center \"\n [matBadge]=\"badge()\"\n [ngClass]=\"{\n changecolor: valid(),\n 'btn-raised': animate(),\n disabled: isDisabled(),\n isDanger: danger(),\n isWarning: warning(),\n invalid: formIsInvalid(),\n 'justify-content-center': centerBtn()\n }\"\n [disabled]=\"isDisabled()\"\n (click)=\"click($event)\"\n [matTooltip]=\"showHelpIcon() ? null : (help() | appTranslate | async)\">\n @if (!loading()) {\n @if (isLeftIcon()) {\n @if (isDisabled()) {\n <fa-icon [icon]=\"lockedIcon()\" />\n } @else if (leftCustomIcon()) {\n <i class=\"{{ leftCustomIcon() }}\"></i>\n } @else {\n <fa-icon [icon]=\"leftIcon()\" />\n }\n }\n }\n\n @if (computedText()) {\n <span\n class=\"\"\n [ngClass]=\"{\n 'ms-1': leftIcon() || leftCustomIcon(),\n 'me-1': rightIcon() || rightCustomIcon()\n }\">\n {{ computedText() | appTranslate | async }}\n </span>\n } @else {\n <span\n class=\" \"\n [ngClass]=\"{\n 'ms-1': innerText.innerText && (leftIcon() || leftCustomIcon()),\n 'me-1': innerText.innerText && (rightIcon() || rightCustomIcon())\n }\"\n #innerText\n appTranslator>\n <ng-content></ng-content>\n </span>\n }\n\n @if (loading()) {\n <span class=\"fa fa-spinner ms-{{ iconBtn() ? '' : '2' }} fa-spin\"></span>\n } @else {\n @if (isRightIcon()) {\n @if (isDisabled()) {\n <fa-icon [icon]=\"lockedIcon()\" />\n } @else if (rightCustomIcon()) {\n <i class=\"{{ rightCustomIcon() }}\"></i>\n } @else {\n <fa-icon [icon]=\"rightIcon()\" />\n }\n }\n }\n </button>\n</span>\n", styles: [".lite{padding:0}.disabled{cursor:not-allowed}.invalid{border:3px solid var(--bs-danger)}.mini button{height:auto!important;min-height:unset;padding:2px 5px}@keyframes animateDanger{0%{background-color:red;border-color:red;background-image:none;color:#fff}50%{background-color:red;border-color:red;background-image:none;color:#fff}}@keyframes animateWarning{0%{background-color:#ff8107;border-color:#ff8107;background-image:none;color:#000}50%{background-color:#ff8107;border-color:#ff8107;background-image:none;color:#000}}.isDanger{animation-name:animateDanger;animation-duration:1s;animation-iteration-count:infinite}.isWarning{animation-name:animateWarning;animation-duration:1s;animation-iteration-count:infinite}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "directive", type: TranslatorDirective, selector: "[appTranslator]", inputs: ["appTranslator"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: BtnComponent, isStandalone: true, selector: "app-btn", inputs: { formSchema: { classPropertyName: "formSchema", publicName: "formSchema", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, centerBtn: { classPropertyName: "centerBtn", publicName: "centerBtn", isSignal: true, isRequired: false, transformFunction: null }, danger: { classPropertyName: "danger", publicName: "danger", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, verbose: { classPropertyName: "verbose", publicName: "verbose", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, _icon: { classPropertyName: "_icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, _rightIcon: { classPropertyName: "_rightIcon", publicName: "rightIcon", isSignal: false, isRequired: false, transformFunction: null }, _leftIcon: { classPropertyName: "_leftIcon", publicName: "leftIcon", isSignal: false, isRequired: false, transformFunction: null }, _type: { classPropertyName: "_type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, _group: { classPropertyName: "_group", publicName: "group", isSignal: false, isRequired: false, transformFunction: null }, actionType: { classPropertyName: "actionType", publicName: "actionType", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, excludeLogging: { classPropertyName: "excludeLogging", publicName: "excludeLogging", isSignal: false, isRequired: false, transformFunction: booleanAttribute2 }, loggingValue: { classPropertyName: "loggingValue", publicName: "loggingValue", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, customIcon: { classPropertyName: "customIcon", publicName: "customIcon", isSignal: false, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, forms: { classPropertyName: "forms", publicName: "forms", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "help", isSignal: true, isRequired: false, transformFunction: null }, _iconBtn: { classPropertyName: "_iconBtn", publicName: "iconBtn", isSignal: false, isRequired: false, transformFunction: booleanAttribute2 }, mclass: { classPropertyName: "mclass", publicName: "mclass", isSignal: true, isRequired: false, transformFunction: null }, showHelpIcon: { classPropertyName: "showHelpIcon", publicName: "showHelpIcon", isSignal: true, isRequired: false, transformFunction: null }, _rightCustomIcon: { classPropertyName: "_rightCustomIcon", publicName: "rightCustomIcon", isSignal: false, isRequired: false, transformFunction: null }, leftCustomIcon: { classPropertyName: "leftCustomIcon", publicName: "leftCustomIcon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, valid: { classPropertyName: "valid", publicName: "valid", isSignal: true, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, onFormInvalid: { classPropertyName: "onFormInvalid", publicName: "onFormInvalid", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { loading: "loadingChange", leftCustomIcon: "leftCustomIconChange", mclick: "mclick", disabled: "disabledChange" }, viewQueries: [{ propertyName: "innerText", first: true, predicate: ["innerText"], descendants: true }], ngImport: i0, template: "@if (verbose()) {\n <div class=\"\">\n formState():{{formState()|json}}\n </div>\n <div class=\"\">\n form():{{form()?.value|json}}\n </div>\n}\n<span\n class=\"{{ class() }} d-flex align-items-center justify-content-center\"\n [ngClass]=\"{ disabled: isDisabled(), mini: mini() }\"\n (click)=\"btnS.checkForm(this)\">\n @if (showHelpIcon() && help()) {\n <i class=\"fa fa-info-circle me-2 text-primary\" [matTooltip]=\"help() | appTranslate | async\"></i>\n }\n <button\n type=\"{{ actionType() }}\"\n class=\"{{ mclass() }} {{ _mclass() || 'btn' }} d-flex align-items-center \"\n [matBadge]=\"badge()\"\n [ngClass]=\"{\n changecolor: valid(),\n 'btn-raised': animate(),\n disabled: isDisabled(),\n isDanger: danger(),\n isWarning: warning(),\n invalid: formIsInvalid(),\n 'justify-content-center': centerBtn()\n }\"\n [disabled]=\"isDisabled()\"\n (click)=\"click($event)\"\n [matTooltip]=\"showHelpIcon() ? null : (help() | appTranslate | async)\">\n @if (!loading()) {\n @if (isLeftIcon()) {\n @if (isDisabled()) {\n <fa-icon [icon]=\"lockedIcon()\" />\n } @else if (leftCustomIcon()) {\n <i class=\"{{ leftCustomIcon() }}\"></i>\n } @else {\n <fa-icon [icon]=\"leftIcon()\" />\n }\n }\n }\n\n @if (computedText()) {\n <span\n class=\"\"\n [ngClass]=\"{\n 'ms-1': leftIcon() || leftCustomIcon(),\n 'me-1': rightIcon() || rightCustomIcon()\n }\">\n {{ computedText() | appTranslate | async }}\n </span>\n } @else {\n <span\n class=\" \"\n [ngClass]=\"{\n 'ms-1': innerText.innerText && (leftIcon() || leftCustomIcon()),\n 'me-1': innerText.innerText && (rightIcon() || rightCustomIcon())\n }\"\n #innerText\n appTranslator>\n <ng-content></ng-content>\n </span>\n }\n\n @if (loading()) {\n <span class=\"fa fa-spinner ms-{{ iconBtn() ? '' : '2' }} fa-spin\"></span>\n } @else {\n @if (isRightIcon()) {\n @if (isDisabled()) {\n <fa-icon [icon]=\"lockedIcon()\" />\n } @else if (rightCustomIcon()) {\n <i class=\"{{ rightCustomIcon() }}\"></i>\n } @else {\n <fa-icon [icon]=\"rightIcon()\" />\n }\n }\n }\n </button>\n</span>\n", styles: [".lite{padding:0}.disabled{cursor:not-allowed}.invalid{border:3px solid var(--bs-danger)}.mini button{height:auto!important;min-height:unset;padding:2px 5px}@keyframes animateDanger{0%{background-color:red;border-color:red;background-image:none;color:#fff}50%{background-color:red;border-color:red;background-image:none;color:#fff}}@keyframes animateWarning{0%{background-color:#ff8107;border-color:#ff8107;background-image:none;color:#000}50%{background-color:#ff8107;border-color:#ff8107;background-image:none;color:#000}}.isDanger{animation-name:animateDanger;animation-duration:1s;animation-iteration-count:infinite}.isWarning{animation-name:animateWarning;animation-duration:1s;animation-iteration-count:infinite}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "directive", type: TranslatorDirective, selector: "[appTranslator]", inputs: ["appTranslator"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
289
289
  }
290
290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BtnComponent, decorators: [{
291
291
  type: Component,
292
- args: [{ selector: 'app-btn', standalone: true, imports: [
292
+ args: [{ selector: 'app-btn', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
293
293
  NgClass,
294
294
  NgIf,
295
295
  MatTooltipModule,
@@ -339,4 +339,4 @@ var OnFormInvalid;
339
339
  OnFormInvalid["disable"] = "disable";
340
340
  OnFormInvalid["warn"] = "warn";
341
341
  })(OnFormInvalid || (OnFormInvalid = {}));
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxH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QkFDakI7d0RBZ0NrQixLQUFLO3NCQUF2QixLQUFLO3VCQUFDLE1BQU07Z0JBWVcsVUFBVTtzQkFBakMsS0FBSzt1QkFBQyxXQUFXO2dCQU1LLFNBQVM7c0JBQS9CLEtBQUs7dUJBQUMsVUFBVTtnQkFPRSxLQUFLO3NCQUF2QixLQUFLO3VCQUFDLE1BQU07Z0JBT08sTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxPQUFPO2dCQWlFMkIsY0FBYztzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtnQkFDOUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQThGeUQsUUFBUTtzQkFBdEUsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQU9oQixnQkFBZ0I7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7Z0JBVXpCLE1BQU07c0JBQWYsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXOztBQW9FeEIsSUFBSyxhQUdKO0FBSEQsV0FBSyxhQUFhO0lBQ2hCLG9DQUFtQixDQUFBO0lBQ25CLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1BcnJheSxcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbFN0YXR1cyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWNvbkRlZmluaXRpb24sIGZhTG9jayB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5TZXJ2aWNlIH0gZnJvbSAnLi9idG4uc2VydmljZSc7XG5pbXBvcnQgeyBTREtUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSwgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSUZvcm1TY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUsIEJ0blR5cGUsIEJ0bkdyb3VwIH0gZnJvbSAnLi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmZ1bmN0aW9uIGJvb2xlYW5BdHRyaWJ1dGUyKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnRuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnRuLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gLy9cbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIEpzb25QaXBlLFxuICAgIFRyYW5zbGF0b3JEaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gIF0sXG59KSAvLyBJbmhlcml0ZWRcbmV4cG9ydCBjbGFzcyBCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogVG8gYmUgcGFzc2VkIHdoZW4gdG8gY2hlY2sgZm9yIHNwZWNpZmljIGludmFsaWQgZm9ybSBmaWVsZHMgKi9cbiAgcmVhZG9ubHkgZm9ybVNjaGVtYSA9IGlucHV0PElGb3JtU2NoZW1hW10+KCk7XG4gIHJlYWRvbmx5IGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZm9ybUlzSW52YWxpZCA9IGNvbXB1dGVkPGJvb2xlYW4+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1TdGF0ZSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICAgIGZvcm0gPSB0aGlzLmZvcm0oKSxcbiAgICAgICAgb25Gb3JtSW52YWxpZCA9IHRoaXMub25Gb3JtSW52YWxpZCgpLFxuICAgICAgICBmb3JtU2NoZW1hID0gdGhpcy5mb3JtU2NoZW1hKCk7XG5cbiAgICAgIHJldHVybiBmb3JtU3RhdGUgJiZcbiAgICAgICAgZm9ybVN0YXRlLmludmFsaWQgJiZcbiAgICAgICAgb25Gb3JtSW52YWxpZCA9PSBPbkZvcm1JbnZhbGlkLndhcm4gJiZcbiAgICAgICAgZm9ybVNjaGVtYT8ubGVuZ3RoXG4gICAgICAgID8gZm9ybVNjaGVtYS5zb21lKChmKSA9PiAoPEZvcm1Hcm91cD5mb3JtKS5jb250cm9sc1tmLmZpZWxkPy50b1N0cmluZygpXT8uaW52YWxpZClcbiAgICAgICAgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuICByZWFkb25seSBjZW50ZXJCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgZGFuZ2VyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgd2FybmluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZlcmJvc2UgPSBpbnB1dDxib29sZWFuPigpO1xuICAvLyBjb3VudGVyID0gc2lnbmFsKDApO1xuXG4gIHByb3RlY3RlZCBpY29uVHlwZTogSWNvblR5cGU7XG4gIHJlYWRvbmx5IGljb25CdG4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgnaWNvbicpIHNldCBfaWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgaWYgKHJlcy5pY29uUG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5yaWdodEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdyaWdodEljb24nKSBzZXQgX3JpZ2h0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgfVxuICBASW5wdXQoJ2xlZnRJY29uJykgc2V0IF9sZWZ0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogQnRuVHlwZSkge1xuICAgIGNvbnN0IHsgX2ljb24sIF9tY2xhc3MsIF90eXBlIH0gPSB0aGlzLmJ0blMuZ2V0VHlwZSh2KTtcbiAgICB0aGlzLl9tY2xhc3MudXBkYXRlKChtY2xhc3MpID0+IF9tY2xhc3MgfHwgbWNsYXNzKTtcbiAgICBpZiAoX2ljb24pIHRoaXMuX2ljb24gPSBfaWNvbjtcbiAgICBpZiAoX3R5cGUpIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgfVxuXG4gIEBJbnB1dCgnZ3JvdXAnKSBzZXQgX2dyb3VwKHY6IEJ0bkdyb3VwKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvbmUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnY2xvbmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ2xvbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdDcmVhdGUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLmN1c3RvbUljb24gPSB0aGlzLmJ0blMuZ2V0SWNvbignY2xvc2UnKS5pY29uU3RyaW5nO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2RlbGV0ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZG93bmxvYWQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZWRpdCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gJ2ZhIGZhLWV5ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NlYXJjaCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzaG93JztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ1Nob3cnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2F2ZSc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTdWJtaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzYXZlJzpcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSAnc3VibWl0JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJlYWRvbmx5IF9tY2xhc3MgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGFjdGlvblR5cGUgPSBpbnB1dDwnc3VibWl0JyB8ICdidXR0b24nIHwgJ3Jlc2V0Jz4oJ2J1dHRvbicpO1xuICByZWFkb25seSBhbmltYXRlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIgfSkgZXhjbHVkZUxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9nZ2luZ1ZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJhZGdlID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPihudWxsKTtcbiAgcmVhZG9ubHkgY2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsZWZ0IHNpZGUgaWNvblxuICAgKi9cbiAgQElucHV0KCkgc2V0IGN1c3RvbUljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5sZWZ0Q3VzdG9tSWNvbi5zZXQodik7XG4gIH1cblxuICAvLyBmb3JtU3RhdGUgPSBjb21wdXRlZDxJRm9ybVN0YXRlPigoKSA9PiB7XG4gIC8vICAgY29uc3QgZCA9IHRoaXMuY2hlY2tGb3JtU3RhdGUoKTtcblxuICAvLyAgIGlmICh0aGlzLmRlYnVnKCkpIHtcbiAgLy8gICAgIGRlYnVnZ2VyO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgcGVuZGluZzogdGhpcy5mb3JtPy5wZW5kaW5nLFxuICAvLyAgICAgZGlydHk6IHRoaXMuZm9ybT8uZGlydHksXG4gIC8vICAgICBpbnZhbGlkOiB0aGlzLmZvcm0/LmludmFsaWQsXG4gIC8vICAgICBwcmlzdGluZTogdGhpcy5mb3JtPy5wcmlzdGluZSxcbiAgLy8gICAgIHZhbGlkOiB0aGlzLmZvcm0/LnZhbGlkLFxuICAvLyAgIH07XG4gIC8vIH0pO1xuICByZWFkb25seSBjaGVja0Zvcm1TdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElGb3JtU3RhdGU+KHt9KTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1TdWI6IFN1YnNjcmlwdGlvbjtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zU3ViOiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dDxcbiAgICBGb3JtR3JvdXA8YW55PiB8IEZvcm1Db250cm9sPGFueT4gfCBGb3JtQXJyYXk8YW55PiB8IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT5cbiAgPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybVN0YXRlID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybSkucGlwZShcbiAgICAgIGZpbHRlcigoeCkgPT4gISF4KSxcbiAgICAgIHN3aXRjaE1hcCgoZm9ybSkgPT5cbiAgICAgICAgZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgdGhpcy5mb3JtKClcbiAgICAgICAgICAgICAgPyA8SUZvcm1TdGF0ZT57XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nOiB0aGlzLmZvcm0oKT8ucGVuZGluZyxcbiAgICAgICAgICAgICAgICAgIGRpcnR5OiB0aGlzLmZvcm0oKT8uZGlydHksXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkOiB0aGlzLmZvcm0oKT8uaW52YWxpZCxcbiAgICAgICAgICAgICAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm0oKT8ucHJpc3RpbmUsXG4gICAgICAgICAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtKCk/LnZhbGlkLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0aGlzLmZvcm0oKT8uc3RhdHVzLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICksXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm0oKTtcbiAgICAgICAgICAgIHJldHVybiBmb3JtXG4gICAgICAgICAgICAgID8gPElGb3JtU3RhdGU+e1xuICAgICAgICAgICAgICAgICAgcGVuZGluZzogZm9ybS5wZW5kaW5nLFxuICAgICAgICAgICAgICAgICAgZGlydHk6IGZvcm0uZGlydHksXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkOiBmb3JtLmludmFsaWQsXG4gICAgICAgICAgICAgICAgICBwcmlzdGluZTogZm9ybS5wcmlzdGluZSxcbiAgICAgICAgICAgICAgICAgIHZhbGlkOiBmb3JtLnZhbGlkLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBmb3JtLnN0YXR1cyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgZm9ybXMgPVxuICAgIGlucHV0PChGb3JtR3JvdXA8YW55PiB8IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4pW10+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3Jtc1N0YXRlID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybXMpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHgpID0+ICEheCAmJiB4Lmxlbmd0aCA+IDApLFxuICAgICAgc3dpdGNoTWFwKChmb3JtcykgPT5cbiAgICAgICAgbWVyZ2UoLi4uZm9ybXMubWFwKChmb3JtKSA9PiBmb3JtLnN0YXR1c0NoYW5nZXMpKS5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IHRoaXMuZm9ybXMoKTtcbiAgICAgICAgICAgIGlmICghZm9ybXMpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgZnM6IE9taXQ8SUZvcm1TdGF0ZSwgJ3N0YXR1cyc+ID0ge1xuICAgICAgICAgICAgICBwZW5kaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBkaXJ0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgaW52YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvcm1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCF4LnBlbmRpbmcpIGZzLnBlbmRpbmcgPSB4LnBlbmRpbmc7XG4gICAgICAgICAgICAgIGlmICgheC5kaXJ0eSkgZnMuZGlydHkgPSB4LmRpcnR5O1xuICAgICAgICAgICAgICBpZiAoIXguaW52YWxpZCkgZnMuaW52YWxpZCA9IHguaW52YWxpZDtcbiAgICAgICAgICAgICAgaWYgKCF4LnByaXN0aW5lKSBmcy5wcmlzdGluZSA9IHgucHJpc3RpbmU7XG4gICAgICAgICAgICAgIGlmICgheC52YWxpZCkgZnMudmFsaWQgPSB4LnZhbGlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZnM7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgcmVhZG9ubHkgaGVscCA9IGlucHV0PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBubyBsb25nZXIgbmVlZGVkIHRvIGRldGVjdCB0aGUgY29ycmVjdCBzcGFjaW5nIGJldHdlZW4gaWNvbiBhbmQgdGV4dFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiwgYWxpYXM6ICdpY29uQnRuJyB9KSBzZXQgX2ljb25CdG4odjogYm9vbGVhbikge1xuICAgIHRoaXMuaWNvbkJ0bi5zZXQodiB8fCBmYWxzZSk7XG4gIH1cblxuICByZWFkb25seSBtY2xhc3MgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuICByZWFkb25seSBzaG93SGVscEljb24gPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgcmlnaHRJY29uID0gc2lnbmFsPEljb25EZWZpbml0aW9uPihudWxsKTtcbiAgQElucHV0KHsgYWxpYXM6ICdyaWdodEN1c3RvbUljb24nIH0pIHNldCBfcmlnaHRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICByZWFkb25seSByaWdodEN1c3RvbUljb24gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgbGVmdEljb24gPSBzaWduYWw8SWNvbkRlZmluaXRpb24+KG51bGwpO1xuICByZWFkb25seSBsZWZ0Q3VzdG9tSWNvbiA9IG1vZGVsPHN0cmluZz4obnVsbCk7XG4gIHJlYWRvbmx5IHRleHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSB2YWxpZCA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBtaW5pID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIHJlYWRvbmx5IG9uRm9ybUludmFsaWQgPSBpbnB1dDxrZXlvZiB0eXBlb2YgT25Gb3JtSW52YWxpZD4oT25Gb3JtSW52YWxpZC5kaXNhYmxlKTtcbiAgQE91dHB1dCgpIG1jbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5uZXJUZXh0JykgaW5uZXJUZXh0OiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG4gIHJlYWRvbmx5IGxvY2tlZEljb24gPSBzaWduYWwoZmFMb2NrKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90ZXh0ID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gbW9kZWw8Ym9vbGVhbiB8IG51bGw+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY29tcHV0ZWRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0KCksXG4gICAgICBsb2NhbCA9IHRoaXMuX3RleHQoKTtcbiAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGxvY2FsIDogaW5wdXQ7XG4gIH0pO1xuICBwdWJsaWMgYnRuUyA9IGluamVjdChCdG5TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTGVmdEljb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxlZnRJY29uKCkgfHwgdGhpcy5sZWZ0Q3VzdG9tSWNvbigpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzUmlnaHRJY29uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yaWdodEljb24oKSB8fCB0aGlzLnJpZ2h0Q3VzdG9tSWNvbigpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZnMgPSB0aGlzLmZvcm1TdGF0ZSgpO1xuICAgICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgZXZlcnkgY2hlY2sgb2YgdGhlIGNvbXBvbmVudCdzIHZpZXcuIEFwcGxpZXMgdG8gY29tcG9uZW50cyBvbmx5LlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQnIHRvIHRoZSBjbGFzcy5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbWNsYXNzKCkpIHRoaXMuX3R5cGUgPSB0aGlzLmJ0blMuZGVmYXVsdFR5cGU7XG4gIH1cblxuICBzZXRMb2FkZXIodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh2YWwpO1xuICB9XG4gIGdldCBleHRyYWN0VGV4dCgpIHtcbiAgICByZXR1cm4gYENsaWNrZWQgb24gJHtcbiAgICAgIHRoaXMudGV4dCgpIHx8IHRoaXMuaW5uZXJUZXh0Py5uYXRpdmVFbGVtZW50Py5pbm5lckhUTUwgfHwgdGhpcy5pY29uVHlwZSB8fCAnYnV0dG9uJ1xuICAgIH0gJHt0aGlzLmxvZ2dpbmdWYWx1ZSA/ICdcXG5UcmFjayB2YWx1ZTogJyArIHRoaXMubG9nZ2luZ1ZhbHVlIDogJyd9YDtcbiAgfVxuICBjbGljaygkZXZlbnQpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSB8fCB0aGlzLmxvYWRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMubWNsaWNrLmVtaXQoJGV2ZW50KTtcbiAgICB0aGlzLmJ0blMubG9nQ2xpY2sodGhpcyk7XG4gIH1cblxuICByZWFkb25seSBpc0Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCgpLFxuICAgICAgdmFsaWQgPSB0aGlzLnZhbGlkKCksXG4gICAgICBvbkZvcm1JbnZhbGlkID0gdGhpcy5vbkZvcm1JbnZhbGlkKCksXG4gICAgICBmb3JtID0gdGhpcy5mb3JtU3RhdGUoKSxcbiAgICAgIGZvcm1zID0gdGhpcy5mb3Jtc1N0YXRlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGRpc2FibGVkIHx8XG4gICAgICAhdmFsaWQgfHxcbiAgICAgIChvbkZvcm1JbnZhbGlkID09IE9uRm9ybUludmFsaWQuZGlzYWJsZSAmJlxuICAgICAgICAoZm9ybT8uaW52YWxpZCB8fCBmb3JtPy5wZW5kaW5nIHx8IGZvcm1zPy5wZW5kaW5nKSkgfHxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfSk7XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChmYWxzZSk7XG4gIH1cbn1cbmVudW0gT25Gb3JtSW52YWxpZCB7XG4gIGRpc2FibGUgPSAnZGlzYWJsZScsXG4gIHdhcm4gPSAnd2FybicsXG59XG5pbnRlcmZhY2UgSUZvcm1TdGF0ZSB7XG4gIHBlbmRpbmc/OiBib29sZWFuO1xuICBkaXJ0eT86IGJvb2xlYW47XG4gIGludmFsaWQ/OiBib29sZWFuO1xuICBwcmlzdGluZT86IGJvb2xlYW47XG4gIHZhbGlkPzogYm9vbGVhbjtcbiAgc3RhdHVzPzogRm9ybUNvbnRyb2xTdGF0dXM7XG59XG4iLCJAaWYgKHZlcmJvc2UoKSkge1xuIDxkaXYgY2xhc3M9XCJcIj5cbiAgZm9ybVN0YXRlKCk6e3tmb3JtU3RhdGUoKXxqc29ufX1cbiA8L2Rpdj5cbiA8ZGl2IGNsYXNzPVwiXCI+XG4gIGZvcm0oKTp7e2Zvcm0oKT8udmFsdWV8anNvbn19XG4gPC9kaXY+XG59XG48c3BhblxuICBjbGFzcz1cInt7IGNsYXNzKCkgfX0gIGQtZmxleCAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKCksIG1pbmk6IG1pbmkoKSB9XCJcbiAgKGNsaWNrKT1cImJ0blMuY2hlY2tGb3JtKHRoaXMpXCI+XG4gIEBpZiAoc2hvd0hlbHBJY29uKCkgJiYgaGVscCgpKSB7XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZSBtZS0yIHRleHQtcHJpbWFyeVwiIFttYXRUb29sdGlwXT1cImhlbHAoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jXCI+PC9pPlxuICB9XG4gIDxidXR0b25cbiAgICB0eXBlPVwie3sgYWN0aW9uVHlwZSgpIH19XCJcbiAgICBjbGFzcz1cInt7IG1jbGFzcygpIH19IHt7IF9tY2xhc3MoKSB8fCAnYnRuJyB9fSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIFwiXG4gICAgW21hdEJhZGdlXT1cImJhZGdlKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGNoYW5nZWNvbG9yOiB2YWxpZCgpLFxuICAgICAgJ2J0bi1yYWlzZWQnOiBhbmltYXRlKCksXG4gICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCgpLFxuICAgICAgaXNEYW5nZXI6IGRhbmdlcigpLFxuICAgICAgaXNXYXJuaW5nOiB3YXJuaW5nKCksXG4gICAgICBpbnZhbGlkOiBmb3JtSXNJbnZhbGlkKCksXG4gICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IGNlbnRlckJ0bigpXG4gICAgfVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIlxuICAgIFttYXRUb29sdGlwXT1cInNob3dIZWxwSWNvbigpID8gbnVsbCA6IChoZWxwKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYylcIj5cbiAgICBAaWYgKCFsb2FkaW5nKCkpIHtcbiAgICAgIEBpZiAoaXNMZWZ0SWNvbigpKSB7XG4gICAgICAgIEBpZiAoaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibG9ja2VkSWNvbigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAobGVmdEN1c3RvbUljb24oKSkge1xuICAgICAgICAgIDxpIGNsYXNzPVwie3sgbGVmdEN1c3RvbUljb24oKSB9fVwiPjwvaT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibGVmdEljb24oKVwiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGNvbXB1dGVkVGV4dCgpKSB7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnbXMtMSc6IGxlZnRJY29uKCkgfHwgbGVmdEN1c3RvbUljb24oKSxcbiAgICAgICAgICAnbWUtMSc6IHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpXG4gICAgICAgIH1cIj5cbiAgICAgICAge3sgY29tcHV0ZWRUZXh0KCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCIgXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdtcy0xJzogaW5uZXJUZXh0LmlubmVyVGV4dCAmJiAobGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpKSxcbiAgICAgICAgICAnbWUtMSc6IGlubmVyVGV4dC5pbm5lclRleHQgJiYgKHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpKVxuICAgICAgICB9XCJcbiAgICAgICAgI2lubmVyVGV4dFxuICAgICAgICBhcHBUcmFuc2xhdG9yPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBtcy17eyBpY29uQnRuKCkgPyAnJyA6ICcyJyB9fSBmYS1zcGluXCI+PC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChpc1JpZ2h0SWNvbigpKSB7XG4gICAgICAgIEBpZiAoaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibG9ja2VkSWNvbigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAocmlnaHRDdXN0b21JY29uKCkpIHtcbiAgICAgICAgICA8aSBjbGFzcz1cInt7IHJpZ2h0Q3VzdG9tSWNvbigpIH19XCI+PC9pPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJyaWdodEljb24oKVwiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvYnV0dG9uPlxuPC9zcGFuPlxuIl19
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBTSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRXBFLFNBQVMsaUJBQWlCLENBQUMsS0FBbUM7SUFDNUQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBb0JELE1BQU0sT0FBTyxZQUFZO0lBOEJ2QixJQUFtQixLQUFLLENBQUMsQ0FBVztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBd0IsVUFBVSxDQUFDLENBQVc7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBdUIsU0FBUyxDQUFDLENBQVc7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBbUIsS0FBSyxDQUFDLENBQVU7UUFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBb0IsTUFBTSxDQUFDLENBQVc7UUFDcEMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO2dCQUN2QixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFRRDs7T0FFRztJQUNILElBQWEsVUFBVSxDQUFDLENBQVM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQXlGRDs7T0FFRztJQUNILElBQStELFFBQVEsQ0FBQyxDQUFVO1FBQ2hGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBS0QsSUFBeUMsZ0JBQWdCLENBQUMsQ0FBUztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBc0JEO1FBbFFBLGtFQUFrRTtRQUN6RCxlQUFVLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBQ3BDLFVBQUssR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUN6QixrQkFBYSxHQUFHLFFBQVEsQ0FDL0IsR0FBRyxFQUFFO1lBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUNoQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUNsQixhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUNwQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWpDLE9BQU8sU0FBUztnQkFDZCxTQUFTLENBQUMsT0FBTztnQkFDakIsYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJO2dCQUNuQyxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFhLElBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDbEYsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsRUFDRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FDbkIsQ0FBQztRQUNPLGNBQVMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMzQixZQUFPLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFJM0IsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBZ0doQyxZQUFPLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxLQUFLLENBQWdDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGlCQUE4QixFQUFFLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2RCxVQUFLLEdBQUcsS0FBSyxDQUFrQixJQUFJLENBQUMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFRakMsMkNBQTJDO1FBQzNDLHFDQUFxQztRQUVyQyx3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLE1BQU07UUFDTixhQUFhO1FBQ2IsbUNBQW1DO1FBQ25DLCtCQUErQjtRQUMvQixtQ0FBbUM7UUFDbkMscUNBQXFDO1FBQ3JDLCtCQUErQjtRQUMvQixPQUFPO1FBQ1AsTUFBTTtRQUNHLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUM7UUFDL0QsbUNBQW1DO1FBQ25DLG9DQUFvQztRQUMzQixTQUFJLEdBQUcsS0FBSyxFQUVsQixDQUFDO1FBQ2UsY0FBUyxHQUFHLFFBQVEsQ0FDckMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzFCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsQixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsU0FBUyxDQUNQLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxDQUFDLENBQWE7Z0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUs7Z0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTztnQkFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRO2dCQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUs7Z0JBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTTthQUM1QjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQ1QsRUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSTtnQkFDVCxDQUFDLENBQWE7b0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDcEI7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLENBQUM7UUFDTyxVQUFLLEdBQ1osS0FBSyxFQUFzRixDQUFDO1FBQzNFLGVBQVUsR0FBRyxRQUFRLENBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDbEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDeEIsTUFBTSxFQUFFLEdBQStCO2dCQUNyQyxPQUFPLEVBQUUsSUFBSTtnQkFDYixLQUFLLEVBQUUsSUFBSTtnQkFDWCxPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsSUFBSTtnQkFDZCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUM7WUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTztvQkFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztvQkFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTztvQkFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUTtvQkFBRSxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztvQkFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLENBQUM7UUFFTyxTQUFJLEdBQUcsS0FBSyxFQUE2QixDQUFDO1FBUTFDLFdBQU0sR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFJekMsb0JBQWUsR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDckMsU0FBSSxHQUFHLEtBQUssRUFBNkIsQ0FBQztRQUMxQyxVQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLFNBQUksR0FBRyxLQUFLLENBQVUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGlCQUE4QixFQUFFLENBQUMsQ0FBQztRQUM1RSxrQkFBYSxHQUFHLEtBQUssQ0FBNkIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdCLGVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEIsVUFBSyxHQUFHLE1BQU0sQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLEtBQUssQ0FBaUIsS0FBSyxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0ksU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQWlDbkYsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUFFLFFBQVEsQ0FBQztZQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQzlCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQ3BCLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQ3ZCLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUNMLFFBQVE7Z0JBQ1IsQ0FBQyxLQUFLO2dCQUNOLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxPQUFPO29CQUNyQyxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksSUFBSSxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELEtBQUssQ0FDTixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUE1Q0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQUUsUUFBUSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQiwrRUFBK0U7UUFDL0UsaURBQWlEO0lBQ25ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFELENBQUM7SUFFRCxTQUFTLENBQUMsR0FBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxjQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUM5RSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTTtRQUNWLFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBa0JELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBeFRVLFlBQVk7a0dBQVosWUFBWSxvN0RBdEJoQixpQkFBaUIscStCQUFqQixpQkFBaUIsMDZDQ3RDMUIsbzFFQWdGQSx5d0JEL0JJLE9BQU8sbUZBRVAsZ0JBQWdCLDRUQUNoQixjQUFjLDJQQUNkLGlCQUFpQiw4UkFDakIsUUFBUSw2Q0FDUixtQkFBbUIsa0ZBQ25CLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFHUCxZQUFZO2tCQW5CeEIsU0FBUzsrQkFDRSxTQUFTLGNBR1AsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBRXRDO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsU0FBUzt3QkFDVCxnQkFBZ0I7cUJBQ2pCO3dEQWdDa0IsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQVlXLFVBQVU7c0JBQWpDLEtBQUs7dUJBQUMsV0FBVztnQkFNSyxTQUFTO3NCQUEvQixLQUFLO3VCQUFDLFVBQVU7Z0JBT0UsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQU9PLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsT0FBTztnQkFpRTJCLGNBQWM7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzlCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkE4RnlELFFBQVE7c0JBQXRFLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFPaEIsZ0JBQWdCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2dCQVV6QixNQUFNO3NCQUFmLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVzs7QUFvRXhCLElBQUssYUFHSjtBQUhELFdBQUssYUFBYTtJQUNoQixvQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLGFBQWEsS0FBYixhQUFhLFFBR2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBGb3JtQXJyYXksXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2xTdGF0dXMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEljb25EZWZpbml0aW9uLCBmYUxvY2sgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgQnRuU2VydmljZSB9IGZyb20gJy4vYnRuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RyYW5zbGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBBc3luY1BpcGUsIEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElGb3JtU2NoZW1hIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc2NoZW1hLm1vZGVsJztcbmltcG9ydCB7IEljb25UeXBlLCBCdG5UeXBlLCBCdG5Hcm91cCB9IGZyb20gJy4vYnRuLm1vZGVsJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5mdW5jdGlvbiBib29sZWFuQXR0cmlidXRlMih2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYnRuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J0bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J0bi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gLy9cbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIEpzb25QaXBlLFxuICAgIFRyYW5zbGF0b3JEaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gIF0sXG59KSAvLyBJbmhlcml0ZWRcbmV4cG9ydCBjbGFzcyBCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogVG8gYmUgcGFzc2VkIHdoZW4gdG8gY2hlY2sgZm9yIHNwZWNpZmljIGludmFsaWQgZm9ybSBmaWVsZHMgKi9cbiAgcmVhZG9ubHkgZm9ybVNjaGVtYSA9IGlucHV0PElGb3JtU2NoZW1hW10+KCk7XG4gIHJlYWRvbmx5IGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZm9ybUlzSW52YWxpZCA9IGNvbXB1dGVkPGJvb2xlYW4+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1TdGF0ZSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICAgIGZvcm0gPSB0aGlzLmZvcm0oKSxcbiAgICAgICAgb25Gb3JtSW52YWxpZCA9IHRoaXMub25Gb3JtSW52YWxpZCgpLFxuICAgICAgICBmb3JtU2NoZW1hID0gdGhpcy5mb3JtU2NoZW1hKCk7XG5cbiAgICAgIHJldHVybiBmb3JtU3RhdGUgJiZcbiAgICAgICAgZm9ybVN0YXRlLmludmFsaWQgJiZcbiAgICAgICAgb25Gb3JtSW52YWxpZCA9PSBPbkZvcm1JbnZhbGlkLndhcm4gJiZcbiAgICAgICAgZm9ybVNjaGVtYT8ubGVuZ3RoXG4gICAgICAgID8gZm9ybVNjaGVtYS5zb21lKChmKSA9PiAoPEZvcm1Hcm91cD5mb3JtKS5jb250cm9sc1tmLmZpZWxkPy50b1N0cmluZygpXT8uaW52YWxpZClcbiAgICAgICAgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuICByZWFkb25seSBjZW50ZXJCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgZGFuZ2VyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgd2FybmluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZlcmJvc2UgPSBpbnB1dDxib29sZWFuPigpO1xuICAvLyBjb3VudGVyID0gc2lnbmFsKDApO1xuXG4gIHByb3RlY3RlZCBpY29uVHlwZTogSWNvblR5cGU7XG4gIHJlYWRvbmx5IGljb25CdG4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgnaWNvbicpIHNldCBfaWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgaWYgKHJlcy5pY29uUG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5yaWdodEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdyaWdodEljb24nKSBzZXQgX3JpZ2h0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgfVxuICBASW5wdXQoJ2xlZnRJY29uJykgc2V0IF9sZWZ0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogQnRuVHlwZSkge1xuICAgIGNvbnN0IHsgX2ljb24sIF9tY2xhc3MsIF90eXBlIH0gPSB0aGlzLmJ0blMuZ2V0VHlwZSh2KTtcbiAgICB0aGlzLl9tY2xhc3MudXBkYXRlKChtY2xhc3MpID0+IF9tY2xhc3MgfHwgbWNsYXNzKTtcbiAgICBpZiAoX2ljb24pIHRoaXMuX2ljb24gPSBfaWNvbjtcbiAgICBpZiAoX3R5cGUpIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgfVxuXG4gIEBJbnB1dCgnZ3JvdXAnKSBzZXQgX2dyb3VwKHY6IEJ0bkdyb3VwKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvbmUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnY2xvbmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ2xvbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdDcmVhdGUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLmN1c3RvbUljb24gPSB0aGlzLmJ0blMuZ2V0SWNvbignY2xvc2UnKS5pY29uU3RyaW5nO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2RlbGV0ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZG93bmxvYWQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZWRpdCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gJ2ZhIGZhLWV5ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NlYXJjaCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzaG93JztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ1Nob3cnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2F2ZSc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTdWJtaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzYXZlJzpcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSAnc3VibWl0JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJlYWRvbmx5IF9tY2xhc3MgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGFjdGlvblR5cGUgPSBpbnB1dDwnc3VibWl0JyB8ICdidXR0b24nIHwgJ3Jlc2V0Jz4oJ2J1dHRvbicpO1xuICByZWFkb25seSBhbmltYXRlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIgfSkgZXhjbHVkZUxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9nZ2luZ1ZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJhZGdlID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPihudWxsKTtcbiAgcmVhZG9ubHkgY2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsZWZ0IHNpZGUgaWNvblxuICAgKi9cbiAgQElucHV0KCkgc2V0IGN1c3RvbUljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5sZWZ0Q3VzdG9tSWNvbi5zZXQodik7XG4gIH1cblxuICAvLyBmb3JtU3RhdGUgPSBjb21wdXRlZDxJRm9ybVN0YXRlPigoKSA9PiB7XG4gIC8vICAgY29uc3QgZCA9IHRoaXMuY2hlY2tGb3JtU3RhdGUoKTtcblxuICAvLyAgIGlmICh0aGlzLmRlYnVnKCkpIHtcbiAgLy8gICAgIGRlYnVnZ2VyO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgcGVuZGluZzogdGhpcy5mb3JtPy5wZW5kaW5nLFxuICAvLyAgICAgZGlydHk6IHRoaXMuZm9ybT8uZGlydHksXG4gIC8vICAgICBpbnZhbGlkOiB0aGlzLmZvcm0/LmludmFsaWQsXG4gIC8vICAgICBwcmlzdGluZTogdGhpcy5mb3JtPy5wcmlzdGluZSxcbiAgLy8gICAgIHZhbGlkOiB0aGlzLmZvcm0/LnZhbGlkLFxuICAvLyAgIH07XG4gIC8vIH0pO1xuICByZWFkb25seSBjaGVja0Zvcm1TdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElGb3JtU3RhdGU+KHt9KTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1TdWI6IFN1YnNjcmlwdGlvbjtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zU3ViOiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dDxcbiAgICBGb3JtR3JvdXA8YW55PiB8IEZvcm1Db250cm9sPGFueT4gfCBGb3JtQXJyYXk8YW55PiB8IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT5cbiAgPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybVN0YXRlID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybSkucGlwZShcbiAgICAgIGZpbHRlcigoeCkgPT4gISF4KSxcbiAgICAgIHN3aXRjaE1hcCgoZm9ybSkgPT5cbiAgICAgICAgZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgdGhpcy5mb3JtKClcbiAgICAgICAgICAgICAgPyA8SUZvcm1TdGF0ZT57XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nOiB0aGlzLmZvcm0oKT8ucGVuZGluZyxcbiAgICAgICAgICAgICAgICAgIGRpcnR5OiB0aGlzLmZvcm0oKT8uZGlydHksXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkOiB0aGlzLmZvcm0oKT8uaW52YWxpZCxcbiAgICAgICAgICAgICAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm0oKT8ucHJpc3RpbmUsXG4gICAgICAgICAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtKCk/LnZhbGlkLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0aGlzLmZvcm0oKT8uc3RhdHVzLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICksXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm0oKTtcbiAgICAgICAgICAgIHJldHVybiBmb3JtXG4gICAgICAgICAgICAgID8gPElGb3JtU3RhdGU+e1xuICAgICAgICAgICAgICAgICAgcGVuZGluZzogZm9ybS5wZW5kaW5nLFxuICAgICAgICAgICAgICAgICAgZGlydHk6IGZvcm0uZGlydHksXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkOiBmb3JtLmludmFsaWQsXG4gICAgICAgICAgICAgICAgICBwcmlzdGluZTogZm9ybS5wcmlzdGluZSxcbiAgICAgICAgICAgICAgICAgIHZhbGlkOiBmb3JtLnZhbGlkLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBmb3JtLnN0YXR1cyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgZm9ybXMgPVxuICAgIGlucHV0PChGb3JtR3JvdXA8YW55PiB8IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4pW10+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3Jtc1N0YXRlID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybXMpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHgpID0+ICEheCAmJiB4Lmxlbmd0aCA+IDApLFxuICAgICAgc3dpdGNoTWFwKChmb3JtcykgPT5cbiAgICAgICAgbWVyZ2UoLi4uZm9ybXMubWFwKChmb3JtKSA9PiBmb3JtLnN0YXR1c0NoYW5nZXMpKS5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IHRoaXMuZm9ybXMoKTtcbiAgICAgICAgICAgIGlmICghZm9ybXMpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgZnM6IE9taXQ8SUZvcm1TdGF0ZSwgJ3N0YXR1cyc+ID0ge1xuICAgICAgICAgICAgICBwZW5kaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBkaXJ0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgaW52YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvcm1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCF4LnBlbmRpbmcpIGZzLnBlbmRpbmcgPSB4LnBlbmRpbmc7XG4gICAgICAgICAgICAgIGlmICgheC5kaXJ0eSkgZnMuZGlydHkgPSB4LmRpcnR5O1xuICAgICAgICAgICAgICBpZiAoIXguaW52YWxpZCkgZnMuaW52YWxpZCA9IHguaW52YWxpZDtcbiAgICAgICAgICAgICAgaWYgKCF4LnByaXN0aW5lKSBmcy5wcmlzdGluZSA9IHgucHJpc3RpbmU7XG4gICAgICAgICAgICAgIGlmICgheC52YWxpZCkgZnMudmFsaWQgPSB4LnZhbGlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZnM7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgcmVhZG9ubHkgaGVscCA9IGlucHV0PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBubyBsb25nZXIgbmVlZGVkIHRvIGRldGVjdCB0aGUgY29ycmVjdCBzcGFjaW5nIGJldHdlZW4gaWNvbiBhbmQgdGV4dFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiwgYWxpYXM6ICdpY29uQnRuJyB9KSBzZXQgX2ljb25CdG4odjogYm9vbGVhbikge1xuICAgIHRoaXMuaWNvbkJ0bi5zZXQodiB8fCBmYWxzZSk7XG4gIH1cblxuICByZWFkb25seSBtY2xhc3MgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuICByZWFkb25seSBzaG93SGVscEljb24gPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgcmlnaHRJY29uID0gc2lnbmFsPEljb25EZWZpbml0aW9uPihudWxsKTtcbiAgQElucHV0KHsgYWxpYXM6ICdyaWdodEN1c3RvbUljb24nIH0pIHNldCBfcmlnaHRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICByZWFkb25seSByaWdodEN1c3RvbUljb24gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgbGVmdEljb24gPSBzaWduYWw8SWNvbkRlZmluaXRpb24+KG51bGwpO1xuICByZWFkb25seSBsZWZ0Q3VzdG9tSWNvbiA9IG1vZGVsPHN0cmluZz4obnVsbCk7XG4gIHJlYWRvbmx5IHRleHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSB2YWxpZCA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBtaW5pID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIHJlYWRvbmx5IG9uRm9ybUludmFsaWQgPSBpbnB1dDxrZXlvZiB0eXBlb2YgT25Gb3JtSW52YWxpZD4oT25Gb3JtSW52YWxpZC5kaXNhYmxlKTtcbiAgQE91dHB1dCgpIG1jbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5uZXJUZXh0JykgaW5uZXJUZXh0OiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG4gIHJlYWRvbmx5IGxvY2tlZEljb24gPSBzaWduYWwoZmFMb2NrKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90ZXh0ID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gbW9kZWw8Ym9vbGVhbiB8IG51bGw+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY29tcHV0ZWRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0KCksXG4gICAgICBsb2NhbCA9IHRoaXMuX3RleHQoKTtcbiAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGxvY2FsIDogaW5wdXQ7XG4gIH0pO1xuICBwdWJsaWMgYnRuUyA9IGluamVjdChCdG5TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTGVmdEljb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxlZnRJY29uKCkgfHwgdGhpcy5sZWZ0Q3VzdG9tSWNvbigpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzUmlnaHRJY29uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yaWdodEljb24oKSB8fCB0aGlzLnJpZ2h0Q3VzdG9tSWNvbigpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZnMgPSB0aGlzLmZvcm1TdGF0ZSgpO1xuICAgICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgZXZlcnkgY2hlY2sgb2YgdGhlIGNvbXBvbmVudCdzIHZpZXcuIEFwcGxpZXMgdG8gY29tcG9uZW50cyBvbmx5LlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQnIHRvIHRoZSBjbGFzcy5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbWNsYXNzKCkpIHRoaXMuX3R5cGUgPSB0aGlzLmJ0blMuZGVmYXVsdFR5cGU7XG4gIH1cblxuICBzZXRMb2FkZXIodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh2YWwpO1xuICB9XG4gIGdldCBleHRyYWN0VGV4dCgpIHtcbiAgICByZXR1cm4gYENsaWNrZWQgb24gJHtcbiAgICAgIHRoaXMudGV4dCgpIHx8IHRoaXMuaW5uZXJUZXh0Py5uYXRpdmVFbGVtZW50Py5pbm5lckhUTUwgfHwgdGhpcy5pY29uVHlwZSB8fCAnYnV0dG9uJ1xuICAgIH0gJHt0aGlzLmxvZ2dpbmdWYWx1ZSA/ICdcXG5UcmFjayB2YWx1ZTogJyArIHRoaXMubG9nZ2luZ1ZhbHVlIDogJyd9YDtcbiAgfVxuICBjbGljaygkZXZlbnQpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSB8fCB0aGlzLmxvYWRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMubWNsaWNrLmVtaXQoJGV2ZW50KTtcbiAgICB0aGlzLmJ0blMubG9nQ2xpY2sodGhpcyk7XG4gIH1cblxuICByZWFkb25seSBpc0Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCgpLFxuICAgICAgdmFsaWQgPSB0aGlzLnZhbGlkKCksXG4gICAgICBvbkZvcm1JbnZhbGlkID0gdGhpcy5vbkZvcm1JbnZhbGlkKCksXG4gICAgICBmb3JtID0gdGhpcy5mb3JtU3RhdGUoKSxcbiAgICAgIGZvcm1zID0gdGhpcy5mb3Jtc1N0YXRlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGRpc2FibGVkIHx8XG4gICAgICAhdmFsaWQgfHxcbiAgICAgIChvbkZvcm1JbnZhbGlkID09IE9uRm9ybUludmFsaWQuZGlzYWJsZSAmJlxuICAgICAgICAoZm9ybT8uaW52YWxpZCB8fCBmb3JtPy5wZW5kaW5nIHx8IGZvcm1zPy5wZW5kaW5nKSkgfHxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfSk7XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChmYWxzZSk7XG4gIH1cbn1cbmVudW0gT25Gb3JtSW52YWxpZCB7XG4gIGRpc2FibGUgPSAnZGlzYWJsZScsXG4gIHdhcm4gPSAnd2FybicsXG59XG5pbnRlcmZhY2UgSUZvcm1TdGF0ZSB7XG4gIHBlbmRpbmc/OiBib29sZWFuO1xuICBkaXJ0eT86IGJvb2xlYW47XG4gIGludmFsaWQ/OiBib29sZWFuO1xuICBwcmlzdGluZT86IGJvb2xlYW47XG4gIHZhbGlkPzogYm9vbGVhbjtcbiAgc3RhdHVzPzogRm9ybUNvbnRyb2xTdGF0dXM7XG59XG4iLCJAaWYgKHZlcmJvc2UoKSkge1xuIDxkaXYgY2xhc3M9XCJcIj5cbiAgZm9ybVN0YXRlKCk6e3tmb3JtU3RhdGUoKXxqc29ufX1cbiA8L2Rpdj5cbiA8ZGl2IGNsYXNzPVwiXCI+XG4gIGZvcm0oKTp7e2Zvcm0oKT8udmFsdWV8anNvbn19XG4gPC9kaXY+XG59XG48c3BhblxuICBjbGFzcz1cInt7IGNsYXNzKCkgfX0gIGQtZmxleCAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKCksIG1pbmk6IG1pbmkoKSB9XCJcbiAgKGNsaWNrKT1cImJ0blMuY2hlY2tGb3JtKHRoaXMpXCI+XG4gIEBpZiAoc2hvd0hlbHBJY29uKCkgJiYgaGVscCgpKSB7XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZSBtZS0yIHRleHQtcHJpbWFyeVwiIFttYXRUb29sdGlwXT1cImhlbHAoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jXCI+PC9pPlxuICB9XG4gIDxidXR0b25cbiAgICB0eXBlPVwie3sgYWN0aW9uVHlwZSgpIH19XCJcbiAgICBjbGFzcz1cInt7IG1jbGFzcygpIH19IHt7IF9tY2xhc3MoKSB8fCAnYnRuJyB9fSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIFwiXG4gICAgW21hdEJhZGdlXT1cImJhZGdlKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGNoYW5nZWNvbG9yOiB2YWxpZCgpLFxuICAgICAgJ2J0bi1yYWlzZWQnOiBhbmltYXRlKCksXG4gICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCgpLFxuICAgICAgaXNEYW5nZXI6IGRhbmdlcigpLFxuICAgICAgaXNXYXJuaW5nOiB3YXJuaW5nKCksXG4gICAgICBpbnZhbGlkOiBmb3JtSXNJbnZhbGlkKCksXG4gICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IGNlbnRlckJ0bigpXG4gICAgfVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIlxuICAgIFttYXRUb29sdGlwXT1cInNob3dIZWxwSWNvbigpID8gbnVsbCA6IChoZWxwKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYylcIj5cbiAgICBAaWYgKCFsb2FkaW5nKCkpIHtcbiAgICAgIEBpZiAoaXNMZWZ0SWNvbigpKSB7XG4gICAgICAgIEBpZiAoaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibG9ja2VkSWNvbigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAobGVmdEN1c3RvbUljb24oKSkge1xuICAgICAgICAgIDxpIGNsYXNzPVwie3sgbGVmdEN1c3RvbUljb24oKSB9fVwiPjwvaT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibGVmdEljb24oKVwiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGNvbXB1dGVkVGV4dCgpKSB7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnbXMtMSc6IGxlZnRJY29uKCkgfHwgbGVmdEN1c3RvbUljb24oKSxcbiAgICAgICAgICAnbWUtMSc6IHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpXG4gICAgICAgIH1cIj5cbiAgICAgICAge3sgY29tcHV0ZWRUZXh0KCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCIgXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdtcy0xJzogaW5uZXJUZXh0LmlubmVyVGV4dCAmJiAobGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpKSxcbiAgICAgICAgICAnbWUtMSc6IGlubmVyVGV4dC5pbm5lclRleHQgJiYgKHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpKVxuICAgICAgICB9XCJcbiAgICAgICAgI2lubmVyVGV4dFxuICAgICAgICBhcHBUcmFuc2xhdG9yPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBtcy17eyBpY29uQnRuKCkgPyAnJyA6ICcyJyB9fSBmYS1zcGluXCI+PC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChpc1JpZ2h0SWNvbigpKSB7XG4gICAgICAgIEBpZiAoaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwibG9ja2VkSWNvbigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAocmlnaHRDdXN0b21JY29uKCkpIHtcbiAgICAgICAgICA8aSBjbGFzcz1cInt7IHJpZ2h0Q3VzdG9tSWNvbigpIH19XCI+PC9pPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJyaWdodEljb24oKVwiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvYnV0dG9uPlxuPC9zcGFuPlxuIl19
@@ -20,4 +20,4 @@ export class BtnLg {
20
20
  this.extra = extra;
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0dBLE1BQU0sT0FBTyxHQUFHO0lBa0JkLFlBQ0UsR0FBVyxFQUNYLE1BQXVDLEVBQ3ZDLElBQWMsRUFDZCxJQUFlLEVBQ2YsR0FBWSxFQUNaLElBQWEsRUFDYixZQUFzQixFQUN0QixPQUFpQixFQUNqQixRQUFrQjtRQUVsQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBQ0QsTUFBTSxPQUFPLEtBQUs7SUFNaEIsWUFDRSxHQUFXLEVBQ1gsS0FBaUMsRUFDakMsTUFBWSxFQUNaLEdBQVksRUFDWixLQUFNO1FBRU4sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJS1ZQIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQnRuVHlwZSA9XG4gIHwgJ2NsZWFyJ1xuICB8ICdjbG9zZSdcbiAgfCAnZGFuZ2VyLW91dGxpbmUnXG4gIHwgJ2RhbmdlcidcbiAgfCAnZGFyay1vdXRsaW5lJ1xuICB8ICdkYXJrJ1xuICB8ICdvdXRsaW5lLW5tJ1xuICB8ICdvdXRsaW5lJ1xuICB8ICdwcmltYXJ5J1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ3N1Y2Nlc3MnO1xuZXhwb3J0IHR5cGUgQnRuR3JvdXAgPVxuICB8ICdhZGQnXG4gIHwgJ2Nsb25lJ1xuICB8ICdjbG9zZSdcbiAgfCAnY3JlYXRlJ1xuICB8ICdzYXZlJ1xuICB8ICdkZWxldGUnXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICdlZGl0J1xuICB8ICdsaW5rJ1xuICB8ICdzZWFyY2gnXG4gIHwgJ3Nob3cnXG4gIHwgJ3N1Ym1pdCdcbiAgfCAndXBsb2FkJztcbmV4cG9ydCB0eXBlIEljb25UeXBlID1cbiAgfCAnYWNjZXNzJ1xuICB8ICdhZGQnXG4gIHwgJ2FkanVzdCdcbiAgfCAnYXJyb3doJ1xuICB8ICdiYW5rJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAnY2FuY2VsJyBcbiAgfCAnY2FzaCdcbiAgfCAnY2hlY2tlZCdcbiAgfCAncGF1c2UnXG4gIHwgJ2NoZWNrbGlzdCdcbiAgfCAnY2xvbmUnXG4gIHwgJ2Nsb3NlJ1xuICB8ICdzdG9wJ1xuICB8ICdjb2dzJ1xuICB8ICdkZWxldGUnXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICdkcm9wZG93bidcbiAgfCAnZWRpdCdcbiAgfCAnZXJyb3InXG4gIHwgJ2V4cG9ydCdcbiAgfCAnZmlsZSdcbiAgfCAnZmlsdGVyJ1xuICB8ICdnZW5lcmF0ZSdcbiAgfCAnZ3VhcmQnXG4gIHwgJ2hpc3RvcnknXG4gIHwgJ2hvbWUnXG4gIHwgJ2ltcG9ydCdcbiAgfCAnaW5mbydcbiAgfCAnbGluaydcbiAgfCAnbG9jaydcbiAgfCAnbmV4dCdcbiAgfCAncGVuJ1xuICB8ICdwZXJjZW50J1xuICB8ICdwbGF5J1xuICB8ICdwb3N0J1xuICB8ICdwcmV2aW91cydcbiAgfCAncmVjZWlwdCdcbiAgfCAncmVjeWNsZSdcbiAgfCAncmVmcmVzaCdcbiAgfCAncmVuZXcnXG4gIHwgJ3NhdmUnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnc2hha2UnXG4gIHwgJ3Nob3cnXG4gIHwgJ3Nub296ZSdcbiAgfCAnc3Bvb24nXG4gIHwgJ3RhYmxlJ1xuICB8ICd0YWcnXG4gIHwgJ3RydWNrJ1xuICB8ICd1bmxvY2snXG4gIHwgJ3VwbG9hZCdcbiAgfCAndXNlcnMnXG4gIHwgJ3ZpZXcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElCdG4gZXh0ZW5kcyBJS1ZQIHtcbiAgYWN0aW9uPzogKGFyZz8pID0+IHZvaWQ7XG4gIGdyb3VwPzogQnRuR3JvdXA7XG4gIGhlbHA/OiBzdHJpbmc7XG4gIGljb24/OiBJY29uVHlwZTtcbiAgaWNvbkJ0bj86IGJvb2xlYW47XG4gIG1pbmk/OiBib29sZWFuO1xuICBzaG93SGVscEljb24/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgdHlwZT86IEJ0blR5cGU7XG4gIGV4dHJhPzogYW55O1xufVxuZXhwb3J0IGNsYXNzIEJ0bjxURGF0YSA9IGFueT4gaW1wbGVtZW50cyBJQnRuIHtcbiAgY2xzPzogc3RyaW5nO1xuICBncm91cD86IEJ0bkdyb3VwO1xuICBoZWxwPzogc3RyaW5nO1xuICBjdXN0b21JY29uPzogc3RyaW5nO1xuICBpY29uPzogSWNvblR5cGU7XG4gIG1pbmk/OiBib29sZWFuO1xuICBpY29uQnRuPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYWN0aW9uPzogKGRhdGE/OiBURGF0YSwgLi4uYXJncykgPT4gdm9pZDtcbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuICBzaG93SGVscEljb24/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG4gIHR5cGU/OiBCdG5UeXBlO1xuICBleHRyYT86IGFueTtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBrZXk6IHN0cmluZyxcbiAgICBhY3Rpb24/OiAoZGF0YT86IFREYXRhLCAuLi5hcmdzKSA9PiBhbnksXG4gICAgdHlwZT86IEJ0blR5cGUsXG4gICAgaWNvbj86IEljb25UeXBlLFxuICAgIGNscz86IHN0cmluZyxcbiAgICBoZWxwPzogc3RyaW5nLFxuICAgIHNob3dIZWxwSWNvbj86IGJvb2xlYW4sXG4gICAgbG9hZGluZz86IGJvb2xlYW4sXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuLFxuICApIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuaWNvbiA9IGljb247XG4gICAgdGhpcy5jbHMgPSBjbHM7XG4gICAgdGhpcy5oZWxwID0gaGVscDtcbiAgICB0aGlzLnNob3dIZWxwSWNvbiA9IHNob3dIZWxwSWNvbjtcbiAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEJ0bkxnIGltcGxlbWVudHMgSUJ0biB7XG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcjtcbiAgcmVhZG9ubHkgYWN0aW9uPzogKCkgPT4gdm9pZDtcbiAgY2xzPzogc3RyaW5nO1xuICBleHRyYT86IGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyLFxuICAgIGFjdGlvbj86IGFueSxcbiAgICBjbHM/OiBzdHJpbmcsXG4gICAgZXh0cmE/LFxuICApIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJy0nO1xuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgIHRoaXMuY2xzID0gY2xzO1xuICAgIHRoaXMuZXh0cmEgPSBleHRyYTtcbiAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0dBLE1BQU0sT0FBTyxHQUFHO0lBbUJkLFlBQ0UsR0FBVyxFQUNYLE1BQXVDLEVBQ3ZDLElBQWMsRUFDZCxJQUFlLEVBQ2YsR0FBWSxFQUNaLElBQWEsRUFDYixZQUFzQixFQUN0QixPQUFpQixFQUNqQixRQUFrQjtRQUVsQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBQ0QsTUFBTSxPQUFPLEtBQUs7SUFNaEIsWUFBWSxHQUFXLEVBQUUsS0FBaUMsRUFBRSxNQUFZLEVBQUUsR0FBWSxFQUFFLEtBQU07UUFDNUYsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJS1ZQIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQnRuVHlwZSA9XG4gIHwgJ2NsZWFyJ1xuICB8ICdjbG9zZSdcbiAgfCAnZGFuZ2VyLW91dGxpbmUnXG4gIHwgJ2RhbmdlcidcbiAgfCAnZGFyay1vdXRsaW5lJ1xuICB8ICdkYXJrJ1xuICB8ICdvdXRsaW5lLW5tJ1xuICB8ICdvdXRsaW5lJ1xuICB8ICdwcmltYXJ5J1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ3N1Y2Nlc3MnO1xuZXhwb3J0IHR5cGUgQnRuR3JvdXAgPVxuICB8ICdhZGQnXG4gIHwgJ2Nsb25lJ1xuICB8ICdjbG9zZSdcbiAgfCAnY3JlYXRlJ1xuICB8ICdzYXZlJ1xuICB8ICdkZWxldGUnXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICdlZGl0J1xuICB8ICdsaW5rJ1xuICB8ICdzZWFyY2gnXG4gIHwgJ3Nob3cnXG4gIHwgJ3N1Ym1pdCdcbiAgfCAndXBsb2FkJztcbmV4cG9ydCB0eXBlIEljb25UeXBlID1cbiAgfCAnYWNjZXNzJ1xuICB8ICdhZGQnXG4gIHwgJ2FkanVzdCdcbiAgfCAnYXJyb3doJ1xuICB8ICdiYW5rJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAnY2FuY2VsJ1xuICB8ICdjYXNoJ1xuICB8ICdjaGVja2VkJ1xuICB8ICdwYXVzZSdcbiAgfCAnY2hlY2tsaXN0J1xuICB8ICdjbG9uZSdcbiAgfCAnY2xvc2UnXG4gIHwgJ3N0b3AnXG4gIHwgJ2NvZ3MnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnZG93bmxvYWQnXG4gIHwgJ2Ryb3Bkb3duJ1xuICB8ICdlZGl0J1xuICB8ICdlcnJvcidcbiAgfCAnZXhwb3J0J1xuICB8ICdmaWxlJ1xuICB8ICdmaWx0ZXInXG4gIHwgJ2dlbmVyYXRlJ1xuICB8ICdndWFyZCdcbiAgfCAnaGlzdG9yeSdcbiAgfCAnaG9tZSdcbiAgfCAnaW1wb3J0J1xuICB8ICdpbmZvJ1xuICB8ICdsaW5rJ1xuICB8ICdsb2NrJ1xuICB8ICduZXh0J1xuICB8ICdwZW4nXG4gIHwgJ3BlcmNlbnQnXG4gIHwgJ3BsYXknXG4gIHwgJ3Bvc3QnXG4gIHwgJ3ByZXZpb3VzJ1xuICB8ICdyZWNlaXB0J1xuICB8ICdyZWN5Y2xlJ1xuICB8ICdyZWZyZXNoJ1xuICB8ICdyZW5ldydcbiAgfCAnc2F2ZSdcbiAgfCAnc2VhcmNoJ1xuICB8ICdzaGFrZSdcbiAgfCAnc2hvdydcbiAgfCAnc25vb3plJ1xuICB8ICdzcG9vbidcbiAgfCAndGFibGUnXG4gIHwgJ3RhZydcbiAgfCAndHJ1Y2snXG4gIHwgJ3VubG9jaydcbiAgfCAndXBsb2FkJ1xuICB8ICd1c2VycydcbiAgfCAndmlldyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJ0biBleHRlbmRzIElLVlAge1xuICBhY3Rpb24/OiAoYXJnPykgPT4gdm9pZDtcbiAgZ3JvdXA/OiBCdG5Hcm91cDtcbiAgaGVscD86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG4gIGljb24/OiBJY29uVHlwZTtcbiAgaWNvbkJ0bj86IGJvb2xlYW47XG4gIG1pbmk/OiBib29sZWFuO1xuICBzaG93SGVscEljb24/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBJQnRuW107XG4gIHR5cGU/OiBCdG5UeXBlO1xuICBleHRyYT86IGFueTtcbn1cbmV4cG9ydCBjbGFzcyBCdG48VERhdGEgPSBhbnk+IGltcGxlbWVudHMgSUJ0biB7XG4gIGNscz86IHN0cmluZztcbiAgZ3JvdXA/OiBCdG5Hcm91cDtcbiAgaGVscD86IHN0cmluZztcbiAgY3VzdG9tSWNvbj86IHN0cmluZztcbiAgaWNvbj86IEljb25UeXBlO1xuICBtaW5pPzogYm9vbGVhbjtcbiAgaWNvbkJ0bj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFjdGlvbj86IChkYXRhPzogVERhdGEsIC4uLmFyZ3MpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGtleT86IHN0cmluZztcbiAgc2hvd0hlbHBJY29uPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHJvdXRlPzogc3RyaW5nO1xuICB0eXBlPzogQnRuVHlwZTtcbiAgZXh0cmE/OiBhbnk7XG4gIGxvYWRpbmc/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IEJ0bjxURGF0YT5bXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGFjdGlvbj86IChkYXRhPzogVERhdGEsIC4uLmFyZ3MpID0+IGFueSxcbiAgICB0eXBlPzogQnRuVHlwZSxcbiAgICBpY29uPzogSWNvblR5cGUsXG4gICAgY2xzPzogc3RyaW5nLFxuICAgIGhlbHA/OiBzdHJpbmcsXG4gICAgc2hvd0hlbHBJY29uPzogYm9vbGVhbixcbiAgICBsb2FkaW5nPzogYm9vbGVhbixcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4sXG4gICkge1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB0aGlzLmNscyA9IGNscztcbiAgICB0aGlzLmhlbHAgPSBoZWxwO1xuICAgIHRoaXMuc2hvd0hlbHBJY29uID0gc2hvd0hlbHBJY29uO1xuICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG59XG5leHBvcnQgY2xhc3MgQnRuTGcgaW1wbGVtZW50cyBJQnRuIHtcbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyO1xuICByZWFkb25seSBhY3Rpb24/OiAoKSA9PiB2b2lkO1xuICBjbHM/OiBzdHJpbmc7XG4gIGV4dHJhPzogYW55O1xuICBjb25zdHJ1Y3RvcihrZXk6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyLCBhY3Rpb24/OiBhbnksIGNscz86IHN0cmluZywgZXh0cmE/KSB7XG4gICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICctJztcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB0aGlzLmNscyA9IGNscztcbiAgICB0aGlzLmV4dHJhID0gZXh0cmE7XG4gIH1cbn1cbiJdfQ==
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
92
92
  ValueOrXPipe,
93
93
  ], providers: [ListOptionFinderPipe], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedListValue(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n } \n @default {\n <div class=\"\">\n <div class=\"text-primary\">\n {{ scheme.label }}\n </div>\n <div class=\" \">\n {{ scheme.formattedValue | valueOrX: '-' }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
94
94
  }], ctorParameters: () => [] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsZUFB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ZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LCBJRm9ybVNjaGVtYSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZ1bmN0aW9uQ2FsbGVyMSxcbiAgRnVuY3Rpb25DYWxsZXIyLFxuICBTdHJDb25jYXRlbmF0b3JQaXBlLFxuICBUb0FueVBpcGUsXG4gIFZhbHVlT3JYUGlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcbmltcG9ydCB7IFRleHRDYXNlMkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHQtY2FzZS0yL3RleHQtY2FzZS0yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC5zZXJ2aWNlJztcblxuQFBpcGUoeyBuYW1lOiAnbGlzdE9wdGlvbkZpbmRlcicsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBMaXN0T3B0aW9uRmluZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IHg6IHN0cmluZyB9W10sXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIGxhYmVsRmllbGQ6IHN0cmluZyxcbiAgICBsYWJlbFR5cGU6IE9wdGlvbkxhYmVsVHlwZSxcbiAgICBvcHRpb25Gb3JtYXR0ZXI6IChpdGVtOiBhbnkpID0+IHN0cmluZyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBmb3JtYXR0ZWRPcHRpb25zID0gdGhpcy5pUy5vcHRpb25zRm9ybWF0dGVyKG9wdGlvbnMsIHtcbiAgICAgIHZhbHVlRmllbGQ6IHZhbHVlRmllbGQgYXMgYW55LFxuICAgICAgZm9ybWF0dGVyOiBvcHRpb25Gb3JtYXR0ZXIsXG4gICAgICBsYWJlbFR5cGU6IGxhYmVsVHlwZSxcbiAgICAgIGxhYmVsRmllbGQ6IGxhYmVsRmllbGQgYXMgYW55LFxuICAgICAgIGF1dG9QaWNrVmFsdWVGaWVsZDogZmFsc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdHRlZE9wdGlvbnM/LmZpbmQoKHgpID0+IHgudmFsdWUgPT0gdmFsdWUpPy5sYWJlbDtcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaVM6IElucHV0U2VydmljZSkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybS1nZW5lcmF0ZWQtdmFsdWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxuICAvLyAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGdW5jdGlvbkNhbGxlcjEsXG4gICAgRnVuY3Rpb25DYWxsZXIyLFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgTGlzdE9wdGlvbkZpbmRlclBpcGUsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFBob25lTnVtYmVyQ29tcG9uZW50LFxuICAgIFN0ckNvbmNhdGVuYXRvclBpcGUsXG4gICAgVGV4dENhc2UyQ29tcG9uZW50LFxuICAgIFRvQW55UGlwZSxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgICBWYWx1ZU9yWFBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW0xpc3RPcHRpb25GaW5kZXJQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRlZFZhbHVlQ29tcG9uZW50PFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD4ge1xuICBwdWJsaWMgbGlzdE9wdGlvbkZpbmRlclBpcGUgPSBpbmplY3QoTGlzdE9wdGlvbkZpbmRlclBpcGUpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWRMaXN0VmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZnYgPSB0aGlzLmZvcm1WYWx1ZSgpIHx8IHt9LFxuICAgICAgb3B0aW9uc01hcCA9IHRoaXMub3B0aW9uc01hcCgpO1xuICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRm9ybVNjaGVtYSgpLm1hcCgoZikgPT4gKHtcbiAgICAgIC4uLmYsXG4gICAgICBmb3JtYXR0ZWRWYWx1ZTpcbiAgICAgICAgZi50eXBlID09ICdhdXRvY29tcGxldGUnXG4gICAgICAgICAgPyB0aGlzLmxpc3RPcHRpb25GaW5kZXJQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgZnZbZi5maWVsZCBhcyBhbnldLFxuICAgICAgICAgICAgICBmLm9wdGlvbnMgfHwgb3B0aW9uc01hcFtmLmZpZWxkIGFzIHN0cmluZ10sXG4gICAgICAgICAgICAgIGYudmFsdWVGaWVsZCxcbiAgICAgICAgICAgICAgZi5sYWJlbEZpZWxkLFxuICAgICAgICAgICAgICBmLmxhYmVsVHlwZSxcbiAgICAgICAgICAgICAgZi5vcHRpb25Gb3JtYXR0ZXIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiB0aGlzLmZvcm1hdFZhbHVlKGYsIGZ2W2YuZmllbGQgYXMgYW55XSksXG4gICAgfSkpO1xuICB9KTtcbiAgZm9ybWF0VmFsdWUgPSAoXG4gICAgaXRlbTogSUZvcm1TY2hlbWEsXG4gICAgdmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIsXG4gICk6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgPT4ge1xuICAgIGlmIChpdGVtLmZvcm1hdHRlcikgcmV0dXJuIGl0ZW0uZm9ybWF0dGVyKHRoaXMuZm9ybVZhbHVlKCkgYXMgYW55LCBpdGVtLmZpZWxkKTtcbiAgICBlbHNlIGlmIChpdGVtLm5vRm9ybWF0KSByZXR1cm4gdmFsdWU7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdjaGVja2JveCcgfHwgaXRlbS50eXBlID09ICdjaGVja2VkYm94JykgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZScpXG4gICAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUgYXMgc3RyaW5nLCAnRUUsIE1NTU0gZCwgeScpO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZXRpbWUtbG9jYWwnKVxuICAgICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZnVsbERhdGVUaW1lKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS5zdWJUeXBlID09ICdtb25leScpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLm1vbmV5UGFyc2VyKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdudW1iZXInKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5udW1iZXJQaXBlLnRyYW5zZm9ybSgrdmFsdWUpO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJvdyByb3ctY29scy17eyBncmlkU3R5bGUoKSB9fSByb3ctY29scy1tZC17eyBncmlkTURTdHlsZSgpIH19IHJvdy1jb2xzLWxnLXt7XG4gICAgICAgIGdyaWRMR1N0eWxlKClcbiAgICAgIH19IHJvdy1jb2xzLXh4bC17eyBncmlkWFhMU3R5bGUoKSB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3sgZm9ybUdyaWRDbGFzcygpIH19XCI+XG4gICAgICBAZm9yIChzY2hlbWUgb2YgY29tcHV0ZWRMaXN0VmFsdWUoKTsgdHJhY2sgc2NoZW1lLmZpZWxkKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wge3sgc2NoZW1lLmNscyB9fSBcIj5cbiAgICAgICAgICBAc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ3RlbCcpIHtcbiAgICAgICAgICAgICAgPGFwcC1waG9uZS1udW1iZXJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtKClcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdFwiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1Z1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgW2NvdW50cnlDb2RlM109XCJzY2hlbWUuY291bnRyeUNvZGUzXCJcbiAgICAgICAgICAgICAgICAjaW5wdXRUYWcgLz5cbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgICB7eyBzY2hlbWUubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIFwiPlxuICAgICAgICAgICAgICAgICAge3sgc2NoZW1lLmZvcm1hdHRlZFZhbHVlIHwgdmFsdWVPclg6ICctJyB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFZhbHVlIGxldC1vYmo+XG4gIDxkaXYgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+XG4gICAgICB7eyBvYmouc2NoZW1lLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgIHt7IGZvcm1hdFZhbHVlIHwgZnVuY3Rpb25DYWxsZXIyOiBvYmouc2NoZW1lIDogb2JqLnZhbHVlIHwgdmFsdWVPclg6ICctJyB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsZUFB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ZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LCBJRm9ybVNjaGVtYSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZ1bmN0aW9uQ2FsbGVyMSxcbiAgRnVuY3Rpb25DYWxsZXIyLFxuICBTdHJDb25jYXRlbmF0b3JQaXBlLFxuICBUb0FueVBpcGUsXG4gIFZhbHVlT3JYUGlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcbmltcG9ydCB7IFRleHRDYXNlMkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHQtY2FzZS0yL3RleHQtY2FzZS0yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC5zZXJ2aWNlJztcblxuQFBpcGUoeyBuYW1lOiAnbGlzdE9wdGlvbkZpbmRlcicsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBMaXN0T3B0aW9uRmluZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IHg6IHN0cmluZyB9W10sXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIGxhYmVsRmllbGQ6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIGxhYmVsVHlwZTogT3B0aW9uTGFiZWxUeXBlLFxuICAgIG9wdGlvbkZvcm1hdHRlcjogKGl0ZW06IGFueSkgPT4gc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdHRlZE9wdGlvbnMgPSB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIob3B0aW9ucywge1xuICAgICAgdmFsdWVGaWVsZDogdmFsdWVGaWVsZCBhcyBhbnksXG4gICAgICBmb3JtYXR0ZXI6IG9wdGlvbkZvcm1hdHRlcixcbiAgICAgIGxhYmVsVHlwZTogbGFiZWxUeXBlLFxuICAgICAgbGFiZWxGaWVsZDogbGFiZWxGaWVsZCBhcyBhbnksXG4gICAgICBhdXRvUGlja1ZhbHVlRmllbGQ6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiBmb3JtYXR0ZWRPcHRpb25zPy5maW5kKCh4KSA9PiB4LnZhbHVlID09IHZhbHVlKT8ubGFiZWw7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdGVkLXZhbHVlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnVuY3Rpb25DYWxsZXIxLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBJbnB1dEJhc2ljQ29tcG9uZW50LFxuICAgIExpc3RPcHRpb25GaW5kZXJQaXBlLFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBQaG9uZU51bWJlckNvbXBvbmVudCxcbiAgICBTdHJDb25jYXRlbmF0b3JQaXBlLFxuICAgIFRleHRDYXNlMkNvbXBvbmVudCxcbiAgICBUb0FueVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgVmFsdWVPclhQaXBlLFxuICBdLFxuICBwcm92aWRlcnM6IFtMaXN0T3B0aW9uRmluZGVyUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0ZWRWYWx1ZUNvbXBvbmVudDxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4gZXh0ZW5kcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXA+IHtcbiAgcHVibGljIGxpc3RPcHRpb25GaW5kZXJQaXBlID0gaW5qZWN0KExpc3RPcHRpb25GaW5kZXJQaXBlKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbXB1dGVkTGlzdFZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGZ2ID0gdGhpcy5mb3JtVmFsdWUoKSB8fCB7fSxcbiAgICAgIG9wdGlvbnNNYXAgPSB0aGlzLm9wdGlvbnNNYXAoKTtcbiAgICByZXR1cm4gdGhpcy5jb21wdXRlZEZvcm1TY2hlbWEoKS5tYXAoKGYpID0+ICh7XG4gICAgICAuLi5mLFxuICAgICAgZm9ybWF0dGVkVmFsdWU6XG4gICAgICAgIGYudHlwZSA9PSAnYXV0b2NvbXBsZXRlJ1xuICAgICAgICAgID8gdGhpcy5saXN0T3B0aW9uRmluZGVyUGlwZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgIGZ2W2YuZmllbGQgYXMgYW55XSxcbiAgICAgICAgICAgICAgZi5vcHRpb25zIHx8IG9wdGlvbnNNYXBbZi5maWVsZCBhcyBzdHJpbmddLFxuICAgICAgICAgICAgICBmLnZhbHVlRmllbGQsXG4gICAgICAgICAgICAgIGYubGFiZWxGaWVsZCxcbiAgICAgICAgICAgICAgZi5sYWJlbFR5cGUsXG4gICAgICAgICAgICAgIGYub3B0aW9uRm9ybWF0dGVyLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogdGhpcy5mb3JtYXRWYWx1ZShmLCBmdltmLmZpZWxkIGFzIGFueV0pLFxuICAgIH0pKTtcbiAgfSk7XG4gIGZvcm1hdFZhbHVlID0gKFxuICAgIGl0ZW06IElGb3JtU2NoZW1hLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyLFxuICApOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyID0+IHtcbiAgICBpZiAoaXRlbS5mb3JtYXR0ZXIpIHJldHVybiBpdGVtLmZvcm1hdHRlcih0aGlzLmZvcm1WYWx1ZSgpIGFzIGFueSwgaXRlbS5maWVsZCk7XG4gICAgZWxzZSBpZiAoaXRlbS5ub0Zvcm1hdCkgcmV0dXJuIHZhbHVlO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnY2hlY2tib3gnIHx8IGl0ZW0udHlwZSA9PSAnY2hlY2tlZGJveCcpIHJldHVybiB2YWx1ZSA/ICdZZXMnIDogJ05vJztcbiAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKVxuICAgICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlIGFzIHN0cmluZywgJ0VFLCBNTU1NIGQsIHknKTtcbiAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGV0aW1lLWxvY2FsJylcbiAgICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmZ1bGxEYXRlVGltZSh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgIGVsc2UgaWYgKGl0ZW0uc3ViVHlwZSA9PSAnbW9uZXknKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5tb25leVBhcnNlcih2YWx1ZSBhcyBzdHJpbmcpO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnbnVtYmVyJykgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UubnVtYmVyUGlwZS50cmFuc2Zvcm0oK3ZhbHVlKTtcbiAgICBlbHNlIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwiY29tcHV0ZWRMb2FkaW5nKClcIj5cbiAgPGZvcm0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17e1xuICAgICAgICBncmlkTEdTdHlsZSgpXG4gICAgICB9fSByb3ctY29scy14eGwte3sgZ3JpZFhYTFN0eWxlKCkgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkTGlzdFZhbHVlKCk7IHRyYWNrIHNjaGVtZS5maWVsZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHNjaGVtZS5jbHMgfX0gXCI+XG4gICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICd0ZWwnKSB7XG4gICAgICAgICAgICAgIDxhcHAtcGhvbmUtbnVtYmVyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgI2lucHV0VGFnIC8+XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgICAge3sgc2NoZW1lLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNjaGVtZS5mb3JtYXR0ZWRWYWx1ZSB8IHZhbHVlT3JYOiAnLScgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9sb2FkZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxWYWx1ZSBsZXQtb2JqPlxuICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPlxuICAgICAge3sgb2JqLnNjaGVtZS5sYWJlbCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCIgXCI+XG4gICAgICB7eyBmb3JtYXRWYWx1ZSB8IGZ1bmN0aW9uQ2FsbGVyMjogb2JqLnNjaGVtZSA6IG9iai52YWx1ZSB8IHZhbHVlT3JYOiAnLScgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
79
79
  template: '',
80
80
  }]
81
81
  }], ctorParameters: () => [] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFFUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtsRSxNQUFNLE9BQWdCLGlCQUFpQjtJQTBCckM7UUF0QmdCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLG1CQUFjLEdBQUcsTUFBTSxDQUF1QyxFQUFFLENBQUMsQ0FBQztRQUNsRSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN2RCxlQUFVLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUU7WUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sQ0FDTCxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDZCxHQUFHLENBQUM7b0JBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztpQkFDaEYsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxHQUFHLENBQ1IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILFNBQUksR0FBMEMsRUFBRSxDQUFDO1FBRTFDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlCLG9CQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFUyxlQUFlLENBQUMsT0FBMEI7UUFDbEQsTUFBTSxHQUFHLEdBQXlDLEVBQUUsQ0FBQztRQUNyRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxFQUFFO1lBQzNCLElBQUksQ0FBQztnQkFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUUxRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsaUJBQWlCLENBQUMsS0FBYSxFQUFFLE1BQWdDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU87Z0JBQ0wsR0FBRyxhQUFhO2dCQUNoQixDQUFDLEtBQVksQ0FBQyxFQUFFLENBQUMsUUFBUTtvQkFDdkIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLEVBQUU7b0JBQ3hELENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLEVBQUU7YUFDeEYsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEdBQW9EO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO1lBQ2xELEtBQUssTUFBTSxHQUFHLElBQUksYUFBYTtnQkFDN0IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztvQkFDMUQsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUc7d0JBQ3RCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDMUIsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRTtxQkFDdEUsQ0FBQztZQUNOLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVMsaUJBQWlCLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzNDLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvRW1CLGlCQUFpQjtrR0FBakIsaUJBQWlCLDZRQUYzQixFQUFFOzsyRkFFUSxpQkFBaUI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9iamVjdExpdGVyYWwsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uL2J0bi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vdGFibGUtcGxhaW4vdGFibGUtcGxhaW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFxuICBURm9ybUdyb3VwIGV4dGVuZHMgSU9iamVjdExpdGVyYWwsXG4gIFRCYXNlRm9ybVNjaGVtYSBleHRlbmRzIHsgZmllbGQ/OiBhbnk7IGxhYmVsPzogc3RyaW5nOyBfaWQ/OiBzdHJpbmcgfSA9IGFueSxcbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG4gIHByb3RlY3RlZCBfZm9ybVNjaGVtYU1hcCA9IHNpZ25hbDx7IFtmaWVsZDogc3RyaW5nXTogVEJhc2VGb3JtU2NoZW1hIH0+KHt9KTtcbiAgcHJvdGVjdGVkIGZvcm1TY2hlbWFNYXAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9mb3JtU2NoZW1hTWFwKCkpO1xuICByZWFkb25seSBmb3JtU2NoZW1hID0gY29tcHV0ZWQ8VEJhc2VGb3JtU2NoZW1hW10+KCgpID0+IHtcbiAgICBjb25zdCByZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZm9ybVNjaGVtYU1hcCgpKS5maWx0ZXIoKHgpID0+IHgpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnVzZUN1c3RvbUxhYmVscygpXG4gICAgICAgID8gcmVzLm1hcCgoZikgPT4gKHtcbiAgICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgICBsYWJlbDogZi5sYWJlbCA/IHRoaXMudGFibGVTZXJ2aWNlLmN1c3RvbUxhYmVsTWFwW2YuZmllbGRdIHx8IGYubGFiZWwgOiBmLmxhYmVsLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IHJlc1xuICAgICkuZmlsdGVyKCh4KSA9PiAhIXgpO1xuICB9KTtcbiAgc3ViczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfSA9IHt9O1xuXG4gIHB1YmxpYyB1dGlsaXR5U2VydmljZSA9IGluamVjdChVdGlsaXR5U2VydmljZSk7XG4gIHB1YmxpYyBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwdWJsaWMgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSB1c2VDdXN0b21MYWJlbHMgPSBtb2RlbCh0cnVlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgY29uc3Qgb2JqOiB7IFtmaWVsZDogc3RyaW5nXTogVEJhc2VGb3JtU2NoZW1hIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGYgb2Ygc2NoZW1hcyB8fCBbXSlcbiAgICAgIGlmIChmKSBvYmpbZi5maWVsZF0gPSB7IC4uLmYsIF9pZDogdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKSB9O1xuXG4gICAgdGhpcy5fZm9ybVNjaGVtYU1hcC5zZXQob2JqKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXBkYXRlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nLCBzY2hlbWU6IFBhcnRpYWw8VEJhc2VGb3JtU2NoZW1hPikge1xuICAgIGlmICghc2NoZW1lIHx8ICFPYmplY3Qua2V5cyhzY2hlbWUpLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZm9ybVNjaGVtYU1hcCxcbiAgICAgICAgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZ1xuICAgICAgICAgID8geyAuLi5zY2hlbWUsIF9pZDogdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKSB9XG4gICAgICAgICAgOiB7IC4uLmV4aXN0aW5nLCAuLi5zY2hlbWUsIF9pZDogZXhpc3RpbmcuX2lkIHx8IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2VuZXJhdGVVVUlEKCkgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBUQmFzZUZvcm1TY2hlbWEpID0+IFRCYXNlRm9ybVNjaGVtYSkge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdGb3JtU2NoZW1hTWFwOiB0eXBlb2YgZm9ybVNjaGVtYU1hcCA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybVNjaGVtYU1hcClcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtU2NoZW1hTWFwLCBrZXkpKVxuICAgICAgICAgIG5ld0Zvcm1TY2hlbWFNYXBba2V5XSA9IHtcbiAgICAgICAgICAgIC4uLm1hcChmb3JtU2NoZW1hTWFwW2tleV0pLFxuICAgICAgICAgICAgX2lkOiBuZXdGb3JtU2NoZW1hTWFwW2tleV0/Ll9pZCB8fCB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpLFxuICAgICAgICAgIH07XG4gICAgICByZXR1cm4gbmV3Rm9ybVNjaGVtYU1hcDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3JlbW92ZUZvcm1TY2hlbWEoZmllbGQ6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBkZWxldGUgZm9ybVNjaGVtYU1hcFtmaWVsZF07XG4gICAgICByZXR1cm4gZm9ybVNjaGVtYU1hcDtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlRm9ybVNjaGVtYTxcbiAgVCxcbiAgQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VD4sXG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IHtcbiAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbltdO1xuICBhdXRvUGlja1ZhbHVlRmllbGQ/OiBib29sZWFuO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgY2xlYXJPbkRpc2FibGU/OiBib29sZWFuO1xuICBjbHM/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlMz86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBJQmFzZUZvcm1TY2hlbWE8VCwgQ29tcG9uZW50LCBURm9ybUdyb3VwPltdO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLy8gaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBfaWQ/OiBzdHJpbmc7XG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICBpc1NlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgb3B0aW9uTGFiZWxGb3JtYXR0ZXI/OiAocm93KSA9PiBzdHJpbmc7XG4gIG1heD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25Gb3JtYXR0ZXI/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uc0FzeW5jPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBQcm9taXNlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jPzogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIG9wdGlvbnNJbml0RnVuYzI/OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNldENvbnRyb2xGb3JtYXR0ZWRWYWx1ZT86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IElucHV0VHlwZTtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHZhbHVlPzogYW55O1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBvcHRpb25zRnVuYz86ICguLi52YWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHRyaWdnZXJPbkNoYW5nZU9uSW5pdD86IGJvb2xlYW47XG4gIGZvcm1hdHRlcj86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IGFueSB9LCBmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHN0cmluZztcbiAgZXh0cmE/OiBhbnk7XG4gIG9uQ2hhbmdlRnVuYz86IChcbiAgICByb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sXG4gICAgY2VsbFZhbHVlPzogYW55LFxuICAgIGNvbXBvbmVudD86IENvbXBvbmVudCxcbiAgKSA9PiBPYnNlcnZhYmxlPGFueVtdPiB8IGFueTtcbiAgb25SZW1vdmVGdW5jPzogKFxuICAgIHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogVEZvcm1Hcm91cFtLXVsndmFsdWUnXSB9LFxuICAgIGNlbGw/OiBhbnksXG4gICAgY29tcG9uZW50PzogQ29tcG9uZW50LFxuICApID0+IGFueTtcbiAgc2VsZWN0ZWRPcHRpb25MYWJlbD86IHN0cmluZztcbiAgc3RhY2tlZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25Nc2c/OiBib29sZWFuO1xuICBkb250Rm9ybWF0QXNJbnB1dD86IGJvb2xlYW47XG4gIHNob3dSZXF1aXJlZFRhZz86IGJvb2xlYW47XG4gIHRhYmxlRm9ybWF0dGVyPzogKFxuICAgIHZhbDogYW55LFxuICApID0+IHN0cmluZyB8IHVuZGVmaW5lZCB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgaWNvbj86IEljb25UeXBlO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFFUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtsRSxNQUFNLE9BQWdCLGlCQUFpQjtJQTBCckM7UUF0QmdCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLG1CQUFjLEdBQUcsTUFBTSxDQUF1QyxFQUFFLENBQUMsQ0FBQztRQUNsRSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN2RCxlQUFVLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUU7WUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sQ0FDTCxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDZCxHQUFHLENBQUM7b0JBQ0osS0FBSyxFQUFFLENB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d0JBQ3RCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDMUIsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRTtxQkFDdEUsQ0FBQztZQUNOLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVMsaUJBQWlCLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzNDLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvRW1CLGlCQUFpQjtrR0FBakIsaUJBQWlCLDZRQUYzQixFQUFFOzsyRkFFUSxpQkFBaUI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9iamVjdExpdGVyYWwsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4uL2J0bi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vdGFibGUtcGxhaW4vdGFibGUtcGxhaW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFxuICBURm9ybUdyb3VwIGV4dGVuZHMgSU9iamVjdExpdGVyYWwsXG4gIFRCYXNlRm9ybVNjaGVtYSBleHRlbmRzIHsgZmllbGQ/OiBhbnk7IGxhYmVsPzogc3RyaW5nOyBfaWQ/OiBzdHJpbmcgfSA9IGFueSxcbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG4gIHByb3RlY3RlZCBfZm9ybVNjaGVtYU1hcCA9IHNpZ25hbDx7IFtmaWVsZDogc3RyaW5nXTogVEJhc2VGb3JtU2NoZW1hIH0+KHt9KTtcbiAgcHJvdGVjdGVkIGZvcm1TY2hlbWFNYXAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9mb3JtU2NoZW1hTWFwKCkpO1xuICByZWFkb25seSBmb3JtU2NoZW1hID0gY29tcHV0ZWQ8VEJhc2VGb3JtU2NoZW1hW10+KCgpID0+IHtcbiAgICBjb25zdCByZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZm9ybVNjaGVtYU1hcCgpKS5maWx0ZXIoKHgpID0+IHgpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnVzZUN1c3RvbUxhYmVscygpXG4gICAgICAgID8gcmVzLm1hcCgoZikgPT4gKHtcbiAgICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgICBsYWJlbDogZi5sYWJlbCA/IHRoaXMudGFibGVTZXJ2aWNlLmN1c3RvbUxhYmVsTWFwW2YuZmllbGRdIHx8IGYubGFiZWwgOiBmLmxhYmVsLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IHJlc1xuICAgICkuZmlsdGVyKCh4KSA9PiAhIXgpO1xuICB9KTtcbiAgc3ViczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfSA9IHt9O1xuXG4gIHB1YmxpYyB1dGlsaXR5U2VydmljZSA9IGluamVjdChVdGlsaXR5U2VydmljZSk7XG4gIHB1YmxpYyBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwdWJsaWMgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSB1c2VDdXN0b21MYWJlbHMgPSBtb2RlbCh0cnVlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgY29uc3Qgb2JqOiB7IFtmaWVsZDogc3RyaW5nXTogVEJhc2VGb3JtU2NoZW1hIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGYgb2Ygc2NoZW1hcyB8fCBbXSlcbiAgICAgIGlmIChmKSBvYmpbZi5maWVsZF0gPSB7IC4uLmYsIF9pZDogdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKSB9O1xuXG4gICAgdGhpcy5fZm9ybVNjaGVtYU1hcC5zZXQob2JqKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXBkYXRlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nLCBzY2hlbWU6IFBhcnRpYWw8VEJhc2VGb3JtU2NoZW1hPikge1xuICAgIGlmICghc2NoZW1lIHx8ICFPYmplY3Qua2V5cyhzY2hlbWUpLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZm9ybVNjaGVtYU1hcCxcbiAgICAgICAgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZ1xuICAgICAgICAgID8geyAuLi5zY2hlbWUsIF9pZDogdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKSB9XG4gICAgICAgICAgOiB7IC4uLmV4aXN0aW5nLCAuLi5zY2hlbWUsIF9pZDogZXhpc3RpbmcuX2lkIHx8IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2VuZXJhdGVVVUlEKCkgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBUQmFzZUZvcm1TY2hlbWEpID0+IFRCYXNlRm9ybVNjaGVtYSkge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdGb3JtU2NoZW1hTWFwOiB0eXBlb2YgZm9ybVNjaGVtYU1hcCA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybVNjaGVtYU1hcClcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtU2NoZW1hTWFwLCBrZXkpKVxuICAgICAgICAgIG5ld0Zvcm1TY2hlbWFNYXBba2V5XSA9IHtcbiAgICAgICAgICAgIC4uLm1hcChmb3JtU2NoZW1hTWFwW2tleV0pLFxuICAgICAgICAgICAgX2lkOiBuZXdGb3JtU2NoZW1hTWFwW2tleV0/Ll9pZCB8fCB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpLFxuICAgICAgICAgIH07XG4gICAgICByZXR1cm4gbmV3Rm9ybVNjaGVtYU1hcDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3JlbW92ZUZvcm1TY2hlbWEoZmllbGQ6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBkZWxldGUgZm9ybVNjaGVtYU1hcFtmaWVsZF07XG4gICAgICByZXR1cm4gZm9ybVNjaGVtYU1hcDtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlRm9ybVNjaGVtYTxcbiAgVCxcbiAgQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VD4sXG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IHtcbiAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbltdO1xuICBhdXRvUGlja1ZhbHVlRmllbGQ/OiBib29sZWFuO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgY2xlYXJPbkRpc2FibGU/OiBib29sZWFuO1xuICBjbHM/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlMz86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBJQmFzZUZvcm1TY2hlbWE8VCwgQ29tcG9uZW50LCBURm9ybUdyb3VwPltdO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLy8gaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBfaWQ/OiBzdHJpbmc7XG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICBpc1NlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgbGFiZWxUeXBlPzogT3B0aW9uTGFiZWxUeXBlO1xuICBvcHRpb25MYWJlbEZvcm1hdHRlcj86IChyb3cpID0+IHN0cmluZztcbiAgbWF4PzogbnVtYmVyO1xuICBtaW4/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBub0Zvcm1hdD86IGJvb2xlYW47XG4gIG9wdGlvbkZvcm1hdHRlcj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcbiAgb3B0aW9ucz86IGFueVtdO1xuICBvcHRpb25zQXN5bmM/OiBPYnNlcnZhYmxlPGFueVtdPiB8IFByb21pc2U8YW55W10+O1xuICBvcHRpb25zSW5pdEZ1bmM/OiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jMj86ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICBvcHRpb25zS2V5Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgc2VhcmNoRnVuYz86ICguLi5hcmdzKSA9PiBhbnk7XG4gIHNldEFzQ291bnRyeUNvZGUzPzogYm9vbGVhbjtcbiAgc2V0Q29udHJvbEZvcm1hdHRlZFZhbHVlPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb24/OiBib29sZWFuO1xuICBzaG93VmFsaWRhdGlvbkljb24/OiBib29sZWFuO1xuICB0ZW1wbGF0ZVZhbHVlPzogYW55O1xuICB0eXBlPzogSW5wdXRUeXBlO1xuICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXTtcbiAgdmFsdWU/OiBhbnk7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIG9wdGlvbnNGdW5jPzogKC4uLnZhbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgdHJpZ2dlck9uQ2hhbmdlT25Jbml0PzogYm9vbGVhbjtcbiAgZm9ybWF0dGVyPzogKHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogYW55IH0sIGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkgPT4gc3RyaW5nO1xuICBleHRyYT86IGFueTtcbiAgb25DaGFuZ2VGdW5jPzogKFxuICAgIHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXT86IFRGb3JtR3JvdXBbS11bJ3ZhbHVlJ10gfSxcbiAgICBjZWxsVmFsdWU/OiBhbnksXG4gICAgY29tcG9uZW50PzogQ29tcG9uZW50LFxuICApID0+IE9ic2VydmFibGU8YW55W10+IHwgYW55O1xuICBvblJlbW92ZUZ1bmM/OiAoXG4gICAgcm93OiB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sXG4gICAgY2VsbD86IGFueSxcbiAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsXG4gICkgPT4gYW55O1xuICBzZWxlY3RlZE9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBzdGFja2VkPzogYm9vbGVhbjtcbiAgZGVidWc/OiBib29sZWFuO1xuICBzaG93VmFsaWRhdGlvbk1zZz86IGJvb2xlYW47XG4gIGRvbnRGb3JtYXRBc0lucHV0PzogYm9vbGVhbjtcbiAgc2hvd1JlcXVpcmVkVGFnPzogYm9vbGVhbjtcbiAgdGFibGVGb3JtYXR0ZXI/OiAoXG4gICAgdmFsOiBhbnksXG4gICkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBpY29uPzogSWNvblR5cGU7XG4gIHZlcmJvc2U/OiBib29sZWFuO1xufVxuIl19