master-control 0.3.22 → 0.3.24

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.
@@ -230,10 +230,10 @@ export class StepperWIthArrowComponent {
230
230
  }
231
231
  }
232
232
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperWIthArrowComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
233
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: StepperWIthArrowComponent, isStandalone: true, selector: "lib-stepper-with-arrow", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, currentStepValue: { classPropertyName: "currentStepValue", publicName: "currentStepValue", isSignal: true, isRequired: false, transformFunction: null }, autoProgress: { classPropertyName: "autoProgress", publicName: "autoProgress", isSignal: true, isRequired: false, transformFunction: null }, autoProgressDelay: { classPropertyName: "autoProgressDelay", publicName: "autoProgressDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedStep: "selectedStep" }, ngImport: i0, template: "<div *ngIf=\"field() && field()?.isVisible\" style=\"zoom: 0.85;\">\r\n <mat-stepper #stepperHeader>\r\n <ng-container *ngFor=\"let steps of field().editStepper; let i = index\">\r\n <mat-step \r\n *ngIf=\"steps.isDisplay !== false\"\r\n [completed]=\"false\"\r\n [optional]=\"false\">\r\n <ng-template matStepLabel>\r\n <div \r\n class=\"step-container\"\r\n [class.step-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.step-active]=\"isStepActive(i)\"\r\n [class.step-completed]=\"isStepCompleted(i)\"\r\n [class.step-collapsed]=\"!shouldShowLabel(i)\"\r\n (click)=\"onStepClick(steps, i)\">\r\n <span \r\n class=\"step-circle\"\r\n [class.circle-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.circle-active]=\"isStepActive(i)\"\r\n [class.circle-completed]=\"isStepCompleted(i)\">\r\n {{i + 1}}\r\n </span>\r\n <span \r\n class=\"step-label mx-2\"\r\n [class.label-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.label-active]=\"isStepActive(i)\"\r\n [class.label-completed]=\"isStepCompleted(i)\"\r\n [class.label-hidden]=\"!shouldShowLabel(i)\">\r\n {{steps?.displayLabel}}\r\n </span>\r\n <span \r\n class=\"arrow\" \r\n [class.arrow-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.arrow-active]=\"isStepActive(i)\"\r\n [class.arrow-completed]=\"isStepCompleted(i)\"\r\n *ngIf=\"i < field().editStepper.length - 1\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </mat-step>\r\n </ng-container>\r\n </mat-stepper>\r\n</div>", styles: ["*{font-family:mulish!important}.step-container{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;border:none;transition:all .3s ease}.step-container:hover:not(.step-disabled){background-color:#f5f5f5}.step-container.step-selected{border:none}.step-container.step-disabled{cursor:not-allowed;opacity:.6}.step-container.step-collapsed{padding:4px;justify-content:center}.step-circle{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;background:#0bb68b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-right:8px;transition:all .3s ease;flex-shrink:0;box-sizing:border-box}.step-circle.circle-disabled{background:#999;color:#ccc}.step-circle.circle-selected{background:#0a9c75}.step-circle.circle-completed{background:#0a9c75;color:#fff}.step-label{color:#444;font-size:13px;font-weight:600;transition:color .3s ease}.step-label.label-disabled{color:#999}.step-label.label-selected{color:#444;font-weight:700}.step-label.label-hidden{display:none}.step-label.label-active{color:#0bb68b;font-weight:700}.step-label.label-completed{color:#0a9c75;font-weight:600}.arrow{border:solid #444;border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(315deg);margin-left:12px;transition:border-color .3s ease}.arrow.arrow-disabled{border-color:#999}.arrow.arrow-hidden{display:none}.arrow.arrow-active,.arrow.arrow-completed{border-color:#444}::ng-deep .mat-step-icon{display:none}::ng-deep .mat-horizontal-stepper-header-container{background:#fff!important}::ng-deep .mat-stepper-horizontal-line{border-top:1px dashed!important;display:none}::ng-deep .mat-horizontal-content-container{display:none}::ng-deep .mat-horizontal-stepper-header{padding:0 8px!important}::ng-deep .mat-step-header.step-disabled .mat-step-label{pointer-events:none}::ng-deep .mat-step-header{max-height:fit-content!important}\n"], dependencies: [{ kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: StepperWIthArrowComponent, isStandalone: true, selector: "lib-stepper-with-arrow", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, currentStepValue: { classPropertyName: "currentStepValue", publicName: "currentStepValue", isSignal: true, isRequired: false, transformFunction: null }, autoProgress: { classPropertyName: "autoProgress", publicName: "autoProgress", isSignal: true, isRequired: false, transformFunction: null }, autoProgressDelay: { classPropertyName: "autoProgressDelay", publicName: "autoProgressDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedStep: "selectedStep" }, ngImport: i0, template: "<div *ngIf=\"field() && field()?.isVisible\" style=\"zoom: 0.85;\">\r\n <mat-stepper #stepperHeader>\r\n <ng-container *ngFor=\"let steps of field().editStepper; let i = index\">\r\n <mat-step \r\n *ngIf=\"steps.isDisplay !== false\"\r\n [completed]=\"false\"\r\n [optional]=\"false\">\r\n <ng-template matStepLabel>\r\n <div \r\n class=\"step-container\"\r\n [class.step-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.step-active]=\"isStepActive(i)\"\r\n [class.step-completed]=\"isStepCompleted(i)\"\r\n [class.step-collapsed]=\"!shouldShowLabel(i)\"\r\n (click)=\"onStepClick(steps, i)\">\r\n <span \r\n class=\"step-circle\"\r\n [class.circle-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.circle-active]=\"isStepActive(i)\"\r\n [class.circle-completed]=\"isStepCompleted(i)\">\r\n {{i + 1}}\r\n </span>\r\n <span \r\n class=\"step-label mx-2\"\r\n [class.label-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.label-active]=\"isStepActive(i)\"\r\n [class.label-completed]=\"isStepCompleted(i)\"\r\n [class.label-hidden]=\"!shouldShowLabel(i)\">\r\n {{steps?.displayLabel}}\r\n </span>\r\n <span \r\n class=\"arrow\" \r\n [class.arrow-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.arrow-active]=\"isStepActive(i)\"\r\n [class.arrow-completed]=\"isStepCompleted(i)\"\r\n *ngIf=\"i < field().editStepper.length - 1\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </mat-step>\r\n </ng-container>\r\n </mat-stepper>\r\n</div>", styles: ["*{font-family:mulish!important}.step-container{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;border:none;transition:all .3s ease}.step-container:hover:not(.step-disabled){background-color:#f5f5f5}.step-container.step-selected{border:none}.step-container.step-disabled{cursor:not-allowed;opacity:.6}.step-container.step-collapsed{padding:4px;justify-content:center}.step-circle{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;background:#0bb68b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-right:8px;transition:all .3s ease;flex-shrink:0;box-sizing:border-box}.step-circle.circle-disabled{background:#999;color:#ccc}.step-circle.circle-selected{background:#0a9c75}.step-circle.circle-completed{background:#0a9c75;color:#fff}.step-label{color:#444!important;font-size:13px!important;font-weight:700!important;transition:color .3s ease!important}.step-label.label-disabled{color:#999}.step-label.label-selected{color:#444;font-weight:700}.step-label.label-hidden{display:none}.step-label.label-active{color:#0bb68b;font-weight:700}.step-label.label-completed{color:#0a9c75;font-weight:600}.arrow{border:solid #444;border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(315deg);margin-left:12px;transition:border-color .3s ease}.arrow.arrow-disabled{border-color:#999}.arrow.arrow-hidden{display:none}.arrow.arrow-active,.arrow.arrow-completed{border-color:#444}::ng-deep .mat-step-icon{display:none}::ng-deep .mat-horizontal-stepper-header-container{background:#fff!important}::ng-deep .mat-stepper-horizontal-line{border-top:1px dashed!important;display:none}::ng-deep .mat-horizontal-content-container{display:none}::ng-deep .mat-horizontal-stepper-header{padding:0 8px!important}::ng-deep .mat-step-header.step-disabled .mat-step-label{pointer-events:none}::ng-deep .mat-step-header{max-height:fit-content!important}\n"], dependencies: [{ kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
234
234
  }
235
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperWIthArrowComponent, decorators: [{
236
236
  type: Component,
237
- args: [{ selector: 'lib-stepper-with-arrow', standalone: true, imports: [MatStepperModule, CommonModule], template: "<div *ngIf=\"field() && field()?.isVisible\" style=\"zoom: 0.85;\">\r\n <mat-stepper #stepperHeader>\r\n <ng-container *ngFor=\"let steps of field().editStepper; let i = index\">\r\n <mat-step \r\n *ngIf=\"steps.isDisplay !== false\"\r\n [completed]=\"false\"\r\n [optional]=\"false\">\r\n <ng-template matStepLabel>\r\n <div \r\n class=\"step-container\"\r\n [class.step-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.step-active]=\"isStepActive(i)\"\r\n [class.step-completed]=\"isStepCompleted(i)\"\r\n [class.step-collapsed]=\"!shouldShowLabel(i)\"\r\n (click)=\"onStepClick(steps, i)\">\r\n <span \r\n class=\"step-circle\"\r\n [class.circle-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.circle-active]=\"isStepActive(i)\"\r\n [class.circle-completed]=\"isStepCompleted(i)\">\r\n {{i + 1}}\r\n </span>\r\n <span \r\n class=\"step-label mx-2\"\r\n [class.label-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.label-active]=\"isStepActive(i)\"\r\n [class.label-completed]=\"isStepCompleted(i)\"\r\n [class.label-hidden]=\"!shouldShowLabel(i)\">\r\n {{steps?.displayLabel}}\r\n </span>\r\n <span \r\n class=\"arrow\" \r\n [class.arrow-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.arrow-active]=\"isStepActive(i)\"\r\n [class.arrow-completed]=\"isStepCompleted(i)\"\r\n *ngIf=\"i < field().editStepper.length - 1\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </mat-step>\r\n </ng-container>\r\n </mat-stepper>\r\n</div>", styles: ["*{font-family:mulish!important}.step-container{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;border:none;transition:all .3s ease}.step-container:hover:not(.step-disabled){background-color:#f5f5f5}.step-container.step-selected{border:none}.step-container.step-disabled{cursor:not-allowed;opacity:.6}.step-container.step-collapsed{padding:4px;justify-content:center}.step-circle{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;background:#0bb68b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-right:8px;transition:all .3s ease;flex-shrink:0;box-sizing:border-box}.step-circle.circle-disabled{background:#999;color:#ccc}.step-circle.circle-selected{background:#0a9c75}.step-circle.circle-completed{background:#0a9c75;color:#fff}.step-label{color:#444;font-size:13px;font-weight:600;transition:color .3s ease}.step-label.label-disabled{color:#999}.step-label.label-selected{color:#444;font-weight:700}.step-label.label-hidden{display:none}.step-label.label-active{color:#0bb68b;font-weight:700}.step-label.label-completed{color:#0a9c75;font-weight:600}.arrow{border:solid #444;border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(315deg);margin-left:12px;transition:border-color .3s ease}.arrow.arrow-disabled{border-color:#999}.arrow.arrow-hidden{display:none}.arrow.arrow-active,.arrow.arrow-completed{border-color:#444}::ng-deep .mat-step-icon{display:none}::ng-deep .mat-horizontal-stepper-header-container{background:#fff!important}::ng-deep .mat-stepper-horizontal-line{border-top:1px dashed!important;display:none}::ng-deep .mat-horizontal-content-container{display:none}::ng-deep .mat-horizontal-stepper-header{padding:0 8px!important}::ng-deep .mat-step-header.step-disabled .mat-step-label{pointer-events:none}::ng-deep .mat-step-header{max-height:fit-content!important}\n"] }]
237
+ args: [{ selector: 'lib-stepper-with-arrow', standalone: true, imports: [MatStepperModule, CommonModule], template: "<div *ngIf=\"field() && field()?.isVisible\" style=\"zoom: 0.85;\">\r\n <mat-stepper #stepperHeader>\r\n <ng-container *ngFor=\"let steps of field().editStepper; let i = index\">\r\n <mat-step \r\n *ngIf=\"steps.isDisplay !== false\"\r\n [completed]=\"false\"\r\n [optional]=\"false\">\r\n <ng-template matStepLabel>\r\n <div \r\n class=\"step-container\"\r\n [class.step-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.step-active]=\"isStepActive(i)\"\r\n [class.step-completed]=\"isStepCompleted(i)\"\r\n [class.step-collapsed]=\"!shouldShowLabel(i)\"\r\n (click)=\"onStepClick(steps, i)\">\r\n <span \r\n class=\"step-circle\"\r\n [class.circle-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.circle-active]=\"isStepActive(i)\"\r\n [class.circle-completed]=\"isStepCompleted(i)\">\r\n {{i + 1}}\r\n </span>\r\n <span \r\n class=\"step-label mx-2\"\r\n [class.label-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.label-active]=\"isStepActive(i)\"\r\n [class.label-completed]=\"isStepCompleted(i)\"\r\n [class.label-hidden]=\"!shouldShowLabel(i)\">\r\n {{steps?.displayLabel}}\r\n </span>\r\n <span \r\n class=\"arrow\" \r\n [class.arrow-disabled]=\"shouldShowAsDisabled(steps, i)\"\r\n [class.arrow-active]=\"isStepActive(i)\"\r\n [class.arrow-completed]=\"isStepCompleted(i)\"\r\n *ngIf=\"i < field().editStepper.length - 1\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </mat-step>\r\n </ng-container>\r\n </mat-stepper>\r\n</div>", styles: ["*{font-family:mulish!important}.step-container{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;border:none;transition:all .3s ease}.step-container:hover:not(.step-disabled){background-color:#f5f5f5}.step-container.step-selected{border:none}.step-container.step-disabled{cursor:not-allowed;opacity:.6}.step-container.step-collapsed{padding:4px;justify-content:center}.step-circle{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;background:#0bb68b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-right:8px;transition:all .3s ease;flex-shrink:0;box-sizing:border-box}.step-circle.circle-disabled{background:#999;color:#ccc}.step-circle.circle-selected{background:#0a9c75}.step-circle.circle-completed{background:#0a9c75;color:#fff}.step-label{color:#444!important;font-size:13px!important;font-weight:700!important;transition:color .3s ease!important}.step-label.label-disabled{color:#999}.step-label.label-selected{color:#444;font-weight:700}.step-label.label-hidden{display:none}.step-label.label-active{color:#0bb68b;font-weight:700}.step-label.label-completed{color:#0a9c75;font-weight:600}.arrow{border:solid #444;border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(315deg);margin-left:12px;transition:border-color .3s ease}.arrow.arrow-disabled{border-color:#999}.arrow.arrow-hidden{display:none}.arrow.arrow-active,.arrow.arrow-completed{border-color:#444}::ng-deep .mat-step-icon{display:none}::ng-deep .mat-horizontal-stepper-header-container{background:#fff!important}::ng-deep .mat-stepper-horizontal-line{border-top:1px dashed!important;display:none}::ng-deep .mat-horizontal-content-container{display:none}::ng-deep .mat-horizontal-stepper-header{padding:0 8px!important}::ng-deep .mat-step-header.step-disabled .mat-step-label{pointer-events:none}::ng-deep .mat-step-header{max-height:fit-content!important}\n"] }]
238
238
  }], ctorParameters: () => [{ type: i1.MasterControlService }] });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvc3RlcHBlci13aXRoLWFycm93L3N0ZXBwZXItd2l0aC1hcnJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3N0ZXBwZXItd2l0aC1hcnJvdy9zdGVwcGVyLXdpdGgtYXJyb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQVU3RCxNQUFNLE9BQU8seUJBQXlCO0lBVWpCO0lBVG5CLEtBQUssR0FBUSxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDbkMsZ0JBQWdCLEdBQUcsS0FBSyxFQUFVLENBQUMsQ0FBQyxrREFBa0Q7SUFDdEYsWUFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNuRixpQkFBaUIsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUM7SUFDbEYsWUFBWSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQzdCLGFBQWEsQ0FBTTtJQUNuQixpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNmLGlCQUFpQixDQUFNO0lBRS9CLFlBQW1CLG1CQUF5QztRQUF6Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQzFELDhDQUE4QztRQUM5QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxTQUFTLEdBQUcs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LGNBQWMsRUFBRSxDQUFDO1lBRXRCLG9EQUFvRDtZQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7d0dBN1BVLHlCQUF5Qjs0RkFBekIseUJBQXlCLGtzQkNadEMsazFEQTBDTSw0N0REbENNLGdCQUFnQixraEJBQUUsWUFBWTs7NEZBSTdCLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcclxuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXN0ZXBwZXItd2l0aC1hcnJvdycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0U3RlcHBlck1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGVwcGVyV0l0aEFycm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGZpZWxkOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgY3VycmVudFN0ZXBWYWx1ZSA9IGlucHV0PHN0cmluZz4oKTsgLy8gSW5wdXQgdG8gcmVjZWl2ZSBjdXJyZW50IHN0ZXAgdmFsdWUgZnJvbSBwYXJlbnRcclxuICBhdXRvUHJvZ3Jlc3MgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIElucHV0IHRvIGVuYWJsZSBhdXRvbWF0aWMgc3RlcCBwcm9ncmVzc2lvblxyXG4gIGF1dG9Qcm9ncmVzc0RlbGF5ID0gaW5wdXQ8bnVtYmVyPigzMDAwKTsgLy8gRGVsYXkgYmV0d2VlbiBhdXRvLXByb2dyZXNzaW9uIChpbiBtcylcclxuICBzZWxlY3RlZFN0ZXAgPSBvdXRwdXQ8YW55PigpO1xyXG4gIG1hc3RlclN0ZXBwZXI6IGFueTtcclxuICBzZWxlY3RlZFN0ZXBJbmRleCA9IC0xO1xyXG4gIHByaXZhdGUgYXV0b1Byb2dyZXNzVGltZXI6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNoYXJlZFNlcnZpY2U6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKSB7XHJcbiAgICAvLyBXYXRjaCBmb3IgY2hhbmdlcyBpbiBjdXJyZW50U3RlcFZhbHVlIGlucHV0XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzdGVwVmFsdWUgPSB0aGlzLmN1cnJlbnRTdGVwVmFsdWUoKTtcclxuICAgICAgaWYgKHN0ZXBWYWx1ZSAmJiB0aGlzLmZpZWxkKCk/LmVkaXRTdGVwcGVyKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdGVwRnJvbUV4dGVybmFsKHN0ZXBWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgPSB0aGlzLmZpZWxkKCkuY29uZmlnRGF0YS5zdGVwcGVyRGF0YSA/IHRoaXMuZmllbGQoKS5jb25maWdEYXRhLnN0ZXBwZXJEYXRhIDogdGhpcy5tYXN0ZXJTaGFyZWRTZXJ2aWNlPy5jb25maWdEYXRhPy5zdGVwcGVyPy5zdGVwcGVyRGF0YTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZXBwZXJTdGF0ZSgpO1xyXG4gICAgdGhpcy5lbWl0QWN0aXZlU3RlcE9uTG9hZCgpO1xyXG4gICAgXHJcbiAgICAvLyBTdGFydCBhdXRvLXByb2dyZXNzaW9uIGlmIGVuYWJsZWRcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzcygpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRBdXRvUHJvZ3Jlc3Npb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gQ2xlYW4gdXAgdGltZXJcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUHJvZ3Jlc3NUaW1lcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplU3RlcHBlclN0YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcikge1xyXG4gICAgICBsZXQgYWN0aXZlU3RlcEluZGV4ID0gLTE7XHJcbiAgICAgIFxyXG4gICAgICAvLyBGaW5kIHRoZSBjdXJyZW50IGFjdGl2ZSBzdGVwIGJhc2VkIG9uIHN0ZXAgcHJvcGVydGllcyBvciBmaWVsZCB2YWx1ZVxyXG4gICAgICAvLyBDaGVjayBpZiBhbnkgc3RlcCBpcyBhbHJlYWR5IG1hcmtlZCBhcyBhY3RpdmVcclxuICAgICAgYWN0aXZlU3RlcEluZGV4ID0gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyLmZpbmRJbmRleCgoc3RlcDogYW55KSA9PiBzdGVwLmlzQWN0aXZlID09PSB0cnVlKTtcclxuICAgICAgXHJcbiAgICAgIC8vIElmIG5vIGFjdGl2ZSBzdGVwIGZvdW5kLCBjaGVjayBmb3IgY3VycmVudCB2YWx1ZSBpbiBmaWVsZFxyXG4gICAgICBpZiAoYWN0aXZlU3RlcEluZGV4ID09PSAtMSAmJiB0aGlzLmZpZWxkKCkudmFsdWUpIHtcclxuICAgICAgICBhY3RpdmVTdGVwSW5kZXggPSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZmluZEluZGV4KChzdGVwOiBhbnkpID0+IFxyXG4gICAgICAgICAgc3RlcC5kaXNwbGF5TGFiZWwgPT09IHRoaXMuZmllbGQoKS52YWx1ZSB8fCBcclxuICAgICAgICAgIHN0ZXAudmFsdWUgPT09IHRoaXMuZmllbGQoKS52YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIElmIHN0aWxsIG5vIGFjdGl2ZSBzdGVwIGZvdW5kLCBkZWZhdWx0IHRvIGZpcnN0IHN0ZXBcclxuICAgICAgaWYgKGFjdGl2ZVN0ZXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgICBhY3RpdmVTdGVwSW5kZXggPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZm9yRWFjaCgoc3RlcDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzIGlmIG5vdCBwcm92aWRlZFxyXG4gICAgICAgIGlmIChzdGVwLmlzRGlzcGxheSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFNldCBzdGVwIHN0YXRlcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHN0ZXAgbG9naWNcclxuICAgICAgICBpZiAoaW5kZXggPCBhY3RpdmVTdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIFN0ZXBzIGJlZm9yZSBhY3RpdmUgc3RlcCBhcmUgY29tcGxldGVkIGFuZCBlbmFibGVkXHJcbiAgICAgICAgICBzdGVwLmlzQ29tcGxldGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNEaXNhYmxlZCA9IGZhbHNlOyAvLyBDb21wbGV0ZWQgc3RlcHMgY2FuIGJlIGNsaWNrZWRcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSBhY3RpdmVTdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIEN1cnJlbnQgYWN0aXZlIHN0ZXBcclxuICAgICAgICAgIHN0ZXAuaXNDb21wbGV0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgc3RlcC5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcEluZGV4ID0gaW5kZXg7IC8vIFNldCBhcyBzZWxlY3RlZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBTdGVwcyBhZnRlciBhY3RpdmUgc3RlcCBhcmUgcGVuZGluZyBhbmQgZGlzYWJsZWRcclxuICAgICAgICAgIHN0ZXAuaXNDb21wbGV0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RlcENsaWNrKHN0ZXA6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCFzdGVwLmlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9IGluZGV4O1xyXG4gICAgICBjb25zdCBzdGVwRGF0YSA9IHtcclxuICAgICAgICBzdGVwOiBzdGVwLFxyXG4gICAgICAgIGluZGV4OiBpbmRleCxcclxuICAgICAgICBsYWJlbDogc3RlcC5kaXNwbGF5TGFiZWwsXHJcbiAgICAgICAgdmFsdWU6IHN0ZXAudmFsdWUgfHwgc3RlcC5kaXNwbGF5TGFiZWxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAuZW1pdChzdGVwRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1N0ZXBTZWxlY3RlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBzaG91bGRTaG93TGFiZWwoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgLy8gU2hvdyBsYWJlbCBvbmx5IGlmIG5vIHN0ZXAgaXMgc2VsZWN0ZWQgT1IgaWYgdGhpcyBzdGVwIGlzIHRoZSBzZWxlY3RlZCBvbmVcclxuICAgIC8vIEhpZGUgbGFiZWxzIGZvciBjb21wbGV0ZWQgc3RlcHNcclxuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gLTEgfHwgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gaW5kZXgpICYmICF0aGlzLmlzU3RlcENvbXBsZXRlZChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzaG91bGRTaG93QXNEaXNhYmxlZChzdGVwOiBhbnksIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIC8vIFNob3cgYXMgZGlzYWJsZWQgaWYgc3RlcCBpcyBhY3R1YWxseSBkaXNhYmxlZFxyXG4gICAgcmV0dXJuIHN0ZXAuaXNEaXNhYmxlZCA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlzU3RlcENvbXBsZXRlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAvLyBDaGVjayBpZiBzdGVwIGlzIG1hcmtlZCBhcyBjb21wbGV0ZWRcclxuICAgIGlmICh0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgJiYgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XS5pc0NvbXBsZXRlZCA9PT0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzU3RlcEFjdGl2ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAvLyBDaGVjayBpZiBzdGVwIGlzIG1hcmtlZCBhcyBhY3RpdmVcclxuICAgIGlmICh0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgJiYgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XS5pc0FjdGl2ZSA9PT0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtaXRBY3RpdmVTdGVwT25Mb2FkKCkge1xyXG4gICAgLy8gQXV0b21hdGljYWxseSBlbWl0IHRoZSBhY3RpdmUgc3RlcCB3aGVuIGNvbXBvbmVudCBsb2Fkc1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlciAmJiB0aGlzLnNlbGVjdGVkU3RlcEluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgYWN0aXZlU3RlcCA9IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XTtcclxuICAgICAgaWYgKGFjdGl2ZVN0ZXApIHtcclxuICAgICAgICBjb25zdCBzdGVwRGF0YSA9IHtcclxuICAgICAgICAgIHN0ZXA6IGFjdGl2ZVN0ZXAsXHJcbiAgICAgICAgICBpbmRleDogdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiBhY3RpdmVTdGVwLmRpc3BsYXlMYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBhY3RpdmVTdGVwLnZhbHVlIHx8IGFjdGl2ZVN0ZXAuZGlzcGxheUxhYmVsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcC5lbWl0KHN0ZXBEYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHByb2dyYW1tYXRpY2FsbHkgbW92ZSB0byB0aGUgbmV4dCBzdGVwXHJcbiAgbW92ZVRvTmV4dFN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA8IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlci5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHRoaXMubW92ZVRvU3RlcCh0aGlzLnNlbGVjdGVkU3RlcEluZGV4ICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBtb3ZlIHRvIHRoZSBwcmV2aW91cyBzdGVwXHJcbiAgbW92ZVRvUHJldmlvdXNTdGVwKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGVwSW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMubW92ZVRvU3RlcCh0aGlzLnNlbGVjdGVkU3RlcEluZGV4IC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBtb3ZlIHRvIGEgc3BlY2lmaWMgc3RlcFxyXG4gIG1vdmVUb1N0ZXAoc3RlcEluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmIChzdGVwSW5kZXggPj0gMCAmJiBzdGVwSW5kZXggPCB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIubGVuZ3RoKSB7XHJcbiAgICAgIC8vIFVwZGF0ZSBzdGVwIHN0YXRlc1xyXG4gICAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZm9yRWFjaCgoc3RlcDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgc3RlcEluZGV4KSB7XHJcbiAgICAgICAgICAvLyBNYXJrIHByZXZpb3VzIHN0ZXBzIGFzIGNvbXBsZXRlZFxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgICBzdGVwLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSBzdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIE1hcmsgY3VycmVudCBzdGVwIGFzIGFjdGl2ZVxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gTWFyayBmdXR1cmUgc3RlcHMgYXMgcGVuZGluZy9kaXNhYmxlZFxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9IHN0ZXBJbmRleDtcclxuICAgICAgXHJcbiAgICAgIC8vIEVtaXQgdGhlIHN0ZXAgY2hhbmdlXHJcbiAgICAgIGNvbnN0IHN0ZXBEYXRhID0ge1xyXG4gICAgICAgIHN0ZXA6IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcltzdGVwSW5kZXhdLFxyXG4gICAgICAgIGluZGV4OiBzdGVwSW5kZXgsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcltzdGVwSW5kZXhdLmRpc3BsYXlMYWJlbCxcclxuICAgICAgICB2YWx1ZTogdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW3N0ZXBJbmRleF0udmFsdWUgfHwgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW3N0ZXBJbmRleF0uZGlzcGxheUxhYmVsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwLmVtaXQoc3RlcERhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGNvbXBsZXRlIGN1cnJlbnQgc3RlcCBhbmQgbW92ZSB0byBuZXh0XHJcbiAgY29tcGxldGVDdXJyZW50U3RlcEFuZE1vdmVOZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGVwSW5kZXggPj0gMCAmJiB0aGlzLnNlbGVjdGVkU3RlcEluZGV4IDwgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyLmxlbmd0aCAtIDEpIHtcclxuICAgICAgLy8gTWFyayBjdXJyZW50IHN0ZXAgYXMgY29tcGxldGVkXHJcbiAgICAgIHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XS5pc0NvbXBsZXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICBcclxuICAgICAgLy8gTW92ZSB0byBuZXh0IHN0ZXBcclxuICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHdhdGNoIGZvciBleHRlcm5hbCBzdGVwIGNoYW5nZXMgKGNhbiBiZSBjYWxsZWQgZnJvbSBwYXJlbnQpXHJcbiAgdXBkYXRlU3RlcEZyb21FeHRlcm5hbChzdGVwVmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcikge1xyXG4gICAgICBjb25zdCBzdGVwSW5kZXggPSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZmluZEluZGV4KChzdGVwOiBhbnkpID0+IFxyXG4gICAgICAgIHN0ZXAuZGlzcGxheUxhYmVsID09PSBzdGVwVmFsdWUgfHwgc3RlcC52YWx1ZSA9PT0gc3RlcFZhbHVlXHJcbiAgICAgICk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoc3RlcEluZGV4ID49IDAgJiYgc3RlcEluZGV4ICE9PSB0aGlzLnNlbGVjdGVkU3RlcEluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlVG9TdGVwKHN0ZXBJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEF1dG8tcHJvZ3Jlc3Npb24gbWV0aG9kc1xyXG4gIHN0YXJ0QXV0b1Byb2dyZXNzaW9uKCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b1Byb2dyZXNzVGltZXIpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5hdXRvUHJvZ3Jlc3NUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcCgpO1xyXG4gICAgICBcclxuICAgICAgLy8gU3RvcCBhdXRvLXByb2dyZXNzaW9uIHdoZW4gcmVhY2hpbmcgdGhlIGxhc3Qgc3RlcFxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA+PSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRoaXMuc3RvcEF1dG9Qcm9ncmVzc2lvbigpO1xyXG4gICAgICB9XHJcbiAgICB9LCB0aGlzLmF1dG9Qcm9ncmVzc0RlbGF5KCkpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9Qcm9ncmVzc2lvbigpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUHJvZ3Jlc3NUaW1lcik7XHJcbiAgICAgIHRoaXMuYXV0b1Byb2dyZXNzVGltZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHJlc2V0IHN0ZXBwZXIgdG8gZmlyc3Qgc3RlcFxyXG4gIHJlc2V0VG9GaXJzdFN0ZXAoKSB7XHJcbiAgICB0aGlzLnN0b3BBdXRvUHJvZ3Jlc3Npb24oKTtcclxuICAgIHRoaXMubW92ZVRvU3RlcCgwKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuYXV0b1Byb2dyZXNzKCkpIHtcclxuICAgICAgdGhpcy5zdGFydEF1dG9Qcm9ncmVzc2lvbigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIiBzdHlsZT1cInpvb206IDAuODU7XCI+XHJcbiAgPG1hdC1zdGVwcGVyICNzdGVwcGVySGVhZGVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcHMgb2YgZmllbGQoKS5lZGl0U3RlcHBlcjsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bWF0LXN0ZXAgXHJcbiAgICAgICAgKm5nSWY9XCJzdGVwcy5pc0Rpc3BsYXkgIT09IGZhbHNlXCJcclxuICAgICAgICBbY29tcGxldGVkXT1cImZhbHNlXCJcclxuICAgICAgICBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxyXG4gICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgY2xhc3M9XCJzdGVwLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zdGVwLWRpc2FibGVkXT1cInNob3VsZFNob3dBc0Rpc2FibGVkKHN0ZXBzLCBpKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zdGVwLWFjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaSlcIlxyXG4gICAgICAgICAgICBbY2xhc3Muc3RlcC1jb21wbGV0ZWRdPVwiaXNTdGVwQ29tcGxldGVkKGkpXCJcclxuICAgICAgICAgICAgW2NsYXNzLnN0ZXAtY29sbGFwc2VkXT1cIiFzaG91bGRTaG93TGFiZWwoaSlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdGVwQ2xpY2soc3RlcHMsIGkpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RlcC1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5jaXJjbGUtZGlzYWJsZWRdPVwic2hvdWxkU2hvd0FzRGlzYWJsZWQoc3RlcHMsIGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuY2lyY2xlLWFjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5jaXJjbGUtY29tcGxldGVkXT1cImlzU3RlcENvbXBsZXRlZChpKVwiPlxyXG4gICAgICAgICAgICAgIHt7aSArIDF9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RlcC1sYWJlbCBteC0yXCJcclxuICAgICAgICAgICAgICBbY2xhc3MubGFiZWwtZGlzYWJsZWRdPVwic2hvdWxkU2hvd0FzRGlzYWJsZWQoc3RlcHMsIGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MubGFiZWwtYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmxhYmVsLWNvbXBsZXRlZF09XCJpc1N0ZXBDb21wbGV0ZWQoaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5sYWJlbC1oaWRkZW5dPVwiIXNob3VsZFNob3dMYWJlbChpKVwiPlxyXG4gICAgICAgICAgICAgIHt7c3RlcHM/LmRpc3BsYXlMYWJlbH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcnJvd1wiIFxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcnJvdy1kaXNhYmxlZF09XCJzaG91bGRTaG93QXNEaXNhYmxlZChzdGVwcywgaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcnJvdy1hY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYXJyb3ctY29tcGxldGVkXT1cImlzU3RlcENvbXBsZXRlZChpKVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpIDwgZmllbGQoKS5lZGl0U3RlcHBlci5sZW5ndGggLSAxXCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbWF0LXN0ZXA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1zdGVwcGVyPlxyXG48L2Rpdj4iXX0=
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvc3RlcHBlci13aXRoLWFycm93L3N0ZXBwZXItd2l0aC1hcnJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3N0ZXBwZXItd2l0aC1hcnJvdy9zdGVwcGVyLXdpdGgtYXJyb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQVU3RCxNQUFNLE9BQU8seUJBQXlCO0lBVWpCO0lBVG5CLEtBQUssR0FBUSxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDbkMsZ0JBQWdCLEdBQUcsS0FBSyxFQUFVLENBQUMsQ0FBQyxrREFBa0Q7SUFDdEYsWUFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNuRixpQkFBaUIsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUM7SUFDbEYsWUFBWSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQzdCLGFBQWEsQ0FBTTtJQUNuQixpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNmLGlCQUFpQixDQUFNO0lBRS9CLFlBQW1CLG1CQUF5QztRQUF6Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQzFELDhDQUE4QztRQUM5QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxTQUFTLEdBQUcs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LGNBQWMsRUFBRSxDQUFDO1lBRXRCLG9EQUFvRDtZQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7d0dBN1BVLHlCQUF5Qjs0RkFBekIseUJBQXlCLGtzQkNadEMsazFEQTBDTSxvK0REbENNLGdCQUFnQixraEJBQUUsWUFBWTs7NEZBSTdCLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcclxuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXN0ZXBwZXItd2l0aC1hcnJvdycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0U3RlcHBlck1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RlcHBlci13aXRoLWFycm93LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGVwcGVyV0l0aEFycm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGZpZWxkOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgY3VycmVudFN0ZXBWYWx1ZSA9IGlucHV0PHN0cmluZz4oKTsgLy8gSW5wdXQgdG8gcmVjZWl2ZSBjdXJyZW50IHN0ZXAgdmFsdWUgZnJvbSBwYXJlbnRcclxuICBhdXRvUHJvZ3Jlc3MgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIElucHV0IHRvIGVuYWJsZSBhdXRvbWF0aWMgc3RlcCBwcm9ncmVzc2lvblxyXG4gIGF1dG9Qcm9ncmVzc0RlbGF5ID0gaW5wdXQ8bnVtYmVyPigzMDAwKTsgLy8gRGVsYXkgYmV0d2VlbiBhdXRvLXByb2dyZXNzaW9uIChpbiBtcylcclxuICBzZWxlY3RlZFN0ZXAgPSBvdXRwdXQ8YW55PigpO1xyXG4gIG1hc3RlclN0ZXBwZXI6IGFueTtcclxuICBzZWxlY3RlZFN0ZXBJbmRleCA9IC0xO1xyXG4gIHByaXZhdGUgYXV0b1Byb2dyZXNzVGltZXI6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNoYXJlZFNlcnZpY2U6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKSB7XHJcbiAgICAvLyBXYXRjaCBmb3IgY2hhbmdlcyBpbiBjdXJyZW50U3RlcFZhbHVlIGlucHV0XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzdGVwVmFsdWUgPSB0aGlzLmN1cnJlbnRTdGVwVmFsdWUoKTtcclxuICAgICAgaWYgKHN0ZXBWYWx1ZSAmJiB0aGlzLmZpZWxkKCk/LmVkaXRTdGVwcGVyKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdGVwRnJvbUV4dGVybmFsKHN0ZXBWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgPSB0aGlzLmZpZWxkKCkuY29uZmlnRGF0YS5zdGVwcGVyRGF0YSA/IHRoaXMuZmllbGQoKS5jb25maWdEYXRhLnN0ZXBwZXJEYXRhIDogdGhpcy5tYXN0ZXJTaGFyZWRTZXJ2aWNlPy5jb25maWdEYXRhPy5zdGVwcGVyPy5zdGVwcGVyRGF0YTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZXBwZXJTdGF0ZSgpO1xyXG4gICAgdGhpcy5lbWl0QWN0aXZlU3RlcE9uTG9hZCgpO1xyXG4gICAgXHJcbiAgICAvLyBTdGFydCBhdXRvLXByb2dyZXNzaW9uIGlmIGVuYWJsZWRcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzcygpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRBdXRvUHJvZ3Jlc3Npb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gQ2xlYW4gdXAgdGltZXJcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUHJvZ3Jlc3NUaW1lcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplU3RlcHBlclN0YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcikge1xyXG4gICAgICBsZXQgYWN0aXZlU3RlcEluZGV4ID0gLTE7XHJcbiAgICAgIFxyXG4gICAgICAvLyBGaW5kIHRoZSBjdXJyZW50IGFjdGl2ZSBzdGVwIGJhc2VkIG9uIHN0ZXAgcHJvcGVydGllcyBvciBmaWVsZCB2YWx1ZVxyXG4gICAgICAvLyBDaGVjayBpZiBhbnkgc3RlcCBpcyBhbHJlYWR5IG1hcmtlZCBhcyBhY3RpdmVcclxuICAgICAgYWN0aXZlU3RlcEluZGV4ID0gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyLmZpbmRJbmRleCgoc3RlcDogYW55KSA9PiBzdGVwLmlzQWN0aXZlID09PSB0cnVlKTtcclxuICAgICAgXHJcbiAgICAgIC8vIElmIG5vIGFjdGl2ZSBzdGVwIGZvdW5kLCBjaGVjayBmb3IgY3VycmVudCB2YWx1ZSBpbiBmaWVsZFxyXG4gICAgICBpZiAoYWN0aXZlU3RlcEluZGV4ID09PSAtMSAmJiB0aGlzLmZpZWxkKCkudmFsdWUpIHtcclxuICAgICAgICBhY3RpdmVTdGVwSW5kZXggPSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZmluZEluZGV4KChzdGVwOiBhbnkpID0+IFxyXG4gICAgICAgICAgc3RlcC5kaXNwbGF5TGFiZWwgPT09IHRoaXMuZmllbGQoKS52YWx1ZSB8fCBcclxuICAgICAgICAgIHN0ZXAudmFsdWUgPT09IHRoaXMuZmllbGQoKS52YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIElmIHN0aWxsIG5vIGFjdGl2ZSBzdGVwIGZvdW5kLCBkZWZhdWx0IHRvIGZpcnN0IHN0ZXBcclxuICAgICAgaWYgKGFjdGl2ZVN0ZXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgICBhY3RpdmVTdGVwSW5kZXggPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZm9yRWFjaCgoc3RlcDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzIGlmIG5vdCBwcm92aWRlZFxyXG4gICAgICAgIGlmIChzdGVwLmlzRGlzcGxheSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFNldCBzdGVwIHN0YXRlcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHN0ZXAgbG9naWNcclxuICAgICAgICBpZiAoaW5kZXggPCBhY3RpdmVTdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIFN0ZXBzIGJlZm9yZSBhY3RpdmUgc3RlcCBhcmUgY29tcGxldGVkIGFuZCBlbmFibGVkXHJcbiAgICAgICAgICBzdGVwLmlzQ29tcGxldGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNEaXNhYmxlZCA9IGZhbHNlOyAvLyBDb21wbGV0ZWQgc3RlcHMgY2FuIGJlIGNsaWNrZWRcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSBhY3RpdmVTdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIEN1cnJlbnQgYWN0aXZlIHN0ZXBcclxuICAgICAgICAgIHN0ZXAuaXNDb21wbGV0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgc3RlcC5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcEluZGV4ID0gaW5kZXg7IC8vIFNldCBhcyBzZWxlY3RlZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBTdGVwcyBhZnRlciBhY3RpdmUgc3RlcCBhcmUgcGVuZGluZyBhbmQgZGlzYWJsZWRcclxuICAgICAgICAgIHN0ZXAuaXNDb21wbGV0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHN0ZXAuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RlcENsaWNrKHN0ZXA6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCFzdGVwLmlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9IGluZGV4O1xyXG4gICAgICBjb25zdCBzdGVwRGF0YSA9IHtcclxuICAgICAgICBzdGVwOiBzdGVwLFxyXG4gICAgICAgIGluZGV4OiBpbmRleCxcclxuICAgICAgICBsYWJlbDogc3RlcC5kaXNwbGF5TGFiZWwsXHJcbiAgICAgICAgdmFsdWU6IHN0ZXAudmFsdWUgfHwgc3RlcC5kaXNwbGF5TGFiZWxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAuZW1pdChzdGVwRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1N0ZXBTZWxlY3RlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBzaG91bGRTaG93TGFiZWwoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgLy8gU2hvdyBsYWJlbCBvbmx5IGlmIG5vIHN0ZXAgaXMgc2VsZWN0ZWQgT1IgaWYgdGhpcyBzdGVwIGlzIHRoZSBzZWxlY3RlZCBvbmVcclxuICAgIC8vIEhpZGUgbGFiZWxzIGZvciBjb21wbGV0ZWQgc3RlcHNcclxuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gLTEgfHwgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9PT0gaW5kZXgpICYmICF0aGlzLmlzU3RlcENvbXBsZXRlZChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzaG91bGRTaG93QXNEaXNhYmxlZChzdGVwOiBhbnksIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIC8vIFNob3cgYXMgZGlzYWJsZWQgaWYgc3RlcCBpcyBhY3R1YWxseSBkaXNhYmxlZFxyXG4gICAgcmV0dXJuIHN0ZXAuaXNEaXNhYmxlZCA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlzU3RlcENvbXBsZXRlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAvLyBDaGVjayBpZiBzdGVwIGlzIG1hcmtlZCBhcyBjb21wbGV0ZWRcclxuICAgIGlmICh0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgJiYgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XS5pc0NvbXBsZXRlZCA9PT0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzU3RlcEFjdGl2ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAvLyBDaGVjayBpZiBzdGVwIGlzIG1hcmtlZCBhcyBhY3RpdmVcclxuICAgIGlmICh0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIgJiYgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW2luZGV4XS5pc0FjdGl2ZSA9PT0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtaXRBY3RpdmVTdGVwT25Mb2FkKCkge1xyXG4gICAgLy8gQXV0b21hdGljYWxseSBlbWl0IHRoZSBhY3RpdmUgc3RlcCB3aGVuIGNvbXBvbmVudCBsb2Fkc1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlciAmJiB0aGlzLnNlbGVjdGVkU3RlcEluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgYWN0aXZlU3RlcCA9IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XTtcclxuICAgICAgaWYgKGFjdGl2ZVN0ZXApIHtcclxuICAgICAgICBjb25zdCBzdGVwRGF0YSA9IHtcclxuICAgICAgICAgIHN0ZXA6IGFjdGl2ZVN0ZXAsXHJcbiAgICAgICAgICBpbmRleDogdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiBhY3RpdmVTdGVwLmRpc3BsYXlMYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBhY3RpdmVTdGVwLnZhbHVlIHx8IGFjdGl2ZVN0ZXAuZGlzcGxheUxhYmVsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcC5lbWl0KHN0ZXBEYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHByb2dyYW1tYXRpY2FsbHkgbW92ZSB0byB0aGUgbmV4dCBzdGVwXHJcbiAgbW92ZVRvTmV4dFN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA8IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlci5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHRoaXMubW92ZVRvU3RlcCh0aGlzLnNlbGVjdGVkU3RlcEluZGV4ICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBtb3ZlIHRvIHRoZSBwcmV2aW91cyBzdGVwXHJcbiAgbW92ZVRvUHJldmlvdXNTdGVwKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGVwSW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMubW92ZVRvU3RlcCh0aGlzLnNlbGVjdGVkU3RlcEluZGV4IC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBtb3ZlIHRvIGEgc3BlY2lmaWMgc3RlcFxyXG4gIG1vdmVUb1N0ZXAoc3RlcEluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmIChzdGVwSW5kZXggPj0gMCAmJiBzdGVwSW5kZXggPCB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIubGVuZ3RoKSB7XHJcbiAgICAgIC8vIFVwZGF0ZSBzdGVwIHN0YXRlc1xyXG4gICAgICB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZm9yRWFjaCgoc3RlcDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgc3RlcEluZGV4KSB7XHJcbiAgICAgICAgICAvLyBNYXJrIHByZXZpb3VzIHN0ZXBzIGFzIGNvbXBsZXRlZFxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgICBzdGVwLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSBzdGVwSW5kZXgpIHtcclxuICAgICAgICAgIC8vIE1hcmsgY3VycmVudCBzdGVwIGFzIGFjdGl2ZVxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICBzdGVwLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gTWFyayBmdXR1cmUgc3RlcHMgYXMgcGVuZGluZy9kaXNhYmxlZFxyXG4gICAgICAgICAgc3RlcC5pc0NvbXBsZXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgc3RlcC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA9IHN0ZXBJbmRleDtcclxuICAgICAgXHJcbiAgICAgIC8vIEVtaXQgdGhlIHN0ZXAgY2hhbmdlXHJcbiAgICAgIGNvbnN0IHN0ZXBEYXRhID0ge1xyXG4gICAgICAgIHN0ZXA6IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcltzdGVwSW5kZXhdLFxyXG4gICAgICAgIGluZGV4OiBzdGVwSW5kZXgsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcltzdGVwSW5kZXhdLmRpc3BsYXlMYWJlbCxcclxuICAgICAgICB2YWx1ZTogdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW3N0ZXBJbmRleF0udmFsdWUgfHwgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyW3N0ZXBJbmRleF0uZGlzcGxheUxhYmVsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwLmVtaXQoc3RlcERhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGNvbXBsZXRlIGN1cnJlbnQgc3RlcCBhbmQgbW92ZSB0byBuZXh0XHJcbiAgY29tcGxldGVDdXJyZW50U3RlcEFuZE1vdmVOZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGVwSW5kZXggPj0gMCAmJiB0aGlzLnNlbGVjdGVkU3RlcEluZGV4IDwgdGhpcy5maWVsZCgpLmVkaXRTdGVwcGVyLmxlbmd0aCAtIDEpIHtcclxuICAgICAgLy8gTWFyayBjdXJyZW50IHN0ZXAgYXMgY29tcGxldGVkXHJcbiAgICAgIHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XS5pc0NvbXBsZXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlclt0aGlzLnNlbGVjdGVkU3RlcEluZGV4XS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICBcclxuICAgICAgLy8gTW92ZSB0byBuZXh0IHN0ZXBcclxuICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHdhdGNoIGZvciBleHRlcm5hbCBzdGVwIGNoYW5nZXMgKGNhbiBiZSBjYWxsZWQgZnJvbSBwYXJlbnQpXHJcbiAgdXBkYXRlU3RlcEZyb21FeHRlcm5hbChzdGVwVmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmllbGQoKS5lZGl0U3RlcHBlcikge1xyXG4gICAgICBjb25zdCBzdGVwSW5kZXggPSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIuZmluZEluZGV4KChzdGVwOiBhbnkpID0+IFxyXG4gICAgICAgIHN0ZXAuZGlzcGxheUxhYmVsID09PSBzdGVwVmFsdWUgfHwgc3RlcC52YWx1ZSA9PT0gc3RlcFZhbHVlXHJcbiAgICAgICk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoc3RlcEluZGV4ID49IDAgJiYgc3RlcEluZGV4ICE9PSB0aGlzLnNlbGVjdGVkU3RlcEluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlVG9TdGVwKHN0ZXBJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEF1dG8tcHJvZ3Jlc3Npb24gbWV0aG9kc1xyXG4gIHN0YXJ0QXV0b1Byb2dyZXNzaW9uKCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b1Byb2dyZXNzVGltZXIpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5hdXRvUHJvZ3Jlc3NUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcCgpO1xyXG4gICAgICBcclxuICAgICAgLy8gU3RvcCBhdXRvLXByb2dyZXNzaW9uIHdoZW4gcmVhY2hpbmcgdGhlIGxhc3Qgc3RlcFxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFN0ZXBJbmRleCA+PSB0aGlzLmZpZWxkKCkuZWRpdFN0ZXBwZXIubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRoaXMuc3RvcEF1dG9Qcm9ncmVzc2lvbigpO1xyXG4gICAgICB9XHJcbiAgICB9LCB0aGlzLmF1dG9Qcm9ncmVzc0RlbGF5KCkpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9Qcm9ncmVzc2lvbigpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Qcm9ncmVzc1RpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUHJvZ3Jlc3NUaW1lcik7XHJcbiAgICAgIHRoaXMuYXV0b1Byb2dyZXNzVGltZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIHJlc2V0IHN0ZXBwZXIgdG8gZmlyc3Qgc3RlcFxyXG4gIHJlc2V0VG9GaXJzdFN0ZXAoKSB7XHJcbiAgICB0aGlzLnN0b3BBdXRvUHJvZ3Jlc3Npb24oKTtcclxuICAgIHRoaXMubW92ZVRvU3RlcCgwKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuYXV0b1Byb2dyZXNzKCkpIHtcclxuICAgICAgdGhpcy5zdGFydEF1dG9Qcm9ncmVzc2lvbigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIiBzdHlsZT1cInpvb206IDAuODU7XCI+XHJcbiAgPG1hdC1zdGVwcGVyICNzdGVwcGVySGVhZGVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcHMgb2YgZmllbGQoKS5lZGl0U3RlcHBlcjsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bWF0LXN0ZXAgXHJcbiAgICAgICAgKm5nSWY9XCJzdGVwcy5pc0Rpc3BsYXkgIT09IGZhbHNlXCJcclxuICAgICAgICBbY29tcGxldGVkXT1cImZhbHNlXCJcclxuICAgICAgICBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxyXG4gICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgY2xhc3M9XCJzdGVwLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zdGVwLWRpc2FibGVkXT1cInNob3VsZFNob3dBc0Rpc2FibGVkKHN0ZXBzLCBpKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zdGVwLWFjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaSlcIlxyXG4gICAgICAgICAgICBbY2xhc3Muc3RlcC1jb21wbGV0ZWRdPVwiaXNTdGVwQ29tcGxldGVkKGkpXCJcclxuICAgICAgICAgICAgW2NsYXNzLnN0ZXAtY29sbGFwc2VkXT1cIiFzaG91bGRTaG93TGFiZWwoaSlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdGVwQ2xpY2soc3RlcHMsIGkpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RlcC1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5jaXJjbGUtZGlzYWJsZWRdPVwic2hvdWxkU2hvd0FzRGlzYWJsZWQoc3RlcHMsIGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuY2lyY2xlLWFjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5jaXJjbGUtY29tcGxldGVkXT1cImlzU3RlcENvbXBsZXRlZChpKVwiPlxyXG4gICAgICAgICAgICAgIHt7aSArIDF9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RlcC1sYWJlbCBteC0yXCJcclxuICAgICAgICAgICAgICBbY2xhc3MubGFiZWwtZGlzYWJsZWRdPVwic2hvdWxkU2hvd0FzRGlzYWJsZWQoc3RlcHMsIGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MubGFiZWwtYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmxhYmVsLWNvbXBsZXRlZF09XCJpc1N0ZXBDb21wbGV0ZWQoaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5sYWJlbC1oaWRkZW5dPVwiIXNob3VsZFNob3dMYWJlbChpKVwiPlxyXG4gICAgICAgICAgICAgIHt7c3RlcHM/LmRpc3BsYXlMYWJlbH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcnJvd1wiIFxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcnJvdy1kaXNhYmxlZF09XCJzaG91bGRTaG93QXNEaXNhYmxlZChzdGVwcywgaSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcnJvdy1hY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYXJyb3ctY29tcGxldGVkXT1cImlzU3RlcENvbXBsZXRlZChpKVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpIDwgZmllbGQoKS5lZGl0U3RlcHBlci5sZW5ndGggLSAxXCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbWF0LXN0ZXA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1zdGVwcGVyPlxyXG48L2Rpdj4iXX0=
@@ -44,7 +44,7 @@ export class ToggleButtonComponent {
44
44
  useExisting: ToggleButtonComponent,
45
45
  multi: true,
46
46
  },
47
- ], ngImport: i0, template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\r\n @if(reactiveFormControlobject()) {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [value]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\"\r\n >{{ data.label }}\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }@else {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\" [title]=\"data?.tooltipText ? data?.tooltipText : data?.label\"\r\n >{{ data.label }}\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }\r\n</div>\r\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
47
+ ], ngImport: i0, template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\r\n @if(reactiveFormControlobject()) {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [value]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\"\r\n >\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n {{ data.label }}\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }@else {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\" [title]=\"data?.tooltipText ? data?.tooltipText : data?.label\"\r\n >\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n {{ data.label }}\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }\r\n</div>\r\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToggleButtonComponent, decorators: [{
50
50
  type: Component,
@@ -54,10 +54,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
54
54
  useExisting: ToggleButtonComponent,
55
55
  multi: true,
56
56
  },
57
- ], template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\r\n @if(reactiveFormControlobject()) {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [value]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\"\r\n >{{ data.label }}\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }@else {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\" [title]=\"data?.tooltipText ? data?.tooltipText : data?.label\"\r\n >{{ data.label }}\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }\r\n</div>\r\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"] }]
57
+ ], template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\r\n @if(reactiveFormControlobject()) {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [value]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\"\r\n >\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n {{ data.label }}\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }@else {\r\n <mat-button-toggle-group\r\n [ngStyle]=\"{\r\n '--toggle-button-width': field()?.controlStyle?.width ,\r\n }\"\r\n name=\"fontStyle\"\r\n class=\"custom-mat-toggle\"\r\n aria-label=\"Font Style\"\r\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\"\r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"onSelectionChange($event.value)\"\r\n >\r\n @for (data of field()?.configData?.options; track $index) {\r\n <mat-button-toggle [value]=\"data.value\" [title]=\"data?.tooltipText ? data?.tooltipText : data?.label\"\r\n >\r\n <img\r\n *ngIf=\"data.imgUrl\"\r\n [src]=\"data.imgUrl\"\r\n alt=\"\"\r\n class=\"toggle-img mx-1\"\r\n />\r\n {{ data.label }}\r\n </mat-button-toggle>\r\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\r\n <span class=\"second-box\">\r\n <img\r\n class=\"green-card-img\"\r\n *ngIf=\"data.topImage\"\r\n [src]=\"data.topImage\"\r\n alt=\"\"\r\n />\r\n <span>{{ data.toggleTopText }}</span>\r\n </span>\r\n </div>\r\n }\r\n </mat-button-toggle-group>\r\n }\r\n</div>\r\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"] }]
58
58
  }], propDecorators: { selectionChanged: [{
59
59
  type: Output
60
60
  }], change: [{
61
61
  type: Output
62
62
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQWdCeEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyx5QkFBeUIsR0FBUSxLQUFLLEVBQU8sQ0FBQztJQUM5QyxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ3BDLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFFMUIsbURBQW1EO0lBQ3pDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0MsK0JBQStCO0lBQy9CLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsa0NBQWtDO0lBQ3BDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO3dHQXRDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw0YkFSckI7WUFDUDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDakJMLG82RUEwRUEsODhERGxFWSxxQkFBcUIsc29CQUFFLFlBQVkscVRBQUUsbUJBQW1CLHlUQUFFLFdBQVc7OzRGQVdwRSxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsYUFHckU7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx1QkFBdUI7NEJBQ2xDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQVFPLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRvZ2dsZS1idXR0b24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2dnbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdDogYW55ID0gaW5wdXQ8YW55PigpO1xyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIHNlbGVjdGVkVmFsdWU6IGFueSA9IG51bGw7XHJcblxyXG4gIC8vIE91dHB1dCBldmVudHMgZm9yIHBhcmVudCBjb21wb25lbnQgY29tbXVuaWNhdGlvblxyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgaWYgbmVlZGVkXHJcbiAgfVxyXG5cclxuICAvLyBIYW5kbGUgc2VsZWN0aW9uIGNoYW5nZVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgXHJcbiAgICAvLyBFbWl0IGV2ZW50cyBmb3IgcGFyZW50IGNvbXBvbmVudFxyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIiBbbmdDbGFzc109XCJmaWVsZCgpPy5jc3NDbGFzc1wiPlxyXG4gIEBpZihyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkpIHtcclxuICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcclxuICAgIH1cIlxyXG4gICAgbmFtZT1cImZvbnRTdHlsZVwiXHJcbiAgICBjbGFzcz1cImN1c3RvbS1tYXQtdG9nZ2xlXCJcclxuICAgIGFyaWEtbGFiZWw9XCJGb250IFN0eWxlXCJcclxuICAgICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uc1wiXHJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXHJcbiAgPlxyXG4gICAgQGZvciAoZGF0YSBvZiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZGF0YS52YWx1ZVwiXHJcbiAgICAgID57eyBkYXRhLmxhYmVsIH19XHJcbiAgICAgIDxpbWdcclxuICAgICAgICAqbmdJZj1cImRhdGEuaW1nVXJsXCJcclxuICAgICAgICBbc3JjXT1cImRhdGEuaW1nVXJsXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlLWltZyBteC0xXCJcclxuICAgICAgLz5cclxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9wLWdyZWVuLWNhcmRcIiAqbmdJZj1cImRhdGEudG9nZ2xlVG9wVGV4dFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNlY29uZC1ib3hcIj5cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBjbGFzcz1cImdyZWVuLWNhcmQtaW1nXCJcclxuICAgICAgICAgICpuZ0lmPVwiZGF0YS50b3BJbWFnZVwiXHJcbiAgICAgICAgICBbc3JjXT1cImRhdGEudG9wSW1hZ2VcIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxzcGFuPnt7IGRhdGEudG9nZ2xlVG9wVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICB9QGVsc2Uge1xyXG4gICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgICAgJy0tdG9nZ2xlLWJ1dHRvbi13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8ud2lkdGggLFxyXG4gICAgfVwiXHJcbiAgICBuYW1lPVwiZm9udFN0eWxlXCJcclxuICAgIGNsYXNzPVwiY3VzdG9tLW1hdC10b2dnbGVcIlxyXG4gICAgYXJpYS1sYWJlbD1cIkZvbnQgU3R5bGVcIlxyXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zXCJcclxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gID5cclxuICAgIEBmb3IgKGRhdGEgb2YgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImRhdGEudmFsdWVcIiBbdGl0bGVdPVwiZGF0YT8udG9vbHRpcFRleHQgPyBkYXRhPy50b29sdGlwVGV4dCA6IGRhdGE/LmxhYmVsXCJcclxuICAgICAgPnt7IGRhdGEubGFiZWwgfX1cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGUtaW1nIG14LTFcIlxyXG4gICAgICAvPlxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtZ3JlZW4tY2FyZFwiICpuZ0lmPVwiZGF0YS50b2dnbGVUb3BUZXh0XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kLWJveFwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIGNsYXNzPVwiZ3JlZW4tY2FyZC1pbWdcIlxyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhLnRvcEltYWdlXCJcclxuICAgICAgICAgIFtzcmNdPVwiZGF0YS50b3BJbWFnZVwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPHNwYW4+e3sgZGF0YS50b2dnbGVUb3BUZXh0IH19PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQWdCeEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyx5QkFBeUIsR0FBUSxLQUFLLEVBQU8sQ0FBQztJQUM5QyxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ3BDLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFFMUIsbURBQW1EO0lBQ3pDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0MsK0JBQStCO0lBQy9CLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsa0NBQWtDO0lBQ3BDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO3dHQXRDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw0YkFSckI7WUFDUDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDakJMLHc3RUE0RUEsODhERHBFWSxxQkFBcUIsc29CQUFFLFlBQVkscVRBQUUsbUJBQW1CLHlUQUFFLFdBQVc7OzRGQVdwRSxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsYUFHckU7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx1QkFBdUI7NEJBQ2xDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQVFPLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRvZ2dsZS1idXR0b24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2dnbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdDogYW55ID0gaW5wdXQ8YW55PigpO1xyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIHNlbGVjdGVkVmFsdWU6IGFueSA9IG51bGw7XHJcblxyXG4gIC8vIE91dHB1dCBldmVudHMgZm9yIHBhcmVudCBjb21wb25lbnQgY29tbXVuaWNhdGlvblxyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgaWYgbmVlZGVkXHJcbiAgfVxyXG5cclxuICAvLyBIYW5kbGUgc2VsZWN0aW9uIGNoYW5nZVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgXHJcbiAgICAvLyBFbWl0IGV2ZW50cyBmb3IgcGFyZW50IGNvbXBvbmVudFxyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIiBbbmdDbGFzc109XCJmaWVsZCgpPy5jc3NDbGFzc1wiPlxyXG4gIEBpZihyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkpIHtcclxuICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcclxuICAgIH1cIlxyXG4gICAgbmFtZT1cImZvbnRTdHlsZVwiXHJcbiAgICBjbGFzcz1cImN1c3RvbS1tYXQtdG9nZ2xlXCJcclxuICAgIGFyaWEtbGFiZWw9XCJGb250IFN0eWxlXCJcclxuICAgICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uc1wiXHJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXHJcbiAgPlxyXG4gICAgQGZvciAoZGF0YSBvZiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZGF0YS52YWx1ZVwiXHJcbiAgICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGUtaW1nIG14LTFcIlxyXG4gICAgICAvPlxyXG4gICAgICB7eyBkYXRhLmxhYmVsIH19XHJcbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvcC1ncmVlbi1jYXJkXCIgKm5nSWY9XCJkYXRhLnRvZ2dsZVRvcFRleHRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZWNvbmQtYm94XCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgY2xhc3M9XCJncmVlbi1jYXJkLWltZ1wiXHJcbiAgICAgICAgICAqbmdJZj1cImRhdGEudG9wSW1hZ2VcIlxyXG4gICAgICAgICAgW3NyY109XCJkYXRhLnRvcEltYWdlXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8c3Bhbj57eyBkYXRhLnRvZ2dsZVRvcFRleHQgfX08L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgfUBlbHNlIHtcclxuICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcclxuICAgIH1cIlxyXG4gICAgbmFtZT1cImZvbnRTdHlsZVwiXHJcbiAgICBjbGFzcz1cImN1c3RvbS1tYXQtdG9nZ2xlXCJcclxuICAgIGFyaWEtbGFiZWw9XCJGb250IFN0eWxlXCJcclxuICAgICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uc1wiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gICAgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICA+XHJcbiAgICBAZm9yIChkYXRhIG9mIGZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJkYXRhLnZhbHVlXCIgW3RpdGxlXT1cImRhdGE/LnRvb2x0aXBUZXh0ID8gZGF0YT8udG9vbHRpcFRleHQgOiBkYXRhPy5sYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmxcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGUtaW1nIG14LTFcIlxyXG4gICAgICAvPlxyXG4gICAgICB7eyBkYXRhLmxhYmVsIH19XHJcbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvcC1ncmVlbi1jYXJkXCIgKm5nSWY9XCJkYXRhLnRvZ2dsZVRvcFRleHRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZWNvbmQtYm94XCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgY2xhc3M9XCJncmVlbi1jYXJkLWltZ1wiXHJcbiAgICAgICAgICAqbmdJZj1cImRhdGEudG9wSW1hZ2VcIlxyXG4gICAgICAgICAgW3NyY109XCJkYXRhLnRvcEltYWdlXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8c3Bhbj57eyBkYXRhLnRvZ2dsZVRvcFRleHQgfX08L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19