master-control 0.4.8 → 0.4.10

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.
Files changed (24) hide show
  1. package/esm2022/lib/age-date/age-date.component.mjs +3 -3
  2. package/esm2022/lib/amount-textbox/amount-textbox.component.mjs +3 -3
  3. package/esm2022/lib/dob/dob.component.mjs +3 -3
  4. package/esm2022/lib/email-with-domain/email-with-domain.component.mjs +3 -3
  5. package/esm2022/lib/info-textbox/info-textbox.component.mjs +3 -3
  6. package/esm2022/lib/medial-questions/medial-questions.component.mjs +3 -3
  7. package/esm2022/lib/mob-number/mob-number.component.mjs +3 -3
  8. package/esm2022/lib/otp-mob-number/otp-mob-number.component.mjs +3 -3
  9. package/esm2022/lib/otp-textbox/otp-textbox.component.mjs +3 -3
  10. package/esm2022/lib/select-textbox/select-textbox.component.mjs +3 -3
  11. package/esm2022/lib/subscript-textbox/subscript-textbox.component.mjs +3 -3
  12. package/esm2022/lib/suffix-textbox/suffix-textbox.component.mjs +3 -3
  13. package/esm2022/lib/tag-mob-number/tag-mob-number.component.mjs +3 -3
  14. package/esm2022/lib/textarea/textarea.component.mjs +3 -3
  15. package/esm2022/lib/textbox/textbox.component.mjs +3 -3
  16. package/esm2022/lib/textbox-with-image/textbox-with-image.component.mjs +3 -3
  17. package/esm2022/lib/textbox-with-text/textbox-with-text.component.mjs +3 -3
  18. package/esm2022/lib/textbox-with-underscore/textbox-with-underscore.component.mjs +3 -3
  19. package/esm2022/lib/underscore-mob-number/underscore-mob-number.component.mjs +3 -3
  20. package/fesm2022/master-control.mjs +38 -38
  21. package/fesm2022/master-control.mjs.map +1 -1
  22. package/master-control-0.4.10.tgz +0 -0
  23. package/package.json +1 -1
  24. package/master-control-0.4.08.tgz +0 -0
@@ -139,7 +139,7 @@ export class AgeDateComponent {
139
139
  useExisting: AgeDateComponent,
140
140
  multi: true
141
141
  },
142
- ], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"none\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else{\r\n <input\r\n matInput\r\n autocomplete=\"none\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\r\n ({{ age }}) yrs\r\n </span>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"true\">\r\n <img\r\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\r\n style=\"width: 16px\"\r\n matDatepickerToggleIcon\r\n />\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n</mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "ngmodule", type: MomentDateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
142
+ ], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else{\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\r\n ({{ age }}) yrs\r\n </span>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"true\">\r\n <img\r\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\r\n style=\"width: 16px\"\r\n matDatepickerToggleIcon\r\n />\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n</mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "ngmodule", type: MomentDateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AgeDateComponent, decorators: [{
145
145
  type: Component,
@@ -175,7 +175,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
175
175
  useExisting: AgeDateComponent,
176
176
  multi: true
177
177
  },
178
- ], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"none\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else{\r\n <input\r\n matInput\r\n autocomplete=\"none\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\r\n ({{ age }}) yrs\r\n </span>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"true\">\r\n <img\r\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\r\n style=\"width: 16px\"\r\n matDatepickerToggleIcon\r\n />\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n</mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"] }]
178
+ ], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else{\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"field()?.configData?.min\"\r\n [max]=\"field()?.configData?.max\"\r\n (keyup)=\"dateDivisionFormat($event)\"\r\n [disabled]=\"field()?.isDisable\"\r\n (dateChange)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\r\n ({{ age }}) yrs\r\n </span>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"true\">\r\n <img\r\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\r\n style=\"width: 16px\"\r\n matDatepickerToggleIcon\r\n />\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n</mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"] }]
179
179
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
180
180
  type: Output
181
181
  }], valueChange: [{
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
185
185
  }], invalidDate: [{
186
186
  type: Output
187
187
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hZ2UtZGF0ZS9hZ2UtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FnZS1kYXRlL2FnZS1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBMkN6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBU1I7SUFSbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQy9DLEdBQUcsR0FBUyxJQUFJLENBQUM7SUFDUCxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMvQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN0QyxZQUFZLEdBQUcs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QUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIEFmdGVyVmlld0NoZWNrZWQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb21lbnREYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xyXG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWdlLWRhdGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTW9tZW50RGF0ZU1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiBbXHJcbiAgICAgICdERC1NTS1ZWVlZJyxcclxuICAgICAgJ0REL01NL1lZWVknLFxyXG4gICAgICAnWVlZWS9NTS9ERCcsXHJcbiAgICAgICdNTS9ERC9ZWVlZJyxcclxuICAgICAgJ0REIE1NTSBZWVlZJyxcclxuICAgICAgJ0REIE1NTU0gWVlZWScsXHJcbiAgICAgICdERC1NTU0tWVlZWScsXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAgZGlzcGxheToge1xyXG4gICAgZGF0ZUlucHV0OiAnREQvTU1NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnREQvTU1NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICB9LFxyXG4gIH1cclxuICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFnZURhdGVDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG5dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZ2UtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FnZS1kYXRlLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIGZpZWxkOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcclxuICByZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0IDogYW55ID0gaW5wdXQ8YW55PigpO1xyXG4gIGFnZSA6IGFueSA9IG51bGw7XHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGludmFsaWREYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZUFnZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZURpdmlzaW9uRm9ybWF0KGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGxldCBldnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICBpZiAoZXZ0LnZhbHVlLmxlbmd0aCA+IDIgJiYgIWV2dC52YWx1ZS5zdWJzdHIoMiwgMSkuaW5jbHVkZXMoJy8nKSkge1xyXG4gICAgICBldnQudmFsdWUgPSBbZXZ0LnZhbHVlLnNsaWNlKDAsIDIpLCAnLycsIGV2dC52YWx1ZS5zbGljZSgyKV0uam9pbignJyk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBldnQudmFsdWUubGVuZ3RoID4gNSAmJlxyXG4gICAgICBOdW1iZXIoZXZ0LnZhbHVlLnN1YnN0cigzLCAyKSkgJiZcclxuICAgICAgIWV2dC52YWx1ZS5zdWJzdHIoNSwgMSkuaW5jbHVkZXMoJy8nKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2dC52YWx1ZSA9IFtldnQudmFsdWUuc2xpY2UoMCwgNSksICcvJywgZXZ0LnZhbHVlLnNsaWNlKDUpXS5qb2luKCcnKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIGV2dC52YWx1ZS5sZW5ndGggPiA2ICYmXHJcbiAgICAgICFOdW1iZXIoZXZ0LnZhbHVlLnN1YnN0cigzLCAyKSkgJiZcclxuICAgICAgIWV2dC52YWx1ZS5zdWJzdHIoNiwgMSkuaW5jbHVkZXMoJy8nKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2dC52YWx1ZSA9IFtldnQudmFsdWUuc2xpY2UoMCwgNiksICcvJywgZXZ0LnZhbHVlLnNsaWNlKDYpXS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCAnJyk7XHJcblxyXG4gICAgLy8gaWYgKHZhbHVlLmxlbmd0aCA+IDIgJiYgdmFsdWUuaW5kZXhPZignLycpID09PSAtMSkge1xyXG4gICAgLy8gICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCAyKSArICcvJyArIHZhbHVlLnN1YnN0cmluZygyKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICh2YWx1ZS5sZW5ndGggPiA2ICYmIHZhbHVlLmluZGV4T2YoJy8nLCAzKSA9PT0gLTEpIHtcclxuICAgIC8vICAgdmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgNikgKyAnLycgKyB2YWx1ZS5zdWJzdHJpbmcoNik7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG4gICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlPW9iajtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH07XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl91blRvdWNoZWQgPSBmbjtcclxuICB9O1xyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lke307XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZUFnZShldmVudC52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KHtcclxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZTogdGhpcy5pbnB1dFZhbHVlLFxyXG4gICAgICAgIGRhdGVPYmplY3Q6IHRoaXMuaW5wdXRWYWx1ZSxcclxuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZTogJ2RhdGVwaWNrZXInXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudCA6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eShldmVudC50YXJnZXQudmFsdWUpKSB7XHJcbiAgICAgIGlmIChpc05hTihEYXRlLnBhcnNlKGV2ZW50LnRhcmdldC52YWx1ZSkpKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVBZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVBZ2UoYmlydGhEYXRlOiBEYXRlKSB7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBiaXJ0aGRhdGUgPSBuZXcgRGF0ZShiaXJ0aERhdGUpO1xyXG4gICAgbGV0IGFnZSA9IHRvZGF5LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoRGlmZiA9IHRvZGF5LmdldE1vbnRoKCkgLSBiaXJ0aGRhdGUuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGRheXNfZGlmZmVyZW5jZSA9IHRvZGF5LmdldERhdGUoKSAtIGJpcnRoZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBpZiAobW9udGhEaWZmIDwgMCB8fCAobW9udGhEaWZmID09PSAwICYmIGRheXNfZGlmZmVyZW5jZSA8IDApKSB7XHJcbiAgICAgIGFnZSA9IGFnZSAtIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFnZSA9IGFnZTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8bGFiZWwgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiIGNsYXNzPVwiZmllbGQtbGFibGVcIj57e2ZpZWxkKCk/LmxhYmVsfX08c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbjxtYXQtZm9ybS1maWVsZFxyXG4gIGNsYXNzPVwidy0xMDBcIlxyXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcclxuICBbbmdTdHlsZV09XCJ7XHJcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXHJcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXHJcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmQgLFxyXG59XCI+XHJcbiBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XHJcbiA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICBhdXRvY29tcGxldGU9XCJub25lXCJcclxuICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXHJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXHJcbiAgICAoa2V5dXApPVwiZGF0ZURpdmlzaW9uRm9ybWF0KCRldmVudClcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICBbbWluXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1pblwiXHJcbiAgICBbbWF4XT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1heFwiXHJcbiAgICAoZGF0ZUNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcclxuICAvPlxyXG4gfUBlbHNle1xyXG4gICAgPGlucHV0XHJcbiAgICBtYXRJbnB1dFxyXG4gICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXHJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxyXG4gICAgW21pbl09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5taW5cIlxyXG4gICAgW21heF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5tYXhcIlxyXG4gICAgKGtleXVwKT1cImRhdGVEaXZpc2lvbkZvcm1hdCgkZXZlbnQpXCJcclxuICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gICAgKGRhdGVDaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxyXG4gIC8+XHJcbiB9XHJcbiAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwicmlnaHQtZGF0ZS10ZXh0XCIgKm5nSWY9XCIhdGhpcy5zZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoYWdlKSAmJiAhdGhpcy5zZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoaW5wdXRWYWx1ZSkgJiYgYWdlID49IDBcIj5cclxuICAgICh7eyBhZ2UgfX0pIHlyc1xyXG4gIDwvc3Bhbj5cclxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiICpuZ0lmPVwidHJ1ZVwiPlxyXG4gICAgPGltZ1xyXG4gICAgICBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9kaWdpdFBsdXNBc3NldHMvcmV0YWlsLWxpZmUtaWNvbi9zdmdpY29uL2RhdGVfcGlja2VyX2ljb24uc3ZnXCJcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTZweFwiXHJcbiAgICAgIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uXHJcbiAgICAvPlxyXG4gIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX1cclxuICA8L21hdC1lcnJvcj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX0uXHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICB7eyBmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuTWVzc2FnZSB9fS5cclxuPC9kaXY+XHJcbiJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hZ2UtZGF0ZS9hZ2UtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FnZS1kYXRlL2FnZS1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBMkN6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBU1I7SUFSbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQy9DLEdBQUcsR0FBUyxJQUFJLENBQUM7SUFDUCxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMvQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN0QyxZQUFZLEdBQUcs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QUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIEFmdGVyVmlld0NoZWNrZWQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb21lbnREYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xyXG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWdlLWRhdGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTW9tZW50RGF0ZU1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiBbXHJcbiAgICAgICdERC1NTS1ZWVlZJyxcclxuICAgICAgJ0REL01NL1lZWVknLFxyXG4gICAgICAnWVlZWS9NTS9ERCcsXHJcbiAgICAgICdNTS9ERC9ZWVlZJyxcclxuICAgICAgJ0REIE1NTSBZWVlZJyxcclxuICAgICAgJ0REIE1NTU0gWVlZWScsXHJcbiAgICAgICdERC1NTU0tWVlZWScsXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAgZGlzcGxheToge1xyXG4gICAgZGF0ZUlucHV0OiAnREQvTU1NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnREQvTU1NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICB9LFxyXG4gIH1cclxuICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFnZURhdGVDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG5dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZ2UtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FnZS1kYXRlLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIGZpZWxkOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcclxuICByZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0IDogYW55ID0gaW5wdXQ8YW55PigpO1xyXG4gIGFnZSA6IGFueSA9IG51bGw7XHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGludmFsaWREYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZUFnZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZURpdmlzaW9uRm9ybWF0KGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGxldCBldnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICBpZiAoZXZ0LnZhbHVlLmxlbmd0aCA+IDIgJiYgIWV2dC52YWx1ZS5zdWJzdHIoMiwgMSkuaW5jbHVkZXMoJy8nKSkge1xyXG4gICAgICBldnQudmFsdWUgPSBbZXZ0LnZhbHVlLnNsaWNlKDAsIDIpLCAnLycsIGV2dC52YWx1ZS5zbGljZSgyKV0uam9pbignJyk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBldnQudmFsdWUubGVuZ3RoID4gNSAmJlxyXG4gICAgICBOdW1iZXIoZXZ0LnZhbHVlLnN1YnN0cigzLCAyKSkgJiZcclxuICAgICAgIWV2dC52YWx1ZS5zdWJzdHIoNSwgMSkuaW5jbHVkZXMoJy8nKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2dC52YWx1ZSA9IFtldnQudmFsdWUuc2xpY2UoMCwgNSksICcvJywgZXZ0LnZhbHVlLnNsaWNlKDUpXS5qb2luKCcnKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIGV2dC52YWx1ZS5sZW5ndGggPiA2ICYmXHJcbiAgICAgICFOdW1iZXIoZXZ0LnZhbHVlLnN1YnN0cigzLCAyKSkgJiZcclxuICAgICAgIWV2dC52YWx1ZS5zdWJzdHIoNiwgMSkuaW5jbHVkZXMoJy8nKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2dC52YWx1ZSA9IFtldnQudmFsdWUuc2xpY2UoMCwgNiksICcvJywgZXZ0LnZhbHVlLnNsaWNlKDYpXS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCAnJyk7XHJcblxyXG4gICAgLy8gaWYgKHZhbHVlLmxlbmd0aCA+IDIgJiYgdmFsdWUuaW5kZXhPZignLycpID09PSAtMSkge1xyXG4gICAgLy8gICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCAyKSArICcvJyArIHZhbHVlLnN1YnN0cmluZygyKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICh2YWx1ZS5sZW5ndGggPiA2ICYmIHZhbHVlLmluZGV4T2YoJy8nLCAzKSA9PT0gLTEpIHtcclxuICAgIC8vICAgdmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgNikgKyAnLycgKyB2YWx1ZS5zdWJzdHJpbmcoNik7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG4gICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlPW9iajtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH07XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl91blRvdWNoZWQgPSBmbjtcclxuICB9O1xyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lke307XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZUFnZShldmVudC52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KHtcclxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZTogdGhpcy5pbnB1dFZhbHVlLFxyXG4gICAgICAgIGRhdGVPYmplY3Q6IHRoaXMuaW5wdXRWYWx1ZSxcclxuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZTogJ2RhdGVwaWNrZXInXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudCA6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eShldmVudC50YXJnZXQudmFsdWUpKSB7XHJcbiAgICAgIGlmIChpc05hTihEYXRlLnBhcnNlKGV2ZW50LnRhcmdldC52YWx1ZSkpKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVBZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVBZ2UoYmlydGhEYXRlOiBEYXRlKSB7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBiaXJ0aGRhdGUgPSBuZXcgRGF0ZShiaXJ0aERhdGUpO1xyXG4gICAgbGV0IGFnZSA9IHRvZGF5LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoRGlmZiA9IHRvZGF5LmdldE1vbnRoKCkgLSBiaXJ0aGRhdGUuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGRheXNfZGlmZmVyZW5jZSA9IHRvZGF5LmdldERhdGUoKSAtIGJpcnRoZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBpZiAobW9udGhEaWZmIDwgMCB8fCAobW9udGhEaWZmID09PSAwICYmIGRheXNfZGlmZmVyZW5jZSA8IDApKSB7XHJcbiAgICAgIGFnZSA9IGFnZSAtIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFnZSA9IGFnZTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8bGFiZWwgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiIGNsYXNzPVwiZmllbGQtbGFibGVcIj57e2ZpZWxkKCk/LmxhYmVsfX08c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbjxtYXQtZm9ybS1maWVsZFxyXG4gIGNsYXNzPVwidy0xMDBcIlxyXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcclxuICBbbmdTdHlsZV09XCJ7XHJcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXHJcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXHJcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmQgLFxyXG59XCI+XHJcbiBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XHJcbiA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgIChrZXl1cCk9XCJkYXRlRGl2aXNpb25Gb3JtYXQoJGV2ZW50KVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgIFttaW5dPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWluXCJcclxuICAgIFttYXhdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWF4XCJcclxuICAgIChkYXRlQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxyXG4gIC8+XHJcbiB9QGVsc2V7XHJcbiAgICA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgIFttaW5dPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWluXCJcclxuICAgIFttYXhdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWF4XCJcclxuICAgIChrZXl1cCk9XCJkYXRlRGl2aXNpb25Gb3JtYXQoJGV2ZW50KVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgIChkYXRlQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcclxuICAvPlxyXG4gfVxyXG4gIDxzcGFuIG1hdFN1ZmZpeCBjbGFzcz1cInJpZ2h0LWRhdGUtdGV4dFwiICpuZ0lmPVwiIXRoaXMuc2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGFnZSkgJiYgIXRoaXMuc2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGlucHV0VmFsdWUpICYmIGFnZSA+PSAwXCI+XHJcbiAgICAoe3sgYWdlIH19KSB5cnNcclxuICA8L3NwYW4+XHJcbiAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiAqbmdJZj1cInRydWVcIj5cclxuICAgIDxpbWdcclxuICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL3JldGFpbC1saWZlLWljb24vc3ZnaWNvbi9kYXRlX3BpY2tlcl9pY29uLnN2Z1wiXHJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDE2cHhcIlxyXG4gICAgICBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgLz5cclxuICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG4gICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19XHJcbiAgPC9tYXQtZXJyb3I+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19LlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX0uXHJcbjwvZGl2PlxyXG4iXX0=
@@ -204,7 +204,7 @@ export class AmountTextboxComponent {
204
204
  useExisting: AmountTextboxComponent,
205
205
  multi: true
206
206
  }
207
- ], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
207
+ ], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
208
208
  }
209
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AmountTextboxComponent, decorators: [{
210
210
  type: Component,
@@ -219,8 +219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
219
  useExisting: AmountTextboxComponent,
220
220
  multi: true
221
221
  }
222
- ], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"] }]
222
+ ], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"] }]
223
223
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
224
224
  type: Output
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFzQjlGLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEtBQUss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RUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN4QkwseXlHQTJFQSwwZ0hEaEVJLGtCQUFrQix3a0JBQ2xCLFlBQVksdU5BQ1osY0FBYywwV0FDZCxtQkFBbUI7OzRGQVlWLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQWVPLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYW1vdW50LXRleHRib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hbW91bnQtdGV4dGJveC5jb21wb25lbnQuY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBbW91bnRUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFtb3VudFRleHRib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNoYXJlZFNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIGlucHV0VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcbiAgZ2V0IGlzQ29tbWFBZGRlZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXIgaGVyZSAoY2xhc3MgbGV2ZWwpXHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gb2JqLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfTtcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xyXG4gIH07XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWR7fTtcclxuXHJcbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IG9sZFZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgY29uc3QgcmF3VmFsdWUgPSBvbGRWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgIGlmIChyYXdWYWx1ZSA9PT0gJycgfHwgL15cXGQqXFwuP1xcZCokLy50ZXN0KHJhd1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNDb21tYUFkZGVkICYmIHJhd1ZhbHVlICYmICFpc05hTihwYXJzZUZsb2F0KHJhd1ZhbHVlKSkpIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKTtcclxuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3NpdGlvbiA9IHRoaXMuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24oXHJcbiAgICAgICAgICBvbGRWYWx1ZSxcclxuICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgY3Vyc29yUG9zaXRpb25cclxuICAgICAgICApO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKG5ld0N1cnNvclBvc2l0aW9uLCBuZXdDdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJldmVydFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgdGhpcy5pbnB1dFZhbHVlID9cclxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpIDogdGhpcy5pbnB1dFZhbHVlIHx8ICcnO1xyXG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSByZXZlcnRWYWx1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2FmZUN1cnNvclBvcyA9IE1hdGgubWluKGN1cnNvclBvc2l0aW9uLCByZXZlcnRWYWx1ZS5sZW5ndGgpO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzYWZlQ3Vyc29yUG9zLCBzYWZlQ3Vyc29yUG9zKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgMDtcclxuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgY3Vyc29yUG9zaXRpb24gPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZVtjdXJzb3JQb3NpdGlvbiAtIDFdID09PSAnLCcpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uIC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0N1cnNvclBvcyA9IE1hdGgubWF4KDAsIGN1cnNvclBvc2l0aW9uIC0gMik7XHJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3MsIG5ld0N1cnNvclBvcyk7XHJcbiAgICAgICAgICB9LCAwKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgY3Vyc29yUG9zaXRpb24gPCB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgaWYgKHZhbHVlW2N1cnNvclBvc2l0aW9uXSA9PT0gJywnKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gKyAxIDwgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JQb3NpdGlvbikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24gKyAyKTtcclxuICAgICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjdXJzb3JQb3NpdGlvbiwgY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFkZCBjb21tYXMgdG8gbnVtYmVyIGZvciBJbmRpYW4gZm9ybWF0XHJcbiAgLy8gYWRkQ29tbWFzVG9OdW1iZXIodmFsdWU6IGFueSB8IG51bWJlcik6IGFueSB7XHJcbiAgLy8gICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAnJykgcmV0dXJuICcnO1xyXG4gIC8vICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gIC8vICAgY29uc3QgcGFydHMgPSBzdHJpbmdWYWx1ZS5zcGxpdCgnLicpO1xyXG4gIC8vICAgbGV0IGludGVnZXJQYXJ0ID0gcGFydHNbMF07XHJcbiAgLy8gICBpZiAoaW50ZWdlclBhcnQubGVuZ3RoID4gMykge1xyXG4gIC8vICAgICBjb25zdCBsYXN0VGhyZWVEaWdpdHMgPSBpbnRlZ2VyUGFydC5zbGljZSgtMyk7XHJcbiAgLy8gICAgIGNvbnN0IHJlbWFpbmluZ0RpZ2l0cyA9IGludGVnZXJQYXJ0LnNsaWNlKDAsIC0zKTtcclxuICAvLyAgICAgY29uc3QgZm9ybWF0dGVkUmVtYWluaW5nID0gcmVtYWluaW5nRGlnaXRzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csICcsJyk7XHJcbiAgLy8gICAgIGludGVnZXJQYXJ0ID0gZm9ybWF0dGVkUmVtYWluaW5nICsgJywnICsgbGFzdFRocmVlRGlnaXRzO1xyXG4gIC8vICAgfVxyXG5cclxuICAvLyAgIHJldHVybiBwYXJ0c1sxXSA/IGludGVnZXJQYXJ0ICsgJy4nICsgcGFydHNbMV0gOiBpbnRlZ2VyUGFydDtcclxuICAvLyB9XHJcbiAgY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24ob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgb2xkQ3Vyc29yUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPT09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPj0gb2xkVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBuZXdWYWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBsZXQgZGlnaXRzQmVmb3JlQ3Vyc29yID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkQ3Vyc29yUG9zaXRpb247IGkrKykge1xyXG4gICAgICBjb25zdCBjaGFyID0gb2xkVmFsdWVbaV07XHJcbiAgICAgIGlmIChjaGFyICE9PSAnLCcpIHtcclxuICAgICAgICBkaWdpdHNCZWZvcmVDdXJzb3IrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGRpZ2l0Q291bnQgPSAwO1xyXG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3VmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IG5ld1ZhbHVlW2ldO1xyXG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XHJcbiAgICAgICAgZGlnaXRDb3VudCsrO1xyXG4gICAgICAgIGlmIChkaWdpdENvdW50ID09PSBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gaSArIDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRpZ2l0Q291bnQgPCBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICBuZXdQb3NpdGlvbiA9IGkgKyAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTWF0aC5taW4obmV3UG9zaXRpb24sIG5ld1ZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGRpc3BsYXkgdmFsdWUgd2l0aCBjb21tYXMgaWYgZW5hYmxlZFxyXG4gIGdldERpc3BsYXlWYWx1ZSgpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLmlucHV0VmFsdWUpIHJldHVybiAnJztcclxuICAgIGlmICh0aGlzLmlzQ29tbWFBZGRlZCAmJiAhaXNOYU4ocGFyc2VGbG9hdCh0aGlzLmlucHV0VmFsdWUpKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXModGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtYXQgYW1vdW50IHRvIEluZGlhbiBjdXJyZW5jeSBmb3JtYXRcclxuICBmb3JtYXRJbmRpYW5DdXJyZW5jeShhbW91bnQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPT09ICcnKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgbnVtQW1vdW50ID0gdHlwZW9mIGFtb3VudCA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGFtb3VudC5yZXBsYWNlKC8sL2csICcnKSkgOiBhbW91bnQ7XHJcbiAgICBpZiAoaXNOYU4obnVtQW1vdW50KSB8fCBudW1BbW91bnQgPT09IDApIHJldHVybiAn4oK5JztcclxuICAgIGlmIChudW1BbW91bnQgPj0gMTAwMDAwMDApIHtcclxuICAgICAgY29uc3QgY3JvcmVzID0gKG51bUFtb3VudCAvIDEwMDAwMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke2Nyb3Jlc30gQ3JgO1xyXG4gICAgfSBlbHNlIGlmIChudW1BbW91bnQgPj0gMTAwMDAwKSB7XHJcbiAgICAgIGNvbnN0IGxha2hzID0gKG51bUFtb3VudCAvIDEwMDAwMCkudG9GaXhlZCgyKTtcclxuICAgICAgcmV0dXJuIGDigrkgJHtsYWtoc30gTGA7XHJcbiAgICB9IGVsc2UgaWYgKG51bUFtb3VudCA+PSAxMDAwKSB7XHJcbiAgICAgIGNvbnN0IHRob3VzYW5kcyA9IChudW1BbW91bnQgLyAxMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke3Rob3VzYW5kc30gS2A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYOKCuSAke251bUFtb3VudC50b0ZpeGVkKDIpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgZm9ybWF0dGVkIGRpc3BsYXkgdmFsdWVcclxuICBnZXRGb3JtYXR0ZWRBbW91bnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdEluZGlhbkN1cnJlbmN5KHRoaXMuc2hhcmVkU2VydmljZS5yZW1vdmVDb21hc0FuZEN1cnJlbmN5U3ltYm9sRnJvbU51bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGVcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCJcclxuICA+e3sgZmllbGQoKS5sYWJlbFxyXG4gIH19PHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnMuaXNSZXF1aXJlZFwiXHJcbiAgICA+Kjwvc3BhblxyXG4gID48L2xhYmVsXHJcbj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICBjbGFzcz1cInctMTAwXCJcclxuICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgW25nU3R5bGVdPVwie1xyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXHJcbictLWN1c3RvbS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQgLFxyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxyXG4nLS1jdXN0b20tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxyXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4nLS1jdXN0b20tY2FyZXQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNhcmV0Q29sb3IgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXHJcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcclxufVwiPlxyXG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXHJcbiAgICAgIFttYXhMZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCJcclxuICAgICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFt2YWx1ZV09XCJnZXREaXNwbGF5VmFsdWUoKVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxyXG4gICAgLz5cclxuIH1AZWxzZSB7XHJcbiAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm5vbmVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXHJcbiAgICAgIFttaW5MZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWluTGVuZ3RoXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgICBbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxyXG4gICAgLz5cclxuIH1cclxuXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucmVxdWlyZWRNZXNzYWdlIH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInJ1cGVlLXN5bWJvbCBweC0yXCI+4oK5PC9zcGFuPlxyXG4gICAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwibWUtMiByaWdodC1hbW91bnQtdGV4dFwiICpuZ0lmPVwiaW5wdXRWYWx1ZVwiPnt7IGdldEZvcm1hdHRlZEFtb3VudCgpIH19PC9zcGFuPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFzQjlGLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEtBQUss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RUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN4QkwsdXlHQTJFQSwwZ0hEaEVJLGtCQUFrQix3a0JBQ2xCLFlBQVksdU5BQ1osY0FBYywwV0FDZCxtQkFBbUI7OzRGQVlWLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQWVPLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYW1vdW50LXRleHRib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hbW91bnQtdGV4dGJveC5jb21wb25lbnQuY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBbW91bnRUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFtb3VudFRleHRib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNoYXJlZFNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIGlucHV0VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcbiAgZ2V0IGlzQ29tbWFBZGRlZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXIgaGVyZSAoY2xhc3MgbGV2ZWwpXHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gb2JqLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfTtcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xyXG4gIH07XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWR7fTtcclxuXHJcbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IG9sZFZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgY29uc3QgcmF3VmFsdWUgPSBvbGRWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgIGlmIChyYXdWYWx1ZSA9PT0gJycgfHwgL15cXGQqXFwuP1xcZCokLy50ZXN0KHJhd1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNDb21tYUFkZGVkICYmIHJhd1ZhbHVlICYmICFpc05hTihwYXJzZUZsb2F0KHJhd1ZhbHVlKSkpIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKTtcclxuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3NpdGlvbiA9IHRoaXMuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24oXHJcbiAgICAgICAgICBvbGRWYWx1ZSxcclxuICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgY3Vyc29yUG9zaXRpb25cclxuICAgICAgICApO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKG5ld0N1cnNvclBvc2l0aW9uLCBuZXdDdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJldmVydFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgdGhpcy5pbnB1dFZhbHVlID9cclxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpIDogdGhpcy5pbnB1dFZhbHVlIHx8ICcnO1xyXG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSByZXZlcnRWYWx1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2FmZUN1cnNvclBvcyA9IE1hdGgubWluKGN1cnNvclBvc2l0aW9uLCByZXZlcnRWYWx1ZS5sZW5ndGgpO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzYWZlQ3Vyc29yUG9zLCBzYWZlQ3Vyc29yUG9zKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgMDtcclxuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgY3Vyc29yUG9zaXRpb24gPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZVtjdXJzb3JQb3NpdGlvbiAtIDFdID09PSAnLCcpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uIC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0N1cnNvclBvcyA9IE1hdGgubWF4KDAsIGN1cnNvclBvc2l0aW9uIC0gMik7XHJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3MsIG5ld0N1cnNvclBvcyk7XHJcbiAgICAgICAgICB9LCAwKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgY3Vyc29yUG9zaXRpb24gPCB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgaWYgKHZhbHVlW2N1cnNvclBvc2l0aW9uXSA9PT0gJywnKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gKyAxIDwgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JQb3NpdGlvbikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24gKyAyKTtcclxuICAgICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjdXJzb3JQb3NpdGlvbiwgY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFkZCBjb21tYXMgdG8gbnVtYmVyIGZvciBJbmRpYW4gZm9ybWF0XHJcbiAgLy8gYWRkQ29tbWFzVG9OdW1iZXIodmFsdWU6IGFueSB8IG51bWJlcik6IGFueSB7XHJcbiAgLy8gICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAnJykgcmV0dXJuICcnO1xyXG4gIC8vICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gIC8vICAgY29uc3QgcGFydHMgPSBzdHJpbmdWYWx1ZS5zcGxpdCgnLicpO1xyXG4gIC8vICAgbGV0IGludGVnZXJQYXJ0ID0gcGFydHNbMF07XHJcbiAgLy8gICBpZiAoaW50ZWdlclBhcnQubGVuZ3RoID4gMykge1xyXG4gIC8vICAgICBjb25zdCBsYXN0VGhyZWVEaWdpdHMgPSBpbnRlZ2VyUGFydC5zbGljZSgtMyk7XHJcbiAgLy8gICAgIGNvbnN0IHJlbWFpbmluZ0RpZ2l0cyA9IGludGVnZXJQYXJ0LnNsaWNlKDAsIC0zKTtcclxuICAvLyAgICAgY29uc3QgZm9ybWF0dGVkUmVtYWluaW5nID0gcmVtYWluaW5nRGlnaXRzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csICcsJyk7XHJcbiAgLy8gICAgIGludGVnZXJQYXJ0ID0gZm9ybWF0dGVkUmVtYWluaW5nICsgJywnICsgbGFzdFRocmVlRGlnaXRzO1xyXG4gIC8vICAgfVxyXG5cclxuICAvLyAgIHJldHVybiBwYXJ0c1sxXSA/IGludGVnZXJQYXJ0ICsgJy4nICsgcGFydHNbMV0gOiBpbnRlZ2VyUGFydDtcclxuICAvLyB9XHJcbiAgY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24ob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgb2xkQ3Vyc29yUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPT09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPj0gb2xkVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBuZXdWYWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBsZXQgZGlnaXRzQmVmb3JlQ3Vyc29yID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkQ3Vyc29yUG9zaXRpb247IGkrKykge1xyXG4gICAgICBjb25zdCBjaGFyID0gb2xkVmFsdWVbaV07XHJcbiAgICAgIGlmIChjaGFyICE9PSAnLCcpIHtcclxuICAgICAgICBkaWdpdHNCZWZvcmVDdXJzb3IrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGRpZ2l0Q291bnQgPSAwO1xyXG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3VmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IG5ld1ZhbHVlW2ldO1xyXG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XHJcbiAgICAgICAgZGlnaXRDb3VudCsrO1xyXG4gICAgICAgIGlmIChkaWdpdENvdW50ID09PSBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gaSArIDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRpZ2l0Q291bnQgPCBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICBuZXdQb3NpdGlvbiA9IGkgKyAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTWF0aC5taW4obmV3UG9zaXRpb24sIG5ld1ZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGRpc3BsYXkgdmFsdWUgd2l0aCBjb21tYXMgaWYgZW5hYmxlZFxyXG4gIGdldERpc3BsYXlWYWx1ZSgpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLmlucHV0VmFsdWUpIHJldHVybiAnJztcclxuICAgIGlmICh0aGlzLmlzQ29tbWFBZGRlZCAmJiAhaXNOYU4ocGFyc2VGbG9hdCh0aGlzLmlucHV0VmFsdWUpKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXModGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtYXQgYW1vdW50IHRvIEluZGlhbiBjdXJyZW5jeSBmb3JtYXRcclxuICBmb3JtYXRJbmRpYW5DdXJyZW5jeShhbW91bnQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPT09ICcnKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgbnVtQW1vdW50ID0gdHlwZW9mIGFtb3VudCA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGFtb3VudC5yZXBsYWNlKC8sL2csICcnKSkgOiBhbW91bnQ7XHJcbiAgICBpZiAoaXNOYU4obnVtQW1vdW50KSB8fCBudW1BbW91bnQgPT09IDApIHJldHVybiAn4oK5JztcclxuICAgIGlmIChudW1BbW91bnQgPj0gMTAwMDAwMDApIHtcclxuICAgICAgY29uc3QgY3JvcmVzID0gKG51bUFtb3VudCAvIDEwMDAwMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke2Nyb3Jlc30gQ3JgO1xyXG4gICAgfSBlbHNlIGlmIChudW1BbW91bnQgPj0gMTAwMDAwKSB7XHJcbiAgICAgIGNvbnN0IGxha2hzID0gKG51bUFtb3VudCAvIDEwMDAwMCkudG9GaXhlZCgyKTtcclxuICAgICAgcmV0dXJuIGDigrkgJHtsYWtoc30gTGA7XHJcbiAgICB9IGVsc2UgaWYgKG51bUFtb3VudCA+PSAxMDAwKSB7XHJcbiAgICAgIGNvbnN0IHRob3VzYW5kcyA9IChudW1BbW91bnQgLyAxMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke3Rob3VzYW5kc30gS2A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYOKCuSAke251bUFtb3VudC50b0ZpeGVkKDIpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgZm9ybWF0dGVkIGRpc3BsYXkgdmFsdWVcclxuICBnZXRGb3JtYXR0ZWRBbW91bnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdEluZGlhbkN1cnJlbmN5KHRoaXMuc2hhcmVkU2VydmljZS5yZW1vdmVDb21hc0FuZEN1cnJlbmN5U3ltYm9sRnJvbU51bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGVcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCJcclxuICA+e3sgZmllbGQoKS5sYWJlbFxyXG4gIH19PHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnMuaXNSZXF1aXJlZFwiXHJcbiAgICA+Kjwvc3BhblxyXG4gID48L2xhYmVsXHJcbj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICBjbGFzcz1cInctMTAwXCJcclxuICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgW25nU3R5bGVdPVwie1xyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXHJcbictLWN1c3RvbS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQgLFxyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxyXG4nLS1jdXN0b20tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxyXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4nLS1jdXN0b20tY2FyZXQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNhcmV0Q29sb3IgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXHJcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcclxufVwiPlxyXG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgICAgW3ZhbHVlXT1cImdldERpc3BsYXlWYWx1ZSgpXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXHJcbiAgICAvPlxyXG4gfUBlbHNlIHtcclxuICA8aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgICAgW3ZhbHVlXT1cImdldERpc3BsYXlWYWx1ZSgpXCJcclxuICAgIC8+XHJcbiB9XHJcblxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LnJlcXVpcmVkTWVzc2FnZSB9fVxyXG4gICAgPC9tYXQtZXJyb3I+XHJcbiAgICA8c3BhbiBtYXRQcmVmaXggY2xhc3M9XCJydXBlZS1zeW1ib2wgcHgtMlwiPuKCuTwvc3Bhbj5cclxuICAgIDxzcGFuIG1hdFN1ZmZpeCBjbGFzcz1cIm1lLTIgcmlnaHQtYW1vdW50LXRleHRcIiAqbmdJZj1cImlucHV0VmFsdWVcIj57eyBnZXRGb3JtYXR0ZWRBbW91bnQoKSB9fTwvc3Bhbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=