@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.
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +196 -132
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +29 -24
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +45 -31
- package/esm2022/lib/components/address/address.component.mjs +97 -46
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +139 -75
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +42 -28
- package/esm2022/lib/components/email-update/email-update.component.mjs +119 -62
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +165 -84
- package/esm2022/lib/components/footer/footer.component.mjs +23 -11
- package/esm2022/lib/components/header/header.component.mjs +163 -109
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +29 -18
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
- package/esm2022/lib/components/job-title/job-title.component.mjs +20 -16
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +389 -208
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +83 -21
- package/esm2022/lib/components/menu/menu.component.mjs +63 -25
- package/esm2022/lib/components/mfa/mfa.component.mjs +155 -98
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +54 -30
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +31 -23
- package/esm2022/lib/components/profile/profile.component.mjs +34 -14
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +17 -10
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +80 -27
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +29 -8
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +172 -119
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +122 -41
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +10 -7
- package/esm2022/lib/components/security-question/security-question.component.mjs +19 -9
- package/esm2022/lib/components/select/select.component.mjs +10 -5
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
- package/esm2022/lib/components/user-login/user-login.component.mjs +116 -82
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +69 -47
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +480 -1
- package/esm2022/lib/pages/common/login/login.component.mjs +7 -2
- package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
- package/esm2022/lib/validations/AppValidators.mjs +9 -9
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +3103 -1492
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts +22 -73
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/add-participant/add-participant.component.d.ts +4 -1
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
- package/lib/components/add-payment/add-payment.component.d.ts +1 -2
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +10 -1
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +17 -1
- package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
- package/lib/components/contact-us/contact-us.component.d.ts +4 -1
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/email-update/email-update.component.d.ts +6 -1
- package/lib/components/email-update/email-update.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +6 -24
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +3 -0
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
- package/lib/components/job-title/job-title.component.d.ts +3 -1
- package/lib/components/job-title/job-title.component.d.ts.map +1 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
- package/lib/components/menu/menu.component.d.ts +11 -1
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/mfa/mfa.component.d.ts +6 -1
- package/lib/components/mfa/mfa.component.d.ts.map +1 -1
- package/lib/components/profile/profile.component.d.ts.map +1 -1
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -0
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
- package/lib/components/user-login/user-login.component.d.ts +7 -1
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +7 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
- package/lib/models/questionnaire/ComboModel.d.ts +80 -0
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
- package/lib/pages/common/login/login.component.d.ts.map +1 -1
- package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
- package/lib/validations/AppValidators.d.ts +8 -8
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -61,44 +61,54 @@ function EmployerGridComponent_p_table_27_ng_template_2_Template(rf, ctx) { if (
|
|
|
61
61
|
} }
|
|
62
62
|
function EmployerGridComponent_p_table_27_ng_template_3_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
63
63
|
i0.ɵɵelementStart(0, "td", 21)(1, "span", 22);
|
|
64
|
-
i0.ɵɵtext(2
|
|
64
|
+
i0.ɵɵtext(2);
|
|
65
|
+
i0.ɵɵpipe(3, "translate");
|
|
65
66
|
i0.ɵɵelementEnd();
|
|
66
|
-
i0.ɵɵelementStart(
|
|
67
|
-
i0.ɵɵtext(
|
|
68
|
-
i0.ɵɵelement(
|
|
69
|
-
i0.ɵɵtext(
|
|
70
|
-
i0.ɵɵelement(
|
|
67
|
+
i0.ɵɵelementStart(4, "span");
|
|
68
|
+
i0.ɵɵtext(5);
|
|
69
|
+
i0.ɵɵelement(6, "br");
|
|
70
|
+
i0.ɵɵtext(7);
|
|
71
|
+
i0.ɵɵelement(8, "br");
|
|
71
72
|
i0.ɵɵelementEnd();
|
|
72
|
-
i0.ɵɵelement(
|
|
73
|
-
i0.ɵɵpipe(
|
|
73
|
+
i0.ɵɵelement(9, "div", 23);
|
|
74
|
+
i0.ɵɵpipe(10, "trustHtml");
|
|
74
75
|
i0.ɵɵelementEnd();
|
|
75
76
|
} if (rf & 2) {
|
|
76
77
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
77
|
-
i0.ɵɵadvance(
|
|
78
|
+
i0.ɵɵadvance(2);
|
|
79
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "induction.employment.employer.text"));
|
|
80
|
+
i0.ɵɵadvance(3);
|
|
78
81
|
i0.ɵɵtextInterpolate1(" ", employer_r9.employerData.displayName, "");
|
|
79
82
|
i0.ɵɵadvance(2);
|
|
80
83
|
i0.ɵɵtextInterpolate1(" ", employer_r9.employerData.tradeName, "");
|
|
81
84
|
i0.ɵɵadvance(2);
|
|
82
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(
|
|
85
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(10, 6, employer_r9.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
|
|
83
86
|
} }
|
|
84
87
|
function EmployerGridComponent_p_table_27_ng_template_3_td_2_Template(rf, ctx) { if (rf & 1) {
|
|
85
88
|
i0.ɵɵelementStart(0, "td", 21)(1, "span", 22);
|
|
86
|
-
i0.ɵɵtext(2
|
|
89
|
+
i0.ɵɵtext(2);
|
|
90
|
+
i0.ɵɵpipe(3, "translate");
|
|
87
91
|
i0.ɵɵelementEnd();
|
|
88
|
-
i0.ɵɵelement(
|
|
92
|
+
i0.ɵɵelement(4, "span");
|
|
89
93
|
i0.ɵɵelementEnd();
|
|
94
|
+
} if (rf & 2) {
|
|
95
|
+
i0.ɵɵadvance(2);
|
|
96
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "induction.employment.employer.text"));
|
|
90
97
|
} }
|
|
91
98
|
function EmployerGridComponent_p_table_27_ng_template_3_td_3_Template(rf, ctx) { if (rf & 1) {
|
|
92
99
|
i0.ɵɵelementStart(0, "td")(1, "span", 24);
|
|
93
|
-
i0.ɵɵtext(2
|
|
100
|
+
i0.ɵɵtext(2);
|
|
101
|
+
i0.ɵɵpipe(3, "translate");
|
|
94
102
|
i0.ɵɵelementEnd();
|
|
95
|
-
i0.ɵɵelementStart(
|
|
96
|
-
i0.ɵɵtext(
|
|
97
|
-
i0.ɵɵelement(
|
|
103
|
+
i0.ɵɵelementStart(4, "span");
|
|
104
|
+
i0.ɵɵtext(5);
|
|
105
|
+
i0.ɵɵelement(6, "br");
|
|
98
106
|
i0.ɵɵelementEnd()();
|
|
99
107
|
} if (rf & 2) {
|
|
100
108
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
101
|
-
i0.ɵɵadvance(
|
|
109
|
+
i0.ɵɵadvance(2);
|
|
110
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "induction.employment.employer.text"));
|
|
111
|
+
i0.ɵɵadvance(3);
|
|
102
112
|
i0.ɵɵtextInterpolate1(" ", employer_r9.serviceBranch.text, " ");
|
|
103
113
|
} }
|
|
104
114
|
const _c0 = () => ["fal", "edit"];
|
|
@@ -167,126 +177,166 @@ function EmployerGridComponent_p_table_27_ng_template_3_ion_button_10_Template(r
|
|
|
167
177
|
} }
|
|
168
178
|
function EmployerGridComponent_p_table_27_ng_template_3_td_11_Template(rf, ctx) { if (rf & 1) {
|
|
169
179
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
170
|
-
i0.ɵɵtext(2
|
|
180
|
+
i0.ɵɵtext(2);
|
|
181
|
+
i0.ɵɵpipe(3, "translate");
|
|
171
182
|
i0.ɵɵelementEnd();
|
|
172
|
-
i0.ɵɵtext(
|
|
183
|
+
i0.ɵɵtext(4);
|
|
173
184
|
i0.ɵɵelementEnd();
|
|
174
185
|
} if (rf & 2) {
|
|
175
186
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
176
|
-
i0.ɵɵadvance(
|
|
187
|
+
i0.ɵɵadvance(2);
|
|
188
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "induction.employment.job.title"));
|
|
189
|
+
i0.ɵɵadvance(2);
|
|
177
190
|
i0.ɵɵtextInterpolate(employer_r9.jobTileOrPosition);
|
|
178
191
|
} }
|
|
179
192
|
function EmployerGridComponent_p_table_27_ng_template_3_td_12_Template(rf, ctx) { if (rf & 1) {
|
|
180
193
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
181
|
-
i0.ɵɵtext(2
|
|
194
|
+
i0.ɵɵtext(2);
|
|
195
|
+
i0.ɵɵpipe(3, "translate");
|
|
182
196
|
i0.ɵɵelementEnd()();
|
|
197
|
+
} if (rf & 2) {
|
|
198
|
+
i0.ɵɵadvance(2);
|
|
199
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "induction.employment.job.title"));
|
|
183
200
|
} }
|
|
184
201
|
function EmployerGridComponent_p_table_27_ng_template_3_td_13_Template(rf, ctx) { if (rf & 1) {
|
|
185
202
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
186
|
-
i0.ɵɵtext(2
|
|
203
|
+
i0.ɵɵtext(2);
|
|
204
|
+
i0.ɵɵpipe(3, "translate");
|
|
187
205
|
i0.ɵɵelementEnd();
|
|
188
|
-
i0.ɵɵtext(
|
|
206
|
+
i0.ɵɵtext(4);
|
|
189
207
|
i0.ɵɵelementEnd();
|
|
190
208
|
} if (rf & 2) {
|
|
191
209
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
192
|
-
i0.ɵɵadvance(
|
|
210
|
+
i0.ɵɵadvance(2);
|
|
211
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "induction.employment.job.title"));
|
|
212
|
+
i0.ɵɵadvance(2);
|
|
193
213
|
i0.ɵɵtextInterpolate(employer_r9.fedJobTileOrPosition);
|
|
194
214
|
} }
|
|
195
215
|
function EmployerGridComponent_p_table_27_ng_template_3_td_14_Template(rf, ctx) { if (rf & 1) {
|
|
196
216
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
197
|
-
i0.ɵɵtext(2
|
|
217
|
+
i0.ɵɵtext(2);
|
|
218
|
+
i0.ɵɵpipe(3, "translate");
|
|
198
219
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵtext(
|
|
220
|
+
i0.ɵɵtext(4);
|
|
200
221
|
i0.ɵɵelementEnd();
|
|
201
222
|
} if (rf & 2) {
|
|
202
223
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
203
|
-
i0.ɵɵadvance(
|
|
224
|
+
i0.ɵɵadvance(2);
|
|
225
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "induction.employment.job.title"));
|
|
226
|
+
i0.ɵɵadvance(2);
|
|
204
227
|
i0.ɵɵtextInterpolate2("", employer_r9.jobTileOrPosition, "", employer_r9.fedJobTileOrPosition, "");
|
|
205
228
|
} }
|
|
206
229
|
function EmployerGridComponent_p_table_27_ng_template_3_td_15_Template(rf, ctx) { if (rf & 1) {
|
|
207
230
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
208
|
-
i0.ɵɵtext(2
|
|
231
|
+
i0.ɵɵtext(2);
|
|
232
|
+
i0.ɵɵpipe(3, "translate");
|
|
209
233
|
i0.ɵɵelementEnd();
|
|
210
|
-
i0.ɵɵtext(
|
|
211
|
-
i0.ɵɵpipe(
|
|
234
|
+
i0.ɵɵtext(4);
|
|
235
|
+
i0.ɵɵpipe(5, "currency");
|
|
212
236
|
i0.ɵɵelementEnd();
|
|
213
237
|
} if (rf & 2) {
|
|
214
238
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
215
|
-
i0.ɵɵadvance(
|
|
216
|
-
i0.ɵɵ
|
|
239
|
+
i0.ɵɵadvance(2);
|
|
240
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "induction.employment.pay"));
|
|
241
|
+
i0.ɵɵadvance(2);
|
|
242
|
+
i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(5, 5, employer_r9.payRate), "/", employer_r9.payRateFrequency.text, "");
|
|
217
243
|
} }
|
|
218
244
|
function EmployerGridComponent_p_table_27_ng_template_3_td_16_Template(rf, ctx) { if (rf & 1) {
|
|
219
245
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
220
|
-
i0.ɵɵtext(2
|
|
246
|
+
i0.ɵɵtext(2);
|
|
247
|
+
i0.ɵɵpipe(3, "translate");
|
|
221
248
|
i0.ɵɵelementEnd()();
|
|
249
|
+
} if (rf & 2) {
|
|
250
|
+
i0.ɵɵadvance(2);
|
|
251
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "induction.employment.pay"));
|
|
222
252
|
} }
|
|
223
253
|
function EmployerGridComponent_p_table_27_ng_template_3_td_17_Template(rf, ctx) { if (rf & 1) {
|
|
224
254
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
225
|
-
i0.ɵɵtext(2
|
|
255
|
+
i0.ɵɵtext(2);
|
|
256
|
+
i0.ɵɵpipe(3, "translate");
|
|
226
257
|
i0.ɵɵelementEnd();
|
|
227
|
-
i0.ɵɵtext(
|
|
228
|
-
i0.ɵɵpipe(4, "date");
|
|
258
|
+
i0.ɵɵtext(4);
|
|
229
259
|
i0.ɵɵpipe(5, "date");
|
|
260
|
+
i0.ɵɵpipe(6, "date");
|
|
230
261
|
i0.ɵɵelementEnd();
|
|
231
262
|
} if (rf & 2) {
|
|
232
263
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
233
|
-
i0.ɵɵadvance(
|
|
234
|
-
i0.ɵɵ
|
|
264
|
+
i0.ɵɵadvance(2);
|
|
265
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "induction.employment.start.and.end"));
|
|
266
|
+
i0.ɵɵadvance(2);
|
|
267
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(5, 5, employer_r9.startDate, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(6, 8, employer_r9.endDate, "M/d/yyyy"), " ");
|
|
235
268
|
} }
|
|
236
269
|
function EmployerGridComponent_p_table_27_ng_template_3_td_18_Template(rf, ctx) { if (rf & 1) {
|
|
237
270
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
238
|
-
i0.ɵɵtext(2
|
|
271
|
+
i0.ɵɵtext(2);
|
|
272
|
+
i0.ɵɵpipe(3, "translate");
|
|
239
273
|
i0.ɵɵelementEnd();
|
|
240
|
-
i0.ɵɵtext(
|
|
241
|
-
i0.ɵɵpipe(4, "date");
|
|
274
|
+
i0.ɵɵtext(4);
|
|
242
275
|
i0.ɵɵpipe(5, "date");
|
|
276
|
+
i0.ɵɵpipe(6, "date");
|
|
243
277
|
i0.ɵɵelementEnd();
|
|
244
278
|
} if (rf & 2) {
|
|
245
279
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
246
|
-
i0.ɵɵadvance(
|
|
247
|
-
i0.ɵɵ
|
|
280
|
+
i0.ɵɵadvance(2);
|
|
281
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "induction.employment.start.and.end"));
|
|
282
|
+
i0.ɵɵadvance(2);
|
|
283
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(5, 5, employer_r9.startDateFed, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(6, 8, employer_r9.endDateFed, "M/d/yyyy"), " ");
|
|
248
284
|
} }
|
|
249
285
|
function EmployerGridComponent_p_table_27_ng_template_3_td_19_Template(rf, ctx) { if (rf & 1) {
|
|
250
286
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
251
|
-
i0.ɵɵtext(2
|
|
287
|
+
i0.ɵɵtext(2);
|
|
288
|
+
i0.ɵɵpipe(3, "translate");
|
|
252
289
|
i0.ɵɵelementEnd();
|
|
253
|
-
i0.ɵɵtext(
|
|
254
|
-
i0.ɵɵpipe(4, "date");
|
|
290
|
+
i0.ɵɵtext(4);
|
|
255
291
|
i0.ɵɵpipe(5, "date");
|
|
292
|
+
i0.ɵɵpipe(6, "date");
|
|
256
293
|
i0.ɵɵelementEnd();
|
|
257
294
|
} if (rf & 2) {
|
|
258
295
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
259
|
-
i0.ɵɵadvance(
|
|
260
|
-
i0.ɵɵ
|
|
296
|
+
i0.ɵɵadvance(2);
|
|
297
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "induction.employment.start.and.end"));
|
|
298
|
+
i0.ɵɵadvance(2);
|
|
299
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(5, 5, employer_r9.startDateMil, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(6, 8, employer_r9.endDateMil, "M/d/yyyy"), " ");
|
|
261
300
|
} }
|
|
262
301
|
function EmployerGridComponent_p_table_27_ng_template_3_td_20_Template(rf, ctx) { if (rf & 1) {
|
|
263
302
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
264
|
-
i0.ɵɵtext(2
|
|
303
|
+
i0.ɵɵtext(2);
|
|
304
|
+
i0.ɵɵpipe(3, "translate");
|
|
265
305
|
i0.ɵɵelementEnd()();
|
|
306
|
+
} if (rf & 2) {
|
|
307
|
+
i0.ɵɵadvance(2);
|
|
308
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "induction.employment.start.and.end"));
|
|
266
309
|
} }
|
|
267
310
|
function EmployerGridComponent_p_table_27_ng_template_3_td_21_Template(rf, ctx) { if (rf & 1) {
|
|
268
311
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
269
|
-
i0.ɵɵtext(2
|
|
312
|
+
i0.ɵɵtext(2);
|
|
313
|
+
i0.ɵɵpipe(3, "translate");
|
|
270
314
|
i0.ɵɵelementEnd();
|
|
271
|
-
i0.ɵɵtext(
|
|
315
|
+
i0.ɵɵtext(4);
|
|
272
316
|
i0.ɵɵelementEnd();
|
|
273
317
|
} if (rf & 2) {
|
|
274
318
|
const employer_r9 = i0.ɵɵnextContext().$implicit;
|
|
275
|
-
i0.ɵɵadvance(
|
|
319
|
+
i0.ɵɵadvance(2);
|
|
320
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "induction.employment.seperation.reason"));
|
|
321
|
+
i0.ɵɵadvance(2);
|
|
276
322
|
i0.ɵɵtextInterpolate1("", employer_r9.reasonSeparation.text, " ");
|
|
277
323
|
} }
|
|
278
324
|
function EmployerGridComponent_p_table_27_ng_template_3_td_22_Template(rf, ctx) { if (rf & 1) {
|
|
279
325
|
i0.ɵɵelementStart(0, "td")(1, "span", 22);
|
|
280
|
-
i0.ɵɵtext(2
|
|
326
|
+
i0.ɵɵtext(2);
|
|
327
|
+
i0.ɵɵpipe(3, "translate");
|
|
281
328
|
i0.ɵɵelementEnd()();
|
|
329
|
+
} if (rf & 2) {
|
|
330
|
+
i0.ɵɵadvance(2);
|
|
331
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "induction.employment.seperation.reason"));
|
|
282
332
|
} }
|
|
283
333
|
function EmployerGridComponent_p_table_27_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
284
334
|
i0.ɵɵelementStart(0, "tr", 12);
|
|
285
|
-
i0.ɵɵtemplate(1, EmployerGridComponent_p_table_27_ng_template_3_td_1_Template,
|
|
335
|
+
i0.ɵɵtemplate(1, EmployerGridComponent_p_table_27_ng_template_3_td_1_Template, 11, 8, "td", 13)(2, EmployerGridComponent_p_table_27_ng_template_3_td_2_Template, 5, 3, "td", 13)(3, EmployerGridComponent_p_table_27_ng_template_3_td_3_Template, 7, 4, "td", 14);
|
|
286
336
|
i0.ɵɵelementStart(4, "td", 15);
|
|
287
337
|
i0.ɵɵtemplate(5, EmployerGridComponent_p_table_27_ng_template_3_ion_button_5_Template, 2, 2, "ion-button", 16)(6, EmployerGridComponent_p_table_27_ng_template_3_ion_button_6_Template, 2, 2, "ion-button", 17)(7, EmployerGridComponent_p_table_27_ng_template_3_ion_button_7_Template, 2, 2, "ion-button", 18)(8, EmployerGridComponent_p_table_27_ng_template_3_ion_button_8_Template, 2, 2, "ion-button", 19)(9, EmployerGridComponent_p_table_27_ng_template_3_ion_button_9_Template, 2, 2, "ion-button", 19)(10, EmployerGridComponent_p_table_27_ng_template_3_ion_button_10_Template, 2, 2, "ion-button", 20);
|
|
288
338
|
i0.ɵɵelementEnd();
|
|
289
|
-
i0.ɵɵtemplate(11, EmployerGridComponent_p_table_27_ng_template_3_td_11_Template,
|
|
339
|
+
i0.ɵɵtemplate(11, EmployerGridComponent_p_table_27_ng_template_3_td_11_Template, 5, 4, "td", 14)(12, EmployerGridComponent_p_table_27_ng_template_3_td_12_Template, 4, 3, "td", 14)(13, EmployerGridComponent_p_table_27_ng_template_3_td_13_Template, 5, 4, "td", 14)(14, EmployerGridComponent_p_table_27_ng_template_3_td_14_Template, 5, 5, "td", 14)(15, EmployerGridComponent_p_table_27_ng_template_3_td_15_Template, 6, 7, "td", 14)(16, EmployerGridComponent_p_table_27_ng_template_3_td_16_Template, 4, 3, "td", 14)(17, EmployerGridComponent_p_table_27_ng_template_3_td_17_Template, 7, 11, "td", 14)(18, EmployerGridComponent_p_table_27_ng_template_3_td_18_Template, 7, 11, "td", 14)(19, EmployerGridComponent_p_table_27_ng_template_3_td_19_Template, 7, 11, "td", 14)(20, EmployerGridComponent_p_table_27_ng_template_3_td_20_Template, 4, 3, "td", 14)(21, EmployerGridComponent_p_table_27_ng_template_3_td_21_Template, 5, 4, "td", 14)(22, EmployerGridComponent_p_table_27_ng_template_3_td_22_Template, 4, 3, "td", 14);
|
|
290
340
|
i0.ɵɵelementEnd();
|
|
291
341
|
} if (rf & 2) {
|
|
292
342
|
const employer_r9 = ctx.$implicit;
|
|
@@ -483,35 +533,48 @@ function EmployerGridComponent_p_dialog_29_Template(rf, ctx) { if (rf & 1) {
|
|
|
483
533
|
i0.ɵɵadvance(5);
|
|
484
534
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(50, 38, "induction.employment.grid.popup.didnt.work.label"), " ");
|
|
485
535
|
} }
|
|
486
|
-
function
|
|
536
|
+
function EmployerGridComponent_p_dialog_30_div_7_small_7_Template(rf, ctx) { if (rf & 1) {
|
|
487
537
|
i0.ɵɵelementStart(0, "small", 46);
|
|
488
|
-
i0.ɵɵtext(1
|
|
538
|
+
i0.ɵɵtext(1);
|
|
539
|
+
i0.ɵɵpipe(2, "translate");
|
|
489
540
|
i0.ɵɵelementEnd();
|
|
541
|
+
} if (rf & 2) {
|
|
542
|
+
i0.ɵɵadvance(1);
|
|
543
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "induction.employment.grid.delete.bpemployer.popup.field.required"), " ");
|
|
490
544
|
} }
|
|
491
|
-
function
|
|
545
|
+
function EmployerGridComponent_p_dialog_30_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
492
546
|
i0.ɵɵelementStart(0, "div")(1, "label", 43);
|
|
493
|
-
i0.ɵɵtext(2
|
|
547
|
+
i0.ɵɵtext(2);
|
|
548
|
+
i0.ɵɵpipe(3, "translate");
|
|
494
549
|
i0.ɵɵelementEnd();
|
|
495
|
-
i0.ɵɵelement(
|
|
496
|
-
i0.ɵɵ
|
|
497
|
-
i0.ɵɵ
|
|
498
|
-
i0.ɵɵ
|
|
550
|
+
i0.ɵɵelement(4, "br")(5, "textarea", 44);
|
|
551
|
+
i0.ɵɵpipe(6, "translate");
|
|
552
|
+
i0.ɵɵtemplate(7, EmployerGridComponent_p_dialog_30_div_7_small_7_Template, 3, 3, "small", 45);
|
|
553
|
+
i0.ɵɵelementStart(8, "small");
|
|
554
|
+
i0.ɵɵtext(9);
|
|
555
|
+
i0.ɵɵpipe(10, "translate");
|
|
499
556
|
i0.ɵɵelementEnd()();
|
|
500
557
|
} if (rf & 2) {
|
|
501
558
|
const ctx_r71 = i0.ɵɵnextContext(2);
|
|
502
|
-
let
|
|
503
|
-
i0.ɵɵadvance(
|
|
504
|
-
i0.ɵɵ
|
|
559
|
+
let tmp_2_0;
|
|
560
|
+
i0.ɵɵadvance(2);
|
|
561
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "induction.employment.grid.delete.bpemployer.popup.reason.selecting"), " ");
|
|
562
|
+
i0.ɵɵadvance(3);
|
|
563
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(6, 6, "induction.employment.grid.delete.bpemployer.popup.explain.reason"));
|
|
564
|
+
i0.ɵɵadvance(2);
|
|
565
|
+
i0.ɵɵproperty("ngIf", ((tmp_2_0 = ctx_r71.form.get("otherComment")) == null ? null : tmp_2_0.invalid) && ((tmp_2_0 = ctx_r71.form.get("otherComment")) == null ? null : tmp_2_0.touched));
|
|
566
|
+
i0.ɵɵadvance(2);
|
|
567
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 8, "induction.employment.grid.delete.bpemployer.popup.maxlength.250"), " ");
|
|
505
568
|
} }
|
|
506
|
-
function
|
|
569
|
+
function EmployerGridComponent_p_dialog_30_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
507
570
|
const _r75 = i0.ɵɵgetCurrentView();
|
|
508
571
|
i0.ɵɵelementStart(0, "ion-button", 40);
|
|
509
|
-
i0.ɵɵlistener("click", function
|
|
572
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_30_ng_template_8_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r75); const ctx_r74 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r74.close()); });
|
|
510
573
|
i0.ɵɵtext(1);
|
|
511
574
|
i0.ɵɵpipe(2, "translate");
|
|
512
575
|
i0.ɵɵelementEnd();
|
|
513
576
|
i0.ɵɵelementStart(3, "ion-button", 47);
|
|
514
|
-
i0.ɵɵlistener("click", function
|
|
577
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_30_ng_template_8_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r75); const ctx_r76 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r76.removeBasePeriodEmployer()); });
|
|
515
578
|
i0.ɵɵtext(4);
|
|
516
579
|
i0.ɵɵpipe(5, "translate");
|
|
517
580
|
i0.ɵɵelementEnd();
|
|
@@ -533,18 +596,20 @@ function EmployerGridComponent_p_dialog_30_Template(rf, ctx) { if (rf & 1) {
|
|
|
533
596
|
i0.ɵɵelement(4, "br");
|
|
534
597
|
i0.ɵɵelementStart(5, "p-dropdown", 42);
|
|
535
598
|
i0.ɵɵlistener("ngModelChange", function EmployerGridComponent_p_dialog_30_Template_p_dropdown_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r78); const ctx_r77 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r77.selectedOption = $event); })("onChange", function EmployerGridComponent_p_dialog_30_Template_p_dropdown_onChange_5_listener($event) { i0.ɵɵrestoreView(_r78); const ctx_r79 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r79.onDropdownChange($event)); });
|
|
599
|
+
i0.ɵɵpipe(6, "translate");
|
|
536
600
|
i0.ɵɵelementEnd();
|
|
537
|
-
i0.ɵɵtemplate(
|
|
601
|
+
i0.ɵɵtemplate(7, EmployerGridComponent_p_dialog_30_div_7_Template, 11, 10, "div", 14)(8, EmployerGridComponent_p_dialog_30_ng_template_8_Template, 6, 7, "ng-template", 39);
|
|
538
602
|
i0.ɵɵelementEnd();
|
|
539
603
|
} if (rf & 2) {
|
|
540
604
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
541
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(
|
|
542
|
-
i0.ɵɵproperty("visible", ctx_r3.showbpEmpDelPopup)("modal", true)("breakpoints", i0.ɵɵpureFunction0(
|
|
605
|
+
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(18, _c5));
|
|
606
|
+
i0.ɵɵproperty("visible", ctx_r3.showbpEmpDelPopup)("modal", true)("breakpoints", i0.ɵɵpureFunction0(19, _c6))("baseZIndex", 5000)("draggable", false)("resizable", false);
|
|
543
607
|
i0.ɵɵadvance(2);
|
|
544
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3,
|
|
608
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 14, "induction.employment.grid.delete.bpemployer.popup.heading"));
|
|
545
609
|
i0.ɵɵadvance(3);
|
|
610
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(6, 16, "induction.employment.grid.delete.bpemployer.popup.heading.placeholder"));
|
|
546
611
|
i0.ɵɵproperty("options", ctx_r3.bpEmpDelOptions)("ngModel", ctx_r3.selectedOption)("autoDisplayFirst", false);
|
|
547
|
-
i0.ɵɵadvance(
|
|
612
|
+
i0.ɵɵadvance(2);
|
|
548
613
|
i0.ɵɵproperty("ngIf", ctx_r3.showCommentBox);
|
|
549
614
|
} }
|
|
550
615
|
export class EmployerGridComponent {
|
|
@@ -573,13 +638,13 @@ export class EmployerGridComponent {
|
|
|
573
638
|
this.dischargeReasonOptionsAll = [];
|
|
574
639
|
this.volQuitReasonOptionsAll = [];
|
|
575
640
|
this.employmentStatusOptionsAll = [];
|
|
576
|
-
this.payRateOptions =
|
|
577
|
-
this.countryOptions =
|
|
578
|
-
this.workCountryOptions =
|
|
579
|
-
this.statesOptions =
|
|
580
|
-
this.militaryServiceOptions =
|
|
641
|
+
this.payRateOptions = [];
|
|
642
|
+
this.countryOptions = [];
|
|
643
|
+
this.workCountryOptions = [];
|
|
644
|
+
this.statesOptions = [];
|
|
645
|
+
this.militaryServiceOptions = [];
|
|
581
646
|
this.showCommentBox = false;
|
|
582
|
-
this.bpEmpDelOptions =
|
|
647
|
+
this.bpEmpDelOptions = [];
|
|
583
648
|
this.onChange = (value) => {
|
|
584
649
|
};
|
|
585
650
|
this.onTouch = () => {
|
|
@@ -609,6 +674,22 @@ export class EmployerGridComponent {
|
|
|
609
674
|
ngOnInit() {
|
|
610
675
|
this.logger.debug('ng onit of employer grid');
|
|
611
676
|
this.loadMasterData();
|
|
677
|
+
if (localStorage.getItem("language") === "es") {
|
|
678
|
+
this.payRateOptions = ComboOption.PAY_PERIOD_ES;
|
|
679
|
+
this.countryOptions = ComboOption.COUNTRY_ES;
|
|
680
|
+
this.workCountryOptions = ComboOption.WORK_COUNTRY_ES;
|
|
681
|
+
this.statesOptions = ComboOption.US_STATES_ES;
|
|
682
|
+
this.militaryServiceOptions = ComboOption.MILITARY_SERVICE_ES;
|
|
683
|
+
this.bpEmpDelOptions = ComboOption.BP_EMP_DEL_OPTS_ES;
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
this.payRateOptions = ComboOption.PAY_PERIOD;
|
|
687
|
+
this.countryOptions = ComboOption.COUNTRY;
|
|
688
|
+
this.workCountryOptions = ComboOption.WORK_COUNTRY;
|
|
689
|
+
this.statesOptions = ComboOption.US_STATES;
|
|
690
|
+
this.militaryServiceOptions = ComboOption.MILITARY_SERVICE;
|
|
691
|
+
this.bpEmpDelOptions = ComboOption.BP_EMP_DEL_OPTS;
|
|
692
|
+
}
|
|
612
693
|
this.cols = [
|
|
613
694
|
{ field: 'employer', header: 'Employer' },
|
|
614
695
|
{ field: 'jobTitle', header: 'Job Title' },
|
|
@@ -943,7 +1024,7 @@ export class EmployerGridComponent {
|
|
|
943
1024
|
provide: NG_VALUE_ACCESSOR,
|
|
944
1025
|
useExisting: EmployerGridComponent,
|
|
945
1026
|
multi: true
|
|
946
|
-
}])], decls: 31, vars: 40, consts: [[2, "margin-left", "-5px", 3, "formGroup"], [1, "action-icon", "font-bold", 3, "icon"], [3, "innerHtml"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover", 4, "ngIf"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "noEditMode", "success", "basePeriodIndex", "modelCancel", 4, "ngIf"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", 4, "ngIf"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover"], ["dt", ""], ["pTemplate", "header", "role", "presentation"], ["pTemplate", "body"], ["pTemplate", "summary"], ["colspan", "2", "scope", "colgroup", 2, "width", "20%"], [1, "ui-selectable-row", 3, "ngClass"], ["style", "width: 20%;", 4, "ngIf"], [4, "ngIf"], [2, "text-align", "center"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Add employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Edit employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Confirm employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Remove employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Restore", 3, "click", 4, "ngIf"], [2, "width", "20%"], [1, "p-column-title"], [2, "font-size", "12px", 3, "innerHtml"], [1, "p-column-title", 2, "width", "20%"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Add employer", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Edit employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Confirm employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Remove employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Restore", 1, "action-button", 3, "click"], [2, "width", "40%"], [2, "width", "9.75%", "text-align", "right"], ["fill", "outline", "size", "small", "aria-label", "Add employer", 1, "action-button", 3, "id", "click"], ["colspan", "4"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "noEditMode", "success", "basePeriodIndex", "modelCancel"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], [1, "heading"], ["color", "danger"], ["pTemplate", "footer"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], ["formControlName", "selectedDropdown", "inputId", "bpEmpDelOptions", "appendTo", "body", "
|
|
1027
|
+
}])], decls: 31, vars: 40, consts: [[2, "margin-left", "-5px", 3, "formGroup"], [1, "action-icon", "font-bold", 3, "icon"], [3, "innerHtml"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover", 4, "ngIf"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "noEditMode", "success", "basePeriodIndex", "modelCancel", 4, "ngIf"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", 4, "ngIf"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover"], ["dt", ""], ["pTemplate", "header", "role", "presentation"], ["pTemplate", "body"], ["pTemplate", "summary"], ["colspan", "2", "scope", "colgroup", 2, "width", "20%"], [1, "ui-selectable-row", 3, "ngClass"], ["style", "width: 20%;", 4, "ngIf"], [4, "ngIf"], [2, "text-align", "center"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Add employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Edit employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Confirm employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Remove employer", 3, "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Restore", 3, "click", 4, "ngIf"], [2, "width", "20%"], [1, "p-column-title"], [2, "font-size", "12px", 3, "innerHtml"], [1, "p-column-title", 2, "width", "20%"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Add employer", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Edit employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Confirm employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Remove employer", 1, "action-button", 3, "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Restore", 1, "action-button", 3, "click"], [2, "width", "40%"], [2, "width", "9.75%", "text-align", "right"], ["fill", "outline", "size", "small", "aria-label", "Add employer", 1, "action-button", 3, "id", "click"], ["colspan", "4"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "noEditMode", "success", "basePeriodIndex", "modelCancel"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], [1, "heading"], ["color", "danger"], ["pTemplate", "footer"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], ["formControlName", "selectedDropdown", "inputId", "bpEmpDelOptions", "appendTo", "body", "optionLabel", "text", "optionValue", "value", "required", "", 3, "options", "ngModel", "autoDisplayFirst", "placeholder", "ngModelChange", "onChange"], ["for", "comment"], ["formControlName", "otherComment", "rows", "5", "cols", "30", "maxlength", "250", 3, "placeholder"], ["class", "p-error", 4, "ngIf"], [1, "p-error"], ["shape", "round", "type", "submit", "fill", "solid", 3, "disabled", "click"]], template: function EmployerGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
947
1028
|
i0.ɵɵelementStart(0, "div", 0)(1, "ion-row")(2, "ion-col");
|
|
948
1029
|
i0.ɵɵelement(3, "fa-icon", 1)(4, "span", 2);
|
|
949
1030
|
i0.ɵɵpipe(5, "trustHtml");
|
|
@@ -965,7 +1046,7 @@ export class EmployerGridComponent {
|
|
|
965
1046
|
i0.ɵɵpipe(25, "trustHtml");
|
|
966
1047
|
i0.ɵɵpipe(26, "translate");
|
|
967
1048
|
i0.ɵɵelementEnd()();
|
|
968
|
-
i0.ɵɵtemplate(27, EmployerGridComponent_p_table_27_Template, 5, 4, "p-table", 3)(28, EmployerGridComponent_app_add_employer_28_Template, 1, 5, "app-add-employer", 4)(29, EmployerGridComponent_p_dialog_29_Template, 52, 42, "p-dialog", 5)(30, EmployerGridComponent_p_dialog_30_Template,
|
|
1049
|
+
i0.ɵɵtemplate(27, EmployerGridComponent_p_table_27_Template, 5, 4, "p-table", 3)(28, EmployerGridComponent_app_add_employer_28_Template, 1, 5, "app-add-employer", 4)(29, EmployerGridComponent_p_dialog_29_Template, 52, 42, "p-dialog", 5)(30, EmployerGridComponent_p_dialog_30_Template, 9, 20, "p-dialog", 5);
|
|
969
1050
|
i0.ɵɵelementEnd();
|
|
970
1051
|
} if (rf & 2) {
|
|
971
1052
|
i0.ɵɵproperty("formGroup", ctx.form);
|
|
@@ -1005,7 +1086,7 @@ export class EmployerGridComponent {
|
|
|
1005
1086
|
provide: NG_VALUE_ACCESSOR,
|
|
1006
1087
|
useExisting: EmployerGridComponent,
|
|
1007
1088
|
multi: true
|
|
1008
|
-
}], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\">\r\n<ion-row>\r\n <ion-col>\r\n <fa-icon [icon]=\"['fal', 'check-circle']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.confirm' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.delete' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.add' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.edit' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.restore' | translate | trustHtml\"></span>\r\n </ion-col>\r\n</ion-row>\r\n\r\n<p-table #dt [columns]=\"cols\" [value]=\"claimAppEmpResponseModelFromService.bpEmpList\" [loading]=\"showProgressBar\"\r\n [rowHover]=\"true\" *ngIf=\"claimAppEmpResponseModelFromService\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\">\r\n <ng-template pTemplate=\"header\" let-columns role=\"presentation\">\r\n <tr>\r\n <th colspan=\"2\" scope=\"colgroup\" style=\"width: 20%;\">\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.job.title\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.pay\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.dates\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.sep.reason\"|translate}}\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"body\" let-employer let-rowIndex=\"rowIndex\">\r\n <tr class=\"ui-selectable-row\" [ngClass]=\"employer.empDeleted=='Y' ? 'strikethrough' : null\">\r\n\r\n <td *ngIf=\"(employer.employerData.tradeName || employer.employerData.displayName) && employer.employerType!='MIL'\" style=\"width: 20%;\"><span class=\"p-column-title\">Employer</span><span>\r\n {{employer.employerData.displayName}}<br>\r\n {{employer.employerData.tradeName}}<br>\r\n </span><div style=\"font-size: 12px;\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td>\r\n \r\n <td *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" style=\"width: 20%;\"><span class=\"p-column-title\">Employer</span><span>\r\n </span>\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\" style=\"width: 20%;\">Employer</span><span>\r\n {{employer.serviceBranch.text}} <br>\r\n </span>\r\n </td>\r\n <td style=\"text-align: center;\"> \r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.payRate && employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editBasePeriodEmployer(employer);\" class=\"action-button\" aria-label=\"Add employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editEmployer(employer);\" class=\"action-button\" aria-label=\"Edit employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && !employer.payRate && !employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"finish(employer);\" class=\"action-button\" aria-label=\"Confirm employer\">\r\n <fa-icon [icon]=\"['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"removeEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted=='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"restoreEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Restore\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td *ngIf=\"employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.jobTileOrPosition}}</td>\r\n <td *ngIf=\"!employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span></td>\r\n <td *ngIf=\"!employer.jobTileOrPosition && employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.fedJobTileOrPosition}}</td>\r\n <td *ngIf=\"employer.jobTileOrPosition && employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.jobTileOrPosition}}{{employer.fedJobTileOrPosition}}</td>\r\n \r\n <td *ngIf=\"employer.payRate\"><span class=\"p-column-title\">Pay</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"!employer.payRate\"><span class=\"p-column-title\">Pay</span></td>\r\n \r\n <td *ngIf=\"employer.employerType==='REG'\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDate | date:'M/d/yyyy'}} - {{employer.endDate | date:'M/d/yyyy'}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='FED'\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateFed | date:'M/d/yyyy'}} - {{employer.endDateFed | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateMil | date:'M/d/yyyy'}} - {{employer.endDateMil | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"!employer.startDate && !employer.startDateFed && !employer.startDateMil\"><span class=\"p-column-title\">Start and End</span></td>\r\n\r\n <td *ngIf=\"employer.employerType!='MIL' && employer.reasonSeparation\"><span class=\"p-column-title\">Separation Reason</span>{{employer.reasonSeparation.text}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='MIL' && !employer.reasonSeparation\"><span class=\"p-column-title\">Separation Reason</span>\r\n </td>\r\n \r\n \r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"summary\" let-columns>\r\n <table>\r\n <tr>\r\n <td [attr.colspan]=\"2\" style=\"width: 40%;\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td style=\"width: 9.75%; text-align: right;\">\r\n <ion-button fill=\"outline\" size=\"small\" class=\"action-button\" (click)=\"addNewEmpDetails()\" class=\"action-button\" aria-label=\"Add employer\" [id]=\"'btnAddEmployer'\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td colspan=\"4\"> </td>\r\n </tr>\r\n </table>\r\n </ng-template>\r\n\r\n</p-table>\r\n <app-add-employer *ngIf=\"display\" (success)=\"addEmployer($event)\" [recordIndexToEdit]=\"indexToEdit\" \r\n (basePeriodIndex)=\"deleteBpEmpl($event)\" [isBasePeriodEmployer]=\"isBasePeriodEmployer\" [isNewClaim]=\"isNewClaim\" \r\n (modelCancel)=\"onModelCancel($event)\" [dob]=\"claimantDob\" [noEditMode]=\"noEditMode\">\r\n </app-add-employer>\r\n\r\n <p-dialog [visible]=\"showConfirmPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.popup.heading' | translate}}</h4>\r\n <ion-label>{{selectedEmployer.employerData.displayName}}</ion-label><br/>\r\n <ion-label>{{selectedEmployer.employerData.tradeName}}</ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label color=\"danger\">\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text1.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text1.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text2.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text2.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text3.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text3.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.didnt.work.label' | translate}}\r\n </ion-label>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"displayBpEmpConfirmation()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n <p-dialog [visible]=\"showbpEmpDelPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.delete.bpemployer.popup.heading' | translate}}</h4><br/>\r\n <p-dropdown formControlName=\"selectedDropdown\" inputId=\"bpEmpDelOptions\" [options]=\"bpEmpDelOptions\" [(ngModel)]=\"selectedOption\" [autoDisplayFirst]=\"false\" (onChange)=\"onDropdownChange($event)\" appendTo=\"body\"\r\n placeholder=\"Select an option\" optionLabel=\"text\" optionValue=\"value\" required> \r\n </p-dropdown>\r\n <div *ngIf=\"showCommentBox\">\r\n <label for=\"comment\">Reason for selecting Other:</label><br/>\r\n <textarea formControlName=\"otherComment\" rows=\"5\" cols=\"30\" maxlength=\"250\" placeholder=\"Explain your reason\"></textarea>\r\n <small *ngIf=\"this.form.get('otherComment')?.invalid && this.form.get('otherComment')?.touched\" class=\"p-error\">\r\n This field is required.\r\n </small>\r\n <small>Max length of 250 characters.</small>\r\n\r\n </div>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" [disabled]=\"this.form.invalid\" fill=\"solid\" (click)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [":host ::ng-deep .p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{display:none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{color:var(--ion-color-primary);text-align:left;font-weight:700;padding:8px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{font-size:16px;padding:3px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:none}@media screen and (max-width: 50rem){ion-col{text-align:left!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{text-align:left!important;display:block;width:100%;float:left;clear:left;border:0 none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td:last-child{border-bottom:1px solid var(--surface-d)}}.strikethrough{text-decoration:line-through}\n"] }]
|
|
1089
|
+
}], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\">\r\n<ion-row>\r\n <ion-col>\r\n <fa-icon [icon]=\"['fal', 'check-circle']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.confirm' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.delete' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.add' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.edit' | translate | trustHtml\"></span>, \r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.restore' | translate | trustHtml\"></span>\r\n </ion-col>\r\n</ion-row>\r\n\r\n<p-table #dt [columns]=\"cols\" [value]=\"claimAppEmpResponseModelFromService.bpEmpList\" [loading]=\"showProgressBar\"\r\n [rowHover]=\"true\" *ngIf=\"claimAppEmpResponseModelFromService\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\">\r\n <ng-template pTemplate=\"header\" let-columns role=\"presentation\">\r\n <tr>\r\n <th colspan=\"2\" scope=\"colgroup\" style=\"width: 20%;\">\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.job.title\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.pay\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.dates\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.sep.reason\"|translate}}\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"body\" let-employer let-rowIndex=\"rowIndex\">\r\n <tr class=\"ui-selectable-row\" [ngClass]=\"employer.empDeleted=='Y' ? 'strikethrough' : null\">\r\n\r\n <td *ngIf=\"(employer.employerData.tradeName || employer.employerData.displayName) && employer.employerType!='MIL'\" style=\"width: 20%;\"><span class=\"p-column-title\">{{\"induction.employment.employer.text\"|translate}}</span><span>\r\n {{employer.employerData.displayName}}<br>\r\n {{employer.employerData.tradeName}}<br>\r\n </span><div style=\"font-size: 12px;\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td>\r\n \r\n <td *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" style=\"width: 20%;\"><span class=\"p-column-title\">{{\"induction.employment.employer.text\"|translate}}</span><span>\r\n </span>\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\" style=\"width: 20%;\">{{\"induction.employment.employer.text\"|translate}}</span><span>\r\n {{employer.serviceBranch.text}} <br>\r\n </span>\r\n </td>\r\n <td style=\"text-align: center;\"> \r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.payRate && employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editBasePeriodEmployer(employer);\" class=\"action-button\" aria-label=\"Add employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editEmployer(employer);\" class=\"action-button\" aria-label=\"Edit employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && !employer.payRate && !employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"finish(employer);\" class=\"action-button\" aria-label=\"Confirm employer\">\r\n <fa-icon [icon]=\"['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"removeEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted=='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"restoreEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Restore\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td *ngIf=\"employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">{{\"induction.employment.job.title\"|translate}}</span>{{employer.jobTileOrPosition}}</td>\r\n <td *ngIf=\"!employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">{{\"induction.employment.job.title\"|translate}}</span></td>\r\n <td *ngIf=\"!employer.jobTileOrPosition && employer.fedJobTileOrPosition\"><span class=\"p-column-title\">{{\"induction.employment.job.title\"|translate}}</span>{{employer.fedJobTileOrPosition}}</td>\r\n <td *ngIf=\"employer.jobTileOrPosition && employer.fedJobTileOrPosition\"><span class=\"p-column-title\">{{\"induction.employment.job.title\"|translate}}</span>{{employer.jobTileOrPosition}}{{employer.fedJobTileOrPosition}}</td>\r\n \r\n <td *ngIf=\"employer.payRate\"><span class=\"p-column-title\">{{\"induction.employment.pay\"|translate}}</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"!employer.payRate\"><span class=\"p-column-title\">{{\"induction.employment.pay\"|translate}}</span></td>\r\n \r\n <td *ngIf=\"employer.employerType==='REG'\"><span class=\"p-column-title\">{{\"induction.employment.start.and.end\"|translate}}</span>\r\n {{employer.startDate | date:'M/d/yyyy'}} - {{employer.endDate | date:'M/d/yyyy'}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='FED'\"><span class=\"p-column-title\">{{\"induction.employment.start.and.end\"|translate}}</span>\r\n {{employer.startDateFed | date:'M/d/yyyy'}} - {{employer.endDateFed | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\">{{\"induction.employment.start.and.end\"|translate}}</span>\r\n {{employer.startDateMil | date:'M/d/yyyy'}} - {{employer.endDateMil | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"!employer.startDate && !employer.startDateFed && !employer.startDateMil\"><span class=\"p-column-title\">{{\"induction.employment.start.and.end\"|translate}}</span></td>\r\n\r\n <td *ngIf=\"employer.employerType!='MIL' && employer.reasonSeparation\"><span class=\"p-column-title\">{{\"induction.employment.seperation.reason\"|translate}}</span>{{employer.reasonSeparation.text}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='MIL' && !employer.reasonSeparation\"><span class=\"p-column-title\">{{\"induction.employment.seperation.reason\"|translate}}</span>\r\n </td>\r\n \r\n \r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"summary\" let-columns>\r\n <table>\r\n <tr>\r\n <td [attr.colspan]=\"2\" style=\"width: 40%;\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td style=\"width: 9.75%; text-align: right;\">\r\n <ion-button fill=\"outline\" size=\"small\" class=\"action-button\" (click)=\"addNewEmpDetails()\" class=\"action-button\" aria-label=\"Add employer\" [id]=\"'btnAddEmployer'\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td colspan=\"4\"> </td>\r\n </tr>\r\n </table>\r\n </ng-template>\r\n\r\n</p-table>\r\n <app-add-employer *ngIf=\"display\" (success)=\"addEmployer($event)\" [recordIndexToEdit]=\"indexToEdit\" \r\n (basePeriodIndex)=\"deleteBpEmpl($event)\" [isBasePeriodEmployer]=\"isBasePeriodEmployer\" [isNewClaim]=\"isNewClaim\" \r\n (modelCancel)=\"onModelCancel($event)\" [dob]=\"claimantDob\" [noEditMode]=\"noEditMode\">\r\n </app-add-employer>\r\n\r\n <p-dialog [visible]=\"showConfirmPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.popup.heading' | translate}}</h4>\r\n <ion-label>{{selectedEmployer.employerData.displayName}}</ion-label><br/>\r\n <ion-label>{{selectedEmployer.employerData.tradeName}}</ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label color=\"danger\">\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text1.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text1.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text2.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text2.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <b>{{'induction.employment.grid.popup.text3.q.label' | translate}}</b>\r\n </ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.text3.a.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.didnt.work.label' | translate}}\r\n </ion-label>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"displayBpEmpConfirmation()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n <p-dialog [visible]=\"showbpEmpDelPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.delete.bpemployer.popup.heading' | translate}}</h4><br/>\r\n <p-dropdown formControlName=\"selectedDropdown\" inputId=\"bpEmpDelOptions\" [options]=\"bpEmpDelOptions\" [(ngModel)]=\"selectedOption\" [autoDisplayFirst]=\"false\" (onChange)=\"onDropdownChange($event)\" appendTo=\"body\"\r\n placeholder='{{\"induction.employment.grid.delete.bpemployer.popup.heading.placeholder\" | translate}}' optionLabel=\"text\" optionValue=\"value\" required> \r\n </p-dropdown>\r\n <div *ngIf=\"showCommentBox\">\r\n <label for=\"comment\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.reason.selecting' | translate}}\r\n </label><br/>\r\n <textarea formControlName=\"otherComment\" rows=\"5\" cols=\"30\" maxlength=\"250\" placeholder='{{\"induction.employment.grid.delete.bpemployer.popup.explain.reason\" | translate}}'></textarea>\r\n <small *ngIf=\"this.form.get('otherComment')?.invalid && this.form.get('otherComment')?.touched\" class=\"p-error\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.field.required' | translate}}\r\n </small>\r\n <small>\r\n {{'induction.employment.grid.delete.bpemployer.popup.maxlength.250' | translate}}\r\n </small>\r\n\r\n </div>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" [disabled]=\"this.form.invalid\" fill=\"solid\" (click)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.delete.bpemployer.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [":host ::ng-deep .p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{display:none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{color:var(--ion-color-primary);text-align:left;font-weight:700;padding:8px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{font-size:16px;padding:3px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:none}@media screen and (max-width: 50rem){ion-col{text-align:left!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{text-align:left!important;display:block;width:100%;float:left;clear:left;border:0 none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td:last-child{border-bottom:1px solid var(--surface-d)}}.strikethrough{text-decoration:line-through}\n"] }]
|
|
1009
1090
|
}], () => [{ type: i1.PopoverController }, { type: i2.LoggerService }, { type: i3.ValidationService }, { type: i1.NavController }, { type: i4.UtilService }, { type: i5.LoginService }, { type: i6.ActivatedRoute }, { type: i7.ClaimService }, { type: i8.Storage }], { form: [{
|
|
1010
1091
|
type: Input
|
|
1011
1092
|
}], dynamicParam: [{
|
|
@@ -1018,4 +1099,4 @@ export class EmployerGridComponent {
|
|
|
1018
1099
|
type: Output
|
|
1019
1100
|
}] }); })();
|
|
1020
1101
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmployerGridComponent, { className: "EmployerGridComponent", filePath: "lib\\components\\employer-grid\\employer-grid.component.ts", lineNumber: 32 }); })();
|
|
1021
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVLLE9BQU8sRUFBMEMsaUJBQWlCLEVBQWUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNHdkQsMEJBQUksYUFBQTtJQUVBLFlBQ0Y7O0lBQUEsaUJBQUs7SUFDTCwwQkFBSTtJQUNGLFlBQ0Q7O0lBQUEsaUJBQUs7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QzFCLFdBQVcsdUJBQXVCO3dCQUNsQyxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDLG1CQUNlLHVCQUF1QixDQUFDLE9BQU87NlFBc0J2QyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBSUksWUFBWTtrQkFBckIsTUFBTTtZQUNHLFVBQVU7a0JBQW5CLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNOztrRkExQkkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBBZnRlclJlbmRlclBoYXNlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ01vZHVsZSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVtcGxveWVyV2FnZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyV2FnZXNNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBGYkNvbnN0YW50cyB9IGZyb20gJy4uL3F1ZXN0aW9ubmFpcmUvRmJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lbXBsb3llci1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IEVtcGxveWVyR3JpZENvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRW1wbG95ZXJHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwb3B1cDogUG9wb3ZlckNvbnRyb2xsZXIsIHB1YmxpYyBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZSA6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZSA6IFN0b3JhZ2UpIHtcclxuICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwLXRhYmxlIHRhYmxlJykuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3ByZXNlbnRhdGlvbicpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncC1zZWxlY3RidXR0b24gZGl2IGRpdicpLmZvckVhY2goZWwgPT4ge1xyXG4gICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknKTtcclxuICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyk7IFxyXG4gICAgICB9KTtcclxuICAgICAgfSwge3BoYXNlOiBBZnRlclJlbmRlclBoYXNlLldyaXRlfSk7XHJcbiAgfVxyXG5cclxuICBjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZTogIENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcclxuICBjb2xzOiBhbnlbXTtcclxuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbSA6IGFueTtcclxuICBkaXNwbGF5OiBib29sZWFuO1xyXG4gIG5vRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgYmFzZVBlcmlvZGRpc3BsYXk6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG1vZGVsRGlzcGxheSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZWxEYXRhUGFzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICBjYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcclxuICBzZWxlY3RlZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xyXG4gIHNlbGVjdGVkQmFzZVBlcmlvZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xyXG4gIHB1YmxpYyBpbmRleFRvRWRpdDtcclxuICBwdWJsaWMgaXNCYXNlUGVyaW9kRW1wbG95ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Q29uZmlybVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93YnBFbXBEZWxQb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzc25Gb3JDU1IgOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gIHV1aWQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHBheVJhdGVPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRDtcclxuICBwdWJsaWMgY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgcHVibGljIHN0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xyXG4gIHB1YmxpYyBjbGFpbWFudERvYiA6IERhdGU7XHJcbiAgcHVibGljIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dDb21tZW50Qm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGJwRW1wRGVsT3B0aW9ucyA9IENvbWJvT3B0aW9uLkJQX0VNUF9ERUxfT1BUUztcclxuXHJcbiAgbG9hZE1hc3RlckRhdGEoKXtcclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgdGhpcy5jb2xzID0gW1xyXG4gICAgICB7IGZpZWxkOiAnZW1wbG95ZXInLCBoZWFkZXI6ICdFbXBsb3llcicgfSxcclxuICAgICAgeyBmaWVsZDogJ2pvYlRpdGxlJywgaGVhZGVyOiAnSm9iIFRpdGxlJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnUGF5JywgaGVhZGVyOiAnUGF5JyB9LFxyXG4gICAgICB7IGZpZWxkOiAnc3RhcnRFbmREYXRlJywgaGVhZGVyOiAnU3RhcnQgYW5kIEVuZCcgfSxcclxuICAgICAgeyBmaWVsZDogJ3NlcGFyYXRpb25SZWFzb24nLCBoZWFkZXI6ICdTZXBhcmF0aW9uIFJlYXNvbicgfSxcclxuICAgICAgeyBmaWVsZDogJycsIGhlYWRlcjogJycgfVxyXG4gICAgXTtcclxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICBzZWxlY3RlZERyb3Bkb3duOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIG90aGVyQ29tbWVudDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkICl9KTtcclxuXHJcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2Uuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UgPSByZXMudmFsdWVPZigpO1xyXG4gICAgICAgICAgICBpZih0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlICYmIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uKXtcclxuICAgICAgICAgICAgICB0aGlzLmlzTmV3Q2xhaW0gPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmlzTmV3Q2xhaW1BcHBsaWNhdGlvbi52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jbGFpbWFudERvYiA9IG5ldyBEYXRlKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuZGF0ZU9mQmlydGgucmVwbGFjZShcIi1cIixcIi9cIikucmVwbGFjZShcIi1cIixcIi9cIikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuc2hvd0NvbW1lbnRCb3ggPSB0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnT3RoZXInOyAvLyBDaGVjayBpZiAnb3RoZXInIGlzIHNlbGVjdGVkXHJcbiAgICBpZiAodGhpcy5zaG93Q29tbWVudEJveCkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGROZXdFbXBEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXI9ZmFsc2U7XHJcbiAgICB0aGlzLm5vRWRpdE1vZGU9ZmFsc2U7XHJcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZih2YWx1ZSl7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodmFsdWUpO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnNldHVwRW1wbG95ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoZm4pO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm5cclxuICB9XHJcblxyXG4gIGFzeW5jIGdldElkZW50aWZpZXIoKXtcclxuICAgIGxldCB1dWlkO1xyXG4gICAgbGV0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdpZGVudGlmaWVyJyk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImRhdGEgZm9yIGlkZW50aWZpZXIgaXMgOiBcIiwgZGF0YSlcclxuICAgICAgaWYoZGF0YSl7ICAgICAgICAgIFxyXG4gICAgICAgIHV1aWQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHV1aWQgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KEZiQ29uc3RhbnRzLnV1aWQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1dWlkO1xyXG4gIH1cclxuICBhc3luYyBzZXR1cEVtcGxveWVyKCkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsKCk7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpIHtcclxuICAgICAgdGhpcy51dWlkID0gYXdhaXQgdGhpcy5nZXRJZGVudGlmaWVyKCk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1dWlkIGlzID09PT0nLCB0aGlzLnV1aWQpO1xyXG4gICAgICBsZXQgdXJsID0gXCJcIjtcclxuICAgICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkgPT09IHRydWUpe1xyXG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2NsYWltYW50L2FwcC9icGVtcGxveWVyc1wiO1xyXG4gICAgICAgIGxldCBwcm9jZXNzdHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Byb2Nlc3N0eXBlJyk7XHJcbiAgICAgICAgaWYocHJvY2Vzc3R5cGUgPT09ICdhaWMtcmVvcGVuJyl7XHJcbiAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKEZiQ29uc3RhbnRzLnV1aWQpO1xyXG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xyXG4gICAgICAgIH0gIGVsc2UgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmbG93S2V5XCIpID09ICc2MDAnKSB7XHJcbiAgICAgICAgICBtb2RlbC5mbG93RnJvbSA9IFwiQWljLVJlb3Blbi1mbG93XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgna2V5Jyk7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICB0aGlzLnNzbkZvckNTUiA9IEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XHJcbiAgICAgICAgICBtb2RlbC5zc24gPSB0aGlzLnNzbkZvckNTUjtcclxuICAgICAgICB9ICAgXHJcbiAgICAgICAgdXJsID0gXCIvY2xhaW1zLXNlcnZpY2UvY2xhaW0vYXBwL2JwZW1wbG95ZXJzXCI7XHJcbiAgICAgIH1cclxuICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ3RoZSB1dWlkIHVzZWQgaW4gbW9kZWwgaXMgOiAnLCB0aGlzLnV1aWQpO1xyXG4gICAgICBpZihtb2RlbC5mbG93RnJvbSA9PT0gJ0FpYy1SZW9wZW4tZmxvdycpe1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJbnNpZGUgYWljIHJlb3BlbiBmbG93XCIpO1xyXG4gICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcclxuICAgICAgfSBlbHNlIGlmKHRoaXMudXVpZCl7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSW5zaWRlIGdldHRpbmcgdmFsdWVzIGJhc2VkIG9uIHV1aWRcIik7XHJcbiAgICAgICAgICBtb2RlbC51dWlkID0gdGhpcy51dWlkO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsLCB1cmwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJLZWVwIHdhaXRpbmcuLi4udXVpZCBub3QgZm91bmQuLlwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBmZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsOiBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCwgdXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UucG9zdDxDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWw+KHVybCwgbW9kZWwpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICBpZihyZXMuYnBFbXBMaXN0Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgcmVzLmJwRW1wTGlzdC5mb3JFYWNoKGVtcCA9PiB0aGlzLnNldENob2lzZU1vZGVscyhlbXApKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHJlcyk7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIgTGlzdCBmcm9tIFNlcnZpY2UnLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIGxldCBsaXN0ID0gbmV3IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQobGlzdCk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgXHJcbiAgZGVsZXRlQnBFbXBsKGV2ZW50Om51bWJlcil7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgJywgZXZlbnQpO1xyXG4gICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3Quc3BsaWNlKGV2ZW50LCAxKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUVtcGxveWVyKGVsZW1lbnRJbmRleCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyPWZhbHNlO1xyXG4gICAgLy90aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmVtcERlbGV0ZWQgPSBcIllcIjtcclxuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShlbGVtZW50SW5kZXgsIDEpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFbXBsb3llckJhc2VQZXJpb2QoZWxlbWVudEluZGV4KSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgZWxlbWVudEluZGV4KTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0ud29ya0ZsYWcgPSBcIk5cIjtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xyXG4gICAgY29uc3QgYnBEZWxSZWFzb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9uICsgXCIgXCIgKyAodGhpcy5zaG93Q29tbWVudEJveCA/IFwiLSBcIit0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8udmFsdWU6IFwiXCIpO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5icEVtcERlbFJlYXNvbiA9IGJwRGVsUmVhc29uO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBlZGl0RW1wbG95ZXIoZW1wbG95ZXIpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFZGl0IG1ldGhvZCBjYWxsZWQnLCBlbXBsb3llcik7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5kZXggVG8gRWRpdCA9ICcsIHRoaXMuaW5kZXhUb0VkaXQpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMubm9FZGl0TW9kZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmaW5pc2goZW1wbG95ZXIpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdGaW5pc2ggRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xyXG4gICAgZW1wbG95ZXIud29ya0ZsYWcgPSAnWSc7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZWRpdEJhc2VQZXJpb2RFbXBsb3llcihlbXBsb3llcikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgQmFzZVBlcmlvZCBFbXBsb3llciBjYWxsZWQgZm9yICcsIGVtcGxveWVyKTtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NhbmNlbCBNZXRob2QgICcsIGNhbmNlbCk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBjYW5jZWw7XHJcbiAgICB0aGlzLmJhc2VQZXJpb2RkaXNwbGF5ID0gY2FuY2VsO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYWZ0ZXIgdmFsdWUgY2hhbmdlIG9uIGVtcGxveWVyIGdyaWQgJywgdGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGFkZEVtcGxveWVyKGV2ZW50OiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWRkIEVtcGxveWVyIGNhbGxlZCBmcm9tIGdyaWQgJywgZXZlbnQsICdpbmRleFRvRWRpdCcsIHRoaXMuaW5kZXhUb0VkaXQsJ3RoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXInLHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpO1xyXG4gICAgZXZlbnQuZW1wRGVsZXRlZCA9ICdOJztcclxuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT0gMCkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIGlmIG9mIGFkZCBlbXBsb3llciAtLSAnLGV2ZW50KVxyXG4gICAgICBsZXQgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XHJcbiAgICAgIGxldCBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IG5ldyBFbXBsb3llcldhZ2VzTW9kZWwoKTtcclxuICAgICAgaWYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xyXG4gICAgICAgIGVtcERhdGFNb2RlbCA9ICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llckRhdGE7XHJcbiAgICAgICAgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llclByb3ZpZGVkV2FnZXM7XHJcbiAgICAgICAgZXZlbnQuYnBFbXBsb3llckZsYWcgPSAnMSdcclxuICAgICAgICBldmVudC5lbXBsb3llckRhdGEgPSBlbXBEYXRhTW9kZWw7XHJcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJQcm92aWRlZFdhZ2VzID0gZW1wUHJvdmlkZWRXYWdlTW9kZWw7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0dGluZyB0aGUgdmFsdWUgYWdhaW4gPSAgJyxldmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcclxuICAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcclxuICAgICAgICBpZihldmVudC5wcmV2V29ya2VkU3RhdGU9PT0nS1MnKXtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5vdGhTdGF0ZUVtcE5hbWU7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLnByZXZXb3JrZWRTdGF0ZSA9IGV2ZW50LnByZXZXb3JrZWRTdGF0ZTsgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnPGJyPi0nICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH0gZWxzZSBpZihldmVudC5lbXBsb3llclR5cGU9PT0nRkVEJyl7IFxyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnPGJyPi0nICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xyXG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUxPWV2ZW50LmFkZHJlc3M/LnN0cmVldEFkZHJlc3M7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xyXG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzAnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0gPSBldmVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgZWxzZSBvZiBhZGQgZW1wbG95ZXIgLS0gJyxldmVudClcclxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgbGV0IGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpXHJcbiAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xyXG4gICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcclxuICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xyXG4gICAgICAgIGlmKGV2ZW50LnByZXZXb3JrZWRTdGF0ZT09PSdLUycpe1xyXG4gICAgICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50Lm90aFN0YXRlRW1wTmFtZTtcclxuICAgICAgICAgIGVtcERhdGFNb2RlbC5wcmV2V29ya2VkU3RhdGUgPSBldmVudC5wcmV2V29ya2VkU3RhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJzxicj4nKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLTxicj4nICsoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpe1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10rICc8YnI+JyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctPGJyPicgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJbnNpZGUgZWxzZSAtIG5vIGFkZHJlc3MgZm9yIHRoaXMgZW1wbG95ZXIgdHlwZVwiKTtcclxuICAgICAgfVxyXG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xyXG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XHJcbiAgICAgIGlmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzEnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbC5icEVtcGxveWVyRmxhZyA9ICcwJztcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkFkZGluZyBlbXBsciBkYXRhIHRvIGNsYWltZGV0YWlsbW9kZTo6XCIsZW1wRGF0YU1vZGVsKTtcclxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcclxuICAgICAgY29uc29sZS5sb2coXCJBZGRpbmcgZW1wbHIgZGF0YSB0byBjbGFpbWRldGFpbG1vZGU6OlwiLGVtcERhdGFNb2RlbCk7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0LnB1c2godGhpcy5jbGFpbWRldGFpbE1vZGVsKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmcm9tIGJwbGlzdCBpbiBncmlkOjo6XCIsdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3QubGVuZ3RoKTtcclxuICAgICAgdGhpcy5tb2RlbERhdGFQYXNzLmVtaXQoZW1wRGF0YU1vZGVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZW1vdmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBpbmRleDtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbXBsb3llciA9IHNlbGVjdGVkRW1wbG95ZXI7XHJcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheUJwRW1wQ29uZmlybWF0aW9uKCl7XHJcbiAgICB0aGlzLnNob3dicEVtcERlbFBvcHVwID0gdHJ1ZTtcclxuICB9XHJcbiAgcmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKCl7XHJcbiAgICB0aGlzLmRlbGV0ZUVtcGxveWVyQmFzZVBlcmlvZCh0aGlzLmluZGV4VG9FZGl0KTtcclxuICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93YnBFbXBEZWxQb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVzdG9yZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgYmFzZSBwZXJpb2QgZW1wbG95ZXIgY2FsbGVkIGZvciA9ICcsIGluZGV4KTtcclxuICAgIGxldCBjdXJyZW50V29ya0ZsYWdWYWx1ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZztcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZyA9IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID8gKGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID09IFwiTlwiID8gXCJZXCIgOiBcIk5cIikgOiBudWxsO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLmVtcERlbGV0ZWQgPSBcIk5cIjtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcclxuICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93YnBFbXBEZWxQb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcclxuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gIH1cclxuICBzZXRDaG9pc2VNb2RlbHMoZW1wOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKTogdm9pZCB7XHJcbiAgICBsZXQgc2VwUmVhc29uIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlKTtcclxuICAgIGlmKHNlcFJlYXNvbi5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLnJlYXNvblNlcGFyYXRpb24gPSBzZXBSZWFzb25bMF07XHJcbiAgICB9XHJcbiAgICBsZXQgZGlzY2hhcmdlUmVhc29uIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuZGlzY2hhcmdlRGV0YWlsPy52YWx1ZSk7XHJcbiAgICBpZihkaXNjaGFyZ2VSZWFzb24ubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5kaXNjaGFyZ2VEZXRhaWwgPSBkaXNjaGFyZ2VSZWFzb25bMF07XHJcbiAgICB9XHJcbiAgICBsZXQgdm9sUXVpdCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC52b2xRdWl0RGV0YWlscz8udmFsdWUpO1xyXG4gICAgaWYodm9sUXVpdC5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLnZvbFF1aXREZXRhaWxzID0gdm9sUXVpdFswXTtcclxuICAgIH1cclxuICAgIGxldCBwYXlSYXRlRnJlcXVlbmN5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnBheVJhdGVGcmVxdWVuY3k/LnZhbHVlKTtcclxuICAgIGlmKHBheVJhdGVGcmVxdWVuY3kubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5wYXlSYXRlRnJlcXVlbmN5ID0gcGF5UmF0ZUZyZXF1ZW5jeVswXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY291bnRyeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy53b3JrQ291bnRyeU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuZmVkV29ya0NvdW50cnk/LnZhbHVlKTtcclxuICAgIGlmKGNvdW50cnkubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5mZWRXb3JrQ291bnRyeSA9IGNvdW50cnlbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN0YXRlIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnN0YXRlc09wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuZmVkV29ya1N0YXRlPy52YWx1ZSk7XHJcbiAgICBpZihzdGF0ZS5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLmZlZFdvcmtTdGF0ZSA9IHN0YXRlWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzZXJ2aWNlQnJhbmNoIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuc2VydmljZUJyYW5jaD8udmFsdWUpO1xyXG4gICAgaWYoc2VydmljZUJyYW5jaC5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLnNlcnZpY2VCcmFuY2ggPSBzZXJ2aWNlQnJhbmNoWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB3b3JrU3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC53b3JrU3RhdGU/LnZhbHVlPy50cmltKCkpO1xyXG4gICAgZW1wLndvcmtTdGF0ZSA9IHdvcmtTdGF0ZVswXTtcclxuXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG48aW9uLXJvdz5cclxuICA8aW9uLWNvbD5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2NoZWNrLWNpcmNsZSddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuY29uZmlybScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5kZWxldGUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmFkZCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZWRpdCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLnJlc3RvcmUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvaW9uLWNvbD5cclxuPC9pb24tcm93PlxyXG5cclxuPHAtdGFibGUgI2R0IFtjb2x1bW5zXT1cImNvbHNcIiBbdmFsdWVdPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0XCIgW2xvYWRpbmddPVwic2hvd1Byb2dyZXNzQmFyXCJcclxuIFtyb3dIb3Zlcl09XCJ0cnVlXCIgKm5nSWY9XCJjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZVwiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGUgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cclxuICAgIDx0cj5cclxuICAgICAgPHRoIGNvbHNwYW49XCIyXCIgc2NvcGU9XCJjb2xncm91cFwiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZW1wbG95ZXIubmFtZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLnBheVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5kYXRlc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5zZXAucmVhc29uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1lbXBsb3llciBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxyXG4gICAgPHRyIGNsYXNzPVwidWktc2VsZWN0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJlbXBsb3llci5lbXBEZWxldGVkPT0nWScgPyAnc3RyaWtldGhyb3VnaCcgOiBudWxsXCI+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCIoZW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZSB8fCBlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWUpICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCdcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX08YnI+XHJcbiAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lfX08YnI+XHJcbiAgICAgIDwvc3Bhbj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIFtpbm5lckh0bWxdPVwiZW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWUgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPkVtcGxveWVyPC9zcGFuPjxzcGFuPlxyXG4gICAgICAgICAge3tlbXBsb3llci5zZXJ2aWNlQnJhbmNoLnRleHR9fSA8YnI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+IFxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLnBheVJhdGUgJiYgZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEJhc2VQZXJpb2RFbXBsb3llcihlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkFkZCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMCdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRFbXBsb3llcihlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkVkaXQgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmICFlbXBsb3llci5wYXlSYXRlICYmICFlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJmaW5pc2goZW1wbG95ZXIpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDb25maXJtIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdjaGVjay1jaXJjbGUnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVFbXBsb3llcihyb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUVtcGxveW1lbnQoZW1wbG95ZXIsIHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQ9PSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVzdG9yZUVtcGxveW1lbnQoZW1wbG95ZXIsIHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVzdG9yZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbiAmJiAhZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+Sm9iIFRpdGxlPC9zcGFuPnt7ZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb259fTwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbiAmJiAhZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+Sm9iIFRpdGxlPC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbiAmJiBlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5Kb2IgVGl0bGU8L3NwYW4+e3tlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+Sm9iIFRpdGxlPC9zcGFuPnt7ZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb259fXt7ZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb259fTwvdGQ+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5wYXlSYXRlXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlBheTwvc3Bhbj57e2VtcGxveWVyLnBheVJhdGUgfCBjdXJyZW5jeX19L3t7ZW1wbG95ZXIucGF5UmF0ZUZyZXF1ZW5jeS50ZXh0fX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIucGF5UmF0ZVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5QYXk8L3NwYW4+PC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdSRUcnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlN0YXJ0IGFuZCBFbmQ8L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGUgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZSB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nRkVEJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlRmVkIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGVGZWQgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U3RhcnQgYW5kIEVuZDwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZU1pbCB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlTWlsIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5zdGFydERhdGUgJiYgICFlbXBsb3llci5zdGFydERhdGVGZWQgJiYgIWVtcGxveWVyLnN0YXJ0RGF0ZU1pbFwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPjwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnICYmIGVtcGxveWVyLnJlYXNvblNlcGFyYXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U2VwYXJhdGlvbiBSZWFzb248L3NwYW4+e3tlbXBsb3llci5yZWFzb25TZXBhcmF0aW9uLnRleHR9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J01JTCcgJiYgIWVtcGxveWVyLnJlYXNvblNlcGFyYXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U2VwYXJhdGlvbiBSZWFzb248L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICBcclxuICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCIgbGV0LWNvbHVtbnM+XHJcbiAgICA8dGFibGU+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCIyXCIgc3R5bGU9XCJ3aWR0aDogNDAlO1wiPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5mb290ZXIubGFiZWwnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogOS43NSU7IHRleHQtYWxpZ246IHJpZ2h0O1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwiYWRkTmV3RW1wRGV0YWlscygpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkFkZCBlbXBsb3llclwiIFtpZF09XCInYnRuQWRkRW1wbG95ZXInXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj4mbmJzcDs8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9wLXRhYmxlPlxyXG4gIDxhcHAtYWRkLWVtcGxveWVyICpuZ0lmPVwiZGlzcGxheVwiIChzdWNjZXNzKT1cImFkZEVtcGxveWVyKCRldmVudClcIiAgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCIgXHJcbiAgICAoYmFzZVBlcmlvZEluZGV4KT1cImRlbGV0ZUJwRW1wbCgkZXZlbnQpXCIgW2lzQmFzZVBlcmlvZEVtcGxveWVyXT1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgW2lzTmV3Q2xhaW1dPVwiaXNOZXdDbGFpbVwiIFxyXG4gICAgKG1vZGVsQ2FuY2VsKT1cIm9uTW9kZWxDYW5jZWwoJGV2ZW50KVwiIFtkb2JdPVwiY2xhaW1hbnREb2JcIiBbbm9FZGl0TW9kZV09XCJub0VkaXRNb2RlXCI+XHJcbiAgPC9hcHAtYWRkLWVtcGxveWVyPlxyXG5cclxuICA8cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd0NvbmZpcm1Qb3B1cFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgKm5nSWY9XCJzZWxlY3RlZEVtcGxveWVyXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgPGlvbi1sYWJlbD57e3NlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX08L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+e3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS50cmFkZU5hbWV9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxpb24tbGFiZWw+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPjwvZGl2PjwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiPlxyXG4gICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5mYWlsdXJlLmxhYmVsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICA8Yj57eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQxLnEubGFiZWwnIHwgdHJhbnNsYXRlfX08L2I+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0MS5hLmxhYmVsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICA8Yj57eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQyLnEubGFiZWwnIHwgdHJhbnNsYXRlfX08L2I+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0Mi5hLmxhYmVsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICA8Yj57eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQzLnEubGFiZWwnIHwgdHJhbnNsYXRlfX08L2I+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0My5hLmxhYmVsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+PGJyLz48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmRpZG50LndvcmsubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwiZGlzcGxheUJwRW1wQ29uZmlybWF0aW9uKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnJlbW92ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kaWFsb2c+XHJcbiAgICA8cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd2JwRW1wRGVsUG9wdXBcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNDV2dyd9XCJcclxuICAgIFtiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGFwcGVuZFRvPVwiYm9keVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiICpuZ0lmPVwic2VsZWN0ZWRFbXBsb3llclwiPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj57eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmhlYWRpbmcnIHwgdHJhbnNsYXRlfX08L2g0Pjxici8+XHJcbiAgICAgICAgPHAtZHJvcGRvd24gZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWREcm9wZG93blwiIGlucHV0SWQ9XCJicEVtcERlbE9wdGlvbnNcIiAgIFtvcHRpb25zXT1cImJwRW1wRGVsT3B0aW9uc1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIiAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiAob25DaGFuZ2UpPVwib25Ecm9wZG93bkNoYW5nZSgkZXZlbnQpXCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYW4gb3B0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIHJlcXVpcmVkPiBcclxuICAgICAgICA8L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0NvbW1lbnRCb3hcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb21tZW50XCI+UmVhc29uIGZvciBzZWxlY3RpbmcgT3RoZXI6PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgPHRleHRhcmVhIGZvcm1Db250cm9sTmFtZT1cIm90aGVyQ29tbWVudFwiIHJvd3M9XCI1XCIgY29scz1cIjMwXCIgbWF4bGVuZ3RoPVwiMjUwXCIgcGxhY2Vob2xkZXI9XCJFeHBsYWluIHlvdXIgcmVhc29uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgIDxzbWFsbCAqbmdJZj1cInRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy5pbnZhbGlkICYmIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy50b3VjaGVkXCIgY2xhc3M9XCJwLWVycm9yXCI+XHJcbiAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgPHNtYWxsPk1heCBsZW5ndGggb2YgMjUwIGNoYXJhY3RlcnMuPC9zbWFsbD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cInRoaXMuZm9ybS5pbnZhbGlkXCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInJlbW92ZUJhc2VQZXJpb2RFbXBsb3llcigpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5yZW1vdmUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtZGlhbG9nPlxyXG48L2Rpdj4iXX0=
|
|
1102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVLLE9BQU8sRUFBMEMsaUJBQWlCLEVBQWUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNHdkQsMEJBQUksYUFBQTtJQUVBLFlBQ0Y7O0lBQUEsaUJBQUs7SUFDTCwwQkFBSTtJQUNGLFlBQ0Q7O0lBQUEsaUJBQUs7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ZUFBeUM7WUFBekMsOERBQXlDO1lBd0h4QyxlQUFhO1lBQWIsa0NBQWE7WUFNcUUsZUFBc0I7WUFBdEIsMkNBQXNCO1lBdUN0QixlQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkR2SmhILHFCQUFxQjtjQVpqQyxTQUFTOzJCQUNFLG1CQUFtQixhQUdsQixDQUFDO3dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsdUJBQXVCO3dCQUNsQyxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDLG1CQUNlLHVCQUF1QixDQUFDLE9BQU87NlFBc0J2QyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBSUksWUFBWTtrQkFBckIsTUFBTTtZQUNHLFVBQVU7a0JBQW5CLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNOztrRkExQkkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBBZnRlclJlbmRlclBoYXNlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ01vZHVsZSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVtcGxveWVyV2FnZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyV2FnZXNNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBGYkNvbnN0YW50cyB9IGZyb20gJy4uL3F1ZXN0aW9ubmFpcmUvRmJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lbXBsb3llci1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IEVtcGxveWVyR3JpZENvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRW1wbG95ZXJHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwb3B1cDogUG9wb3ZlckNvbnRyb2xsZXIsIHB1YmxpYyBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZSA6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZSA6IFN0b3JhZ2UpIHtcclxuICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwLXRhYmxlIHRhYmxlJykuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3ByZXNlbnRhdGlvbicpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncC1zZWxlY3RidXR0b24gZGl2IGRpdicpLmZvckVhY2goZWwgPT4ge1xyXG4gICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknKTtcclxuICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyk7IFxyXG4gICAgICB9KTtcclxuICAgICAgfSwge3BoYXNlOiBBZnRlclJlbmRlclBoYXNlLldyaXRlfSk7XHJcbiAgfVxyXG5cclxuICBjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZTogIENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcclxuICBjb2xzOiBhbnlbXTtcclxuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbSA6IGFueTtcclxuICBkaXNwbGF5OiBib29sZWFuO1xyXG4gIG5vRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgYmFzZVBlcmlvZGRpc3BsYXk6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG1vZGVsRGlzcGxheSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZWxEYXRhUGFzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICBjYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcclxuICBzZWxlY3RlZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xyXG4gIHNlbGVjdGVkQmFzZVBlcmlvZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xyXG4gIHB1YmxpYyBpbmRleFRvRWRpdDtcclxuICBwdWJsaWMgaXNCYXNlUGVyaW9kRW1wbG95ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Q29uZmlybVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93YnBFbXBEZWxQb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzc25Gb3JDU1IgOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gIHV1aWQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHBheVJhdGVPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIGNvdW50cnlPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIHdvcmtDb3VudHJ5T3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBzdGF0ZXNPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgY2xhaW1hbnREb2IgOiBEYXRlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9wdGlvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93Q29tbWVudEJveDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBicEVtcERlbE9wdGlvbnMgOiBhbnkgPSBbXTtcclxuXHJcbiAgbG9hZE1hc3RlckRhdGEoKXtcclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLldPUktfQ09VTlRSWV9FUztcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX0VTO1xyXG4gICAgICB0aGlzLmJwRW1wRGVsT3B0aW9ucyA9IENvbWJvT3B0aW9uLkJQX0VNUF9ERUxfT1BUU19FUztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xyXG4gICAgICB0aGlzLmNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICAgICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcclxuICAgICAgdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zID0gQ29tYm9PcHRpb24uTUlMSVRBUllfU0VSVklDRTtcclxuICAgICAgdGhpcy5icEVtcERlbE9wdGlvbnMgPSBDb21ib09wdGlvbi5CUF9FTVBfREVMX09QVFM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHMgPSBbXHJcbiAgICAgIHsgZmllbGQ6ICdlbXBsb3llcicsIGhlYWRlcjogJ0VtcGxveWVyJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnam9iVGl0bGUnLCBoZWFkZXI6ICdKb2IgVGl0bGUnIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdQYXknLCBoZWFkZXI6ICdQYXknIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdzdGFydEVuZERhdGUnLCBoZWFkZXI6ICdTdGFydCBhbmQgRW5kJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnc2VwYXJhdGlvblJlYXNvbicsIGhlYWRlcjogJ1NlcGFyYXRpb24gUmVhc29uJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnJywgaGVhZGVyOiAnJyB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd246IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgb3RoZXJDb21tZW50OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQgKX0pO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSA9IHJlcy52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UgJiYgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24pe1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNOZXdDbGFpbSA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uLnZhbHVlT2YoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNsYWltYW50RG9iID0gbmV3IERhdGUodGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5kYXRlT2ZCaXJ0aC5yZXBsYWNlKFwiLVwiLFwiL1wiKS5yZXBsYWNlKFwiLVwiLFwiL1wiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5zaG93Q29tbWVudEJveCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdPdGhlcic7IC8vIENoZWNrIGlmICdvdGhlcicgaXMgc2VsZWN0ZWRcclxuICAgIGlmICh0aGlzLnNob3dDb21tZW50Qm94KSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGFkZE5ld0VtcERldGFpbHMoKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcclxuICAgIHRoaXMubm9FZGl0TW9kZT1mYWxzZTtcclxuICAgIHRoaXMubW9kZWxEaXNwbGF5LmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICh2YWx1ZTogU3RyaW5nKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHZhbHVlKXtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dCh2YWx1ZSk7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMuc2V0dXBFbXBsb3llcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLnN1YnNjcmliZShmbik7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0SWRlbnRpZmllcigpe1xyXG4gICAgbGV0IHV1aWQ7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2lkZW50aWZpZXInKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiZGF0YSBmb3IgaWRlbnRpZmllciBpcyA6IFwiLCBkYXRhKVxyXG4gICAgICBpZihkYXRhKXsgICAgICAgICAgXHJcbiAgICAgICAgdXVpZCA9IGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdXVpZCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoRmJDb25zdGFudHMudXVpZCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHV1aWQ7XHJcbiAgfVxyXG4gIGFzeW5jIHNldHVwRW1wbG95ZXIoKSB7XHJcbiAgICBsZXQgbW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwoKTtcclxuICAgIGlmICghdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSkge1xyXG4gICAgICB0aGlzLnV1aWQgPSBhd2FpdCB0aGlzLmdldElkZW50aWZpZXIoKTtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3V1aWQgaXMgPT09PScsIHRoaXMudXVpZCk7XHJcbiAgICAgIGxldCB1cmwgPSBcIlwiO1xyXG4gICAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdXJsID0gXCIvY2xhaW1zLXNlcnZpY2UvY2xhaW0vY2xhaW1hbnQvYXBwL2JwZW1wbG95ZXJzXCI7XHJcbiAgICAgICAgbGV0IHByb2Nlc3N0eXBlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncHJvY2Vzc3R5cGUnKTtcclxuICAgICAgICBpZihwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKXtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoRmJDb25zdGFudHMudXVpZCk7XHJcbiAgICAgICAgICBtb2RlbC5mbG93RnJvbSA9IFwiQWljLVJlb3Blbi1mbG93XCI7XHJcbiAgICAgICAgfSAgZWxzZSBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZsb3dLZXlcIikgPT0gJzYwMCcpIHtcclxuICAgICAgICAgIG1vZGVsLmZsb3dGcm9tID0gXCJBaWMtUmVvcGVuLWZsb3dcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdrZXknKTtcclxuICAgICAgICBpZihkYXRhKXtcclxuICAgICAgICAgIHRoaXMuc3NuRm9yQ1NSID0gSlNPTi5wYXJzZShhdG9iKGRhdGEpKTtcclxuICAgICAgICAgIG1vZGVsLnNzbiA9IHRoaXMuc3NuRm9yQ1NSO1xyXG4gICAgICAgIH0gICBcclxuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9hcHAvYnBlbXBsb3llcnNcIjtcclxuICAgICAgfVxyXG4gICAgICAgdGhpcy5sb2dnZXIuaW5mbygndGhlIHV1aWQgdXNlZCBpbiBtb2RlbCBpcyA6ICcsIHRoaXMudXVpZCk7XHJcbiAgICAgIGlmKG1vZGVsLmZsb3dGcm9tID09PSAnQWljLVJlb3Blbi1mbG93Jyl7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIkluc2lkZSBhaWMgcmVvcGVuIGZsb3dcIik7XHJcbiAgICAgICAgdGhpcy5mZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsLCB1cmwpO1xyXG4gICAgICB9IGVsc2UgaWYodGhpcy51dWlkKXtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJbnNpZGUgZ2V0dGluZyB2YWx1ZXMgYmFzZWQgb24gdXVpZFwiKTtcclxuICAgICAgICAgIG1vZGVsLnV1aWQgPSB0aGlzLnV1aWQ7XHJcbiAgICAgICAgICB0aGlzLmZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWwsIHVybCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIktlZXAgd2FpdGluZy4uLi51dWlkIG5vdCBmb3VuZC4uXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWw6IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsLCB1cmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSB0cnVlO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5wb3N0PENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbD4odXJsLCBtb2RlbCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIGlmKHJlcy5icEVtcExpc3QubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICByZXMuYnBFbXBMaXN0LmZvckVhY2goZW1wID0+IHRoaXMuc2V0Q2hvaXNlTW9kZWxzKGVtcCkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQocmVzKTtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbXBsb3llciBMaXN0IGZyb20gU2VydmljZScsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgbGV0IGxpc3QgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChsaXN0KTtcclxuICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuICBkZWxldGVCcEVtcGwoZXZlbnQ6bnVtYmVyKXtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGNhbGxlZCAnLCBldmVudCk7XHJcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5zcGxpY2UoZXZlbnQsIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRW1wbG95ZXIoZWxlbWVudEluZGV4KSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgZm9yID0gJywgZWxlbWVudEluZGV4KTtcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXI9ZmFsc2U7XHJcbiAgICAvL3RoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xyXG4gICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3Quc3BsaWNlKGVsZW1lbnRJbmRleCwgMSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWZ0ZXIgZGVsZXRlIGxpc3QgaXMgPSAnLCB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUVtcGxveWVyQmFzZVBlcmlvZChlbGVtZW50SW5kZXgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBlbGVtZW50SW5kZXgpO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS53b3JrRmxhZyA9IFwiTlwiO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5lbXBEZWxldGVkID0gXCJZXCI7XHJcbiAgICBjb25zdCBicERlbFJlYXNvbiA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gKyBcIiBcIiArICh0aGlzLnNob3dDb21tZW50Qm94ID8gXCItIFwiK3RoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy52YWx1ZTogXCJcIik7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmJwRW1wRGVsUmVhc29uID0gYnBEZWxSZWFzb247XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWZ0ZXIgZGVsZXRlIGJhc2UgcGVyaW9kIGVtcGxveWVyIGxpc3QgaXMgPSAnLCB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGVkaXRFbXBsb3llcihlbXBsb3llcikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgbWV0aG9kIGNhbGxlZCcsIGVtcGxveWVyKTtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0VkaXRNb2RlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZpbmlzaChlbXBsb3llcikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0ZpbmlzaCBFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llcik7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XHJcbiAgICBlbXBsb3llci53b3JrRmxhZyA9ICdZJztcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMubW9kZWxEaXNwbGF5LmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRWRpdCBCYXNlUGVyaW9kIEVtcGxveWVyIGNhbGxlZCBmb3IgJywgZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luZGV4IFRvIEVkaXQgPSAnLCB0aGlzLmluZGV4VG9FZGl0KTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxDYW5jZWwoY2FuY2VsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FuY2VsIE1ldGhvZCAgJywgY2FuY2VsKTtcclxuICAgIHRoaXMuZGlzcGxheSA9IGNhbmNlbDtcclxuICAgIHRoaXMuYmFzZVBlcmlvZGRpc3BsYXkgPSBjYW5jZWw7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhZnRlciB2YWx1ZSBjaGFuZ2Ugb24gZW1wbG95ZXIgZ3JpZCAnLCB0aGlzLmRpc3BsYXkpO1xyXG4gIH1cclxuXHJcbiAgYWRkRW1wbG95ZXIoZXZlbnQ6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZGQgRW1wbG95ZXIgY2FsbGVkIGZyb20gZ3JpZCAnLCBldmVudCwgJ2luZGV4VG9FZGl0JywgdGhpcy5pbmRleFRvRWRpdCwndGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcicsdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcik7XHJcbiAgICBldmVudC5lbXBEZWxldGVkID0gJ04nO1xyXG4gICAgaWYgKHRoaXMuaW5kZXhUb0VkaXQgfHwgdGhpcy5pbmRleFRvRWRpdCA9PSAwKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgaWYgb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXHJcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcclxuICAgICAgbGV0IGVtcFByb3ZpZGVkV2FnZU1vZGVsID0gbmV3IEVtcGxveWVyV2FnZXNNb2RlbCgpO1xyXG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyRGF0YTtcclxuICAgICAgICBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyUHJvdmlkZWRXYWdlcztcclxuICAgICAgICBldmVudC5icEVtcGxveWVyRmxhZyA9ICcxJ1xyXG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcclxuICAgICAgICBldmVudC5lbXBsb3llclByb3ZpZGVkV2FnZXMgPSBlbXBQcm92aWRlZFdhZ2VNb2RlbDtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzZXR0aW5nIHRoZSB2YWx1ZSBhZ2FpbiA9ICAnLGV2ZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xyXG4gICAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xyXG4gICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xyXG4gICAgICAgIGlmKGV2ZW50LnByZXZXb3JrZWRTdGF0ZT09PSdLUycpe1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmVtcGxveWVyTmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50Lm90aFN0YXRlRW1wTmFtZTtcclxuICAgICAgICBlbXBEYXRhTW9kZWwucHJldldvcmtlZFN0YXRlID0gZXZlbnQucHJldldvcmtlZFN0YXRlOyAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxyXG4gICAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSArICc8YnI+LScgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLTxicj4nICsgKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcclxuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXsgXHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxyXG4gICAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSArICc8YnI+LScgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLTxicj4nICsgKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIm5vIGFkZHJlc3MgZm9yIHRoaXMgZW1wbG95ZXIgdHlwZVwiKTtcclxuICAgICAgfVxyXG4gICAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llclR5cGUgPSBldmVudC5lbXBsb3llclR5cGU7XHJcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llcklkPWV2ZW50LmVtcGxveWVySWQ7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTE9ZXZlbnQuYWRkcmVzcz8uc3RyZWV0QWRkcmVzcztcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XHJcbiAgICAgICAgZXZlbnQuYnBFbXBsb3llckZsYWcgPSAnMCdcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XSA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBlbHNlIG9mIGFkZCBlbXBsb3llciAtLSAnLGV2ZW50KVxyXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xyXG4gICAgICBsZXQgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKClcclxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XHJcbiAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xyXG4gICAgICBpZihldmVudC5lbXBsb3llclR5cGU9PT0nUkVHJyl7XHJcbiAgICAgICAgaWYoZXZlbnQucHJldldvcmtlZFN0YXRlPT09J0tTJyl7XHJcbiAgICAgICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmVtcGxveWVyTmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQub3RoU3RhdGVFbXBOYW1lO1xyXG4gICAgICAgICAgZW1wRGF0YU1vZGVsLnByZXZXb3JrZWRTdGF0ZSA9IGV2ZW50LnByZXZXb3JrZWRTdGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxyXG4gICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnPGJyPicrIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctPGJyPicgKyhldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH0gZWxzZSBpZihldmVudC5lbXBsb3llclR5cGU9PT0nRkVEJyl7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxyXG4gICAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSsgJzxicj4nICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBlbHNlIC0gbm8gYWRkcmVzcyBmb3IgdGhpcyBlbXBsb3llciB0eXBlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llclR5cGUgPSBldmVudC5lbXBsb3llclR5cGU7XHJcbiAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llcklkPWV2ZW50LmVtcGxveWVySWQ7XHJcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUxPWV2ZW50LmFkZHJlc3M/LnN0cmVldEFkZHJlc3M7XHJcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUyPWV2ZW50LmFkZHJlc3M/Lm9wdGlvbmFsQWRkcmVzcztcclxuICAgICAgaWYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMSc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzAnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQWRkaW5nIGVtcGxyIGRhdGEgdG8gY2xhaW1kZXRhaWxtb2RlOjpcIixlbXBEYXRhTW9kZWwpO1xyXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkFkZGluZyBlbXBsciBkYXRhIHRvIGNsYWltZGV0YWlsbW9kZTo6XCIsZW1wRGF0YU1vZGVsKTtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3QucHVzaCh0aGlzLmNsYWltZGV0YWlsTW9kZWwpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZyb20gYnBsaXN0IGluIGdyaWQ6OjpcIix0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdC5sZW5ndGgpO1xyXG4gICAgICB0aGlzLm1vZGVsRGF0YVBhc3MuZW1pdChlbXBEYXRhTW9kZWwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlbW92ZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IGluZGV4O1xyXG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gc2VsZWN0ZWRFbXBsb3llcjtcclxuICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5QnBFbXBDb25maXJtYXRpb24oKXtcclxuICAgIHRoaXMuc2hvd2JwRW1wRGVsUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuICByZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKXtcclxuICAgIHRoaXMuZGVsZXRlRW1wbG95ZXJCYXNlUGVyaW9kKHRoaXMuaW5kZXhUb0VkaXQpO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dicEVtcERlbFBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlRW1wbG95bWVudChzZWxlY3RlZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsLCBpbmRleCl7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgaW5kZXgpO1xyXG4gICAgbGV0IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnID0gY3VycmVudFdvcmtGbGFnVmFsdWUgPyAoY3VycmVudFdvcmtGbGFnVmFsdWUgPT0gXCJOXCIgPyBcIllcIiA6IFwiTlwiKSA6IG51bGw7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0uZW1wRGVsZXRlZCA9IFwiTlwiO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dicEVtcERlbFBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgfVxyXG4gIHNldENob2lzZU1vZGVscyhlbXA6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwpOiB2b2lkIHtcclxuICAgIGxldCBzZXBSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAucmVhc29uU2VwYXJhdGlvbj8udmFsdWUpO1xyXG4gICAgaWYoc2VwUmVhc29uLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAucmVhc29uU2VwYXJhdGlvbiA9IHNlcFJlYXNvblswXTtcclxuICAgIH1cclxuICAgIGxldCBkaXNjaGFyZ2VSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5kaXNjaGFyZ2VEZXRhaWw/LnZhbHVlKTtcclxuICAgIGlmKGRpc2NoYXJnZVJlYXNvbi5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLmRpc2NoYXJnZURldGFpbCA9IGRpc2NoYXJnZVJlYXNvblswXTtcclxuICAgIH1cclxuICAgIGxldCB2b2xRdWl0IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnZvbFF1aXREZXRhaWxzPy52YWx1ZSk7XHJcbiAgICBpZih2b2xRdWl0Lmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAudm9sUXVpdERldGFpbHMgPSB2b2xRdWl0WzBdO1xyXG4gICAgfVxyXG4gICAgbGV0IHBheVJhdGVGcmVxdWVuY3kgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAucGF5UmF0ZUZyZXF1ZW5jeT8udmFsdWUpO1xyXG4gICAgaWYocGF5UmF0ZUZyZXF1ZW5jeS5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLnBheVJhdGVGcmVxdWVuY3kgPSBwYXlSYXRlRnJlcXVlbmN5WzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb3VudHJ5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrQ291bnRyeT8udmFsdWUpO1xyXG4gICAgaWYoY291bnRyeS5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLmZlZFdvcmtDb3VudHJ5ID0gY291bnRyeVswXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrU3RhdGU/LnZhbHVlKTtcclxuICAgIGlmKHN0YXRlLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuZmVkV29ya1N0YXRlID0gc3RhdGVbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNlcnZpY2VCcmFuY2ggOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5zZXJ2aWNlQnJhbmNoPy52YWx1ZSk7XHJcbiAgICBpZihzZXJ2aWNlQnJhbmNoLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuc2VydmljZUJyYW5jaCA9IHNlcnZpY2VCcmFuY2hbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdvcmtTdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLndvcmtTdGF0ZT8udmFsdWU/LnRyaW0oKSk7XHJcbiAgICBlbXAud29ya1N0YXRlID0gd29ya1N0YXRlWzBdO1xyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC01cHg7XCI+XHJcbjxpb24tcm93PlxyXG4gIDxpb24tY29sPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5jb25maXJtJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmRlbGV0ZScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuYWRkJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5lZGl0JyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1yZXN0b3JlLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIucmVzdG9yZScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9pb24tY29sPlxyXG48L2lvbi1yb3c+XHJcblxyXG48cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY29sc1wiIFt2YWx1ZV09XCJjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3RcIiBbbG9hZGluZ109XCJzaG93UHJvZ3Jlc3NCYXJcIlxyXG4gW3Jvd0hvdmVyXT1cInRydWVcIiAqbmdJZj1cImNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZSBpb24tcGFkZGluZy10b3BcIj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnMgcm9sZT1cInByZXNlbnRhdGlvblwiPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggY29sc3Bhbj1cIjJcIiBzY29wZT1cImNvbGdyb3VwXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5qb2IudGl0bGVcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUucGF5XCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmRhdGVzXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLnNlcC5yZWFzb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIFxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVtcGxveWVyIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XHJcbiAgICA8dHIgY2xhc3M9XCJ1aS1zZWxlY3RhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cImVtcGxveWVyLmVtcERlbGV0ZWQ9PSdZJyA/ICdzdHJpa2V0aHJvdWdoJyA6IG51bGxcIj5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cIihlbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lIHx8IGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSkgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmVtcGxveWVyLnRleHRcInx0cmFuc2xhdGV9fTwvc3Bhbj48c3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZX19PGJyPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZX19PGJyPlxyXG4gICAgICA8L3NwYW4+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCdcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5lbXBsb3llci50ZXh0XCJ8dHJhbnNsYXRlfX08L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5lbXBsb3llci50ZXh0XCJ8dHJhbnNsYXRlfX08L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgIWVtcGxveWVyLnBheVJhdGUgJiYgIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImZpbmlzaChlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNvbmZpcm0gZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2NoZWNrLWNpcmNsZSddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMCdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUVtcGxveWVyKHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZD09J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZXN0b3JlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZXN0b3JlXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1yZXN0b3JlLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmIGVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5qb2IudGl0bGVcInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbiAmJiBlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19e3tlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuICAgICAgICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLnBheVJhdGVcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnBheVwifHRyYW5zbGF0ZX19PC9zcGFuPnt7ZW1wbG95ZXIucGF5UmF0ZSB8IGN1cnJlbmN5fX0ve3tlbXBsb3llci5wYXlSYXRlRnJlcXVlbmN5LnRleHR9fTwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5wYXlSYXRlXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5wYXlcInx0cmFuc2xhdGV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J1JFRydcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnN0YXJ0LmFuZC5lbmRcInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZSB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdGRUQnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zdGFydC5hbmQuZW5kXCJ8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVGZWQgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc3RhcnQuYW5kLmVuZFwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlTWlsIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiAgIWVtcGxveWVyLnN0YXJ0RGF0ZUZlZCAmJiAhZW1wbG95ZXIuc3RhcnREYXRlTWlsXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zdGFydC5hbmQuZW5kXCJ8dHJhbnNsYXRlfX08L3NwYW4+PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCcgJiYgZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc2VwZXJhdGlvbi5yZWFzb25cInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLnJlYXNvblNlcGFyYXRpb24udGV4dH19XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJyAmJiAhZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc2VwZXJhdGlvbi5yZWFzb25cInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgIFxyXG4gICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0YWJsZT5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBzdHlsZT1cIndpZHRoOiA0MCU7XCI+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LmZvb3Rlci5sYWJlbCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA5Ljc1JTsgdGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIChjbGljayk9XCJhZGROZXdFbXBEZXRhaWxzKClcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCIgW2lkXT1cIididG5BZGRFbXBsb3llcidcIj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjb2xzcGFuPVwiNFwiPiZuYnNwOzwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG48L3AtdGFibGU+XHJcbiAgPGFwcC1hZGQtZW1wbG95ZXIgKm5nSWY9XCJkaXNwbGF5XCIgKHN1Y2Nlc3MpPVwiYWRkRW1wbG95ZXIoJGV2ZW50KVwiICBbcmVjb3JkSW5kZXhUb0VkaXRdPVwiaW5kZXhUb0VkaXRcIiBcclxuICAgIChiYXNlUGVyaW9kSW5kZXgpPVwiZGVsZXRlQnBFbXBsKCRldmVudClcIiBbaXNCYXNlUGVyaW9kRW1wbG95ZXJdPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBbaXNOZXdDbGFpbV09XCJpc05ld0NsYWltXCIgXHJcbiAgICAobW9kZWxDYW5jZWwpPVwib25Nb2RlbENhbmNlbCgkZXZlbnQpXCIgW2RvYl09XCJjbGFpbWFudERvYlwiIFtub0VkaXRNb2RlXT1cIm5vRWRpdE1vZGVcIj5cclxuICA8L2FwcC1hZGQtZW1wbG95ZXI+XHJcblxyXG4gIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93Q29uZmlybVBvcHVwXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiAqbmdJZj1cInNlbGVjdGVkRW1wbG95ZXJcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkaW5nXCI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5oZWFkaW5nJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICA8aW9uLWxhYmVsPnt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fTwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD57e3NlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZX19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgPGlvbi1sYWJlbD48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIFtpbm5lckh0bWxdPVwic2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEubWFpbGluZ0FkZHJlc3NEaXNwbGF5IHwgdHJ1c3RIdG1sXCI+PC9kaXY+PC9pb24tbGFiZWw+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFuZ2VyXCI+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmZhaWx1cmUubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDEucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQxLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDIucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQyLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDMucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQzLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZGlkbnQud29yay5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJkaXNwbGF5QnBFbXBDb25maXJtYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAucmVtb3ZlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLWRpYWxvZz5cclxuICAgIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93YnBFbXBEZWxQb3B1cFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgKm5nSWY9XCJzZWxlY3RlZEVtcGxveWVyXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTwvaDQ+PGJyLz5cclxuICAgICAgICA8cC1kcm9wZG93biBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZERyb3Bkb3duXCIgaW5wdXRJZD1cImJwRW1wRGVsT3B0aW9uc1wiICAgW29wdGlvbnNdPVwiYnBFbXBEZWxPcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblwiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIChvbkNoYW5nZSk9XCJvbkRyb3Bkb3duQ2hhbmdlKCRldmVudClcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICBwbGFjZWhvbGRlcj0ne3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuaGVhZGluZy5wbGFjZWhvbGRlclwiIHwgdHJhbnNsYXRlfX0nIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiByZXF1aXJlZD4gXHJcbiAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDb21tZW50Qm94XCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLnJlYXNvbi5zZWxlY3RpbmcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgIDx0ZXh0YXJlYSBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckNvbW1lbnRcIiByb3dzPVwiNVwiIGNvbHM9XCIzMFwiIG1heGxlbmd0aD1cIjI1MFwiIHBsYWNlaG9sZGVyPSd7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5leHBsYWluLnJlYXNvblwiIHwgdHJhbnNsYXRlfX0nPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICA8c21hbGwgKm5nSWY9XCJ0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8uaW52YWxpZCAmJiB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8udG91Y2hlZFwiIGNsYXNzPVwicC1lcnJvclwiPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmZpZWxkLnJlcXVpcmVkJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgPHNtYWxsPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLm1heGxlbmd0aC4yNTAnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc21hbGw+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJ0aGlzLmZvcm0uaW52YWxpZFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJyZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAucmVtb3ZlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLWRpYWxvZz5cclxuPC9kaXY+Il19
|