@reusa/ngx-reusa-app-lib 0.0.1331 → 0.0.1332

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.
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { ClaimAppEmpResponseModel } from '../../models/questionnaire/ClaimAppEmpResponseModel';
4
4
  import { ClaimAppEmployerDetailsModel } from '../../models/questionnaire/ClaimAppEmployerDetailsModel';
@@ -16,25 +16,26 @@ import * as i5 from "../../services/login/login.service";
16
16
  import * as i6 from "@angular/router";
17
17
  import * as i7 from "../../services/claims/claims.service";
18
18
  import * as i8 from "@ionic/storage-angular";
19
- const _c0 = () => ["fal", "edit"];
20
- function EmployerGridComponent_div_23_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "div", 10);
22
- i0.ɵɵelement(1, "fa-icon", 4)(2, "span", 2);
19
+ const _c0 = ["gridTop"];
20
+ const _c1 = () => ["fal", "edit"];
21
+ function EmployerGridComponent_div_24_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "div", 11);
23
+ i0.ɵɵelement(1, "fa-icon", 5)(2, "span", 3);
23
24
  i0.ɵɵpipe(3, "trustHtml");
24
25
  i0.ɵɵpipe(4, "translate");
25
26
  i0.ɵɵtext(5, ",\u00A0 ");
26
27
  i0.ɵɵelementEnd();
27
28
  } if (rf & 2) {
28
29
  i0.ɵɵadvance(1);
29
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6, _c0));
30
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6, _c1));
30
31
  i0.ɵɵadvance(1);
31
32
  i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 2, i0.ɵɵpipeBind1(4, 4, "induction.employment.subheader.edit")), i0.ɵɵsanitizeHtml);
32
33
  } }
33
- function EmployerGridComponent_br_24_Template(rf, ctx) { if (rf & 1) {
34
- i0.ɵɵelement(0, "br", 3);
34
+ function EmployerGridComponent_br_25_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelement(0, "br", 4);
35
36
  } }
36
- function EmployerGridComponent_p_table_29_ng_template_2_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelementStart(0, "tr")(1, "th", 16);
37
+ function EmployerGridComponent_p_table_30_ng_template_2_Template(rf, ctx) { if (rf & 1) {
38
+ i0.ɵɵelementStart(0, "tr")(1, "th", 17);
38
39
  i0.ɵɵtext(2);
39
40
  i0.ɵɵpipe(3, "translate");
40
41
  i0.ɵɵelementEnd();
@@ -67,73 +68,79 @@ function EmployerGridComponent_p_table_29_ng_template_2_Template(rf, ctx) { if (
67
68
  i0.ɵɵadvance(3);
68
69
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 13, "induction.employment.table.sep.reason"), " ");
69
70
  } }
70
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_1_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵelementStart(0, "td", 16)(1, "span", 31);
71
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_1_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
72
73
  i0.ɵɵtext(2, "Employer");
73
74
  i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(3, "span", 32);
75
+ i0.ɵɵelementStart(3, "span", 33);
75
76
  i0.ɵɵtext(4);
76
77
  i0.ɵɵelement(5, "br");
77
78
  i0.ɵɵelementEnd()();
78
79
  } if (rf & 2) {
79
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
80
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
81
+ i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
80
82
  i0.ɵɵadvance(4);
81
- i0.ɵɵtextInterpolate2(" ", employer_r10.employerData.displayName, " - ", employer_r10.employerData.displayState.text, "");
83
+ i0.ɵɵtextInterpolate2(" ", employer_r11.employerData.displayName, " - ", employer_r11.employerData.displayState.text, "");
82
84
  } }
83
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_2_td_0_Template(rf, ctx) { if (rf & 1) {
84
- i0.ɵɵelementStart(0, "td", 16)(1, "span", 31);
85
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_td_0_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
85
87
  i0.ɵɵtext(2, "Employer");
86
88
  i0.ɵɵelementEnd();
87
- i0.ɵɵelementStart(3, "span", 32);
89
+ i0.ɵɵelementStart(3, "span", 33);
88
90
  i0.ɵɵtext(4);
89
91
  i0.ɵɵelement(5, "br");
90
92
  i0.ɵɵelementEnd()();
91
93
  } if (rf & 2) {
92
- const employer_r10 = i0.ɵɵnextContext(3).$implicit;
94
+ const employer_r11 = i0.ɵɵnextContext(3).$implicit;
95
+ i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
93
96
  i0.ɵɵadvance(4);
94
- i0.ɵɵtextInterpolate2(" ", employer_r10.employerData.displayName, " - ", employer_r10.workState.text, "");
97
+ i0.ɵɵtextInterpolate2(" ", employer_r11.employerData.displayName, " - ", employer_r11.workState.text, "");
95
98
  } }
96
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵtemplate(0, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_2_td_0_Template, 6, 2, "td", 19);
99
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_td_0_Template, 6, 4, "td", 20);
98
101
  } if (rf & 2) {
99
102
  i0.ɵɵnextContext();
100
- const _r17 = i0.ɵɵreference(5);
101
- const employer_r10 = i0.ɵɵnextContext().$implicit;
102
- i0.ɵɵproperty("ngIf", employer_r10.osaBpEmployerFlag === "1" && employer_r10.employerType === "REG" && employer_r10.workState != null)("ngIfElse", _r17);
103
+ const _r18 = i0.ɵɵreference(5);
104
+ const employer_r11 = i0.ɵɵnextContext().$implicit;
105
+ i0.ɵɵproperty("ngIf", employer_r11.osaBpEmployerFlag === "1" && employer_r11.employerType === "REG" && employer_r11.workState != null)("ngIfElse", _r18);
103
106
  } }
104
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵelementStart(0, "td", 16)(1, "span", 31);
107
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
108
+ i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
106
109
  i0.ɵɵtext(2, "Employer");
107
110
  i0.ɵɵelementEnd();
108
- i0.ɵɵelementStart(3, "span", 32);
111
+ i0.ɵɵelementStart(3, "span", 33);
109
112
  i0.ɵɵtext(4);
110
113
  i0.ɵɵelement(5, "br");
111
114
  i0.ɵɵelementEnd();
112
- i0.ɵɵelement(6, "div", 33);
115
+ i0.ɵɵelement(6, "div", 34);
113
116
  i0.ɵɵpipe(7, "trustHtml");
114
117
  i0.ɵɵelementEnd();
115
118
  } if (rf & 2) {
116
- const employer_r10 = i0.ɵɵnextContext(3).$implicit;
119
+ const employer_r11 = i0.ɵɵnextContext(3).$implicit;
120
+ i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
117
121
  i0.ɵɵadvance(4);
118
- i0.ɵɵtextInterpolate1(" ", employer_r10.employerData.displayName, " ");
122
+ i0.ɵɵtextInterpolate1(" ", employer_r11.employerData.displayName, " ");
119
123
  i0.ɵɵadvance(2);
120
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(7, 2, employer_r10.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
124
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(7, 4, employer_r11.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
121
125
  } }
122
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
123
- i0.ɵɵtemplate(0, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_4_td_0_Template, 8, 4, "td", 22);
126
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_td_0_Template, 8, 6, "td", 23);
124
128
  } if (rf & 2) {
125
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
126
- i0.ɵɵproperty("ngIf", employer_r10.employerData.displayName && employer_r10.employerType != "MIL");
129
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
130
+ i0.ɵɵproperty("ngIf", employer_r11.employerData.displayName && employer_r11.employerType != "MIL");
127
131
  } }
128
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_6_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵelementStart(0, "td", 16)(1, "span", 31);
132
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_6_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
130
134
  i0.ɵɵtext(2, "Employer");
131
135
  i0.ɵɵelementEnd();
132
136
  i0.ɵɵelement(3, "span");
133
137
  i0.ɵɵelementEnd();
138
+ } if (rf & 2) {
139
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
140
+ i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
134
141
  } }
135
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_7_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "td", 16)(1, "span", 31);
142
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_7_Template(rf, ctx) { if (rf & 1) {
143
+ i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
137
144
  i0.ɵɵtext(2, "Employer");
138
145
  i0.ɵɵelementEnd();
139
146
  i0.ɵɵelementStart(3, "span");
@@ -141,126 +148,133 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_7_Template(rf, c
141
148
  i0.ɵɵelement(5, "br");
142
149
  i0.ɵɵelementEnd()();
143
150
  } if (rf & 2) {
144
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
151
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
152
+ i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
145
153
  i0.ɵɵadvance(4);
146
- i0.ɵɵtextInterpolate1(" ", employer_r10.serviceBranch.text, " ");
147
- } }
148
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_9_Template(rf, ctx) { if (rf & 1) {
149
- const _r46 = i0.ɵɵgetCurrentView();
150
- i0.ɵɵelementStart(0, "ion-button", 34);
151
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const employer_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r44 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r44.editBasePeriodEmployer(employer_r10)); });
152
- i0.ɵɵelement(1, "fa-icon", 35);
153
- i0.ɵɵelementEnd();
154
- } if (rf & 2) {
155
- i0.ɵɵadvance(1);
156
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c0));
154
+ i0.ɵɵtextInterpolate1(" ", employer_r11.serviceBranch.text, " ");
157
155
  } }
158
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_10_Template(rf, ctx) { if (rf & 1) {
159
- const _r49 = i0.ɵɵgetCurrentView();
160
- i0.ɵɵelementStart(0, "ion-button", 36);
161
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_10_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r49); const employer_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r47 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r47.editEmployer(employer_r10)); });
162
- i0.ɵɵelement(1, "fa-icon", 35);
156
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template(rf, ctx) { if (rf & 1) {
157
+ const _r48 = i0.ɵɵgetCurrentView();
158
+ i0.ɵɵelementStart(0, "ion-button", 35);
159
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r46 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r46.editBasePeriodEmployer(employer_r11)); });
160
+ i0.ɵɵelement(1, "fa-icon", 36);
163
161
  i0.ɵɵelementEnd();
164
162
  } if (rf & 2) {
163
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
164
+ i0.ɵɵproperty("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
165
165
  i0.ɵɵadvance(1);
166
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c0));
166
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c1));
167
167
  } }
168
- const _c1 = () => ["fal", "check-circle"];
169
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_11_Template(rf, ctx) { if (rf & 1) {
168
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template(rf, ctx) { if (rf & 1) {
170
169
  const _r52 = i0.ɵɵgetCurrentView();
171
170
  i0.ɵɵelementStart(0, "ion-button", 37);
172
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_11_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r52); const employer_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.finish(employer_r10)); });
173
- i0.ɵɵelement(1, "fa-icon", 35);
171
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r52); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.editEmployer(employer_r11)); });
172
+ i0.ɵɵelement(1, "fa-icon", 36);
174
173
  i0.ɵɵelementEnd();
175
174
  } if (rf & 2) {
176
- const rowIndex_r11 = i0.ɵɵnextContext(2).rowIndex;
177
- const ctx_r22 = i0.ɵɵnextContext(2);
178
- i0.ɵɵproperty("id", "btnConfirmEmployer-" + rowIndex_r11);
175
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
176
+ i0.ɵɵproperty("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
179
177
  i0.ɵɵadvance(1);
180
- i0.ɵɵproperty("icon", ctx_r22.util.isState("MS") ? i0.ɵɵpureFunction0(2, _c0) : i0.ɵɵpureFunction0(3, _c1));
178
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c1));
181
179
  } }
182
- const _c2 = () => ["fal", "trash-alt"];
183
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_12_Template(rf, ctx) { if (rf & 1) {
180
+ const _c2 = () => ["fal", "check-circle"];
181
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template(rf, ctx) { if (rf & 1) {
184
182
  const _r56 = i0.ɵɵgetCurrentView();
185
183
  i0.ɵɵelementStart(0, "ion-button", 38);
186
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_12_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r56); const rowIndex_r11 = i0.ɵɵnextContext(2).rowIndex; const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.deleteEmployer(rowIndex_r11)); });
187
- i0.ɵɵelement(1, "fa-icon", 35);
184
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r56); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.finish(employer_r11)); });
185
+ i0.ɵɵelement(1, "fa-icon", 36);
188
186
  i0.ɵɵelementEnd();
189
187
  } if (rf & 2) {
190
- const rowIndex_r11 = i0.ɵɵnextContext(2).rowIndex;
191
- i0.ɵɵproperty("id", "btnDeleteEmployer-" + rowIndex_r11);
188
+ const ctx_r57 = i0.ɵɵnextContext(2);
189
+ const rowIndex_r12 = ctx_r57.rowIndex;
190
+ const employer_r11 = ctx_r57.$implicit;
191
+ const ctx_r23 = i0.ɵɵnextContext(2);
192
+ i0.ɵɵproperty("id", "btnConfirmEmployer-" + rowIndex_r12)("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
192
193
  i0.ɵɵadvance(1);
193
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c2));
194
+ i0.ɵɵproperty("icon", ctx_r23.util.isState("MS") ? i0.ɵɵpureFunction0(3, _c1) : i0.ɵɵpureFunction0(4, _c2));
194
195
  } }
195
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_13_Template(rf, ctx) { if (rf & 1) {
196
+ const _c3 = () => ["fal", "trash-alt"];
197
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template(rf, ctx) { if (rf & 1) {
196
198
  const _r60 = i0.ɵɵgetCurrentView();
197
- i0.ɵɵelementStart(0, "ion-button", 38);
198
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_13_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(2); const employer_r10 = ctx_r59.$implicit; const rowIndex_r11 = ctx_r59.rowIndex; const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.removeEmployment(employer_r10, rowIndex_r11)); });
199
- i0.ɵɵelement(1, "fa-icon", 35);
199
+ i0.ɵɵelementStart(0, "ion-button", 39);
200
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r60); const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex; const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.deleteEmployer(rowIndex_r12)); });
201
+ i0.ɵɵelement(1, "fa-icon", 36);
200
202
  i0.ɵɵelementEnd();
201
203
  } if (rf & 2) {
202
- const rowIndex_r11 = i0.ɵɵnextContext(2).rowIndex;
203
- i0.ɵɵproperty("id", "btnRemoveEmployer-" + rowIndex_r11);
204
+ const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex;
205
+ i0.ɵɵproperty("id", "btnDeleteEmployer-" + rowIndex_r12);
204
206
  i0.ɵɵadvance(1);
205
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c2));
207
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c3));
206
208
  } }
207
- const _c3 = () => ["fal", "trash-restore-alt"];
208
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_14_Template(rf, ctx) { if (rf & 1) {
209
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template(rf, ctx) { if (rf & 1) {
209
210
  const _r64 = i0.ɵɵgetCurrentView();
210
211
  i0.ɵɵelementStart(0, "ion-button", 39);
211
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_14_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(2); const employer_r10 = ctx_r63.$implicit; const rowIndex_r11 = ctx_r63.rowIndex; const ctx_r62 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r62.restoreEmployment(employer_r10, rowIndex_r11)); });
212
- i0.ɵɵelement(1, "fa-icon", 35);
212
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(2); const employer_r11 = ctx_r63.$implicit; const rowIndex_r12 = ctx_r63.rowIndex; const ctx_r62 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r62.removeEmployment(employer_r11, rowIndex_r12)); });
213
+ i0.ɵɵelement(1, "fa-icon", 36);
214
+ i0.ɵɵelementEnd();
215
+ } if (rf & 2) {
216
+ const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex;
217
+ i0.ɵɵproperty("id", "btnRemoveEmployer-" + rowIndex_r12);
218
+ i0.ɵɵadvance(1);
219
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c3));
220
+ } }
221
+ const _c4 = () => ["fal", "trash-restore-alt"];
222
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template(rf, ctx) { if (rf & 1) {
223
+ const _r68 = i0.ɵɵgetCurrentView();
224
+ i0.ɵɵelementStart(0, "ion-button", 40);
225
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r68); const ctx_r67 = i0.ɵɵnextContext(2); const employer_r11 = ctx_r67.$implicit; const rowIndex_r12 = ctx_r67.rowIndex; const ctx_r66 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r66.restoreEmployment(employer_r11, rowIndex_r12)); });
226
+ i0.ɵɵelement(1, "fa-icon", 36);
213
227
  i0.ɵɵelementEnd();
214
228
  } if (rf & 2) {
215
229
  i0.ɵɵadvance(1);
216
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c3));
230
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c4));
217
231
  } }
218
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_15_Template(rf, ctx) { if (rf & 1) {
219
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
232
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_15_Template(rf, ctx) { if (rf & 1) {
233
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
220
234
  i0.ɵɵtext(2, "Job Title");
221
235
  i0.ɵɵelementEnd();
222
236
  i0.ɵɵtext(3);
223
237
  i0.ɵɵelementEnd();
224
238
  } if (rf & 2) {
225
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
239
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
226
240
  i0.ɵɵadvance(3);
227
- i0.ɵɵtextInterpolate(employer_r10.jobTileOrPosition);
241
+ i0.ɵɵtextInterpolate(employer_r11.jobTileOrPosition);
228
242
  } }
229
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_16_Template(rf, ctx) { if (rf & 1) {
230
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
243
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_16_Template(rf, ctx) { if (rf & 1) {
244
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
231
245
  i0.ɵɵtext(2, "Job Title");
232
246
  i0.ɵɵelementEnd();
233
247
  i0.ɵɵtext(3);
234
248
  i0.ɵɵelementEnd();
235
249
  } if (rf & 2) {
236
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
250
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
237
251
  i0.ɵɵadvance(3);
238
- i0.ɵɵtextInterpolate(employer_r10.fedJobTileOrPosition);
252
+ i0.ɵɵtextInterpolate(employer_r11.fedJobTileOrPosition);
239
253
  } }
240
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_17_Template(rf, ctx) { if (rf & 1) {
241
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
254
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_17_Template(rf, ctx) { if (rf & 1) {
255
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
242
256
  i0.ɵɵtext(2, "Job Title");
243
257
  i0.ɵɵelementEnd()();
244
258
  } }
245
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_18_Template(rf, ctx) { if (rf & 1) {
246
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
259
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_18_Template(rf, ctx) { if (rf & 1) {
260
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
247
261
  i0.ɵɵtext(2, "Pay");
248
262
  i0.ɵɵelementEnd();
249
263
  i0.ɵɵtext(3);
250
264
  i0.ɵɵpipe(4, "currency");
251
265
  i0.ɵɵelementEnd();
252
266
  } if (rf & 2) {
253
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
267
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
254
268
  i0.ɵɵadvance(3);
255
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(4, 2, employer_r10.payRate), "/", employer_r10.payRateFrequency.text, "");
269
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(4, 2, employer_r11.payRate), "/", employer_r11.payRateFrequency.text, "");
256
270
  } }
257
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_19_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
271
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_19_Template(rf, ctx) { if (rf & 1) {
272
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
259
273
  i0.ɵɵtext(2, "Pay");
260
274
  i0.ɵɵelementEnd()();
261
275
  } }
262
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_20_Template(rf, ctx) { if (rf & 1) {
263
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
276
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_20_Template(rf, ctx) { if (rf & 1) {
277
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
264
278
  i0.ɵɵtext(2, "Start and End");
265
279
  i0.ɵɵelementEnd();
266
280
  i0.ɵɵtext(3);
@@ -268,12 +282,12 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_20_Template(rf,
268
282
  i0.ɵɵpipe(5, "date");
269
283
  i0.ɵɵelementEnd();
270
284
  } if (rf & 2) {
271
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
285
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
272
286
  i0.ɵɵadvance(3);
273
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r10.startDate, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r10.endDate, "M/d/yyyy"), " ");
287
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDate, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDate, "M/d/yyyy"), " ");
274
288
  } }
275
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_21_Template(rf, ctx) { if (rf & 1) {
276
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
289
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_21_Template(rf, ctx) { if (rf & 1) {
290
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
277
291
  i0.ɵɵtext(2, "Start and End");
278
292
  i0.ɵɵelementEnd();
279
293
  i0.ɵɵtext(3);
@@ -281,12 +295,12 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_21_Template(rf,
281
295
  i0.ɵɵpipe(5, "date");
282
296
  i0.ɵɵelementEnd();
283
297
  } if (rf & 2) {
284
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
298
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
285
299
  i0.ɵɵadvance(3);
286
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r10.startDateFed, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r10.endDateFed, "M/d/yyyy"), " ");
300
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDateFed, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDateFed, "M/d/yyyy"), " ");
287
301
  } }
288
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_22_Template(rf, ctx) { if (rf & 1) {
289
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
302
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_22_Template(rf, ctx) { if (rf & 1) {
303
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
290
304
  i0.ɵɵtext(2, "Start and End");
291
305
  i0.ɵɵelementEnd();
292
306
  i0.ɵɵtext(3);
@@ -294,97 +308,97 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_22_Template(rf,
294
308
  i0.ɵɵpipe(5, "date");
295
309
  i0.ɵɵelementEnd();
296
310
  } if (rf & 2) {
297
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
311
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
298
312
  i0.ɵɵadvance(3);
299
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r10.startDateMil, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r10.endDateMil, "M/d/yyyy"), " ");
313
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDateMil, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDateMil, "M/d/yyyy"), " ");
300
314
  } }
301
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_23_Template(rf, ctx) { if (rf & 1) {
302
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
315
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_23_Template(rf, ctx) { if (rf & 1) {
316
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
303
317
  i0.ɵɵtext(2, "Separation Reason");
304
318
  i0.ɵɵelementEnd();
305
319
  i0.ɵɵtext(3);
306
320
  i0.ɵɵelementEnd();
307
321
  } if (rf & 2) {
308
- const employer_r10 = i0.ɵɵnextContext(2).$implicit;
322
+ const employer_r11 = i0.ɵɵnextContext(2).$implicit;
309
323
  i0.ɵɵadvance(3);
310
- i0.ɵɵtextInterpolate1("", employer_r10.reasonSeparation.text, " ");
324
+ i0.ɵɵtextInterpolate1("", employer_r11.reasonSeparation.text, " ");
311
325
  } }
312
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_24_Template(rf, ctx) { if (rf & 1) {
313
- i0.ɵɵelementStart(0, "td")(1, "span", 31);
326
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_24_Template(rf, ctx) { if (rf & 1) {
327
+ i0.ɵɵelementStart(0, "td")(1, "span", 32);
314
328
  i0.ɵɵtext(2, "Separation Reason");
315
329
  i0.ɵɵelementEnd()();
316
330
  } }
317
- function EmployerGridComponent_p_table_29_ng_template_3_tr_0_Template(rf, ctx) { if (rf & 1) {
318
- i0.ɵɵelementStart(0, "tr", 18);
319
- i0.ɵɵtemplate(1, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_1_Template, 6, 2, "td", 19)(2, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_2_Template, 1, 2, "ng-template", null, 20, i0.ɵɵtemplateRefExtractor)(4, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ng_template_4_Template, 1, 1, "ng-template", null, 21, i0.ɵɵtemplateRefExtractor)(6, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_6_Template, 4, 0, "td", 22)(7, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_7_Template, 6, 1, "td", 22);
320
- i0.ɵɵelementStart(8, "td", 23);
321
- i0.ɵɵtemplate(9, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_9_Template, 2, 2, "ion-button", 24)(10, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_10_Template, 2, 2, "ion-button", 25)(11, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_11_Template, 2, 4, "ion-button", 26)(12, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_12_Template, 2, 3, "ion-button", 27)(13, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_13_Template, 2, 3, "ion-button", 27)(14, EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_14_Template, 2, 2, "ion-button", 28);
331
+ function EmployerGridComponent_p_table_30_ng_template_3_tr_0_Template(rf, ctx) { if (rf & 1) {
332
+ i0.ɵɵelementStart(0, "tr", 19);
333
+ i0.ɵɵtemplate(1, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_1_Template, 6, 4, "td", 20)(2, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_Template, 1, 2, "ng-template", null, 21, i0.ɵɵtemplateRefExtractor)(4, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_Template, 1, 1, "ng-template", null, 22, i0.ɵɵtemplateRefExtractor)(6, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_6_Template, 4, 2, "td", 23)(7, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_7_Template, 6, 3, "td", 23);
334
+ i0.ɵɵelementStart(8, "td", 24);
335
+ i0.ɵɵtemplate(9, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template, 2, 3, "ion-button", 25)(10, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template, 2, 3, "ion-button", 26)(11, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template, 2, 5, "ion-button", 27)(12, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template, 2, 3, "ion-button", 28)(13, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template, 2, 3, "ion-button", 28)(14, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template, 2, 2, "ion-button", 29);
322
336
  i0.ɵɵelementEnd();
323
- i0.ɵɵtemplate(15, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_15_Template, 4, 1, "td", 29)(16, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_16_Template, 4, 1, "td", 29)(17, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_17_Template, 3, 0, "td", 29)(18, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_18_Template, 5, 4, "td", 29)(19, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_19_Template, 3, 0, "td", 29)(20, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_20_Template, 6, 8, "td", 29)(21, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_21_Template, 6, 8, "td", 29)(22, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_22_Template, 6, 8, "td", 29)(23, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_23_Template, 4, 1, "td", 29)(24, EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_24_Template, 3, 0, "td", 29);
324
- i0.ɵɵelement(25, "td", 30);
337
+ i0.ɵɵtemplate(15, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_15_Template, 4, 1, "td", 30)(16, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_16_Template, 4, 1, "td", 30)(17, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_17_Template, 3, 0, "td", 30)(18, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_18_Template, 5, 4, "td", 30)(19, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_19_Template, 3, 0, "td", 30)(20, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_20_Template, 6, 8, "td", 30)(21, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_21_Template, 6, 8, "td", 30)(22, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_22_Template, 6, 8, "td", 30)(23, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_23_Template, 4, 1, "td", 30)(24, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_24_Template, 3, 0, "td", 30);
338
+ i0.ɵɵelement(25, "td", 31);
325
339
  i0.ɵɵelementEnd();
326
340
  } if (rf & 2) {
327
- const _r15 = i0.ɵɵreference(3);
328
- const employer_r10 = i0.ɵɵnextContext().$implicit;
329
- i0.ɵɵproperty("ngClass", employer_r10.empDeleted == "Y" ? "strikethrough" : null);
341
+ const _r16 = i0.ɵɵreference(3);
342
+ const employer_r11 = i0.ɵɵnextContext().$implicit;
343
+ i0.ɵɵproperty("ngClass", employer_r11.empDeleted == "Y" ? "strikethrough" : null);
330
344
  i0.ɵɵadvance(1);
331
- i0.ɵɵproperty("ngIf", employer_r10.osaBpEmployerFlag === "1" && employer_r10.employerType === "REG" && employer_r10.employerData.displayState != null)("ngIfElse", _r15);
345
+ i0.ɵɵproperty("ngIf", employer_r11.osaBpEmployerFlag === "1" && employer_r11.employerType === "REG" && employer_r11.employerData.displayState != null)("ngIfElse", _r16);
332
346
  i0.ɵɵadvance(5);
333
- i0.ɵɵproperty("ngIf", !employer_r10.employerData.displayName && employer_r10.employerType != "MIL");
347
+ i0.ɵɵproperty("ngIf", !employer_r11.employerData.displayName && employer_r11.employerType != "MIL");
334
348
  i0.ɵɵadvance(1);
335
- i0.ɵɵproperty("ngIf", employer_r10.employerType === "MIL");
349
+ i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL");
336
350
  i0.ɵɵadvance(2);
337
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "1" && employer_r10.payRate && employer_r10.startDate && employer_r10.empDeleted != "Y");
351
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.payRate && employer_r11.startDate && employer_r11.empDeleted != "Y");
338
352
  i0.ɵɵadvance(1);
339
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "0");
353
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "0");
340
354
  i0.ɵɵadvance(1);
341
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "1" && !employer_r10.payRate && !employer_r10.startDate && employer_r10.empDeleted != "Y");
355
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && !employer_r11.payRate && !employer_r11.startDate && employer_r11.empDeleted != "Y");
342
356
  i0.ɵɵadvance(1);
343
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "0");
357
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "0");
344
358
  i0.ɵɵadvance(1);
345
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "1" && employer_r10.empDeleted != "Y");
359
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.empDeleted != "Y");
346
360
  i0.ɵɵadvance(1);
347
- i0.ɵɵproperty("ngIf", employer_r10.bpEmployerFlag === "1" && employer_r10.empDeleted == "Y");
361
+ i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.empDeleted == "Y");
348
362
  i0.ɵɵadvance(1);
349
- i0.ɵɵproperty("ngIf", employer_r10.jobTileOrPosition && !employer_r10.fedJobTileOrPosition);
363
+ i0.ɵɵproperty("ngIf", employer_r11.jobTileOrPosition && !employer_r11.fedJobTileOrPosition);
350
364
  i0.ɵɵadvance(1);
351
- i0.ɵɵproperty("ngIf", employer_r10.fedJobTileOrPosition && !employer_r10.jobTileOrPosition);
365
+ i0.ɵɵproperty("ngIf", employer_r11.fedJobTileOrPosition && !employer_r11.jobTileOrPosition);
352
366
  i0.ɵɵadvance(1);
353
- i0.ɵɵproperty("ngIf", employer_r10.employerType == "MIL");
367
+ i0.ɵɵproperty("ngIf", employer_r11.employerType == "MIL");
354
368
  i0.ɵɵadvance(1);
355
- i0.ɵɵproperty("ngIf", employer_r10.employerType != "MIL" && employer_r10.payRate && employer_r10.payRateFrequency);
369
+ i0.ɵɵproperty("ngIf", employer_r11.employerType != "MIL" && employer_r11.payRate && employer_r11.payRateFrequency);
356
370
  i0.ɵɵadvance(1);
357
- i0.ɵɵproperty("ngIf", employer_r10.employerType == "MIL");
371
+ i0.ɵɵproperty("ngIf", employer_r11.employerType == "MIL");
358
372
  i0.ɵɵadvance(1);
359
- i0.ɵɵproperty("ngIf", employer_r10.employerType === "REG" && employer_r10.startDate && employer_r10.endDate);
373
+ i0.ɵɵproperty("ngIf", employer_r11.employerType === "REG" && employer_r11.startDate && employer_r11.endDate);
360
374
  i0.ɵɵadvance(1);
361
- i0.ɵɵproperty("ngIf", employer_r10.employerType === "FED" && employer_r10.startDateFed && employer_r10.endDateFed);
375
+ i0.ɵɵproperty("ngIf", employer_r11.employerType === "FED" && employer_r11.startDateFed && employer_r11.endDateFed);
362
376
  i0.ɵɵadvance(1);
363
- i0.ɵɵproperty("ngIf", employer_r10.employerType === "MIL" && employer_r10.startDateMil && employer_r10.endDateMil);
377
+ i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL" && employer_r11.startDateMil && employer_r11.endDateMil);
364
378
  i0.ɵɵadvance(1);
365
- i0.ɵɵproperty("ngIf", employer_r10.employerType != "MIL" && employer_r10.reasonSeparation);
379
+ i0.ɵɵproperty("ngIf", employer_r11.employerType != "MIL" && employer_r11.reasonSeparation);
366
380
  i0.ɵɵadvance(1);
367
- i0.ɵɵproperty("ngIf", employer_r10.employerType === "MIL");
381
+ i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL");
368
382
  } }
369
- function EmployerGridComponent_p_table_29_ng_template_3_Template(rf, ctx) { if (rf & 1) {
370
- i0.ɵɵtemplate(0, EmployerGridComponent_p_table_29_ng_template_3_tr_0_Template, 26, 21, "tr", 17);
383
+ function EmployerGridComponent_p_table_30_ng_template_3_Template(rf, ctx) { if (rf & 1) {
384
+ i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_Template, 26, 21, "tr", 18);
371
385
  } if (rf & 2) {
372
- const employer_r10 = ctx.$implicit;
373
- i0.ɵɵproperty("ngIf", employer_r10.displaySeasonalEmp === true);
374
- } }
375
- const _c4 = () => ["fal", "plus"];
376
- function EmployerGridComponent_p_table_29_ng_template_4_Template(rf, ctx) { if (rf & 1) {
377
- const _r75 = i0.ɵɵgetCurrentView();
378
- i0.ɵɵelementStart(0, "table")(1, "tr")(2, "td", 40);
379
- i0.ɵɵelement(3, "div", 2);
386
+ const employer_r11 = ctx.$implicit;
387
+ i0.ɵɵproperty("ngIf", employer_r11.displaySeasonalEmp === true);
388
+ } }
389
+ const _c5 = () => ["fal", "plus"];
390
+ function EmployerGridComponent_p_table_30_ng_template_4_Template(rf, ctx) { if (rf & 1) {
391
+ const _r79 = i0.ɵɵgetCurrentView();
392
+ i0.ɵɵelementStart(0, "table")(1, "tr")(2, "td", 41);
393
+ i0.ɵɵelement(3, "div", 3);
380
394
  i0.ɵɵpipe(4, "trustHtml");
381
395
  i0.ɵɵpipe(5, "translate");
382
396
  i0.ɵɵelementEnd();
383
- i0.ɵɵelementStart(6, "td", 41)(7, "ion-button", 42);
384
- i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_4_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r75); const ctx_r74 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r74.addNewEmpDetails()); });
385
- i0.ɵɵelement(8, "fa-icon", 35);
397
+ i0.ɵɵelementStart(6, "td", 42)(7, "ion-button", 43);
398
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_4_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r79); const ctx_r78 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r78.addNewEmpDetails()); });
399
+ i0.ɵɵelement(8, "fa-icon", 36);
386
400
  i0.ɵɵelementEnd()();
387
- i0.ɵɵelementStart(9, "td", 30);
401
+ i0.ɵɵelementStart(9, "td", 31);
388
402
  i0.ɵɵtext(10, "\u00A0");
389
403
  i0.ɵɵelementEnd()()();
390
404
  } if (rf & 2) {
@@ -395,44 +409,44 @@ function EmployerGridComponent_p_table_29_ng_template_4_Template(rf, ctx) { if (
395
409
  i0.ɵɵadvance(4);
396
410
  i0.ɵɵproperty("id", "btnAddEmployer");
397
411
  i0.ɵɵadvance(1);
398
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(8, _c4));
412
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(8, _c5));
399
413
  } }
400
- function EmployerGridComponent_p_table_29_Template(rf, ctx) { if (rf & 1) {
401
- i0.ɵɵelementStart(0, "p-table", 11, 12);
402
- i0.ɵɵtemplate(2, EmployerGridComponent_p_table_29_ng_template_2_Template, 17, 15, "ng-template", 13)(3, EmployerGridComponent_p_table_29_ng_template_3_Template, 1, 1, "ng-template", 14)(4, EmployerGridComponent_p_table_29_ng_template_4_Template, 11, 9, "ng-template", 15);
414
+ function EmployerGridComponent_p_table_30_Template(rf, ctx) { if (rf & 1) {
415
+ i0.ɵɵelementStart(0, "p-table", 12, 13);
416
+ i0.ɵɵtemplate(2, EmployerGridComponent_p_table_30_ng_template_2_Template, 17, 15, "ng-template", 14)(3, EmployerGridComponent_p_table_30_ng_template_3_Template, 1, 1, "ng-template", 15)(4, EmployerGridComponent_p_table_30_ng_template_4_Template, 11, 9, "ng-template", 16);
403
417
  i0.ɵɵelementEnd();
404
418
  } if (rf & 2) {
405
- const ctx_r2 = i0.ɵɵnextContext();
406
- i0.ɵɵproperty("columns", ctx_r2.cols)("value", ctx_r2.claimAppEmpResponseModelFromService.bpEmpList)("loading", ctx_r2.showProgressBar)("rowHover", true);
419
+ const ctx_r3 = i0.ɵɵnextContext();
420
+ i0.ɵɵproperty("columns", ctx_r3.cols)("value", ctx_r3.claimAppEmpResponseModelFromService.bpEmpList)("loading", ctx_r3.showProgressBar)("rowHover", true);
407
421
  } }
408
- function EmployerGridComponent_app_add_employer_30_Template(rf, ctx) { if (rf & 1) {
409
- const _r77 = i0.ɵɵgetCurrentView();
410
- i0.ɵɵelementStart(0, "app-add-employer", 43);
411
- i0.ɵɵlistener("success", function EmployerGridComponent_app_add_employer_30_Template_app_add_employer_success_0_listener($event) { i0.ɵɵrestoreView(_r77); const ctx_r76 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r76.addEmployer($event)); })("basePeriodIndex", function EmployerGridComponent_app_add_employer_30_Template_app_add_employer_basePeriodIndex_0_listener($event) { i0.ɵɵrestoreView(_r77); const ctx_r78 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r78.deleteBpEmpl($event)); })("modelCancel", function EmployerGridComponent_app_add_employer_30_Template_app_add_employer_modelCancel_0_listener($event) { i0.ɵɵrestoreView(_r77); const ctx_r79 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r79.onModelCancel($event)); });
422
+ function EmployerGridComponent_app_add_employer_31_Template(rf, ctx) { if (rf & 1) {
423
+ const _r81 = i0.ɵɵgetCurrentView();
424
+ i0.ɵɵelementStart(0, "app-add-employer", 44);
425
+ i0.ɵɵlistener("success", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_success_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r80 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r80.addEmployer($event)); })("basePeriodIndex", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_basePeriodIndex_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r82 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r82.deleteBpEmpl($event)); })("modelCancel", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_modelCancel_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r83 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r83.onModelCancel($event)); });
412
426
  i0.ɵɵelementEnd();
413
427
  } if (rf & 2) {
414
- const ctx_r3 = i0.ɵɵnextContext();
415
- i0.ɵɵproperty("recordIndexToEdit", ctx_r3.indexToEdit)("isBasePeriodEmployer", ctx_r3.isBasePeriodEmployer)("isNewClaim", ctx_r3.isNewClaim)("dob", ctx_r3.claimantDob);
428
+ const ctx_r4 = i0.ɵɵnextContext();
429
+ i0.ɵɵproperty("recordIndexToEdit", ctx_r4.indexToEdit)("isBasePeriodEmployer", ctx_r4.isBasePeriodEmployer)("isNewClaim", ctx_r4.isNewClaim)("dob", ctx_r4.claimantDob);
416
430
  } }
417
- function EmployerGridComponent_p_dialog_31_div_6_Template(rf, ctx) { if (rf & 1) {
431
+ function EmployerGridComponent_p_dialog_32_div_6_Template(rf, ctx) { if (rf & 1) {
418
432
  i0.ɵɵelementStart(0, "div");
419
433
  i0.ɵɵtext(1);
420
434
  i0.ɵɵpipe(2, "translate");
421
435
  i0.ɵɵelementEnd();
422
436
  } if (rf & 2) {
423
- const ctx_r80 = i0.ɵɵnextContext(2);
437
+ const ctx_r84 = i0.ɵɵnextContext(2);
424
438
  i0.ɵɵadvance(1);
425
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(2, 2, "induction.confirm.employment.dba"), " ", ctx_r80.selectedEmployer.employerData.tradeName, "");
439
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(2, 2, "induction.confirm.employment.dba"), " ", ctx_r84.selectedEmployer.employerData.tradeName, "");
426
440
  } }
427
- function EmployerGridComponent_p_dialog_31_ng_template_20_Template(rf, ctx) { if (rf & 1) {
428
- const _r83 = i0.ɵɵgetCurrentView();
429
- i0.ɵɵelementStart(0, "ion-button", 48);
430
- i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_31_ng_template_20_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r83); const ctx_r82 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r82.close()); });
441
+ function EmployerGridComponent_p_dialog_32_ng_template_20_Template(rf, ctx) { if (rf & 1) {
442
+ const _r87 = i0.ɵɵgetCurrentView();
443
+ i0.ɵɵelementStart(0, "ion-button", 49);
444
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_32_ng_template_20_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r87); const ctx_r86 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r86.close()); });
431
445
  i0.ɵɵtext(1);
432
446
  i0.ɵɵpipe(2, "translate");
433
447
  i0.ɵɵelementEnd();
434
- i0.ɵɵelementStart(3, "ion-button", 49);
435
- i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_31_ng_template_20_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r83); const ctx_r84 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r84.removeBasePeriodEmployer()); });
448
+ i0.ɵɵelementStart(3, "ion-button", 50);
449
+ i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_32_ng_template_20_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r87); const ctx_r88 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r88.removeBasePeriodEmployer()); });
436
450
  i0.ɵɵtext(4);
437
451
  i0.ɵɵpipe(5, "translate");
438
452
  i0.ɵɵelementEnd();
@@ -442,21 +456,21 @@ function EmployerGridComponent_p_dialog_31_ng_template_20_Template(rf, ctx) { if
442
456
  i0.ɵɵadvance(3);
443
457
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, "induction.employment.grid.popup.remove"), " ");
444
458
  } }
445
- const _c5 = () => ({ width: "45vw" });
446
- const _c6 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
447
- const _c7 = a0 => [a0];
448
- function EmployerGridComponent_p_dialog_31_Template(rf, ctx) { if (rf & 1) {
449
- i0.ɵɵelementStart(0, "p-dialog", 44)(1, "h4", 45);
459
+ const _c6 = () => ({ width: "45vw" });
460
+ const _c7 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
461
+ const _c8 = a0 => [a0];
462
+ function EmployerGridComponent_p_dialog_32_Template(rf, ctx) { if (rf & 1) {
463
+ i0.ɵɵelementStart(0, "p-dialog", 45)(1, "h4", 46);
450
464
  i0.ɵɵtext(2);
451
465
  i0.ɵɵpipe(3, "translate");
452
466
  i0.ɵɵelementEnd();
453
467
  i0.ɵɵelementStart(4, "ion-label");
454
468
  i0.ɵɵtext(5);
455
- i0.ɵɵtemplate(6, EmployerGridComponent_p_dialog_31_div_6_Template, 3, 4, "div", 29);
469
+ i0.ɵɵtemplate(6, EmployerGridComponent_p_dialog_32_div_6_Template, 3, 4, "div", 30);
456
470
  i0.ɵɵelement(7, "br");
457
471
  i0.ɵɵelementEnd();
458
472
  i0.ɵɵelementStart(8, "ion-label");
459
- i0.ɵɵelement(9, "div", 46);
473
+ i0.ɵɵelement(9, "div", 47);
460
474
  i0.ɵɵpipe(10, "trustHtml");
461
475
  i0.ɵɵelementEnd();
462
476
  i0.ɵɵelement(11, "br");
@@ -466,27 +480,27 @@ function EmployerGridComponent_p_dialog_31_Template(rf, ctx) { if (rf & 1) {
466
480
  i0.ɵɵelementEnd();
467
481
  i0.ɵɵelement(15, "br")(16, "br");
468
482
  i0.ɵɵelementStart(17, "ion-label");
469
- i0.ɵɵelement(18, "div", 2);
483
+ i0.ɵɵelement(18, "div", 3);
470
484
  i0.ɵɵpipe(19, "translate");
471
485
  i0.ɵɵelementEnd();
472
- i0.ɵɵtemplate(20, EmployerGridComponent_p_dialog_31_ng_template_20_Template, 6, 6, "ng-template", 47);
486
+ i0.ɵɵtemplate(20, EmployerGridComponent_p_dialog_32_ng_template_20_Template, 6, 6, "ng-template", 48);
473
487
  i0.ɵɵelementEnd();
474
488
  } if (rf & 2) {
475
- const ctx_r4 = i0.ɵɵnextContext();
476
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(22, _c5));
477
- i0.ɵɵproperty("visible", ctx_r4.showConfirmPopup)("modal", true)("breakpoints", i0.ɵɵpureFunction0(23, _c6))("baseZIndex", 5000)("draggable", false)("resizable", false);
489
+ const ctx_r5 = i0.ɵɵnextContext();
490
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(22, _c6));
491
+ i0.ɵɵproperty("visible", ctx_r5.showConfirmPopup)("modal", true)("breakpoints", i0.ɵɵpureFunction0(23, _c7))("baseZIndex", 5000)("draggable", false)("resizable", false);
478
492
  i0.ɵɵadvance(2);
479
493
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 14, "induction.employment.grid.popup.heading"));
480
494
  i0.ɵɵadvance(3);
481
- i0.ɵɵtextInterpolate1(" ", ctx_r4.selectedEmployer.employerData.displayName, " ");
495
+ i0.ɵɵtextInterpolate1(" ", ctx_r5.selectedEmployer.employerData.displayName, " ");
482
496
  i0.ɵɵadvance(1);
483
- i0.ɵɵproperty("ngIf", ctx_r4.selectedEmployer.employerData.tradeName != null);
497
+ i0.ɵɵproperty("ngIf", ctx_r5.selectedEmployer.employerData.tradeName != null);
484
498
  i0.ɵɵadvance(3);
485
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(10, 16, ctx_r4.selectedEmployer.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
499
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(10, 16, ctx_r5.selectedEmployer.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
486
500
  i0.ɵɵadvance(4);
487
501
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 18, "induction.employment.grid.popup.failure.label"), " ");
488
502
  i0.ɵɵadvance(5);
489
- i0.ɵɵproperty("innerHtml", i0.ɵɵpureFunction1(24, _c7, i0.ɵɵpipeBind1(19, 20, "induction.employment.grid.popup.didnt.work.label")), i0.ɵɵsanitizeHtml);
503
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpureFunction1(24, _c8, i0.ɵɵpipeBind1(19, 20, "induction.employment.grid.popup.didnt.work.label")), i0.ɵɵsanitizeHtml);
490
504
  } }
491
505
  export class EmployerGridComponent {
492
506
  constructor(popup, logger, validationService, navController, util, ls, activatedRoute, claimsService, storage) {
@@ -517,6 +531,7 @@ export class EmployerGridComponent {
517
531
  this.workCountryOptions = ComboOption.WORK_COUNTRY;
518
532
  this.statesOptions = ComboOption.US_STATES;
519
533
  this.militaryServiceOptions = ComboOption.MILITARY_SERVICE;
534
+ this.count = 0;
520
535
  this.onChange = (value) => {
521
536
  };
522
537
  this.onTouch = () => {
@@ -826,57 +841,84 @@ export class EmployerGridComponent {
826
841
  let workState = this.statesOptions.filter(s => s.value == emp.workState?.value?.trim());
827
842
  emp.workState = workState[0];
828
843
  }
844
+ submit() {
845
+ this.claimAppEmpResponseModelFromService.bpEmpList.forEach(e => {
846
+ if (!e.isEmployerEdited) {
847
+ e.isEmployerGridSubmitted = true;
848
+ this.count = this.count + 1;
849
+ if (this.count <= this.claimAppEmpResponseModelFromService.bpEmpList.length) {
850
+ const ctrl = this.form?.get('prevwork');
851
+ if (!ctrl)
852
+ return;
853
+ const hasError = !!ctrl.errors?.bpEmplrFlag && (ctrl.touched || ctrl.dirty);
854
+ if (hasError) {
855
+ setTimeout(() => {
856
+ this.gridTop?.nativeElement?.scrollIntoView({
857
+ behavior: 'smooth',
858
+ block: 'center',
859
+ });
860
+ }, 100);
861
+ }
862
+ }
863
+ }
864
+ });
865
+ }
829
866
  static { this.ɵfac = function EmployerGridComponent_Factory(t) { return new (t || EmployerGridComponent)(i0.ɵɵdirectiveInject(i1.PopoverController), i0.ɵɵdirectiveInject(i2.LoggerService), i0.ɵɵdirectiveInject(i3.ValidationService), i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i4.UtilService), i0.ɵɵdirectiveInject(i5.LoginService), i0.ɵɵdirectiveInject(i6.ActivatedRoute), i0.ɵɵdirectiveInject(i7.ClaimService), i0.ɵɵdirectiveInject(i8.Storage)); }; }
830
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmployerGridComponent, selectors: [["app-employer-grid"]], inputs: { form: "form", dynamicParam: "dynamicParam" }, outputs: { modelDisplay: "modelDisplay", onComplete: "onComplete" }, features: [i0.ɵɵProvidersFeature([{
867
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmployerGridComponent, selectors: [["app-employer-grid"]], viewQuery: function EmployerGridComponent_Query(rf, ctx) { if (rf & 1) {
868
+ i0.ɵɵviewQuery(_c0, 5);
869
+ } if (rf & 2) {
870
+ let _t;
871
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridTop = _t.first);
872
+ } }, inputs: { form: "form", dynamicParam: "dynamicParam" }, outputs: { modelDisplay: "modelDisplay", onComplete: "onComplete" }, features: [i0.ɵɵProvidersFeature([{
831
873
  provide: NG_VALUE_ACCESSOR,
832
874
  useExisting: EmployerGridComponent,
833
875
  multi: true
834
- }])], decls: 32, vars: 39, consts: [[2, "margin-left", "-5px", 3, "formGroup"], [3, "icon"], [3, "innerHtml"], [1, "mobile-action-view"], [1, "action-icon", "font-bold", 3, "icon"], ["style", "display: inline-block;", 4, "ngIf"], ["class", "mobile-action-view", 4, "ngIf"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover", 4, "ngIf"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel", 4, "ngIf"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", 4, "ngIf"], [2, "display", "inline-block"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "summary"], ["colspan", "2", 1, "dataHeadings", 2, "width", "20%"], ["class", "ui-selectable-row", 3, "ngClass", 4, "ngIf"], [1, "ui-selectable-row", 3, "ngClass"], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 4, "ngIf", "ngIfElse"], ["workState", ""], ["notOsaBpAndRegEmployer", ""], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 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, "id", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Remove employer", "style", "padding-left: 5px;", 3, "id", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Restore", 3, "click", 4, "ngIf"], [4, "ngIf"], ["colspan", "4"], [1, "p-column-title"], [1, "displayName"], [1, "displayNameText", 2, "font-size", "12px", 3, "innerHtml"], ["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, "id", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Remove employer", 1, "action-button", 2, "padding-left", "5px", 3, "id", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Restore", 1, "action-button", 3, "click"], [1, "action-footer", 2, "width", "40%"], [1, "add-employer"], ["fill", "outline", "size", "small", "aria-label", "Add employer", 1, "action-button", 3, "id", "click"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], [1, "heading"], [2, "font-size", "12px", 3, "innerHtml"], ["pTemplate", "footer"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"]], template: function EmployerGridComponent_Template(rf, ctx) { if (rf & 1) {
835
- i0.ɵɵelementStart(0, "div", 0)(1, "ion-row")(2, "ion-col");
836
- i0.ɵɵelement(3, "fa-icon", 1)(4, "span", 2);
837
- i0.ɵɵpipe(5, "trustHtml");
838
- i0.ɵɵpipe(6, "translate");
839
- i0.ɵɵpipe(7, "trustHtml");
840
- i0.ɵɵpipe(8, "translate");
841
- i0.ɵɵtext(9, ",\u00A0 ");
842
- i0.ɵɵelement(10, "br", 3)(11, "fa-icon", 4)(12, "span", 2);
843
- i0.ɵɵpipe(13, "trustHtml");
844
- i0.ɵɵpipe(14, "translate");
845
- i0.ɵɵtext(15, ",\u00A0 ");
846
- i0.ɵɵelement(16, "br", 3)(17, "fa-icon", 4)(18, "span", 2);
847
- i0.ɵɵpipe(19, "trustHtml");
848
- i0.ɵɵpipe(20, "translate");
849
- i0.ɵɵtext(21, ",\u00A0 ");
850
- i0.ɵɵelement(22, "br", 3);
851
- i0.ɵɵtemplate(23, EmployerGridComponent_div_23_Template, 6, 7, "div", 5)(24, EmployerGridComponent_br_24_Template, 1, 0, "br", 6);
852
- i0.ɵɵelement(25, "fa-icon", 4)(26, "span", 2);
853
- i0.ɵɵpipe(27, "trustHtml");
854
- i0.ɵɵpipe(28, "translate");
876
+ }])], decls: 33, vars: 39, consts: [[2, "margin-left", "-5px", 3, "formGroup"], ["gridTop", ""], [3, "icon"], [3, "innerHtml"], [1, "mobile-action-view"], [1, "action-icon", "font-bold", 3, "icon"], ["style", "display: inline-block;", 4, "ngIf"], ["class", "mobile-action-view", 4, "ngIf"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover", 4, "ngIf"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel", 4, "ngIf"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", 4, "ngIf"], [2, "display", "inline-block"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "summary"], ["colspan", "2", 1, "dataHeadings", 2, "width", "20%"], ["class", "ui-selectable-row", 3, "ngClass", 4, "ngIf"], [1, "ui-selectable-row", 3, "ngClass"], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 3, "Color", 4, "ngIf", "ngIfElse"], ["workState", ""], ["notOsaBpAndRegEmployer", ""], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 3, "Color", 4, "ngIf"], [2, "text-align", "center"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Add employer", 3, "color", "click", 4, "ngIf"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Edit employer", 3, "color", "click", 4, "ngIf"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Confirm employer", 3, "id", "color", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Remove employer", "style", "padding-left: 5px;", 3, "id", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Restore", 3, "click", 4, "ngIf"], [4, "ngIf"], ["colspan", "4"], [1, "p-column-title"], [1, "displayName"], [1, "displayNameText", 2, "font-size", "12px", 3, "innerHtml"], ["size", "small", "fill", "outline", "aria-label", "Add employer", 1, "action-button", 3, "color", "click"], [1, "action-icon", 3, "icon"], ["size", "small", "fill", "outline", "aria-label", "Edit employer", 1, "action-button", 3, "color", "click"], ["size", "small", "fill", "outline", "aria-label", "Confirm employer", 1, "action-button", 3, "id", "color", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Remove employer", 1, "action-button", 2, "padding-left", "5px", 3, "id", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Restore", 1, "action-button", 3, "click"], [1, "action-footer", 2, "width", "40%"], [1, "add-employer"], ["fill", "outline", "size", "small", "aria-label", "Add employer", 1, "action-button", 3, "id", "click"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], [1, "heading"], [2, "font-size", "12px", 3, "innerHtml"], ["pTemplate", "footer"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"]], template: function EmployerGridComponent_Template(rf, ctx) { if (rf & 1) {
877
+ i0.ɵɵelementStart(0, "div", 0, 1)(2, "ion-row")(3, "ion-col");
878
+ i0.ɵɵelement(4, "fa-icon", 2)(5, "span", 3);
879
+ i0.ɵɵpipe(6, "trustHtml");
880
+ i0.ɵɵpipe(7, "translate");
881
+ i0.ɵɵpipe(8, "trustHtml");
882
+ i0.ɵɵpipe(9, "translate");
883
+ i0.ɵɵtext(10, ",\u00A0 ");
884
+ i0.ɵɵelement(11, "br", 4)(12, "fa-icon", 5)(13, "span", 3);
885
+ i0.ɵɵpipe(14, "trustHtml");
886
+ i0.ɵɵpipe(15, "translate");
887
+ i0.ɵɵtext(16, ",\u00A0 ");
888
+ i0.ɵɵelement(17, "br", 4)(18, "fa-icon", 5)(19, "span", 3);
889
+ i0.ɵɵpipe(20, "trustHtml");
890
+ i0.ɵɵpipe(21, "translate");
891
+ i0.ɵɵtext(22, ",\u00A0 ");
892
+ i0.ɵɵelement(23, "br", 4);
893
+ i0.ɵɵtemplate(24, EmployerGridComponent_div_24_Template, 6, 7, "div", 6)(25, EmployerGridComponent_br_25_Template, 1, 0, "br", 7);
894
+ i0.ɵɵelement(26, "fa-icon", 5)(27, "span", 3);
895
+ i0.ɵɵpipe(28, "trustHtml");
896
+ i0.ɵɵpipe(29, "translate");
855
897
  i0.ɵɵelementEnd()();
856
- i0.ɵɵtemplate(29, EmployerGridComponent_p_table_29_Template, 5, 4, "p-table", 7)(30, EmployerGridComponent_app_add_employer_30_Template, 1, 4, "app-add-employer", 8)(31, EmployerGridComponent_p_dialog_31_Template, 21, 26, "p-dialog", 9);
898
+ i0.ɵɵtemplate(30, EmployerGridComponent_p_table_30_Template, 5, 4, "p-table", 8)(31, EmployerGridComponent_app_add_employer_31_Template, 1, 4, "app-add-employer", 9)(32, EmployerGridComponent_p_dialog_32_Template, 21, 26, "p-dialog", 10);
857
899
  i0.ɵɵelementEnd();
858
900
  } if (rf & 2) {
859
901
  i0.ɵɵproperty("formGroup", ctx.form);
860
- i0.ɵɵadvance(3);
861
- i0.ɵɵproperty("icon", ctx.util.isState("MS") ? i0.ɵɵpureFunction0(34, _c0) : i0.ɵɵpureFunction0(35, _c1));
902
+ i0.ɵɵadvance(4);
903
+ i0.ɵɵproperty("icon", ctx.util.isState("MS") ? i0.ɵɵpureFunction0(34, _c1) : i0.ɵɵpureFunction0(35, _c2));
862
904
  i0.ɵɵadvance(1);
863
- i0.ɵɵproperty("innerHtml", ctx.util.isState("MS") ? i0.ɵɵpipeBind1(5, 14, i0.ɵɵpipeBind1(6, 16, "induction.employment.subheader.confirm.ms")) : i0.ɵɵpipeBind1(7, 18, i0.ɵɵpipeBind1(8, 20, "induction.employment.subheader.confirm")), i0.ɵɵsanitizeHtml);
905
+ i0.ɵɵproperty("innerHtml", ctx.util.isState("MS") ? i0.ɵɵpipeBind1(6, 14, i0.ɵɵpipeBind1(7, 16, "induction.employment.subheader.confirm.ms")) : i0.ɵɵpipeBind1(8, 18, i0.ɵɵpipeBind1(9, 20, "induction.employment.subheader.confirm")), i0.ɵɵsanitizeHtml);
864
906
  i0.ɵɵadvance(7);
865
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(36, _c2));
907
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(36, _c3));
866
908
  i0.ɵɵadvance(1);
867
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(13, 22, i0.ɵɵpipeBind1(14, 24, "induction.employment.subheader.delete")), i0.ɵɵsanitizeHtml);
909
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(14, 22, i0.ɵɵpipeBind1(15, 24, "induction.employment.subheader.delete")), i0.ɵɵsanitizeHtml);
868
910
  i0.ɵɵadvance(5);
869
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(37, _c4));
911
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(37, _c5));
870
912
  i0.ɵɵadvance(1);
871
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(19, 26, i0.ɵɵpipeBind1(20, 28, "induction.employment.subheader.add")), i0.ɵɵsanitizeHtml);
913
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(20, 26, i0.ɵɵpipeBind1(21, 28, "induction.employment.subheader.add")), i0.ɵɵsanitizeHtml);
872
914
  i0.ɵɵadvance(5);
873
915
  i0.ɵɵproperty("ngIf", !ctx.util.isState("MS"));
874
916
  i0.ɵɵadvance(1);
875
917
  i0.ɵɵproperty("ngIf", !ctx.util.isState("MS"));
876
918
  i0.ɵɵadvance(1);
877
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(38, _c3));
919
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(38, _c4));
878
920
  i0.ɵɵadvance(1);
879
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(27, 30, i0.ɵɵpipeBind1(28, 32, "induction.employment.subheader.restore")), i0.ɵɵsanitizeHtml);
921
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(28, 30, i0.ɵɵpipeBind1(29, 32, "induction.employment.subheader.restore")), i0.ɵɵsanitizeHtml);
880
922
  i0.ɵɵadvance(3);
881
923
  i0.ɵɵproperty("ngIf", ctx.claimAppEmpResponseModelFromService);
882
924
  i0.ɵɵadvance(1);
@@ -891,7 +933,7 @@ export class EmployerGridComponent {
891
933
  provide: NG_VALUE_ACCESSOR,
892
934
  useExisting: EmployerGridComponent,
893
935
  multi: true
894
- }], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\">\r\n<ion-row>\r\n <ion-col> \r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\"></fa-icon>\r\n <span [innerHtml]=\"util.isState('MS') ? ('induction.employment.subheader.confirm.ms' | translate | trustHtml) : ('induction.employment.subheader.confirm' | translate | trustHtml)\"></span>,&nbsp;\r\n <br class=\"mobile-action-view\">\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>,&nbsp;\r\n <br class=\"mobile-action-view\">\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>,&nbsp;\r\n <br class=\"mobile-action-view\">\r\n <div *ngIf=\"!util.isState('MS')\" style=\"display: inline-block;\">\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>,&nbsp;\r\n </div>\r\n <br *ngIf=\"!util.isState('MS')\" class=\"mobile-action-view\">\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>\r\n <tr>\r\n <th colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" >\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\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\" *ngIf=\"employer.displaySeasonalEmp === true\">\r\n \r\n <td *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.employerData.displayState != null; else workState\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.employerData.displayState.text}}<br>\r\n </span>\r\n </td>\r\n <ng-template #workState>\r\n <td *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.workState != null; else notOsaBpAndRegEmployer\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.workState.text}}<br>\r\n </span>\r\n </td>\r\n </ng-template>\r\n <ng-template #notOsaBpAndRegEmployer>\r\n <td *ngIf=\"employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} <br>\r\n </span><div style=\"font-size: 12px;\" class=\"displayNameText\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td> \r\n </ng-template>\r\n \r\n <td *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" 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'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">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 [id]=\"'btnConfirmEmployer-' + rowIndex\" 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]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnDeleteEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnRemoveEmployer-' + rowIndex\" 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\" style=\"padding-left: 5px;\">\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\r\n <td *ngIf=\"employer.fedJobTileOrPosition && !employer.jobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.fedJobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Job Title</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType !='MIL' && employer.payRate && employer.payRateFrequency\"><span class=\"p-column-title\">Pay</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Pay</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType==='REG' && employer.startDate && employer.endDate\"><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' && employer.startDateFed && employer.endDateFed\"><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' && employer.startDateMil && employer.endDateMil\"><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\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'\"><span class=\"p-column-title\">Separation Reason</span>\r\n </td>\r\n \r\n <td colspan=\"4\"></td>\r\n\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%;\" class=\"action-footer\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td class=\"add-employer\">\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\">&nbsp;</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\">\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>\r\n {{selectedEmployer.employerData.displayName}}\r\n <div *ngIf=\"selectedEmployer.employerData.tradeName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{selectedEmployer.employerData.tradeName}}</div>\r\n <br>\r\n </ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <div [innerHtml]=\"['induction.employment.grid.popup.didnt.work.label' | translate]\"></div>\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)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [".add-employer{width:9.75%;text-align:right}.mobile-action-view{display:none}: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: 767px){.mobile-action-view{display:block}}@media screen and (max-width: 40rem){.action-footer{width:300px!important}ion-col{text-align:left!important}.dataHeadings{width:500px!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%!important;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)}}@media screen and (max-width: 40rem){:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:0%!important;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}}@media (min-width: 767px) and (max-width: 1325px){.displayNameText{font-size:12px!important;width:max-content}}.strikethrough{text-decoration:line-through}\n"] }]
936
+ }], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\" #gridTop>\r\n<ion-row>\r\n <ion-col> \r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\"></fa-icon>\r\n <span [innerHtml]=\"util.isState('MS') ? ('induction.employment.subheader.confirm.ms' | translate | trustHtml) : ('induction.employment.subheader.confirm' | translate | trustHtml)\"></span>,&nbsp;\r\n <br class=\"mobile-action-view\">\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>,&nbsp;\r\n <br class=\"mobile-action-view\">\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>,&nbsp;\r\n <br class=\"mobile-action-view\">\r\n <div *ngIf=\"!util.isState('MS')\" style=\"display: inline-block;\">\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>,&nbsp;\r\n </div>\r\n <br *ngIf=\"!util.isState('MS')\" class=\"mobile-action-view\">\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>\r\n <tr>\r\n <th colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" >\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\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\" *ngIf=\"employer.displaySeasonalEmp === true\">\r\n \r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.employerData.displayState != null; else workState\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.employerData.displayState.text}}<br>\r\n </span>\r\n </td>\r\n <ng-template #workState>\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.workState != null; else notOsaBpAndRegEmployer\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.workState.text}}<br>\r\n </span>\r\n </td>\r\n </ng-template>\r\n <ng-template #notOsaBpAndRegEmployer>\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} <br>\r\n </span><div style=\"font-size: 12px;\" class=\"displayNameText\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td> \r\n </ng-template>\r\n \r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span>\r\n </span>\r\n </td>\r\n\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.employerType==='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">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'\" \r\n [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'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'\" fill=\"outline\" \r\n [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'success'\"\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 [id]=\"'btnConfirmEmployer-' + rowIndex\" size=\"small\" [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'success'\"\r\n *ngIf=\"employer.bpEmployerFlag==='1' && !employer.payRate && !employer.startDate && employer.empDeleted!='Y'\" fill=\"outline\" \r\n (click)=\"finish(employer);\" class=\"action-button\" aria-label=\"Confirm employer\">\r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnDeleteEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnRemoveEmployer-' + rowIndex\" 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\" style=\"padding-left: 5px;\">\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\r\n <td *ngIf=\"employer.fedJobTileOrPosition && !employer.jobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.fedJobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Job Title</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType !='MIL' && employer.payRate && employer.payRateFrequency\"><span class=\"p-column-title\">Pay</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Pay</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType==='REG' && employer.startDate && employer.endDate\"><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' && employer.startDateFed && employer.endDateFed\"><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' && employer.startDateMil && employer.endDateMil\"><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\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'\"><span class=\"p-column-title\">Separation Reason</span>\r\n </td>\r\n \r\n <td colspan=\"4\"></td>\r\n\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%;\" class=\"action-footer\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td class=\"add-employer\">\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\">&nbsp;</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\">\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>\r\n {{selectedEmployer.employerData.displayName}}\r\n <div *ngIf=\"selectedEmployer.employerData.tradeName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{selectedEmployer.employerData.tradeName}}</div>\r\n <br>\r\n </ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <div [innerHtml]=\"['induction.employment.grid.popup.didnt.work.label' | translate]\"></div>\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)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [".add-employer{width:9.75%;text-align:right}.mobile-action-view{display:none}: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: 767px){.mobile-action-view{display:block}}@media screen and (max-width: 40rem){.action-footer{width:300px!important}ion-col{text-align:left!important}.dataHeadings{width:500px!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%!important;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)}}@media screen and (max-width: 40rem){:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:0%!important;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}}@media (min-width: 767px) and (max-width: 1325px){.displayNameText{font-size:12px!important;width:max-content}}.strikethrough{text-decoration:line-through}\n"] }]
895
937
  }], () => [{ 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: [{
896
938
  type: Input
897
939
  }], dynamicParam: [{
@@ -900,6 +942,9 @@ export class EmployerGridComponent {
900
942
  type: Output
901
943
  }], onComplete: [{
902
944
  type: Output
945
+ }], gridTop: [{
946
+ type: ViewChild,
947
+ args: ['gridTop', { static: false }]
903
948
  }] }); })();
904
949
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmployerGridComponent, { className: "EmployerGridComponent", filePath: "lib\\components\\employer-grid\\employer-grid.component.ts", lineNumber: 31 }); })();
905
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUEwQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBS25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBR25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7OztJQ0p2RCwrQkFBZ0U7SUFDaEUsNkJBQTBFLGNBQUE7OztJQUNlLHdCQUN6RjtJQUFBLGlCQUFNOztJQUZHLGVBQXdCO0lBQXhCLGlEQUF3QjtJQUMzQixlQUEyRTtJQUEzRSxnSUFBMkU7OztJQUVqRix3QkFBMkQ7OztJQVMzRCwwQkFB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QSxlQUFBOzs7WUFFNEQseUJBQzNGO1lBQUEseUJBQStCLGtCQUFBLGVBQUE7OztZQUV5RCx5QkFDeEY7WUFBQSx5QkFBK0I7WUFDL0Isd0VBR00seURBQUE7WUFFTiw4QkFBdUYsZUFBQTs7O1lBRXpGLGlCQUFVLEVBQUE7WUFHWixnRkEwSVUscUZBQUEsdUVBQUE7WUErQlYsaUJBQU07O1lBL0xELG9DQUFrQjtZQUdWLGVBQXVFO1lBQXZFLHlHQUF1RTtZQUMxRSxlQUE2SztZQUE3SywwUEFBNks7WUFFMUssZUFBNkI7WUFBN0Isa0RBQTZCO1lBQ2hDLGVBQTZFO1lBQTdFLHNJQUE2RTtZQUUxRSxlQUF3QjtZQUF4QixrREFBd0I7WUFDM0IsZUFBMEU7WUFBMUUsbUlBQTBFO1lBRTFFLGVBQXlCO1lBQXpCLDhDQUF5QjtZQUkxQixlQUF5QjtZQUF6Qiw4Q0FBeUI7WUFDckIsZUFBcUM7WUFBckMsa0RBQXFDO1lBQ3hDLGVBQThFO1lBQTlFLHVJQUE4RTtZQUtwRSxlQUF5QztZQUF6Qyw4REFBeUM7WUEwSXhDLGVBQWE7WUFBYixrQ0FBYTtZQU1xRSxlQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkR6SWhILHFCQUFxQjtjQVhqQyxTQUFTOzJCQUNFLG1CQUFtQixhQUdsQixDQUFDO3dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsdUJBQXVCO3dCQUNsQyxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDLG1CQUNlLHVCQUF1QixDQUFDLE9BQU87NlFBYXZDLElBQUk7a0JBQVosS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFHSSxZQUFZO2tCQUFyQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTs7a0ZBaEJJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCc7XG5pbXBvcnQgeyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltT25seUVtcGxveWVyRGF0YU1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVtcGxveWVyV2FnZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyV2FnZXNNb2RlbCc7XG5pbXBvcnQgeyBDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbXMvY2xhaW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xuaW1wb3J0IHsgRmJDb25zdGFudHMgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlL0ZiQ29uc3RhbnRzJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVtcGxveWVyLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBFbXBsb3llckdyaWRDb21wb25lbnQsXG4gICAgbXVsdGk6IHRydWVcbiAgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llckdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXG4gICAgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZSA6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2UgOiBTdG9yYWdlKSB7XG5cbiAgfVxuXG4gIGNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlOiAgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCgpO1xuICBjb2xzOiBhbnlbXTtcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZHluYW1pY1BhcmFtIDogYW55O1xuICBkaXNwbGF5OiBib29sZWFuO1xuICBiYXNlUGVyaW9kZGlzcGxheTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIG1vZGVsRGlzcGxheSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICBjYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcbiAgc2VsZWN0ZWRCYXNlUGVyaW9kRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XG4gIHB1YmxpYyBpbmRleFRvRWRpdDtcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc05ld0NsYWltOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93Q29uZmlybVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuICBzc25Gb3JDU1IgOiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgdXVpZDogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XG4gIHB1YmxpYyBzdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xuICBwdWJsaWMgbWlsaXRhcnlTZXJ2aWNlT3B0aW9ucyA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0U7XG4gIHB1YmxpYyBjbGFpbWFudERvYiA6IERhdGU7XG5cbiAgbG9hZE1hc3RlckRhdGEoKXtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0UmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldERpc2NoYXJnZVJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFF1aXRSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmNvbHMgPSBbXG4gICAgICB7IGZpZWxkOiAnZW1wbG95ZXInLCBoZWFkZXI6ICdFbXBsb3llcicgfSxcbiAgICAgIHsgZmllbGQ6ICdqb2JUaXRsZScsIGhlYWRlcjogJ0pvYiBUaXRsZScgfSxcbiAgICAgIHsgZmllbGQ6ICdQYXknLCBoZWFkZXI6ICdQYXknIH0sXG4gICAgICB7IGZpZWxkOiAnc3RhcnRFbmREYXRlJywgaGVhZGVyOiAnU3RhcnQgYW5kIEVuZCcgfSxcbiAgICAgIHsgZmllbGQ6ICdzZXBhcmF0aW9uUmVhc29uJywgaGVhZGVyOiAnU2VwYXJhdGlvbiBSZWFzb24nIH0sXG4gICAgICB7IGZpZWxkOiAnJywgaGVhZGVyOiAnJyB9XG4gICAgXTtcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlID0gcmVzLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIGlmKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UgJiYgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24pe1xuICAgICAgICAgICAgICB0aGlzLmlzTmV3Q2xhaW0gPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmlzTmV3Q2xhaW1BcHBsaWNhdGlvbi52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgIHRoaXMuY2xhaW1hbnREb2IgPSBuZXcgRGF0ZSh0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmRhdGVPZkJpcnRoLnJlcGxhY2UoXCItXCIsXCIvXCIpLnJlcGxhY2UoXCItXCIsXCIvXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGROZXdFbXBEZXRhaWxzKCkge1xuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xuICB9O1xuXG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7XG4gIH07XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYodmFsdWUpe1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5zZXR1cEVtcGxveWVyKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2Uuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIGFzeW5jIGdldElkZW50aWZpZXIoKXtcbiAgICBsZXQgdXVpZDtcbiAgICBsZXQgZGF0YSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2lkZW50aWZpZXInKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImRhdGEgZm9yIGlkZW50aWZpZXIgaXMgOiBcIiwgZGF0YSlcbiAgICAgIGlmKGRhdGEpeyAgICAgICAgICBcbiAgICAgICAgdXVpZCA9IGRhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dWlkID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChGYkNvbnN0YW50cy51dWlkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1dWlkO1xuICB9XG4gIGFzeW5jIHNldHVwRW1wbG95ZXIoKSB7XG4gICAgbGV0IG1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsKCk7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLnV1aWQgPSBhd2FpdCB0aGlzLmdldElkZW50aWZpZXIoKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1dWlkIGlzID09PT0nLCB0aGlzLnV1aWQpO1xuICAgICAgbGV0IHVybCA9IFwiXCI7XG4gICAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSA9PT0gdHJ1ZSl7XG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2NsYWltYW50L2FwcC9icGVtcGxveWVyc1wiOyAgICAgXG4gICAgICAgIGxldCBwcm9jZXNzdHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Byb2Nlc3N0eXBlJyk7XG4gICAgICAgIGlmKHByb2Nlc3N0eXBlID09PSAnYWljLXJlb3Blbicpe1xuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoRmJDb25zdGFudHMudXVpZCk7XG4gICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1Zygnb2JqRGF0YSA9PT09Jywgb2JqRGF0YSk7XG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xuICAgICAgICB9ICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2FwcC9icGVtcGxveWVyc1wiO1xuICAgICAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xuICAgICAgICBpZihwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKXtcbiAgICAgICAgICBtb2RlbC5mbG93RnJvbSA9IFwiQWljLVJlb3Blbi1mbG93XCI7XG4gICAgICAgIH0gIFxuICAgICAgfVxuICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGUgdXVpZCB1c2VkIGluIG1vZGVsIGlzIDogJywgdGhpcy51dWlkKTtcbiAgICAgIGlmKG1vZGVsLmZsb3dGcm9tID09PSAnQWljLVJlb3Blbi1mbG93Jyl7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGFpYyByZW9wZW4gZmxvd1wiKTtcbiAgICAgICAgdGhpcy5mZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsLCB1cmwpO1xuICAgICAgfSBlbHNlIGlmKHRoaXMudXVpZCl7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJbnNpZGUgZ2V0dGluZyB2YWx1ZXMgYmFzZWQgb24gdXVpZFwiKTtcbiAgICAgICAgICBtb2RlbC51dWlkID0gdGhpcy51dWlkO1xuICAgICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiS2VlcCB3YWl0aW5nLi4uLnV1aWQgbm90IGZvdW5kLi5cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWw6IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsLCB1cmw6IHN0cmluZykge1xuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnBvc3Q8Q2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsPih1cmwsIG1vZGVsKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICBpZihyZXMuYnBFbXBMaXN0Lmxlbmd0aCA+IDApe1xuICAgICAgICAgIHJlcy5icEVtcExpc3QuZm9yRWFjaChlbXAgPT4gdGhpcy5zZXRDaG9pc2VNb2RlbHMoZW1wKSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHJlcyk7XG4gICAgICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIgTGlzdCBmcm9tIFNlcnZpY2UnLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICBsZXQgbGlzdCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChsaXN0KTtcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIFxuICBkZWxldGVCcEVtcGwoZXZlbnQ6bnVtYmVyKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgJywgZXZlbnQpO1xuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShldmVudCwgMSk7XG4gIH1cblxuICBkZWxldGVFbXBsb3llcihlbGVtZW50SW5kZXgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgZm9yID0gJywgZWxlbWVudEluZGV4KTtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyPWZhbHNlO1xuICAgIC8vdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5lbXBEZWxldGVkID0gXCJZXCI7XG4gICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3Quc3BsaWNlKGVsZW1lbnRJbmRleCwgMSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XG4gIH1cblxuICBkZWxldGVFbXBsb3llckJhc2VQZXJpb2QoZWxlbWVudEluZGV4KSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgYmFzZSBwZXJpb2QgZW1wbG95ZXIgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS53b3JrRmxhZyA9IFwiTlwiO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgZWRpdEVtcGxveWVyKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgbWV0aG9kIGNhbGxlZCcsIGVtcGxveWVyKTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luZGV4IFRvIEVkaXQgPSAnLCB0aGlzLmluZGV4VG9FZGl0KTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICB9XG5cbiAgZmluaXNoKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0ZpbmlzaCBFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llcik7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xuICAgIGVtcGxveWVyLndvcmtGbGFnID0gJ1knO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRWRpdCBCYXNlUGVyaW9kIEVtcGxveWVyIGNhbGxlZCBmb3IgJywgZW1wbG95ZXIpO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XG4gIH1cblxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDYW5jZWwgTWV0aG9kICAnLCBjYW5jZWwpO1xuICAgIHRoaXMuZGlzcGxheSA9IGNhbmNlbDtcbiAgICB0aGlzLmJhc2VQZXJpb2RkaXNwbGF5ID0gY2FuY2VsO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSBmYWxzZTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYWZ0ZXIgdmFsdWUgY2hhbmdlIG9uIGVtcGxveWVyIGdyaWQgJywgdGhpcy5kaXNwbGF5KTtcbiAgfVxuXG4gIGFkZEVtcGxveWVyKGV2ZW50OiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FkZCBFbXBsb3llciBjYWxsZWQgZnJvbSBncmlkICcsIGV2ZW50LCAnaW5kZXhUb0VkaXQnLCB0aGlzLmluZGV4VG9FZGl0LCd0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyJyx0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKTtcbiAgICBldmVudC5lbXBEZWxldGVkID0gJ04nO1xuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT0gMCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBpZiBvZiBhZGQgZW1wbG95ZXIgLS0gJyxldmVudClcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcbiAgICAgIGxldCBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IG5ldyBFbXBsb3llcldhZ2VzTW9kZWwoKTtcbiAgICAgIGlmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xuICAgICAgICBlbXBEYXRhTW9kZWwgPSAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0uZW1wbG95ZXJEYXRhO1xuICAgICAgICBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyUHJvdmlkZWRXYWdlcztcbiAgICAgICAgZXZlbnQuYnBFbXBsb3llckZsYWcgPSAnMSdcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgICBldmVudC5lbXBsb3llclByb3ZpZGVkV2FnZXMgPSBlbXBQcm92aWRlZFdhZ2VNb2RlbDtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0dGluZyB0aGUgdmFsdWUgYWdhaW4gPSAgJyxldmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XG4gICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpeyBcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIm5vIGFkZHJlc3MgZm9yIHRoaXMgZW1wbG95ZXIgdHlwZVwiKTtcbiAgICAgIH1cbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzAnXG4gICAgICB9XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XSA9IGV2ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIGVsc2Ugb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgbGV0IGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xuICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xuICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xuICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XG4gICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLScgKyhldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpe1xuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5mZWRFbXBsb3llck5hbWU7XG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGVsc2UgLSBubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XG4gICAgICB9XG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUxPWV2ZW50LmFkZHJlc3M/LnN0cmVldEFkZHJlc3M7XG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMCc7XG4gICAgICB9XG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3QucHVzaCh0aGlzLmNsYWltZGV0YWlsTW9kZWwpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBpbmRleDtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBzZWxlY3RlZEVtcGxveWVyO1xuICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7XG4gIH1cblxuICByZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKXtcbiAgICB0aGlzLmRlbGV0ZUVtcGxveWVyQmFzZVBlcmlvZCh0aGlzLmluZGV4VG9FZGl0KTtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xuICB9XG5cbiAgcmVzdG9yZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBpbmRleCk7XG4gICAgbGV0IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZyA9IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID8gKGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID09IFwiTlwiID8gXCJZXCIgOiBcIk5cIikgOiBudWxsO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS5lbXBEZWxldGVkID0gXCJOXCI7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xuICB9XG4gIHNldENob2lzZU1vZGVscyhlbXA6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwpOiB2b2lkIHtcbiAgICBsZXQgc2VwUmVhc29uIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlKTtcbiAgICBpZihzZXBSZWFzb24ubGVuZ3RoID4gMCl7XG4gICAgICBlbXAucmVhc29uU2VwYXJhdGlvbiA9IHNlcFJlYXNvblswXTtcbiAgICB9XG4gICAgbGV0IGRpc2NoYXJnZVJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmRpc2NoYXJnZURldGFpbD8udmFsdWUpO1xuICAgIGlmKGRpc2NoYXJnZVJlYXNvbi5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5kaXNjaGFyZ2VEZXRhaWwgPSBkaXNjaGFyZ2VSZWFzb25bMF07XG4gICAgfVxuICAgIGxldCB2b2xRdWl0IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnZvbFF1aXREZXRhaWxzPy52YWx1ZSk7XG4gICAgaWYodm9sUXVpdC5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC52b2xRdWl0RGV0YWlscyA9IHZvbFF1aXRbMF07XG4gICAgfVxuICAgIGxldCBwYXlSYXRlRnJlcXVlbmN5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnBheVJhdGVGcmVxdWVuY3k/LnZhbHVlKTtcbiAgICBpZihwYXlSYXRlRnJlcXVlbmN5Lmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnBheVJhdGVGcmVxdWVuY3kgPSBwYXlSYXRlRnJlcXVlbmN5WzBdO1xuICAgIH1cblxuICAgIGxldCBjb3VudHJ5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrQ291bnRyeT8udmFsdWUpO1xuICAgIGlmKGNvdW50cnkubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuZmVkV29ya0NvdW50cnkgPSBjb3VudHJ5WzBdO1xuICAgIH1cblxuICAgIGxldCBzdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmZlZFdvcmtTdGF0ZT8udmFsdWUpO1xuICAgIGlmKHN0YXRlLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLmZlZFdvcmtTdGF0ZSA9IHN0YXRlWzBdO1xuICAgIH1cblxuICAgIGxldCBzZXJ2aWNlQnJhbmNoIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuc2VydmljZUJyYW5jaD8udmFsdWUpO1xuICAgIGlmKHNlcnZpY2VCcmFuY2gubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuc2VydmljZUJyYW5jaCA9IHNlcnZpY2VCcmFuY2hbMF07XG4gICAgfVxuXG4gICAgbGV0IHdvcmtTdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLndvcmtTdGF0ZT8udmFsdWU/LnRyaW0oKSk7XG4gICAgZW1wLndvcmtTdGF0ZSA9IHdvcmtTdGF0ZVswXTtcblxuICB9XG59XG5cblxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG48aW9uLXJvdz5cclxuICA8aW9uLWNvbD4gICAgXHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJ1dGlsLmlzU3RhdGUoJ01TJykgPyBbJ2ZhbCcsICdlZGl0J10gOiBbJ2ZhbCcsICdjaGVjay1jaXJjbGUnXVwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwidXRpbC5pc1N0YXRlKCdNUycpID8gKCdpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuY29uZmlybS5tcycgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWwpIDogKCdpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuY29uZmlybScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWwpXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxiciBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5kZWxldGUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxiciBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuYWRkJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNUycpXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCI+XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5lZGl0JyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8L2Rpdj5cclxuICAgIDxiciAqbmdJZj1cIiF1dGlsLmlzU3RhdGUoJ01TJylcIiBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLnJlc3RvcmUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvaW9uLWNvbD5cclxuPC9pb24tcm93PlxyXG5cclxuPHAtdGFibGUgI2R0IFtjb2x1bW5zXT1cImNvbHNcIiBbdmFsdWVdPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0XCIgW2xvYWRpbmddPVwic2hvd1Byb2dyZXNzQmFyXCJcclxuIFtyb3dIb3Zlcl09XCJ0cnVlXCIgKm5nSWY9XCJjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZVwiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGUgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZW1wbG95ZXIubmFtZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0aD5cclxuICAgICAgIDwvdGg+XHJcbiAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLnBheVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5kYXRlc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5zZXAucmVhc29uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1lbXBsb3llciBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxyXG4gICAgPHRyIGNsYXNzPVwidWktc2VsZWN0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJlbXBsb3llci5lbXBEZWxldGVkPT0nWScgPyAnc3RyaWtldGhyb3VnaCcgOiBudWxsXCIgKm5nSWY9XCJlbXBsb3llci5kaXNwbGF5U2Vhc29uYWxFbXAgPT09IHRydWVcIj5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUgIT0gbnVsbDsgZWxzZSB3b3JrU3RhdGVcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUudGV4dH19PGJyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjd29ya1N0YXRlPlxyXG4gICAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLndvcmtTdGF0ZSAhPSBudWxsOyBlbHNlIG5vdE9zYUJwQW5kUmVnRW1wbG95ZXJcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fSAtIHt7ZW1wbG95ZXIud29ya1N0YXRlLnRleHR9fTxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNub3RPc2FCcEFuZFJlZ0VtcGxveWVyPlxyXG4gICAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSAmJiBlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuIGNsYXNzPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gPGJyPlxyXG4gICAgICAgIDwvc3Bhbj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIGNsYXNzPVwiZGlzcGxheU5hbWVUZXh0XCIgW2lubmVySHRtbF09XCJlbXBsb3llci5lbXBsb3llckRhdGEubWFpbGluZ0FkZHJlc3NEaXNwbGF5IHwgdHJ1c3RIdG1sXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD4gICAgICAgICBcclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSAmJiBlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCIgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuQ29uZmlybUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgIWVtcGxveWVyLnBheVJhdGUgJiYgIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImZpbmlzaChlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNvbmZpcm0gZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cInV0aWwuaXNTdGF0ZSgnTVMnKSA/IFsnZmFsJywgJ2VkaXQnXSA6IFsnZmFsJywgJ2NoZWNrLWNpcmNsZSddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuRGVsZXRlRW1wbG95ZXItJyArIHJvd0luZGV4XCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRW1wbG95ZXIocm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNXB4O1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gW2lkXT1cIididG5SZW1vdmVFbXBsb3llci0nICsgcm93SW5kZXhcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNXB4O1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiBlbXBsb3llci5lbXBEZWxldGVkPT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc3RvcmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlc3RvcmVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD4gICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5Kb2IgVGl0bGU8L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5Kb2IgVGl0bGU8L3NwYW4+e3tlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSA9PSdNSUwnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj48L3RkPlxyXG5cclxuICAgICAgICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSAhPSdNSUwnICYmIGVtcGxveWVyLnBheVJhdGUgJiYgZW1wbG95ZXIucGF5UmF0ZUZyZXF1ZW5jeVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5QYXk8L3NwYW4+e3tlbXBsb3llci5wYXlSYXRlIHwgY3VycmVuY3l9fS97e2VtcGxveWVyLnBheVJhdGVGcmVxdWVuY3kudGV4dH19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+UGF5PC9zcGFuPjwvdGQ+XHJcblxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J1JFRycgJiYgZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVuZERhdGVcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U3RhcnQgYW5kIEVuZDwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZSB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdGRUQnICYmIGVtcGxveWVyLnN0YXJ0RGF0ZUZlZCAmJiBlbXBsb3llci5lbmREYXRlRmVkXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlN0YXJ0IGFuZCBFbmQ8L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVGZWQgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJyAmJiBlbXBsb3llci5zdGFydERhdGVNaWwgJiYgZW1wbG95ZXIuZW5kRGF0ZU1pbFwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlTWlsIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCcgJiYgZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TZXBhcmF0aW9uIFJlYXNvbjwvc3Bhbj57e2VtcGxveWVyLnJlYXNvblNlcGFyYXRpb24udGV4dH19XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TZXBhcmF0aW9uIFJlYXNvbjwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCBjb2xzcGFuPVwiNFwiPjwvdGQ+XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCIgbGV0LWNvbHVtbnM+XHJcbiAgICA8dGFibGU+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCIyXCIgc3R5bGU9XCJ3aWR0aDogNDAlO1wiIGNsYXNzPVwiYWN0aW9uLWZvb3RlclwiPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5mb290ZXIubGFiZWwnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJhZGQtZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cImFkZE5ld0VtcERldGFpbHMoKVwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIiBbaWRdPVwiJ2J0bkFkZEVtcGxveWVyJ1wiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+Jm5ic3A7PC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvcC10YWJsZT5cclxuICA8YXBwLWFkZC1lbXBsb3llciAqbmdJZj1cImRpc3BsYXlcIiAoc3VjY2Vzcyk9XCJhZGRFbXBsb3llcigkZXZlbnQpXCIgIFtyZWNvcmRJbmRleFRvRWRpdF09XCJpbmRleFRvRWRpdFwiIFxyXG4gICAgKGJhc2VQZXJpb2RJbmRleCk9XCJkZWxldGVCcEVtcGwoJGV2ZW50KVwiIFtpc0Jhc2VQZXJpb2RFbXBsb3llcl09XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIFtpc05ld0NsYWltXT1cImlzTmV3Q2xhaW1cIiBcclxuICAgIChtb2RlbENhbmNlbCk9XCJvbk1vZGVsQ2FuY2VsKCRldmVudClcIiBbZG9iXT1cImNsYWltYW50RG9iXCI+XHJcbiAgPC9hcHAtYWRkLWVtcGxveWVyPlxyXG5cclxuICA8cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd0NvbmZpcm1Qb3B1cFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgKm5nSWY9XCJzZWxlY3RlZEVtcGxveWVyXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRiYVwifHRyYW5zbGF0ZX19IHt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lfX08L2Rpdj5cclxuICAgICAgICAgIDxicj5cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWxhYmVsPjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgW2lubmVySHRtbF09XCJzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj48L2Rpdj48L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmZhaWx1cmUubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJbJ2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZGlkbnQud29yay5sYWJlbCcgfCB0cmFuc2xhdGVdXCI+PC9kaXY+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInJlbW92ZUJhc2VQZXJpb2RFbXBsb3llcigpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5yZW1vdmUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtZGlhbG9nPlxyXG48L2Rpdj4iXX0=
950
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBMEMsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0lDSnZELCtCQUFnRTtJQUNoRSw2QkFBMEUsY0FBQTs7O0lBQ2Usd0JBQ3pGO0lBQUEsaUJBQU07O0lBRkcsZUFBd0I7SUFBeEIsaURBQXdCO0lBQzNCLGVBQTJFO0lBQTNFLGdJQUEyRTs7O0lBRWpGLHdCQUEyRDs7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K0Isa0JBQUEsZUFBQTs7O1lBRXlELHlCQUN4RjtZQUFBLHlCQUErQjtZQUMvQix3RUFHTSx5REFBQTtZQUVOLDhCQUF1RixlQUFBOzs7WUFFekYsaUJBQVUsRUFBQTtZQUdaLGdGQWtKVSxxRkFBQSx3RUFBQTtZQStCVixpQkFBTTs7WUF2TUQsb0NBQWtCO1lBR1YsZUFBdUU7WUFBdkUseUdBQXVFO1lBQzFFLGVBQTZLO1lBQTdLLDBQQUE2SztZQUUxSyxlQUE2QjtZQUE3QixrREFBNkI7WUFDaEMsZUFBNkU7WUFBN0Usc0lBQTZFO1lBRTFFLGVBQXdCO1lBQXhCLGtEQUF3QjtZQUMzQixlQUEwRTtZQUExRSxtSUFBMEU7WUFFMUUsZUFBeUI7WUFBekIsOENBQXlCO1lBSTFCLGVBQXlCO1lBQXpCLDhDQUF5QjtZQUNyQixlQUFxQztZQUFyQyxrREFBcUM7WUFDeEMsZUFBOEU7WUFBOUUsdUlBQThFO1lBS3BFLGVBQXlDO1lBQXpDLDhEQUF5QztZQWtKeEMsZUFBYTtZQUFiLGtDQUFhO1lBTXFFLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRGpKaEgscUJBQXFCO2NBWGpDLFNBQVM7MkJBQ0UsbUJBQW1CLGFBR2xCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx1QkFBdUI7d0JBQ2xDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUMsbUJBQ2UsdUJBQXVCLENBQUMsT0FBTzs2UUFhdkMsSUFBSTtrQkFBWixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUdJLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxVQUFVO2tCQUFuQixNQUFNO1lBdUJrQyxPQUFPO2tCQUEvQyxTQUFTO21CQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQXZDNUIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsJztcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcbmltcG9ydCB7IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFbXBsb3llcldhZ2VzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbXBsb3llcldhZ2VzTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcbmltcG9ydCB7IENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcbmltcG9ydCB7IEZiQ29uc3RhbnRzIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS9GYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1lbXBsb3llci1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbXBsb3llci1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogRW1wbG95ZXJHcmlkQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZXJHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgcHVibGljIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgYWN0aXZhdGVkUm91dGUgOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIGNsYWltc1NlcnZpY2UgOiBDbGFpbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlIDogU3RvcmFnZSkge1xuXG4gIH1cblxuICBjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZTogIENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgY29sczogYW55W107XG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbSA6IGFueTtcbiAgZGlzcGxheTogYm9vbGVhbjtcbiAgYmFzZVBlcmlvZGRpc3BsYXk6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBtb2RlbERpc3BsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgY2FpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XG4gIHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XG4gIHNlbGVjdGVkQmFzZVBlcmlvZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XG4gIHB1YmxpYyBpc0Jhc2VQZXJpb2RFbXBsb3llcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NvbmZpcm1Qb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3NuRm9yQ1NSIDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gIHV1aWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgcGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xuICBwdWJsaWMgY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xuICBwdWJsaWMgd29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZO1xuICBwdWJsaWMgc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xuICBwdWJsaWMgY2xhaW1hbnREb2IgOiBEYXRlO1xuICBjb3VudCA9IDA7XG4gIEBWaWV3Q2hpbGQoJ2dyaWRUb3AnLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JpZFRvcD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGxvYWRNYXN0ZXJEYXRhKCl7XG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmxvYWRNYXN0ZXJEYXRhKCk7XG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnbmcgb25pdCBvZiBlbXBsb3llciBncmlkJylcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XG4gICAgdGhpcy5jb2xzID0gW1xuICAgICAgeyBmaWVsZDogJ2VtcGxveWVyJywgaGVhZGVyOiAnRW1wbG95ZXInIH0sXG4gICAgICB7IGZpZWxkOiAnam9iVGl0bGUnLCBoZWFkZXI6ICdKb2IgVGl0bGUnIH0sXG4gICAgICB7IGZpZWxkOiAnUGF5JywgaGVhZGVyOiAnUGF5JyB9LFxuICAgICAgeyBmaWVsZDogJ3N0YXJ0RW5kRGF0ZScsIGhlYWRlcjogJ1N0YXJ0IGFuZCBFbmQnIH0sXG4gICAgICB7IGZpZWxkOiAnc2VwYXJhdGlvblJlYXNvbicsIGhlYWRlcjogJ1NlcGFyYXRpb24gUmVhc29uJyB9LFxuICAgICAgeyBmaWVsZDogJycsIGhlYWRlcjogJycgfVxuICAgIF07XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSA9IHJlcy52YWx1ZU9mKCk7XG4gICAgICAgICAgICBpZih0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlICYmIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uKXtcbiAgICAgICAgICAgICAgdGhpcy5pc05ld0NsYWltID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24udmFsdWVPZigpO1xuICAgICAgICAgICAgICB0aGlzLmNsYWltYW50RG9iID0gbmV3IERhdGUodGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5kYXRlT2ZCaXJ0aC5yZXBsYWNlKFwiLVwiLFwiL1wiKS5yZXBsYWNlKFwiLVwiLFwiL1wiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkTmV3RW1wRGV0YWlscygpIHtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXI9ZmFsc2U7XG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcbiAgfTtcblxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge1xuICB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmKHZhbHVlKXtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodmFsdWUpO1xuICAgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMuc2V0dXBFbXBsb3llcigpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLnN1YnNjcmliZShmbik7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBhc3luYyBnZXRJZGVudGlmaWVyKCl7XG4gICAgbGV0IHV1aWQ7XG4gICAgbGV0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdpZGVudGlmaWVyJyk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJkYXRhIGZvciBpZGVudGlmaWVyIGlzIDogXCIsIGRhdGEpXG4gICAgICBpZihkYXRhKXsgICAgICAgICAgXG4gICAgICAgIHV1aWQgPSBkYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXVpZCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoRmJDb25zdGFudHMudXVpZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXVpZDtcbiAgfVxuICBhc3luYyBzZXR1cEVtcGxveWVyKCkge1xuICAgIGxldCBtb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCgpO1xuICAgIGlmICghdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy51dWlkID0gYXdhaXQgdGhpcy5nZXRJZGVudGlmaWVyKCk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXVpZCBpcyA9PT09JywgdGhpcy51dWlkKTtcbiAgICAgIGxldCB1cmwgPSBcIlwiO1xuICAgICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkgPT09IHRydWUpe1xuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9jbGFpbWFudC9hcHAvYnBlbXBsb3llcnNcIjsgICAgIFxuICAgICAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xuICAgICAgICBpZihwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKXtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKEZiQ29uc3RhbnRzLnV1aWQpO1xuICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ29iakRhdGEgPT09PScsIG9iakRhdGEpO1xuICAgICAgICAgIG1vZGVsLmZsb3dGcm9tID0gXCJBaWMtUmVvcGVuLWZsb3dcIjtcbiAgICAgICAgfSAgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9hcHAvYnBlbXBsb3llcnNcIjtcbiAgICAgICAgbGV0IHByb2Nlc3N0eXBlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncHJvY2Vzc3R5cGUnKTtcbiAgICAgICAgaWYocHJvY2Vzc3R5cGUgPT09ICdhaWMtcmVvcGVuJyl7XG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xuICAgICAgICB9ICBcbiAgICAgIH1cbiAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhlIHV1aWQgdXNlZCBpbiBtb2RlbCBpcyA6ICcsIHRoaXMudXVpZCk7XG4gICAgICBpZihtb2RlbC5mbG93RnJvbSA9PT0gJ0FpYy1SZW9wZW4tZmxvdycpe1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBhaWMgcmVvcGVuIGZsb3dcIik7XG4gICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLnV1aWQpe1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGdldHRpbmcgdmFsdWVzIGJhc2VkIG9uIHV1aWRcIik7XG4gICAgICAgICAgbW9kZWwudXVpZCA9IHRoaXMudXVpZDtcbiAgICAgICAgICB0aGlzLmZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWwsIHVybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIktlZXAgd2FpdGluZy4uLi51dWlkIG5vdCBmb3VuZC4uXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsOiBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCwgdXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IHRydWU7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5wb3N0PENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbD4odXJsLCBtb2RlbCkuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgaWYocmVzLmJwRW1wTGlzdC5sZW5ndGggPiAwKXtcbiAgICAgICAgICByZXMuYnBFbXBMaXN0LmZvckVhY2goZW1wID0+IHRoaXMuc2V0Q2hvaXNlTW9kZWxzKGVtcCkpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChyZXMpO1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VtcGxveWVyIExpc3QgZnJvbSBTZXJ2aWNlJywgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgbGV0IGxpc3QgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQobGlzdCk7XG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBcbiAgZGVsZXRlQnBFbXBsKGV2ZW50Om51bWJlcil7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkICcsIGV2ZW50KTtcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5zcGxpY2UoZXZlbnQsIDEpO1xuICB9XG5cbiAgZGVsZXRlRW1wbG95ZXIoZWxlbWVudEluZGV4KSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcbiAgICAvL3RoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShlbGVtZW50SW5kZXgsIDEpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgZGVsZXRlRW1wbG95ZXJCYXNlUGVyaW9kKGVsZW1lbnRJbmRleCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBlbGVtZW50SW5kZXgpO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0ud29ya0ZsYWcgPSBcIk5cIjtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmVtcERlbGV0ZWQgPSBcIllcIjtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWZ0ZXIgZGVsZXRlIGJhc2UgcGVyaW9kIGVtcGxveWVyIGxpc3QgaXMgPSAnLCB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlKTtcbiAgfVxuXG4gIGVkaXRFbXBsb3llcihlbXBsb3llcikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFZGl0IG1ldGhvZCBjYWxsZWQnLCBlbXBsb3llcik7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbmlzaChlbXBsb3llcikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdGaW5pc2ggRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcbiAgICBlbXBsb3llci53b3JrRmxhZyA9ICdZJztcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMubW9kZWxEaXNwbGF5LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgQmFzZVBlcmlvZCBFbXBsb3llciBjYWxsZWQgZm9yICcsIGVtcGxveWVyKTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5kZXggVG8gRWRpdCA9ICcsIHRoaXMuaW5kZXhUb0VkaXQpO1xuICB9XG5cbiAgb25Nb2RlbENhbmNlbChjYW5jZWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FuY2VsIE1ldGhvZCAgJywgY2FuY2VsKTtcbiAgICB0aGlzLmRpc3BsYXkgPSBjYW5jZWw7XG4gICAgdGhpcy5iYXNlUGVyaW9kZGlzcGxheSA9IGNhbmNlbDtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gZmFsc2U7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FmdGVyIHZhbHVlIGNoYW5nZSBvbiBlbXBsb3llciBncmlkICcsIHRoaXMuZGlzcGxheSk7XG4gIH1cblxuICBhZGRFbXBsb3llcihldmVudDogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZGQgRW1wbG95ZXIgY2FsbGVkIGZyb20gZ3JpZCAnLCBldmVudCwgJ2luZGV4VG9FZGl0JywgdGhpcy5pbmRleFRvRWRpdCwndGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcicsdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcik7XG4gICAgZXZlbnQuZW1wRGVsZXRlZCA9ICdOJztcbiAgICBpZiAodGhpcy5pbmRleFRvRWRpdCB8fCB0aGlzLmluZGV4VG9FZGl0ID09IDApIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgaWYgb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXG4gICAgICBsZXQgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XG4gICAgICBsZXQgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSBuZXcgRW1wbG95ZXJXYWdlc01vZGVsKCk7XG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyRGF0YTtcbiAgICAgICAgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llclByb3ZpZGVkV2FnZXM7XG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzEnXG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJQcm92aWRlZFdhZ2VzID0gZW1wUHJvdmlkZWRXYWdlTW9kZWw7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNldHRpbmcgdGhlIHZhbHVlIGFnYWluID0gICcsZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XG4gICAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xuICAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsnLScgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXsgXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XG4gICAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSArICcgJyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XG4gICAgICB9XG4gICAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llclR5cGUgPSBldmVudC5lbXBsb3llclR5cGU7XG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTE9ZXZlbnQuYWRkcmVzcz8uc3RyZWV0QWRkcmVzcztcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xuICAgICAgICBldmVudC5icEVtcGxveWVyRmxhZyA9ICcwJ1xuICAgICAgfVxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0gPSBldmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBlbHNlIG9mIGFkZCBlbXBsb3llciAtLSAnLGV2ZW50KVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XG4gICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcbiAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcbiAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmVtcGxveWVyTmFtZTtcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy0nICsoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfWVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBlbHNlIC0gbm8gYWRkcmVzcyBmb3IgdGhpcyBlbXBsb3llciB0eXBlXCIpO1xuICAgICAgfVxuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcbiAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llcklkPWV2ZW50LmVtcGxveWVySWQ7XG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xuICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xuICAgICAgaWYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzAnO1xuICAgICAgfVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0LnB1c2godGhpcy5jbGFpbWRldGFpbE1vZGVsKTtcbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XG4gIH1cblxuICByZW1vdmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gaW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gc2VsZWN0ZWRFbXBsb3llcjtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKCl7XG4gICAgdGhpcy5kZWxldGVFbXBsb3llckJhc2VQZXJpb2QodGhpcy5pbmRleFRvRWRpdCk7XG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgfVxuXG4gIHJlc3RvcmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgaW5kZXgpO1xuICAgIGxldCBjdXJyZW50V29ya0ZsYWdWYWx1ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZztcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0ud29ya0ZsYWcgPSBjdXJyZW50V29ya0ZsYWdWYWx1ZSA/IChjdXJyZW50V29ya0ZsYWdWYWx1ZSA9PSBcIk5cIiA/IFwiWVwiIDogXCJOXCIpIDogbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0uZW1wRGVsZXRlZCA9IFwiTlwiO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcbiAgfVxuICBzZXRDaG9pc2VNb2RlbHMoZW1wOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKTogdm9pZCB7XG4gICAgbGV0IHNlcFJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZSk7XG4gICAgaWYoc2VwUmVhc29uLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnJlYXNvblNlcGFyYXRpb24gPSBzZXBSZWFzb25bMF07XG4gICAgfVxuICAgIGxldCBkaXNjaGFyZ2VSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5kaXNjaGFyZ2VEZXRhaWw/LnZhbHVlKTtcbiAgICBpZihkaXNjaGFyZ2VSZWFzb24ubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuZGlzY2hhcmdlRGV0YWlsID0gZGlzY2hhcmdlUmVhc29uWzBdO1xuICAgIH1cbiAgICBsZXQgdm9sUXVpdCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC52b2xRdWl0RGV0YWlscz8udmFsdWUpO1xuICAgIGlmKHZvbFF1aXQubGVuZ3RoID4gMCl7XG4gICAgICBlbXAudm9sUXVpdERldGFpbHMgPSB2b2xRdWl0WzBdO1xuICAgIH1cbiAgICBsZXQgcGF5UmF0ZUZyZXF1ZW5jeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5wYXlSYXRlRnJlcXVlbmN5Py52YWx1ZSk7XG4gICAgaWYocGF5UmF0ZUZyZXF1ZW5jeS5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5wYXlSYXRlRnJlcXVlbmN5ID0gcGF5UmF0ZUZyZXF1ZW5jeVswXTtcbiAgICB9XG5cbiAgICBsZXQgY291bnRyeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy53b3JrQ291bnRyeU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuZmVkV29ya0NvdW50cnk/LnZhbHVlKTtcbiAgICBpZihjb3VudHJ5Lmxlbmd0aCA+IDApe1xuICAgICAgZW1wLmZlZFdvcmtDb3VudHJ5ID0gY291bnRyeVswXTtcbiAgICB9XG5cbiAgICBsZXQgc3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrU3RhdGU/LnZhbHVlKTtcbiAgICBpZihzdGF0ZS5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5mZWRXb3JrU3RhdGUgPSBzdGF0ZVswXTtcbiAgICB9XG5cbiAgICBsZXQgc2VydmljZUJyYW5jaCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnNlcnZpY2VCcmFuY2g/LnZhbHVlKTtcbiAgICBpZihzZXJ2aWNlQnJhbmNoLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnNlcnZpY2VCcmFuY2ggPSBzZXJ2aWNlQnJhbmNoWzBdO1xuICAgIH1cblxuICAgIGxldCB3b3JrU3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC53b3JrU3RhdGU/LnZhbHVlPy50cmltKCkpO1xuICAgIGVtcC53b3JrU3RhdGUgPSB3b3JrU3RhdGVbMF07XG5cbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYgKCFlLmlzRW1wbG95ZXJFZGl0ZWQpIHtcbiAgICAgICAgZS5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY291bnQgPSB0aGlzLmNvdW50ICsgMTtcbiAgICAgICAgaWYgKHRoaXMuY291bnQgPD0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgY3RybCA9IHRoaXMuZm9ybT8uZ2V0KCdwcmV2d29yaycpO1xuICAgICAgICAgIGlmICghY3RybCkgcmV0dXJuO1xuICAgICAgICAgIGNvbnN0IGhhc0Vycm9yID1cbiAgICAgICAgICAgICEhY3RybC5lcnJvcnM/LmJwRW1wbHJGbGFnICYmIChjdHJsLnRvdWNoZWQgfHwgY3RybC5kaXJ0eSk7XG5cbiAgICAgICAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmdyaWRUb3A/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTVweDtcIiAjZ3JpZFRvcD5cclxuPGlvbi1yb3c+XHJcbiAgPGlvbi1jb2w+ICAgIFxyXG4gICAgPGZhLWljb24gW2ljb25dPVwidXRpbC5pc1N0YXRlKCdNUycpID8gWydmYWwnLCAnZWRpdCddIDogWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInV0aWwuaXNTdGF0ZSgnTVMnKSA/ICgnaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmNvbmZpcm0ubXMnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sKSA6ICgnaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmNvbmZpcm0nIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sKVwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZGVsZXRlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmFkZCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGJyIGNsYXNzPVwibW9iaWxlLWFjdGlvbi12aWV3XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXV0aWwuaXNTdGF0ZSgnTVMnKVwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrO1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZWRpdCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPC9kaXY+XHJcbiAgICA8YnIgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNUycpXCIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5yZXN0b3JlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2lvbi1jb2w+XHJcbjwvaW9uLXJvdz5cclxuXHJcbjxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjb2xzXCIgW3ZhbHVlXT1cImNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdFwiIFtsb2FkaW5nXT1cInNob3dQcm9ncmVzc0JhclwiXHJcbiBbcm93SG92ZXJdPVwidHJ1ZVwiICpuZ0lmPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2VcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0cj5cclxuICAgICAgPHRoIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmVtcGxveWVyLm5hbWVcInx0cmFuc2xhdGV9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmpvYi50aXRsZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5wYXlcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZGF0ZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuc2VwLnJlYXNvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW1wbG95ZXIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgIDx0ciBjbGFzcz1cInVpLXNlbGVjdGFibGUtcm93XCIgW25nQ2xhc3NdPVwiZW1wbG95ZXIuZW1wRGVsZXRlZD09J1knID8gJ3N0cmlrZXRocm91Z2gnIDogbnVsbFwiICpuZ0lmPVwiZW1wbG95ZXIuZGlzcGxheVNlYXNvbmFsRW1wID09PSB0cnVlXCI+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUgIT0gbnVsbDsgZWxzZSB3b3JrU3RhdGVcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUudGV4dH19PGJyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjd29ya1N0YXRlPlxyXG4gICAgICAgIDx0ZCBbc3R5bGUuQ29sb3JdPVwiKCFlbXBsb3llci5pc0VtcGxveWVyRWRpdGVkICYmIGVtcGxveWVyLmlzRW1wbG95ZXJHcmlkU3VibWl0dGVkKSA/ICcjZWI0NDVhJzonJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJlbXBsb3llci5vc2FCcEVtcGxveWVyRmxhZyA9PT0gJzEnICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSA9PT0nUkVHJyAmJiBlbXBsb3llci53b3JrU3RhdGUgIT0gbnVsbDsgZWxzZSBub3RPc2FCcEFuZFJlZ0VtcGxveWVyXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuIGNsYXNzPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLndvcmtTdGF0ZS50ZXh0fX08YnI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90T3NhQnBBbmRSZWdFbXBsb3llcj5cclxuICAgICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAgICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCdcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fSA8YnI+XHJcbiAgICAgICAgPC9zcGFuPjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgY2xhc3M9XCJkaXNwbGF5TmFtZVRleHRcIiBbaW5uZXJIdG1sXT1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPiAgICAgICAgIFxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIFxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cIiFlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWUgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiICBjb2xzcGFuPVwiMlwiIGNsYXNzPVwiZGF0YUhlYWRpbmdzXCIgc3R5bGU9XCJ3aWR0aDoyMCU7XCIgPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5FbXBsb3llcjwvc3Bhbj48c3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCIgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgXHJcbiAgICAgICAgW2NvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnZGFuZ2VyJzonc3VjY2VzcydcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICBbY29sb3JdPVwiKCFlbXBsb3llci5pc0VtcGxveWVyRWRpdGVkICYmIGVtcGxveWVyLmlzRW1wbG95ZXJHcmlkU3VibWl0dGVkKSA/ICdkYW5nZXInOidzdWNjZXNzJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuQ29uZmlybUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiIFtjb2xvcl09XCIoIWVtcGxveWVyLmlzRW1wbG95ZXJFZGl0ZWQgJiYgZW1wbG95ZXIuaXNFbXBsb3llckdyaWRTdWJtaXR0ZWQpID8gJ2Rhbmdlcic6J3N1Y2Nlc3MnXCJcclxuICAgICAgICAgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiAhZW1wbG95ZXIucGF5UmF0ZSAmJiAhZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZmluaXNoKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQ29uZmlybSBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwidXRpbC5pc1N0YXRlKCdNUycpID8gWydmYWwnLCAnZWRpdCddIDogWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gW2lkXT1cIididG5EZWxldGVFbXBsb3llci0nICsgcm93SW5kZXhcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVFbXBsb3llcihyb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBbaWRdPVwiJ2J0blJlbW92ZUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQ9PSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVzdG9yZUVtcGxveW1lbnQoZW1wbG95ZXIsIHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVzdG9yZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPiAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj57e2VtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj57e2VtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+Sm9iIFRpdGxlPC9zcGFuPjwvdGQ+XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlICE9J01JTCcgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5wYXlSYXRlRnJlcXVlbmN5XCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlBheTwvc3Bhbj57e2VtcGxveWVyLnBheVJhdGUgfCBjdXJyZW5jeX19L3t7ZW1wbG95ZXIucGF5UmF0ZUZyZXF1ZW5jeS50ZXh0fX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGUgPT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5QYXk8L3NwYW4+PC90ZD5cclxuXHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nUkVHJyAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW5kRGF0ZVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGUgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J0ZFRCcgJiYgZW1wbG95ZXIuc3RhcnREYXRlRmVkICYmIGVtcGxveWVyLmVuZERhdGVGZWRcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U3RhcnQgYW5kIEVuZDwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlRmVkIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnICYmIGVtcGxveWVyLnN0YXJ0RGF0ZU1pbCAmJiBlbXBsb3llci5lbmREYXRlTWlsXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlN0YXJ0IGFuZCBFbmQ8L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZU1pbCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJyAmJiBlbXBsb3llci5yZWFzb25TZXBhcmF0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlNlcGFyYXRpb24gUmVhc29uPC9zcGFuPnt7ZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvbi50ZXh0fX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlNlcGFyYXRpb24gUmVhc29uPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkIGNvbHNwYW49XCI0XCI+PC90ZD5cclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0YWJsZT5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBzdHlsZT1cIndpZHRoOiA0MCU7XCIgY2xhc3M9XCJhY3Rpb24tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LmZvb3Rlci5sYWJlbCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cImFkZC1lbXBsb3llclwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwiYWRkTmV3RW1wRGV0YWlscygpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkFkZCBlbXBsb3llclwiIFtpZF09XCInYnRuQWRkRW1wbG95ZXInXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj4mbmJzcDs8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9wLXRhYmxlPlxyXG4gIDxhcHAtYWRkLWVtcGxveWVyICpuZ0lmPVwiZGlzcGxheVwiIChzdWNjZXNzKT1cImFkZEVtcGxveWVyKCRldmVudClcIiAgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCIgXHJcbiAgICAoYmFzZVBlcmlvZEluZGV4KT1cImRlbGV0ZUJwRW1wbCgkZXZlbnQpXCIgW2lzQmFzZVBlcmlvZEVtcGxveWVyXT1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgW2lzTmV3Q2xhaW1dPVwiaXNOZXdDbGFpbVwiIFxyXG4gICAgKG1vZGVsQ2FuY2VsKT1cIm9uTW9kZWxDYW5jZWwoJGV2ZW50KVwiIFtkb2JdPVwiY2xhaW1hbnREb2JcIj5cclxuICA8L2FwcC1hZGQtZW1wbG95ZXI+XHJcblxyXG4gIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93Q29uZmlybVBvcHVwXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiAqbmdJZj1cInNlbGVjdGVkRW1wbG95ZXJcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkaW5nXCI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5oZWFkaW5nJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAge3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lICE9IG51bGxcIj5cclxuICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZGJhXCJ8dHJhbnNsYXRlfX0ge3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS50cmFkZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgPGJyPlxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxpb24tbGFiZWw+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPjwvZGl2PjwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZmFpbHVyZS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIlsnaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5kaWRudC53b3JrLmxhYmVsJyB8IHRyYW5zbGF0ZV1cIj48L2Rpdj5cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwicmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnJlbW92ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kaWFsb2c+XHJcbjwvZGl2PiJdfQ==