ctt-puro 0.20.1 → 0.20.3
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.
- package/esm2022/lib/components/puro-contact-form/puro-contact-form.component.mjs +39 -46
- package/esm2022/lib/components/puro-contact-form/puro-contact-form.interface.mjs +1 -1
- package/esm2022/lib/interfaces/puro-input.interface.mjs +1 -1
- package/esm2022/lib/services/mapper/mapper.service.mjs +57 -53
- package/fesm2022/ctt-puro.mjs +93 -96
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/components/puro-contact-form/puro-contact-form.component.d.ts +8 -9
- package/lib/components/puro-contact-form/puro-contact-form.interface.d.ts +4 -1
- package/lib/interfaces/puro-input.interface.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output, signal } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, signal, } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule, Validators, } from '@angular/forms';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
6
6
|
export class PuroContactFormComponent {
|
|
7
|
-
|
|
8
|
-
this._inputs = inp;
|
|
9
|
-
this.setInputProperties();
|
|
10
|
-
}
|
|
11
|
-
constructor(fb) {
|
|
7
|
+
constructor(fb, cdr) {
|
|
12
8
|
this.fb = fb;
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
9
|
+
this.cdr = cdr;
|
|
10
|
+
this.submitFormValue = new EventEmitter();
|
|
15
11
|
this.formReady$ = signal(false);
|
|
16
12
|
}
|
|
17
13
|
ngOnInit() {
|
|
@@ -19,12 +15,7 @@ export class PuroContactFormComponent {
|
|
|
19
15
|
}
|
|
20
16
|
initializeForm() {
|
|
21
17
|
const controls = {};
|
|
22
|
-
this.
|
|
23
|
-
if (input.name) {
|
|
24
|
-
controls[input.name] = ['', input.validators];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
if (this.textarea) {
|
|
18
|
+
if (this.textarea && this.textarea.name) {
|
|
28
19
|
controls[this.textarea.name] = ['', this.textarea?.validators];
|
|
29
20
|
}
|
|
30
21
|
controls['conditions'] = [false, Validators.requiredTrue];
|
|
@@ -32,32 +23,30 @@ export class PuroContactFormComponent {
|
|
|
32
23
|
controls['dropdown'] = ['', Validators.required];
|
|
33
24
|
controls['ndDropdown'] = ['', Validators.required];
|
|
34
25
|
controls['prefix'] = ['', Validators.required];
|
|
26
|
+
controls[this.emailInput?.name] = ['', this.emailInput?.validators];
|
|
27
|
+
controls[this.nameInput?.name] = ['', this.nameInput?.validators];
|
|
28
|
+
controls[this.surnameInput?.name] = [
|
|
29
|
+
'',
|
|
30
|
+
this.surnameInput?.validators,
|
|
31
|
+
];
|
|
32
|
+
controls[this.phoneInput?.name] = ['', this.phoneInput?.validators];
|
|
35
33
|
this.form = this.fb.group(controls);
|
|
36
34
|
this.formReady$.set(true);
|
|
37
35
|
}
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
break;
|
|
44
|
-
case 'nombre':
|
|
45
|
-
this.nameInput = input;
|
|
46
|
-
break;
|
|
47
|
-
case 'apellido':
|
|
48
|
-
this.surnameInput = input;
|
|
49
|
-
break;
|
|
50
|
-
case 'telefono':
|
|
51
|
-
this.phoneInput = input;
|
|
52
|
-
break;
|
|
53
|
-
default:
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
36
|
+
submitForm() {
|
|
37
|
+
if (this.form.valid) {
|
|
38
|
+
this.submitFormValue.emit(this.form.value);
|
|
39
|
+
this.resetForm();
|
|
40
|
+
}
|
|
57
41
|
}
|
|
58
42
|
validateInput(input) {
|
|
59
|
-
if (input) {
|
|
60
|
-
input.valid
|
|
43
|
+
if (input && input.name) {
|
|
44
|
+
input.valid?.set(this.form.get(input.name)?.errors === null);
|
|
45
|
+
const control = this.form.get(input.name);
|
|
46
|
+
if (control) {
|
|
47
|
+
control.setValue(input.value, { emitEvent: true });
|
|
48
|
+
}
|
|
49
|
+
control?.updateValueAndValidity();
|
|
61
50
|
}
|
|
62
51
|
}
|
|
63
52
|
inputChange(event, input) {
|
|
@@ -65,23 +54,21 @@ export class PuroContactFormComponent {
|
|
|
65
54
|
if (input.type === 'tel') {
|
|
66
55
|
inputElement.value = inputElement.value.replace(/[^0-9+]/g, '');
|
|
67
56
|
}
|
|
57
|
+
input.value = inputElement.value;
|
|
68
58
|
}
|
|
69
59
|
resetForm() {
|
|
70
60
|
this.form?.reset();
|
|
71
61
|
if (this.textarea) {
|
|
72
62
|
this.textarea.value = '';
|
|
73
63
|
}
|
|
74
|
-
this._inputs?.forEach((input) => {
|
|
75
|
-
input.value = '';
|
|
76
|
-
});
|
|
77
64
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroContactFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroContactFormComponent, isStandalone: true, selector: "lib-puro-contact-form", inputs: { title: "title", subtitle: "subtitle", promotions: "promotions", requiredLabel: "requiredLabel", img: "img", conditionsLink: "conditionsLink", prefix: "prefix", dropdown: "dropdown", ndDropdown: "ndDropdown", inputs: "inputs", textarea: "textarea", button: "button" }, outputs: { submit: "submit" }, ngImport: i0, template: "<section class=\"contactForm\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n <div class=\"contactForm__inner\">\r\n <div class=\"contactForm__graphic\">\r\n <div class=\"contactForm__graphicInner\">\r\n @if (img) {\r\n <img\r\n [src]=\"img.src\"\r\n [alt]=\"img.alt\"\r\n width=\"467\"\r\n height=\"551\"\r\n class=\"contactForm__graphicInner--img\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__content\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n @if (subtitle) {\r\n <div\r\n class=\"contactForm__paragraph\"\r\n [innerHtml]=\"subtitle\"\r\n ></div>\r\n }\r\n <form [formGroup]=\"form\" class=\"form\">\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (dropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ dropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of dropdown.options;\r\n track $index\r\n ) {\r\n @if (option) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (ndDropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ ndDropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of ndDropdown.options;\r\n track $index\r\n ) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n @if (emailInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"email\"\r\n class=\"form__control\"\r\n [placeholder]=\"emailInput.placeholder\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"19\"\r\n height=\"15\"\r\n >\r\n <use href=\"#email\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (nameInput && nameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Name\"\r\n id=\"Name\"\r\n [placeholder]=\"nameInput.placeholder\"\r\n [formControlName]=\"nameInput.name\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (surnameInput && surnameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Apellidos\"\r\n id=\"apellidos\"\r\n [placeholder]=\"surnameInput.placeholder\"\r\n [formControlName]=\"surnameInput.name\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (prefix) {\r\n <div class=\"form__group withIcon\">\r\n <select\r\n class=\"form__control\"\r\n name=\"Prefijo\"\r\n formControlName=\"prefix\"\r\n >\r\n @if (prefix.placeholder) {\r\n <option>\r\n {{ prefix.placeholder }}\r\n </option>\r\n }\r\n @for (\r\n item of prefix.options || [];\r\n track $index\r\n ) {\r\n <option [value]=\"item.code\">\r\n {{ item.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (phoneInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"phone\"\r\n id=\"phone\"\r\n [placeholder]=\"phoneInput.placeholder\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"17\"\r\n height=\"17\"\r\n >\r\n <use href=\"#phone\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (textarea) {\r\n <div class=\"form__group no-dot\">\r\n <textarea\r\n class=\"form__control\"\r\n [placeholder]=\"textarea.placeholder\"\r\n ></textarea>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n <div class=\"block-checkbox\">\r\n @if (requiredLabel) {\r\n <span class=\"required-label\">{{\r\n requiredLabel\r\n }}</span>\r\n }\r\n @if (conditionsLink) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n class=\"checkbox\"\r\n formControlName=\"conditions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span [innerHTML]=\"conditionsLink\"> </span>\r\n </label>\r\n }\r\n @if (promotions) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox\"\r\n formControlName=\"promotions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span>{{ promotions }}</span>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn__group\">\r\n @if (button) {\r\n <button\r\n class=\"btn btn__primary--outline js-active-modal\"\r\n data-modal_name=\"thankyou\"\r\n [attr.aria-label]=\"button.label\"\r\n >\r\n <span>{{ button.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroContactFormComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroContactFormComponent, isStandalone: true, selector: "lib-puro-contact-form", inputs: { title: "title", subtitle: "subtitle", promotions: "promotions", requiredLabel: "requiredLabel", img: "img", conditionsLink: "conditionsLink", prefix: "prefix", dropdown: "dropdown", ndDropdown: "ndDropdown", textarea: "textarea", button: "button", emailInput: "emailInput", nameInput: "nameInput", surnameInput: "surnameInput", phoneInput: "phoneInput" }, outputs: { submitFormValue: "submitFormValue" }, ngImport: i0, template: "<section class=\"contactForm\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n <div class=\"contactForm__inner\">\r\n <div class=\"contactForm__graphic\">\r\n <div class=\"contactForm__graphicInner\">\r\n @if (img) {\r\n <img\r\n [src]=\"img.src\"\r\n [alt]=\"img.alt\"\r\n width=\"467\"\r\n height=\"551\"\r\n class=\"contactForm__graphicInner--img\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__content\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n @if (subtitle) {\r\n <div\r\n class=\"contactForm__paragraph\"\r\n [innerHtml]=\"subtitle\"\r\n ></div>\r\n }\r\n <form [formGroup]=\"form\" class=\"form\">\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (dropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ dropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of dropdown.options;\r\n track $index\r\n ) {\r\n @if (option) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (ndDropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ ndDropdown.title }}\r\n </option>\r\n @for (\r\n option of ndDropdown.options;\r\n track $index\r\n ) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n @if (emailInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"email\"\r\n class=\"form__control\"\r\n [placeholder]=\"emailInput.placeholder\"\r\n (blur)=\"validateInput(emailInput)\"\r\n (input)=\"inputChange($event, emailInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"19\"\r\n height=\"15\"\r\n >\r\n <use href=\"#email\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n @if (!emailInput.valid()) {\r\n <span class=\"form-error\">{{\r\n emailInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (nameInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Name\"\r\n id=\"Name\"\r\n [placeholder]=\"nameInput.placeholder\"\r\n [formControlName]=\"nameInput.name!\"\r\n (blur)=\"validateInput(nameInput)\"\r\n (input)=\"inputChange($event, nameInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!nameInput.valid()) {\r\n <span class=\"form-error\">{{\r\n nameInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (surnameInput && surnameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Apellidos\"\r\n id=\"apellidos\"\r\n [placeholder]=\"surnameInput.placeholder\"\r\n [formControlName]=\"surnameInput.name!\"\r\n (blur)=\"validateInput(surnameInput)\"\r\n (input)=\"inputChange($event, surnameInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!surnameInput.valid()) {\r\n <span class=\"form-error\">{{\r\n surnameInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (prefix) {\r\n <div class=\"form__group withIcon\">\r\n <select\r\n class=\"form__control\"\r\n name=\"Prefijo\"\r\n formControlName=\"prefix\"\r\n >\r\n @if (prefix.placeholder) {\r\n <option>\r\n {{ prefix.placeholder }}\r\n </option>\r\n }\r\n @for (\r\n item of prefix.options || [];\r\n track $index\r\n ) {\r\n <option [value]=\"item.code\">\r\n {{ item.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (phoneInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"phone\"\r\n id=\"phone\"\r\n [placeholder]=\"phoneInput.placeholder\"\r\n (blur)=\"validateInput(phoneInput)\"\r\n (input)=\"inputChange($event, phoneInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"17\"\r\n height=\"17\"\r\n >\r\n <use href=\"#phone\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!phoneInput.valid()) {\r\n <span class=\"form-error\">{{\r\n phoneInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (textarea) {\r\n <div class=\"form__group no-dot\">\r\n <textarea\r\n class=\"form__control\"\r\n [placeholder]=\"textarea.placeholder\"\r\n ></textarea>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n <div class=\"block-checkbox\">\r\n @if (requiredLabel) {\r\n <span class=\"required-label\">{{\r\n requiredLabel\r\n }}</span>\r\n }\r\n @if (conditionsLink) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n class=\"checkbox\"\r\n formControlName=\"conditions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span [innerHTML]=\"conditionsLink\"> </span>\r\n </label>\r\n }\r\n @if (promotions) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox\"\r\n formControlName=\"promotions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span>{{ promotions }}</span>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn__group\">\r\n @if (button) {\r\n <button\r\n class=\"btn btn__primary--outline js-active-modal\"\r\n data-modal_name=\"thankyou\"\r\n [attr.aria-label]=\"button.label\"\r\n (click)=\"submitForm()\"\r\n [style.pointer-events]=\"\r\n !form.valid ? 'auto' : 'none'\r\n \"\r\n >\r\n <span>{{ button.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".form-error{position:relative;color:var(--grey);z-index:1;bottom:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
67
|
}
|
|
81
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroContactFormComponent, decorators: [{
|
|
82
69
|
type: Component,
|
|
83
|
-
args: [{ selector: 'lib-puro-contact-form', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule], template: "<section class=\"contactForm\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n <div class=\"contactForm__inner\">\r\n <div class=\"contactForm__graphic\">\r\n <div class=\"contactForm__graphicInner\">\r\n @if (img) {\r\n <img\r\n [src]=\"img.src\"\r\n [alt]=\"img.alt\"\r\n width=\"467\"\r\n height=\"551\"\r\n class=\"contactForm__graphicInner--img\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__content\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n @if (subtitle) {\r\n <div\r\n class=\"contactForm__paragraph\"\r\n [innerHtml]=\"subtitle\"\r\n ></div>\r\n }\r\n <form [formGroup]=\"form\" class=\"form\">\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (dropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ dropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of dropdown.options;\r\n track $index\r\n ) {\r\n @if (option) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (ndDropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ ndDropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of ndDropdown.options;\r\n track $index\r\n ) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n @if (emailInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"email\"\r\n class=\"form__control\"\r\n [placeholder]=\"emailInput.placeholder\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"19\"\r\n height=\"15\"\r\n >\r\n <use href=\"#email\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (nameInput && nameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Name\"\r\n id=\"Name\"\r\n [placeholder]=\"nameInput.placeholder\"\r\n [formControlName]=\"nameInput.name\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (surnameInput && surnameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Apellidos\"\r\n id=\"apellidos\"\r\n [placeholder]=\"surnameInput.placeholder\"\r\n [formControlName]=\"surnameInput.name\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (prefix) {\r\n <div class=\"form__group withIcon\">\r\n <select\r\n class=\"form__control\"\r\n name=\"Prefijo\"\r\n formControlName=\"prefix\"\r\n >\r\n @if (prefix.placeholder) {\r\n <option>\r\n {{ prefix.placeholder }}\r\n </option>\r\n }\r\n @for (\r\n item of prefix.options || [];\r\n track $index\r\n ) {\r\n <option [value]=\"item.code\">\r\n {{ item.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (phoneInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"phone\"\r\n id=\"phone\"\r\n [placeholder]=\"phoneInput.placeholder\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"17\"\r\n height=\"17\"\r\n >\r\n <use href=\"#phone\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (textarea) {\r\n <div class=\"form__group no-dot\">\r\n <textarea\r\n class=\"form__control\"\r\n [placeholder]=\"textarea.placeholder\"\r\n ></textarea>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n <div class=\"block-checkbox\">\r\n @if (requiredLabel) {\r\n <span class=\"required-label\">{{\r\n requiredLabel\r\n }}</span>\r\n }\r\n @if (conditionsLink) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n class=\"checkbox\"\r\n formControlName=\"conditions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span [innerHTML]=\"conditionsLink\"> </span>\r\n </label>\r\n }\r\n @if (promotions) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox\"\r\n formControlName=\"promotions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span>{{ promotions }}</span>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn__group\">\r\n @if (button) {\r\n <button\r\n class=\"btn btn__primary--outline js-active-modal\"\r\n data-modal_name=\"thankyou\"\r\n [attr.aria-label]=\"button.label\"\r\n >\r\n <span>{{ button.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</section>\r\n" }]
|
|
84
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { title: [{
|
|
70
|
+
args: [{ selector: 'lib-puro-contact-form', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"contactForm\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n <div class=\"contactForm__inner\">\r\n <div class=\"contactForm__graphic\">\r\n <div class=\"contactForm__graphicInner\">\r\n @if (img) {\r\n <img\r\n [src]=\"img.src\"\r\n [alt]=\"img.alt\"\r\n width=\"467\"\r\n height=\"551\"\r\n class=\"contactForm__graphicInner--img\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__content\">\r\n @if (title) {\r\n <span class=\"contactForm__title\">{{ title }}</span>\r\n }\r\n @if (subtitle) {\r\n <div\r\n class=\"contactForm__paragraph\"\r\n [innerHtml]=\"subtitle\"\r\n ></div>\r\n }\r\n <form [formGroup]=\"form\" class=\"form\">\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (dropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ dropdown.placeholder }}\r\n </option>\r\n @for (\r\n option of dropdown.options;\r\n track $index\r\n ) {\r\n @if (option) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (ndDropdown) {\r\n <div class=\"form__group withIcon\">\r\n <select class=\"form__control\">\r\n <option>\r\n {{ ndDropdown.title }}\r\n </option>\r\n @for (\r\n option of ndDropdown.options;\r\n track $index\r\n ) {\r\n <option [value]=\"option.code\">\r\n {{ option.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n @if (emailInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"email\"\r\n class=\"form__control\"\r\n [placeholder]=\"emailInput.placeholder\"\r\n (blur)=\"validateInput(emailInput)\"\r\n (input)=\"inputChange($event, emailInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"19\"\r\n height=\"15\"\r\n >\r\n <use href=\"#email\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n @if (!emailInput.valid()) {\r\n <span class=\"form-error\">{{\r\n emailInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (nameInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Name\"\r\n id=\"Name\"\r\n [placeholder]=\"nameInput.placeholder\"\r\n [formControlName]=\"nameInput.name!\"\r\n (blur)=\"validateInput(nameInput)\"\r\n (input)=\"inputChange($event, nameInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!nameInput.valid()) {\r\n <span class=\"form-error\">{{\r\n nameInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (surnameInput && surnameInput.name) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"Apellidos\"\r\n id=\"apellidos\"\r\n [placeholder]=\"surnameInput.placeholder\"\r\n [formControlName]=\"surnameInput.name!\"\r\n (blur)=\"validateInput(surnameInput)\"\r\n (input)=\"inputChange($event, surnameInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"18\"\r\n height=\"20\"\r\n >\r\n <use href=\"#user\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!surnameInput.valid()) {\r\n <span class=\"form-error\">{{\r\n surnameInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (prefix) {\r\n <div class=\"form__group withIcon\">\r\n <select\r\n class=\"form__control\"\r\n name=\"Prefijo\"\r\n formControlName=\"prefix\"\r\n >\r\n @if (prefix.placeholder) {\r\n <option>\r\n {{ prefix.placeholder }}\r\n </option>\r\n }\r\n @for (\r\n item of prefix.options || [];\r\n track $index\r\n ) {\r\n <option [value]=\"item.code\">\r\n {{ item.name }}\r\n </option>\r\n }\r\n </select>\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"15\"\r\n height=\"8\"\r\n >\r\n <use href=\"#select-arrow\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"contactForm__col\">\r\n @if (phoneInput) {\r\n <div class=\"form__group withIcon\">\r\n <input\r\n type=\"text\"\r\n class=\"form__control\"\r\n name=\"phone\"\r\n id=\"phone\"\r\n [placeholder]=\"phoneInput.placeholder\"\r\n (blur)=\"validateInput(phoneInput)\"\r\n (input)=\"inputChange($event, phoneInput)\"\r\n />\r\n <span class=\"icon-right\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"17\"\r\n height=\"17\"\r\n >\r\n <use href=\"#phone\"></use>\r\n </svg>\r\n </span>\r\n </div>\r\n @if (!phoneInput.valid()) {\r\n <span class=\"form-error\">{{\r\n phoneInput.error\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n @if (textarea) {\r\n <div class=\"form__group no-dot\">\r\n <textarea\r\n class=\"form__control\"\r\n [placeholder]=\"textarea.placeholder\"\r\n ></textarea>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"contactForm__row\">\r\n <div class=\"contactForm__col\">\r\n <div class=\"block-checkbox\">\r\n @if (requiredLabel) {\r\n <span class=\"required-label\">{{\r\n requiredLabel\r\n }}</span>\r\n }\r\n @if (conditionsLink) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n class=\"checkbox\"\r\n formControlName=\"conditions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span [innerHTML]=\"conditionsLink\"> </span>\r\n </label>\r\n }\r\n @if (promotions) {\r\n <label class=\"form__checkbox\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox\"\r\n formControlName=\"promotions\"\r\n />\r\n <span class=\"box\">\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n width=\"9\"\r\n height=\"7\"\r\n >\r\n <use href=\"#checkbox-tick\"></use>\r\n </svg>\r\n </span>\r\n <span>{{ promotions }}</span>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn__group\">\r\n @if (button) {\r\n <button\r\n class=\"btn btn__primary--outline js-active-modal\"\r\n data-modal_name=\"thankyou\"\r\n [attr.aria-label]=\"button.label\"\r\n (click)=\"submitForm()\"\r\n [style.pointer-events]=\"\r\n !form.valid ? 'auto' : 'none'\r\n \"\r\n >\r\n <span>{{ button.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".form-error{position:relative;color:var(--grey);z-index:1;bottom:20px}\n"] }]
|
|
71
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
|
|
85
72
|
type: Input
|
|
86
73
|
}], subtitle: [{
|
|
87
74
|
type: Input
|
|
@@ -99,13 +86,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
99
86
|
type: Input
|
|
100
87
|
}], ndDropdown: [{
|
|
101
88
|
type: Input
|
|
102
|
-
}], inputs: [{
|
|
103
|
-
type: Input
|
|
104
89
|
}], textarea: [{
|
|
105
90
|
type: Input
|
|
106
91
|
}], button: [{
|
|
107
92
|
type: Input
|
|
108
|
-
}],
|
|
93
|
+
}], emailInput: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], nameInput: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], surnameInput: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], phoneInput: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], submitFormValue: [{
|
|
109
102
|
type: Output
|
|
110
103
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFHSCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDOzs7QUFXeEIsTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxJQUFhLE1BQU0sQ0FBQyxHQUFpQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBZ0JELFlBQTZCLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWmxDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTNDLFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFPVyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLFFBQVEsR0FBMkIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNaLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDaEIsS0FBSyxPQUFPO29CQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO29CQUN4QixNQUFNO2dCQUNWLEtBQUssUUFBUTtvQkFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsTUFBTTtnQkFDVixLQUFLLFVBQVU7b0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQzFCLE1BQU07Z0JBQ1YsS0FBSyxVQUFVO29CQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO29CQUN4QixNQUFNO2dCQUVWO29CQUNJLE1BQU07YUFDYjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLEtBQUssRUFBRTtZQUNQLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7U0FDakU7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVksRUFBRSxLQUFpQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUV0RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3RCLFlBQVksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXJHUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixzWUNuQnJDLDY3ZEE4U0EseUREL1JjLFlBQVksOEJBQUUsV0FBVyx1dUNBQUUsbUJBQW1COzs0RkFJL0Msd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNJLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2dGQUtoRCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEZvcm1CdWlsZGVyLFxyXG4gICAgRm9ybUdyb3VwLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJLCBQdXJvSW5wdXRJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFB1cm9Ecm9wZG93bkkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3B1cm8tZHJvcGRvd24uaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1jb250YWN0LWZvcm0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWNvbnRhY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vcHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHVyb0NvbnRhY3RGb3JtQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcm9tb3Rpb25zPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcmVxdWlyZWRMYWJlbD86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGltZz86IFB1cm9JbWFnZUk7XHJcbiAgICBASW5wdXQoKSBjb25kaXRpb25zTGluaz86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHByZWZpeD86IFB1cm9Ecm9wZG93bkk7XHJcbiAgICBASW5wdXQoKSBkcm9wZG93bj86IFB1cm9Ecm9wZG93bkk7XHJcbiAgICBASW5wdXQoKSBuZERyb3Bkb3duPzogUHVyb0Ryb3Bkb3duSTtcclxuICAgIEBJbnB1dCgpIHNldCBpbnB1dHMoaW5wOiBQdXJvSW5wdXRJW10pIHtcclxuICAgICAgICB0aGlzLl9pbnB1dHMgPSBpbnA7XHJcbiAgICAgICAgdGhpcy5zZXRJbnB1dFByb3BlcnRpZXMoKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIHRleHRhcmVhPzogUHVyb0lucHV0STtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbj86IFB1cm9CdXR0b25JO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBfaW5wdXRzOiBQdXJvSW5wdXRJW10gPSBbXTtcclxuXHJcbiAgICBmb3JtITogRm9ybUdyb3VwO1xyXG4gICAgZm9ybVJlYWR5JCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgZW1haWxJbnB1dD86IFB1cm9JbnB1dEk7XHJcbiAgICBuYW1lSW5wdXQ/OiBQdXJvSW5wdXRJO1xyXG4gICAgc3VybmFtZUlucHV0PzogUHVyb0lucHV0STtcclxuICAgIHBob25lSW5wdXQ/OiBQdXJvSW5wdXRJO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgICAgIHRoaXMuX2lucHV0cz8uZm9yRWFjaCgoaW5wdXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGlucHV0Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2xzW2lucHV0Lm5hbWVdID0gWycnLCBpbnB1dC52YWxpZGF0b3JzXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50ZXh0YXJlYSkge1xyXG4gICAgICAgICAgICBjb250cm9sc1t0aGlzLnRleHRhcmVhLm5hbWUhXSA9IFsnJywgdGhpcy50ZXh0YXJlYT8udmFsaWRhdG9yc107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb250cm9sc1snY29uZGl0aW9ucyddID0gW2ZhbHNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV07XHJcbiAgICAgICAgY29udHJvbHNbJ3Byb21vdGlvbnMnXSA9IFtmYWxzZV07XHJcbiAgICAgICAgY29udHJvbHNbJ2Ryb3Bkb3duJ10gPSBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIGNvbnRyb2xzWyduZERyb3Bkb3duJ10gPSBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIGNvbnRyb2xzWydwcmVmaXgnXSA9IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF07XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoY29udHJvbHMpO1xyXG4gICAgICAgIHRoaXMuZm9ybVJlYWR5JC5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SW5wdXRQcm9wZXJ0aWVzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2lucHV0cz8uZm9yRWFjaCgoaW5wdXQpID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoIChpbnB1dC5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlbWFpbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWFpbElucHV0ID0gaW5wdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdub21icmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZUlucHV0ID0gaW5wdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhcGVsbGlkbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdXJuYW1lSW5wdXQgPSBpbnB1dDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3RlbGVmb25vJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBob25lSW5wdXQgPSBpbnB1dDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGVJbnB1dChpbnB1dDogUHVyb0lucHV0SSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpbnB1dCkge1xyXG4gICAgICAgICAgICBpbnB1dC52YWxpZCA9IHRoaXMuZm9ybS5jb250cm9sc1tpbnB1dC5uYW1lIV0uZXJyb3JzID09PSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbnB1dENoYW5nZShldmVudDogRXZlbnQsIGlucHV0OiBQdXJvSW5wdXRJKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChpbnB1dC50eXBlID09PSAndGVsJykge1xyXG4gICAgICAgICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWUucmVwbGFjZSgvW14wLTkrXS9nLCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0Rm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm0/LnJlc2V0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMudGV4dGFyZWEpIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0YXJlYS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pbnB1dHM/LmZvckVhY2goKGlucHV0KSA9PiB7XHJcbiAgICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJjb250YWN0Rm9ybVwiPlxyXG4gICAgQGlmICh0aXRsZSkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGFjdEZvcm1fX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX2lubmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19ncmFwaGljXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fZ3JhcGhpY0lubmVyXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGltZykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuc3JjXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWcuYWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1NTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRhY3RGb3JtX19ncmFwaGljSW5uZXItLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb250ZW50XCI+XHJcbiAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGFjdEZvcm1fX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmIChzdWJ0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGFjdEZvcm1fX3BhcmFncmFwaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJzdWJ0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX3Jvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZHJvcGRvd24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtX19jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkcm9wZG93bi5wbGFjZWhvbGRlciB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24gb2YgZHJvcGRvd24ub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLmNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3NlbGVjdC1hcnJvd1wiPjwvdXNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX3Jvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobmREcm9wZG93bikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIHdpdGhJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5kRHJvcGRvd24ucGxhY2Vob2xkZXIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIG5kRHJvcGRvd24ub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjc2VsZWN0LWFycm93XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZW1haWxJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIHdpdGhJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybV9fY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbWFpbElucHV0LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNlbWFpbFwiPjwvdXNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX3Jvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobmFtZUlucHV0ICYmIG5hbWVJbnB1dC5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJuYW1lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVJbnB1dC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiN1c2VyXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdXJuYW1lSW5wdXQgJiYgc3VybmFtZUlucHV0Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybV9fY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBcGVsbGlkb3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFwZWxsaWRvc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdXJuYW1lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInN1cm5hbWVJbnB1dC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiN1c2VyXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcmVmaXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtX19jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlByZWZpam9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmVmaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcmVmaXgucGxhY2Vob2xkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJlZml4LnBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgcHJlZml4Lm9wdGlvbnMgfHwgW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjc2VsZWN0LWFycm93XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwaG9uZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBob25lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3Bob25lXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0YXJlYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIG5vLWRvdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGV4dGFyZWEucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX2NvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVxdWlyZWRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtbGFiZWxcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZExhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbmRpdGlvbnNMaW5rKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybV9fY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNjaGVja2JveC10aWNrXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbmRpdGlvbnNMaW5rXCI+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9tb3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybV9fY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9tb3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNjaGVja2JveC10aWNrXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcm9tb3Rpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmUganMtYWN0aXZlLW1vZGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cInRoYW5reW91XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnV0dG9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBWXhCLE1BQU0sT0FBTyx3QkFBd0I7SUFzQmpDLFlBQ3FCLEVBQWUsRUFDeEIsR0FBc0I7UUFEYixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUHhCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdwRCxlQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBS2pDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNsRTtRQUVELFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUssQ0FBQyxHQUFHO1lBQ2pDLEVBQUU7WUFDRixJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVU7U0FDaEMsQ0FBQztRQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWlCO1FBQzNCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDckIsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxFQUFFLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztZQUU5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLENBQUM7WUFDM0MsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDdEQ7WUFFRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWSxFQUFFLEtBQWlCO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBRXRELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDdEIsWUFBWSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDbkU7UUFFRCxLQUFLLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7K0dBM0ZRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGdmQzVCckMsdXdoQkErVUEsaUlEeFRjLFlBQVksOEJBQUUsV0FBVyx1dUNBQUUsbUJBQW1COzs0RkFLL0Msd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNJLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLG1CQUd4Qyx1QkFBdUIsQ0FBQyxNQUFNO2dIQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRm9ybUJ1aWxkZXIsXHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUksIFB1cm9JbnB1dEkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUHVyb0Ryb3Bkb3duSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcHVyby1kcm9wZG93bi5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1wdXJvLWNvbnRhY3QtZm9ybScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1cm8tY29udGFjdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWNvbnRhY3QtZm9ybS5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFB1cm9Db250YWN0Rm9ybUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHJvbW90aW9ucz86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlcXVpcmVkTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbWc/OiBQdXJvSW1hZ2VJO1xyXG4gICAgQElucHV0KCkgY29uZGl0aW9uc0xpbms/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcmVmaXg/OiBQdXJvRHJvcGRvd25JO1xyXG4gICAgQElucHV0KCkgZHJvcGRvd24/OiBQdXJvRHJvcGRvd25JO1xyXG4gICAgQElucHV0KCkgbmREcm9wZG93bj86IFB1cm9Ecm9wZG93bkk7XHJcbiAgICBASW5wdXQoKSB0ZXh0YXJlYT86IFB1cm9JbnB1dEk7XHJcbiAgICBASW5wdXQoKSBidXR0b24/OiBQdXJvQnV0dG9uSTtcclxuICAgIEBJbnB1dCgpIGVtYWlsSW5wdXQ/OiBQdXJvSW5wdXRJO1xyXG4gICAgQElucHV0KCkgbmFtZUlucHV0PzogUHVyb0lucHV0STtcclxuICAgIEBJbnB1dCgpIHN1cm5hbWVJbnB1dD86IFB1cm9JbnB1dEk7XHJcbiAgICBASW5wdXQoKSBwaG9uZUlucHV0PzogUHVyb0lucHV0STtcclxuXHJcbiAgICBAT3V0cHV0KCkgc3VibWl0Rm9ybVZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICAgIGZvcm1SZWFkeSQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy50ZXh0YXJlYSAmJiB0aGlzLnRleHRhcmVhLm5hbWUpIHtcclxuICAgICAgICAgICAgY29udHJvbHNbdGhpcy50ZXh0YXJlYS5uYW1lXSA9IFsnJywgdGhpcy50ZXh0YXJlYT8udmFsaWRhdG9yc107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb250cm9sc1snY29uZGl0aW9ucyddID0gW2ZhbHNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV07XHJcbiAgICAgICAgY29udHJvbHNbJ3Byb21vdGlvbnMnXSA9IFtmYWxzZV07XHJcbiAgICAgICAgY29udHJvbHNbJ2Ryb3Bkb3duJ10gPSBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIGNvbnRyb2xzWyduZERyb3Bkb3duJ10gPSBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIGNvbnRyb2xzWydwcmVmaXgnXSA9IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF07XHJcbiAgICAgICAgY29udHJvbHNbdGhpcy5lbWFpbElucHV0Py5uYW1lIV0gPSBbJycsIHRoaXMuZW1haWxJbnB1dD8udmFsaWRhdG9yc107XHJcbiAgICAgICAgY29udHJvbHNbdGhpcy5uYW1lSW5wdXQ/Lm5hbWUhXSA9IFsnJywgdGhpcy5uYW1lSW5wdXQ/LnZhbGlkYXRvcnNdO1xyXG4gICAgICAgIGNvbnRyb2xzW3RoaXMuc3VybmFtZUlucHV0Py5uYW1lIV0gPSBbXHJcbiAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICB0aGlzLnN1cm5hbWVJbnB1dD8udmFsaWRhdG9ycyxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnRyb2xzW3RoaXMucGhvbmVJbnB1dD8ubmFtZSFdID0gWycnLCB0aGlzLnBob25lSW5wdXQ/LnZhbGlkYXRvcnNdO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKGNvbnRyb2xzKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtUmVhZHkkLnNldCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXRGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtVmFsdWUuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZUlucHV0KGlucHV0OiBQdXJvSW5wdXRJKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlucHV0ICYmIGlucHV0Lm5hbWUpIHtcclxuICAgICAgICAgICAgaW5wdXQudmFsaWQ/LnNldCh0aGlzLmZvcm0uZ2V0KGlucHV0Lm5hbWUhKT8uZXJyb3JzID09PSBudWxsKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGlucHV0Lm5hbWUhKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoaW5wdXQudmFsdWUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCwgaW5wdXQ6IFB1cm9JbnB1dEkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKGlucHV0LnR5cGUgPT09ICd0ZWwnKSB7XHJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGlucHV0RWxlbWVudC52YWx1ZS5yZXBsYWNlKC9bXjAtOStdL2csICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlucHV0LnZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0Rm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm0/LnJlc2V0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMudGV4dGFyZWEpIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0YXJlYS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cImNvbnRhY3RGb3JtXCI+XHJcbiAgICBAaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250YWN0Rm9ybV9fdGl0bGVcIj57eyB0aXRsZSB9fTwvc3Bhbj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9faW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX2dyYXBoaWNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19ncmFwaGljSW5uZXJcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoaW1nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltZy5zcmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5hbHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQ2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjU1MVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGFjdEZvcm1fX2dyYXBoaWNJbm5lci0taW1nXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX2NvbnRlbnRcIj5cclxuICAgICAgICAgICAgQGlmICh0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250YWN0Rm9ybV9fdGl0bGVcIj57eyB0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250YWN0Rm9ybV9fcGFyYWdyYXBoXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cInN1YnRpdGxlXCJcclxuICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkcm9wZG93bikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIHdpdGhJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRyb3Bkb3duLnBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBvZiBkcm9wZG93bi5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChvcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJvcHRpb24uY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjc2VsZWN0LWFycm93XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChuZERyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybV9fY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbmREcm9wZG93bi50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24gb2YgbmREcm9wZG93bi5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLmNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNzZWxlY3QtYXJyb3dcIj48L3VzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbWFpbElucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtX19jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVtYWlsSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ2YWxpZGF0ZUlucHV0KGVtYWlsSW5wdXQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImlucHV0Q2hhbmdlKCRldmVudCwgZW1haWxJbnB1dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI2VtYWlsXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWVtYWlsSW5wdXQudmFsaWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1lcnJvclwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsSW5wdXQuZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX3Jvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobmFtZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJuYW1lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVJbnB1dC5uYW1lIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlSW5wdXQobmFtZUlucHV0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJpbnB1dENoYW5nZSgkZXZlbnQsIG5hbWVJbnB1dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3VzZXJcIj48L3VzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFuYW1lSW5wdXQudmFsaWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1lcnJvclwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVJbnB1dC5lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdXJuYW1lSW5wdXQgJiYgc3VybmFtZUlucHV0Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybV9fY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBcGVsbGlkb3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFwZWxsaWRvc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdXJuYW1lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInN1cm5hbWVJbnB1dC5uYW1lIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlSW5wdXQoc3VybmFtZUlucHV0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJpbnB1dENoYW5nZSgkZXZlbnQsIHN1cm5hbWVJbnB1dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3VzZXJcIj48L3VzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFzdXJuYW1lSW5wdXQudmFsaWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1lcnJvclwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cm5hbWVJbnB1dC5lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcmVmaXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtX19jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlByZWZpam9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmVmaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcmVmaXgucGxhY2Vob2xkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJlZml4LnBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgcHJlZml4Lm9wdGlvbnMgfHwgW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjc2VsZWN0LWFycm93XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwaG9uZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBob25lSW5wdXQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ2YWxpZGF0ZUlucHV0KHBob25lSW5wdXQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImlucHV0Q2hhbmdlKCRldmVudCwgcGhvbmVJbnB1dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3Bob25lXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghcGhvbmVJbnB1dC52YWxpZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWVycm9yXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmVJbnB1dC5lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0Rm9ybV9fcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0YXJlYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIG5vLWRvdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGV4dGFyZWEucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3RGb3JtX19yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdEZvcm1fX2NvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVxdWlyZWRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtbGFiZWxcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZExhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbmRpdGlvbnNMaW5rKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybV9fY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNjaGVja2JveC10aWNrXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbmRpdGlvbnNMaW5rXCI+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9tb3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybV9fY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9tb3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNjaGVja2JveC10aWNrXCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcm9tb3Rpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmUganMtYWN0aXZlLW1vZGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cInRoYW5reW91XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFmb3JtLnZhbGlkID8gJ2F1dG8nIDogJ25vbmUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidXR0b24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1jb250YWN0LWZvcm0uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQnV0dG9uSSwgUHVyb0lucHV0SSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQdXJvRHJvcGRvd25JIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wdXJvLWRyb3Bkb3duLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3B1cm8taW1hZ2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0NvbnRhY3RGb3JtSSB7XHJcbiAgICB0aXRsZT86IHN0cmluZztcclxuICAgIHN1YnRpdGxlPzogc3RyaW5nO1xyXG4gICAgcHJvbW90aW9ucz86IHN0cmluZztcclxuICAgIHJlcXVpcmVkTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBpbWc/OiBQdXJvSW1hZ2VJO1xyXG4gICAgY29uZGl0aW9uc0xpbms/OiBzdHJpbmc7XHJcbiAgICBwcmVmaXg/OiBQdXJvRHJvcGRvd25JO1xyXG4gICAgZHJvcGRvd24/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1jb250YWN0LWZvcm0uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1jb250YWN0LWZvcm0vcHVyby1jb250YWN0LWZvcm0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQnV0dG9uSSwgUHVyb0lucHV0SSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQdXJvRHJvcGRvd25JIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wdXJvLWRyb3Bkb3duLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3B1cm8taW1hZ2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0NvbnRhY3RGb3JtSSB7XHJcbiAgICB0aXRsZT86IHN0cmluZztcclxuICAgIHN1YnRpdGxlPzogc3RyaW5nO1xyXG4gICAgcHJvbW90aW9ucz86IHN0cmluZztcclxuICAgIHJlcXVpcmVkTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBpbWc/OiBQdXJvSW1hZ2VJO1xyXG4gICAgY29uZGl0aW9uc0xpbms/OiBzdHJpbmc7XHJcbiAgICBwcmVmaXg/OiBQdXJvRHJvcGRvd25JO1xyXG4gICAgZHJvcGRvd24/OiBQdXJvRHJvcGRvd25JO1xyXG4gICAgbmREcm9wZG93bj86IFB1cm9Ecm9wZG93bkk7XHJcbiAgICBlbWFpbElucHV0PzogUHVyb0lucHV0STtcclxuICAgIG5hbWVJbnB1dD86IFB1cm9JbnB1dEk7XHJcbiAgICBzdXJuYW1lSW5wdXQ/OiBQdXJvSW5wdXRJO1xyXG4gICAgcGhvbmVJbnB1dD86IFB1cm9JbnB1dEk7XHJcbiAgICB0ZXh0YXJlYT86IFB1cm9JbnB1dEk7XHJcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1pbnB1dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvaW50ZXJmYWNlcy9wdXJvLWlucHV0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0lucHV0SSB7XHJcbiAgICB0eXBlPzogc3RyaW5nO1xyXG4gICAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZT86IHN0cmluZztcclxuICAgIHZhbGlkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPjtcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yc1tdO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbn1cclxuIl19
|