@reusa/ngx-reusa-app-lib 0.0.1320 → 0.0.1322

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +755 -763
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +24 -29
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +31 -45
  6. package/esm2022/lib/components/address/address.component.mjs +46 -97
  7. package/esm2022/lib/components/bank-details/bank-details.component.mjs +75 -139
  8. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  9. package/esm2022/lib/components/card/card.component.mjs +1 -1
  10. package/esm2022/lib/components/contact-us/contact-us.component.mjs +28 -42
  11. package/esm2022/lib/components/content/content.component.mjs +1 -1
  12. package/esm2022/lib/components/email-update/email-update.component.mjs +62 -119
  13. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +84 -165
  14. package/esm2022/lib/components/error/error.component.mjs +1 -1
  15. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  16. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
  17. package/esm2022/lib/components/footer/footer.component.mjs +11 -23
  18. package/esm2022/lib/components/header/header.component.mjs +109 -163
  19. package/esm2022/lib/components/help/help.component.mjs +1 -1
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +18 -29
  21. package/esm2022/lib/components/info/info.component.mjs +1 -1
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +16 -20
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +208 -389
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +21 -83
  26. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  27. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  28. package/esm2022/lib/components/menu/menu.component.mjs +25 -63
  29. package/esm2022/lib/components/mfa/mfa.component.mjs +98 -155
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +30 -54
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +23 -31
  32. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  33. package/esm2022/lib/components/news/news.component.mjs +1 -1
  34. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  35. package/esm2022/lib/components/page/page.component.mjs +1 -1
  36. package/esm2022/lib/components/profile/profile.component.mjs +14 -34
  37. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +10 -17
  38. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  39. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +27 -80
  40. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +8 -29
  41. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +119 -172
  42. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +41 -122
  43. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
  44. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/question.service.mjs +1 -1
  46. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  47. package/esm2022/lib/components/search-employer/search-employer.component.mjs +7 -10
  48. package/esm2022/lib/components/security-question/security-question.component.mjs +9 -19
  49. package/esm2022/lib/components/select/select.component.mjs +5 -10
  50. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  51. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  52. package/esm2022/lib/components/test/test.component.mjs +1 -1
  53. package/esm2022/lib/components/user-login/user-login.component.mjs +82 -116
  54. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +174 -170
  55. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  56. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  57. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  58. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  59. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
  60. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  61. package/esm2022/lib/models/FileModel.mjs +1 -1
  62. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  63. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  64. package/esm2022/lib/models/TrendModel.mjs +1 -1
  65. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  66. package/esm2022/lib/models/UserModel.mjs +1 -1
  67. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  68. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  69. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  70. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  71. package/esm2022/lib/models/questionnaire/ComboModel.mjs +1 -480
  72. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  73. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  74. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  75. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +1 -1
  76. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +1 -1
  77. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +1 -1
  78. package/esm2022/lib/pages/common/login/login.component.mjs +2 -7
  79. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  80. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +1 -1
  81. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +1 -1
  82. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  83. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  84. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
  85. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
  86. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  87. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  88. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  89. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  90. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  91. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  92. package/esm2022/lib/services/base-service.mjs +1 -1
  93. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  94. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  95. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  96. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  97. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  98. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  99. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  100. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  101. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  102. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  103. package/esm2022/lib/validations/AppValidators.mjs +43 -6
  104. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +2290 -3782
  105. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  106. package/lib/components/add-employer/add-employer.component.d.ts +76 -22
  107. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  108. package/lib/components/add-participant/add-participant.component.d.ts +1 -4
  109. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  110. package/lib/components/add-payment/add-payment.component.d.ts +2 -1
  111. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  112. package/lib/components/address/address.component.d.ts +1 -10
  113. package/lib/components/address/address.component.d.ts.map +1 -1
  114. package/lib/components/bank-details/bank-details.component.d.ts +1 -17
  115. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  116. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  117. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  118. package/lib/components/email-update/email-update.component.d.ts +1 -6
  119. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  120. package/lib/components/employer-grid/employer-grid.component.d.ts +24 -6
  121. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  122. package/lib/components/footer/footer.component.d.ts.map +1 -1
  123. package/lib/components/header/header.component.d.ts +0 -3
  124. package/lib/components/header/header.component.d.ts.map +1 -1
  125. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  126. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  127. package/lib/components/job-title/job-title.component.d.ts +1 -3
  128. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  129. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +1 -5
  130. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  131. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
  132. package/lib/components/menu/menu.component.d.ts +1 -11
  133. package/lib/components/menu/menu.component.d.ts.map +1 -1
  134. package/lib/components/mfa/mfa.component.d.ts +1 -6
  135. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  136. package/lib/components/profile/profile.component.d.ts.map +1 -1
  137. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -1
  138. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  139. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  140. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  141. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  142. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  143. package/lib/components/user-login/user-login.component.d.ts +1 -7
  144. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  145. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +1 -7
  146. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  147. package/lib/models/questionnaire/ComboModel.d.ts +0 -80
  148. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  149. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  150. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  151. package/lib/validations/AppValidators.d.ts +10 -0
  152. package/lib/validations/AppValidators.d.ts.map +1 -1
  153. package/package.json +2 -2
@@ -7,181 +7,183 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../services/util/util.service";
8
8
  import * as i2 from "@angular/forms";
9
9
  import * as i3 from "../../services/claims/claims.service";
10
- import * as i4 from "@ngx-translate/core";
11
- import * as i5 from "@ionic/angular";
12
- import * as i6 from "@angular/common";
13
- import * as i7 from "primeng/inputtext";
14
- import * as i8 from "primeng/inputmask";
15
- import * as i9 from "primeng/calendar";
16
- import * as i10 from "primeng/selectbutton";
17
- import * as i11 from "primeng/inputnumber";
18
- import * as i12 from "../error/error.component";
19
- import * as i13 from "../overlay-info/overlay-info.component";
20
- import * as i14 from "../search-employer/search-employer.component";
21
- import * as i15 from "../dropdown/dropdown.component";
10
+ import * as i4 from "@ionic/angular";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "primeng/inputtext";
13
+ import * as i7 from "primeng/inputmask";
14
+ import * as i8 from "primeng/calendar";
15
+ import * as i9 from "primeng/selectbutton";
16
+ import * as i10 from "primeng/inputnumber";
17
+ import * as i11 from "../error/error.component";
18
+ import * as i12 from "../overlay-info/overlay-info.component";
19
+ import * as i13 from "../search-employer/search-employer.component";
20
+ import * as i14 from "../dropdown/dropdown.component";
21
+ import * as i15 from "@ngx-translate/core";
22
22
  import * as i16 from "../../pipes/trust-html/trust-html.pipe";
23
23
  const _c0 = ["empFormDirective"];
24
- const _c1 = a0 => ({ required: a0 });
24
+ const _c1 = () => ({ required: "Required." });
25
25
  function WeeklyCertEmployerComponentQe_ion_row_3_div_63_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 35);
26
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 36);
27
27
  i0.ɵɵtext(2, "Do you know when you're returning to full-time work?");
28
28
  i0.ɵɵelementEnd();
29
- i0.ɵɵelement(3, "p-selectButton", 36)(4, "app-error", 11);
29
+ i0.ɵɵelement(3, "p-selectButton", 37)(4, "app-error", 13);
30
30
  i0.ɵɵelementEnd();
31
31
  } if (rf & 2) {
32
- const ctx_r3 = i0.ɵɵnextContext(2);
32
+ const ctx_r4 = i0.ɵɵnextContext(2);
33
33
  const _r0 = i0.ɵɵreference(1);
34
34
  i0.ɵɵadvance(3);
35
- i0.ɵɵproperty("options", ctx_r3.yesNoOption)("formControl", ctx_r3.haveReturnToWorkDate);
35
+ i0.ɵɵproperty("options", ctx_r4.yesNoOption)("formControl", ctx_r4.haveReturnToWorkDate);
36
36
  i0.ɵɵadvance(1);
37
37
  i0.ɵɵclassMap("app-grid");
38
- i0.ɵɵproperty("field", ctx_r3.haveReturnToWorkDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(7, _c1, ctx_r3.required));
38
+ i0.ɵɵproperty("field", ctx_r4.haveReturnToWorkDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(7, _c1));
39
39
  } }
40
40
  function WeeklyCertEmployerComponentQe_ion_row_3_div_64_Template(rf, ctx) { if (rf & 1) {
41
- const _r9 = i0.ɵɵgetCurrentView();
42
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 37);
41
+ const _r10 = i0.ɵɵgetCurrentView();
42
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 38);
43
43
  i0.ɵɵtext(2, "When?");
44
44
  i0.ɵɵelementEnd();
45
- i0.ɵɵelementStart(3, "div", 38)(4, "p-calendar", 39);
46
- i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_3_div_64_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.dateInput($event)); });
45
+ i0.ɵɵelementStart(3, "div", 39)(4, "p-calendar", 40);
46
+ i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_3_div_64_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.dateInput($event)); });
47
47
  i0.ɵɵelementEnd();
48
- i0.ɵɵelement(5, "app-overlay-info", 27);
48
+ i0.ɵɵelement(5, "app-overlay-info", 29);
49
49
  i0.ɵɵpipe(6, "trustHtml");
50
50
  i0.ɵɵpipe(7, "translate");
51
51
  i0.ɵɵelementEnd();
52
- i0.ɵɵelement(8, "app-error", 11);
52
+ i0.ɵɵelement(8, "app-error", 13);
53
53
  i0.ɵɵelementEnd();
54
54
  } if (rf & 2) {
55
- const ctx_r4 = i0.ɵɵnextContext(2);
55
+ const ctx_r5 = i0.ɵɵnextContext(2);
56
56
  const _r0 = i0.ɵɵreference(1);
57
57
  i0.ɵɵadvance(4);
58
- i0.ɵɵproperty("showIcon", true)("formControl", ctx_r4.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
58
+ i0.ɵɵproperty("showIcon", true)("formControl", ctx_r5.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
59
59
  i0.ɵɵadvance(1);
60
60
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(6, 10, i0.ɵɵpipeBind1(7, 12, "weeklies.v2.employment.rtw.info.popup.2155")));
61
61
  i0.ɵɵadvance(3);
62
62
  i0.ɵɵclassMap("app-grid");
63
- i0.ɵɵproperty("field", ctx_r4.wcEmpLowRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(14, _c1, ctx_r4.required));
63
+ i0.ɵɵproperty("field", ctx_r5.wcEmpLowRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(14, _c1));
64
64
  } }
65
65
  function WeeklyCertEmployerComponentQe_ion_row_3_div_65_Template(rf, ctx) { if (rf & 1) {
66
- const _r11 = i0.ɵɵgetCurrentView();
67
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 40);
66
+ const _r12 = i0.ɵɵgetCurrentView();
67
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 41);
68
68
  i0.ɵɵtext(2, "Return to work date");
69
69
  i0.ɵɵelementEnd();
70
- i0.ɵɵelementStart(3, "p-calendar", 41);
71
- i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_3_div_65_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.dateInput($event)); });
70
+ i0.ɵɵelementStart(3, "p-calendar", 42);
71
+ i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_3_div_65_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r11.dateInput($event)); });
72
72
  i0.ɵɵelementEnd();
73
- i0.ɵɵelement(4, "app-error", 11);
73
+ i0.ɵɵelement(4, "app-error", 13);
74
74
  i0.ɵɵelementEnd();
75
75
  } if (rf & 2) {
76
- const ctx_r5 = i0.ɵɵnextContext(2);
76
+ const ctx_r6 = i0.ɵɵnextContext(2);
77
77
  const _r0 = i0.ɵɵreference(1);
78
78
  i0.ɵɵadvance(3);
79
- i0.ɵɵproperty("showIcon", true)("formControl", ctx_r5.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
79
+ i0.ɵɵproperty("showIcon", true)("formControl", ctx_r6.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
80
80
  i0.ɵɵadvance(1);
81
81
  i0.ɵɵclassMap("app-grid");
82
- i0.ɵɵproperty("field", ctx_r5.wcEmpRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(9, _c1, ctx_r5.required));
82
+ i0.ɵɵproperty("field", ctx_r6.wcEmpRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c1));
83
83
  } }
84
84
  const _c2 = () => ({ required: "required" });
85
85
  function WeeklyCertEmployerComponentQe_ion_row_3_div_66_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 42);
86
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 43);
87
87
  i0.ɵɵtext(2);
88
88
  i0.ɵɵpipe(3, "translate");
89
89
  i0.ɵɵelementEnd();
90
- i0.ɵɵelement(4, "app-dropdown", 43)(5, "app-error", 11);
90
+ i0.ɵɵelement(4, "app-dropdown", 44)(5, "app-error", 13);
91
91
  i0.ɵɵelementEnd();
92
92
  } if (rf & 2) {
93
- const ctx_r6 = i0.ɵɵnextContext(2);
93
+ const ctx_r7 = i0.ɵɵnextContext(2);
94
94
  const _r0 = i0.ɵɵreference(1);
95
95
  i0.ɵɵadvance(2);
96
96
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.reason.separation.discharge"));
97
97
  i0.ɵɵadvance(2);
98
- i0.ɵɵproperty("options", ctx_r6.dischargeReasonOptionsAll)("formControl", ctx_r6.discharged)("autoDisplayFirst", false);
98
+ i0.ɵɵproperty("options", ctx_r7.dischargeReasonOptionsAll)("formControl", ctx_r7.discharged)("autoDisplayFirst", false);
99
99
  i0.ɵɵadvance(1);
100
100
  i0.ɵɵclassMap("app-grid");
101
- i0.ɵɵproperty("field", ctx_r6.discharged)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
101
+ i0.ɵɵproperty("field", ctx_r7.discharged)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
102
102
  } }
103
103
  function WeeklyCertEmployerComponentQe_ion_row_3_div_67_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 44);
104
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 45);
105
105
  i0.ɵɵtext(2);
106
106
  i0.ɵɵpipe(3, "translate");
107
107
  i0.ɵɵelementEnd();
108
- i0.ɵɵelement(4, "app-dropdown", 45)(5, "app-error", 11);
108
+ i0.ɵɵelement(4, "app-dropdown", 46)(5, "app-error", 13);
109
109
  i0.ɵɵelementEnd();
110
110
  } if (rf & 2) {
111
- const ctx_r7 = i0.ɵɵnextContext(2);
111
+ const ctx_r8 = i0.ɵɵnextContext(2);
112
112
  const _r0 = i0.ɵɵreference(1);
113
113
  i0.ɵɵadvance(2);
114
114
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.reason.separation.quit"));
115
115
  i0.ɵɵadvance(2);
116
- i0.ɵɵproperty("options", ctx_r7.volQuitReasonOptionsAll)("formControl", ctx_r7.voluntaryQuit)("autoDisplayFirst", false);
116
+ i0.ɵɵproperty("options", ctx_r8.volQuitReasonOptionsAll)("formControl", ctx_r8.voluntaryQuit)("autoDisplayFirst", false);
117
117
  i0.ɵɵadvance(1);
118
118
  i0.ɵɵclassMap("app-grid");
119
- i0.ɵɵproperty("field", ctx_r7.voluntaryQuit)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
119
+ i0.ɵɵproperty("field", ctx_r8.voluntaryQuit)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
120
120
  } }
121
- const _c3 = (a0, a1, a2) => ({ required: a0, invalidLength: a1, invalidNumber: a2 });
122
- const _c4 = (a0, a1) => ({ required: a0, dateNotBetween: a1 });
121
+ const _c3 = () => ({ required: "Required.", invalidLength: "Zip code should be of 5 or 9 digits.", invalidNumber: "Zip code should only have numbers." });
122
+ const _c4 = a1 => ({ required: "Required.", dateNotBetween: a1 });
123
+ const _c5 = () => ({ required: "Required.", earningsRequired: "Please report gross earnings." });
124
+ const _c6 = () => ({ required: "Required.", earningsRequired: "Please report hours worked." });
123
125
  function WeeklyCertEmployerComponentQe_ion_row_3_Template(rf, ctx) { if (rf & 1) {
124
- const _r13 = i0.ɵɵgetCurrentView();
125
- i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 6)(2, "div", 7)(3, "div", 8)(4, "label", 9);
126
+ const _r14 = i0.ɵɵgetCurrentView();
127
+ i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 8)(2, "div", 9)(3, "div", 10)(4, "label", 11);
126
128
  i0.ɵɵtext(5, "Employer Name");
127
129
  i0.ɵɵelementEnd();
128
- i0.ɵɵelementStart(6, "app-search-employer", 10);
129
- i0.ɵɵlistener("onFound", function WeeklyCertEmployerComponentQe_ion_row_3_Template_app_search_employer_onFound_6_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.setEmployer($event)); });
130
+ i0.ɵɵelementStart(6, "app-search-employer", 12);
131
+ i0.ɵɵlistener("onFound", function WeeklyCertEmployerComponentQe_ion_row_3_Template_app_search_employer_onFound_6_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.setEmployer($event)); });
130
132
  i0.ɵɵelementEnd();
131
- i0.ɵɵelement(7, "app-error", 11);
133
+ i0.ɵɵelement(7, "app-error", 13);
132
134
  i0.ɵɵelementEnd();
133
- i0.ɵɵelementStart(8, "div", 8)(9, "label", 12);
135
+ i0.ɵɵelementStart(8, "div", 10)(9, "label", 14);
134
136
  i0.ɵɵtext(10, "Street Address");
135
137
  i0.ɵɵelementEnd();
136
- i0.ɵɵelement(11, "input", 13)(12, "app-error", 11);
138
+ i0.ɵɵelement(11, "input", 15)(12, "app-error", 13);
137
139
  i0.ɵɵelementEnd();
138
- i0.ɵɵelementStart(13, "div", 8)(14, "label", 14);
140
+ i0.ɵɵelementStart(13, "div", 10)(14, "label", 16);
139
141
  i0.ɵɵtext(15, "City");
140
142
  i0.ɵɵelementEnd();
141
- i0.ɵɵelement(16, "input", 15)(17, "app-error", 11);
143
+ i0.ɵɵelement(16, "input", 17)(17, "app-error", 13);
142
144
  i0.ɵɵelementEnd();
143
- i0.ɵɵelementStart(18, "ion-row")(19, "ion-col", 16)(20, "div", 8)(21, "label", 17);
145
+ i0.ɵɵelementStart(18, "ion-row")(19, "ion-col", 18)(20, "div", 10)(21, "label", 19);
144
146
  i0.ɵɵtext(22, "State");
145
147
  i0.ɵɵelementEnd();
146
- i0.ɵɵelement(23, "app-dropdown", 18)(24, "app-error", 11);
148
+ i0.ɵɵelement(23, "app-dropdown", 20)(24, "app-error", 13);
147
149
  i0.ɵɵelementEnd()();
148
- i0.ɵɵelement(25, "ion-col", 19);
149
- i0.ɵɵelementStart(26, "ion-col", 16)(27, "div", 8)(28, "label", 20);
150
+ i0.ɵɵelement(25, "ion-col", 21);
151
+ i0.ɵɵelementStart(26, "ion-col", 18)(27, "div", 10)(28, "label", 22);
150
152
  i0.ɵɵtext(29, "Zip Code");
151
153
  i0.ɵɵelementEnd();
152
- i0.ɵɵelement(30, "input", 21)(31, "app-error", 11);
154
+ i0.ɵɵelement(30, "input", 23)(31, "app-error", 13);
153
155
  i0.ɵɵelementEnd()()();
154
- i0.ɵɵelementStart(32, "div", 8)(33, "label", 22);
156
+ i0.ɵɵelementStart(32, "div", 10)(33, "label", 24);
155
157
  i0.ɵɵtext(34, "Last day worked");
156
158
  i0.ɵɵelementEnd();
157
- i0.ɵɵelement(35, "p-calendar", 23)(36, "app-error", 11);
159
+ i0.ɵɵelement(35, "p-calendar", 25)(36, "app-error", 13);
158
160
  i0.ɵɵelementEnd()()();
159
- i0.ɵɵelementStart(37, "ion-col", 6)(38, "div", 7)(39, "div", 8)(40, "label", 24);
161
+ i0.ɵɵelementStart(37, "ion-col", 8)(38, "div", 9)(39, "div", 10)(40, "label", 26);
160
162
  i0.ɵɵtext(41, "Phone No.");
161
163
  i0.ɵɵelementEnd();
162
- i0.ɵɵelement(42, "p-inputMask", 25)(43, "app-error", 11);
164
+ i0.ɵɵelement(42, "p-inputMask", 27)(43, "app-error", 13);
163
165
  i0.ɵɵelementEnd();
164
- i0.ɵɵelementStart(44, "div", 8)(45, "label", 26);
166
+ i0.ɵɵelementStart(44, "div", 10)(45, "label", 28);
165
167
  i0.ɵɵtext(46, "Total Gross Earnings");
166
168
  i0.ɵɵelementEnd();
167
- i0.ɵɵelement(47, "app-overlay-info", 27);
169
+ i0.ɵɵelement(47, "app-overlay-info", 29);
168
170
  i0.ɵɵpipe(48, "trustHtml");
169
171
  i0.ɵɵpipe(49, "translate");
170
- i0.ɵɵelement(50, "p-inputNumber", 28)(51, "app-error", 11);
172
+ i0.ɵɵelement(50, "p-inputNumber", 30)(51, "app-error", 13);
171
173
  i0.ɵɵelementEnd();
172
- i0.ɵɵelementStart(52, "div", 8)(53, "label", 29);
174
+ i0.ɵɵelementStart(52, "div", 10)(53, "label", 31);
173
175
  i0.ɵɵtext(54, "Hours worked");
174
176
  i0.ɵɵelementEnd();
175
- i0.ɵɵelement(55, "p-inputNumber", 30)(56, "app-error", 11);
177
+ i0.ɵɵelement(55, "p-inputNumber", 32)(56, "app-error", 13);
176
178
  i0.ɵɵelementEnd();
177
- i0.ɵɵelementStart(57, "div", 8)(58, "label", 31);
179
+ i0.ɵɵelementStart(57, "div", 10)(58, "label", 33);
178
180
  i0.ɵɵtext(59, "What's your employment status with this employer?");
179
181
  i0.ɵɵelementEnd();
180
- i0.ɵɵelement(60, "app-dropdown", 32)(61, "br")(62, "app-error", 11);
182
+ i0.ɵɵelement(60, "app-dropdown", 34)(61, "br")(62, "app-error", 13);
181
183
  i0.ɵɵelementEnd();
182
- i0.ɵɵtemplate(63, WeeklyCertEmployerComponentQe_ion_row_3_div_63_Template, 5, 9, "div", 33)(64, WeeklyCertEmployerComponentQe_ion_row_3_div_64_Template, 9, 16, "div", 33)(65, WeeklyCertEmployerComponentQe_ion_row_3_div_65_Template, 5, 11, "div", 33)(66, WeeklyCertEmployerComponentQe_ion_row_3_div_66_Template, 6, 12, "div", 33)(67, WeeklyCertEmployerComponentQe_ion_row_3_div_67_Template, 6, 12, "div", 33);
184
+ i0.ɵɵtemplate(63, WeeklyCertEmployerComponentQe_ion_row_3_div_63_Template, 5, 8, "div", 4)(64, WeeklyCertEmployerComponentQe_ion_row_3_div_64_Template, 9, 15, "div", 4)(65, WeeklyCertEmployerComponentQe_ion_row_3_div_65_Template, 5, 10, "div", 4)(66, WeeklyCertEmployerComponentQe_ion_row_3_div_66_Template, 6, 12, "div", 4)(67, WeeklyCertEmployerComponentQe_ion_row_3_div_67_Template, 6, 12, "div", 4);
183
185
  i0.ɵɵelementEnd();
184
- i0.ɵɵelement(68, "input", 34);
186
+ i0.ɵɵelement(68, "input", 35);
185
187
  i0.ɵɵelementEnd()();
186
188
  } if (rf & 2) {
187
189
  const ctx_r1 = i0.ɵɵnextContext();
@@ -190,54 +192,54 @@ function WeeklyCertEmployerComponentQe_ion_row_3_Template(rf, ctx) { if (rf & 1)
190
192
  i0.ɵɵproperty("formControl", ctx_r1.wcEmpName)("empType", "REG");
191
193
  i0.ɵɵadvance(1);
192
194
  i0.ɵɵclassMap("app-grid");
193
- i0.ɵɵproperty("field", ctx_r1.wcEmpName)("form", _r0)("errDef", i0.ɵɵpureFunction1(81, _c1, ctx_r1.required));
195
+ i0.ɵɵproperty("field", ctx_r1.wcEmpName)("form", _r0)("errDef", i0.ɵɵpureFunction0(81, _c1));
194
196
  i0.ɵɵadvance(4);
195
197
  i0.ɵɵproperty("formControl", ctx_r1.wcEmpAddressLine1);
196
198
  i0.ɵɵadvance(1);
197
199
  i0.ɵɵclassMap("app-grid");
198
- i0.ɵɵproperty("field", ctx_r1.wcEmpAddressLine1)("form", _r0)("errDef", i0.ɵɵpureFunction1(83, _c1, ctx_r1.required));
200
+ i0.ɵɵproperty("field", ctx_r1.wcEmpAddressLine1)("form", _r0)("errDef", i0.ɵɵpureFunction0(82, _c1));
199
201
  i0.ɵɵadvance(4);
200
202
  i0.ɵɵproperty("formControl", ctx_r1.wcEmpCity);
201
203
  i0.ɵɵadvance(1);
202
204
  i0.ɵɵclassMap("app-grid");
203
- i0.ɵɵproperty("field", ctx_r1.wcEmpCity)("form", _r0)("errDef", i0.ɵɵpureFunction1(85, _c1, ctx_r1.required));
205
+ i0.ɵɵproperty("field", ctx_r1.wcEmpCity)("form", _r0)("errDef", i0.ɵɵpureFunction0(83, _c1));
204
206
  i0.ɵɵadvance(6);
205
207
  i0.ɵɵproperty("options", ctx_r1.statesCombo)("formControl", ctx_r1.wcEmpState)("autoDisplayFirst", false);
206
208
  i0.ɵɵadvance(1);
207
209
  i0.ɵɵclassMap("app-grid");
208
- i0.ɵɵproperty("field", ctx_r1.wcEmpState)("form", _r0)("errDef", i0.ɵɵpureFunction1(87, _c1, ctx_r1.required));
210
+ i0.ɵɵproperty("field", ctx_r1.wcEmpState)("form", _r0)("errDef", i0.ɵɵpureFunction0(84, _c1));
209
211
  i0.ɵɵadvance(6);
210
212
  i0.ɵɵproperty("formControl", ctx_r1.wsZipCode);
211
213
  i0.ɵɵadvance(1);
212
214
  i0.ɵɵclassMap("app-grid");
213
- i0.ɵɵproperty("field", ctx_r1.wsZipCode)("form", _r0)("errDef", i0.ɵɵpureFunction3(89, _c3, ctx_r1.required, ctx_r1.zipLength, ctx_r1.zipOnlyNumbers));
215
+ i0.ɵɵproperty("field", ctx_r1.wsZipCode)("form", _r0)("errDef", i0.ɵɵpureFunction0(85, _c3));
214
216
  i0.ɵɵadvance(4);
215
217
  i0.ɵɵproperty("iconAriaLabel", "Last day worked")("showIcon", true)("formControl", ctx_r1.lastDayWorked)("minDate", ctx_r1.sunDate)("maxDate", ctx_r1.satDate)("defaultDate", ctx_r1.sunDate);
216
218
  i0.ɵɵadvance(1);
217
219
  i0.ɵɵclassMap("app-grid");
218
- i0.ɵɵproperty("field", ctx_r1.lastDayWorked)("form", _r0)("errDef", i0.ɵɵpureFunction2(93, _c4, ctx_r1.required, "Date should be between " + ctx_r1.dynamicParam.sunday_date + " and " + ctx_r1.dynamicParam.saturday_date + "."));
220
+ i0.ɵɵproperty("field", ctx_r1.lastDayWorked)("form", _r0)("errDef", i0.ɵɵpureFunction1(86, _c4, "Date should be between " + ctx_r1.dynamicParam.sunday_date + " and " + ctx_r1.dynamicParam.saturday_date + "."));
219
221
  i0.ɵɵadvance(6);
220
222
  i0.ɵɵproperty("formControl", ctx_r1.wsPhoneNumber);
221
223
  i0.ɵɵadvance(1);
222
224
  i0.ɵɵclassMap("app-grid");
223
- i0.ɵɵproperty("field", ctx_r1.wsPhoneNumber)("form", _r0)("errDef", i0.ɵɵpureFunction1(96, _c1, ctx_r1.required));
225
+ i0.ɵɵproperty("field", ctx_r1.wsPhoneNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(88, _c1));
224
226
  i0.ɵɵadvance(4);
225
227
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(48, 77, i0.ɵɵpipeBind1(49, 79, "weeklies.v2.employment.rtw.info.popup.1000")));
226
228
  i0.ɵɵadvance(3);
227
229
  i0.ɵɵproperty("formControl", ctx_r1.wsEmpAmtEarned);
228
230
  i0.ɵɵadvance(1);
229
231
  i0.ɵɵclassMap("app-grid");
230
- i0.ɵɵproperty("field", ctx_r1.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction1(98, _c1, ctx_r1.required));
232
+ i0.ɵɵproperty("field", ctx_r1.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction0(89, _c5));
231
233
  i0.ɵɵadvance(4);
232
234
  i0.ɵɵproperty("formControl", ctx_r1.wcEmpHoursWorked);
233
235
  i0.ɵɵadvance(1);
234
236
  i0.ɵɵclassMap("app-grid");
235
- i0.ɵɵproperty("field", ctx_r1.wcEmpHoursWorked)("form", _r0)("errDef", i0.ɵɵpureFunction1(100, _c1, ctx_r1.required));
237
+ i0.ɵɵproperty("field", ctx_r1.wcEmpHoursWorked)("form", _r0)("errDef", i0.ɵɵpureFunction0(90, _c6));
236
238
  i0.ɵɵadvance(4);
237
239
  i0.ɵɵproperty("options", ctx_r1.employmentStatusOptionsAll)("formControl", ctx_r1.wcEmpStatus)("autoDisplayFirst", false);
238
240
  i0.ɵɵadvance(2);
239
241
  i0.ɵɵclassMap("app-grid");
240
- i0.ɵɵproperty("field", ctx_r1.wcEmpStatus)("form", _r0)("errDef", i0.ɵɵpureFunction1(102, _c1, ctx_r1.required));
242
+ i0.ɵɵproperty("field", ctx_r1.wcEmpStatus)("form", _r0)("errDef", i0.ɵɵpureFunction0(91, _c1));
241
243
  i0.ɵɵadvance(1);
242
244
  i0.ɵɵproperty("ngIf", ctx_r1.wcEmpStatus.value == "LWLO");
243
245
  i0.ɵɵadvance(1);
@@ -252,130 +254,130 @@ function WeeklyCertEmployerComponentQe_ion_row_3_Template(rf, ctx) { if (rf & 1)
252
254
  i0.ɵɵproperty("formControl", ctx_r1.hidEmpId);
253
255
  } }
254
256
  function WeeklyCertEmployerComponentQe_ion_row_4_div_21_Template(rf, ctx) { if (rf & 1) {
255
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 35);
257
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 36);
256
258
  i0.ɵɵtext(2, "Do you know when you're returning to full-time work?");
257
259
  i0.ɵɵelementEnd();
258
- i0.ɵɵelement(3, "p-selectButton", 36)(4, "app-error", 11);
260
+ i0.ɵɵelement(3, "p-selectButton", 37)(4, "app-error", 13);
259
261
  i0.ɵɵelementEnd();
260
262
  } if (rf & 2) {
261
- const ctx_r14 = i0.ɵɵnextContext(2);
263
+ const ctx_r15 = i0.ɵɵnextContext(2);
262
264
  const _r0 = i0.ɵɵreference(1);
263
265
  i0.ɵɵadvance(3);
264
- i0.ɵɵproperty("options", ctx_r14.yesNoOption)("formControl", ctx_r14.haveReturnToWorkDate);
266
+ i0.ɵɵproperty("options", ctx_r15.yesNoOption)("formControl", ctx_r15.haveReturnToWorkDate);
265
267
  i0.ɵɵadvance(1);
266
268
  i0.ɵɵclassMap("app-grid");
267
- i0.ɵɵproperty("field", ctx_r14.haveReturnToWorkDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(7, _c1, ctx_r14.required));
269
+ i0.ɵɵproperty("field", ctx_r15.haveReturnToWorkDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(7, _c1));
268
270
  } }
269
271
  function WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template(rf, ctx) { if (rf & 1) {
270
- const _r20 = i0.ɵɵgetCurrentView();
271
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 37);
272
+ const _r21 = i0.ɵɵgetCurrentView();
273
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 38);
272
274
  i0.ɵɵtext(2, "When?");
273
275
  i0.ɵɵelementEnd();
274
- i0.ɵɵelementStart(3, "div", 38)(4, "p-calendar", 39);
275
- i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r19.dateInput($event)); });
276
+ i0.ɵɵelementStart(3, "div", 39)(4, "p-calendar", 40);
277
+ i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r20.dateInput($event)); });
276
278
  i0.ɵɵelementEnd();
277
- i0.ɵɵelement(5, "app-overlay-info", 27);
279
+ i0.ɵɵelement(5, "app-overlay-info", 29);
278
280
  i0.ɵɵpipe(6, "trustHtml");
279
281
  i0.ɵɵpipe(7, "translate");
280
282
  i0.ɵɵelementEnd();
281
- i0.ɵɵelement(8, "app-error", 11);
283
+ i0.ɵɵelement(8, "app-error", 13);
282
284
  i0.ɵɵelementEnd();
283
285
  } if (rf & 2) {
284
- const ctx_r15 = i0.ɵɵnextContext(2);
286
+ const ctx_r16 = i0.ɵɵnextContext(2);
285
287
  const _r0 = i0.ɵɵreference(1);
286
288
  i0.ɵɵadvance(4);
287
- i0.ɵɵproperty("showIcon", true)("formControl", ctx_r15.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
289
+ i0.ɵɵproperty("showIcon", true)("formControl", ctx_r16.wcEmpLowRtwDate)("showOnFocus", false)("iconAriaLabel", "When?");
288
290
  i0.ɵɵadvance(1);
289
291
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(6, 10, i0.ɵɵpipeBind1(7, 12, "weeklies.v2.employment.rtw.info.popup.2050")));
290
292
  i0.ɵɵadvance(3);
291
293
  i0.ɵɵclassMap("app-grid");
292
- i0.ɵɵproperty("field", ctx_r15.wcEmpLowRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(14, _c1, ctx_r15.required));
294
+ i0.ɵɵproperty("field", ctx_r16.wcEmpLowRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(14, _c1));
293
295
  } }
294
296
  function WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template(rf, ctx) { if (rf & 1) {
295
- const _r22 = i0.ɵɵgetCurrentView();
296
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 40);
297
+ const _r23 = i0.ɵɵgetCurrentView();
298
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 41);
297
299
  i0.ɵɵtext(2, "Return to work date");
298
300
  i0.ɵɵelementEnd();
299
- i0.ɵɵelementStart(3, "p-calendar", 41);
300
- i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.dateInput($event)); });
301
+ i0.ɵɵelementStart(3, "p-calendar", 42);
302
+ i0.ɵɵlistener("onInput", function WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r22.dateInput($event)); });
301
303
  i0.ɵɵelementEnd();
302
- i0.ɵɵelement(4, "app-error", 11);
304
+ i0.ɵɵelement(4, "app-error", 13);
303
305
  i0.ɵɵelementEnd();
304
306
  } if (rf & 2) {
305
- const ctx_r16 = i0.ɵɵnextContext(2);
307
+ const ctx_r17 = i0.ɵɵnextContext(2);
306
308
  const _r0 = i0.ɵɵreference(1);
307
309
  i0.ɵɵadvance(3);
308
- i0.ɵɵproperty("showIcon", true)("formControl", ctx_r16.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
310
+ i0.ɵɵproperty("showIcon", true)("formControl", ctx_r17.wcEmpRtwDate)("showOnFocus", false)("iconAriaLabel", "Return to work date");
309
311
  i0.ɵɵadvance(1);
310
312
  i0.ɵɵclassMap("app-grid");
311
- i0.ɵɵproperty("field", ctx_r16.wcEmpRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(9, _c1, ctx_r16.required));
313
+ i0.ɵɵproperty("field", ctx_r17.wcEmpRtwDate)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c1));
312
314
  } }
313
315
  function WeeklyCertEmployerComponentQe_ion_row_4_div_24_Template(rf, ctx) { if (rf & 1) {
314
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 42);
316
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 43);
315
317
  i0.ɵɵtext(2);
316
318
  i0.ɵɵpipe(3, "translate");
317
319
  i0.ɵɵelementEnd();
318
- i0.ɵɵelement(4, "app-dropdown", 48)(5, "app-error", 11);
320
+ i0.ɵɵelement(4, "app-dropdown", 49)(5, "app-error", 13);
319
321
  i0.ɵɵelementEnd();
320
322
  } if (rf & 2) {
321
- const ctx_r17 = i0.ɵɵnextContext(2);
323
+ const ctx_r18 = i0.ɵɵnextContext(2);
322
324
  const _r0 = i0.ɵɵreference(1);
323
325
  i0.ɵɵadvance(2);
324
326
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.reason.separation.discharge"));
325
327
  i0.ɵɵadvance(2);
326
- i0.ɵɵproperty("options", ctx_r17.dischargeReasonOptionsAll)("formControl", ctx_r17.discharged)("autoDisplayFirst", false);
328
+ i0.ɵɵproperty("options", ctx_r18.dischargeReasonOptionsAll)("formControl", ctx_r18.discharged)("autoDisplayFirst", false);
327
329
  i0.ɵɵadvance(1);
328
330
  i0.ɵɵclassMap("app-grid");
329
- i0.ɵɵproperty("field", ctx_r17.discharged)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
331
+ i0.ɵɵproperty("field", ctx_r18.discharged)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
330
332
  } }
331
333
  function WeeklyCertEmployerComponentQe_ion_row_4_div_25_Template(rf, ctx) { if (rf & 1) {
332
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 44);
334
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 45);
333
335
  i0.ɵɵtext(2);
334
336
  i0.ɵɵpipe(3, "translate");
335
337
  i0.ɵɵelementEnd();
336
- i0.ɵɵelement(4, "app-dropdown", 49)(5, "app-error", 11);
338
+ i0.ɵɵelement(4, "app-dropdown", 50)(5, "app-error", 13);
337
339
  i0.ɵɵelementEnd();
338
340
  } if (rf & 2) {
339
- const ctx_r18 = i0.ɵɵnextContext(2);
341
+ const ctx_r19 = i0.ɵɵnextContext(2);
340
342
  const _r0 = i0.ɵɵreference(1);
341
343
  i0.ɵɵadvance(2);
342
344
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.reason.separation.quit"));
343
345
  i0.ɵɵadvance(2);
344
- i0.ɵɵproperty("options", ctx_r18.volQuitReasonOptionsAll)("formControl", ctx_r18.voluntaryQuit)("autoDisplayFirst", false);
346
+ i0.ɵɵproperty("options", ctx_r19.volQuitReasonOptionsAll)("formControl", ctx_r19.voluntaryQuit)("autoDisplayFirst", false);
345
347
  i0.ɵɵadvance(1);
346
348
  i0.ɵɵclassMap("app-grid");
347
- i0.ɵɵproperty("field", ctx_r18.voluntaryQuit)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
349
+ i0.ɵɵproperty("field", ctx_r19.voluntaryQuit)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c2));
348
350
  } }
349
351
  function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1) {
350
- i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 6)(2, "div", 7)(3, "div", 8)(4, "b");
352
+ i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 8)(2, "div", 9)(3, "div", 10)(4, "b");
351
353
  i0.ɵɵtext(5);
352
354
  i0.ɵɵelementEnd()();
353
- i0.ɵɵelementStart(6, "section", 46);
354
- i0.ɵɵelement(7, "input", 34)(8, "input", 34)(9, "input", 34)(10, "input", 34)(11, "input", 34)(12, "input", 34)(13, "input", 34)(14, "input", 34);
355
+ i0.ɵɵelementStart(6, "section", 47);
356
+ i0.ɵɵelement(7, "input", 35)(8, "input", 35)(9, "input", 35)(10, "input", 35)(11, "input", 35)(12, "input", 35)(13, "input", 35)(14, "input", 35);
355
357
  i0.ɵɵelementEnd();
356
- i0.ɵɵelementStart(15, "div", 8)(16, "label", 31);
358
+ i0.ɵɵelementStart(15, "div", 10)(16, "label", 33);
357
359
  i0.ɵɵtext(17, "What's your employment status with this employer?");
358
360
  i0.ɵɵelementEnd();
359
- i0.ɵɵelement(18, "app-dropdown", 47)(19, "br")(20, "app-error", 11);
361
+ i0.ɵɵelement(18, "app-dropdown", 48)(19, "br")(20, "app-error", 13);
360
362
  i0.ɵɵelementEnd();
361
- i0.ɵɵtemplate(21, WeeklyCertEmployerComponentQe_ion_row_4_div_21_Template, 5, 9, "div", 33)(22, WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template, 9, 16, "div", 33)(23, WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template, 5, 11, "div", 33)(24, WeeklyCertEmployerComponentQe_ion_row_4_div_24_Template, 6, 12, "div", 33)(25, WeeklyCertEmployerComponentQe_ion_row_4_div_25_Template, 6, 12, "div", 33);
362
- i0.ɵɵelementStart(26, "div", 8)(27, "label", 22);
363
+ i0.ɵɵtemplate(21, WeeklyCertEmployerComponentQe_ion_row_4_div_21_Template, 5, 8, "div", 4)(22, WeeklyCertEmployerComponentQe_ion_row_4_div_22_Template, 9, 15, "div", 4)(23, WeeklyCertEmployerComponentQe_ion_row_4_div_23_Template, 5, 10, "div", 4)(24, WeeklyCertEmployerComponentQe_ion_row_4_div_24_Template, 6, 12, "div", 4)(25, WeeklyCertEmployerComponentQe_ion_row_4_div_25_Template, 6, 12, "div", 4);
364
+ i0.ɵɵelementStart(26, "div", 10)(27, "label", 24);
363
365
  i0.ɵɵtext(28, "Last day worked");
364
366
  i0.ɵɵelementEnd();
365
- i0.ɵɵelement(29, "p-calendar", 23)(30, "app-error", 11);
367
+ i0.ɵɵelement(29, "p-calendar", 25)(30, "app-error", 13);
366
368
  i0.ɵɵelementEnd();
367
- i0.ɵɵelementStart(31, "div", 8)(32, "label", 26);
369
+ i0.ɵɵelementStart(31, "div", 10)(32, "label", 28);
368
370
  i0.ɵɵtext(33, "Total Gross Earnings");
369
371
  i0.ɵɵelementEnd();
370
- i0.ɵɵelement(34, "app-overlay-info", 27);
372
+ i0.ɵɵelement(34, "app-overlay-info", 29);
371
373
  i0.ɵɵpipe(35, "trustHtml");
372
374
  i0.ɵɵpipe(36, "translate");
373
- i0.ɵɵelement(37, "p-inputNumber", 28)(38, "app-error", 11);
375
+ i0.ɵɵelement(37, "p-inputNumber", 30)(38, "app-error", 13);
374
376
  i0.ɵɵelementEnd();
375
- i0.ɵɵelementStart(39, "div", 8)(40, "label", 29);
377
+ i0.ɵɵelementStart(39, "div", 10)(40, "label", 31);
376
378
  i0.ɵɵtext(41, "Hours worked");
377
379
  i0.ɵɵelementEnd();
378
- i0.ɵɵelement(42, "p-inputNumber", 30)(43, "app-error", 11);
380
+ i0.ɵɵelement(42, "p-inputNumber", 32)(43, "app-error", 13);
379
381
  i0.ɵɵelementEnd()()()();
380
382
  } if (rf & 2) {
381
383
  const ctx_r2 = i0.ɵɵnextContext();
@@ -402,7 +404,7 @@ function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1)
402
404
  i0.ɵɵproperty("options", ctx_r2.employmentStatusOptionsAll)("formControl", ctx_r2.wcEmpStatus)("autoDisplayFirst", false);
403
405
  i0.ɵɵadvance(2);
404
406
  i0.ɵɵclassMap("app-grid");
405
- i0.ɵɵproperty("field", ctx_r2.wcEmpStatus)("form", _r0)("errDef", i0.ɵɵpureFunction1(50, _c1, ctx_r2.required));
407
+ i0.ɵɵproperty("field", ctx_r2.wcEmpStatus)("form", _r0)("errDef", i0.ɵɵpureFunction0(50, _c1));
406
408
  i0.ɵɵadvance(1);
407
409
  i0.ɵɵproperty("ngIf", ctx_r2.wcEmpStatus.value == "LWLO");
408
410
  i0.ɵɵadvance(1);
@@ -417,26 +419,37 @@ function WeeklyCertEmployerComponentQe_ion_row_4_Template(rf, ctx) { if (rf & 1)
417
419
  i0.ɵɵproperty("iconAriaLabel", "Last day worked")("showIcon", true)("formControl", ctx_r2.lastDayWorked)("minDate", ctx_r2.sunDate)("maxDate", ctx_r2.satDate)("defaultDate", ctx_r2.sunDate);
418
420
  i0.ɵɵadvance(1);
419
421
  i0.ɵɵclassMap("app-grid");
420
- i0.ɵɵproperty("field", ctx_r2.lastDayWorked)("form", _r0)("errDef", i0.ɵɵpureFunction2(52, _c4, ctx_r2.required, "Date should be between " + ctx_r2.dynamicParam.sunday_date + " and " + ctx_r2.dynamicParam.saturday_date + "."));
422
+ i0.ɵɵproperty("field", ctx_r2.lastDayWorked)("form", _r0)("errDef", i0.ɵɵpureFunction1(51, _c4, "Date should be between " + ctx_r2.dynamicParam.sunday_date + " and " + ctx_r2.dynamicParam.saturday_date + "."));
421
423
  i0.ɵɵadvance(4);
422
424
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(35, 46, i0.ɵɵpipeBind1(36, 48, "weeklies.v2.employment.rtw.info.popup.1000")));
423
425
  i0.ɵɵadvance(3);
424
426
  i0.ɵɵproperty("formControl", ctx_r2.wsEmpAmtEarned);
425
427
  i0.ɵɵadvance(1);
426
428
  i0.ɵɵclassMap("app-grid");
427
- i0.ɵɵproperty("field", ctx_r2.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction1(55, _c1, ctx_r2.required));
429
+ i0.ɵɵproperty("field", ctx_r2.wsEmpAmtEarned)("form", _r0)("errDef", i0.ɵɵpureFunction0(53, _c5));
428
430
  i0.ɵɵadvance(4);
429
431
  i0.ɵɵproperty("formControl", ctx_r2.wcEmpHoursWorked);
430
432
  i0.ɵɵadvance(1);
431
433
  i0.ɵɵclassMap("app-grid");
432
- i0.ɵɵproperty("field", ctx_r2.wcEmpHoursWorked)("form", _r0)("errDef", i0.ɵɵpureFunction1(57, _c1, ctx_r2.required));
434
+ i0.ɵɵproperty("field", ctx_r2.wcEmpHoursWorked)("form", _r0)("errDef", i0.ɵɵpureFunction0(54, _c6));
435
+ } }
436
+ const _c7 = a0 => ({ earningsRequired: a0 });
437
+ function WeeklyCertEmployerComponentQe_div_7_Template(rf, ctx) { if (rf & 1) {
438
+ i0.ɵɵelementStart(0, "div", 10);
439
+ i0.ɵɵelement(1, "app-error", 51);
440
+ i0.ɵɵpipe(2, "date");
441
+ i0.ɵɵelementEnd();
442
+ } if (rf & 2) {
443
+ const ctx_r3 = i0.ɵɵnextContext();
444
+ const _r0 = i0.ɵɵreference(1);
445
+ i0.ɵɵadvance(1);
446
+ i0.ɵɵproperty("form", _r0)("field", ctx_r3.empForm)("errDef", i0.ɵɵpureFunction1(6, _c7, "Please report gross earnings and hours worked for the week ending " + i0.ɵɵpipeBind2(2, 3, ctx_r3.satDate, "MM/dd/yyyy") + "."));
433
447
  } }
434
448
  export class WeeklyCertEmployerComponentQe {
435
- constructor(util, formBuilder, cs, translateService) {
449
+ constructor(util, formBuilder, cs) {
436
450
  this.util = util;
437
451
  this.formBuilder = formBuilder;
438
452
  this.cs = cs;
439
- this.translateService = translateService;
440
453
  this.success = new EventEmitter();
441
454
  this.onClose = new EventEmitter();
442
455
  this.empToEdit = new EmployerInfoModel();
@@ -445,18 +458,9 @@ export class WeeklyCertEmployerComponentQe {
445
458
  this.dischargeReasonOptionsAll = [];
446
459
  this.volQuitReasonOptionsAll = [];
447
460
  this.employmentStatusOptionsAll = [];
448
- this.translateService.use(localStorage.getItem("language"));
449
461
  }
450
462
  ngOnInit() {
451
463
  this.loadMasterData();
452
- if (localStorage.getItem("language") === "es") {
453
- this.yesNoOption = ComboOption.YES_NO_ES;
454
- this.statesCombo = ComboOption.US_STATES_ES;
455
- }
456
- else {
457
- this.yesNoOption = ComboOption.YES_NO;
458
- this.statesCombo = ComboOption.US_STATES;
459
- }
460
464
  this.satDate = this.util.getEnteredDateFromString(this.dynamicParam.saturday_date);
461
465
  this.sunDate = this.util.getEnteredDateFromString(this.dynamicParam.sunday_date);
462
466
  this.initilizeEmployerInforForm();
@@ -474,6 +478,11 @@ export class WeeklyCertEmployerComponentQe {
474
478
  });
475
479
  }
476
480
  add() {
481
+ // Mark all controls as touched to trigger validation display
482
+ this.empForm.markAllAsTouched();
483
+ // Manually update value and validity
484
+ this.empForm.updateValueAndValidity();
485
+ // Check if form is valid after conditional validation
477
486
  if (this.empForm.valid) {
478
487
  this.empForm.value.isPartTimeEmployerEdited = true;
479
488
  this.success.emit(this.empForm.value);
@@ -504,6 +513,8 @@ export class WeeklyCertEmployerComponentQe {
504
513
  'tempWcEmployerId': [empInfo.tempWcEmployerId ? empInfo.tempWcEmployerId : new Date().getTime()],
505
514
  'potentialIssueId': [empInfo.potentialIssueId ? empInfo.potentialIssueId : null],
506
515
  'isPartTimeEmployer': [empInfo.isPartTimeEmployer ? empInfo.isPartTimeEmployer : null]
516
+ }, {
517
+ validators: AppValidators.requireEarningsIfWorked(this.sunDate, this.satDate)
507
518
  });
508
519
  this.wcEmpStatus.valueChanges.subscribe(val => {
509
520
  if (val && val == 'RTWF') {
@@ -609,34 +620,25 @@ export class WeeklyCertEmployerComponentQe {
609
620
  }
610
621
  }
611
622
  }
612
- get required() {
613
- return this.translateService.instant('common.required');
614
- }
615
- get zipLength() {
616
- return this.translateService.instant('common.zipcode.length');
617
- }
618
- get zipOnlyNumbers() {
619
- return this.translateService.instant('common.zipcode.only.numbers');
620
- }
621
- get zipInvalid() {
622
- return this.translateService.instant('common.zipcode.invalid');
623
- }
624
- static { this.ɵfac = function WeeklyCertEmployerComponentQe_Factory(t) { return new (t || WeeklyCertEmployerComponentQe)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.ClaimService), i0.ɵɵdirectiveInject(i4.TranslateService)); }; }
623
+ static { this.ɵfac = function WeeklyCertEmployerComponentQe_Factory(t) { return new (t || WeeklyCertEmployerComponentQe)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.ClaimService)); }; }
625
624
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WeeklyCertEmployerComponentQe, selectors: [["app-weekly-cert-employer-qe"]], viewQuery: function WeeklyCertEmployerComponentQe_Query(rf, ctx) { if (rf & 1) {
626
625
  i0.ɵɵviewQuery(_c0, 5);
627
626
  } if (rf & 2) {
628
627
  let _t;
629
628
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.empFormDirective = _t.first);
630
- } }, inputs: { empToEdit: "empToEdit", dynamicParam: "dynamicParam" }, outputs: { success: "success", onClose: "onClose" }, decls: 11, vars: 3, consts: [[3, "formGroup"], ["empFormDirective", "ngForm"], [4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "formgrid"], [1, "field"], ["for", "wcEmpName"], [3, "formControl", "empType", "onFound"], [3, "field", "form", "errDef"], ["for", "wcEmpAddressLine1"], ["id", "wcEmpAddressLine1", "type", "input", "pInputText", "", 3, "formControl"], ["for", "wcEmpCity"], ["id", "wcEmpCity", "type", "input", "pInputText", "", 3, "formControl"], [2, "padding", "0px"], ["for", "wcEmpState"], ["inputId", "wcEmpState", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpState", 3, "options", "formControl", "autoDisplayFirst"], ["size", "1"], ["for", "wsZipCode"], ["id", "wsZipCode", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", 3, "formControl"], ["for", "lastDayWorked"], ["inputId", "lastDayWorked", "appendTo", "body", 3, "iconAriaLabel", "showIcon", "formControl", "minDate", "maxDate", "defaultDate"], ["for", "wsPhoneNumber"], ["inputId", "wsPhoneNumber", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "wsEmpAmtEarned"], [2, "padding-left", "8px", "padding-top", "3px", 3, "overlayText"], ["inputId", "wsEmpAmtEarned", "mode", "currency", "currency", "USD", "locale", "en-US", "maxlength", "10", 3, "formControl"], ["for", "wcEmpHoursWorked"], ["inputId", "wcEmpHoursWorked", "maxlength", "10", "useGrouping", "false", 3, "formControl"], ["for", "wcEmpStatus"], ["inputId", "wcEmpStatus", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpStatus1", 3, "options", "formControl", "autoDisplayFirst"], ["class", "field", 4, "ngIf"], ["type", "hidden", 3, "formControl"], ["for", "haveReturnToWorkDate"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl"], ["for", "wcEmpLowRtwDate"], [2, "display", "flex"], ["inputId", "wcEmpLowRtwDate", "appendTo", "body", "placeholder", "mm/dd/yyyy", 3, "showIcon", "formControl", "showOnFocus", "iconAriaLabel", "onInput"], ["for", "wcEmpRtwDate"], ["inputId", "wcEmpRtwDate", "appendTo", "body", "placeholder", "mm/dd/yyyy", "optionValue", "value", 3, "showIcon", "formControl", "showOnFocus", "iconAriaLabel", "onInput"], ["for", "dischargeDetail"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "discharged1", 3, "options", "formControl", "autoDisplayFirst"], ["for", "volQuitDetails"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "voluntaryQuit1", 3, "options", "formControl", "autoDisplayFirst"], ["hidden", ""], ["inputId", "wcEmpStatus", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpStatus2", 3, "options", "formControl", "autoDisplayFirst"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "discharged2", 3, "options", "formControl", "autoDisplayFirst"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "voluntaryQuit2", 3, "options", "formControl", "autoDisplayFirst"]], template: function WeeklyCertEmployerComponentQe_Template(rf, ctx) { if (rf & 1) {
629
+ } }, inputs: { empToEdit: "empToEdit", dynamicParam: "dynamicParam" }, outputs: { success: "success", onClose: "onClose" }, decls: 14, vars: 4, consts: [[3, "formGroup"], ["empFormDirective", "ngForm"], [4, "ngIf"], [2, "margin", "0 10px auto"], ["class", "field", 4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "formgrid"], [1, "field"], ["for", "wcEmpName"], [3, "formControl", "empType", "onFound"], [3, "field", "form", "errDef"], ["for", "wcEmpAddressLine1"], ["id", "wcEmpAddressLine1", "type", "input", "pInputText", "", 3, "formControl"], ["for", "wcEmpCity"], ["id", "wcEmpCity", "type", "input", "pInputText", "", 3, "formControl"], [2, "padding", "0px"], ["for", "wcEmpState"], ["inputId", "wcEmpState", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpState", 3, "options", "formControl", "autoDisplayFirst"], ["size", "1"], ["for", "wsZipCode"], ["id", "wsZipCode", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", 3, "formControl"], ["for", "lastDayWorked"], ["inputId", "lastDayWorked", "appendTo", "body", 3, "iconAriaLabel", "showIcon", "formControl", "minDate", "maxDate", "defaultDate"], ["for", "wsPhoneNumber"], ["inputId", "wsPhoneNumber", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "wsEmpAmtEarned"], [2, "padding-left", "8px", "padding-top", "3px", 3, "overlayText"], ["inputId", "wsEmpAmtEarned", "mode", "currency", "currency", "USD", "locale", "en-US", "maxlength", "10", 3, "formControl"], ["for", "wcEmpHoursWorked"], ["inputId", "wcEmpHoursWorked", "maxlength", "10", "useGrouping", "false", 3, "formControl"], ["for", "wcEmpStatus"], ["inputId", "wcEmpStatus", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpStatus1", 3, "options", "formControl", "autoDisplayFirst"], ["type", "hidden", 3, "formControl"], ["for", "haveReturnToWorkDate"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl"], ["for", "wcEmpLowRtwDate"], [2, "display", "flex"], ["inputId", "wcEmpLowRtwDate", "appendTo", "body", "placeholder", "mm/dd/yyyy", 3, "showIcon", "formControl", "showOnFocus", "iconAriaLabel", "onInput"], ["for", "wcEmpRtwDate"], ["inputId", "wcEmpRtwDate", "appendTo", "body", "placeholder", "mm/dd/yyyy", "optionValue", "value", 3, "showIcon", "formControl", "showOnFocus", "iconAriaLabel", "onInput"], ["for", "dischargeDetail"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "discharged1", 3, "options", "formControl", "autoDisplayFirst"], ["for", "volQuitDetails"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "voluntaryQuit1", 3, "options", "formControl", "autoDisplayFirst"], ["hidden", ""], ["inputId", "wcEmpStatus", "optionLabel", "text", "optionValue", "value", "appendTo", "body", "inputId", "wcEmpStatus2", 3, "options", "formControl", "autoDisplayFirst"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "discharged2", 3, "options", "formControl", "autoDisplayFirst"], ["optionLabel", "text", "appendTo", "body", "optionValue", "value", "inputId", "voluntaryQuit2", 3, "options", "formControl", "autoDisplayFirst"], [3, "form", "field", "errDef"]], template: function WeeklyCertEmployerComponentQe_Template(rf, ctx) { if (rf & 1) {
631
630
  i0.ɵɵelementStart(0, "form", 0, 1)(2, "ion-grid");
632
- i0.ɵɵtemplate(3, WeeklyCertEmployerComponentQe_ion_row_3_Template, 69, 104, "ion-row", 2)(4, WeeklyCertEmployerComponentQe_ion_row_4_Template, 44, 59, "ion-row", 2);
633
- i0.ɵɵelementStart(5, "ion-row")(6, "ion-col", 3)(7, "ion-button", 4);
634
- i0.ɵɵlistener("click", function WeeklyCertEmployerComponentQe_Template_ion_button_click_7_listener() { return ctx.close(); });
635
- i0.ɵɵtext(8, "Clear");
631
+ i0.ɵɵtemplate(3, WeeklyCertEmployerComponentQe_ion_row_3_Template, 69, 92, "ion-row", 2)(4, WeeklyCertEmployerComponentQe_ion_row_4_Template, 44, 55, "ion-row", 2);
632
+ i0.ɵɵelementStart(5, "ion-row", 3)(6, "ion-col");
633
+ i0.ɵɵtemplate(7, WeeklyCertEmployerComponentQe_div_7_Template, 3, 8, "div", 4);
634
+ i0.ɵɵelementEnd()();
635
+ i0.ɵɵelementStart(8, "ion-row")(9, "ion-col", 5)(10, "ion-button", 6);
636
+ i0.ɵɵlistener("click", function WeeklyCertEmployerComponentQe_Template_ion_button_click_10_listener() { return ctx.close(); });
637
+ i0.ɵɵtext(11, "Clear");
636
638
  i0.ɵɵelementEnd();
637
- i0.ɵɵelementStart(9, "ion-button", 5);
638
- i0.ɵɵlistener("click", function WeeklyCertEmployerComponentQe_Template_ion_button_click_9_listener() { return ctx.add(); });
639
- i0.ɵɵtext(10, "Add");
639
+ i0.ɵɵelementStart(12, "ion-button", 7);
640
+ i0.ɵɵlistener("click", function WeeklyCertEmployerComponentQe_Template_ion_button_click_12_listener() { return ctx.add(); });
641
+ i0.ɵɵtext(13, "Add");
640
642
  i0.ɵɵelementEnd()()()()();
641
643
  } if (rf & 2) {
642
644
  i0.ɵɵproperty("formGroup", ctx.empForm);
@@ -644,12 +646,14 @@ export class WeeklyCertEmployerComponentQe {
644
646
  i0.ɵɵproperty("ngIf", !(ctx.empToEdit == null ? null : ctx.empToEdit.isPartTimeEmployer));
645
647
  i0.ɵɵadvance(1);
646
648
  i0.ɵɵproperty("ngIf", ctx.empToEdit == null ? null : ctx.empToEdit.isPartTimeEmployer);
647
- } }, dependencies: [i5.IonButton, i5.IonCol, i5.IonGrid, i5.IonRow, i6.NgIf, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i7.InputText, i8.InputMask, i9.Calendar, i10.SelectButton, i11.InputNumber, i12.ErrorComponent, i13.OverlayInfoComponent, i14.SearchEmployerComponent, i15.Dropdown, i4.TranslatePipe, i16.TrustHtmlPipe], styles: ["[_nghost-%COMP%] .p-fluid .p-buttonset{display:inline-flex!important}"] }); }
649
+ i0.ɵɵadvance(3);
650
+ i0.ɵɵproperty("ngIf", ctx.empForm.invalid && (ctx.empForm.errors == null ? null : ctx.empForm.errors.earningsRequired));
651
+ } }, dependencies: [i4.IonButton, i4.IonCol, i4.IonGrid, i4.IonRow, i5.NgIf, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i6.InputText, i7.InputMask, i8.Calendar, i9.SelectButton, i10.InputNumber, i11.ErrorComponent, i12.OverlayInfoComponent, i13.SearchEmployerComponent, i14.Dropdown, i5.DatePipe, i15.TranslatePipe, i16.TrustHtmlPipe], styles: ["[_nghost-%COMP%] .p-fluid .p-buttonset{display:inline-flex!important}"] }); }
648
652
  }
649
653
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeeklyCertEmployerComponentQe, [{
650
654
  type: Component,
651
- 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\">Employer Name</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\">Street Address</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\">City</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\">State</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\">Zip Code</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\">Last day worked</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\">Phone No.</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\">Total Gross Earnings</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 }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">Hours worked</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 }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"wcEmpStatus\">What's your employment status with this employer?</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\">Do you know when you're returning to full-time work?</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\">When?</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\">Return to work date</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\">What's your employment status with this employer?</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\">Do you know when you're returning to full-time work?</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\">When?</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\">Return to work date</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\">Last day worked</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\">Total Gross Earnings</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 }\"></app-error>\r\n </div>\r\n \r\n <div class=\"field\">\r\n <label for=\"wcEmpHoursWorked\">Hours worked</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 }\"></app-error>\r\n </div>\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\">Clear</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">Add</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"] }]
652
- }], () => [{ type: i1.UtilService }, { type: i2.UntypedFormBuilder }, { type: i3.ClaimService }, { type: i4.TranslateService }], { empFormDirective: [{
655
+ 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\">Employer Name</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\">Street Address</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\">City</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\">State</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\">Zip Code</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: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\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\">Last day worked</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\">Phone No.</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\">Total Gross Earnings</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\">Hours worked</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\">What's your employment status with this employer?</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\">Do you know when you're returning to full-time work?</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\">When?</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\">Return to work date</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\">What's your employment status with this employer?</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\">Do you know when you're returning to full-time work?</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\">When?</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\">Return to work date</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\">Last day worked</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\">Total Gross Earnings</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\">Hours worked</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>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">Clear</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">Add</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"] }]
656
+ }], () => [{ type: i1.UtilService }, { type: i2.UntypedFormBuilder }, { type: i3.ClaimService }], { empFormDirective: [{
653
657
  type: ViewChild,
654
658
  args: ['empFormDirective', { static: false }]
655
659
  }], success: [{
@@ -661,5 +665,5 @@ export class WeeklyCertEmployerComponentQe {
661
665
  }], dynamicParam: [{
662
666
  type: Input
663
667
  }] }); })();
664
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeeklyCertEmployerComponentQe, { className: "WeeklyCertEmployerComponentQe", filePath: "lib\\components\\weekly-cert-employer\\weekly-cert-employer.component.ts", lineNumber: 16 }); })();
665
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS1jZXJ0LWVtcGxveWVyL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktY2VydC1lbXBsb3llci93ZWVrbHktY2VydC1lbXBsb3llci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM0RnBELDhCQUF1RCxnQkFBQTtJQUNuQixvRUFBb0Q7SUFBQSxpQkFBUTtJQUM5RixxQ0FDcUMsb0JBQUE7SUFJdkMsaUJBQU07Ozs7SUFMWSxlQUF1QjtJQUF2Qiw0Q0FBdUIsNENBQUE7SUFFNUIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQUMsbURBQThCLGFBQUEsdURBQUE7Ozs7SUFJaEUsOEJBQTRGLGdCQUFBO0lBQzdELHFCQUFLO0lBQUEsaUJBQVE7SUFDMUMsK0JBQTRCLHFCQUFBO0lBRXFCLG9NQUFXLGVBQUEsd0JBQWlCLENBQUEsSUFBQztJQUEyQixpQkFBYTtJQUNwSCx1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OztZQTNQMUUsdUNBQXFCO1lBRWIsZUFBc0M7WUFBdEMseUZBQXNDO1lBa0p0QyxlQUFxQztZQUFyQyxzRkFBcUM7OztpRkR0SXhDLDZCQUE2QjtjQUx6QyxTQUFTOzJCQUNFLDZCQUE2Qjt1SUFPaEMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQztZQUkvQyxPQUFPO2tCQUROLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxTQUFTO2tCQURmLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLOztrRkFkSyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llckluZm9Nb2RlbCwgRW1wbG95ZXJTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbXMvY2xhaW1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13ZWVrbHktY2VydC1lbXBsb3llci1xZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93ZWVrbHktY2VydC1lbXBsb3llci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5Q2VydEVtcGxveWVyQ29tcG9uZW50UWUgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdlbXBGb3JtRGlyZWN0aXZlJywge3N0YXRpYyA6IGZhbHNlfSkgXHJcbiAgcHVibGljIGVtcEZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgQE91dHB1dCgpIFxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVtcFRvRWRpdCA9IG5ldyBFbXBsb3llckluZm9Nb2RlbCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkeW5hbWljUGFyYW06IGFueTtcclxuXHJcbiAgcHVibGljIHllc05vT3B0aW9uID0gQ29tYm9PcHRpb24uWUVTX05PO1xyXG5cclxuICBwdWJsaWMgZW1wRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIHN0YXRlc0NvbWJvID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xyXG4gIHB1YmxpYyBzYXREYXRlIDogRGF0ZTtcclxuICBwdWJsaWMgc3VuRGF0ZSA6IERhdGU7XHJcblxyXG4gIHB1YmxpYyBkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsIDogVXRpbFNlcnZpY2UsIHB1YmxpYyBmb3JtQnVpbGRlciA6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIGNzIDogQ2xhaW1TZXJ2aWNlLCBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge3RoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID09PSBcImVzXCIpe1xyXG4gICAgICB0aGlzLnllc05vT3B0aW9uID0gQ29tYm9PcHRpb24uWUVTX05PX0VTO1xyXG4gICAgICB0aGlzLnN0YXRlc0NvbWJvID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnllc05vT3B0aW9uID0gQ29tYm9PcHRpb24uWUVTX05PO1xyXG4gICAgICB0aGlzLnN0YXRlc0NvbWJvID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zYXREYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlRnJvbVN0cmluZyh0aGlzLmR5bmFtaWNQYXJhbS5zYXR1cmRheV9kYXRlKTtcclxuICAgIHRoaXMuc3VuRGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZUZyb21TdHJpbmcodGhpcy5keW5hbWljUGFyYW0uc3VuZGF5X2RhdGUpO1xyXG4gICAgdGhpcy5pbml0aWxpemVFbXBsb3llckluZm9yRm9ybSgpO1xyXG4gIH1cclxuICBcclxuICBsb2FkTWFzdGVyRGF0YSgpIHtcclxuICAgIHRoaXMuY3MubG9hZE1hc3RlckRhdGEoKTtcclxuXHJcbiAgICB0aGlzLmNzLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY3MuZ2V0RGlzY2hhcmdlUmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNzLmdldFF1aXRSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFkZCgpe1xyXG4gICAgaWYodGhpcy5lbXBGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5lbXBGb3JtLnZhbHVlLmlzUGFydFRpbWVFbXBsb3llckVkaXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZW1wRm9ybS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZUVtcGxveWVySW5mb3JGb3JtKCl7XHJcbiAgICBsZXQgZW1wSW5mbyA9IHRoaXMuZW1wVG9FZGl0ID8gdGhpcy5lbXBUb0VkaXQgOiBuZXcgRW1wbG95ZXJJbmZvTW9kZWwoKTtcclxuICAgIHRoaXMuZW1wRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnbGFzdERheVdvcmtlZCcgOiBbZW1wSW5mby5sYXN0RGF5V29ya2VkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNCZXR3ZWVuKHRoaXMuc3VuRGF0ZSwgdGhpcy5zYXREYXRlKV0pXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZScgOiBbZW1wSW5mby5lbXBsb3llck5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnbGluZTEnIDogW2VtcEluZm8ubGluZTEsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnbGluZTInIDogW2VtcEluZm8ubGluZTIgXSxcclxuICAgICAgJ2NpdHknIDogW2VtcEluZm8uY2l0eSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdzdGF0ZScgOiBbZW1wSW5mby5zdGF0ZSAhPSB1bmRlZmluZWQgPyBlbXBJbmZvLnN0YXRlIDogdGhpcy51dGlsLmdldFN0YXRlKCksIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnZ3Jvc3NFYXJuaW5nJyA6IFtlbXBJbmZvLmdyb3NzRWFybmluZywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxyXG4gICAgICAncmVhc29uU2VwYXJhdGlvbicgOiBbZW1wSW5mby5yZWFzb25TZXBhcmF0aW9uICE9IHVuZGVmaW5lZCA/IGVtcEluZm8ucmVhc29uU2VwYXJhdGlvbiA6ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2hhdmVSZXR1cm5Ub1dvcmtEYXRlJyA6IFtlbXBJbmZvLmhhdmVSZXR1cm5Ub1dvcmtEYXRlXSxcclxuICAgICAgJ3JldHVyblRvV29ya0RhdGUnIDogW2VtcEluZm8ucmV0dXJuVG9Xb3JrRGF0ZV0sXHJcbiAgICAgICd2b2x1bnRhcnlRdWl0JyA6IFtlbXBJbmZvLnZvbHVudGFyeVF1aXRdLFxyXG4gICAgICAnZGlzY2hhcmdlZCcgOiBbZW1wSW5mby5kaXNjaGFyZ2VkXSxcclxuICAgICAgJ2hvdXJzV29ya2VkSW5XZWVrJyA6IFtlbXBJbmZvLmhvdXJzV29ya2VkSW5XZWVrLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICd6aXAnIDogW2VtcEluZm8uemlwICE9IHVuZGVmaW5lZCA/IGVtcEluZm8uemlwIDogJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc1ZhbGlkWmlwQ29kZV0pXSxcclxuICAgICAgJ2VtcGxveWVyUGhvbmUnIDogW2VtcEluZm8uZW1wbG95ZXJQaG9uZSAhPSB1bmRlZmluZWQgPyBlbXBJbmZvLmVtcGxveWVyUGhvbmUgOiAnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxyXG4gICAgICAnZW1wbG95ZXJJZCcgOiBbZW1wSW5mby5lbXBsb3llcklkXSxcclxuICAgICAgJ3RlbXBXY0VtcGxveWVySWQnIDogW2VtcEluZm8udGVtcFdjRW1wbG95ZXJJZCA/IGVtcEluZm8udGVtcFdjRW1wbG95ZXJJZCA6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXSxcclxuICAgICAgJ3BvdGVudGlhbElzc3VlSWQnIDogW2VtcEluZm8ucG90ZW50aWFsSXNzdWVJZCA/IGVtcEluZm8ucG90ZW50aWFsSXNzdWVJZCA6IG51bGxdLFxyXG4gICAgICAnaXNQYXJ0VGltZUVtcGxveWVyJyA6IFtlbXBJbmZvLmlzUGFydFRpbWVFbXBsb3llciA/IGVtcEluZm8uaXNQYXJ0VGltZUVtcGxveWVyIDogbnVsbF1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLndjRW1wU3RhdHVzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgaWYodmFsICYmIHZhbCA9PSAnUlRXRicpe1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndjRW1wTG93UnR3RGF0ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53Y0VtcExvd1J0d0RhdGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdMV0xPJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaGF2ZVJldHVyblRvV29ya0RhdGUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuaGF2ZVJldHVyblRvV29ya0RhdGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZih2YWwgJiYgdmFsID09ICdEQ0ZJJyl7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGlzY2hhcmdlZCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5kaXNjaGFyZ2VkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYodmFsICYmIHZhbCA9PSAnVk9MUScpe1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnZvbHVudGFyeVF1aXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMudm9sdW50YXJ5UXVpdCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXQgaGF2ZVJldHVyblRvV29ya0RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2hhdmVSZXR1cm5Ub1dvcmtEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdm9sdW50YXJ5UXVpdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1sndm9sdW50YXJ5UXVpdCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc2NoYXJnZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2Rpc2NoYXJnZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0RGF5V29ya2VkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydsYXN0RGF5V29ya2VkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBOYW1lKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydlbXBsb3llck5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcEFkZHJlc3NMaW5lMSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snbGluZTEnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcEFkZHJlc3NMaW5lMigpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snbGluZTInXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcENpdHkoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2NpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcFN0YXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydzdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdzRW1wQW10RWFybmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydncm9zc0Vhcm5pbmcnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcFN0YXR1cygpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1sncmVhc29uU2VwYXJhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wTG93UnR3RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1sncmV0dXJuVG9Xb3JrRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wUnR3RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1sncmV0dXJuVG9Xb3JrRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wV29ya2VkRm9yTW9yZUVtcGxveWVyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWyd3Y0VtcFdvcmtlZEZvck1vcmVFbXBsb3llciddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wSG91cnNXb3JrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2hvdXJzV29ya2VkSW5XZWVrJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd3NaaXBDb2RlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWyd6aXAnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c1Bob25lTnVtYmVyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydlbXBsb3llclBob25lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgaGlkRW1wSWQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2VtcGxveWVySWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBpc1BhcnRUaW1lRW1wbG95ZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2lzUGFydFRpbWVFbXBsb3llciddO1xyXG4gIH1cclxuICBzZXRFbXBsb3llcihlbXBsb3llciA6IEVtcGxveWVyU2VhcmNoUmVzdWx0KXtcclxuICAgIHRoaXMud2NFbXBOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICB0aGlzLndjRW1wQWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XHJcbiAgICB0aGlzLndjRW1wQWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XHJcbiAgICB0aGlzLndjRW1wQ2l0eS5zZXRWYWx1ZShlbXBsb3llci5jaXR5KTtcclxuICAgIHRoaXMud2NFbXBTdGF0ZS5zZXRWYWx1ZShlbXBsb3llci5zdGF0ZS52YWx1ZSk7XHJcbiAgICB0aGlzLndzWmlwQ29kZS5zZXRWYWx1ZShlbXBsb3llci56aXApO1xyXG4gICAgdGhpcy5oaWRFbXBJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcclxuICB9XHJcblxyXG4gIGRhdGVJbnB1dChldmVudCl7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlIDogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmKGN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCByZXF1aXJlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24ucmVxdWlyZWQnKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHppcExlbmd0aCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24uemlwY29kZS5sZW5ndGgnKTtcclxuICB9XHJcblxyXG4gIGdldCB6aXBPbmx5TnVtYmVycygpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24uemlwY29kZS5vbmx5Lm51bWJlcnMnKTtcclxuICB9XHJcblxyXG4gIGdldCB6aXBJbnZhbGlkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi56aXBjb2RlLmludmFsaWQnKTtcclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJlbXBGb3JtXCIgI2VtcEZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3cgKm5nSWYgPSBcIiFlbXBUb0VkaXQ/LmlzUGFydFRpbWVFbXBsb3llclwiPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBmb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBOYW1lXCI+RW1wbG95ZXIgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cIndjRW1wTmFtZVwiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIiBbZW1wVHlwZV09XCInUkVHJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBOYW1lJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wQWRkcmVzc0xpbmUxXCI+U3RyZWV0IEFkZHJlc3M8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndjRW1wQWRkcmVzc0xpbmUxXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid2NFbXBBZGRyZXNzTGluZTFcIiAvPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcEFkZHJlc3NMaW5lMScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcENpdHlcIj5DaXR5PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ3Y0VtcENpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3Y0VtcENpdHlcIiAvPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcENpdHknIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBTdGF0ZVwiPlN0YXRlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwid2NFbXBTdGF0ZVwiIFtvcHRpb25zXT1cInN0YXRlc0NvbWJvXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdGVcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3Y0VtcFN0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzWmlwQ29kZVwiPlppcCBDb2RlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid3NaaXBDb2RlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid3NaaXBDb2RlXCIgbWlubGVuZ3RoPVwiNVwiIG1heGxlbmd0aD1cIjlcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3c1ppcENvZGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRMZW5ndGg6IHppcExlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTnVtYmVyOiB6aXBPbmx5TnVtYmVyc1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0RGF5V29ya2VkXCI+TGFzdCBkYXkgd29ya2VkPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbaWNvbkFyaWFMYWJlbF09XCInTGFzdCBkYXkgd29ya2VkJ1wiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImxhc3REYXlXb3JrZWRcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwibGFzdERheVdvcmtlZFwiIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2xhc3REYXlXb3JrZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIGR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSArICcgYW5kICcgKyBkeW5hbWljUGFyYW0uc2F0dXJkYXlfZGF0ZSArICcuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIGZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid3NQaG9uZU51bWJlclwiPlBob25lIE5vLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXRNYXNrIGlucHV0SWQ9XCJ3c1Bob25lTnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cIndzUGhvbmVOdW1iZXJcIiBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIiB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NQaG9uZU51bWJlcicgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid3NFbXBBbXRFYXJuZWRcIj5Ub3RhbCBHcm9zcyBFYXJuaW5nczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cIid3ZWVrbGllcy52Mi5lbXBsb3ltZW50LnJ0dy5pbmZvLnBvcHVwLjEwMDAnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJ3c0VtcEFtdEVhcm5lZFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbG9jYWxlPVwiZW4tVVNcIiBbZm9ybUNvbnRyb2xdPVwid3NFbXBBbXRFYXJuZWRcIiBtYXhsZW5ndGg9XCIxMFwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NFbXBBbXRFYXJuZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wSG91cnNXb3JrZWRcIj5Ib3VycyB3b3JrZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJ3Y0VtcEhvdXJzV29ya2VkXCIgW2Zvcm1Db250cm9sXT1cIndjRW1wSG91cnNXb3JrZWRcIiBtYXhsZW5ndGg9XCIxMFwiIHVzZUdyb3VwaW5nPVwiZmFsc2VcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wSG91cnNXb3JrZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wU3RhdHVzXCI+V2hhdCdzIHlvdXIgZW1wbG95bWVudCBzdGF0dXMgd2l0aCB0aGlzIGVtcGxveWVyPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwid2NFbXBTdGF0dXNcIiBbb3B0aW9uc109XCJlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdHVzXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwid2NFbXBTdGF0dXMxXCIgPjwvYXBwLWRyb3Bkb3duPjxici8+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wU3RhdHVzJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0xXTE8nXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCI+RG8geW91IGtub3cgd2hlbiB5b3UncmUgcmV0dXJuaW5nIHRvIGZ1bGwtdGltZSB3b3JrPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInllc05vT3B0aW9uXCIgW2Zvcm1Db250cm9sXT1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJyAmJiBoYXZlUmV0dXJuVG9Xb3JrRGF0ZS52YWx1ZSA9PSAnWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBMb3dSdHdEYXRlXCI+V2hlbj88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwid2NFbXBMb3dSdHdEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wTG93UnR3RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cIidXaGVuPydcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjE1NScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wTG93UnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdSVFdGJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFJ0d0RhdGVcIj5SZXR1cm4gdG8gd29yayBkYXRlPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbaWNvbkFyaWFMYWJlbF09XCInUmV0dXJuIHRvIHdvcmsgZGF0ZSdcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wUnR3RGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdEQ0ZJJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cImRpc2NoYXJnZWQxXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2Rpc2NoYXJnZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdWT0xRJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ2b2xRdWl0RGV0YWlsc1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlYXNvbi5zZXBhcmF0aW9uLnF1aXRcInx0cmFuc2xhdGV9fTwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwidm9sUXVpdFJlYXNvbk9wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwidm9sdW50YXJ5UXVpdFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGlucHV0SWQ9XCJ2b2x1bnRhcnlRdWl0MVwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd2b2x1bnRhcnlRdWl0JyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJoaWRFbXBJZFwiLz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3cgKm5nSWYgPSBcImVtcFRvRWRpdD8uaXNQYXJ0VGltZUVtcGxveWVyXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIGZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8Yj57e3djRW1wTmFtZS52YWx1ZX19PC9iPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGhpZGRlbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cIndjRW1wTmFtZVwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cIndjRW1wQWRkcmVzc0xpbmUxXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBDaXR5XCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBTdGF0ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cIndzWmlwQ29kZVwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cIndzUGhvbmVOdW1iZXJcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJoaWRFbXBJZFwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImlzUGFydFRpbWVFbXBsb3llclwiLz5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBTdGF0dXNcIj5XaGF0J3MgeW91ciBlbXBsb3ltZW50IHN0YXR1cyB3aXRoIHRoaXMgZW1wbG95ZXI/PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cIndjRW1wU3RhdHVzXCIgW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wU3RhdHVzXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwid2NFbXBTdGF0dXMyXCI+PC9hcHAtZHJvcGRvd24+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFN0YXR1cycgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnTFdMTydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXZlUmV0dXJuVG9Xb3JrRGF0ZVwiPkRvIHlvdSBrbm93IHdoZW4geW91J3JlIHJldHVybmluZyB0byBmdWxsLXRpbWUgd29yaz88L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInllc05vT3B0aW9uXCIgW2Zvcm1Db250cm9sXT1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hhdmVSZXR1cm5Ub1dvcmtEYXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJyAmJiBoYXZlUmV0dXJuVG9Xb3JrRGF0ZS52YWx1ZSA9PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcExvd1J0d0RhdGVcIj5XaGVuPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwid2NFbXBMb3dSdHdEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wTG93UnR3RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwiJ1doZW4/J1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cIid3ZWVrbGllcy52Mi5lbXBsb3ltZW50LnJ0dy5pbmZvLnBvcHVwLjIwNTAnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBMb3dSdHdEYXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdSVFdGJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wUnR3RGF0ZVwiPlJldHVybiB0byB3b3JrIGRhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwid2NFbXBSdHdEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndjRW1wUnR3RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbaWNvbkFyaWFMYWJlbF09XCInUmV0dXJuIHRvIHdvcmsgZGF0ZSdcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBSdHdEYXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdEQ0ZJJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRpc2NoYXJnZURldGFpbFwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlYXNvbi5zZXBhcmF0aW9uLmRpc2NoYXJnZVwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwiZGlzY2hhcmdlZFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cImRpc2NoYXJnZWQyXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdWT0xRJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbHVudGFyeVF1aXRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGlucHV0SWQ9XCJ2b2x1bnRhcnlRdWl0MlwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbHVudGFyeVF1aXQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibGFzdERheVdvcmtlZFwiPkxhc3QgZGF5IHdvcmtlZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbaWNvbkFyaWFMYWJlbF09XCInTGFzdCBkYXkgd29ya2VkJ1wiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImxhc3REYXlXb3JrZWRcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwibGFzdERheVdvcmtlZFwiIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIGR5bmFtaWNQYXJhbS5zdW5kYXlfZGF0ZSArICcgYW5kICcgKyBkeW5hbWljUGFyYW0uc2F0dXJkYXlfZGF0ZSArICcuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndzRW1wQW10RWFybmVkXCI+VG90YWwgR3Jvc3MgRWFybmluZ3M8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cIid3ZWVrbGllcy52Mi5lbXBsb3ltZW50LnJ0dy5pbmZvLnBvcHVwLjEwMDAnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cIndzRW1wQW10RWFybmVkXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBsb2NhbGU9XCJlbi1VU1wiIFtmb3JtQ29udHJvbF09XCJ3c0VtcEFtdEVhcm5lZFwiIG1heGxlbmd0aD1cIjEwXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dzRW1wQW10RWFybmVkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcEhvdXJzV29ya2VkXCI+SG91cnMgd29ya2VkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJ3Y0VtcEhvdXJzV29ya2VkXCIgW2Zvcm1Db250cm9sXT1cIndjRW1wSG91cnNXb3JrZWRcIiBtYXhsZW5ndGg9XCIxMFwiIHVzZUdyb3VwaW5nPVwiZmFsc2VcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBIb3Vyc1dvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIj5DbGVhcjwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiYWRkKClcIiB0eXBlPVwic3VibWl0XCI+QWRkPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+Il19
668
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeeklyCertEmployerComponentQe, { className: "WeeklyCertEmployerComponentQe", filePath: "lib\\components\\weekly-cert-employer\\weekly-cert-employer.component.ts", lineNumber: 15 }); })();
669
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS1jZXJ0LWVtcGxveWVyL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktY2VydC1lbXBsb3llci93ZWVrbHktY2VydC1lbXBsb3llci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM4RnBELCtCQUF1RCxnQkFBQTtJQUNuQixvRUFBb0Q7SUFBQSxpQkFBUTtJQUM5RixxQ0FDcUMsb0JBQUE7SUFJdkMsaUJBQU07Ozs7SUFMWSxlQUF1QjtJQUF2Qiw0Q0FBdUIsNENBQUE7SUFFNUIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQUMsbURBQThCLGFBQUEsc0NBQUE7Ozs7SUFJaEUsK0JBQTRGLGdCQUFBO0lBQzdELHFCQUFLO0lBQUEsaUJBQVE7SUFDMUMsK0JBQTRCLHFCQUFBO0lBRXFCLHFNQUFXLGVBQUEsd0JBQWlCLENBQUEsSUFBQztJQUEyQixpQkFBYTtJQUNwSCx1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QUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUM7Z0JBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFlBQVksR0FBRyxHQUFHLENBQUM7YUFDM0M7WUFDRCxJQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFDO2dCQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLEdBQUcsR0FBRyxDQUFDO2FBQzNDO1NBQ0o7SUFDSCxDQUFDOzhGQWxPVSw2QkFBNkI7b0VBQTdCLDZCQUE2Qjs7Ozs7O1lDYnhDLGtDQUF1RCxlQUFBO1lBRW5ELHdGQW1KVSwyRUFBQTtZQXVHVixrQ0FBc0MsY0FBQTtZQUVsQyw4RUFRUTtZQUNWLGlCQUFVLEVBQUE7WUFFWiwrQkFBUyxpQkFBQSxxQkFBQTtZQUVvQywrR0FBUyxXQUFPLElBQUM7WUFBYyxzQkFBSztZQUFBLGlCQUFhO1lBQzFGLHNDQUF3RDtZQUE5QiwrR0FBUyxTQUFLLElBQUM7WUFBZSxvQkFBRztZQUFBLGlCQUFhLEVBQUEsRUFBQSxFQUFBLEVBQUE7O1lBNVExRSx1Q0FBcUI7WUFFYixlQUFzQztZQUF0Qyx5RkFBc0M7WUFvSnRDLGVBQXFDO1lBQXJDLHNGQUFxQztZQXdHdkIsZUFBeUQ7WUFBekQsdUhBQXlEOzs7aUZEalAxRSw2QkFBNkI7Y0FMekMsU0FBUzsyQkFDRSw2QkFBNkI7d0dBT2hDLGdCQUFnQjtrQkFEdEIsU0FBUzttQkFBQyxrQkFBa0IsRUFBRSxFQUFDLE1BQU0sRUFBRyxLQUFLLEVBQUM7WUFJL0MsT0FBTztrQkFETixNQUFNO1lBSVAsT0FBTztrQkFETixNQUFNO1lBSUEsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSzs7a0ZBZEssNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDaG9pY2VzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQWRkcmVzc0NvbXBvbmVudE1vZGVsJztcclxuaW1wb3J0IHsgRW1wbG95ZXJJbmZvTW9kZWwsIEVtcGxveWVyU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL0VtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0JztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLXFlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd2Vla2x5LWNlcnQtZW1wbG95ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlZWtseS1jZXJ0LWVtcGxveWVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWVrbHlDZXJ0RW1wbG95ZXJDb21wb25lbnRRZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtcEZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBcclxuICBwdWJsaWMgZW1wRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1wVG9FZGl0ID0gbmV3IEVtcGxveWVySW5mb01vZGVsKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xyXG5cclxuICBwdWJsaWMgeWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcblxyXG4gIHB1YmxpYyBlbXBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgcHVibGljIHNhdERhdGUgOiBEYXRlO1xyXG4gIHB1YmxpYyBzdW5EYXRlIDogRGF0ZTtcclxuXHJcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHVibGljIGZvcm1CdWlsZGVyIDogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgY3MgOiBDbGFpbVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcclxuICAgIHRoaXMuc2F0RGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZUZyb21TdHJpbmcodGhpcy5keW5hbWljUGFyYW0uc2F0dXJkYXlfZGF0ZSk7XHJcbiAgICB0aGlzLnN1bkRhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGVGcm9tU3RyaW5nKHRoaXMuZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlKTtcclxuICAgIHRoaXMuaW5pdGlsaXplRW1wbG95ZXJJbmZvckZvcm0oKTtcclxuICB9XHJcbiAgXHJcbiAgbG9hZE1hc3RlckRhdGEoKSB7XHJcbiAgICB0aGlzLmNzLmxvYWRNYXN0ZXJEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5jcy5nZXRSZWFzb25TZXBhcmF0aW9uKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNzLmdldERpc2NoYXJnZVJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jcy5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhZGQoKXtcclxuICAgIC8vIE1hcmsgYWxsIGNvbnRyb2xzIGFzIHRvdWNoZWQgdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGRpc3BsYXlcclxuICAgIHRoaXMuZW1wRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICBcclxuICAgIC8vIE1hbnVhbGx5IHVwZGF0ZSB2YWx1ZSBhbmQgdmFsaWRpdHlcclxuICAgIHRoaXMuZW1wRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICBcclxuICAgIC8vIENoZWNrIGlmIGZvcm0gaXMgdmFsaWQgYWZ0ZXIgY29uZGl0aW9uYWwgdmFsaWRhdGlvblxyXG4gICAgaWYgKHRoaXMuZW1wRm9ybS52YWxpZCl7XHJcbiAgICAgIHRoaXMuZW1wRm9ybS52YWx1ZS5pc1BhcnRUaW1lRW1wbG95ZXJFZGl0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmVtcEZvcm0udmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVFbXBsb3llckluZm9yRm9ybSgpe1xyXG4gICAgbGV0IGVtcEluZm8gPSB0aGlzLmVtcFRvRWRpdCA/IHRoaXMuZW1wVG9FZGl0IDogbmV3IEVtcGxveWVySW5mb01vZGVsKCk7XHJcbiAgICB0aGlzLmVtcEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgJ2xhc3REYXlXb3JrZWQnIDogW2VtcEluZm8ubGFzdERheVdvcmtlZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzQmV0d2Vlbih0aGlzLnN1bkRhdGUsIHRoaXMuc2F0RGF0ZSldKV0sXHJcbiAgICAgICdlbXBsb3llck5hbWUnIDogW2VtcEluZm8uZW1wbG95ZXJOYW1lLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2xpbmUxJyA6IFtlbXBJbmZvLmxpbmUxLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2xpbmUyJyA6IFtlbXBJbmZvLmxpbmUyIF0sXHJcbiAgICAgICdjaXR5JyA6IFtlbXBJbmZvLmNpdHksIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnc3RhdGUnIDogW2VtcEluZm8uc3RhdGUgIT0gdW5kZWZpbmVkID8gZW1wSW5mby5zdGF0ZSA6IHRoaXMudXRpbC5nZXRTdGF0ZSgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2dyb3NzRWFybmluZycgOiBbZW1wSW5mby5ncm9zc0Vhcm5pbmcsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgJ3JlYXNvblNlcGFyYXRpb24nIDogW2VtcEluZm8ucmVhc29uU2VwYXJhdGlvbiAhPSB1bmRlZmluZWQgPyBlbXBJbmZvLnJlYXNvblNlcGFyYXRpb24gOiAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdoYXZlUmV0dXJuVG9Xb3JrRGF0ZScgOiBbZW1wSW5mby5oYXZlUmV0dXJuVG9Xb3JrRGF0ZV0sXHJcbiAgICAgICdyZXR1cm5Ub1dvcmtEYXRlJyA6IFtlbXBJbmZvLnJldHVyblRvV29ya0RhdGVdLFxyXG4gICAgICAndm9sdW50YXJ5UXVpdCcgOiBbZW1wSW5mby52b2x1bnRhcnlRdWl0XSxcclxuICAgICAgJ2Rpc2NoYXJnZWQnIDogW2VtcEluZm8uZGlzY2hhcmdlZF0sXHJcbiAgICAgICdob3Vyc1dvcmtlZEluV2VlaycgOiBbZW1wSW5mby5ob3Vyc1dvcmtlZEluV2VlaywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxyXG4gICAgICAnemlwJyA6IFtlbXBJbmZvLnppcCAhPSB1bmRlZmluZWQgPyBlbXBJbmZvLnppcCA6ICcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNWYWxpZFppcENvZGVdKV0sXHJcbiAgICAgICdlbXBsb3llclBob25lJyA6IFtlbXBJbmZvLmVtcGxveWVyUGhvbmUgIT0gdW5kZWZpbmVkID8gZW1wSW5mby5lbXBsb3llclBob25lIDogJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgJ2VtcGxveWVySWQnIDogW2VtcEluZm8uZW1wbG95ZXJJZF0sXHJcbiAgICAgICd0ZW1wV2NFbXBsb3llcklkJyA6IFtlbXBJbmZvLnRlbXBXY0VtcGxveWVySWQgPyBlbXBJbmZvLnRlbXBXY0VtcGxveWVySWQgOiBuZXcgRGF0ZSgpLmdldFRpbWUoKV0sXHJcbiAgICAgICdwb3RlbnRpYWxJc3N1ZUlkJyA6IFtlbXBJbmZvLnBvdGVudGlhbElzc3VlSWQgPyBlbXBJbmZvLnBvdGVudGlhbElzc3VlSWQgOiBudWxsXSxcclxuICAgICAgJ2lzUGFydFRpbWVFbXBsb3llcicgOiBbZW1wSW5mby5pc1BhcnRUaW1lRW1wbG95ZXIgPyBlbXBJbmZvLmlzUGFydFRpbWVFbXBsb3llciA6IG51bGxdXHJcblxyXG4gICAgfSwge1xyXG4gICAgICB2YWxpZGF0b3JzOiBBcHBWYWxpZGF0b3JzLnJlcXVpcmVFYXJuaW5nc0lmV29ya2VkKHRoaXMuc3VuRGF0ZSwgdGhpcy5zYXREYXRlKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy53Y0VtcFN0YXR1cy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ1JUV0YnKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy53Y0VtcExvd1J0d0RhdGUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud2NFbXBMb3dSdHdEYXRlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYodmFsICYmIHZhbCA9PSAnTFdMTycpe1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhhdmVSZXR1cm5Ub1dvcmtEYXRlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmhhdmVSZXR1cm5Ub1dvcmtEYXRlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYodmFsICYmIHZhbCA9PSAnRENGSScpe1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpc2NoYXJnZWQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZGlzY2hhcmdlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ1ZPTFEnKXtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy52b2x1bnRhcnlRdWl0KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnZvbHVudGFyeVF1aXQpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0IGhhdmVSZXR1cm5Ub1dvcmtEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydoYXZlUmV0dXJuVG9Xb3JrRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZvbHVudGFyeVF1aXQoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3ZvbHVudGFyeVF1aXQnXTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNjaGFyZ2VkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydkaXNjaGFyZ2VkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdERheVdvcmtlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snbGFzdERheVdvcmtlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdjRW1wTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBBZGRyZXNzTGluZTEoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2xpbmUxJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBBZGRyZXNzTGluZTIoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ2xpbmUyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBDaXR5KCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydjaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBTdGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snc3RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c0VtcEFtdEVhcm5lZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZ3Jvc3NFYXJuaW5nJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2NFbXBTdGF0dXMoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3JlYXNvblNlcGFyYXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcExvd1J0d0RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3JldHVyblRvV29ya0RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcFJ0d0RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmVtcEZvcm0uY29udHJvbHNbJ3JldHVyblRvV29ya0RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcFdvcmtlZEZvck1vcmVFbXBsb3llcigpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snd2NFbXBXb3JrZWRGb3JNb3JlRW1wbG95ZXInXTtcclxuICB9XHJcblxyXG4gIGdldCB3Y0VtcEhvdXJzV29ya2VkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydob3Vyc1dvcmtlZEluV2VlayddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdzWmlwQ29kZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snemlwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd3NQaG9uZU51bWJlcigpe1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wRm9ybS5jb250cm9sc1snZW1wbG95ZXJQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhpZEVtcElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydlbXBsb3llcklkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgaXNQYXJ0VGltZUVtcGxveWVyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbXBGb3JtLmNvbnRyb2xzWydpc1BhcnRUaW1lRW1wbG95ZXInXTtcclxuICB9XHJcbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXIgOiBFbXBsb3llclNlYXJjaFJlc3VsdCl7XHJcbiAgICB0aGlzLndjRW1wTmFtZS5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llck5hbWUpO1xyXG4gICAgdGhpcy53Y0VtcEFkZHJlc3NMaW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xyXG4gICAgdGhpcy53Y0VtcEFkZHJlc3NMaW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgdGhpcy53Y0VtcENpdHkuc2V0VmFsdWUoZW1wbG95ZXIuY2l0eSk7XHJcbiAgICB0aGlzLndjRW1wU3RhdGUuc2V0VmFsdWUoZW1wbG95ZXIuc3RhdGUudmFsdWUpO1xyXG4gICAgdGhpcy53c1ppcENvZGUuc2V0VmFsdWUoZW1wbG95ZXIuemlwKTtcclxuICAgIHRoaXMuaGlkRW1wSWQuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJJZCk7XHJcbiAgfVxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpe1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZihjdXJyZW50VmFsdWUpe1xyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImVtcEZvcm1cIiAjZW1wRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkPlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiIWVtcFRvRWRpdD8uaXNQYXJ0VGltZUVtcGxveWVyXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIGZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcE5hbWVcIj5FbXBsb3llciBOYW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xdPVwid2NFbXBOYW1lXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiIFtlbXBUeXBlXT1cIidSRUcnXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcE5hbWUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBBZGRyZXNzTGluZTFcIj5TdHJlZXQgQWRkcmVzczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwid2NFbXBBZGRyZXNzTGluZTFcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3Y0VtcEFkZHJlc3NMaW5lMVwiIC8+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wQWRkcmVzc0xpbmUxJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wQ2l0eVwiPkNpdHk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndjRW1wQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndjRW1wQ2l0eVwiIC8+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wQ2l0eScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFN0YXRlXCI+U3RhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIGlucHV0SWQ9XCJ3Y0VtcFN0YXRlXCIgW29wdGlvbnNdPVwic3RhdGVzQ29tYm9cIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBTdGF0ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cIndjRW1wU3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wU3RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid3NaaXBDb2RlXCI+WmlwIENvZGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ3c1ppcENvZGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3c1ppcENvZGVcIiBtaW5sZW5ndGg9XCI1XCIgbWF4bGVuZ3RoPVwiOVwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dzWmlwQ29kZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZExlbmd0aDogJ1ppcCBjb2RlIHNob3VsZCBiZSBvZiA1IG9yIDkgZGlnaXRzLicsXHJcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogJ1ppcCBjb2RlIHNob3VsZCBvbmx5IGhhdmUgbnVtYmVycy4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhc3REYXlXb3JrZWRcIj5MYXN0IGRheSB3b3JrZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtpY29uQXJpYUxhYmVsXT1cIidMYXN0IGRheSB3b3JrZWQnXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwibGFzdERheVdvcmtlZFwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJsYXN0RGF5V29ya2VkXCIgW21pbkRhdGVdPVwic3VuRGF0ZVwiIFttYXhEYXRlXT1cInNhdERhdGVcIiBbZGVmYXVsdERhdGVdPVwic3VuRGF0ZVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdERheVdvcmtlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgIGRhdGVOb3RCZXR3ZWVuOiAnRGF0ZSBzaG91bGQgYmUgYmV0d2VlbiAnICsgZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlICsgJyBhbmQgJyArIGR5bmFtaWNQYXJhbS5zYXR1cmRheV9kYXRlICsgJy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c1Bob25lTnVtYmVyXCI+UGhvbmUgTm8uPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIndzUGhvbmVOdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3c1Bob25lTnVtYmVyJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3c0VtcEFtdEVhcm5lZFwiPlRvdGFsIEdyb3NzIEVhcm5pbmdzPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMTAwMCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cIndzRW1wQW10RWFybmVkXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBsb2NhbGU9XCJlbi1VU1wiIFtmb3JtQ29udHJvbF09XCJ3c0VtcEFtdEVhcm5lZFwiIG1heGxlbmd0aD1cIjEwXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3c0VtcEFtdEVhcm5lZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgIGVhcm5pbmdzUmVxdWlyZWQ6ICdQbGVhc2UgcmVwb3J0IGdyb3NzIGVhcm5pbmdzLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wSG91cnNXb3JrZWRcIj5Ib3VycyB3b3JrZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJ3Y0VtcEhvdXJzV29ya2VkXCIgW2Zvcm1Db250cm9sXT1cIndjRW1wSG91cnNXb3JrZWRcIiBtYXhsZW5ndGg9XCIxMFwiIHVzZUdyb3VwaW5nPVwiZmFsc2VcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wSG91cnNXb3JrZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICBlYXJuaW5nc1JlcXVpcmVkOiAnUGxlYXNlIHJlcG9ydCBob3VycyB3b3JrZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBTdGF0dXNcIj5XaGF0J3MgeW91ciBlbXBsb3ltZW50IHN0YXR1cyB3aXRoIHRoaXMgZW1wbG95ZXI/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIGlucHV0SWQ9XCJ3Y0VtcFN0YXR1c1wiIFtvcHRpb25zXT1cImVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBTdGF0dXNcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3Y0VtcFN0YXR1czFcIiA+PC9hcHAtZHJvcGRvd24+PGJyLz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBTdGF0dXMnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3Y0VtcFN0YXR1cy52YWx1ZSA9PSAnTFdMTydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGF2ZVJldHVyblRvV29ya0RhdGVcIj5EbyB5b3Uga25vdyB3aGVuIHlvdSdyZSByZXR1cm5pbmcgdG8gZnVsbC10aW1lIHdvcms/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwieWVzTm9PcHRpb25cIiBbZm9ybUNvbnRyb2xdPVwiaGF2ZVJldHVyblRvV29ya0RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXZlUmV0dXJuVG9Xb3JrRGF0ZScgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0xXTE8nICYmIGhhdmVSZXR1cm5Ub1dvcmtEYXRlLnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcExvd1J0d0RhdGVcIj5XaGVuPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcExvd1J0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBMb3dSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwiJ1doZW4/J1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCInd2Vla2xpZXMudjIuZW1wbG95bWVudC5ydHcuaW5mby5wb3B1cC4yMTU1JyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBMb3dSdHdEYXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1JUV0YnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wUnR3RGF0ZVwiPlJldHVybiB0byB3b3JrIGRhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIndjRW1wUnR3RGF0ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFJ0d0RhdGVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtpY29uQXJpYUxhYmVsXT1cIidSZXR1cm4gdG8gd29yayBkYXRlJ1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2NFbXBSdHdEYXRlJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0RDRkknXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRpc2NoYXJnZURldGFpbFwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlYXNvbi5zZXBhcmF0aW9uLmRpc2NoYXJnZVwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cImRpc2NoYXJnZWRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwiZGlzY2hhcmdlZDFcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlZCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1ZPTFEnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD4gXHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJ2b2xRdWl0UmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJ2b2x1bnRhcnlRdWl0XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cInZvbHVudGFyeVF1aXQxXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbHVudGFyeVF1aXQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZiA9IFwiZW1wVG9FZGl0Py5pc1BhcnRUaW1lRW1wbG95ZXJcIj5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxiPnt7d2NFbXBOYW1lLnZhbHVlfX08L2I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gaGlkZGVuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBOYW1lXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBBZGRyZXNzTGluZTFcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcENpdHlcIi8+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbF09XCJ3Y0VtcFN0YXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NaaXBDb2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwid3NQaG9uZU51bWJlclwiLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sXT1cImhpZEVtcElkXCIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xdPVwiaXNQYXJ0VGltZUVtcGxveWVyXCIvPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3Y0VtcFN0YXR1c1wiPldoYXQncyB5b3VyIGVtcGxveW1lbnQgc3RhdHVzIHdpdGggdGhpcyBlbXBsb3llcj88L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwid2NFbXBTdGF0dXNcIiBbb3B0aW9uc109XCJlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBTdGF0dXNcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3Y0VtcFN0YXR1czJcIj48L2FwcC1kcm9wZG93bj48YnIvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3djRW1wU3RhdHVzJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIndjRW1wU3RhdHVzLnZhbHVlID09ICdMV0xPJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhhdmVSZXR1cm5Ub1dvcmtEYXRlXCI+RG8geW91IGtub3cgd2hlbiB5b3UncmUgcmV0dXJuaW5nIHRvIGZ1bGwtdGltZSB3b3JrPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwieWVzTm9PcHRpb25cIiBbZm9ybUNvbnRyb2xdPVwiaGF2ZVJldHVyblRvV29ya0RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGF2ZVJldHVyblRvV29ya0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0xXTE8nICYmIGhhdmVSZXR1cm5Ub1dvcmtEYXRlLnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wTG93UnR3RGF0ZVwiPldoZW4/PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcExvd1J0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBMb3dSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCInV2hlbj8nXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMjA1MCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcExvd1J0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1JUV0YnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2NFbXBSdHdEYXRlXCI+UmV0dXJuIHRvIHdvcmsgZGF0ZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3Y0VtcFJ0d0RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBSdHdEYXRlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtpY29uQXJpYUxhYmVsXT1cIidSZXR1cm4gdG8gd29yayBkYXRlJ1wiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcFJ0d0RhdGUnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ0RDRkknXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGlzY2hhcmdlRGV0YWlsXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24uZGlzY2hhcmdlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VkXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBpbnB1dElkPVwiZGlzY2hhcmdlZDJcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaXNjaGFyZ2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid2NFbXBTdGF0dXMudmFsdWUgPT0gJ1ZPTFEnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidm9sUXVpdERldGFpbHNcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5xdWl0XCJ8dHJhbnNsYXRlfX08L2xhYmVsPiBcclxuICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwidm9sUXVpdFJlYXNvbk9wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwidm9sdW50YXJ5UXVpdFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgaW5wdXRJZD1cInZvbHVudGFyeVF1aXQyXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sdW50YXJ5UXVpdCcgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0RGF5V29ya2VkXCI+TGFzdCBkYXkgd29ya2VkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtpY29uQXJpYUxhYmVsXT1cIidMYXN0IGRheSB3b3JrZWQnXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwibGFzdERheVdvcmtlZFwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJsYXN0RGF5V29ya2VkXCIgW21pbkRhdGVdPVwic3VuRGF0ZVwiIFttYXhEYXRlXT1cInNhdERhdGVcIiBbZGVmYXVsdERhdGVdPVwic3VuRGF0ZVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdsYXN0RGF5V29ya2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGRhdGVOb3RCZXR3ZWVuOiAnRGF0ZSBzaG91bGQgYmUgYmV0d2VlbiAnICsgZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlICsgJyBhbmQgJyArIGR5bmFtaWNQYXJhbS5zYXR1cmRheV9kYXRlICsgJy4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid3NFbXBBbXRFYXJuZWRcIj5Ub3RhbCBHcm9zcyBFYXJuaW5nczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMTAwMCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid3NFbXBBbXRFYXJuZWRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCIgW2Zvcm1Db250cm9sXT1cIndzRW1wQW10RWFybmVkXCIgbWF4bGVuZ3RoPVwiMTBcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd3NFbXBBbXRFYXJuZWQnIFtmb3JtXT1cImVtcEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgZWFybmluZ3NSZXF1aXJlZDogJ1BsZWFzZSByZXBvcnQgZ3Jvc3MgZWFybmluZ3MuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndjRW1wSG91cnNXb3JrZWRcIj5Ib3VycyB3b3JrZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cIndjRW1wSG91cnNXb3JrZWRcIiBbZm9ybUNvbnRyb2xdPVwid2NFbXBIb3Vyc1dvcmtlZFwiIG1heGxlbmd0aD1cIjEwXCIgdXNlR3JvdXBpbmc9XCJmYWxzZVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3Y0VtcEhvdXJzV29ya2VkJyBbZm9ybV09XCJlbXBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGVhcm5pbmdzUmVxdWlyZWQ6ICdQbGVhc2UgcmVwb3J0IGhvdXJzIHdvcmtlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3cgc3R5bGU9XCJtYXJnaW46IDAgMTBweCBhdXRvO1wiPlxyXG4gICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBGb3JtLmludmFsaWQgJiYgZW1wRm9ybS5lcnJvcnM/LmVhcm5pbmdzUmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFxyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZW1wRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbZmllbGRdPVwiZW1wRm9ybVwiXHJcbiAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIGVhcm5pbmdzUmVxdWlyZWQ6ICdQbGVhc2UgcmVwb3J0IGdyb3NzIGVhcm5pbmdzIGFuZCBob3VycyB3b3JrZWQgZm9yIHRoZSB3ZWVrIGVuZGluZyAnICsgKHNhdERhdGUgfCBkYXRlOidNTS9kZC95eXl5JykgKyAnLicgXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPkNsZWFyPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIj5BZGQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT4iXX0=