@reusa/ngx-reusa-app-lib 0.0.1365 → 0.0.1367

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.
@@ -33,7 +33,7 @@ function WeeklyCertEmployerComponentQe_ion_row_3_div_73_Template(rf, ctx) { if (
33
33
  const ctx_r5 = i0.ɵɵnextContext(2);
34
34
  const _r0 = i0.ɵɵreference(1);
35
35
  i0.ɵɵadvance(2);
36
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "weeklycert.employer.return.to.work.date"));
36
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "weeklies.weeklycert.employer.return.to.work.date"));
37
37
  i0.ɵɵadvance(2);
38
38
  i0.ɵɵproperty("options", ctx_r5.yesNoOption)("formControl", ctx_r5.haveReturnToWorkDate);
39
39
  i0.ɵɵadvance(1);
@@ -59,7 +59,7 @@ function WeeklyCertEmployerComponentQe_ion_row_3_div_74_Template(rf, ctx) { if (
59
59
  const ctx_r6 = i0.ɵɵnextContext(2);
60
60
  const _r0 = i0.ɵɵreference(1);
61
61
  i0.ɵɵadvance(2);
62
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 11, "weeklycert.employer.return.to.work.date.when"));
62
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 11, "weeklies.weeklycert.employer.return.to.work.date.when"));
63
63
  i0.ɵɵadvance(3);
64
64
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r6.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
65
65
  i0.ɵɵadvance(1);
@@ -83,7 +83,7 @@ function WeeklyCertEmployerComponentQe_ion_row_3_div_75_Template(rf, ctx) { if (
83
83
  const ctx_r7 = i0.ɵɵnextContext(2);
84
84
  const _r0 = i0.ɵɵreference(1);
85
85
  i0.ɵɵadvance(2);
86
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "weeklycert.employer.definite.return.date"));
86
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "weeklies.weeklycert.employer.definite.return.date"));
87
87
  i0.ɵɵadvance(2);
88
88
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r7.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
89
89
  i0.ɵɵadvance(1);
@@ -256,7 +256,7 @@ function WeeklyCertEmployerComponentQe_ion_row_3_Template(rf, ctx) { if (rf & 1)
256
256
  i0.ɵɵclassMap("app-grid");
257
257
  i0.ɵɵproperty("field", ctx_r1.wsPhoneNumber)("form", _r0)("errDef", i0.ɵɵpureFunction1(126, _c1, ctx_r1.required));
258
258
  i0.ɵɵadvance(3);
259
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(54, 101, "weeklycert.employer.total.gross.earnings"));
259
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(54, 101, "weeklies.weeklycert.employer.total.gross.earnings"));
260
260
  i0.ɵɵadvance(2);
261
261
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(56, 103, i0.ɵɵpipeBind1(57, 105, "weeklies.v2.employment.rtw.info.popup.1000")));
262
262
  i0.ɵɵadvance(3);
@@ -265,14 +265,14 @@ function WeeklyCertEmployerComponentQe_ion_row_3_Template(rf, ctx) { if (rf & 1)
265
265
  i0.ɵɵclassMap("app-grid");
266
266
  i0.ɵɵproperty("field", ctx_r1.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction1(128, _c4, ctx_r1.required));
267
267
  i0.ɵɵadvance(3);
268
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(63, 107, "weeklycert.employer.total.hours.worked"));
268
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(63, 107, "weeklies.weeklycert.employer.total.hours.worked"));
269
269
  i0.ɵɵadvance(2);
270
270
  i0.ɵɵproperty("formControl", ctx_r1.wcEmpHoursWorked);
271
271
  i0.ɵɵadvance(1);
272
272
  i0.ɵɵclassMap("app-grid");
273
273
  i0.ɵɵproperty("field", ctx_r1.wcEmpHoursWorked)("form", _r0)("errDef", i0.ɵɵpureFunction1(130, _c5, ctx_r1.required));
274
274
  i0.ɵɵadvance(3);
275
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(69, 109, "weeklycert.employer.status"));
275
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(69, 109, "weeklies.weeklycert.employer.status"));
276
276
  i0.ɵɵadvance(2);
277
277
  i0.ɵɵproperty("options", ctx_r1.employmentStatusOptionsAll)("formControl", ctx_r1.wcEmpStatus)("autoDisplayFirst", false);
278
278
  i0.ɵɵadvance(2);
@@ -302,7 +302,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template(rf, ctx) { if (
302
302
  const ctx_r16 = i0.ɵɵnextContext(2);
303
303
  const _r0 = i0.ɵɵreference(1);
304
304
  i0.ɵɵadvance(2);
305
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "weeklycert.employer.return.to.work.date"));
305
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "weeklies.weeklycert.employer.return.to.work.date"));
306
306
  i0.ɵɵadvance(2);
307
307
  i0.ɵɵproperty("options", ctx_r16.yesNoOption)("formControl", ctx_r16.haveReturnToWorkDate);
308
308
  i0.ɵɵadvance(1);
@@ -328,7 +328,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template(rf, ctx) { if (
328
328
  const ctx_r17 = i0.ɵɵnextContext(2);
329
329
  const _r0 = i0.ɵɵreference(1);
330
330
  i0.ɵɵadvance(2);
331
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 11, "weeklycert.employer.return.to.work.date.when"));
331
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 11, "weeklies.weeklycert.employer.return.to.work.date.when"));
332
332
  i0.ɵɵadvance(3);
333
333
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r17.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
334
334
  i0.ɵɵadvance(1);
@@ -352,7 +352,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_div_24_Template(rf, ctx) { if (
352
352
  const ctx_r18 = i0.ɵɵnextContext(2);
353
353
  const _r0 = i0.ɵɵreference(1);
354
354
  i0.ɵɵadvance(2);
355
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "weeklycert.employer.definite.return.date"));
355
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "weeklies.weeklycert.employer.definite.return.date"));
356
356
  i0.ɵɵadvance(2);
357
357
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r18.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
358
358
  i0.ɵɵadvance(1);
@@ -452,7 +452,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1)
452
452
  i0.ɵɵadvance(1);
453
453
  i0.ɵɵproperty("formControl", ctx_r2.isPartTimeEmployer);
454
454
  i0.ɵɵadvance(3);
455
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 50, "weeklycert.employer.status"));
455
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 50, "weeklies.weeklycert.employer.status"));
456
456
  i0.ɵɵadvance(2);
457
457
  i0.ɵɵproperty("options", ctx_r2.employmentStatusOptionsAll)("formControl", ctx_r2.wcEmpStatus)("autoDisplayFirst", false);
458
458
  i0.ɵɵadvance(2);
@@ -469,14 +469,14 @@ function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1)
469
469
  i0.ɵɵadvance(1);
470
470
  i0.ɵɵproperty("ngIf", ctx_r2.wcEmpStatus.value == "VOLQ");
471
471
  i0.ɵɵadvance(3);
472
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 52, "weeklycert.employer.last.day.worked"));
472
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 52, "weeklies.weeklycert.employer.last.day.worked"));
473
473
  i0.ɵɵadvance(2);
474
474
  i0.ɵɵproperty("iconAriaLabel", "Last day worked")("showIcon", true)("formControl", ctx_r2.lastDayWorked)("minDate", ctx_r2.sunDate)("maxDate", ctx_r2.satDate)("defaultDate", ctx_r2.sunDate);
475
475
  i0.ɵɵadvance(1);
476
476
  i0.ɵɵclassMap("app-grid");
477
477
  i0.ɵɵproperty("field", ctx_r2.lastDayWorked)("form", _r0)("errDef", i0.ɵɵpureFunction2(64, _c3, ctx_r2.required, "Date should be between " + ctx_r2.dynamicParam.sunday_date + " and " + ctx_r2.dynamicParam.saturday_date + "."));
478
478
  i0.ɵɵadvance(3);
479
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(36, 54, "weeklycert.employer.total.gross.earnings"));
479
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(36, 54, "weeklies.weeklycert.employer.total.gross.earnings"));
480
480
  i0.ɵɵadvance(2);
481
481
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(38, 56, i0.ɵɵpipeBind1(39, 58, "weeklies.v2.employment.rtw.info.popup.1000")));
482
482
  i0.ɵɵadvance(3);
@@ -485,7 +485,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1)
485
485
  i0.ɵɵclassMap("app-grid");
486
486
  i0.ɵɵproperty("field", ctx_r2.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction1(67, _c4, ctx_r2.required));
487
487
  i0.ɵɵadvance(3);
488
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 60, "weeklycert.employer.total.hours.worked"));
488
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 60, "weeklies.weeklycert.employer.total.hours.worked"));
489
489
  i0.ɵɵadvance(2);
490
490
  i0.ɵɵproperty("formControl", ctx_r2.wcEmpHoursWorked);
491
491
  i0.ɵɵadvance(1);
@@ -755,7 +755,7 @@ export class WeeklyCertEmployerComponentQe {
755
755
  }
756
756
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeeklyCertEmployerComponentQe, [{
757
757
  type: Component,
758
- args: [{ selector: 'app-weekly-cert-employer-qe', template: "\r\n <form [formGroup]=\"empForm\" #empFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row *ngIf = \"!empToEdit?.isPartTimeEmployer\">\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n <div class=\"field\">\r\n <label for=\"wcEmpName\">{{\"weeklies.weeklycert.employer.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"wcEmpName\" (onFound)=\"setEmployer($event)\" [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpName' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"wcEmpAddressLine1\">{{\"weeklies.weeklycert.employer.address\"|translate}}</label>\r\n <input id=\"wcEmpAddressLine1\" type=\"input\" pInputText [formControl]=\"wcEmpAddressLine1\" />\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpAddressLine1' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"wcEmpCity\">{{\"weeklies.weeklycert.employer.city\"|translate}}</label>\r\n <input id=\"wcEmpCity\" type=\"input\" pInputText [formControl]=\"wcEmpCity\" />\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpCity' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"wcEmpState\">{{\"weeklies.weeklycert.employer.state\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpState\" [options]=\"statesCombo\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpState\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpState' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"wsZipCode\">{{\"weeklies.weeklycert.employer.zipcode\"|translate}}</label>\r\n <input id=\"wsZipCode\" type=\"input\" pInputText [formControl]=\"wsZipCode\" minlength=\"5\" maxlength=\"9\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='wsZipCode' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n invalidLength: zipLength,\r\n invalidNumber: zipOnlyNumbers\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <div class=\"field\">\r\n <label for=\"lastDayWorked\">{{\"weeklies.weeklycert.employer.last.day.worked\"|translate}}</label>\r\n <p-calendar [iconAriaLabel]=\"'Last day worked'\" [showIcon]=\"true\" inputId=\"lastDayWorked\" appendTo=\"body\" [formControl]=\"lastDayWorked\" [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='lastDayWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n dateNotBetween: 'Date should be between ' + dynamicParam.sunday_date + ' and ' + dynamicParam.saturday_date + '.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n \r\n <div class=\"field\">\r\n <label for=\"wsPhoneNumber\">{{\"weeklies.weeklycert.employer.contact.phone\"|translate}}</label>\r\n <p-inputMask inputId=\"wsPhoneNumber\" [formControl]=\"wsPhoneNumber\" mask=\"(999) 999-9999\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='wsPhoneNumber' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wsEmpAmtEarned\">{{\"weeklycert.employer.total.gross.earnings\"|translate}}</label>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n <p-inputNumber inputId=\"wsEmpAmtEarned\" mode=\"currency\" currency=\"USD\" locale=\"en-US\" [formControl]=\"wsEmpAmtEarned\" maxlength=\"10\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wsEmpAmtEarned' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report gross earnings.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">{{\"weeklycert.employer.total.hours.worked\"|translate}}</label>\r\n <p-inputNumber inputId=\"wcEmpHoursWorked\" [formControl]=\"wcEmpHoursWorked\" maxlength=\"10\" useGrouping=\"false\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpHoursWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report hours worked.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpStatus\">{{\"weeklycert.employer.status\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpStatus\" [options]=\"employmentStatusOptionsAll\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpStatus\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpStatus1\" ></app-dropdown><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpStatus' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO'\">\r\n <label for=\"haveReturnToWorkDate\">{{\"weeklycert.employer.return.to.work.date\"|translate}}</label>\r\n <p-selectButton [options]=\"yesNoOption\" [formControl]=\"haveReturnToWorkDate\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='haveReturnToWorkDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO' && haveReturnToWorkDate.value == 'Y'\">\r\n <label for=\"wcEmpLowRtwDate\">{{\"weeklycert.employer.return.to.work.date.when\"|translate}}</label>\r\n <div style=\"display: flex;\">\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpLowRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpLowRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"'When?'\"></p-calendar>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.2155' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpLowRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'RTWF'\">\r\n <label for=\"wcEmpRtwDate\">{{\"weeklycert.employer.definite.return.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" optionValue=\"value\" [iconAriaLabel]=\"'Return to work date'\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'DCFI'\">\r\n <label for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label> \r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"discharged\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"discharged1\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='discharged' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'VOLQ'\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label> \r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"voluntaryQuit\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"voluntaryQuit1\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='voluntaryQuit' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <input type=\"hidden\" [formControl]=\"hidEmpId\"/>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf = \"empToEdit?.isPartTimeEmployer\">\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n <div class=\"field\">\r\n <b>{{wcEmpName.value}}</b>\r\n </div>\r\n <section hidden>\r\n <input type=\"hidden\" [formControl]=\"wcEmpName\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpAddressLine1\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpCity\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpState\"/>\r\n <input type=\"hidden\" [formControl]=\"wsZipCode\"/>\r\n <input type=\"hidden\" [formControl]=\"wsPhoneNumber\"/>\r\n <input type=\"hidden\" [formControl]=\"hidEmpId\"/>\r\n <input type=\"hidden\" [formControl]=\"isPartTimeEmployer\"/>\r\n </section>\r\n <div class=\"field\">\r\n <label for=\"wcEmpStatus\">{{\"weeklycert.employer.status\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpStatus\" [options]=\"employmentStatusOptionsAll\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpStatus\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpStatus2\"></app-dropdown><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpStatus' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO'\">\r\n <label for=\"haveReturnToWorkDate\">{{\"weeklycert.employer.return.to.work.date\"|translate}}</label>\r\n <p-selectButton [options]=\"yesNoOption\" [formControl]=\"haveReturnToWorkDate\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='haveReturnToWorkDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO' && haveReturnToWorkDate.value == 'Y'\">\r\n <label for=\"wcEmpLowRtwDate\">{{\"weeklycert.employer.return.to.work.date.when\"|translate}}</label>\r\n <div style=\"display: flex;\">\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpLowRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpLowRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"'When?'\"></p-calendar>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.2050' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpLowRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'RTWF'\">\r\n <label for=\"wcEmpRtwDate\">{{\"weeklycert.employer.definite.return.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" optionValue=\"value\" [iconAriaLabel]=\"'Return to work date'\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'DCFI'\">\r\n <label for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label> \r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"discharged\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"discharged2\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='discharged' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'VOLQ'\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label> \r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"voluntaryQuit\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"voluntaryQuit2\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='voluntaryQuit' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"lastDayWorked\">{{\"weeklycert.employer.last.day.worked\"|translate}}</label>\r\n <p-calendar [iconAriaLabel]=\"'Last day worked'\" [showIcon]=\"true\" inputId=\"lastDayWorked\" appendTo=\"body\" [formControl]=\"lastDayWorked\" [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='lastDayWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n dateNotBetween: 'Date should be between ' + dynamicParam.sunday_date + ' and ' + dynamicParam.saturday_date + '.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"wsEmpAmtEarned\">{{\"weeklycert.employer.total.gross.earnings\"|translate}}</label>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n <p-inputNumber inputId=\"wsEmpAmtEarned\" mode=\"currency\" currency=\"USD\" locale=\"en-US\" [formControl]=\"wsEmpAmtEarned\" maxlength=\"10\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wsEmpAmtEarned' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report gross earnings.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">{{\"weeklycert.employer.total.hours.worked\"|translate}}</label>\r\n <p-inputNumber inputId=\"wcEmpHoursWorked\" [formControl]=\"wcEmpHoursWorked\" maxlength=\"10\" useGrouping=\"false\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpHoursWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report hours worked.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row style=\"margin: 0 10px auto;\">\r\n <ion-col>\r\n <div class=\"field\" *ngIf=\"empForm.invalid && empForm.errors?.earningsRequired\">\r\n <app-error \r\n [form]=\"empFormDirective\"\r\n [field]=\"empForm\"\r\n [errDef]=\"{ \r\n earningsRequired: 'Please report gross earnings and hours worked for the week ending ' + (satDate | date:'MM/dd/yyyy') + '.' \r\n }\">\r\n </app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row style=\"margin: 0 10px auto;\">\r\n <ion-col>\r\n <div class=\"field\" *ngIf=\"empForm.invalid && empForm.errors?.earningsRequired\">\r\n <app-error \r\n [form]=\"empFormDirective\"\r\n [field]=\"empForm\"\r\n [errDef]=\"{ \r\n earningsRequired: 'Please report gross earnings and hours worked for the week ending ' + (satDate | date:'MM/dd/yyyy') + '.' \r\n }\">\r\n </app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{\"button.cancel\"|translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{\"button.add\"|translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>", styles: [":host ::ng-deep .p-fluid .p-buttonset{display:inline-flex!important}\n"] }]
758
+ args: [{ selector: 'app-weekly-cert-employer-qe', template: "\r\n <form [formGroup]=\"empForm\" #empFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row *ngIf = \"!empToEdit?.isPartTimeEmployer\">\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n <div class=\"field\">\r\n <label for=\"wcEmpName\">{{\"weeklies.weeklycert.employer.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"wcEmpName\" (onFound)=\"setEmployer($event)\" [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpName' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"wcEmpAddressLine1\">{{\"weeklies.weeklycert.employer.address\"|translate}}</label>\r\n <input id=\"wcEmpAddressLine1\" type=\"input\" pInputText [formControl]=\"wcEmpAddressLine1\" />\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpAddressLine1' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"wcEmpCity\">{{\"weeklies.weeklycert.employer.city\"|translate}}</label>\r\n <input id=\"wcEmpCity\" type=\"input\" pInputText [formControl]=\"wcEmpCity\" />\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpCity' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"wcEmpState\">{{\"weeklies.weeklycert.employer.state\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpState\" [options]=\"statesCombo\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpState\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpState' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"wsZipCode\">{{\"weeklies.weeklycert.employer.zipcode\"|translate}}</label>\r\n <input id=\"wsZipCode\" type=\"input\" pInputText [formControl]=\"wsZipCode\" minlength=\"5\" maxlength=\"9\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='wsZipCode' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n invalidLength: zipLength,\r\n invalidNumber: zipOnlyNumbers\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <div class=\"field\">\r\n <label for=\"lastDayWorked\">{{\"weeklies.weeklycert.employer.last.day.worked\"|translate}}</label>\r\n <p-calendar [iconAriaLabel]=\"'Last day worked'\" [showIcon]=\"true\" inputId=\"lastDayWorked\" appendTo=\"body\" [formControl]=\"lastDayWorked\" [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='lastDayWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n dateNotBetween: 'Date should be between ' + dynamicParam.sunday_date + ' and ' + dynamicParam.saturday_date + '.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n \r\n <div class=\"field\">\r\n <label for=\"wsPhoneNumber\">{{\"weeklies.weeklycert.employer.contact.phone\"|translate}}</label>\r\n <p-inputMask inputId=\"wsPhoneNumber\" [formControl]=\"wsPhoneNumber\" mask=\"(999) 999-9999\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='wsPhoneNumber' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wsEmpAmtEarned\">{{\"weeklies.weeklycert.employer.total.gross.earnings\"|translate}}</label>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n <p-inputNumber inputId=\"wsEmpAmtEarned\" mode=\"currency\" currency=\"USD\" locale=\"en-US\" [formControl]=\"wsEmpAmtEarned\" maxlength=\"10\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wsEmpAmtEarned' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report gross earnings.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">{{\"weeklies.weeklycert.employer.total.hours.worked\"|translate}}</label>\r\n <p-inputNumber inputId=\"wcEmpHoursWorked\" [formControl]=\"wcEmpHoursWorked\" maxlength=\"10\" useGrouping=\"false\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpHoursWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report hours worked.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpStatus\">{{\"weeklies.weeklycert.employer.status\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpStatus\" [options]=\"employmentStatusOptionsAll\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpStatus\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpStatus1\" ></app-dropdown><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpStatus' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO'\">\r\n <label for=\"haveReturnToWorkDate\">{{\"weeklies.weeklycert.employer.return.to.work.date\"|translate}}</label>\r\n <p-selectButton [options]=\"yesNoOption\" [formControl]=\"haveReturnToWorkDate\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='haveReturnToWorkDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO' && haveReturnToWorkDate.value == 'Y'\">\r\n <label for=\"wcEmpLowRtwDate\">{{\"weeklies.weeklycert.employer.return.to.work.date.when\"|translate}}</label>\r\n <div style=\"display: flex;\">\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpLowRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpLowRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"'When?'\"></p-calendar>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.2155' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpLowRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'RTWF'\">\r\n <label for=\"wcEmpRtwDate\">{{\"weeklies.weeklycert.employer.definite.return.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" optionValue=\"value\" [iconAriaLabel]=\"'Return to work date'\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'DCFI'\">\r\n <label for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label> \r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"discharged\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"discharged1\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='discharged' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'VOLQ'\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label> \r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"voluntaryQuit\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"voluntaryQuit1\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='voluntaryQuit' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <input type=\"hidden\" [formControl]=\"hidEmpId\"/>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf = \"empToEdit?.isPartTimeEmployer\">\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid formgrid\">\r\n <div class=\"field\">\r\n <b>{{wcEmpName.value}}</b>\r\n </div>\r\n <section hidden>\r\n <input type=\"hidden\" [formControl]=\"wcEmpName\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpAddressLine1\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpCity\"/>\r\n <input type=\"hidden\" [formControl]=\"wcEmpState\"/>\r\n <input type=\"hidden\" [formControl]=\"wsZipCode\"/>\r\n <input type=\"hidden\" [formControl]=\"wsPhoneNumber\"/>\r\n <input type=\"hidden\" [formControl]=\"hidEmpId\"/>\r\n <input type=\"hidden\" [formControl]=\"isPartTimeEmployer\"/>\r\n </section>\r\n <div class=\"field\">\r\n <label for=\"wcEmpStatus\">{{\"weeklies.weeklycert.employer.status\"|translate}}</label>\r\n <app-dropdown inputId=\"wcEmpStatus\" [options]=\"employmentStatusOptionsAll\" optionLabel=\"text\" optionValue=\"value\"\r\n appendTo=\"body\" [formControl]=\"wcEmpStatus\" [autoDisplayFirst]=\"false\" inputId=\"wcEmpStatus2\"></app-dropdown><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpStatus' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO'\">\r\n <label for=\"haveReturnToWorkDate\">{{\"weeklies.weeklycert.employer.return.to.work.date\"|translate}}</label>\r\n <p-selectButton [options]=\"yesNoOption\" [formControl]=\"haveReturnToWorkDate\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='haveReturnToWorkDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'LWLO' && haveReturnToWorkDate.value == 'Y'\">\r\n <label for=\"wcEmpLowRtwDate\">{{\"weeklies.weeklycert.employer.return.to.work.date.when\"|translate}}</label>\r\n <div style=\"display: flex;\">\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpLowRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpLowRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"'When?'\"></p-calendar>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.2050' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpLowRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'RTWF'\">\r\n <label for=\"wcEmpRtwDate\">{{\"weeklies.weeklycert.employer.definite.return.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"wcEmpRtwDate\" appendTo=\"body\" [formControl]=\"wcEmpRtwDate\"\r\n placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\" optionValue=\"value\" [iconAriaLabel]=\"'Return to work date'\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpRtwDate' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'DCFI'\">\r\n <label for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label> \r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"discharged\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"discharged2\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='discharged' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\" *ngIf=\"wcEmpStatus.value == 'VOLQ'\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label> \r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"voluntaryQuit\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"value\" inputId=\"voluntaryQuit2\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='voluntaryQuit' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"lastDayWorked\">{{\"weeklies.weeklycert.employer.last.day.worked\"|translate}}</label>\r\n <p-calendar [iconAriaLabel]=\"'Last day worked'\" [showIcon]=\"true\" inputId=\"lastDayWorked\" appendTo=\"body\" [formControl]=\"lastDayWorked\" [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='lastDayWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n dateNotBetween: 'Date should be between ' + dynamicParam.sunday_date + ' and ' + dynamicParam.saturday_date + '.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"wsEmpAmtEarned\">{{\"weeklies.weeklycert.employer.total.gross.earnings\"|translate}}</label>\r\n <app-overlay-info [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\" style=\"padding-left: 8px; padding-top:3px\"></app-overlay-info>\r\n <p-inputNumber inputId=\"wsEmpAmtEarned\" mode=\"currency\" currency=\"USD\" locale=\"en-US\" [formControl]=\"wsEmpAmtEarned\" maxlength=\"10\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wsEmpAmtEarned' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report gross earnings.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">{{\"weeklies.weeklycert.employer.total.hours.worked\"|translate}}</label>\r\n <p-inputNumber inputId=\"wcEmpHoursWorked\" [formControl]=\"wcEmpHoursWorked\" maxlength=\"10\" useGrouping=\"false\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='wcEmpHoursWorked' [form]=\"empFormDirective\" [errDef]=\"{ \r\n required: required,\r\n earningsRequired: 'Please report hours worked.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row style=\"margin: 0 10px auto;\">\r\n <ion-col>\r\n <div class=\"field\" *ngIf=\"empForm.invalid && empForm.errors?.earningsRequired\">\r\n <app-error \r\n [form]=\"empFormDirective\"\r\n [field]=\"empForm\"\r\n [errDef]=\"{ \r\n earningsRequired: 'Please report gross earnings and hours worked for the week ending ' + (satDate | date:'MM/dd/yyyy') + '.' \r\n }\">\r\n </app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row style=\"margin: 0 10px auto;\">\r\n <ion-col>\r\n <div class=\"field\" *ngIf=\"empForm.invalid && empForm.errors?.earningsRequired\">\r\n <app-error \r\n [form]=\"empFormDirective\"\r\n [field]=\"empForm\"\r\n [errDef]=\"{ \r\n earningsRequired: 'Please report gross earnings and hours worked for the week ending ' + (satDate | date:'MM/dd/yyyy') + '.' \r\n }\">\r\n </app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{\"button.cancel\"|translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{\"button.add\"|translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>", styles: [":host ::ng-deep .p-fluid .p-buttonset{display:inline-flex!important}\n"] }]
759
759
  }], () => [{ type: i1.UtilService }, { type: i2.UntypedFormBuilder }, { type: i3.ClaimService }, { type: i4.TranslateService }], { empFormDirective: [{
760
760
  type: ViewChild,
761
761
  args: ['empFormDirective', { static: false }]
@@ -769,4 +769,4 @@ export class WeeklyCertEmployerComponentQe {
769
769
  type: Input
770
770
  }] }); })();
771
771
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeeklyCertEmployerComponentQe, { className: "WeeklyCertEmployerComponentQe", filePath: "lib\\components\\weekly-cert-employer\\weekly-cert-employer.component.ts", lineNumber: 16 }); })();
772
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS1jZXJ0LWVtcGxveWVyL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktY2VydC1lbXBsb3llci93ZWVrbHktY2VydC1lbXBsb3llci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM4RnBELCtCQUF1RCxnQkFBQTtJQUNuQixZQUF1RDs7SUFBQSxpQkFBUTtJQUNqRyxxQ0FDcUMsb0JBQUE7SUFJdkMsaUJBQU07Ozs7SUFOOEIsZUFBdUQ7SUFBdkQscUZBQXVEO0lBQ3pFLGVBQXVCO0lBQXZCLDRDQUF1Qiw0Q0FBQTtJQUU1QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBQyxtREFBOEIsYUFBQSx3REFBQTs7OztJQUloRSwrQkFBNEYsZ0JBQUE7SUFDN0QsWUFBNEQ7O0lBQUEsaUJBQVE7SUFDakcsK0JBQTRCLHFCQUFBO0lBRXFCLHNNQUFXLGVBQUEseUJBQWlCLENB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WUFBQSxpQkFBYTtZQUNsSCxzQ0FBd0Q7WUFBOUIsK0dBQVMsU0FBSyxJQUFDO1lBQWUsYUFBMEI7O1lBQUEsaUJBQWEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7WUF6UmpHLHVDQUFxQjtZQUViLGVBQXNDO1lBQXRDLHlGQUFzQztZQW9KdEMsZUFBcUM7WUFBckMsc0ZBQXFDO1lBd0d2QixlQUF5RDtZQUF6RCx1SEFBeUQ7WUFhekQsZUFBeUQ7WUFBekQsdUhBQXlEO1lBYUwsZUFBNkI7WUFBN0IsNERBQTZCO1lBQzdDLGVBQTBCO1lBQTFCLHlEQUEwQjs7O2lGRDNRL0UsNkJBQTZCO2NBTHpDLFNBQVM7MkJBQ0UsNkJBQTZCO3VJQU9oQyxnQkFBZ0I7a0JBRHRCLFNBQVM7bUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxNQUFNLEVBQUcsS0FBSyxFQUFDO1lBSS9DLE9BQU87a0JBRE4sTUFBTTtZQUlQLE9BQU87a0JBRE4sTUFBTTtZQUlBLFNBQVM7a0JBRGYsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7O2tGQWRLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVySW5mb01vZGVsLCBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLXFlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWVrbHlDZXJ0RW1wbG95ZXJDb21wb25lbnRRZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtcEZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBcclxuICBwdWJsaWMgZW1wRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1wVG9FZGl0ID0gbmV3IEVtcGxveWVySW5mb01vZGVsKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xyXG5cclxuICBwdWJsaWMgeWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcblxyXG4gIHB1YmxpYyBlbXBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgcHVibGljIHNhdERhdGUgOiBEYXRlO1xyXG4gIHB1YmxpYyBzdW5EYXRlIDogRGF0ZTtcclxuXHJcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHVibGljIGZvcm1CdWlsZGVyIDogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgY3MgOiBDbGFpbVNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpKTsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMueWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk9fRVM7XHJcbiAgICAgIHRoaXMuc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVNfRVM7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMueWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcbiAgICAgIHRoaXMuc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNhdERhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGVGcm9tU3RyaW5nKHRoaXMuZHluYW1pY1BhcmFtLnNhdHVyZGF5X2RhdGUpO1xyXG4gICAgdGhpcy5zdW5EYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlRnJvbVN0cmluZyh0aGlzLmR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSk7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUVtcGxveWVySW5mb3JGb3JtKCk7XHJcbiAgfVxyXG4gIFxyXG4gIGxvYWRNYXN0ZXJEYXRhKCkge1xyXG4gICAgdGhpcy5jcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuY3MuZ2V0UmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jcy5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY3MuZ2V0UXVpdFJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkKCl7XHJcbiAgICAvLyBNYXJrIGFsbCBjb250cm9scyBhcyB0b3VjaGVkIHRvIHRyaWdnZXIgdmFsaWRhdGlvbiBkaXNwbGF5XHJcbiAgICB0aGlzLmVtcEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgXHJcbiAgICAvLyBNYW51YWxseSB1cGRhdGUgdmFsdWUgYW5kIHZhbGlkaXR5XHJcbiAgICB0aGlzLmVtcEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgXHJcbiAgICAvLyBDaGVjayBpZiBmb3JtIGlzIHZhbGlkIGFmdGVyIGNvbmRpdGlvbmFsIHZhbGlkYXRpb25cclxuICAgIGlmICh0aGlzLmVtcEZvcm0udmFsaWQpe1xyXG4gICAgICB0aGlzLmVtcEZvcm0udmFsdWUuaXNQYXJ0VGltZUVtcGxveWVyRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5lbXBGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCl7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplRW1wbG95ZXJJbmZvckZvcm0oKXtcclxuICAgIGxldCBlbXBJbmZvID0gdGhpcy5lbXBUb0VkaXQgPyB0aGlzLmVtcFRvRWRpdCA6IG5ldyBFbXBsb3llckluZm9Nb2RlbCgpO1xyXG4gICAgdGhpcy5lbXBGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdsYXN0RGF5V29ya2VkJyA6IFtlbXBJbmZvLmxhc3REYXlXb3JrZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc0JldHdlZW4odGhpcy5zdW5EYXRlLCB0aGlzLnNhdERhdGUpXSldLFxyXG4gICAgICAnZW1wbG95ZXJOYW1lJyA6IFtlbXBJbmZvLmVtcGxveWVyTmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdsaW5lMScgOiBbZW1wSW5mby5saW5lMSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdsaW5lMicgOiBbZW1wSW5mby5saW5lMiBdLFxyXG4gICAgICAnY2l0eScgOiBbZW1wSW5mby5jaXR5LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ3N0YXRlJyA6IFtlbXBJbmZvLnN0YXRlICE9IHVuZGVmaW5lZCA/IGVtcEluZm8uc3RhdGUgOiB0aGlzLnV0aWwuZ2V0U3RhdGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdncm9zc0Vhcm5pbmcnIDogW2VtcEluZm8uZ3Jvc3NFYXJuaW5nLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdyZWFzb25TZXBhcmF0aW9uJyA6IFtlbXBJbmZvLnJlYXNvblNlcGFyYXRpb24gIT0gdW5kZWZpbmVkID8gZW1wSW5mby5yZWFzb25TZXBhcmF0aW9uIDogJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnaGF2ZVJldHVyblRvV29ya0RhdGUnIDogW2VtcEluZm8uaGF2ZVJldHVyblRvV29ya0RhdGVdLFxyXG4gICAgICAncmV0dXJuVG9Xb3JrRGF0ZScgOiBbZW1wSW5mby5yZXR1cm5Ub1dvcmtEYXRlXSxcclxuICAgICAgJ3ZvbHVudGFyeVF1aXQnIDogW2VtcEluZm8udm9sdW50YXJ5UXVpdF0sXHJcbiAgICAgICdkaXNjaGFyZ2VkJyA6IFtlbXBJbmZvLmRpc2NoYXJnZWRdLFxyXG4gICAgICAnaG91cnNXb3JrZWRJbldlZWsnIDogW2VtcEluZm8uaG91cnNXb3JrZWRJbldlZWssIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgJ3ppcCcgOiBbZW1wSW5mby56aXAgIT0gdW5kZWZpbmVkID8gZW1wSW5mby56aXAgOiAnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRaaXBDb2RlXSldLFxyXG4gICAgICAnZW1wbG95ZXJQaG9uZScgOiBbZW1wSW5mby5lbXBsb3llclBob25lICE9IHVuZGVmaW5lZCA/IGVtcEluZm8uZW1wbG95ZXJQaG9uZSA6ICcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdlbXBsb3llcklkJyA6IFtlbXBJbmZvLmVtcGxveWVySWRdLFxyXG4gICAgICAndGVtcFdjRW1wbG95ZXJJZCcgOiBbZW1wSW5mby50ZW1wV2NFbXBsb3llcklkID8gZW1wSW5mby50ZW1wV2NFbXBsb3llcklkIDogbmV3IERhdGUoKS5nZXRUaW1lKCldLFxyXG4gICAgICAncG90ZW50aWFsSXNzdWVJZCcgOiBbZW1wSW5mby5wb3RlbnRpYWxJc3N1ZUlkID8gZW1wSW5mby5wb3RlbnRpYWxJc3N1ZUlkIDogbnVsbF0sXHJcbiAgICAgICdpc1BhcnRUaW1lRW1wbG95ZXInIDogW2VtcEluZm8uaXNQYXJ0VGltZUVtcGxveWVyID8gZW1wSW5mby5pc1BhcnRUaW1lRW1wbG95ZXIgOiBudWxsXVxyXG5cclxuICAgIH0sIHtcclxuICAgICAgdmFsaWRhdG9yczogQXBwVmFsaWRhdG9ycy5yZXF1aXJlRWFybmluZ3NJZldvcmtlZCh0aGlzLnN1bkRhdGUsIHRoaXMuc2F0RGF0ZSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2NFbXBTdGF0dXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdSVFdGJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud2NFbXBMb3dSdHdEYXRlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndjRW1wTG93UnR3RGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ0xXTE8nKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5oYXZlUmV0dXJuVG9Xb3JrRGF0ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5oYXZlUmV0dXJuVG9Xb3JrRGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ0RDRkknKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5kaXNjaGFyZ2VkKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRpc2NoYXJnZWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdWT0xRJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMudm9sdW50YXJ5UXVpdCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy52b2x1bnRhcnlRdWl0KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBoYXZlUmV0dXJuVG9Xb3JrRGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaGF2ZVJldHVyblRvV29ya0RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB2b2x1bnRhcnlRdWl0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWyd2b2x1bnRhcnlRdWl0J107XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzY2hhcmdlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZGlzY2hhcmdlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3REYXlXb3JrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2xhc3REYXlXb3JrZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcE5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQWRkcmVzc0xpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQWRkcmVzc0xpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQ2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wU3RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3N0YXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd3NFbXBBbXRFYXJuZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2dyb3NzRWFybmluZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wU3RhdHVzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBMb3dSdHdEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZXR1cm5Ub1dvcmtEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBSdHdEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZXR1cm5Ub1dvcmtEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBXb3JrZWRGb3JNb3JlRW1wbG95ZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3djRW1wV29ya2VkRm9yTW9yZUVtcGxveWVyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBIb3Vyc1dvcmtlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaG91cnNXb3JrZWRJbldlZWsnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c1ppcENvZGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3ppcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdzUGhvbmVOdW1iZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2VtcGxveWVyUGhvbmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBoaWRFbXBJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZW1wbG95ZXJJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGFydFRpbWVFbXBsb3llcigpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaXNQYXJ0VGltZUVtcGxveWVyJ107XHJcbiAgfVxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyIDogRW1wbG95ZXJTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy53Y0VtcE5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTtcclxuICAgIHRoaXMud2NFbXBBZGRyZXNzTGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgIHRoaXMud2NFbXBBZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcclxuICAgIHRoaXMud2NFbXBDaXR5LnNldFZhbHVlKGVtcGxveWVyLmNpdHkpO1xyXG4gICAgdGhpcy53Y0VtcFN0YXRlLnNldFZhbHVlKGVtcGxveWVyLnN0YXRlLnZhbHVlKTtcclxuICAgIHRoaXMud3NaaXBDb2RlLnNldFZhbHVlKGVtcGxveWVyLnppcCk7XHJcbiAgICB0aGlzLmhpZEVtcElkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KXtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYoY3VycmVudFZhbHVlKXtcclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5yZXF1aXJlZCcpO1xyXG4gIH1cclxuICBcclxuICBnZXQgemlwTGVuZ3RoKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi56aXBjb2RlLmxlbmd0aCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcE9ubHlOdW1iZXJzKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi56aXBjb2RlLm9ubHkubnVtYmVycycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcEludmFsaWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnppcGNvZGUuaW52YWxpZCcpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImVtcEZvcm1cIiAjZW1wRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkPlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiIWVtcFRvRWRpdD8uaXNQYXJ0VGltZUVtcGxveWVyXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIGZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcE5hbWVcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbF09XCJ3Y0VtcE5hbWVcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCIgW2VtcFR5cGVdPVwiJ1JFRydcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wTmFtZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcEFkZHJlc3NMaW5lMVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLmFkZHJlc3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwid2NFbXBBZGRyZXNzTGluZTFcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3Y0VtcEFkZHJlc3NMaW5lMVwiIC8+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wQWRkcmVzc0xpbmUxJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wQ2l0eVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLmNpdHlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwid2NFbXBDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid2NFbXBDaXR5XCIgLz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBDaXR5JyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wU3RhdGVcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwid2NFbXBTdGF0ZVwiIFtvcHRpb25zXT1cInN0YXRlc0NvbWJvXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdGVcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3Y0VtcFN0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzWmlwQ29kZVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnppcGNvZGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndzWmlwQ29kZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndzWmlwQ29kZVwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NaaXBDb2RlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTGVuZ3RoOiB6aXBMZW5ndGgsXHJcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogemlwT25seU51bWJlcnNcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0RGF5V29ya2VkXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIubGFzdC5kYXkud29ya2VkXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtpY29uQXJpYUxhYmVsXT1cIidMYXN0IGRheSB3b3JrZWQnXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwibGFzdERheVdvcmtlZFwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJsYXN0RGF5V29ya2VkXCIgW21pbkRhdGVdPVwic3VuRGF0ZVwiIFttYXhEYXRlXT1cInNhdERhdGVcIiBbZGVmYXVsdERhdGVdPVwic3VuRGF0ZVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIGRhdGVOb3RCZXR3ZWVuOiAnRGF0ZSBzaG91bGQgYmUgYmV0d2VlbiAnICsgZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlICsgJyBhbmQgJyArIGR5bmFtaWNQYXJhbS5zYXR1cmRheV9kYXRlICsgJy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c1Bob25lTnVtYmVyXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIuY29udGFjdC5waG9uZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIndzUGhvbmVOdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3c1Bob25lTnVtYmVyJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c0VtcEFtdEVhcm5lZFwiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnRvdGFsLmdyb3NzLmVhcm5pbmdzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCInd2Vla2xpZXMudjIuZW1wbG95bWVudC5ydHcuaW5mby5wb3B1cC4xMDAwJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid3NFbXBBbXRFYXJuZWRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCIgW2Zvcm1Db250cm9sXT1cIndzRW1wQW10RWFybmVkXCIgbWF4bGVuZ3RoPVwiMTBcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dzRW1wQW10RWFybmVkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBIb3Vyc1dvcmtlZFwiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnRvdGFsLmhvdXJzLndvcmtlZFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2NFbXBIb3Vyc1dvcmtlZFwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcEhvdXJzV29ya2VkXCIgbWF4bGVuZ3RoPVwiMTBcIiB1c2VHcm91cGluZz1cImZhbHNlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcEhvdXJzV29ya2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgaG91cnMgd29ya2VkLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wU3RhdHVzXCI+e3tcIndlZWtseWNlcnQuZW1wbG95ZXIuc3RhdHVzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cIndjRW1wU3RhdHVzXCIgW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFN0YXR1c1wiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cIndjRW1wU3RhdHVzMVwiID48L2FwcC1kcm9wZG93bj48YnIvPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXR1cycgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXZlUmV0dXJuVG9Xb3JrRGF0ZVwiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInllc05vT3B0aW9uXCIgW2Zvcm1Db250cm9sXT1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJyAmJiBoYXZlUmV0dXJuVG9Xb3JrRGF0ZS52YWx1ZSA9PSAnWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBMb3dSdHdEYXRlXCI+e3tcIndlZWtseWNlcnQuZW1wbG95ZXIucmV0dXJuLnRvLndvcmsuZGF0ZS53aGVuXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwid2NFbXBMb3dSdHdEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wTG93UnR3RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cIidXaGVuPydcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjE1NScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wTG93UnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdSVFdGJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFJ0d0RhdGVcIj57e1wid2Vla2x5Y2VydC5lbXBsb3llci5kZWZpbml0ZS5yZXR1cm4uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbaWNvbkFyaWFMYWJlbF09XCInUmV0dXJuIHRvIHdvcmsgZGF0ZSdcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wUnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdEQ0ZJJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cImRpc2NoYXJnZWQxXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2Rpc2NoYXJnZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnVk9MUSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidm9sUXVpdERldGFpbHNcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5xdWl0XCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbHVudGFyeVF1aXRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwidm9sdW50YXJ5UXVpdDFcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sdW50YXJ5UXVpdCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiZW1wVG9FZGl0Py5pc1BhcnRUaW1lRW1wbG95ZXJcIj5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxiPnt7d2NFbXBOYW1lLnZhbHVlfX08L2I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gaGlkZGVuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBOYW1lXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBBZGRyZXNzTGluZTFcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcENpdHlcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFN0YXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NaaXBDb2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwiaXNQYXJ0VGltZUVtcGxveWVyXCIvPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFN0YXR1c1wiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnN0YXR1c1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cIndjRW1wU3RhdHVzXCIgW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdHVzXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwid2NFbXBTdGF0dXMyXCI+PC9hcHAtZHJvcGRvd24+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXR1cycgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnTFdMTydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXZlUmV0dXJuVG9Xb3JrRGF0ZVwiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwieWVzTm9PcHRpb25cIiBbZm9ybUNvbnRyb2xdPVwiaGF2ZVJldHVyblRvV29ya0RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0xXTE8nICYmIGhhdmVSZXR1cm5Ub1dvcmtEYXRlLnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wTG93UnR3RGF0ZVwiPnt7XCJ3ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGUud2hlblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcExvd1J0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBMb3dSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCInV2hlbj8nXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjA1MCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcExvd1J0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1JUV0YnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBSdHdEYXRlXCI+e3tcIndlZWtseWNlcnQuZW1wbG95ZXIuZGVmaW5pdGUucmV0dXJuLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtpY29uQXJpYUxhYmVsXT1cIidSZXR1cm4gdG8gd29yayBkYXRlJ1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFJ0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0RDRkknXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGlzY2hhcmdlRGV0YWlsXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24uZGlzY2hhcmdlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwiZGlzY2hhcmdlZDJcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaXNjaGFyZ2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdWT0xRJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbHVudGFyeVF1aXRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGlucHV0SWQ9XCJ2b2x1bnRhcnlRdWl0MlwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbHVudGFyeVF1aXQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhc3REYXlXb3JrZWRcIj57e1wid2Vla2x5Y2VydC5lbXBsb3llci5sYXN0LmRheS53b3JrZWRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbaWNvbkFyaWFMYWJlbF09XCInTGFzdCBkYXkgd29ya2VkJ1wiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImxhc3REYXlXb3JrZWRcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwibGFzdERheVdvcmtlZFwiIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIGR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSArICcgYW5kICcgKyBkeW5hbWljUGFyYW0uc2F0dXJkYXlfZGF0ZSArICcuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzRW1wQW10RWFybmVkXCI+e3tcIndlZWtseWNlcnQuZW1wbG95ZXIudG90YWwuZ3Jvc3MuZWFybmluZ3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMTAwMCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid3NFbXBBbXRFYXJuZWRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCIgW2Zvcm1Db250cm9sXT1cIndzRW1wQW10RWFybmVkXCIgbWF4bGVuZ3RoPVwiMTBcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NFbXBBbXRFYXJuZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wSG91cnNXb3JrZWRcIj57e1wid2Vla2x5Y2VydC5lbXBsb3llci50b3RhbC5ob3Vycy53b3JrZWRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2NFbXBIb3Vyc1dvcmtlZFwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcEhvdXJzV29ya2VkXCIgbWF4bGVuZ3RoPVwiMTBcIiB1c2VHcm91cGluZz1cImZhbHNlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wSG91cnNXb3JrZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgaG91cnMgd29ya2VkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyBzdHlsZT1cIm1hcmdpbjogMCAxMHB4IGF1dG87XCI+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcEZvcm0uaW52YWxpZCAmJiBlbXBGb3JtLmVycm9ycz8uZWFybmluZ3NSZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgXHJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIFtmaWVsZF09XCJlbXBGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MgYW5kIGhvdXJzIHdvcmtlZCBmb3IgdGhlIHdlZWsgZW5kaW5nICcgKyAoc2F0RGF0ZSB8IGRhdGU6J01NL2RkL3l5eXknKSArICcuJyBcclxuICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICA8L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93IHN0eWxlPVwibWFyZ2luOiAwIDEwcHggYXV0bztcIj5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wRm9ybS5pbnZhbGlkICYmIGVtcEZvcm0uZXJyb3JzPy5lYXJuaW5nc1JlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBcclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkXT1cImVtcEZvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICBlYXJuaW5nc1JlcXVpcmVkOiAnUGxlYXNlIHJlcG9ydCBncm9zcyBlYXJuaW5ncyBhbmQgaG91cnMgd29ya2VkIGZvciB0aGUgd2VlayBlbmRpbmcgJyArIChzYXREYXRlIHwgZGF0ZTonTU0vZGQveXl5eScpICsgJy4nIFxyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIj57e1wiYnV0dG9uLmNhbmNlbFwifHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIj57e1wiYnV0dG9uLmFkZFwifHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+Il19
772
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS1jZXJ0LWVtcGxveWVyL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktY2VydC1lbXBsb3llci93ZWVrbHktY2VydC1lbXBsb3llci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM4RnBELCtCQUF1RCxnQkFBQTtJQUNuQixZQUFnRTs7SUFBQSxpQkFBUTtJQUMxRyxxQ0FDcUMsb0JBQUE7SUFJdkMsaUJBQU07Ozs7SUFOOEIsZUFBZ0U7SUFBaEUsOEZBQWdFO0lBQ2xGLGVBQXVCO0lBQXZCLDRDQUF1Qiw0Q0FBQTtJQUU1QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBQyxtREFBOEIsYUFBQSx3REFBQTs7OztJQUloRSwrQkFBNEYsZ0JBQUE7SUFDN0QsWUFBcUU7O0lBQUEsaUJBQVE7SUFDMUcsK0JBQTRCLHFCQUFBO0lBRXFCLHNNQUFXLGVBQUEseUJBQWlCLENB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WUFBQSxpQkFBYTtZQUNsSCxzQ0FBd0Q7WUFBOUIsK0dBQVMsU0FBSyxJQUFDO1lBQWUsYUFBMEI7O1lBQUEsaUJBQWEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7WUF6UmpHLHVDQUFxQjtZQUViLGVBQXNDO1lBQXRDLHlGQUFzQztZQW9KdEMsZUFBcUM7WUFBckMsc0ZBQXFDO1lBd0d2QixlQUF5RDtZQUF6RCx1SEFBeUQ7WUFhekQsZUFBeUQ7WUFBekQsdUhBQXlEO1lBYUwsZUFBNkI7WUFBN0IsNERBQTZCO1lBQzdDLGVBQTBCO1lBQTFCLHlEQUEwQjs7O2lGRDNRL0UsNkJBQTZCO2NBTHpDLFNBQVM7MkJBQ0UsNkJBQTZCO3VJQU9oQyxnQkFBZ0I7a0JBRHRCLFNBQVM7bUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxNQUFNLEVBQUcsS0FBSyxFQUFDO1lBSS9DLE9BQU87a0JBRE4sTUFBTTtZQUlQLE9BQU87a0JBRE4sTUFBTTtZQUlBLFNBQVM7a0JBRGYsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7O2tGQWRLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVySW5mb01vZGVsLCBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLXFlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWVrbHlDZXJ0RW1wbG95ZXJDb21wb25lbnRRZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtcEZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBcclxuICBwdWJsaWMgZW1wRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1wVG9FZGl0ID0gbmV3IEVtcGxveWVySW5mb01vZGVsKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xyXG5cclxuICBwdWJsaWMgeWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcblxyXG4gIHB1YmxpYyBlbXBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgcHVibGljIHNhdERhdGUgOiBEYXRlO1xyXG4gIHB1YmxpYyBzdW5EYXRlIDogRGF0ZTtcclxuXHJcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHVibGljIGZvcm1CdWlsZGVyIDogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgY3MgOiBDbGFpbVNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpKTsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMueWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk9fRVM7XHJcbiAgICAgIHRoaXMuc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVNfRVM7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMueWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcbiAgICAgIHRoaXMuc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNhdERhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGVGcm9tU3RyaW5nKHRoaXMuZHluYW1pY1BhcmFtLnNhdHVyZGF5X2RhdGUpO1xyXG4gICAgdGhpcy5zdW5EYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlRnJvbVN0cmluZyh0aGlzLmR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSk7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUVtcGxveWVySW5mb3JGb3JtKCk7XHJcbiAgfVxyXG4gIFxyXG4gIGxvYWRNYXN0ZXJEYXRhKCkge1xyXG4gICAgdGhpcy5jcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuY3MuZ2V0UmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jcy5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY3MuZ2V0UXVpdFJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkKCl7XHJcbiAgICAvLyBNYXJrIGFsbCBjb250cm9scyBhcyB0b3VjaGVkIHRvIHRyaWdnZXIgdmFsaWRhdGlvbiBkaXNwbGF5XHJcbiAgICB0aGlzLmVtcEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgXHJcbiAgICAvLyBNYW51YWxseSB1cGRhdGUgdmFsdWUgYW5kIHZhbGlkaXR5XHJcbiAgICB0aGlzLmVtcEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgXHJcbiAgICAvLyBDaGVjayBpZiBmb3JtIGlzIHZhbGlkIGFmdGVyIGNvbmRpdGlvbmFsIHZhbGlkYXRpb25cclxuICAgIGlmICh0aGlzLmVtcEZvcm0udmFsaWQpe1xyXG4gICAgICB0aGlzLmVtcEZvcm0udmFsdWUuaXNQYXJ0VGltZUVtcGxveWVyRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5lbXBGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCl7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplRW1wbG95ZXJJbmZvckZvcm0oKXtcclxuICAgIGxldCBlbXBJbmZvID0gdGhpcy5lbXBUb0VkaXQgPyB0aGlzLmVtcFRvRWRpdCA6IG5ldyBFbXBsb3llckluZm9Nb2RlbCgpO1xyXG4gICAgdGhpcy5lbXBGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdsYXN0RGF5V29ya2VkJyA6IFtlbXBJbmZvLmxhc3REYXlXb3JrZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc0JldHdlZW4odGhpcy5zdW5EYXRlLCB0aGlzLnNhdERhdGUpXSldLFxyXG4gICAgICAnZW1wbG95ZXJOYW1lJyA6IFtlbXBJbmZvLmVtcGxveWVyTmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdsaW5lMScgOiBbZW1wSW5mby5saW5lMSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdsaW5lMicgOiBbZW1wSW5mby5saW5lMiBdLFxyXG4gICAgICAnY2l0eScgOiBbZW1wSW5mby5jaXR5LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ3N0YXRlJyA6IFtlbXBJbmZvLnN0YXRlICE9IHVuZGVmaW5lZCA/IGVtcEluZm8uc3RhdGUgOiB0aGlzLnV0aWwuZ2V0U3RhdGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdncm9zc0Vhcm5pbmcnIDogW2VtcEluZm8uZ3Jvc3NFYXJuaW5nLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdyZWFzb25TZXBhcmF0aW9uJyA6IFtlbXBJbmZvLnJlYXNvblNlcGFyYXRpb24gIT0gdW5kZWZpbmVkID8gZW1wSW5mby5yZWFzb25TZXBhcmF0aW9uIDogJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnaGF2ZVJldHVyblRvV29ya0RhdGUnIDogW2VtcEluZm8uaGF2ZVJldHVyblRvV29ya0RhdGVdLFxyXG4gICAgICAncmV0dXJuVG9Xb3JrRGF0ZScgOiBbZW1wSW5mby5yZXR1cm5Ub1dvcmtEYXRlXSxcclxuICAgICAgJ3ZvbHVudGFyeVF1aXQnIDogW2VtcEluZm8udm9sdW50YXJ5UXVpdF0sXHJcbiAgICAgICdkaXNjaGFyZ2VkJyA6IFtlbXBJbmZvLmRpc2NoYXJnZWRdLFxyXG4gICAgICAnaG91cnNXb3JrZWRJbldlZWsnIDogW2VtcEluZm8uaG91cnNXb3JrZWRJbldlZWssIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgJ3ppcCcgOiBbZW1wSW5mby56aXAgIT0gdW5kZWZpbmVkID8gZW1wSW5mby56aXAgOiAnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRaaXBDb2RlXSldLFxyXG4gICAgICAnZW1wbG95ZXJQaG9uZScgOiBbZW1wSW5mby5lbXBsb3llclBob25lICE9IHVuZGVmaW5lZCA/IGVtcEluZm8uZW1wbG95ZXJQaG9uZSA6ICcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdlbXBsb3llcklkJyA6IFtlbXBJbmZvLmVtcGxveWVySWRdLFxyXG4gICAgICAndGVtcFdjRW1wbG95ZXJJZCcgOiBbZW1wSW5mby50ZW1wV2NFbXBsb3llcklkID8gZW1wSW5mby50ZW1wV2NFbXBsb3llcklkIDogbmV3IERhdGUoKS5nZXRUaW1lKCldLFxyXG4gICAgICAncG90ZW50aWFsSXNzdWVJZCcgOiBbZW1wSW5mby5wb3RlbnRpYWxJc3N1ZUlkID8gZW1wSW5mby5wb3RlbnRpYWxJc3N1ZUlkIDogbnVsbF0sXHJcbiAgICAgICdpc1BhcnRUaW1lRW1wbG95ZXInIDogW2VtcEluZm8uaXNQYXJ0VGltZUVtcGxveWVyID8gZW1wSW5mby5pc1BhcnRUaW1lRW1wbG95ZXIgOiBudWxsXVxyXG5cclxuICAgIH0sIHtcclxuICAgICAgdmFsaWRhdG9yczogQXBwVmFsaWRhdG9ycy5yZXF1aXJlRWFybmluZ3NJZldvcmtlZCh0aGlzLnN1bkRhdGUsIHRoaXMuc2F0RGF0ZSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2NFbXBTdGF0dXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdSVFdGJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud2NFbXBMb3dSdHdEYXRlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndjRW1wTG93UnR3RGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ0xXTE8nKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5oYXZlUmV0dXJuVG9Xb3JrRGF0ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5oYXZlUmV0dXJuVG9Xb3JrRGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ0RDRkknKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5kaXNjaGFyZ2VkKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRpc2NoYXJnZWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdWT0xRJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMudm9sdW50YXJ5UXVpdCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy52b2x1bnRhcnlRdWl0KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBoYXZlUmV0dXJuVG9Xb3JrRGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaGF2ZVJldHVyblRvV29ya0RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB2b2x1bnRhcnlRdWl0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWyd2b2x1bnRhcnlRdWl0J107XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzY2hhcmdlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZGlzY2hhcmdlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3REYXlXb3JrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2xhc3REYXlXb3JrZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcE5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQWRkcmVzc0xpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQWRkcmVzc0xpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wQ2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wU3RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3N0YXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd3NFbXBBbXRFYXJuZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2dyb3NzRWFybmluZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wU3RhdHVzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBMb3dSdHdEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZXR1cm5Ub1dvcmtEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBSdHdEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydyZXR1cm5Ub1dvcmtEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBXb3JrZWRGb3JNb3JlRW1wbG95ZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3djRW1wV29ya2VkRm9yTW9yZUVtcGxveWVyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBIb3Vyc1dvcmtlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaG91cnNXb3JrZWRJbldlZWsnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c1ppcENvZGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3ppcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdzUGhvbmVOdW1iZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2VtcGxveWVyUGhvbmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBoaWRFbXBJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZW1wbG95ZXJJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGFydFRpbWVFbXBsb3llcigpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snaXNQYXJ0VGltZUVtcGxveWVyJ107XHJcbiAgfVxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyIDogRW1wbG95ZXJTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy53Y0VtcE5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTtcclxuICAgIHRoaXMud2NFbXBBZGRyZXNzTGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgIHRoaXMud2NFbXBBZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcclxuICAgIHRoaXMud2NFbXBDaXR5LnNldFZhbHVlKGVtcGxveWVyLmNpdHkpO1xyXG4gICAgdGhpcy53Y0VtcFN0YXRlLnNldFZhbHVlKGVtcGxveWVyLnN0YXRlLnZhbHVlKTtcclxuICAgIHRoaXMud3NaaXBDb2RlLnNldFZhbHVlKGVtcGxveWVyLnppcCk7XHJcbiAgICB0aGlzLmhpZEVtcElkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KXtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYoY3VycmVudFZhbHVlKXtcclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5yZXF1aXJlZCcpO1xyXG4gIH1cclxuICBcclxuICBnZXQgemlwTGVuZ3RoKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi56aXBjb2RlLmxlbmd0aCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcE9ubHlOdW1iZXJzKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi56aXBjb2RlLm9ubHkubnVtYmVycycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcEludmFsaWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnppcGNvZGUuaW52YWxpZCcpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImVtcEZvcm1cIiAjZW1wRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkPlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiIWVtcFRvRWRpdD8uaXNQYXJ0VGltZUVtcGxveWVyXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIGZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcE5hbWVcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbF09XCJ3Y0VtcE5hbWVcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCIgW2VtcFR5cGVdPVwiJ1JFRydcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wTmFtZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcEFkZHJlc3NMaW5lMVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLmFkZHJlc3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwid2NFbXBBZGRyZXNzTGluZTFcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3Y0VtcEFkZHJlc3NMaW5lMVwiIC8+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wQWRkcmVzc0xpbmUxJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wQ2l0eVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLmNpdHlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwid2NFbXBDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid2NFbXBDaXR5XCIgLz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBDaXR5JyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wU3RhdGVcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwid2NFbXBTdGF0ZVwiIFtvcHRpb25zXT1cInN0YXRlc0NvbWJvXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdGVcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3Y0VtcFN0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzWmlwQ29kZVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnppcGNvZGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndzWmlwQ29kZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndzWmlwQ29kZVwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NaaXBDb2RlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTGVuZ3RoOiB6aXBMZW5ndGgsXHJcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogemlwT25seU51bWJlcnNcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0RGF5V29ya2VkXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIubGFzdC5kYXkud29ya2VkXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtpY29uQXJpYUxhYmVsXT1cIidMYXN0IGRheSB3b3JrZWQnXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwibGFzdERheVdvcmtlZFwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJsYXN0RGF5V29ya2VkXCIgW21pbkRhdGVdPVwic3VuRGF0ZVwiIFttYXhEYXRlXT1cInNhdERhdGVcIiBbZGVmYXVsdERhdGVdPVwic3VuRGF0ZVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIGRhdGVOb3RCZXR3ZWVuOiAnRGF0ZSBzaG91bGQgYmUgYmV0d2VlbiAnICsgZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlICsgJyBhbmQgJyArIGR5bmFtaWNQYXJhbS5zYXR1cmRheV9kYXRlICsgJy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c1Bob25lTnVtYmVyXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIuY29udGFjdC5waG9uZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIndzUGhvbmVOdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3c1Bob25lTnVtYmVyJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c0VtcEFtdEVhcm5lZFwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnRvdGFsLmdyb3NzLmVhcm5pbmdzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCInd2Vla2xpZXMudjIuZW1wbG95bWVudC5ydHcuaW5mby5wb3B1cC4xMDAwJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid3NFbXBBbXRFYXJuZWRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCIgW2Zvcm1Db250cm9sXT1cIndzRW1wQW10RWFybmVkXCIgbWF4bGVuZ3RoPVwiMTBcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dzRW1wQW10RWFybmVkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBIb3Vyc1dvcmtlZFwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnRvdGFsLmhvdXJzLndvcmtlZFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2NFbXBIb3Vyc1dvcmtlZFwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcEhvdXJzV29ya2VkXCIgbWF4bGVuZ3RoPVwiMTBcIiB1c2VHcm91cGluZz1cImZhbHNlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcEhvdXJzV29ya2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgaG91cnMgd29ya2VkLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wU3RhdHVzXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIuc3RhdHVzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cIndjRW1wU3RhdHVzXCIgW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFN0YXR1c1wiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cIndjRW1wU3RhdHVzMVwiID48L2FwcC1kcm9wZG93bj48YnIvPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXR1cycgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXZlUmV0dXJuVG9Xb3JrRGF0ZVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInllc05vT3B0aW9uXCIgW2Zvcm1Db250cm9sXT1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJyAmJiBoYXZlUmV0dXJuVG9Xb3JrRGF0ZS52YWx1ZSA9PSAnWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBMb3dSdHdEYXRlXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIucmV0dXJuLnRvLndvcmsuZGF0ZS53aGVuXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwid2NFbXBMb3dSdHdEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wTG93UnR3RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cIidXaGVuPydcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjE1NScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wTG93UnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdSVFdGJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFJ0d0RhdGVcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5kZWZpbml0ZS5yZXR1cm4uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbaWNvbkFyaWFMYWJlbF09XCInUmV0dXJuIHRvIHdvcmsgZGF0ZSdcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wUnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdEQ0ZJJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cImRpc2NoYXJnZWQxXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2Rpc2NoYXJnZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnVk9MUSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidm9sUXVpdERldGFpbHNcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5xdWl0XCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbHVudGFyeVF1aXRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwidm9sdW50YXJ5UXVpdDFcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sdW50YXJ5UXVpdCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiZW1wVG9FZGl0Py5pc1BhcnRUaW1lRW1wbG95ZXJcIj5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxiPnt7d2NFbXBOYW1lLnZhbHVlfX08L2I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gaGlkZGVuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBOYW1lXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBBZGRyZXNzTGluZTFcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcENpdHlcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFN0YXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NaaXBDb2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwiaXNQYXJ0VGltZUVtcGxveWVyXCIvPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFN0YXR1c1wiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnN0YXR1c1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cIndjRW1wU3RhdHVzXCIgW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdHVzXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwid2NFbXBTdGF0dXMyXCI+PC9hcHAtZHJvcGRvd24+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXR1cycgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnTFdMTydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXZlUmV0dXJuVG9Xb3JrRGF0ZVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwieWVzTm9PcHRpb25cIiBbZm9ybUNvbnRyb2xdPVwiaGF2ZVJldHVyblRvV29ya0RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0xXTE8nICYmIGhhdmVSZXR1cm5Ub1dvcmtEYXRlLnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wTG93UnR3RGF0ZVwiPnt7XCJ3ZWVrbGllcy53ZWVrbHljZXJ0LmVtcGxveWVyLnJldHVybi50by53b3JrLmRhdGUud2hlblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcExvd1J0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBMb3dSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCInV2hlbj8nXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjA1MCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcExvd1J0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1JUV0YnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBSdHdEYXRlXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIuZGVmaW5pdGUucmV0dXJuLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtpY29uQXJpYUxhYmVsXT1cIidSZXR1cm4gdG8gd29yayBkYXRlJ1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFJ0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0RDRkknXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGlzY2hhcmdlRGV0YWlsXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24uZGlzY2hhcmdlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwiZGlzY2hhcmdlZDJcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaXNjaGFyZ2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdWT0xRJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbHVudGFyeVF1aXRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGlucHV0SWQ9XCJ2b2x1bnRhcnlRdWl0MlwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbHVudGFyeVF1aXQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhc3REYXlXb3JrZWRcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci5sYXN0LmRheS53b3JrZWRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbaWNvbkFyaWFMYWJlbF09XCInTGFzdCBkYXkgd29ya2VkJ1wiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImxhc3REYXlXb3JrZWRcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwibGFzdERheVdvcmtlZFwiIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIGR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSArICcgYW5kICcgKyBkeW5hbWljUGFyYW0uc2F0dXJkYXlfZGF0ZSArICcuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzRW1wQW10RWFybmVkXCI+e3tcIndlZWtsaWVzLndlZWtseWNlcnQuZW1wbG95ZXIudG90YWwuZ3Jvc3MuZWFybmluZ3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMTAwMCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid3NFbXBBbXRFYXJuZWRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCIgW2Zvcm1Db250cm9sXT1cIndzRW1wQW10RWFybmVkXCIgbWF4bGVuZ3RoPVwiMTBcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NFbXBBbXRFYXJuZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wSG91cnNXb3JrZWRcIj57e1wid2Vla2xpZXMud2Vla2x5Y2VydC5lbXBsb3llci50b3RhbC5ob3Vycy53b3JrZWRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2NFbXBIb3Vyc1dvcmtlZFwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcEhvdXJzV29ya2VkXCIgbWF4bGVuZ3RoPVwiMTBcIiB1c2VHcm91cGluZz1cImZhbHNlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wSG91cnNXb3JrZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgaG91cnMgd29ya2VkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyBzdHlsZT1cIm1hcmdpbjogMCAxMHB4IGF1dG87XCI+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcEZvcm0uaW52YWxpZCAmJiBlbXBGb3JtLmVycm9ycz8uZWFybmluZ3NSZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgXHJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIFtmaWVsZF09XCJlbXBGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MgYW5kIGhvdXJzIHdvcmtlZCBmb3IgdGhlIHdlZWsgZW5kaW5nICcgKyAoc2F0RGF0ZSB8IGRhdGU6J01NL2RkL3l5eXknKSArICcuJyBcclxuICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICA8L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93IHN0eWxlPVwibWFyZ2luOiAwIDEwcHggYXV0bztcIj5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wRm9ybS5pbnZhbGlkICYmIGVtcEZvcm0uZXJyb3JzPy5lYXJuaW5nc1JlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBcclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkXT1cImVtcEZvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICBlYXJuaW5nc1JlcXVpcmVkOiAnUGxlYXNlIHJlcG9ydCBncm9zcyBlYXJuaW5ncyBhbmQgaG91cnMgd29ya2VkIGZvciB0aGUgd2VlayBlbmRpbmcgJyArIChzYXREYXRlIHwgZGF0ZTonTU0vZGQveXl5eScpICsgJy4nIFxyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIj57e1wiYnV0dG9uLmNhbmNlbFwifHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIj57e1wiYnV0dG9uLmFkZFwifHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+Il19