@reusa/ngx-reusa-app-lib 0.0.1301 → 0.0.1303
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/add-participant/add-participant.component.mjs +10 -9
- package/esm2022/lib/components/address/address.component.mjs +34 -15
- package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +11 -5
- package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
- package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
- package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +804 -0
- package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
- package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
- package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
- package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
- package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
- package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +683 -0
- package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
- package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
- package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
- package/esm2022/lib/models/HelpConstants.mjs +5 -0
- package/esm2022/lib/models/combo-model.mjs +343 -0
- package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
- package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
- package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
- package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
- package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
- package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
- package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
- package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +30 -8
- package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
- package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
- package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +214 -0
- package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
- package/esm2022/lib/validations/AppValidators.mjs +36 -1
- package/esm2022/public-api.mjs +15 -1
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +6651 -921
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +4 -1
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/address-suggestion/address-suggestion.component.d.ts +2 -1
- package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -1
- package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
- package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
- package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
- package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
- package/lib/components/weekly-certification/weekly-certification.component.d.ts +99 -0
- package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
- package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
- package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
- package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
- package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
- package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
- package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
- package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
- package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
- package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
- package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +69 -0
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
- package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
- package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
- package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
- package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
- package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
- package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
- package/lib/models/HelpConstants.d.ts +5 -0
- package/lib/models/HelpConstants.d.ts.map +1 -0
- package/lib/models/combo-model.d.ts +42 -0
- package/lib/models/combo-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
- package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
- package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
- package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
- package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
- package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
- package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
- package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
- package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
- package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
- package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
- package/lib/ngx-reusa-app-lib.module.d.ts +74 -61
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
- package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
- package/lib/services/weekly-cert/review.service.d.ts +23 -0
- package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +59 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
- package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
- package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
- package/lib/validations/AppValidators.d.ts +11 -0
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +14 -0
- package/public-api.d.ts.map +1 -1
|
@@ -132,19 +132,19 @@ function AddParticipantComponent_form_6_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
132
132
|
} if (rf & 2) {
|
|
133
133
|
const ctx_r16 = i0.ɵɵnextContext(2);
|
|
134
134
|
i0.ɵɵadvance(3);
|
|
135
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4,
|
|
135
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 19, "add.participant.lawyer.name"));
|
|
136
136
|
i0.ɵɵadvance(2);
|
|
137
137
|
i0.ɵɵpropertyInterpolate("placeholder", (ctx_r16.role.value == null ? null : ctx_r16.role.value.value) == "ATNY" ? "Attorney Name" : "Representatative Name");
|
|
138
138
|
i0.ɵɵadvance(1);
|
|
139
139
|
i0.ɵɵclassMap("app-grid");
|
|
140
|
-
i0.ɵɵproperty("field", ctx_r16.name)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(
|
|
140
|
+
i0.ɵɵproperty("field", ctx_r16.name)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(23, _c5));
|
|
141
141
|
i0.ɵɵadvance(3);
|
|
142
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10,
|
|
142
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 21, "add.participant.lawyer.phone"));
|
|
143
143
|
i0.ɵɵadvance(3);
|
|
144
144
|
i0.ɵɵclassMap("app-grid block mb-2");
|
|
145
|
-
i0.ɵɵproperty("field", ctx_r16.phone)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(
|
|
145
|
+
i0.ɵɵproperty("field", ctx_r16.phone)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(24, _c5));
|
|
146
146
|
i0.ɵɵadvance(3);
|
|
147
|
-
i0.ɵɵproperty("enableAddressValidation", ctx_r16.isAddressValidationEnabled)("inputId", "address")("standaloneAddressForm", true);
|
|
147
|
+
i0.ɵɵproperty("enableAddressValidation", ctx_r16.isAddressValidationEnabled)("inputId", "address")("standaloneAddressForm", true)("parentFormComponent", "add-participant")("questionaireForm", ctx_r16.userForm);
|
|
148
148
|
i0.ɵɵadvance(2);
|
|
149
149
|
i0.ɵɵproperty("ngIf", !ctx_r16.util.isState("ME"));
|
|
150
150
|
} }
|
|
@@ -204,7 +204,7 @@ function AddParticipantComponent_form_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
204
204
|
i0.ɵɵelement(14, "p-selectButton", 17);
|
|
205
205
|
i0.ɵɵtemplate(15, AddParticipantComponent_form_6_span_15_Template, 3, 3, "span", 18);
|
|
206
206
|
i0.ɵɵelementEnd();
|
|
207
|
-
i0.ɵɵtemplate(16, AddParticipantComponent_form_6_div_16_Template, 23,
|
|
207
|
+
i0.ɵɵtemplate(16, AddParticipantComponent_form_6_div_16_Template, 23, 25, "div", 19)(17, AddParticipantComponent_form_6_div_17_Template, 18, 18, "div", 20);
|
|
208
208
|
i0.ɵɵelementEnd();
|
|
209
209
|
} if (rf & 2) {
|
|
210
210
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
@@ -242,6 +242,7 @@ export class AddParticipantComponent {
|
|
|
242
242
|
phone: new FormControl(null, Validators.required),
|
|
243
243
|
role: new FormControl(null, Validators.required),
|
|
244
244
|
address: new FormControl(null),
|
|
245
|
+
hidIsAddressValidated: new FormControl(null)
|
|
245
246
|
});
|
|
246
247
|
this.selectButtonValidation();
|
|
247
248
|
}
|
|
@@ -419,7 +420,7 @@ export class AddParticipantComponent {
|
|
|
419
420
|
provide: NG_VALUE_ACCESSOR,
|
|
420
421
|
useExisting: AddParticipantComponent,
|
|
421
422
|
multi: true
|
|
422
|
-
}])], decls: 7, vars: 3, consts: [[3, "rowHover", "value"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "footer"], [1, "align"], ["style", "margin-left:16px", 3, "formGroup", "ngSubmit", 4, "ngIf"], ["fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [3, "innerHtml"], [1, "col-offset-4", "action-button"], ["fill", "outline", "size", "small", "shape", "square", 1, "action-button", 3, "click"], [2, "margin-left", "16px", 3, "formGroup", "ngSubmit"], ["participantForm", "ngForm"], [1, "field-grid"], [1, "heading"], [2, "padding-left", "0px"], ["optionLabel", "name", "formControlName", "role", "required", "", "optionDisabled", "disabledRole", 3, "options"], ["class", "help-block", 4, "ngIf"], ["class", "formgrid grid", "style", "margin-top:10px", 4, "ngIf"], ["class", "formgrid grid", 4, "ngIf"], [1, "help-block"], [1, "formgrid", "grid", 2, "margin-top", "10px"], [1, "field", "col-4", "md:col-2"], [2, "margin", "4px"], ["type", "text", "pInputText", "", "formControlName", "name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full", 3, "placeholder"], [3, "field", "form", "errDef"], [1, "field", "col-4", "md:col-9"], [1, "block", "mb-2"], ["mask", "999-999-9999", "placeholder", "999-999-9999", "formControlName", "phone", "unmask", "true"], [1, "field", "col-4", "md:col-9", "field-grid"], ["formControlName", "address", 3, "enableAddressValidation", "inputId", "standaloneAddressForm"], ["participantAddress", ""], ["class", "field col-4 md:col-9 field-grid", 4, "ngIf"], ["fill", "outline", "shape", "round", 1, "col-offset-3", 3, "click"], ["fill", "outline", "shape", "round", "type", "submit", 1, "col-offset-1", 3, "click"], [2, "padding", "10px 0 0 2px"], [1, "formgrid", "grid"], [2, "margin", "10px 0px"], ["type", "text", "pInputText", "", "formControlName", "name", "placeholder", "Witness Name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full"], [1, "field", "col-4", "md:col-9", 2, "padding-top", "12px"], [1, "field", "col-12", "md:col-9", 2, "margin-top", "20px"], ["type", "submit", "fill", "outline", "shape", "round", 1, "col-offset-1", 3, "click"]], template: function AddParticipantComponent_Template(rf, ctx) { if (rf & 1) {
|
|
423
|
+
}])], decls: 7, vars: 3, consts: [[3, "rowHover", "value"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "footer"], [1, "align"], ["style", "margin-left:16px", 3, "formGroup", "ngSubmit", 4, "ngIf"], ["fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [3, "innerHtml"], [1, "col-offset-4", "action-button"], ["fill", "outline", "size", "small", "shape", "square", 1, "action-button", 3, "click"], [2, "margin-left", "16px", 3, "formGroup", "ngSubmit"], ["participantForm", "ngForm"], [1, "field-grid"], [1, "heading"], [2, "padding-left", "0px"], ["optionLabel", "name", "formControlName", "role", "required", "", "optionDisabled", "disabledRole", 3, "options"], ["class", "help-block", 4, "ngIf"], ["class", "formgrid grid", "style", "margin-top:10px", 4, "ngIf"], ["class", "formgrid grid", 4, "ngIf"], [1, "help-block"], [1, "formgrid", "grid", 2, "margin-top", "10px"], [1, "field", "col-4", "md:col-2"], [2, "margin", "4px"], ["type", "text", "pInputText", "", "formControlName", "name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full", 3, "placeholder"], [3, "field", "form", "errDef"], [1, "field", "col-4", "md:col-9"], [1, "block", "mb-2"], ["mask", "999-999-9999", "placeholder", "999-999-9999", "formControlName", "phone", "unmask", "true"], [1, "field", "col-4", "md:col-9", "field-grid"], ["formControlName", "address", 3, "enableAddressValidation", "inputId", "standaloneAddressForm", "parentFormComponent", "questionaireForm"], ["participantAddress", ""], ["class", "field col-4 md:col-9 field-grid", 4, "ngIf"], ["fill", "outline", "shape", "round", 1, "col-offset-3", 3, "click"], ["fill", "outline", "shape", "round", "type", "submit", 1, "col-offset-1", 3, "click"], [2, "padding", "10px 0 0 2px"], [1, "formgrid", "grid"], [2, "margin", "10px 0px"], ["type", "text", "pInputText", "", "formControlName", "name", "placeholder", "Witness Name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full"], [1, "field", "col-4", "md:col-9", 2, "padding-top", "12px"], [1, "field", "col-12", "md:col-9", 2, "margin-top", "20px"], ["type", "submit", "fill", "outline", "shape", "round", 1, "col-offset-1", 3, "click"]], template: function AddParticipantComponent_Template(rf, ctx) { if (rf & 1) {
|
|
423
424
|
i0.ɵɵelementStart(0, "p-table", 0, 1);
|
|
424
425
|
i0.ɵɵtemplate(2, AddParticipantComponent_ng_template_2_Template, 11, 9, "ng-template", 2)(3, AddParticipantComponent_ng_template_3_Template, 15, 7, "ng-template", 3)(4, AddParticipantComponent_ng_template_4_Template, 9, 5, "ng-template", 4);
|
|
425
426
|
i0.ɵɵelementEnd();
|
|
@@ -438,7 +439,7 @@ export class AddParticipantComponent {
|
|
|
438
439
|
provide: NG_VALUE_ACCESSOR,
|
|
439
440
|
useExisting: AddParticipantComponent,
|
|
440
441
|
multi: true
|
|
441
|
-
}], template: "<p-table #dt [rowHover]=\"true\" [value]=\"participantList\" >\r\n <ng-template pTemplate=\"header\" let-columns >\r\n <tr >\r\n <th> {{\"add.participant.header.participantRole\"|translate}}</th>\r\n <th>{{\"add.participant.header.name\"|translate}}</th>\r\n <th> {{\"add.participant.header.phone\"|translate}}</th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-participant let-rowIndex=\"rowIndex\">\r\n <tr >\r\n\r\n <td ><span>{{participant.role.name}}</span></td>\r\n <td><span>{{participant.name}}</span></td>\r\n <td><span>{{participant.phone}}</span></td>\r\n <td>\r\n <ion-button fill=\"outline\" (click)=\"editItem(participant)\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n <ion-button (click)=\"removeItem(participant)\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" let-columns>\r\n <tr>\r\n <td><span [innerHtml]=\"'add.participant.footer.addElement'|translate\"></span></td>\r\n <td></td>\r\n <td></td>\r\n <td class=\"col-offset-4 action-button\">\r\n <ion-button (click)=\"addRole()\" fill=\"outline\" size=\"small\" shape=\"square\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"align\">\r\n<form [formGroup]=\"userForm\" *ngIf=\"visible\" (ngSubmit)=\"onSubmit()\" #participantForm=\"ngForm\" style=\"margin-left:16px\">\r\n <div class=\"field-grid\">\r\n <br>\r\n <h1 class=\"heading\">{{\"add.participant.header.heading\"|translate}}</h1>\r\n <br>\r\n </div>\r\n <div class=\"field-grid\"><label> {{isAppealLevelSecond =='N' ? (\"add.participant.header.question\"|translate) : (\"add.participant.header.appealLevel2Question\"|translate)}}</label></div>\r\n \r\n <div style=\"padding-left: 0px;\">\r\n <p-selectButton [options]=\"roles\" optionLabel=\"name\" formControlName=\"role\" required optionDisabled=\"disabledRole\"\r\n [class.has-error]=\"role.dirty && role.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"role.dirty && role.invalid\">{{\"induction.required\"| translate}}</span>\r\n </div>\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='ATNY' || role.value?.value=='RPRT'\" style=\"margin-top:10px\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:4px\">{{\"add.participant.lawyer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"{{role.value?.value =='ATNY' ? 'Attorney Name' : 'Representatative Name'}}\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\"><span\r\n class=\"block mb-2\">{{\"add.participant.lawyer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <br />\r\n\r\n <div class=\"field col-4 md:col-9 field-grid\">\r\n <app-address #participantAddress [enableAddressValidation]=\"isAddressValidationEnabled\" [inputId]=\"'address'\" [standaloneAddressForm]=\"true\" formControlName=\"address\"></app-address>\r\n <div *ngIf=\"!util.isState('ME')\" class=\"field col-4 md:col-9 field-grid\"><label style=\"padding: 10px 0 0 2px\">{{\"add.participant.footer.declaration\"|translate}}</label></div>\r\n </div>\r\n <div class=\"field col-4 md:col-9\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n <ion-button (click)=\"onSubmit()\" fill=\"outline\" shape=\"round\" type=\"submit\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='WITN'\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:10px 0px\">{{\"add.participant.observer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"Witness Name\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\">\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\" style=\"padding-top:12px\">\r\n <span class=\"block mb-2\">{{\"add.participant.observer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-9\" style=\"margin-top: 20px;\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n\r\n <ion-button (click)=\"onSubmit()\" type=\"submit\" fill=\"outline\" shape=\"round\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n</form>\r\n</div>", styles: [".help-block{color:red}p-table{margin:0 -16px}.align{margin:0 -16px}:host ::ng-deep p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border:1px solid red!important;color:red!important}:host ::ng-deep .p-selectbutton .p-button{margin-top:15px!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{padding-left:17px!important}:host ::ng-deep th{width:300px;font-weight:700!important}\n"] }]
|
|
442
|
+
}], template: "<p-table #dt [rowHover]=\"true\" [value]=\"participantList\" >\r\n <ng-template pTemplate=\"header\" let-columns >\r\n <tr >\r\n <th> {{\"add.participant.header.participantRole\"|translate}}</th>\r\n <th>{{\"add.participant.header.name\"|translate}}</th>\r\n <th> {{\"add.participant.header.phone\"|translate}}</th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-participant let-rowIndex=\"rowIndex\">\r\n <tr >\r\n\r\n <td ><span>{{participant.role.name}}</span></td>\r\n <td><span>{{participant.name}}</span></td>\r\n <td><span>{{participant.phone}}</span></td>\r\n <td>\r\n <ion-button fill=\"outline\" (click)=\"editItem(participant)\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n <ion-button (click)=\"removeItem(participant)\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" let-columns>\r\n <tr>\r\n <td><span [innerHtml]=\"'add.participant.footer.addElement'|translate\"></span></td>\r\n <td></td>\r\n <td></td>\r\n <td class=\"col-offset-4 action-button\">\r\n <ion-button (click)=\"addRole()\" fill=\"outline\" size=\"small\" shape=\"square\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"align\">\r\n<form [formGroup]=\"userForm\" *ngIf=\"visible\" (ngSubmit)=\"onSubmit()\" #participantForm=\"ngForm\" style=\"margin-left:16px\">\r\n <div class=\"field-grid\">\r\n <br>\r\n <h1 class=\"heading\">{{\"add.participant.header.heading\"|translate}}</h1>\r\n <br>\r\n </div>\r\n <div class=\"field-grid\"><label> {{isAppealLevelSecond =='N' ? (\"add.participant.header.question\"|translate) : (\"add.participant.header.appealLevel2Question\"|translate)}}</label></div>\r\n \r\n <div style=\"padding-left: 0px;\">\r\n <p-selectButton [options]=\"roles\" optionLabel=\"name\" formControlName=\"role\" required optionDisabled=\"disabledRole\"\r\n [class.has-error]=\"role.dirty && role.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"role.dirty && role.invalid\">{{\"induction.required\"| translate}}</span>\r\n </div>\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='ATNY' || role.value?.value=='RPRT'\" style=\"margin-top:10px\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:4px\">{{\"add.participant.lawyer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"{{role.value?.value =='ATNY' ? 'Attorney Name' : 'Representatative Name'}}\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\"><span\r\n class=\"block mb-2\">{{\"add.participant.lawyer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <br />\r\n\r\n <div class=\"field col-4 md:col-9 field-grid\">\r\n <app-address #participantAddress [enableAddressValidation]=\"isAddressValidationEnabled\" [inputId]=\"'address'\" [standaloneAddressForm]=\"true\" formControlName=\"address\" [parentFormComponent]=\"'add-participant'\" [questionaireForm]=\"userForm\"></app-address>\r\n <div *ngIf=\"!util.isState('ME')\" class=\"field col-4 md:col-9 field-grid\"><label style=\"padding: 10px 0 0 2px\">{{\"add.participant.footer.declaration\"|translate}}</label></div>\r\n </div>\r\n <div class=\"field col-4 md:col-9\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n <ion-button (click)=\"onSubmit()\" fill=\"outline\" shape=\"round\" type=\"submit\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='WITN'\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:10px 0px\">{{\"add.participant.observer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"Witness Name\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\">\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\" style=\"padding-top:12px\">\r\n <span class=\"block mb-2\">{{\"add.participant.observer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-9\" style=\"margin-top: 20px;\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n\r\n <ion-button (click)=\"onSubmit()\" type=\"submit\" fill=\"outline\" shape=\"round\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n</form>\r\n</div>", styles: [".help-block{color:red}p-table{margin:0 -16px}.align{margin:0 -16px}:host ::ng-deep p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border:1px solid red!important;color:red!important}:host ::ng-deep .p-selectbutton .p-button{margin-top:15px!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{padding-left:17px!important}:host ::ng-deep th{width:300px;font-weight:700!important}\n"] }]
|
|
442
443
|
}], () => [{ type: i1.FormBuilder }, { type: i2.UtilService }, { type: i3.ValidationService }, { type: i4.AppealService }], { participantAddress: [{
|
|
443
444
|
type: ViewChild,
|
|
444
445
|
args: ['participantAddress', { static: false }]
|
|
@@ -449,4 +450,4 @@ export class AddParticipantComponent {
|
|
|
449
450
|
type: Input
|
|
450
451
|
}] }); })();
|
|
451
452
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddParticipantComponent, { className: "AddParticipantComponent", filePath: "lib\\components\\add-participant\\add-participant.component.ts", lineNumber: 22 }); })();
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQyxpQkFBaUIsR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBT25JLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0lDTnJELDBCQUFLLFNBQUE7SUFDRSxZQUFzRDs7SUFBQSxpQkFBSztJQUNoRSwwQkFBSTtJQUFBLFlBQTJDOztJQUFBLGlCQUFLO0lBQ3BELDBCQUFJO0lBQUMsWUFBNEM7O0lBQUEsaUJBQUs7SUFDdEQsc0JBQVM7SUFDWCxpQkFBSzs7SUFKRSxlQUFzRDtJQUF0RCw4RkFBc0Q7SUFDdkQsZUFBMkM7SUFBM0MseUVBQTJDO0lBQzFDLGVBQTRDO0lBQTVDLG9GQUE0Qzs7Ozs7O0lBS25ELDBCQUFLLFNBQUEsV0FBQTtJQUVRLFlBQXlCO0lBQUEsaUJBQU8sRUFBQTtJQUMzQywwQkFBSSxXQUFBO0lBQU0sWUFBb0I7SUFBQSxpQkFBTyxFQUFBO0lBQ3JDLDBCQUFJLFdBQUE7SUFBTSxZQUFxQjtJQUFBLGlCQUFPLEVBQUE7SUFDdEMsMkJBQUkscUJBQUE7SUFDeUIsbVBBQVMsZUFBQSwr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Q0FBQTtRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0ZBL05VLHVCQUF1QjtvRUFBdkIsdUJBQXVCOzs7Ozs7O3dGQVB0QixDQUFDO29CQUNULE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLEtBQUssRUFBRSxJQUFJO2lCQUNaLENBQUM7WUNsQk4scUNBQTBEO1lBQ3hELHlGQU9jLDRFQUFBLDJFQUFBO1lBNkJoQixpQkFBVTtZQUNWLDhCQUFtQjtZQUNuQiw0RUFnRU87WUFDUCxpQkFBTTs7WUF4R08sK0JBQWlCLDhCQUFBO1lBdUNBLGVBQWE7WUFBYixrQ0FBYTs7O2lGRGxCOUIsdUJBQXVCO2NBWG5DLFNBQVM7MkJBQ0UscUJBQXFCLGFBR25CLENBQUM7d0JBQ1QsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx5QkFBeUI7d0JBQ3BDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUM7a0lBYUcsa0JBQWtCO2tCQUR4QixTQUFTO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUkzQyxlQUFlO2tCQURyQixTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQVV4QyxZQUFZO2tCQURsQixLQUFLOztrRkFyQkssdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCwgTmdGb3JtLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyAgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgQXBwZWFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGVhbC9hcHBlYWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsLCBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsTGlzdCwgUm9sZSB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0FwcGVhbFBhcnRpY2lwYW50TW9kZWwnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtcGFydGljaXBhbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOlt7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfV1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIGZvcm1Db250cm9sTmFtZSA9ICcnO1xuXG4gIG9uQ2hhbmdlOiBGdW5jdGlvbjtcblxuICBvblRvdWNoZWQgPSAoKSA9Pnt9XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50QWRkcmVzcycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRBZGRyZXNzOiBBZGRyZXNzQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50Rm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRGb3JtOiBOZ0Zvcm07XG5cbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0FwcGVhbExldmVsU2Vjb25kOiBzdHJpbmc7XG4gIHB1YmxpYyBpbmRleFRvRWRpdD0gbnVsbFxuXG4gIHJvbGVzOiBhbnlbXT0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xuXG4gIHVzZXJGb3JtOiBGb3JtR3JvdXA7XG4gIHBhcnRpY2lwYW50TGlzdDogYW55W107XG4gIGxvZ2dlcjogYW55O1xuICBwdWJsaWMgaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPSBMaWJDb25zdGFudHMuaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPT0gJ3RydWUnO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIHZzOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIGFwcGVhbFNlcnZpY2U6IEFwcGVhbFNlcnZpY2UpIHtcblxuICAgIFxuXG4gICAgdGhpcy5wYXJ0aWNpcGFudExpc3QgPSBbXTtcblxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICByb2xlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBhZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RCdXR0b25WYWxpZGF0aW9uKCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKXtcbiAgICBmb3IobGV0IHN1YiBvZiB0aGlzLm9uQ2hhbmdlU3VicylcbiAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSl7XG4gICBpZiAodmFsdWUpe1xuICAgIHRoaXMudXNlckZvcm0uc2V0VmFsdWUodmFsdWUpO1xuICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSl7XG4gICBsZXQgc3ViID0gdGhpcy52cy5wYXJ0aWNpcGFudHMuc3Vic2NyaWJlKGZuKVxuICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpXG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpe1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG4gIHNldHZhbHVlKCl7XG4gICAgdGhpcy5vbkNoYW5nZSgpXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuICBcblxuICBwdWJsaWMgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VyRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wYXJ0aWNpcGFudExpc3QucHVzaCh0aGlzLnVzZXJGb3JtLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51c2VyRm9ybS5pbnZhbGlkXG4gICAgfVxuXG4gIH1cbiAgc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpe1xuICB0aGlzLnJvbGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWw9PntcbiAgICBpZih2YWwpe1xuICAgICAgaWYodmFsLnZhbHVlID09ICdBVE5ZJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgaWYodmFsLnZhbHVlID09ICdSUFJUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgaWYodmFsLnZhbHVlID09ICdXSVROJyl7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5hZGRyZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4gIGVkaXRJdGVtKHBhcnRpY2lwYW50KSB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnBhcnRpY2lwYW50TGlzdC5pbmRleE9mKHBhcnRpY2lwYW50KTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID1pbmRleDtcbiAgICB0aGlzLnBhcnRpY2lwYW50TGlzdFtpbmRleF0gPSB0aGlzLnVzZXJGb3JtLnBhdGNoVmFsdWUocGFydGljaXBhbnQpO1xuICB9XG4gIHJlc2V0KCkge1xuICAgIHRoaXMudXNlckZvcm0ucmVzZXQoKTtcblxuICB9XG4gIHJlbW92ZUl0ZW0ocGFydGljaXBhbnQpIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnBhcnRpY2lwYW50TGlzdC5pbmRleE9mKHBhcnRpY2lwYW50KTtcbiAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucHVibGlzaFBhcnRpY2lwYW50KCk7XG4gICAgdmFyIHJlbW92ZWRPYmplY3QgOiB7IG5hbWU/OiBzdHJpbmc7IHJvbGU/OiBSb2xlOyBhZGRyZXNzPzogYW55IH0gPSBwYXJ0aWNpcGFudDtcbiAgICBpZihyZW1vdmVkT2JqZWN0LnJvbGUudmFsdWU9PSAnQVROWScpIHtcbiAgICAgIHRoaXMucm9sZXNbMF0uZGlzYWJsZWRSb2xlID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmKHJlbW92ZWRPYmplY3Qucm9sZS52YWx1ZT09ICdSUFJUJykge1xuICAgICAgdGhpcy5yb2xlc1sxXS5kaXNhYmxlZFJvbGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgYWRkUm9sZSgpIHtcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYodGhpcy5wYXJ0aWNpcGFudEFkZHJlc3Mpe1xuICAgICAgdGhpcy5wYXJ0aWNpcGFudEFkZHJlc3Muc3VibWl0KCk7XG4gICAgfVxuICAgIGlmICghdGhpcy51c2VyRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy51c2VyRm9ybS5tYXJrQXNEaXJ0eSgpXG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLnVzZXJGb3JtKVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKHRoaXMuaW5kZXhUb0VkaXQhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucGFydGljaXBhbnRMaXN0W3RoaXMuaW5kZXhUb0VkaXRdPSB0aGlzLnVzZXJGb3JtLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51c2VyRm9ybS52YWxpZFxuICAgICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5wdXNoKHRoaXMudXNlckZvcm0udmFsdWUpO1xuICAgICAgICAvLyBiYXNlZCBvbiByZXF1aXJlbWVudCwgb25seSBvbmUgYXR0b3JuZXkgJiByZXByZW50YXRpdmUgc2hvdWxkIGJlIHBhcnRpY2lwYW50IGxpc3QgYW5kIFxuICAgICAgICAvLyBhbnkgbnVtYmVyIG9mIHdpdG5lc3MgY2FuIGhhdmUgaW4gcGFydGljaXBhbnQgbGlzdFxuICAgICAgICBsZXQgc2F2ZWRSb2xlOiBSb2xlID0gdGhpcy51c2VyRm9ybS52YWx1ZVsncm9sZSddXG4gICAgICAgIGZvciAodmFyIHJvbGUgb2YgdGhpcy5yb2xlcykge1xuICAgICAgICAgIGlmIChyb2xlLnZhbHVlID09IHNhdmVkUm9sZS52YWx1ZSAmJiBzYXZlZFJvbGUudmFsdWUgIT0gJ1dJVE4nKSB7XG4gICAgICAgICAgICByb2xlLmRpc2FibGVkUm9sZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnB1Ymxpc2hQYXJ0aWNpcGFudCgpXG4gICAgICB0aGlzLnVzZXJGb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIHB1Ymxpc2hQYXJ0aWNpcGFudCgpe1xuICAgIHRoaXMudnMucGFydGljaXBhbnRzLm5leHQodGhpcy5wYXJ0aWNpcGFudExpc3QubGVuZ3RoID4gMCA/IHRoaXMucGFydGljaXBhbnRMaXN0IDogbnVsbCk7XG4gIH1cblxuICB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldCByb2xlKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWydyb2xlJ107XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9sc1snbmFtZSddO1xuICB9XG4gIGdldCBhZGRyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XG4gIH1cblxuICBnZXQgcGhvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHNbJ3Bob25lJ107XG4gIH1cblxuXG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy51c2VyRm9ybS5yZXNldCgpO1xuICAgIHRoaXMuY2xvc2VcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgXG4gICB0aGlzLmlzQXBwZWFsTGV2ZWxTZWNvbmQgPSB0aGlzLmR5bmFtaWNQYXJhbVsnaGlkQXBwZWFsRGVjaXNpb24nXTtcbiAgIGxldCBwYXJlbnRBcHBlYWxJZCA9IHRoaXMuZHluYW1pY1BhcmFtWydwYXJlbnRBcHBlYWxJZCddO1xuICAgLy8gTG9hZGVyc2VydmljZSBpcyBub3QgZ2V0dGluZyBjYWxsZWQgZm9yIGFwcGVhbCBwb3AgdXBcbiAgLy9iZWNhc3VlIG9mIHRoaXMgaXNzdWUsIFdlIG5lZWQgdG8gdXNlIHRoaXMgYXBwcm9hY2hcbiAgICBpZiAocGFyZW50QXBwZWFsSWQpIHtcbiAgICAgIHRoaXMuYXBwZWFsU2VydmljZS5mZXRjaEFwcGVhbFBhcnRpY2lwYW50RGV0YWlscyhwYXJlbnRBcHBlYWxJZCwgdGhpcy5pc0FwcGVhbExldmVsU2Vjb25kKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgbGV0IHRlbXA6IEFwcGVhbFBhcnRpY2lwYW50TW9kZWxMaXN0ID0gcmVzO1xuICAgICAgICAgIGxldCBzaXplOiBudW1iZXIgPSAwO1xuICAgICAgICAgIGlmICh0ZW1wKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRQYXJ0aWNpcGFudExpc3Qoc2l6ZSwgdGVtcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICBcblx0XHRcblxuICAgIGlmKHRoaXMuaXNBcHBlYWxMZXZlbFNlY29uZD09J1knIHx8IHRoaXMudXRpbC5pc1N0YXRlKCdNRScpKSB7XG4gICAgICB0aGlzLnJvbGVzID0gW1xuICAgICAgICB7IG5hbWU6ICdBdHRvcm5leScsIHZhbHVlOiAnQVROWScsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgICAgeyBuYW1lOiAnUmVwcmVzZW50YXRpdmUnLCB2YWx1ZTogJ1JQUlQnLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICBdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm9sZXMgPSBbXG4gICAgICAgIHsgbmFtZTogJ0F0dG9ybmV5JywgdmFsdWU6ICdBVE5ZJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgICB7IG5hbWU6ICdSZXByZXNlbnRhdGl2ZScsIHZhbHVlOiAnUlBSVCcsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgICAgeyBuYW1lOiAnV2l0bmVzcycsIHZhbHVlOiAnV0lUTicsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICBpbml0UGFydGljaXBhbnRMaXN0KGxlbjogbnVtYmVyLCB0ZW1wOiBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsTGlzdCkge1xuICAgIHRlbXAuYWRkUGFydGljaXBhbnRDb21wLmZpbHRlcihwYXJ0ID0+IChwYXJ0LnJvbGUudmFsdWUgPT0gJ1JQUlQnIHx8IHBhcnQucm9sZS52YWx1ZSA9PSAnQVROWScpKS5tYXAocGFydCA9PiB7XG4gICAgICBwYXJ0LnJvbGUuZGlzYWJsZWRSb2xlID0gZmFsc2U7XG4gICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5wdXNoKHBhcnQpXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxwLXRhYmxlICNkdCBbcm93SG92ZXJdPVwidHJ1ZVwiIFt2YWx1ZV09XCJwYXJ0aWNpcGFudExpc3RcIiA+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zID5cclxuICAgIDx0ciA+XHJcbiAgICAgIDx0aD4ge3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIucGFydGljaXBhbnRSb2xlXCJ8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICA8dGg+e3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIubmFtZVwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgPHRoPiB7e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5waG9uZVwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgPHRoPjwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcGFydGljaXBhbnQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgIDx0ciA+XHJcblxyXG4gICAgICA8dGQgPjxzcGFuPnt7cGFydGljaXBhbnQucm9sZS5uYW1lfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPjxzcGFuPnt7cGFydGljaXBhbnQubmFtZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZD48c3Bhbj57e3BhcnRpY2lwYW50LnBob25lfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImVkaXRJdGVtKHBhcnRpY2lwYW50KVwiICBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZW1vdmVJdGVtKHBhcnRpY2lwYW50KVwiIGZpbGw9XCJvdXRsaW5lXCIgIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0ZD48c3BhbiBbaW5uZXJIdG1sXT1cIidhZGQucGFydGljaXBhbnQuZm9vdGVyLmFkZEVsZW1lbnQnfHRyYW5zbGF0ZVwiPjwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQ+PC90ZD5cclxuICAgICAgPHRkPjwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cImNvbC1vZmZzZXQtNCBhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZFJvbGUoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgc2hhcGU9XCJzcXVhcmVcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcbjxkaXYgY2xhc3M9XCJhbGlnblwiPlxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cInVzZXJGb3JtXCIgKm5nSWY9XCJ2aXNpYmxlXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiAjcGFydGljaXBhbnRGb3JtPVwibmdGb3JtXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNnB4XCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkLWdyaWRcIj5cclxuICAgIDxicj5cclxuICAgIDxoMSBjbGFzcz1cImhlYWRpbmdcIj57e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5oZWFkaW5nXCJ8dHJhbnNsYXRlfX08L2gxPlxyXG4gICAgPGJyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmaWVsZC1ncmlkXCI+PGxhYmVsPiB7e2lzQXBwZWFsTGV2ZWxTZWNvbmQgPT0nTicgPyAoXCJhZGQucGFydGljaXBhbnQuaGVhZGVyLnF1ZXN0aW9uXCJ8dHJhbnNsYXRlKSA6IChcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIuYXBwZWFsTGV2ZWwyUXVlc3Rpb25cInx0cmFuc2xhdGUpfX08L2xhYmVsPjwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDBweDtcIj5cclxuICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJyb2xlc1wiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJvbGVcIiByZXF1aXJlZCBvcHRpb25EaXNhYmxlZD1cImRpc2FibGVkUm9sZVwiXHJcbiAgICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwicm9sZS5kaXJ0eSAmJiByb2xlLmludmFsaWRcIj5cclxuICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInJvbGUuZGlydHkgJiYgcm9sZS5pbnZhbGlkXCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiICpuZ0lmPVwicm9sZS52YWx1ZT8udmFsdWUgPT0nQVROWScgfHwgcm9sZS52YWx1ZT8udmFsdWU9PSdSUFJUJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDoxMHB4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTJcIj48bGFiZWwgc3R5bGU9XCJtYXJnaW46NHB4XCI+e3tcImFkZC5wYXJ0aWNpcGFudC5sYXd5ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJ7e3JvbGUudmFsdWU/LnZhbHVlID09J0FUTlknID8gJ0F0dG9ybmV5IE5hbWUnIDogJ1JlcHJlc2VudGF0YXRpdmUgTmFtZSd9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1jb2xvciBzdXJmYWNlLW92ZXJsYXkgcC0yIGJvcmRlci0xIGJvcmRlci1zb2xpZCBzdXJmYWNlLWJvcmRlciBib3JkZXItcm91bmQgYXBwZWFyYW5jZS1ub25lIG91dGxpbmUtbm9uZSBmb2N1czpib3JkZXItcHJpbWFyeSB3LWZ1bGxcIi8+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIj48c3BhblxyXG4gICAgICAgIGNsYXNzPVwiYmxvY2sgbWItMlwiPnt7XCJhZGQucGFydGljaXBhbnQubGF3eWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5OS05OTk5XCIgcGxhY2Vob2xkZXI9XCI5OTktOTk5LTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQgYmxvY2sgbWItMidcIiBbZmllbGRdPSdwaG9uZScgW2Zvcm1dPVwidXNlckZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nfVwiPlxyXG4gICAgICA8L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJyIC8+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC00IG1kOmNvbC05IGZpZWxkLWdyaWRcIj5cclxuICAgICAgPGFwcC1hZGRyZXNzICNwYXJ0aWNpcGFudEFkZHJlc3MgW2VuYWJsZUFkZHJlc3NWYWxpZGF0aW9uXT1cImlzQWRkcmVzc1ZhbGlkYXRpb25FbmFibGVkXCIgW2lucHV0SWRdPVwiJ2FkZHJlc3MnXCIgW3N0YW5kYWxvbmVBZGRyZXNzRm9ybV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiPjwvYXBwLWFkZHJlc3M+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNRScpXCIgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOSBmaWVsZC1ncmlkXCI+PGxhYmVsIHN0eWxlPVwicGFkZGluZzogMTBweCAwIDAgMnB4XCI+e3tcImFkZC5wYXJ0aWNpcGFudC5mb290ZXIuZGVjbGFyYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOVwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0zXCI+Q2xlYXI8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiICpuZ0lmPVwicm9sZS52YWx1ZT8udmFsdWUgPT0nV0lUTidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtMlwiPjxsYWJlbCBzdHlsZT1cIm1hcmdpbjoxMHB4IDBweFwiPnt7XCJhZGQucGFydGljaXBhbnQub2JzZXJ2ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJXaXRuZXNzIE5hbWVcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtY29sb3Igc3VyZmFjZS1vdmVybGF5IHAtMiBib3JkZXItMSBib3JkZXItc29saWQgc3VyZmFjZS1ib3JkZXIgYm9yZGVyLXJvdW5kIGFwcGVhcmFuY2Utbm9uZSBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXByaW1hcnkgdy1mdWxsXCI+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIiBzdHlsZT1cInBhZGRpbmctdG9wOjEycHhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJibG9jayBtYi0yXCI+e3tcImFkZC5wYXJ0aWNpcGFudC5vYnNlcnZlci5waG9uZVwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkIGJsb2NrIG1iLTInXCIgW2ZpZWxkXT0ncGhvbmUnIFtmb3JtXT1cInVzZXJGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIwcHg7XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgY2xhc3M9XCJjb2wtb2Zmc2V0LTNcIj5DbGVhcjwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbjwvZGl2PiJdfQ==
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQyxpQkFBaUIsR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBT25JLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0lDTnJELDBCQUFLLFNBQUE7SUFDRSxZQUFzRDs7SUFBQSxpQkFBSztJQUNoRSwwQkFBSTtJQUFBLFlBQTJDOztJQUFBLGlCQUFLO0lBQ3BELDBCQUFJO0lBQUMsWUFBNEM7O0lBQUEsaUJBQUs7SUFDdEQsc0JBQVM7SUFDWCxpQkFBSzs7SUFKRSxlQUFzRDtJQUF0RCw4RkFBc0Q7SUFDdkQsZUFBMkM7SUFBM0MseUVBQTJDO0lBQzFDLGVBQTRDO0lBQTVDLG9GQUE0Qzs7Ozs7O0lBS25ELDBCQUFLLFNBQUEsV0FBQTtJQUVRLFlBQXlCO0lBQUEsaUJBQU8sRUFBQTtJQUMzQywwQkFBSSxXQUFBO0lBQU0sWUFBb0I7SUFBQSxpQkFBTyxFQUFBO0lBQ3JDLDBCQUFJLFdBQUE7SUFBTSxZQUFxQjtJQUFBLGlCQUFPLEVBQUE7SUFDdEMsMkJBQUkscUJBQUE7SUFDeUIsbVBBQVMsZUFBQSwr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QUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dGQWhPVSx1QkFBdUI7b0VBQXZCLHVCQUF1Qjs7Ozs7Ozt3RkFQdEIsQ0FBQztvQkFDVCxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixXQUFXLEVBQUUsdUJBQXVCO29CQUNwQyxLQUFLLEVBQUUsSUFBSTtpQkFDWixDQUFDO1lDbEJOLHFDQUEwRDtZQUN4RCx5RkFPYyw0RUFBQSwyRUFBQTtZQTZCaEIsaUJBQVU7WUFDViw4QkFBbUI7WUFDbkIsNEVBZ0VPO1lBQ1AsaUJBQU07O1lBeEdPLCtCQUFpQiw4QkFBQTtZQXVDQSxlQUFhO1lBQWIsa0NBQWE7OztpRkRsQjlCLHVCQUF1QjtjQVhuQyxTQUFTOzJCQUNFLHFCQUFxQixhQUduQixDQUFDO3dCQUNULE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcseUJBQXlCO3dCQUNwQyxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDO2tJQWFHLGtCQUFrQjtrQkFEeEIsU0FBUzttQkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJM0MsZUFBZTtrQkFEckIsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFVeEMsWUFBWTtrQkFEbEIsS0FBSzs7a0ZBckJLLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCxJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wsIE5nRm9ybSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgIFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSdcbmltcG9ydCB7IEFwcGVhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBlYWwvYXBwZWFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwZWFsUGFydGljaXBhbnRNb2RlbCwgQXBwZWFsUGFydGljaXBhbnRNb2RlbExpc3QsIFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9BcHBlYWxQYXJ0aWNpcGFudE1vZGVsJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLXBhcnRpY2lwYW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1wYXJ0aWNpcGFudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1wYXJ0aWNpcGFudC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczpbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogQWRkUGFydGljaXBhbnRDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dXG59KVxuXG5leHBvcnQgY2xhc3MgQWRkUGFydGljaXBhbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICBmb3JtQ29udHJvbE5hbWUgPSAnJztcblxuICBvbkNoYW5nZTogRnVuY3Rpb247XG5cbiAgb25Ub3VjaGVkID0gKCkgPT57fVxuXG4gIG9uQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCdwYXJ0aWNpcGFudEFkZHJlc3MnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHBhcnRpY2lwYW50QWRkcmVzczogQWRkcmVzc0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdwYXJ0aWNpcGFudEZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHBhcnRpY2lwYW50Rm9ybTogTmdGb3JtO1xuXG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBcHBlYWxMZXZlbFNlY29uZDogc3RyaW5nO1xuICBwdWJsaWMgaW5kZXhUb0VkaXQ9IG51bGxcblxuICByb2xlczogYW55W109IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkeW5hbWljUGFyYW06IGFueTtcblxuICB1c2VyRm9ybTogRm9ybUdyb3VwO1xuICBwYXJ0aWNpcGFudExpc3Q6IGFueVtdO1xuICBsb2dnZXI6IGFueTtcbiAgcHVibGljIGlzQWRkcmVzc1ZhbGlkYXRpb25FbmFibGVkID0gTGliQ29uc3RhbnRzLmlzQWRkcmVzc1ZhbGlkYXRpb25FbmFibGVkID09ICd0cnVlJztcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyB2czogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyBhcHBlYWxTZXJ2aWNlOiBBcHBlYWxTZXJ2aWNlKSB7XG5cbiAgICBcblxuICAgIHRoaXMucGFydGljaXBhbnRMaXN0ID0gW107XG5cbiAgICB0aGlzLnVzZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBwaG9uZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgcm9sZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgYWRkcmVzczogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgaGlkSXNBZGRyZXNzVmFsaWRhdGVkOiBuZXcgRm9ybUNvbnRyb2wobnVsbClcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpe1xuICAgIGZvcihsZXQgc3ViIG9mIHRoaXMub25DaGFuZ2VTdWJzKVxuICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KXtcbiAgIGlmICh2YWx1ZSl7XG4gICAgdGhpcy51c2VyRm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICB9XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KXtcbiAgIGxldCBzdWIgPSB0aGlzLnZzLnBhcnRpY2lwYW50cy5zdWJzY3JpYmUoZm4pXG4gICB0aGlzLm9uQ2hhbmdlU3Vicy5wdXNoKHN1YilcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSl7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cbiAgc2V0dmFsdWUoKXtcbiAgICB0aGlzLm9uQ2hhbmdlKClcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG4gIFxuXG4gIHB1YmxpYyBhZGRJdGVtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVzZXJGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5wdXNoKHRoaXMudXNlckZvcm0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVzZXJGb3JtLmludmFsaWRcbiAgICB9XG5cbiAgfVxuICBzZWxlY3RCdXR0b25WYWxpZGF0aW9uKCl7XG4gIHRoaXMucm9sZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbD0+e1xuICAgIGlmKHZhbCl7XG4gICAgICBpZih2YWwudmFsdWUgPT0gJ0FUTlknKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuYWRkcmVzcyk7XG4gICAgICB9XG4gICAgICBpZih2YWwudmFsdWUgPT0gJ1JQUlQnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuYWRkcmVzcyk7XG4gICAgICB9XG4gICAgICBpZih2YWwudmFsdWUgPT0gJ1dJVE4nKXtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmFkZHJlc3MpO1xuICAgICAgfVxuICAgIH1cbiAgfSlcbn1cbiAgZWRpdEl0ZW0ocGFydGljaXBhbnQpIHtcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICAgIGxldCBpbmRleCA9IHRoaXMucGFydGljaXBhbnRMaXN0LmluZGV4T2YocGFydGljaXBhbnQpO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPWluZGV4O1xuICAgIHRoaXMucGFydGljaXBhbnRMaXN0W2luZGV4XSA9IHRoaXMudXNlckZvcm0ucGF0Y2hWYWx1ZShwYXJ0aWNpcGFudCk7XG4gIH1cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy51c2VyRm9ybS5yZXNldCgpO1xuXG4gIH1cbiAgcmVtb3ZlSXRlbShwYXJ0aWNpcGFudCkge1xuICAgIGxldCBpbmRleCA9IHRoaXMucGFydGljaXBhbnRMaXN0LmluZGV4T2YocGFydGljaXBhbnQpO1xuICAgIHRoaXMucGFydGljaXBhbnRMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5wdWJsaXNoUGFydGljaXBhbnQoKTtcbiAgICB2YXIgcmVtb3ZlZE9iamVjdCA6IHsgbmFtZT86IHN0cmluZzsgcm9sZT86IFJvbGU7IGFkZHJlc3M/OiBhbnkgfSA9IHBhcnRpY2lwYW50O1xuICAgIGlmKHJlbW92ZWRPYmplY3Qucm9sZS52YWx1ZT09ICdBVE5ZJykge1xuICAgICAgdGhpcy5yb2xlc1swXS5kaXNhYmxlZFJvbGUgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYocmVtb3ZlZE9iamVjdC5yb2xlLnZhbHVlPT0gJ1JQUlQnKSB7XG4gICAgICB0aGlzLnJvbGVzWzFdLmRpc2FibGVkUm9sZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBhZGRSb2xlKCkge1xuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZih0aGlzLnBhcnRpY2lwYW50QWRkcmVzcyl7XG4gICAgICB0aGlzLnBhcnRpY2lwYW50QWRkcmVzcy5zdWJtaXQoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnVzZXJGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLnVzZXJGb3JtLm1hcmtBc0RpcnR5KClcbiAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMudXNlckZvcm0pXG5cbiAgICB9IGVsc2Uge1xuICAgICAgaWYodGhpcy5pbmRleFRvRWRpdCE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5wYXJ0aWNpcGFudExpc3RbdGhpcy5pbmRleFRvRWRpdF09IHRoaXMudXNlckZvcm0udmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVzZXJGb3JtLnZhbGlkXG4gICAgICAgIHRoaXMucGFydGljaXBhbnRMaXN0LnB1c2godGhpcy51c2VyRm9ybS52YWx1ZSk7XG4gICAgICAgIC8vIGJhc2VkIG9uIHJlcXVpcmVtZW50LCBvbmx5IG9uZSBhdHRvcm5leSAmIHJlcHJlbnRhdGl2ZSBzaG91bGQgYmUgcGFydGljaXBhbnQgbGlzdCBhbmQgXG4gICAgICAgIC8vIGFueSBudW1iZXIgb2Ygd2l0bmVzcyBjYW4gaGF2ZSBpbiBwYXJ0aWNpcGFudCBsaXN0XG4gICAgICAgIGxldCBzYXZlZFJvbGU6IFJvbGUgPSB0aGlzLnVzZXJGb3JtLnZhbHVlWydyb2xlJ11cbiAgICAgICAgZm9yICh2YXIgcm9sZSBvZiB0aGlzLnJvbGVzKSB7XG4gICAgICAgICAgaWYgKHJvbGUudmFsdWUgPT0gc2F2ZWRSb2xlLnZhbHVlICYmIHNhdmVkUm9sZS52YWx1ZSAhPSAnV0lUTicpIHtcbiAgICAgICAgICAgIHJvbGUuZGlzYWJsZWRSb2xlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucHVibGlzaFBhcnRpY2lwYW50KClcbiAgICAgIHRoaXMudXNlckZvcm0ucmVzZXQoKTtcbiAgICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGlzaFBhcnRpY2lwYW50KCl7XG4gICAgdGhpcy52cy5wYXJ0aWNpcGFudHMubmV4dCh0aGlzLnBhcnRpY2lwYW50TGlzdC5sZW5ndGggPiAwID8gdGhpcy5wYXJ0aWNpcGFudExpc3QgOiBudWxsKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0IHJvbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHNbJ3JvbGUnXTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWyduYW1lJ107XG4gIH1cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXTtcbiAgfVxuXG4gIGdldCBwaG9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9sc1sncGhvbmUnXTtcbiAgfVxuXG5cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnVzZXJGb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5jbG9zZVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICBcbiAgIHRoaXMuaXNBcHBlYWxMZXZlbFNlY29uZCA9IHRoaXMuZHluYW1pY1BhcmFtWydoaWRBcHBlYWxEZWNpc2lvbiddO1xuICAgbGV0IHBhcmVudEFwcGVhbElkID0gdGhpcy5keW5hbWljUGFyYW1bJ3BhcmVudEFwcGVhbElkJ107XG4gICAvLyBMb2FkZXJzZXJ2aWNlIGlzIG5vdCBnZXR0aW5nIGNhbGxlZCBmb3IgYXBwZWFsIHBvcCB1cFxuICAvL2JlY2FzdWUgb2YgdGhpcyBpc3N1ZSwgV2UgbmVlZCB0byB1c2UgdGhpcyBhcHByb2FjaFxuICAgIGlmIChwYXJlbnRBcHBlYWxJZCkge1xuICAgICAgdGhpcy5hcHBlYWxTZXJ2aWNlLmZldGNoQXBwZWFsUGFydGljaXBhbnREZXRhaWxzKHBhcmVudEFwcGVhbElkLCB0aGlzLmlzQXBwZWFsTGV2ZWxTZWNvbmQpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICBsZXQgdGVtcDogQXBwZWFsUGFydGljaXBhbnRNb2RlbExpc3QgPSByZXM7XG4gICAgICAgICAgbGV0IHNpemU6IG51bWJlciA9IDA7XG4gICAgICAgICAgaWYgKHRlbXApIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFBhcnRpY2lwYW50TGlzdChzaXplLCB0ZW1wKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIFxuXHRcdFxuXG4gICAgaWYodGhpcy5pc0FwcGVhbExldmVsU2Vjb25kPT0nWScgfHwgdGhpcy51dGlsLmlzU3RhdGUoJ01FJykpIHtcbiAgICAgIHRoaXMucm9sZXMgPSBbXG4gICAgICAgIHsgbmFtZTogJ0F0dG9ybmV5JywgdmFsdWU6ICdBVE5ZJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgICB7IG5hbWU6ICdSZXByZXNlbnRhdGl2ZScsIHZhbHVlOiAnUlBSVCcsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgIF1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb2xlcyA9IFtcbiAgICAgICAgeyBuYW1lOiAnQXR0b3JuZXknLCB2YWx1ZTogJ0FUTlknLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICAgIHsgbmFtZTogJ1JlcHJlc2VudGF0aXZlJywgdmFsdWU6ICdSUFJUJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgICB7IG5hbWU6ICdXaXRuZXNzJywgdmFsdWU6ICdXSVROJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIGluaXRQYXJ0aWNpcGFudExpc3QobGVuOiBudW1iZXIsIHRlbXA6IEFwcGVhbFBhcnRpY2lwYW50TW9kZWxMaXN0KSB7XG4gICAgdGVtcC5hZGRQYXJ0aWNpcGFudENvbXAuZmlsdGVyKHBhcnQgPT4gKHBhcnQucm9sZS52YWx1ZSA9PSAnUlBSVCcgfHwgcGFydC5yb2xlLnZhbHVlID09ICdBVE5ZJykpLm1hcChwYXJ0ID0+IHtcbiAgICAgIHBhcnQucm9sZS5kaXNhYmxlZFJvbGUgPSBmYWxzZTtcbiAgICAgIHRoaXMucGFydGljaXBhbnRMaXN0LnB1c2gocGFydClcbiAgICB9KTtcbiAgfVxufVxuIiwiPHAtdGFibGUgI2R0IFtyb3dIb3Zlcl09XCJ0cnVlXCIgW3ZhbHVlXT1cInBhcnRpY2lwYW50TGlzdFwiID5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnMgPlxyXG4gICAgPHRyID5cclxuICAgICAgPHRoPiB7e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5wYXJ0aWNpcGFudFJvbGVcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgIDx0aD57e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5uYW1lXCJ8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICA8dGg+IHt7XCJhZGQucGFydGljaXBhbnQuaGVhZGVyLnBob25lXCJ8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICA8dGg+PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1wYXJ0aWNpcGFudCBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxyXG4gICAgPHRyID5cclxuXHJcbiAgICAgIDx0ZCA+PHNwYW4+e3twYXJ0aWNpcGFudC5yb2xlLm5hbWV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQ+PHNwYW4+e3twYXJ0aWNpcGFudC5uYW1lfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPjxzcGFuPnt7cGFydGljaXBhbnQucGhvbmV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQ+XHJcbiAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiZWRpdEl0ZW0ocGFydGljaXBhbnQpXCIgIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZUl0ZW0ocGFydGljaXBhbnQpXCIgZmlsbD1cIm91dGxpbmVcIiAgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0cj5cclxuICAgICAgPHRkPjxzcGFuIFtpbm5lckh0bWxdPVwiJ2FkZC5wYXJ0aWNpcGFudC5mb290ZXIuYWRkRWxlbWVudCd8dHJhbnNsYXRlXCI+PC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZD48L3RkPlxyXG4gICAgICA8dGQ+PC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwiY29sLW9mZnNldC00IGFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkUm9sZSgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBzaGFwZT1cInNxdWFyZVwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuPGRpdiBjbGFzcz1cImFsaWduXCI+XHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAqbmdJZj1cInZpc2libGVcIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiICNwYXJ0aWNpcGFudEZvcm09XCJuZ0Zvcm1cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjE2cHhcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmllbGQtZ3JpZFwiPlxyXG4gICAgPGJyPlxyXG4gICAgPGgxIGNsYXNzPVwiaGVhZGluZ1wiPnt7XCJhZGQucGFydGljaXBhbnQuaGVhZGVyLmhlYWRpbmdcInx0cmFuc2xhdGV9fTwvaDE+XHJcbiAgICA8YnI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkLWdyaWRcIj48bGFiZWw+IHt7aXNBcHBlYWxMZXZlbFNlY29uZCA9PSdOJyA/IChcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIucXVlc3Rpb25cInx0cmFuc2xhdGUpIDogKFwiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5hcHBlYWxMZXZlbDJRdWVzdGlvblwifHRyYW5zbGF0ZSl9fTwvbGFiZWw+PC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4O1wiPlxyXG4gICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInJvbGVzXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwicm9sZVwiIHJlcXVpcmVkIG9wdGlvbkRpc2FibGVkPVwiZGlzYWJsZWRSb2xlXCJcclxuICAgICAgW2NsYXNzLmhhcy1lcnJvcl09XCJyb2xlLmRpcnR5ICYmIHJvbGUuaW52YWxpZFwiPlxyXG4gICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwicm9sZS5kaXJ0eSAmJiByb2xlLmludmFsaWRcIj57e1wiaW5kdWN0aW9uLnJlcXVpcmVkXCJ8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtZ3JpZCBncmlkXCIgKm5nSWY9XCJyb2xlLnZhbHVlPy52YWx1ZSA9PSdBVE5ZJyB8fCByb2xlLnZhbHVlPy52YWx1ZT09J1JQUlQnXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjEwcHhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtMlwiPjxsYWJlbCBzdHlsZT1cIm1hcmdpbjo0cHhcIj57e1wiYWRkLnBhcnRpY2lwYW50Lmxhd3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cInt7cm9sZS52YWx1ZT8udmFsdWUgPT0nQVROWScgPyAnQXR0b3JuZXkgTmFtZScgOiAnUmVwcmVzZW50YXRhdGl2ZSBOYW1lJ319XCJcclxuICAgICAgICBjbGFzcz1cInRleHQtYmFzZSB0ZXh0LWNvbG9yIHN1cmZhY2Utb3ZlcmxheSBwLTIgYm9yZGVyLTEgYm9yZGVyLXNvbGlkIHN1cmZhY2UtYm9yZGVyIGJvcmRlci1yb3VuZCBhcHBlYXJhbmNlLW5vbmUgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1wcmltYXJ5IHctZnVsbFwiLz5cclxuICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J25hbWUnIFtmb3JtXT1cInVzZXJGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nfVwiPlxyXG4gICAgICA8L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOVwiPjxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJibG9jayBtYi0yXCI+e3tcImFkZC5wYXJ0aWNpcGFudC5sYXd5ZXIucGhvbmVcInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OTktOTk5LTk5OTlcIiBwbGFjZWhvbGRlcj1cIjk5OS05OTktOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgdW5tYXNrPVwidHJ1ZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCBibG9jayBtYi0yJ1wiIFtmaWVsZF09J3Bob25lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLid9XCI+XHJcbiAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnIgLz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTkgZmllbGQtZ3JpZFwiPlxyXG4gICAgICA8YXBwLWFkZHJlc3MgI3BhcnRpY2lwYW50QWRkcmVzcyBbZW5hYmxlQWRkcmVzc1ZhbGlkYXRpb25dPVwiaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWRcIiBbaW5wdXRJZF09XCInYWRkcmVzcydcIiBbc3RhbmRhbG9uZUFkZHJlc3NGb3JtXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCIgW3BhcmVudEZvcm1Db21wb25lbnRdPVwiJ2FkZC1wYXJ0aWNpcGFudCdcIiBbcXVlc3Rpb25haXJlRm9ybV09XCJ1c2VyRm9ybVwiPjwvYXBwLWFkZHJlc3M+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNRScpXCIgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOSBmaWVsZC1ncmlkXCI+PGxhYmVsIHN0eWxlPVwicGFkZGluZzogMTBweCAwIDAgMnB4XCI+e3tcImFkZC5wYXJ0aWNpcGFudC5mb290ZXIuZGVjbGFyYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOVwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0zXCI+Q2xlYXI8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiICpuZ0lmPVwicm9sZS52YWx1ZT8udmFsdWUgPT0nV0lUTidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtMlwiPjxsYWJlbCBzdHlsZT1cIm1hcmdpbjoxMHB4IDBweFwiPnt7XCJhZGQucGFydGljaXBhbnQub2JzZXJ2ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJXaXRuZXNzIE5hbWVcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtY29sb3Igc3VyZmFjZS1vdmVybGF5IHAtMiBib3JkZXItMSBib3JkZXItc29saWQgc3VyZmFjZS1ib3JkZXIgYm9yZGVyLXJvdW5kIGFwcGVhcmFuY2Utbm9uZSBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXByaW1hcnkgdy1mdWxsXCI+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIiBzdHlsZT1cInBhZGRpbmctdG9wOjEycHhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJibG9jayBtYi0yXCI+e3tcImFkZC5wYXJ0aWNpcGFudC5vYnNlcnZlci5waG9uZVwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkIGJsb2NrIG1iLTInXCIgW2ZpZWxkXT0ncGhvbmUnIFtmb3JtXT1cInVzZXJGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIwcHg7XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgY2xhc3M9XCJjb2wtb2Zmc2V0LTNcIj5DbGVhcjwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbjwvZGl2PiJdfQ==
|