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

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 (87) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +196 -132
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +29 -24
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +45 -31
  4. package/esm2022/lib/components/address/address.component.mjs +97 -46
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +139 -75
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +42 -28
  7. package/esm2022/lib/components/email-update/email-update.component.mjs +119 -62
  8. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +165 -84
  9. package/esm2022/lib/components/footer/footer.component.mjs +23 -11
  10. package/esm2022/lib/components/header/header.component.mjs +163 -109
  11. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +29 -18
  12. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
  13. package/esm2022/lib/components/job-title/job-title.component.mjs +20 -16
  14. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +389 -208
  15. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +83 -21
  16. package/esm2022/lib/components/menu/menu.component.mjs +63 -25
  17. package/esm2022/lib/components/mfa/mfa.component.mjs +155 -98
  18. package/esm2022/lib/components/mfa2/mfa2.component.mjs +54 -30
  19. package/esm2022/lib/components/money-expect/money-expect.component.mjs +31 -23
  20. package/esm2022/lib/components/profile/profile.component.mjs +34 -14
  21. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +17 -10
  22. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +80 -27
  23. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +29 -8
  24. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +172 -119
  25. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +122 -41
  26. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
  27. package/esm2022/lib/components/search-employer/search-employer.component.mjs +10 -7
  28. package/esm2022/lib/components/security-question/security-question.component.mjs +19 -9
  29. package/esm2022/lib/components/select/select.component.mjs +10 -5
  30. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
  31. package/esm2022/lib/components/user-login/user-login.component.mjs +116 -82
  32. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +69 -47
  33. package/esm2022/lib/models/questionnaire/ComboModel.mjs +480 -1
  34. package/esm2022/lib/pages/common/login/login.component.mjs +7 -2
  35. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  36. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  37. package/esm2022/lib/validations/AppValidators.mjs +9 -9
  38. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +3103 -1492
  39. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  40. package/lib/components/add-employer/add-employer.component.d.ts +22 -73
  41. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  42. package/lib/components/add-participant/add-participant.component.d.ts +4 -1
  43. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  44. package/lib/components/add-payment/add-payment.component.d.ts +1 -2
  45. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  46. package/lib/components/address/address.component.d.ts +10 -1
  47. package/lib/components/address/address.component.d.ts.map +1 -1
  48. package/lib/components/bank-details/bank-details.component.d.ts +17 -1
  49. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  50. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  51. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  52. package/lib/components/email-update/email-update.component.d.ts +6 -1
  53. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  54. package/lib/components/employer-grid/employer-grid.component.d.ts +6 -24
  55. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  56. package/lib/components/footer/footer.component.d.ts.map +1 -1
  57. package/lib/components/header/header.component.d.ts +3 -0
  58. package/lib/components/header/header.component.d.ts.map +1 -1
  59. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  60. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  61. package/lib/components/job-title/job-title.component.d.ts +3 -1
  62. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  63. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -1
  64. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  65. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
  66. package/lib/components/menu/menu.component.d.ts +11 -1
  67. package/lib/components/menu/menu.component.d.ts.map +1 -1
  68. package/lib/components/mfa/mfa.component.d.ts +6 -1
  69. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  70. package/lib/components/profile/profile.component.d.ts.map +1 -1
  71. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -0
  72. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  73. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  74. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  75. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  76. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  77. package/lib/components/user-login/user-login.component.d.ts +7 -1
  78. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  79. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +7 -1
  80. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  81. package/lib/models/questionnaire/ComboModel.d.ts +80 -0
  82. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  83. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  84. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  85. package/lib/validations/AppValidators.d.ts +8 -8
  86. package/lib/validations/AppValidators.d.ts.map +1 -1
  87. package/package.json +1 -1
@@ -8,16 +8,17 @@ import * as i2 from "../../services/util/util.service";
8
8
  import * as i3 from "../../services/login/login.service";
9
9
  import * as i4 from "../../services/weekly-cert/weekly-cert-v2.service";
10
10
  import * as i5 from "../../services/ovp/ovp.service";
11
- import * as i6 from "@ionic/angular";
12
- import * as i7 from "@angular/common";
13
- import * as i8 from "primeng/api";
14
- import * as i9 from "@angular/material/form-field";
15
- import * as i10 from "primeng/dialog";
16
- import * as i11 from "primeng/inputtext";
17
- import * as i12 from "../error/error.component";
18
- import * as i13 from "../../pipes/mask/mask.email.pipe";
11
+ import * as i6 from "@ngx-translate/core";
12
+ import * as i7 from "@ionic/angular";
13
+ import * as i8 from "@angular/common";
14
+ import * as i9 from "primeng/api";
15
+ import * as i10 from "@angular/material/form-field";
16
+ import * as i11 from "primeng/dialog";
17
+ import * as i12 from "primeng/inputtext";
18
+ import * as i13 from "../error/error.component";
19
+ import * as i14 from "../../pipes/mask/mask.email.pipe";
19
20
  const _c0 = ["authCodeFormDirective"];
20
- function EmailUpdateComponent_div_5_mat_error_15_Template(rf, ctx) { if (rf & 1) {
21
+ function EmailUpdateComponent_div_5_mat_error_18_Template(rf, ctx) { if (rf & 1) {
21
22
  i0.ɵɵelementStart(0, "mat-error");
22
23
  i0.ɵɵtext(1);
23
24
  i0.ɵɵelement(2, "br")(3, "br");
@@ -27,7 +28,7 @@ function EmailUpdateComponent_div_5_mat_error_15_Template(rf, ctx) { if (rf & 1)
27
28
  i0.ɵɵadvance(1);
28
29
  i0.ɵɵtextInterpolate(ctx_r6.errorDtls);
29
30
  } }
30
- function EmailUpdateComponent_div_5_p_16_Template(rf, ctx) { if (rf & 1) {
31
+ function EmailUpdateComponent_div_5_p_19_Template(rf, ctx) { if (rf & 1) {
31
32
  i0.ɵɵelementStart(0, "p", 15);
32
33
  i0.ɵɵtext(1);
33
34
  i0.ɵɵelementEnd();
@@ -36,53 +37,76 @@ function EmailUpdateComponent_div_5_p_16_Template(rf, ctx) { if (rf & 1) {
36
37
  i0.ɵɵadvance(1);
37
38
  i0.ɵɵtextInterpolate(ctx_r7.successDtls);
38
39
  } }
39
- function EmailUpdateComponent_div_5_p_17_Template(rf, ctx) { if (rf & 1) {
40
+ function EmailUpdateComponent_div_5_p_20_Template(rf, ctx) { if (rf & 1) {
40
41
  const _r11 = i0.ɵɵgetCurrentView();
41
42
  i0.ɵɵelementStart(0, "p");
42
- i0.ɵɵtext(1, "If you didn't get the verification code ");
43
- i0.ɵɵelementStart(2, "a", 16);
44
- i0.ɵɵlistener("click", function EmailUpdateComponent_div_5_p_17_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.getNewCode()); });
45
- i0.ɵɵtext(3, "click here");
43
+ i0.ɵɵtext(1);
44
+ i0.ɵɵpipe(2, "translate");
45
+ i0.ɵɵelementStart(3, "a", 16);
46
+ i0.ɵɵlistener("click", function EmailUpdateComponent_div_5_p_20_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.getNewCode()); });
47
+ i0.ɵɵtext(4);
48
+ i0.ɵɵpipe(5, "translate");
46
49
  i0.ɵɵelementEnd();
47
- i0.ɵɵtext(4, " and we'll send it again.");
50
+ i0.ɵɵtext(6);
51
+ i0.ɵɵpipe(7, "translate");
48
52
  i0.ɵɵelementEnd();
53
+ } if (rf & 2) {
54
+ i0.ɵɵadvance(1);
55
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 3, "email.no.verification.code"), " ");
56
+ i0.ɵɵadvance(3);
57
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 5, "email.click.here"));
58
+ i0.ɵɵadvance(2);
59
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 7, "email.we.will.send"), "");
49
60
  } }
50
- function EmailUpdateComponent_div_5_p_18_Template(rf, ctx) { if (rf & 1) {
61
+ function EmailUpdateComponent_div_5_p_21_Template(rf, ctx) { if (rf & 1) {
51
62
  const _r13 = i0.ɵɵgetCurrentView();
52
63
  i0.ɵɵelementStart(0, "p")(1, "a", 16);
53
- i0.ɵɵlistener("click", function EmailUpdateComponent_div_5_p_18_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.setMode("2")); });
54
- i0.ɵɵtext(2, "Update email address");
64
+ i0.ɵɵlistener("click", function EmailUpdateComponent_div_5_p_21_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.setMode("2")); });
65
+ i0.ɵɵtext(2);
66
+ i0.ɵɵpipe(3, "translate");
55
67
  i0.ɵɵelementEnd()();
68
+ } if (rf & 2) {
69
+ i0.ɵɵadvance(2);
70
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "email.update.email"));
56
71
  } }
57
- const _c1 = () => ({ required: "Code is required." });
72
+ const _c1 = a0 => ({ required: a0 });
58
73
  function EmailUpdateComponent_div_5_Template(rf, ctx) { if (rf & 1) {
59
74
  i0.ɵɵelementStart(0, "div", 8)(1, "p");
60
- i0.ɵɵtext(2, "A verification code has been sent to your email address:\u00A0 ");
61
- i0.ɵɵelementStart(3, "b");
62
- i0.ɵɵtext(4);
63
- i0.ɵɵpipe(5, "maskEmail");
75
+ i0.ɵɵtext(2);
76
+ i0.ɵɵpipe(3, "translate");
77
+ i0.ɵɵelementStart(4, "b");
78
+ i0.ɵɵtext(5);
79
+ i0.ɵɵpipe(6, "maskEmail");
64
80
  i0.ɵɵelementEnd()();
65
- i0.ɵɵelementStart(6, "p");
66
- i0.ɵɵtext(7, " Check your junk folder if you don't see it in your inbox. ");
81
+ i0.ɵɵelementStart(7, "p");
82
+ i0.ɵɵtext(8);
83
+ i0.ɵɵpipe(9, "translate");
67
84
  i0.ɵɵelementEnd();
68
- i0.ɵɵelementStart(8, "div", 9)(9, "div", 10)(10, "label", 11);
69
- i0.ɵɵtext(11, "Enter code");
85
+ i0.ɵɵelementStart(10, "div", 9)(11, "div", 10)(12, "label", 11);
86
+ i0.ɵɵtext(13);
87
+ i0.ɵɵpipe(14, "translate");
70
88
  i0.ɵɵelementEnd();
71
- i0.ɵɵelement(12, "br")(13, "input", 12)(14, "app-error", 13);
89
+ i0.ɵɵelement(15, "br")(16, "input", 12)(17, "app-error", 13);
72
90
  i0.ɵɵelementEnd();
73
- i0.ɵɵtemplate(15, EmailUpdateComponent_div_5_mat_error_15_Template, 4, 1, "mat-error", 7)(16, EmailUpdateComponent_div_5_p_16_Template, 2, 1, "p", 14);
91
+ i0.ɵɵtemplate(18, EmailUpdateComponent_div_5_mat_error_18_Template, 4, 1, "mat-error", 7)(19, EmailUpdateComponent_div_5_p_19_Template, 2, 1, "p", 14);
74
92
  i0.ɵɵelementEnd();
75
- i0.ɵɵtemplate(17, EmailUpdateComponent_div_5_p_17_Template, 5, 0, "p", 7)(18, EmailUpdateComponent_div_5_p_18_Template, 3, 0, "p", 7);
93
+ i0.ɵɵtemplate(20, EmailUpdateComponent_div_5_p_20_Template, 8, 9, "p", 7)(21, EmailUpdateComponent_div_5_p_21_Template, 4, 3, "p", 7);
76
94
  i0.ɵɵelementEnd();
77
95
  } if (rf & 2) {
78
96
  const ctx_r1 = i0.ɵɵnextContext();
79
97
  const _r0 = i0.ɵɵreference(2);
80
- i0.ɵɵadvance(4);
81
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, ctx_r1.email));
82
- i0.ɵɵadvance(9);
98
+ i0.ɵɵadvance(2);
99
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 12, "email.verification.sent"), "\u00A0 ");
100
+ i0.ɵɵadvance(3);
101
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 14, ctx_r1.email));
102
+ i0.ɵɵadvance(3);
103
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 16, "email.check.junk"), " ");
104
+ i0.ɵɵadvance(5);
105
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 18, "email.enter.code"));
106
+ i0.ɵɵadvance(3);
83
107
  i0.ɵɵproperty("id", "authCode");
84
108
  i0.ɵɵadvance(1);
85
- i0.ɵɵproperty("field", ctx_r1.authCode)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c1));
109
+ i0.ɵɵproperty("field", ctx_r1.authCode)("form", _r0)("errDef", i0.ɵɵpureFunction1(20, _c1, ctx_r1.codeRequired));
86
110
  i0.ɵɵadvance(1);
87
111
  i0.ɵɵproperty("ngIf", ctx_r1.errorDtls);
88
112
  i0.ɵɵadvance(1);
@@ -92,21 +116,27 @@ function EmailUpdateComponent_div_5_Template(rf, ctx) { if (rf & 1) {
92
116
  i0.ɵɵadvance(1);
93
117
  i0.ɵɵproperty("ngIf", !ctx_r1.blocked);
94
118
  } }
95
- const _c2 = () => ({ required: "New email is required.", email: "Invalid email." });
119
+ const _c2 = (a0, a1) => ({ required: a0, email: a1 });
96
120
  function EmailUpdateComponent_div_6_Template(rf, ctx) { if (rf & 1) {
97
121
  i0.ɵɵelementStart(0, "div", 8)(1, "div", 9)(2, "div", 10)(3, "label");
98
- i0.ɵɵtext(4, "Enter new email address");
122
+ i0.ɵɵtext(4);
123
+ i0.ɵɵpipe(5, "translate");
99
124
  i0.ɵɵelementEnd();
100
- i0.ɵɵelement(5, "br")(6, "input", 17)(7, "app-error", 13);
125
+ i0.ɵɵelement(6, "br")(7, "input", 17)(8, "app-error", 13);
101
126
  i0.ɵɵelementEnd();
102
- i0.ɵɵelementStart(8, "label", 18);
103
- i0.ɵɵtext(9, "A new verification code will be sent to above email address.");
127
+ i0.ɵɵelementStart(9, "label", 18);
128
+ i0.ɵɵtext(10);
129
+ i0.ɵɵpipe(11, "translate");
104
130
  i0.ɵɵelementEnd()()();
105
131
  } if (rf & 2) {
106
132
  const ctx_r2 = i0.ɵɵnextContext();
107
133
  const _r0 = i0.ɵɵreference(2);
108
- i0.ɵɵadvance(7);
109
- i0.ɵɵproperty("field", ctx_r2.newEmail)("form", _r0)("errDef", i0.ɵɵpureFunction0(3, _c2));
134
+ i0.ɵɵadvance(4);
135
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 5, "email.enter.new.email"));
136
+ i0.ɵɵadvance(4);
137
+ i0.ɵɵproperty("field", ctx_r2.newEmail)("form", _r0)("errDef", i0.ɵɵpureFunction2(9, _c2, ctx_r2.newEmailIsRequired, ctx_r2.invalidEmail));
138
+ i0.ɵɵadvance(2);
139
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 7, "email.new.verification.code.sent"));
110
140
  } }
111
141
  function EmailUpdateComponent_div_9_Template(rf, ctx) { if (rf & 1) {
112
142
  i0.ɵɵelementStart(0, "div", 19);
@@ -117,37 +147,55 @@ function EmailUpdateComponent_div_10_Template(rf, ctx) { if (rf & 1) {
117
147
  const _r15 = i0.ɵɵgetCurrentView();
118
148
  i0.ɵɵelementStart(0, "div", 21)(1, "ion-button", 22);
119
149
  i0.ɵɵlistener("click", function EmailUpdateComponent_div_10_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.close()); });
120
- i0.ɵɵtext(2, "Close");
150
+ i0.ɵɵtext(2);
151
+ i0.ɵɵpipe(3, "translate");
121
152
  i0.ɵɵelementEnd();
122
- i0.ɵɵelementStart(3, "ion-button", 23);
123
- i0.ɵɵlistener("click", function EmailUpdateComponent_div_10_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.verifyEmail()); });
124
- i0.ɵɵtext(4, "Verify");
153
+ i0.ɵɵelementStart(4, "ion-button", 23);
154
+ i0.ɵɵlistener("click", function EmailUpdateComponent_div_10_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.verifyEmail()); });
155
+ i0.ɵɵtext(5);
156
+ i0.ɵɵpipe(6, "translate");
125
157
  i0.ɵɵelementEnd()();
158
+ } if (rf & 2) {
159
+ i0.ɵɵadvance(2);
160
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "email.close"));
161
+ i0.ɵɵadvance(3);
162
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "email.verify"));
126
163
  } }
127
164
  function EmailUpdateComponent_ion_row_11_Template(rf, ctx) { if (rf & 1) {
128
165
  const _r18 = i0.ɵɵgetCurrentView();
129
166
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 24)(2, "ion-button", 25);
130
167
  i0.ɵɵlistener("click", function EmailUpdateComponent_ion_row_11_Template_ion_button_click_2_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.setMode("1")); });
131
- i0.ɵɵtext(3, "Back");
168
+ i0.ɵɵtext(3);
169
+ i0.ɵɵpipe(4, "translate");
132
170
  i0.ɵɵelementEnd()();
133
- i0.ɵɵelementStart(4, "ion-col", 21)(5, "ion-button", 22);
134
- i0.ɵɵlistener("click", function EmailUpdateComponent_ion_row_11_Template_ion_button_click_5_listener() { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.close()); });
135
- i0.ɵɵtext(6, "Close");
171
+ i0.ɵɵelementStart(5, "ion-col", 21)(6, "ion-button", 22);
172
+ i0.ɵɵlistener("click", function EmailUpdateComponent_ion_row_11_Template_ion_button_click_6_listener() { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.close()); });
173
+ i0.ɵɵtext(7);
174
+ i0.ɵɵpipe(8, "translate");
136
175
  i0.ɵɵelementEnd();
137
- i0.ɵɵelementStart(7, "ion-button", 23);
138
- i0.ɵɵlistener("click", function EmailUpdateComponent_ion_row_11_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r18); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.updateEmailAndGetNewCode()); });
139
- i0.ɵɵtext(8, "Get code");
176
+ i0.ɵɵelementStart(9, "ion-button", 23);
177
+ i0.ɵɵlistener("click", function EmailUpdateComponent_ion_row_11_Template_ion_button_click_9_listener() { i0.ɵɵrestoreView(_r18); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.updateEmailAndGetNewCode()); });
178
+ i0.ɵɵtext(10);
179
+ i0.ɵɵpipe(11, "translate");
140
180
  i0.ɵɵelementEnd()()();
181
+ } if (rf & 2) {
182
+ i0.ɵɵadvance(3);
183
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 3, "email.back"));
184
+ i0.ɵɵadvance(4);
185
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 5, "email.close"));
186
+ i0.ɵɵadvance(3);
187
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 7, "email.get.code"));
141
188
  } }
142
189
  const _c3 = () => ({ width: "50vw" });
143
190
  const _c4 = () => ({ "960px": "60vw", "640px": "100vw" });
144
191
  export class EmailUpdateComponent {
145
- constructor(fb, util, ls, wcService, ovpService) {
192
+ constructor(fb, util, ls, wcService, ovpService, translateService) {
146
193
  this.fb = fb;
147
194
  this.util = util;
148
195
  this.ls = ls;
149
196
  this.wcService = wcService;
150
197
  this.ovpService = ovpService;
198
+ this.translateService = translateService;
151
199
  //1 - Verification
152
200
  //2 - Email update
153
201
  this.mode = '1';
@@ -253,7 +301,16 @@ export class EmailUpdateComponent {
253
301
  });
254
302
  }
255
303
  }
256
- static { this.ɵfac = function EmailUpdateComponent_Factory(t) { return new (t || EmailUpdateComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.LoginService), i0.ɵɵdirectiveInject(i4.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i5.OvpService)); }; }
304
+ get codeRequired() {
305
+ return this.translateService.instant('email.code.required');
306
+ }
307
+ get newEmailIsRequired() {
308
+ return this.translateService.instant('email.new.required');
309
+ }
310
+ get invalidEmail() {
311
+ return this.translateService.instant('email.invalid');
312
+ }
313
+ static { this.ɵfac = function EmailUpdateComponent_Factory(t) { return new (t || EmailUpdateComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.LoginService), i0.ɵɵdirectiveInject(i4.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i5.OvpService), i0.ɵɵdirectiveInject(i6.TranslateService)); }; }
257
314
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmailUpdateComponent, selectors: [["app-email-update"]], viewQuery: function EmailUpdateComponent_Query(rf, ctx) { if (rf & 1) {
258
315
  i0.ɵɵviewQuery(_c0, 5);
259
316
  } if (rf & 2) {
@@ -263,9 +320,9 @@ export class EmailUpdateComponent {
263
320
  i0.ɵɵelementStart(0, "p-dialog", 0)(1, "form", 1, 2)(3, "h4", 3);
264
321
  i0.ɵɵtext(4);
265
322
  i0.ɵɵelementEnd();
266
- i0.ɵɵtemplate(5, EmailUpdateComponent_div_5_Template, 19, 12, "div", 4)(6, EmailUpdateComponent_div_6_Template, 10, 4, "div", 4);
323
+ i0.ɵɵtemplate(5, EmailUpdateComponent_div_5_Template, 22, 22, "div", 4)(6, EmailUpdateComponent_div_6_Template, 12, 12, "div", 4);
267
324
  i0.ɵɵelementStart(7, "p-footer")(8, "div");
268
- i0.ɵɵtemplate(9, EmailUpdateComponent_div_9_Template, 2, 0, "div", 5)(10, EmailUpdateComponent_div_10_Template, 5, 0, "div", 6)(11, EmailUpdateComponent_ion_row_11_Template, 9, 0, "ion-row", 7);
325
+ i0.ɵɵtemplate(9, EmailUpdateComponent_div_9_Template, 2, 0, "div", 5)(10, EmailUpdateComponent_div_10_Template, 7, 6, "div", 6)(11, EmailUpdateComponent_ion_row_11_Template, 12, 9, "ion-row", 7);
269
326
  i0.ɵɵelementEnd()()()();
270
327
  } if (rf & 2) {
271
328
  i0.ɵɵstyleMap(i0.ɵɵpureFunction0(10, _c3));
@@ -284,12 +341,12 @@ export class EmailUpdateComponent {
284
341
  i0.ɵɵproperty("ngIf", !ctx.blocked && ctx.mode == "1");
285
342
  i0.ɵɵadvance(1);
286
343
  i0.ɵɵproperty("ngIf", !ctx.blocked && ctx.mode == "2");
287
- } }, dependencies: [i6.IonButton, i6.IonCol, i6.IonRow, i6.IonSpinner, i7.NgIf, i8.Footer, i9.MatError, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MinLengthValidator, i1.MaxLengthValidator, i1.FormGroupDirective, i1.FormControlName, i10.Dialog, i11.InputText, i12.ErrorComponent, i13.MaskEmailPipe] }); }
344
+ } }, dependencies: [i7.IonButton, i7.IonCol, i7.IonRow, i7.IonSpinner, i8.NgIf, i9.Footer, i10.MatError, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MinLengthValidator, i1.MaxLengthValidator, i1.FormGroupDirective, i1.FormControlName, i11.Dialog, i12.InputText, i13.ErrorComponent, i6.TranslatePipe, i14.MaskEmailPipe] }); }
288
345
  }
289
346
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EmailUpdateComponent, [{
290
347
  type: Component,
291
- args: [{ selector: 'app-email-update', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '60vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" position=\"top\">\r\n <form [formGroup]=\"authCodeForm\" #authCodeFormDirective=\"ngForm\">\r\n <h4 class=\"heading ion-padding-left\">\r\n {{mode == '1' ? 'Activate your account' : 'Email update'}}\r\n </h4>\r\n\r\n <div class=\"ion-padding-left\" *ngIf=\"mode == '1'\">\r\n <p>A verification code has been sent to your email address:&nbsp; <b>{{email | maskEmail}}</b>\r\n </p>\r\n <p>\r\n Check your junk folder if you don't see it in your inbox.\r\n </p>\r\n \r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"authCode\">Enter code</label><br/>\r\n <input autocomplete=\"off\" type=\"text\" pInputText formControlName=\"authCode\" size=\"8\" maxlength=\"8\" [id]=\"'authCode'\"/>\r\n <app-error [field]='authCode' [form]=\"authCodeFormDirective\" [errDef]=\"{ \r\n required: 'Code is required.'\r\n }\"></app-error>\r\n </div>\r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br/><br/></mat-error>\r\n <p *ngIf=\"successDtls\" style=\"color: var(--ion-color-green); font-weight: bold;\">{{successDtls}}</p>\r\n </div>\r\n <p *ngIf=\"!blocked\">If you didn't get the verification code <a class=\"link\" (click)=\"getNewCode()\">click here</a> and we'll send it again.</p>\r\n <p *ngIf=\"!blocked\"><a class=\"link\" (click)=\"setMode('2')\">Update email address</a></p>\r\n </div>\r\n \r\n <div class=\"ion-padding-left\" *ngIf=\"mode == '2'\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label>Enter new email address</label><br/>\r\n <input id=\"email\" formControlName=\"newEmail\" pInputText type=\"email\" maxlength=\"30\" minlength=\"6\" size=\"30\"/>\r\n <app-error [field]='newEmail' [form]=\"authCodeFormDirective\" [errDef]=\"{ \r\n required: 'New email is required.',\r\n email: 'Invalid email.'\r\n }\"></app-error>\r\n </div>\r\n <label class=\"ion-padding-top\">A new verification code will be sent to above email address.</label>\r\n </div>\r\n </div>\r\n \r\n <p-footer >\r\n <div>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right\" *ngIf=\"!blocked && mode == '1'\">\r\n <ion-button shape=\"round\" type=\"button\" color=\"primary\" fill=\"outline\" (click)=\"close()\">Close</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"verifyEmail()\">Verify</ion-button>\r\n </div>\r\n <ion-row *ngIf=\"!blocked && mode == '2'\">\r\n <ion-col class=\"ion-text-left\" style=\"padding-left: 0px;\" size=\"3\">\r\n <ion-button shape=\"round\" type=\"reset\" color=\"primary\" fill=\"outline\" (click)=\"setMode('1')\">Back</ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" type=\"button\" color=\"primary\" fill=\"outline\" (click)=\"close()\">Close</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"updateEmailAndGetNewCode()\">Get code</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </p-footer>\r\n </form>\r\n</p-dialog>" }]
292
- }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }, { type: i3.LoginService }, { type: i4.WeeklyCertServiceV2 }, { type: i5.OvpService }], { authCodeFormDirective: [{
348
+ args: [{ selector: 'app-email-update', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '60vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" position=\"top\">\r\n <form [formGroup]=\"authCodeForm\" #authCodeFormDirective=\"ngForm\">\r\n <h4 class=\"heading ion-padding-left\">\r\n {{mode == '1' ? 'Activate your account' : 'Email update'}}\r\n <!-- {{mode == '1' ? \"email.activate.account\" | translate : \"email.update\" | translate}} -->\r\n </h4>\r\n\r\n <div class=\"ion-padding-left\" *ngIf=\"mode == '1'\">\r\n <p>{{\"email.verification.sent\" | translate}}&nbsp; <b>{{email | maskEmail}}</b>\r\n </p>\r\n <p>\r\n {{\"email.check.junk\" | translate}}\r\n </p>\r\n \r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"authCode\">{{\"email.enter.code\" | translate}}</label><br/>\r\n <input autocomplete=\"off\" type=\"text\" pInputText formControlName=\"authCode\" size=\"8\" maxlength=\"8\" [id]=\"'authCode'\"/>\r\n <app-error [field]='authCode' [form]=\"authCodeFormDirective\" [errDef]=\"{ \r\n required: codeRequired\r\n }\"></app-error>\r\n </div>\r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br/><br/></mat-error>\r\n <p *ngIf=\"successDtls\" style=\"color: var(--ion-color-green); font-weight: bold;\">{{successDtls}}</p>\r\n </div>\r\n <p *ngIf=\"!blocked\">{{\"email.no.verification.code\" | translate}} <a class=\"link\" (click)=\"getNewCode()\">{{\"email.click.here\" | translate}}</a> {{\"email.we.will.send\" | translate}}</p>\r\n <p *ngIf=\"!blocked\"><a class=\"link\" (click)=\"setMode('2')\">{{\"email.update.email\" | translate}}</a></p>\r\n </div>\r\n \r\n <div class=\"ion-padding-left\" *ngIf=\"mode == '2'\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label>{{\"email.enter.new.email\" | translate}}</label><br/>\r\n <input id=\"email\" formControlName=\"newEmail\" pInputText type=\"email\" maxlength=\"30\" minlength=\"6\" size=\"30\"/>\r\n <app-error [field]='newEmail' [form]=\"authCodeFormDirective\" [errDef]=\"{ \r\n required: newEmailIsRequired,\r\n email: invalidEmail\r\n }\"></app-error>\r\n </div>\r\n <label class=\"ion-padding-top\">{{\"email.new.verification.code.sent\" | translate}}</label>\r\n </div>\r\n </div>\r\n \r\n <p-footer >\r\n <div>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right\" *ngIf=\"!blocked && mode == '1'\">\r\n <ion-button shape=\"round\" type=\"button\" color=\"primary\" fill=\"outline\" (click)=\"close()\">{{\"email.close\" | translate}}</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"verifyEmail()\">{{\"email.verify\" | translate}}</ion-button>\r\n </div>\r\n <ion-row *ngIf=\"!blocked && mode == '2'\">\r\n <ion-col class=\"ion-text-left\" style=\"padding-left: 0px;\" size=\"3\">\r\n <ion-button shape=\"round\" type=\"reset\" color=\"primary\" fill=\"outline\" (click)=\"setMode('1')\">{{\"email.back\" | translate}}</ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" type=\"button\" color=\"primary\" fill=\"outline\" (click)=\"close()\">{{\"email.close\" | translate}}</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"updateEmailAndGetNewCode()\">{{\"email.get.code\" | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </p-footer>\r\n </form>\r\n</p-dialog>" }]
349
+ }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }, { type: i3.LoginService }, { type: i4.WeeklyCertServiceV2 }, { type: i5.OvpService }, { type: i6.TranslateService }], { authCodeFormDirective: [{
293
350
  type: ViewChild,
294
351
  args: ['authCodeFormDirective', { static: false }]
295
352
  }], onSuccess: [{
@@ -299,5 +356,5 @@ export class EmailUpdateComponent {
299
356
  }], email: [{
300
357
  type: Input
301
358
  }] }); })();
302
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmailUpdateComponent, { className: "EmailUpdateComponent", filePath: "lib\\components\\email-update\\email-update.component.ts", lineNumber: 17 }); })();
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtdXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbWFpbC11cGRhdGUvZW1haWwtdXBkYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbWFpbC11cGRhdGUvZW1haWwtdXBkYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBZ0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNnQmhELGlDQUE2QjtJQUFBLFlBQWE7SUFBQSxxQkFBSyxTQUFBO0lBQUssaUJBQVk7OztJQUFuQyxlQUFhO0lBQWIsc0NBQWE7OztJQUMxQyw2QkFBaUY7SUFBQSxZQUFlO0lBQUEsaUJBQUk7OztJQUFuQixlQUFlO0lBQWYsd0NBQWU7Ozs7SUFFcEcseUJBQW9CO0lBQUEsd0RBQXdDO0lBQUEsNkJBQXVDO0lBQXZCLG9LQUFTLGVBQUEsb0JBQVksQ0FBQSxJQUFDO0lBQUMsMEJBQVU7SUFBQSxpQkFBSTtJQUFDLHlDQUF3QjtJQUFBLGlCQUFJOzs7O0lBQzlJLHlCQUFvQixZQUFBO0lBQWdCLG9LQUFTLGVBQUEsZ0JBQVEsR0FBRyxDQUFDLENBQUEsSUFBQztJQUFDLG9DQUFvQjtJQUFBLGlCQUFJLEVBQUE7Ozs7SUFuQnZGLDhCQUFrRCxR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QUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDUjtJQUNILENBQUM7cUZBeElVLG9CQUFvQjtvRUFBcEIsb0JBQW9COzs7Ozs7WUNoQmpDLG1DQUFtSixpQkFBQSxZQUFBO1lBR3ZJLFlBQ0o7WUFBQSxpQkFBSztZQUVMLHVFQW9CTSx5REFBQTtZQWdCTixnQ0FBVyxVQUFBO1lBRUgscUVBRU0sMERBQUEsa0VBQUE7WUFjVixpQkFBTSxFQUFBLEVBQUEsRUFBQTs7WUE1RHdGLDBDQUF5QjtZQUE3RSx5REFBbUQ7WUFDL0YsZUFBMEI7WUFBMUIsNENBQTBCO1lBRXhCLGVBQ0o7WUFESSwyRkFDSjtZQUUrQixlQUFpQjtZQUFqQixzQ0FBaUI7WUFzQmpCLGVBQWlCO1lBQWpCLHNDQUFpQjtZQWdCbEMsZUFBYTtZQUFiLGtDQUFhO1lBR1UsZUFBNkI7WUFBN0Isc0RBQTZCO1lBSWhELGVBQTZCO1lBQTdCLHNEQUE2Qjs7O2lGRG5DMUMsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCO21LQWtCckIscUJBQXFCO2tCQUQzQixTQUFTO21CQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQztZQUlwRCxTQUFTO2tCQURSLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFHUyxLQUFLO2tCQUFwQixLQUFLOztrRkF0Qkssb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFJlZ2V4IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwUmVnZXgnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnXHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IE92cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdnAvb3ZwLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZW1haWwtdXBkYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW1haWwtdXBkYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lbWFpbC11cGRhdGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbWFpbFVwZGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBlcnJvckR0bHM7XHJcbiAgcHVibGljIHN1Y2Nlc3NEdGxzO1xyXG4gIC8vMSAtIFZlcmlmaWNhdGlvblxyXG4gIC8vMiAtIEVtYWlsIHVwZGF0ZVxyXG4gIG1vZGUgOiBzdHJpbmcgPSAnMSc7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgYXV0aENvZGVGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dGhDb2RlRm9ybURpcmVjdGl2ZScsIHtzdGF0aWMgOiBmYWxzZX0pIFxyXG4gIHB1YmxpYyBhdXRoQ29kZUZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgQE91dHB1dCgpIFxyXG4gIG9uU3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGVtYWlsIDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmIgOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyB1dGlsIDogVXRpbFNlcnZpY2UsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLHByaXZhdGUgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLHByaXZhdGUgb3ZwU2VydmljZTogT3ZwU2VydmljZSwpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHsgICAgXHJcbiAgICB0aGlzLmF1dGhDb2RlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnYXV0aENvZGUnIDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnbmV3RW1haWwnIDogW251bGxdXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBhdXRoQ29kZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aENvZGVGb3JtLmNvbnRyb2xzWydhdXRoQ29kZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5ld0VtYWlsKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoQ29kZUZvcm0uY29udHJvbHNbJ25ld0VtYWlsJ107XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNldE1vZGUobW9kZSA6IHN0cmluZyl7XHJcbiAgICBpZihtb2RlID09ICcxJyl7XHJcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5uZXdFbWFpbCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmF1dGhDb2RlKTtcclxuICAgICAgdGhpcy5tb2RlID0gbW9kZTtcclxuICAgIH1cclxuICAgIGlmKG1vZGUgPT0gJzInKXtcclxuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmF1dGhDb2RlKTtcclxuICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5uZXdFbWFpbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMubWF0Y2goQXBwUmVnZXguRU1BSUxfUkVHRVgsIHtlbWFpbCA6IHRydWV9KV0pO1xyXG4gICAgICB0aGlzLm1vZGUgPSBtb2RlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmVyaWZ5RW1haWwoKXtcclxuICAgIGlmKHRoaXMuYXV0aENvZGVGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5yZXNldE1zZygpO1xyXG4gICAgICB0aGlzLmJsb2NrZWQgPSB0cnVlOyAgICBcclxuICAgICAgdGhpcy5scy52ZXJpZnlFbWFpbCh0aGlzLmF1dGhDb2RlLnZhbHVlKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gcmVzWydtZXNzYWdlJ107XHJcbiAgICAgICAgICAgIHRoaXMubHNcclxuICAgICAgICAgICAgICAgIC5yZWZyZXNoVG9rZW4odGhpcy5scy5nZXRVc2VyKCkucmVmcmVzaF90b2tlbilcclxuICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubHMuc2V0VXNlcihyZXMpO1xyXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25TdWNjZXNzLmVtaXQoKSwgMTAwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpOyAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIGlmKHRoaXMudXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJBSUMgRkxPVyBpbiBMb2dpblNlcnZpY1wiKTsgICAgXHJcbiAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLndjU2VydmljZS5nZW5lcmF0ZUV2ZW50Rm9yUmVvcGVuQWljRmxvdyh0aGlzLnVzZXJNb2RlbC5zc24pXHJcbiAgICAgICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICkuY2F0Y2goYXN5bmMgZXJyID0+eyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICB9KSAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIC8qICAgaXQgd2FzIGNvbW1lbnRlZCAgIGZvciBQR0xQLTIyODEgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwib3ZlcnBheW1lbnQgTG9naW5TZXJ2aWNcIik7ICAgIFxyXG4gICAgICAgICAgICAgICAgIGNvbnN0IGRhdGE9IGF3YWl0IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyUmVwYXltZW50RXZlbnQodGhpcy51c2VyTW9kZWwuc3NuKVxyXG4gICAgICAgICAgICAgICAgICAgLnRoZW4oYXN5bmMgPT57ICAgICAgICAgIH0gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICkuY2F0Y2goYXN5bmMgZXJyID0+eyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgfSkgIFxyXG4gICAgICAgICAgICAgIH0gICovXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gJ0NvdWxkIG5vdCBwcm9jZXNzIHlvdXIgcmVxdWVzdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZ1swXTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0TXNnKCl7XHJcbiAgICB0aGlzLmVycm9yRHRscyA9IG51bGw7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV3Q29kZSgpe1xyXG4gICAgdGhpcy5yZXNldE1zZygpO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3Q29kZSgpXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IHJlc1snbWVzc2FnZSddO1xyXG4gICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gJ0NvdWxkIG5vdCBnZXQgbmV3IGNvZGUuIFBsZWFzZSB0cnkgYWdhaW4uJ1xyXG4gICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVFbWFpbEFuZEdldE5ld0NvZGUoKXtcclxuICAgIGlmKHRoaXMubmV3RW1haWwudmFsaWQpe1xyXG4gICAgICB0aGlzLnJlc2V0TXNnKCk7XHJcbiAgICAgIHRoaXMuYmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubHMudXBkYXRlRW1haWxBbmRHZXROZXdDb2RlKHRoaXMubmV3RW1haWwudmFsdWUudHJpbSgpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gcmVzWydtZXNzYWdlJ107XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnMScpO1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsID0gdGhpcy5uZXdFbWFpbC52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2dbMF07XHJcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8cC1kaWFsb2cgdmlzaWJsZT1cInRydWVcIiBtb2RhbD1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBbYnJlYWtwb2ludHNdPVwieyc5NjBweCc6ICc2MHZ3JywgJzY0MHB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNTB2dyd9XCIgcG9zaXRpb249XCJ0b3BcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiYXV0aENvZGVGb3JtXCIgI2F1dGhDb2RlRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICAgICAgICB7e21vZGUgPT0gJzEnID8gJ0FjdGl2YXRlIHlvdXIgYWNjb3VudCcgOiAnRW1haWwgdXBkYXRlJ319XHJcbiAgICAgICAgPC9oND5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLWxlZnRcIiAqbmdJZj1cIm1vZGUgPT0gJzEnXCI+XHJcbiAgICAgICAgICAgIDxwPkEgdmVyaWZpY2F0aW9uIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGVtYWlsIGFkZHJlc3M6Jm5ic3A7IDxiPnt7ZW1haWwgfCBtYXNrRW1haWx9fTwvYj5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIENoZWNrIHlvdXIganVuayBmb2xkZXIgaWYgeW91IGRvbid0IHNlZSBpdCBpbiB5b3VyIGluYm94LlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhdXRoQ29kZVwiPkVudGVyIGNvZGU8L2xhYmVsPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJhdXRoQ29kZVwiIHNpemU9XCI4XCIgbWF4bGVuZ3RoPVwiOFwiIFtpZF09XCInYXV0aENvZGUnXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nYXV0aENvZGUnIFtmb3JtXT1cImF1dGhDb2RlRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdDb2RlIGlzIHJlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImVycm9yRHRsc1wiPnt7ZXJyb3JEdGxzfX08YnIvPjxici8+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInN1Y2Nlc3NEdGxzXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+e3tzdWNjZXNzRHRsc319PC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHAgKm5nSWY9XCIhYmxvY2tlZFwiPklmIHlvdSBkaWRuJ3QgZ2V0IHRoZSB2ZXJpZmljYXRpb24gY29kZSA8YSBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwiZ2V0TmV3Q29kZSgpXCI+Y2xpY2sgaGVyZTwvYT4gYW5kIHdlJ2xsIHNlbmQgaXQgYWdhaW4uPC9wPlxyXG4gICAgICAgICAgICA8cCAqbmdJZj1cIiFibG9ja2VkXCI+PGEgY2xhc3M9XCJsaW5rXCIgKGNsaWNrKT1cInNldE1vZGUoJzInKVwiPlVwZGF0ZSBlbWFpbCBhZGRyZXNzPC9hPjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy1sZWZ0XCIgKm5nSWY9XCJtb2RlID09ICcyJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkVudGVyIG5ldyBlbWFpbCBhZGRyZXNzPC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3RW1haWxcIiBwSW5wdXRUZXh0IHR5cGU9XCJlbWFpbFwiIG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNlwiIHNpemU9XCIzMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J25ld0VtYWlsJyBbZm9ybV09XCJhdXRoQ29kZUZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnTmV3IGVtYWlsIGlzIHJlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiAnSW52YWxpZCBlbWFpbC4nXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPkEgbmV3IHZlcmlmaWNhdGlvbiBjb2RlIHdpbGwgYmUgc2VudCB0byBhYm92ZSBlbWFpbCBhZGRyZXNzLjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgPHAtZm9vdGVyID5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJibG9ja2VkXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIiAqbmdJZj1cIiFibG9ja2VkICYmIG1vZGUgPT0gJzEnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJidXR0b25cIiAgY29sb3I9XCJwcmltYXJ5XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNsb3NlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ2ZXJpZnlFbWFpbCgpXCI+VmVyaWZ5PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFibG9ja2VkICYmIG1vZGUgPT0gJzInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDBweDtcIiBzaXplPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgIGNvbG9yPVwicHJpbWFyeVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE1vZGUoJzEnKVwiPkJhY2s8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJidXR0b25cIiAgY29sb3I9XCJwcmltYXJ5XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNsb3NlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ1cGRhdGVFbWFpbEFuZEdldE5ld0NvZGUoKVwiPkdldCBjb2RlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9wLWZvb3Rlcj5cclxuICAgIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=
359
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmailUpdateComponent, { className: "EmailUpdateComponent", filePath: "lib\\components\\email-update\\email-update.component.ts", lineNumber: 18 }); })();
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtdXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbWFpbC11cGRhdGUvZW1haWwtdXBkYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbWFpbC11cGRhdGUvZW1haWwtdXBkYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBZ0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDaUJoRCxpQ0FBNkI7SUFBQSxZQUFhO0lBQUEscUJBQUssU0FBQTtJQUFLLGlCQUFZOzs7SUFBbkMsZUFBYTtJQUFiLHNDQUFhOzs7SUFDMUMsNkJBQWlGO0lBQUEsWUFBZTtJQUFBLGlCQUFJOzs7SUFBbkIsZUFBZTtJQUFmLHdDQUFlOzs7O0lBRXBHLHlCQUFvQjtJQUFBLFlBQTZDOztJQUFBLDZCQUF1QztJQUF2QixvS0FBUyxlQUFBLG9CQUFZLENBQUEsSUFBQztJQUFDLFlBQWtDOztJQUFBLGlCQUFJO0lBQUMsWUFBb0M7O0lBQUEsaUJBQUk7O0lBQW5LLGVBQTZDO0lBQTdDLGtGQUE2QztJQUF1QyxlQUFrQztJQUFsQyw4REFBa0M7SUFBSyxlQUFvQztJQUFwQywwRUFBb0M7Ozs7SUFDbkwseUJBQW9CLFlBQUE7SUFBZ0Isb0tBQVMs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QUFBLEVBQUEsRUFBQTs7WUE3RHdGLDBDQUF5QjtZQUE3RSx5REFBbUQ7WUFDL0YsZUFBMEI7WUFBMUIsNENBQTBCO1lBRXhCLGVBQ0E7WUFEQSwyRkFDQTtZQUcyQixlQUFpQjtZQUFqQixzQ0FBaUI7WUFzQmpCLGVBQWlCO1lBQWpCLHNDQUFpQjtZQWdCbEMsZUFBYTtZQUFiLGtDQUFhO1lBR1UsZUFBNkI7WUFBN0Isc0RBQTZCO1lBSWhELGVBQTZCO1lBQTdCLHNEQUE2Qjs7O2lGRG5DMUMsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCO2tNQWtCckIscUJBQXFCO2tCQUQzQixTQUFTO21CQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQztZQUlwRCxTQUFTO2tCQURSLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFHUyxLQUFLO2tCQUFwQixLQUFLOztrRkF0Qkssb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFJlZ2V4IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwUmVnZXgnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnXHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IE92cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdnAvb3ZwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lbWFpbC11cGRhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC11cGRhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VtYWlsLXVwZGF0ZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsVXBkYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcbiAgLy8xIC0gVmVyaWZpY2F0aW9uXHJcbiAgLy8yIC0gRW1haWwgdXBkYXRlXHJcbiAgbW9kZSA6IHN0cmluZyA9ICcxJztcclxuXHJcbiAgcHVibGljIGJsb2NrZWQ6IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBhdXRoQ29kZUZvcm0gOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXV0aENvZGVGb3JtRGlyZWN0aXZlJywge3N0YXRpYyA6IGZhbHNlfSkgXHJcbiAgcHVibGljIGF1dGhDb2RlRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgb25TdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIFxyXG4gIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZW1haWwgOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYiA6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHVibGljIGxzOiBMb2dpblNlcnZpY2UscHJpdmF0ZSB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIscHJpdmF0ZSBvdnBTZXJ2aWNlOiBPdnBTZXJ2aWNlLHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7ICAgIFxyXG4gICAgdGhpcy5hdXRoQ29kZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ2F1dGhDb2RlJyA6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ25ld0VtYWlsJyA6IFtudWxsXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXV0aENvZGUoKXtcclxuICAgIHJldHVybiB0aGlzLmF1dGhDb2RlRm9ybS5jb250cm9sc1snYXV0aENvZGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBuZXdFbWFpbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aENvZGVGb3JtLmNvbnRyb2xzWyduZXdFbWFpbCddO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlKG1vZGUgOiBzdHJpbmcpe1xyXG4gICAgaWYobW9kZSA9PSAnMScpe1xyXG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubmV3RW1haWwpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5hdXRoQ29kZSk7XHJcbiAgICAgIHRoaXMubW9kZSA9IG1vZGU7XHJcbiAgICB9XHJcbiAgICBpZihtb2RlID09ICcyJyl7XHJcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5hdXRoQ29kZSk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMubmV3RW1haWwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkVNQUlMX1JFR0VYLCB7ZW1haWwgOiB0cnVlfSldKTtcclxuICAgICAgdGhpcy5tb2RlID0gbW9kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZlcmlmeUVtYWlsKCl7XHJcbiAgICBpZih0aGlzLmF1dGhDb2RlRm9ybS52YWxpZCl7XHJcbiAgICAgIHRoaXMucmVzZXRNc2coKTtcclxuICAgICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTsgICAgXHJcbiAgICAgIHRoaXMubHMudmVyaWZ5RW1haWwodGhpcy5hdXRoQ29kZS52YWx1ZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IHJlc1snbWVzc2FnZSddO1xyXG4gICAgICAgICAgICB0aGlzLmxzXHJcbiAgICAgICAgICAgICAgICAucmVmcmVzaFRva2VuKHRoaXMubHMuZ2V0VXNlcigpLnJlZnJlc2hfdG9rZW4pXHJcbiAgICAgICAgICAgICAgICAudGhlbihhc3luYyByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxzLnNldFVzZXIocmVzKTtcclxuICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uU3VjY2Vzcy5lbWl0KCksIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTsgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLnVzZXJNb2RlbC5zc24hPW51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQUlDIEZMT1cgaW4gTG9naW5TZXJ2aWNcIik7ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YT0gYXdhaXQgdGhpcy53Y1NlcnZpY2UuZ2VuZXJhdGVFdmVudEZvclJlb3BlbkFpY0Zsb3codGhpcy51c2VyTW9kZWwuc3NuKVxyXG4gICAgICAgICAgICAgICAgICAgICAudGhlbihhc3luYyA9PnsgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICApLmNhdGNoKGFzeW5jIGVyciA9PnsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgfSkgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAvKiAgIGl0IHdhcyBjb21tZW50ZWQgICBmb3IgUEdMUC0yMjgxICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnVzZXJNb2RlbC5zc24hPW51bGwpe1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm92ZXJwYXltZW50IExvZ2luU2VydmljXCIpOyAgICBcclxuICAgICAgICAgICAgICAgICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLm92cFNlcnZpY2UudHJpZ2dlclJlcGF5bWVudEV2ZW50KHRoaXMudXNlck1vZGVsLnNzbilcclxuICAgICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgICB9ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICApLmNhdGNoKGFzeW5jIGVyciA9PnsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgIH0pICBcclxuICAgICAgICAgICAgICB9ICAqL1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9ICdDb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2dbMF07XHJcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldE1zZygpe1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldE5ld0NvZGUoKXtcclxuICAgIHRoaXMucmVzZXRNc2coKTtcclxuICAgIHRoaXMuYmxvY2tlZCA9IHRydWU7XHJcbiAgICB0aGlzLmxzLmdldE5ld0NvZGUoKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSByZXNbJ21lc3NhZ2UnXTtcclxuICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yRHRscyA9ICdDb3VsZCBub3QgZ2V0IG5ldyBjb2RlLiBQbGVhc2UgdHJ5IGFnYWluLidcclxuICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRW1haWxBbmRHZXROZXdDb2RlKCl7XHJcbiAgICBpZih0aGlzLm5ld0VtYWlsLnZhbGlkKXtcclxuICAgICAgdGhpcy5yZXNldE1zZygpO1xyXG4gICAgICB0aGlzLmJsb2NrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmxzLnVwZGF0ZUVtYWlsQW5kR2V0TmV3Q29kZSh0aGlzLm5ld0VtYWlsLnZhbHVlLnRyaW0oKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IHJlc1snbWVzc2FnZSddO1xyXG4gICAgICAgICAgICB0aGlzLnNldE1vZGUoJzEnKTtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbCA9IHRoaXMubmV3RW1haWwudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGNvZGVSZXF1aXJlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlbWFpbC5jb2RlLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbmV3RW1haWxJc1JlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2VtYWlsLm5ldy5yZXF1aXJlZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGludmFsaWRFbWFpbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlbWFpbC5pbnZhbGlkJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFticmVha3BvaW50c109XCJ7Jzk2MHB4JzogJzYwdncnLCAnNjQwcHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc1MHZ3J31cIiBwb3NpdGlvbj1cInRvcFwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJhdXRoQ29kZUZvcm1cIiAjYXV0aENvZGVGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZyBpb24tcGFkZGluZy1sZWZ0XCI+XHJcbiAgICAgICAgICAgIHt7bW9kZSA9PSAnMScgPyAnQWN0aXZhdGUgeW91ciBhY2NvdW50JyA6ICdFbWFpbCB1cGRhdGUnfX1cclxuICAgICAgICAgICAgPCEtLSB7e21vZGUgPT0gJzEnID8gXCJlbWFpbC5hY3RpdmF0ZS5hY2NvdW50XCIgfCB0cmFuc2xhdGUgOiBcImVtYWlsLnVwZGF0ZVwiIHwgdHJhbnNsYXRlfX0gLS0+XHJcbiAgICAgICAgPC9oND5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLWxlZnRcIiAqbmdJZj1cIm1vZGUgPT0gJzEnXCI+XHJcbiAgICAgICAgICAgIDxwPnt7XCJlbWFpbC52ZXJpZmljYXRpb24uc2VudFwiIHwgdHJhbnNsYXRlfX0mbmJzcDsgPGI+e3tlbWFpbCB8IG1hc2tFbWFpbH19PC9iPlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAge3tcImVtYWlsLmNoZWNrLmp1bmtcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCI+e3tcImVtYWlsLmVudGVyLmNvZGVcIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiYXV0aENvZGVcIiBzaXplPVwiOFwiIG1heGxlbmd0aD1cIjhcIiBbaWRdPVwiJ2F1dGhDb2RlJ1wiLz5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J2F1dGhDb2RlJyBbZm9ybV09XCJhdXRoQ29kZUZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBjb2RlUmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImVycm9yRHRsc1wiPnt7ZXJyb3JEdGxzfX08YnIvPjxici8+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInN1Y2Nlc3NEdGxzXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+e3tzdWNjZXNzRHRsc319PC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHAgKm5nSWY9XCIhYmxvY2tlZFwiPnt7XCJlbWFpbC5uby52ZXJpZmljYXRpb24uY29kZVwiIHwgdHJhbnNsYXRlfX0gPGEgY2xhc3M9XCJsaW5rXCIgKGNsaWNrKT1cImdldE5ld0NvZGUoKVwiPnt7XCJlbWFpbC5jbGljay5oZXJlXCIgfCB0cmFuc2xhdGV9fTwvYT4ge3tcImVtYWlsLndlLndpbGwuc2VuZFwiIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgICAgIDxwICpuZ0lmPVwiIWJsb2NrZWRcIj48YSBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwic2V0TW9kZSgnMicpXCI+e3tcImVtYWlsLnVwZGF0ZS5lbWFpbFwiIHwgdHJhbnNsYXRlfX08L2E+PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLWxlZnRcIiAqbmdJZj1cIm1vZGUgPT0gJzInXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImVtYWlsLmVudGVyLm5ldy5lbWFpbFwiIHwgdHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJuZXdFbWFpbFwiIHBJbnB1dFRleHQgdHlwZT1cImVtYWlsXCIgbWF4bGVuZ3RoPVwiMzBcIiBtaW5sZW5ndGg9XCI2XCIgc2l6ZT1cIjMwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nbmV3RW1haWwnIFtmb3JtXT1cImF1dGhDb2RlRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IG5ld0VtYWlsSXNSZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IGludmFsaWRFbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj57e1wiZW1haWwubmV3LnZlcmlmaWNhdGlvbi5jb2RlLnNlbnRcIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICA8cC1mb290ZXIgPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJsb2NrZWRcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiICpuZ0lmPVwiIWJsb2NrZWQgJiYgbW9kZSA9PSAnMSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cImJ1dHRvblwiICBjb2xvcj1cInByaW1hcnlcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+e3tcImVtYWlsLmNsb3NlXCIgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiICBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidmVyaWZ5RW1haWwoKVwiPnt7XCJlbWFpbC52ZXJpZnlcIiB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFibG9ja2VkICYmIG1vZGUgPT0gJzInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDBweDtcIiBzaXplPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgIGNvbG9yPVwicHJpbWFyeVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE1vZGUoJzEnKVwiPnt7XCJlbWFpbC5iYWNrXCIgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cImJ1dHRvblwiICBjb2xvcj1cInByaW1hcnlcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+e3tcImVtYWlsLmNsb3NlXCIgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiICBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidXBkYXRlRW1haWxBbmRHZXROZXdDb2RlKClcIj57e1wiZW1haWwuZ2V0LmNvZGVcIiB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9wLWZvb3Rlcj5cclxuICAgIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=