@uiapplib/ngx-ui-web-lib 0.0.39 → 0.0.40

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.
@@ -23,25 +23,25 @@ import * as i16 from "primeng/timeline";
23
23
  import * as i17 from "../questionnaire/multi-questionnaire/multi-questionnaire.component";
24
24
  import * as i18 from "../proof-of-anything/proof-of-anything.component";
25
25
  function HistoryPageComponent_app_multi_questionnaire_0_Template(rf, ctx) { if (rf & 1) {
26
- const _r9 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "app-multi-questionnaire", 16);
28
- i0.ɵɵlistener("modelCancel", function HistoryPageComponent_app_multi_questionnaire_0_Template_app_multi_questionnaire_modelCancel_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.closeQe()); })("onComplete", function HistoryPageComponent_app_multi_questionnaire_0_Template_app_multi_questionnaire_onComplete_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.quSuccess()); });
26
+ const _r10 = i0.ɵɵgetCurrentView();
27
+ i0.ɵɵelementStart(0, "app-multi-questionnaire", 12);
28
+ i0.ɵɵlistener("modelCancel", function HistoryPageComponent_app_multi_questionnaire_0_Template_app_multi_questionnaire_modelCancel_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.closeQe()); })("onComplete", function HistoryPageComponent_app_multi_questionnaire_0_Template_app_multi_questionnaire_onComplete_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.quSuccess()); });
29
29
  i0.ɵɵelementEnd();
30
30
  } if (rf & 2) {
31
31
  const ctx_r0 = i0.ɵɵnextContext();
32
32
  i0.ɵɵproperty("qeQueryModels", ctx_r0.qeQueryModels);
33
33
  } }
34
34
  function HistoryPageComponent_app_proof_of_anything_1_Template(rf, ctx) { if (rf & 1) {
35
- const _r12 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "app-proof-of-anything", 17);
37
- i0.ɵɵlistener("cancel", function HistoryPageComponent_app_proof_of_anything_1_Template_app_proof_of_anything_cancel_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.closeUploadPopup()); })("success", function HistoryPageComponent_app_proof_of_anything_1_Template_app_proof_of_anything_success_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.uploadPopupDone()); });
35
+ const _r13 = i0.ɵɵgetCurrentView();
36
+ i0.ɵɵelementStart(0, "app-proof-of-anything", 13);
37
+ i0.ɵɵlistener("cancel", function HistoryPageComponent_app_proof_of_anything_1_Template_app_proof_of_anything_cancel_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.closeUploadPopup()); })("success", function HistoryPageComponent_app_proof_of_anything_1_Template_app_proof_of_anything_success_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.uploadPopupDone()); });
38
38
  i0.ɵɵelementEnd();
39
39
  } if (rf & 2) {
40
40
  const ctx_r1 = i0.ɵɵnextContext();
41
41
  i0.ɵɵproperty("uploadTypeId", ctx_r1.uploadTypeId)("employerDataModel", ctx_r1.employerDataModel)("data", ctx_r1.dataModel);
42
42
  } }
43
43
  function HistoryPageComponent_app_dashboard_help_2_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelement(0, "app-dashboard-help", 18);
44
+ i0.ɵɵelement(0, "app-dashboard-help", 14);
45
45
  } if (rf & 2) {
46
46
  i0.ɵɵproperty("activeIndex", 0);
47
47
  } }
@@ -50,39 +50,39 @@ function HistoryPageComponent_div_12_ng_template_5_span_1_Template(rf, ctx) { if
50
50
  i0.ɵɵtext(1);
51
51
  i0.ɵɵelementEnd();
52
52
  } if (rf & 2) {
53
- const item_r15 = i0.ɵɵnextContext().$implicit;
53
+ const item_r16 = i0.ɵɵnextContext().$implicit;
54
54
  i0.ɵɵadvance(1);
55
- i0.ɵɵtextInterpolate(item_r15.desc);
55
+ i0.ɵɵtextInterpolate(item_r16.desc);
56
56
  } }
57
57
  const _c0 = a1 => ["far", a1];
58
58
  function HistoryPageComponent_div_12_ng_template_5_fa_icon_2_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelement(0, "fa-icon", 26);
59
+ i0.ɵɵelement(0, "fa-icon", 22);
60
60
  } if (rf & 2) {
61
- const item_r15 = i0.ɵɵnextContext().$implicit;
62
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(1, _c0, item_r15.icon));
61
+ const item_r16 = i0.ɵɵnextContext().$implicit;
62
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(1, _c0, item_r16.icon));
63
63
  } }
64
64
  function HistoryPageComponent_div_12_ng_template_5_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "div", 23);
66
- i0.ɵɵtemplate(1, HistoryPageComponent_div_12_ng_template_5_span_1_Template, 2, 1, "span", 24)(2, HistoryPageComponent_div_12_ng_template_5_fa_icon_2_Template, 1, 3, "fa-icon", 25);
65
+ i0.ɵɵelementStart(0, "div", 19);
66
+ i0.ɵɵtemplate(1, HistoryPageComponent_div_12_ng_template_5_span_1_Template, 2, 1, "span", 20)(2, HistoryPageComponent_div_12_ng_template_5_fa_icon_2_Template, 1, 3, "fa-icon", 21);
67
67
  i0.ɵɵelementEnd();
68
68
  } if (rf & 2) {
69
- const item_r15 = ctx.$implicit;
70
- i0.ɵɵproperty("pTooltip", item_r15.desc);
71
- i0.ɵɵattribute("aria-label", item_r15.desc);
69
+ const item_r16 = ctx.$implicit;
70
+ i0.ɵɵproperty("pTooltip", item_r16.desc);
71
+ i0.ɵɵattribute("aria-label", item_r16.desc);
72
72
  i0.ɵɵadvance(1);
73
- i0.ɵɵproperty("ngIf", !item_r15.icon);
73
+ i0.ɵɵproperty("ngIf", !item_r16.icon);
74
74
  i0.ɵɵadvance(1);
75
- i0.ɵɵproperty("ngIf", item_r15.icon);
75
+ i0.ɵɵproperty("ngIf", item_r16.icon);
76
76
  } }
77
77
  function HistoryPageComponent_div_12_Template(rf, ctx) { if (rf & 1) {
78
- const _r21 = i0.ɵɵgetCurrentView();
79
- i0.ɵɵelementStart(0, "div", 19)(1, "label", 20);
78
+ const _r22 = i0.ɵɵgetCurrentView();
79
+ i0.ɵɵelementStart(0, "div", 15)(1, "label", 16);
80
80
  i0.ɵɵtext(2);
81
81
  i0.ɵɵelementEnd();
82
82
  i0.ɵɵelement(3, "br");
83
- i0.ɵɵelementStart(4, "p-selectButton", 21);
84
- i0.ɵɵlistener("ngModelChange", function HistoryPageComponent_div_12_Template_p_selectButton_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.time = $event); })("onChange", function HistoryPageComponent_div_12_Template_p_selectButton_onChange_4_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.handleChange($event)); });
85
- i0.ɵɵtemplate(5, HistoryPageComponent_div_12_ng_template_5_Template, 3, 4, "ng-template", 22);
83
+ i0.ɵɵelementStart(4, "p-selectButton", 17);
84
+ i0.ɵɵlistener("ngModelChange", function HistoryPageComponent_div_12_Template_p_selectButton_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.time = $event); })("onChange", function HistoryPageComponent_div_12_Template_p_selectButton_onChange_4_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.handleChange($event)); });
85
+ i0.ɵɵtemplate(5, HistoryPageComponent_div_12_ng_template_5_Template, 3, 4, "ng-template", 18);
86
86
  i0.ɵɵelementEnd()();
87
87
  } if (rf & 2) {
88
88
  const ctx_r3 = i0.ɵɵnextContext();
@@ -96,38 +96,38 @@ function HistoryPageComponent_div_14_ng_template_5_span_1_Template(rf, ctx) { if
96
96
  i0.ɵɵtext(1);
97
97
  i0.ɵɵelementEnd();
98
98
  } if (rf & 2) {
99
- const item_r24 = i0.ɵɵnextContext().$implicit;
99
+ const item_r25 = i0.ɵɵnextContext().$implicit;
100
100
  i0.ɵɵadvance(1);
101
- i0.ɵɵtextInterpolate(item_r24.altDesc);
101
+ i0.ɵɵtextInterpolate(item_r25.altDesc);
102
102
  } }
103
103
  function HistoryPageComponent_div_14_ng_template_5_fa_icon_2_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelement(0, "fa-icon", 26);
104
+ i0.ɵɵelement(0, "fa-icon", 22);
105
105
  } if (rf & 2) {
106
- const item_r24 = i0.ɵɵnextContext().$implicit;
107
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(1, _c0, item_r24.icon));
106
+ const item_r25 = i0.ɵɵnextContext().$implicit;
107
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(1, _c0, item_r25.icon));
108
108
  } }
109
109
  function HistoryPageComponent_div_14_ng_template_5_Template(rf, ctx) { if (rf & 1) {
110
- i0.ɵɵelementStart(0, "div", 23);
111
- i0.ɵɵtemplate(1, HistoryPageComponent_div_14_ng_template_5_span_1_Template, 2, 1, "span", 24)(2, HistoryPageComponent_div_14_ng_template_5_fa_icon_2_Template, 1, 3, "fa-icon", 25);
110
+ i0.ɵɵelementStart(0, "div", 19);
111
+ i0.ɵɵtemplate(1, HistoryPageComponent_div_14_ng_template_5_span_1_Template, 2, 1, "span", 20)(2, HistoryPageComponent_div_14_ng_template_5_fa_icon_2_Template, 1, 3, "fa-icon", 21);
112
112
  i0.ɵɵelementEnd();
113
113
  } if (rf & 2) {
114
- const item_r24 = ctx.$implicit;
115
- i0.ɵɵproperty("pTooltip", item_r24.desc);
116
- i0.ɵɵattribute("aria-label", item_r24.desc);
114
+ const item_r25 = ctx.$implicit;
115
+ i0.ɵɵproperty("pTooltip", item_r25.desc);
116
+ i0.ɵɵattribute("aria-label", item_r25.desc);
117
117
  i0.ɵɵadvance(1);
118
- i0.ɵɵproperty("ngIf", !item_r24.icon);
118
+ i0.ɵɵproperty("ngIf", !item_r25.icon);
119
119
  i0.ɵɵadvance(1);
120
- i0.ɵɵproperty("ngIf", item_r24.icon);
120
+ i0.ɵɵproperty("ngIf", item_r25.icon);
121
121
  } }
122
122
  function HistoryPageComponent_div_14_Template(rf, ctx) { if (rf & 1) {
123
- const _r30 = i0.ɵɵgetCurrentView();
124
- i0.ɵɵelementStart(0, "div", 27)(1, "label");
123
+ const _r31 = i0.ɵɵgetCurrentView();
124
+ i0.ɵɵelementStart(0, "div", 23)(1, "label");
125
125
  i0.ɵɵtext(2);
126
126
  i0.ɵɵelementEnd();
127
127
  i0.ɵɵelement(3, "br");
128
- i0.ɵɵelementStart(4, "p-selectButton", 28);
129
- i0.ɵɵlistener("ngModelChange", function HistoryPageComponent_div_14_Template_p_selectButton_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r29.filter = $event); })("onChange", function HistoryPageComponent_div_14_Template_p_selectButton_onChange_4_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.handleChange($event)); });
130
- i0.ɵɵtemplate(5, HistoryPageComponent_div_14_ng_template_5_Template, 3, 4, "ng-template", 22);
128
+ i0.ɵɵelementStart(4, "p-selectButton", 24);
129
+ i0.ɵɵlistener("ngModelChange", function HistoryPageComponent_div_14_Template_p_selectButton_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.filter = $event); })("onChange", function HistoryPageComponent_div_14_Template_p_selectButton_onChange_4_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.handleChange($event)); });
130
+ i0.ɵɵtemplate(5, HistoryPageComponent_div_14_ng_template_5_Template, 3, 4, "ng-template", 18);
131
131
  i0.ɵɵelementEnd()();
132
132
  } if (rf & 2) {
133
133
  const ctx_r4 = i0.ɵɵnextContext();
@@ -138,115 +138,115 @@ function HistoryPageComponent_div_14_Template(rf, ctx) { if (rf & 1) {
138
138
  } }
139
139
  function HistoryPageComponent_p_timeline_16_ng_template_1_Template(rf, ctx) { if (rf & 1) {
140
140
  i0.ɵɵelementStart(0, "span");
141
- i0.ɵɵelement(1, "fa-icon", 32);
141
+ i0.ɵɵelement(1, "fa-icon", 28);
142
142
  i0.ɵɵelementEnd();
143
143
  } if (rf & 2) {
144
- const hist_r34 = ctx.$implicit;
145
- i0.ɵɵstyleProp("color", hist_r34.color);
144
+ const hist_r35 = ctx.$implicit;
145
+ i0.ɵɵstyleProp("color", hist_r35.color);
146
146
  i0.ɵɵadvance(1);
147
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0, hist_r34.icon));
147
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0, hist_r35.icon));
148
148
  } }
149
149
  function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_span_8_Template(rf, ctx) { if (rf & 1) {
150
150
  i0.ɵɵelementStart(0, "span");
151
- i0.ɵɵelement(1, "fa-icon", 32);
151
+ i0.ɵɵelement(1, "fa-icon", 28);
152
152
  i0.ɵɵelementEnd();
153
153
  } if (rf & 2) {
154
- const history_r37 = i0.ɵɵnextContext(2).$implicit;
155
- const ctx_r41 = i0.ɵɵnextContext(3);
156
- i0.ɵɵstyleProp("color", history_r37.color);
154
+ const history_r38 = i0.ɵɵnextContext(2).$implicit;
155
+ const ctx_r42 = i0.ɵɵnextContext(3);
156
+ i0.ɵɵstyleProp("color", history_r38.color);
157
157
  i0.ɵɵadvance(1);
158
- i0.ɵɵproperty("icon", ctx_r41.getIcon(history_r37));
158
+ i0.ɵɵproperty("icon", ctx_r42.getIcon(history_r38));
159
159
  } }
160
160
  function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
161
- i0.ɵɵelementStart(0, "ion-row", 38)(1, "ion-col", 39)(2, "span", 40);
161
+ i0.ɵɵelementStart(0, "ion-row", 34)(1, "ion-col", 35)(2, "span", 36);
162
162
  i0.ɵɵtext(3);
163
163
  i0.ɵɵelementEnd()();
164
- i0.ɵɵelementStart(4, "ion-col", 41)(5, "span", 40);
164
+ i0.ɵɵelementStart(4, "ion-col", 37)(5, "span", 36);
165
165
  i0.ɵɵtext(6);
166
166
  i0.ɵɵelementEnd()();
167
- i0.ɵɵelementStart(7, "ion-col", 42);
168
- i0.ɵɵtemplate(8, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_span_8_Template, 2, 3, "span", 43);
167
+ i0.ɵɵelementStart(7, "ion-col", 38);
168
+ i0.ɵɵtemplate(8, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_span_8_Template, 2, 3, "span", 39);
169
169
  i0.ɵɵelementEnd()();
170
170
  } if (rf & 2) {
171
- const history_r37 = i0.ɵɵnextContext().$implicit;
172
- const ctx_r39 = i0.ɵɵnextContext(3);
171
+ const history_r38 = i0.ɵɵnextContext().$implicit;
172
+ const ctx_r40 = i0.ɵɵnextContext(3);
173
173
  i0.ɵɵadvance(2);
174
- i0.ɵɵstyleProp("color", history_r37.color);
174
+ i0.ɵɵstyleProp("color", history_r38.color);
175
175
  i0.ɵɵadvance(1);
176
- i0.ɵɵtextInterpolate(history_r37.eventDate);
176
+ i0.ɵɵtextInterpolate(history_r38.eventDate);
177
177
  i0.ɵɵadvance(2);
178
- i0.ɵɵstyleProp("color", history_r37.color);
178
+ i0.ɵɵstyleProp("color", history_r38.color);
179
179
  i0.ɵɵadvance(1);
180
- i0.ɵɵtextInterpolate1(" ", history_r37.title, " ");
180
+ i0.ɵɵtextInterpolate1(" ", history_r38.title, " ");
181
181
  i0.ɵɵadvance(2);
182
- i0.ɵɵproperty("ngIf", ctx_r39.getIcon(history_r37));
182
+ i0.ɵɵproperty("ngIf", ctx_r40.getIcon(history_r38));
183
183
  } }
184
184
  function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_div_1_Template(rf, ctx) { if (rf & 1) {
185
- const _r47 = i0.ɵɵgetCurrentView();
185
+ const _r48 = i0.ɵɵgetCurrentView();
186
186
  i0.ɵɵelementStart(0, "div");
187
187
  i0.ɵɵelement(1, "br")(2, "br");
188
- i0.ɵɵelementStart(3, "div", 45)(4, "ion-button", 46);
189
- i0.ɵɵlistener("click", function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_div_1_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r47); const history_r37 = i0.ɵɵnextContext(2).$implicit; const ctx_r45 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r45.open(history_r37)); });
188
+ i0.ɵɵelementStart(3, "div", 41)(4, "ion-button", 42);
189
+ i0.ɵɵlistener("click", function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_div_1_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r48); const history_r38 = i0.ɵɵnextContext(2).$implicit; const ctx_r46 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r46.open(history_r38)); });
190
190
  i0.ɵɵtext(5);
191
191
  i0.ɵɵelementEnd()()();
192
192
  } if (rf & 2) {
193
- const history_r37 = i0.ɵɵnextContext(2).$implicit;
193
+ const history_r38 = i0.ɵɵnextContext(2).$implicit;
194
194
  i0.ɵɵadvance(4);
195
- i0.ɵɵstyleMapInterpolate2("--color: ", history_r37.button.color, "; --border-color: ", history_r37.button.color, "; --border-width: 2px");
196
- i0.ɵɵattribute("aria-label", "go to" + history_r37.button.buttonText);
195
+ i0.ɵɵstyleMapInterpolate2("--color: ", history_r38.button.color, "; --border-color: ", history_r38.button.color, "; --border-width: 2px");
196
+ i0.ɵɵattribute("aria-label", "go to" + history_r38.button.buttonText);
197
197
  i0.ɵɵadvance(1);
198
- i0.ɵɵtextInterpolate1("", history_r37.button.buttonText, " ");
198
+ i0.ɵɵtextInterpolate1("", history_r38.button.buttonText, " ");
199
199
  } }
200
200
  function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
201
- i0.ɵɵelement(0, "span", 44);
202
- i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_div_1_Template, 6, 6, "div", 24);
201
+ i0.ɵɵelement(0, "span", 40);
202
+ i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_div_1_Template, 6, 6, "div", 20);
203
203
  } if (rf & 2) {
204
- const history_r37 = i0.ɵɵnextContext().$implicit;
205
- i0.ɵɵproperty("innerHtml", history_r37.desc, i0.ɵɵsanitizeHtml);
204
+ const history_r38 = i0.ɵɵnextContext().$implicit;
205
+ i0.ɵɵproperty("innerHtml", history_r38.desc, i0.ɵɵsanitizeHtml);
206
206
  i0.ɵɵadvance(1);
207
- i0.ɵɵproperty("ngIf", history_r37.button != null);
207
+ i0.ɵɵproperty("ngIf", history_r38.button != null);
208
208
  } }
209
209
  function HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_Template(rf, ctx) { if (rf & 1) {
210
- i0.ɵɵelementStart(0, "p-accordionTab", 36);
211
- i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_Template, 9, 7, "ng-template", 37)(2, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_Template, 2, 2, "ng-template", 31);
210
+ i0.ɵɵelementStart(0, "p-accordionTab", 32);
211
+ i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_1_Template, 9, 7, "ng-template", 33)(2, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_ng_template_2_Template, 2, 2, "ng-template", 27);
212
212
  i0.ɵɵelementEnd();
213
213
  } if (rf & 2) {
214
- const history_r37 = ctx.$implicit;
215
- const i_r38 = ctx.index;
216
- const ctx_r36 = i0.ɵɵnextContext(3);
217
- i0.ɵɵproperty("selected", ctx_r36.isValueSelected(history_r37, i_r38));
214
+ const history_r38 = ctx.$implicit;
215
+ const i_r39 = ctx.index;
216
+ const ctx_r37 = i0.ɵɵnextContext(3);
217
+ i0.ɵɵproperty("selected", ctx_r37.isValueSelected(history_r38, i_r39));
218
218
  } }
219
219
  function HistoryPageComponent_p_timeline_16_ng_template_2_Template(rf, ctx) { if (rf & 1) {
220
- i0.ɵɵelementStart(0, "h1", 33);
220
+ i0.ɵɵelementStart(0, "h1", 29);
221
221
  i0.ɵɵtext(1);
222
222
  i0.ɵɵelementEnd();
223
- i0.ɵɵelementStart(2, "p-accordion", 34);
224
- i0.ɵɵtemplate(3, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_Template, 3, 1, "p-accordionTab", 35);
223
+ i0.ɵɵelementStart(2, "p-accordion", 30);
224
+ i0.ɵɵtemplate(3, HistoryPageComponent_p_timeline_16_ng_template_2_p_accordionTab_3_Template, 3, 1, "p-accordionTab", 31);
225
225
  i0.ɵɵelementEnd();
226
226
  i0.ɵɵelement(4, "br");
227
227
  } if (rf & 2) {
228
- const hist_r35 = ctx.$implicit;
228
+ const hist_r36 = ctx.$implicit;
229
229
  i0.ɵɵadvance(1);
230
- i0.ɵɵtextInterpolate(hist_r35.year);
230
+ i0.ɵɵtextInterpolate(hist_r36.year);
231
231
  i0.ɵɵadvance(2);
232
- i0.ɵɵproperty("ngForOf", hist_r35.history);
232
+ i0.ɵɵproperty("ngForOf", hist_r36.history);
233
233
  } }
234
234
  function HistoryPageComponent_p_timeline_16_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementStart(0, "p-timeline", 29);
236
- i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_1_Template, 2, 5, "ng-template", 30)(2, HistoryPageComponent_p_timeline_16_ng_template_2_Template, 5, 2, "ng-template", 31);
235
+ i0.ɵɵelementStart(0, "p-timeline", 25);
236
+ i0.ɵɵtemplate(1, HistoryPageComponent_p_timeline_16_ng_template_1_Template, 2, 5, "ng-template", 26)(2, HistoryPageComponent_p_timeline_16_ng_template_2_Template, 5, 2, "ng-template", 27);
237
237
  i0.ɵɵelementEnd();
238
238
  } if (rf & 2) {
239
239
  const ctx_r5 = i0.ɵɵnextContext();
240
240
  i0.ɵɵproperty("value", ctx_r5.filteredHistories);
241
241
  } }
242
242
  function HistoryPageComponent_div_17_Template(rf, ctx) { if (rf & 1) {
243
- i0.ɵɵelementStart(0, "div", 47);
244
- i0.ɵɵelement(1, "ion-spinner", 48);
243
+ i0.ɵɵelementStart(0, "div", 43);
244
+ i0.ɵɵelement(1, "ion-spinner", 44);
245
245
  i0.ɵɵelementEnd();
246
246
  } }
247
247
  function HistoryPageComponent_div_18_Template(rf, ctx) { if (rf & 1) {
248
- i0.ɵɵelementStart(0, "div", 49);
249
- i0.ɵɵelement(1, "fa-icon", 50);
248
+ i0.ɵɵelementStart(0, "div", 45);
249
+ i0.ɵɵelement(1, "fa-icon", 46);
250
250
  i0.ɵɵelementStart(2, "p");
251
251
  i0.ɵɵtext(3);
252
252
  i0.ɵɵpipe(4, "translate");
@@ -259,6 +259,22 @@ function HistoryPageComponent_div_18_Template(rf, ctx) { if (rf & 1) {
259
259
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, "No history present."));
260
260
  } }
261
261
  const _c1 = () => ["fas", "external-link-alt"];
262
+ function HistoryPageComponent_div_19_Template(rf, ctx) { if (rf & 1) {
263
+ const _r52 = i0.ɵɵgetCurrentView();
264
+ i0.ɵɵelementStart(0, "div", 47)(1, "div", 48)(2, "span", 49)(3, "strong");
265
+ i0.ɵɵtext(4);
266
+ i0.ɵɵpipe(5, "translate");
267
+ i0.ɵɵelementEnd()();
268
+ i0.ɵɵelementStart(6, "ion-button", 50);
269
+ i0.ɵɵlistener("click", function HistoryPageComponent_div_19_Template_ion_button_click_6_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r51.openOldRecords()); });
270
+ i0.ɵɵelement(7, "fa-icon", 51);
271
+ i0.ɵɵelementEnd()()();
272
+ } if (rf & 2) {
273
+ i0.ɵɵadvance(4);
274
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 2, "To view your claim summary and weekly pay status click here"));
275
+ i0.ɵɵadvance(3);
276
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(4, _c1));
277
+ } }
262
278
  export class HistoryPageComponent {
263
279
  constructor(es, hs, util, nav, ls, translate, logger, activatedRoute) {
264
280
  this.es = es;
@@ -550,7 +566,7 @@ export class HistoryPageComponent {
550
566
  }
551
567
  }
552
568
  static { this.ɵfac = function HistoryPageComponent_Factory(t) { return new (t || HistoryPageComponent)(i0.ɵɵdirectiveInject(i1.EventService), i0.ɵɵdirectiveInject(i2.HelpService), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.LoginService), i0.ɵɵdirectiveInject(i6.TranslateService), i0.ɵɵdirectiveInject(i7.LoggerService), i0.ɵɵdirectiveInject(i8.ActivatedRoute)); }; }
553
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HistoryPageComponent, selectors: [["app-history-page"]], decls: 28, vars: 13, consts: [[3, "qeQueryModels", "modelCancel", "onComplete", 4, "ngIf"], [3, "uploadTypeId", "employerDataModel", "data", "cancel", "success", 4, "ngIf"], [3, "activeIndex", 4, "ngIf"], ["size", "12", "sizeXl", "8", "sizeLg", "8", "sizeMd", "10", "offsetXl", "2", "offsetLg", "2", "offsetMd", "1"], ["size", "3"], ["class", "ion-text-left field", 4, "ngIf"], ["size", "9"], ["class", "ion-text-right field", 4, "ngIf"], [3, "value", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-padding-top ion-text-center app-accordian-body", 4, "ngIf"], [2, "padding-left", "5%"], [1, "horizontal-align"], [1, "app-accordian-body"], ["aria-label", "view old records", "fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "external-link-icon", 3, "icon"], [3, "qeQueryModels", "modelCancel", "onComplete"], [3, "uploadTypeId", "employerDataModel", "data", "cancel", "success"], [3, "activeIndex"], [1, "ion-text-left", "field"], ["for", "timeline", "id", "lblTimeline"], ["optionLabel", "desc", 3, "options", "ngModel", "ariaLabelledBy", "ngModelChange", "onChange"], ["pTemplate", ""], ["tooltipPosition", "bottom", "tabindex", "0", "role", "note", 3, "pTooltip"], [4, "ngIf"], [3, "icon", 4, "ngIf"], [3, "icon"], [1, "ion-text-right", "field"], ["optionLabel", "icon", 3, "options", "ngModel", "ngModelChange", "onChange"], [3, "value"], ["pTemplate", "marker"], ["pTemplate", "content"], [1, "custom-marker", 3, "icon"], [1, "app-accordian-heading", 2, "margin-top", "0px", "font-weight", "bold"], ["expandIcon", "pi pi-fw pi-chevron-up", "collapseIcon", "pi pi-fw pi-chevron-up"], [3, "selected", 4, "ngFor", "ngForOf"], [3, "selected"], ["pTemplate", "header"], [2, "width", "-webkit-fill-available"], ["size", "12", "sizeXl", "3", "sizeLg", "3", "sizeMd", "3", 1, "ion-text-left"], [1, "app-accordian-heading"], ["size", "11", "sizeXl", "8", "sizeLg", "8", "sizeMd", "8", 1, "app-text-align"], ["size", "1", 1, "ion-text-center"], [3, "color", 4, "ngIf"], [1, "app-accordian-body", 3, "innerHtml"], [1, "ion-text-right"], ["fill", "outline", "shape", "round", 1, "small-button", 3, "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-padding-top", "ion-text-center", "app-accordian-body"], [1, "large-icon", 3, "icon"]], template: function HistoryPageComponent_Template(rf, ctx) { if (rf & 1) {
569
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HistoryPageComponent, selectors: [["app-history-page"]], decls: 21, vars: 9, consts: [[3, "qeQueryModels", "modelCancel", "onComplete", 4, "ngIf"], [3, "uploadTypeId", "employerDataModel", "data", "cancel", "success", 4, "ngIf"], [3, "activeIndex", 4, "ngIf"], ["size", "12", "sizeXl", "8", "sizeLg", "8", "sizeMd", "10", "offsetXl", "2", "offsetLg", "2", "offsetMd", "1"], ["size", "3"], ["class", "ion-text-left field", 4, "ngIf"], ["size", "9"], ["class", "ion-text-right field", 4, "ngIf"], [3, "value", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-padding-top ion-text-center app-accordian-body", 4, "ngIf"], ["style", "padding-left: 5%;", 4, "ngIf"], [3, "qeQueryModels", "modelCancel", "onComplete"], [3, "uploadTypeId", "employerDataModel", "data", "cancel", "success"], [3, "activeIndex"], [1, "ion-text-left", "field"], ["for", "timeline", "id", "lblTimeline"], ["optionLabel", "desc", 3, "options", "ngModel", "ariaLabelledBy", "ngModelChange", "onChange"], ["pTemplate", ""], ["tooltipPosition", "bottom", "tabindex", "0", "role", "note", 3, "pTooltip"], [4, "ngIf"], [3, "icon", 4, "ngIf"], [3, "icon"], [1, "ion-text-right", "field"], ["optionLabel", "icon", 3, "options", "ngModel", "ngModelChange", "onChange"], [3, "value"], ["pTemplate", "marker"], ["pTemplate", "content"], [1, "custom-marker", 3, "icon"], [1, "app-accordian-heading", 2, "margin-top", "0px", "font-weight", "bold"], ["expandIcon", "pi pi-fw pi-chevron-up", "collapseIcon", "pi pi-fw pi-chevron-up"], [3, "selected", 4, "ngFor", "ngForOf"], [3, "selected"], ["pTemplate", "header"], [2, "width", "-webkit-fill-available"], ["size", "12", "sizeXl", "3", "sizeLg", "3", "sizeMd", "3", 1, "ion-text-left"], [1, "app-accordian-heading"], ["size", "11", "sizeXl", "8", "sizeLg", "8", "sizeMd", "8", 1, "app-text-align"], ["size", "1", 1, "ion-text-center"], [3, "color", 4, "ngIf"], [1, "app-accordian-body", 3, "innerHtml"], [1, "ion-text-right"], ["fill", "outline", "shape", "round", 1, "small-button", 3, "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-padding-top", "ion-text-center", "app-accordian-body"], [1, "large-icon", 3, "icon"], [2, "padding-left", "5%"], [1, "horizontal-align"], [1, "app-accordian-body"], ["aria-label", "view old records", "fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "external-link-icon", 3, "icon"]], template: function HistoryPageComponent_Template(rf, ctx) { if (rf & 1) {
554
570
  i0.ɵɵtemplate(0, HistoryPageComponent_app_multi_questionnaire_0_Template, 1, 1, "app-multi-questionnaire", 0)(1, HistoryPageComponent_app_proof_of_anything_1_Template, 1, 3, "app-proof-of-anything", 1)(2, HistoryPageComponent_app_dashboard_help_2_Template, 1, 1, "app-dashboard-help", 2);
555
571
  i0.ɵɵelementStart(3, "ion-grid")(4, "ion-row")(5, "ion-col", 3)(6, "h1");
556
572
  i0.ɵɵtext(7, "Your unemployment history");
@@ -562,16 +578,8 @@ export class HistoryPageComponent {
562
578
  i0.ɵɵtemplate(14, HistoryPageComponent_div_14_Template, 6, 3, "div", 7);
563
579
  i0.ɵɵelementEnd()();
564
580
  i0.ɵɵelement(15, "br");
565
- i0.ɵɵtemplate(16, HistoryPageComponent_p_timeline_16_Template, 3, 1, "p-timeline", 8)(17, HistoryPageComponent_div_17_Template, 2, 0, "div", 9)(18, HistoryPageComponent_div_18_Template, 5, 6, "div", 10);
566
- i0.ɵɵelementStart(19, "div", 11)(20, "div", 12)(21, "span", 13)(22, "strong");
567
- i0.ɵɵtext(23);
568
- i0.ɵɵpipe(24, "translate");
569
- i0.ɵɵelementEnd()();
570
- i0.ɵɵelementStart(25, "ion-button", 14);
571
- i0.ɵɵlistener("click", function HistoryPageComponent_Template_ion_button_click_25_listener() { return ctx.openOldRecords(); });
572
- i0.ɵɵelement(26, "fa-icon", 15);
573
- i0.ɵɵelementEnd()()();
574
- i0.ɵɵelement(27, "br");
581
+ i0.ɵɵtemplate(16, HistoryPageComponent_p_timeline_16_Template, 3, 1, "p-timeline", 8)(17, HistoryPageComponent_div_17_Template, 2, 0, "div", 9)(18, HistoryPageComponent_div_18_Template, 5, 6, "div", 10)(19, HistoryPageComponent_div_19_Template, 8, 5, "div", 11);
582
+ i0.ɵɵelement(20, "br");
575
583
  i0.ɵɵelementEnd()()();
576
584
  } if (rf & 2) {
577
585
  i0.ɵɵproperty("ngIf", ctx.isOpenQe);
@@ -589,17 +597,15 @@ export class HistoryPageComponent {
589
597
  i0.ɵɵproperty("ngIf", ctx.isLoading);
590
598
  i0.ɵɵadvance(1);
591
599
  i0.ɵɵproperty("ngIf", (!ctx.filteredHistories || ctx.filteredHistories.length < 1) && !ctx.isLoading);
592
- i0.ɵɵadvance(5);
593
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(24, 10, "To view your claim summary and weekly pay status click here"));
594
- i0.ɵɵadvance(3);
595
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(12, _c1));
600
+ i0.ɵɵadvance(1);
601
+ i0.ɵɵproperty("ngIf", ctx.ls.isClaimant());
596
602
  } }, dependencies: [i4.IonButton, i4.IonCol, i4.IonGrid, i4.IonRow, i4.IonSpinner, i9.NgForOf, i9.NgIf, i10.PrimeTemplate, i11.Tooltip, i12.NgControlStatus, i12.NgModel, i13.Accordion, i13.AccordionTab, i14.SelectButton, i15.FaIconComponent, i16.Timeline, i17.MultiQuestionnaireComponent, i18.ProofOfAnythingComponent, i6.TranslatePipe], styles: [".app-accordian-heading[_ngcontent-%COMP%]{font-size:26px;color:var(--ion-color-medium-gray);font-family:var(--app-font-light)}.app-accordian-body[_ngcontent-%COMP%]{font-size:20px;color:#707070;font:normal normal normal 20px/27px var(--app-font-regular)}.horizontal-align[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px}.app-text-align[_ngcontent-%COMP%]{text-align:right}.large-icon[_ngcontent-%COMP%]{font-size:xx-large}.custom-marker[_ngcontent-%COMP%]{font-size:x-large}@media screen and (max-width: 576px){.app-text-align[_ngcontent-%COMP%]{text-align:left}}@media screen and (max-width: 50rem){.app-text-align[_ngcontent-%COMP%]{text-align:left}}@media screen and (max-width: 50rem){[_ngcontent-%COMP%]:is() .p-button[_ngcontent-%COMP%]{display:inline-block;font-size:20px;min-width:3rem}}@media only screen and (max-width: 576px){[_ngcontent-%COMP%]:is() .p-timeline[_ngcontent-%COMP%] .p-timeline-event[_ngcontent-%COMP%]{display:flex!important;flex-direction:column!important;align-items:flex-start!important}[_ngcontent-%COMP%]:is() .p-timeline[_ngcontent-%COMP%] .p-timeline-event-separator[_ngcontent-%COMP%]{margin:.5rem 0!important;width:100%!important}[_ngcontent-%COMP%]:is() .p-timeline[_ngcontent-%COMP%] .p-timeline-event-content[_ngcontent-%COMP%]{width:100%!important;padding-left:0!important;padding-right:0!important}}[_nghost-%COMP%] .app-accordian-body table td[style*=\"display:flex\"]{flex-wrap:wrap!important;white-space:normal!important}[_nghost-%COMP%] .app-accordian-body table td[style*=\"display:flex\"]>span{min-width:0!important;margin:.25em 0!important}[_nghost-%COMP%] .app-accordian-body table td span{overflow-wrap:break-word!important}"], data: { animation: [rowExpansionTrigger] } }); }
597
603
  }
598
604
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HistoryPageComponent, [{
599
605
  type: Component,
600
- args: [{ selector: 'app-history-page', animations: [rowExpansionTrigger], template: "<app-multi-questionnaire [qeQueryModels]=\"qeQueryModels\" *ngIf=\"isOpenQe\" (modelCancel)=\"closeQe()\"\r\n (onComplete)=\"quSuccess()\"></app-multi-questionnaire>\r\n<app-proof-of-anything *ngIf=\"showUploadPopup\" [uploadTypeId]=\"uploadTypeId\" [employerDataModel]=\"employerDataModel\"\r\n [data]=\"dataModel\" (cancel)=\"closeUploadPopup()\" (success)=\"uploadPopupDone()\"></app-proof-of-anything>\r\n<app-dashboard-help *ngIf=\"hs.isShowing()\" [activeIndex]=\"0\"></app-dashboard-help>\r\n<ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"10\" offsetXl=\"2\" offsetLg=\"2\" offsetMd=\"1\">\r\n <h1>Your unemployment history</h1>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"10\" offsetXl=\"2\" offsetLg=\"2\" offsetMd=\"1\">\r\n\r\n <ion-row>\r\n <ion-col size=\"3\">\r\n <div class=\"ion-text-left field\" *ngIf=\"histories\">\r\n <label for=\"timeline\" id=\"lblTimeline\">{{time?.desc}}</label><br />\r\n <p-selectButton [options]=\"timeOption\" [(ngModel)]=\"time\" optionLabel=\"desc\"\r\n (onChange)=\"handleChange($event)\" [ariaLabelledBy]=\"'lblTimeline'\">\r\n <ng-template let-item pTemplate>\r\n <div [pTooltip]=\"item.desc\" tooltipPosition=\"bottom\" tabindex=\"0\" [attr.aria-label]=\"item.desc\"\r\n role=\"note\">\r\n <span *ngIf=\"!item.icon\">{{item.desc}}</span>\r\n <fa-icon [icon]=\"['far', item.icon]\" *ngIf=\"item.icon\"></fa-icon>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <div class=\"ion-text-right field\" *ngIf=\"histories\">\r\n <label>{{filter?.desc}}</label><br />\r\n <p-selectButton [options]=\"filterOptions\" [(ngModel)]=\"filter\" optionLabel=\"icon\"\r\n (onChange)=\"handleChange($event)\">\r\n <ng-template let-item pTemplate>\r\n <div [pTooltip]=\"item.desc\" tooltipPosition=\"bottom\" tabindex=\"0\" [attr.aria-label]=\"item.desc\"\r\n role=\"note\">\r\n <span *ngIf=\"!item.icon\">{{item.altDesc}}</span>\r\n <fa-icon [icon]=\"['far', item.icon]\" *ngIf=\"item.icon\"></fa-icon>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <br />\r\n <p-timeline [value]=\"filteredHistories\" *ngIf=\"(filteredHistories && filteredHistories.length > 0)\">\r\n <ng-template pTemplate=\"marker\" let-hist>\r\n <span [style.color]=\"hist.color\">\r\n <fa-icon [icon]=\"['far', hist.icon]\" class=\"custom-marker\"></fa-icon>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-hist>\r\n <h1 class=\"app-accordian-heading\" style=\"margin-top: 0px; font-weight: bold;\">{{hist.year}}</h1>\r\n <p-accordion expandIcon=\"pi pi-fw pi-chevron-up\" collapseIcon=\"pi pi-fw pi-chevron-up\">\r\n <p-accordionTab *ngFor=\"let history of hist.history; let i = index\" [selected]=\"isValueSelected(history,i)\">\r\n <ng-template pTemplate=\"header\">\r\n <ion-row style=\"width: -webkit-fill-available;\">\r\n <ion-col class=\"ion-text-left\" size=\"12\" sizeXl=\"3\" sizeLg=\"3\" sizeMd=\"3\">\r\n <span class=\"app-accordian-heading\" [style.color]=\"history.color\">{{history.eventDate}}</span>\r\n </ion-col>\r\n <ion-col class=\"app-text-align\" size=\"11\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"8\">\r\n <span class=\"app-accordian-heading\" [style.color]=\"history.color\">\r\n {{history.title}}\r\n </span>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"ion-text-center\">\r\n <span [style.color]=\"history.color\" *ngIf=\"getIcon(history)\">\r\n <fa-icon [icon]=\"getIcon(history)\" class=\"custom-marker\"></fa-icon>\r\n </span>\r\n </ion-col>\r\n </ion-row>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <span class=\"app-accordian-body\" [innerHtml]=\"history.desc\"></span>\r\n <div *ngIf=\"history.button != null\">\r\n <br /><br />\r\n <div class=\"ion-text-right\">\r\n <ion-button [attr.aria-label]=\"'go to' + history.button.buttonText\" fill=\"outline\"\r\n style=\"--color: {{history.button.color}}; --border-color: {{history.button.color}}; --border-width: 2px\"\r\n shape=\"round\" class=\"small-button\" (click)=\"open(history)\">{{history.button.buttonText}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <br />\r\n </ng-template>\r\n </p-timeline>\r\n\r\n <div class=\"ion-text-center\" *ngIf=\"isLoading\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n\r\n <div class=\"ion-padding-top ion-text-center app-accordian-body\"\r\n *ngIf=\"(!filteredHistories || filteredHistories.length < 1) && !isLoading\">\r\n <fa-icon [icon]=\"['far', filterIcon]\" class=\"large-icon\"></fa-icon>\r\n <p>{{'No history present.' | translate}}</p>\r\n </div>\r\n\r\n <div style=\"padding-left: 5%;\">\r\n <div class=\"horizontal-align\">\r\n <span class=\"app-accordian-body\">\r\n <strong>{{ 'To view your claim summary and weekly pay status click here' | translate }}</strong>\r\n </span>\r\n <ion-button aria-label=\"view old records\" (click)=\"openOldRecords()\" fill=\"outline\" size=\"small\"\r\n class=\"action-button\">\r\n <fa-icon [icon]=\"['fas', 'external-link-alt']\" class=\"external-link-icon\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <br />\r\n\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>", styles: [".app-accordian-heading{font-size:26px;color:var(--ion-color-medium-gray);font-family:var(--app-font-light)}.app-accordian-body{font-size:20px;color:#707070;font:normal normal normal 20px/27px var(--app-font-regular)}.horizontal-align{display:flex;align-items:center;gap:5px}.app-text-align{text-align:right}.large-icon{font-size:xx-large}.custom-marker{font-size:x-large}@media screen and (max-width: 576px){.app-text-align{text-align:left}}@media screen and (max-width: 50rem){.app-text-align{text-align:left}}@media screen and (max-width: 50rem){:is() .p-button{display:inline-block;font-size:20px;min-width:3rem}}@media only screen and (max-width: 576px){:is() .p-timeline .p-timeline-event{display:flex!important;flex-direction:column!important;align-items:flex-start!important}:is() .p-timeline .p-timeline-event-separator{margin:.5rem 0!important;width:100%!important}:is() .p-timeline .p-timeline-event-content{width:100%!important;padding-left:0!important;padding-right:0!important}}:host ::ng-deep .app-accordian-body table td[style*=\"display:flex\"]{flex-wrap:wrap!important;white-space:normal!important}:host ::ng-deep .app-accordian-body table td[style*=\"display:flex\"]>span{min-width:0!important;margin:.25em 0!important}:host ::ng-deep .app-accordian-body table td span{overflow-wrap:break-word!important}\n"] }]
606
+ args: [{ selector: 'app-history-page', animations: [rowExpansionTrigger], template: "<app-multi-questionnaire [qeQueryModels]=\"qeQueryModels\" *ngIf=\"isOpenQe\" (modelCancel)=\"closeQe()\"\r\n (onComplete)=\"quSuccess()\"></app-multi-questionnaire>\r\n<app-proof-of-anything *ngIf=\"showUploadPopup\" [uploadTypeId]=\"uploadTypeId\" [employerDataModel]=\"employerDataModel\"\r\n [data]=\"dataModel\" (cancel)=\"closeUploadPopup()\" (success)=\"uploadPopupDone()\"></app-proof-of-anything>\r\n<app-dashboard-help *ngIf=\"hs.isShowing()\" [activeIndex]=\"0\"></app-dashboard-help>\r\n<ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"10\" offsetXl=\"2\" offsetLg=\"2\" offsetMd=\"1\">\r\n <h1>Your unemployment history</h1>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"10\" offsetXl=\"2\" offsetLg=\"2\" offsetMd=\"1\">\r\n\r\n <ion-row>\r\n <ion-col size=\"3\">\r\n <div class=\"ion-text-left field\" *ngIf=\"histories\">\r\n <label for=\"timeline\" id=\"lblTimeline\">{{time?.desc}}</label><br />\r\n <p-selectButton [options]=\"timeOption\" [(ngModel)]=\"time\" optionLabel=\"desc\"\r\n (onChange)=\"handleChange($event)\" [ariaLabelledBy]=\"'lblTimeline'\">\r\n <ng-template let-item pTemplate>\r\n <div [pTooltip]=\"item.desc\" tooltipPosition=\"bottom\" tabindex=\"0\" [attr.aria-label]=\"item.desc\"\r\n role=\"note\">\r\n <span *ngIf=\"!item.icon\">{{item.desc}}</span>\r\n <fa-icon [icon]=\"['far', item.icon]\" *ngIf=\"item.icon\"></fa-icon>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <div class=\"ion-text-right field\" *ngIf=\"histories\">\r\n <label>{{filter?.desc}}</label><br />\r\n <p-selectButton [options]=\"filterOptions\" [(ngModel)]=\"filter\" optionLabel=\"icon\"\r\n (onChange)=\"handleChange($event)\">\r\n <ng-template let-item pTemplate>\r\n <div [pTooltip]=\"item.desc\" tooltipPosition=\"bottom\" tabindex=\"0\" [attr.aria-label]=\"item.desc\"\r\n role=\"note\">\r\n <span *ngIf=\"!item.icon\">{{item.altDesc}}</span>\r\n <fa-icon [icon]=\"['far', item.icon]\" *ngIf=\"item.icon\"></fa-icon>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <br />\r\n <p-timeline [value]=\"filteredHistories\" *ngIf=\"(filteredHistories && filteredHistories.length > 0)\">\r\n <ng-template pTemplate=\"marker\" let-hist>\r\n <span [style.color]=\"hist.color\">\r\n <fa-icon [icon]=\"['far', hist.icon]\" class=\"custom-marker\"></fa-icon>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-hist>\r\n <h1 class=\"app-accordian-heading\" style=\"margin-top: 0px; font-weight: bold;\">{{hist.year}}</h1>\r\n <p-accordion expandIcon=\"pi pi-fw pi-chevron-up\" collapseIcon=\"pi pi-fw pi-chevron-up\">\r\n <p-accordionTab *ngFor=\"let history of hist.history; let i = index\" [selected]=\"isValueSelected(history,i)\">\r\n <ng-template pTemplate=\"header\">\r\n <ion-row style=\"width: -webkit-fill-available;\">\r\n <ion-col class=\"ion-text-left\" size=\"12\" sizeXl=\"3\" sizeLg=\"3\" sizeMd=\"3\">\r\n <span class=\"app-accordian-heading\" [style.color]=\"history.color\">{{history.eventDate}}</span>\r\n </ion-col>\r\n <ion-col class=\"app-text-align\" size=\"11\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"8\">\r\n <span class=\"app-accordian-heading\" [style.color]=\"history.color\">\r\n {{history.title}}\r\n </span>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"ion-text-center\">\r\n <span [style.color]=\"history.color\" *ngIf=\"getIcon(history)\">\r\n <fa-icon [icon]=\"getIcon(history)\" class=\"custom-marker\"></fa-icon>\r\n </span>\r\n </ion-col>\r\n </ion-row>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <span class=\"app-accordian-body\" [innerHtml]=\"history.desc\"></span>\r\n <div *ngIf=\"history.button != null\">\r\n <br /><br />\r\n <div class=\"ion-text-right\">\r\n <ion-button [attr.aria-label]=\"'go to' + history.button.buttonText\" fill=\"outline\"\r\n style=\"--color: {{history.button.color}}; --border-color: {{history.button.color}}; --border-width: 2px\"\r\n shape=\"round\" class=\"small-button\" (click)=\"open(history)\">{{history.button.buttonText}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <br />\r\n </ng-template>\r\n </p-timeline>\r\n\r\n <div class=\"ion-text-center\" *ngIf=\"isLoading\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n\r\n <div class=\"ion-padding-top ion-text-center app-accordian-body\"\r\n *ngIf=\"(!filteredHistories || filteredHistories.length < 1) && !isLoading\">\r\n <fa-icon [icon]=\"['far', filterIcon]\" class=\"large-icon\"></fa-icon>\r\n <p>{{'No history present.' | translate}}</p>\r\n </div>\r\n\r\n <div style=\"padding-left: 5%;\" *ngIf=\"ls.isClaimant()\">\r\n <div class=\"horizontal-align\">\r\n <span class=\"app-accordian-body\">\r\n <strong>{{ 'To view your claim summary and weekly pay status click here' | translate }}</strong>\r\n </span>\r\n <ion-button aria-label=\"view old records\" (click)=\"openOldRecords()\" fill=\"outline\" size=\"small\"\r\n class=\"action-button\">\r\n <fa-icon [icon]=\"['fas', 'external-link-alt']\" class=\"external-link-icon\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <br />\r\n\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>", styles: [".app-accordian-heading{font-size:26px;color:var(--ion-color-medium-gray);font-family:var(--app-font-light)}.app-accordian-body{font-size:20px;color:#707070;font:normal normal normal 20px/27px var(--app-font-regular)}.horizontal-align{display:flex;align-items:center;gap:5px}.app-text-align{text-align:right}.large-icon{font-size:xx-large}.custom-marker{font-size:x-large}@media screen and (max-width: 576px){.app-text-align{text-align:left}}@media screen and (max-width: 50rem){.app-text-align{text-align:left}}@media screen and (max-width: 50rem){:is() .p-button{display:inline-block;font-size:20px;min-width:3rem}}@media only screen and (max-width: 576px){:is() .p-timeline .p-timeline-event{display:flex!important;flex-direction:column!important;align-items:flex-start!important}:is() .p-timeline .p-timeline-event-separator{margin:.5rem 0!important;width:100%!important}:is() .p-timeline .p-timeline-event-content{width:100%!important;padding-left:0!important;padding-right:0!important}}:host ::ng-deep .app-accordian-body table td[style*=\"display:flex\"]{flex-wrap:wrap!important;white-space:normal!important}:host ::ng-deep .app-accordian-body table td[style*=\"display:flex\"]>span{min-width:0!important;margin:.25em 0!important}:host ::ng-deep .app-accordian-body table td span{overflow-wrap:break-word!important}\n"] }]
601
607
  }], () => [{ type: i1.EventService }, { type: i2.HelpService }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.LoginService }, { type: i6.TranslateService }, { type: i7.LoggerService }, { type: i8.ActivatedRoute }], null); })();
602
608
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HistoryPageComponent, { className: "HistoryPageComponent", filePath: "lib\\components\\history-page\\history-page.component.ts", lineNumber: 28 }); })();
603
609
  export class KeyValueModel {
604
610
  }
605
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oaXN0b3J5LXBhZ2UvaGlzdG9yeS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oaXN0b3J5LXBhZ2UvaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVF6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDZjdCLG1EQUM2QjtJQUQ2QyxrTkFBZSxlQUFBLGdCQUFTLENBQUEsSUFBQyxvTUFDbkYsZUFBQSxtQkFBVyxDQUFBLElBRHdFO0lBQ3RFLGlCQUEwQjs7O0lBRDlCLG9EQUErQjs7OztJQUV4RCxpREFDaUY7SUFBNUQsc01BQVUsZUFBQSwwQkFBa0IsQ0FBQSxJQUFDLDJMQUFZLGVBQUEseUJBQWlCLENBQUEsSUFBN0I7SUFBK0IsaUJBQXdCOzs7SUFEMUQsa0RBQTZCLCtDQUFBLDBCQUFBOzs7SUFFNUUseUNBQWtGOztJQUF2QywrQkFBaUI7OztJQW1CMUMsNEJBQXlCO0lBQUEsWUFBYTtJQUFBLGlCQUFPOzs7SUFBcEIsZUFBYTtJQUFiLG1DQUFhOzs7O0lBQ3RDLDhCQUFpRTs7O0lBQXhELGdFQUEyQjs7O0lBSHRDLCtCQUNj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QUEsU0FBQTtZQUdBLHlDQUF5QjtZQUFBLGlCQUFLLEVBQUEsRUFBQTtZQUd0QywrQkFBUyxpQkFBQSxlQUFBLGtCQUFBO1lBS0QsdUVBWU07WUFDUixpQkFBVTtZQUNWLG1DQUFrQjtZQUNoQix1RUFZTTtZQUNSLGlCQUFVLEVBQUE7WUFHWixzQkFBTTtZQUNOLHFGQTJDYSwwREFBQSwyREFBQTtZQVliLGdDQUErQixlQUFBLGdCQUFBLGNBQUE7WUFHakIsYUFBK0U7O1lBQUEsaUJBQVMsRUFBQTtZQUVsRyx1Q0FDd0I7WUFEa0Isc0dBQVMsb0JBQWdCLElBQUM7WUFFbEUsK0JBQW9GO1lBQ3RGLGlCQUFhLEVBQUEsRUFBQTtZQUdqQixzQkFBTTtZQUVSLGlCQUFVLEVBQUEsRUFBQTs7WUFwSDRDLG1DQUFjO1lBRWhELGVBQXFCO1lBQXJCLDBDQUFxQjtZQUV4QixlQUFvQjtZQUFwQix5Q0FBb0I7WUFZRyxnQkFBZTtZQUFmLG9DQUFlO1lBZWQsZUFBZTtZQUFmLG9DQUFlO1lBaUJiLGVBQXlEO1lBQXpELGdGQUF5RDtZQTZDcEUsZUFBZTtZQUFmLG9DQUFlO1lBSzFDLGVBQXdFO1lBQXhFLHFHQUF3RTtZQVE3RCxlQUErRTtZQUEvRSwyR0FBK0U7WUFJOUUsZUFBcUM7WUFBckMsa0RBQXFDOzJpRURyRjVDLENBQUMsbUJBQW1CLENBQUM7O2lGQUV0QixvQkFBb0I7Y0FOaEMsU0FBUzsyQkFDRSxrQkFBa0IsY0FHaEIsQ0FBQyxtQkFBbUIsQ0FBQzs7a0ZBRXRCLG9CQUFvQjtBQTBUakMsTUFBTSxPQUFPLGFBQWE7Q0FHekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBFcnJvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yTW9kZWwnO1xyXG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcclxuaW1wb3J0IHsgSGVscFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oZWxwL2hlbHAuc2VydmljZSc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGV1cGxvYWQvRW1wbG95ZXJEYXRhTW9kZWwnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvUXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGlzdG9yeU1vZGVsLCBZZWFyV2lzZUhpc3RvcnkgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGFzaGJvYXJkLW1vZGVsJztcclxuaW1wb3J0IHsgcm93RXhwYW5zaW9uVHJpZ2dlciB9IGZyb20gJy4uLy4uL2FubmltYXRpb25zL2FwcC1hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudC1zZXJ2aWNlL2V2ZW50LXNlcnZpY2UnO1xyXG5cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaGlzdG9yeS1wYWdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5jc3MnLFxyXG4gIGFuaW1hdGlvbnM6IFtyb3dFeHBhbnNpb25UcmlnZ2VyXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGlzdG9yeVBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzZWxlY3RlZE1vZGVsOiBIaXN0b3J5TW9kZWwgXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgaGlzdG9yaWVzOiBZZWFyV2lzZUhpc3RvcnlbXTtcclxuICBmaWx0ZXJlZEhpc3RvcmllczogWWVhcldpc2VIaXN0b3J5W107XHJcbiAgZmlsdGVyT3B0aW9uczogYW55W107XHJcbiAgdGltZU9wdGlvbjogYW55W107XHJcbiAgdmFsdWUgPSB7IGljb246IG51bGwsIGRlc2M6ICdBbGwnLCB2YWx1ZTogXCJBTExcIiB9O1xyXG4gIHRpbWUgPSB7IGljb246ICdjbG9jaycsIGRlc2M6ICdjdXJyZW50JywgdmFsdWU6IFwiQ1VSUlwiIH07XHJcbiAgZmlsdGVyID0geyBpY29uOiBudWxsLCBkZXNjOiAnYWxsIHlvdXIgaGlzdG9yeScsIHZhbHVlOiBcIkFMTFwiLCBhbHREZXNjOiAnYWxsJyB9O1xyXG4gIGZpbHRlckljb24gPSAnaGlzdG9yeSc7XHJcbiAgcGF5bWVudFRleHQ6IHN0cmluZztcclxuICBxZVF1ZXJ5TW9kZWxzOiBRdWVzdGlvbm5haXJlUXVlcnlNb2RlbFtdO1xyXG4gIGlzT3BlblFlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd09sZGVyUmVjb3Jkc0xpbms6IGJvb2xlYW47XHJcbiAgdHJhbnNhY3Rpb25JZFNlbGVjdGVkOiBhbnk7XHJcbiAgc2hvd1VwbG9hZFBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXBsb2FkVHlwZUlkOiBTdHJpbmc7XHJcbiAgZW1wbG95ZXJEYXRhTW9kZWw6IEFycmF5PEVtcGxveWVyRGF0YU1vZGVsPjtcclxuICBjb3VudCA9IDA7XHJcbiAgZGF0YU1vZGVsIDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVzOiBFdmVudFNlcnZpY2UsIHB1YmxpYyBoczogSGVscFNlcnZpY2UsIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdjogTmF2Q29udHJvbGxlciwgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudGltZU9wdGlvbiA9IFtcclxuICAgICAgeyBpY29uOiAnY2xvY2snLCBkZXNjOiAnY3VycmVudCcsIHZhbHVlOiBcIkNVUlJcIiB9LFxyXG4gICAgICB7IGljb246ICdoaXN0b3J5JywgZGVzYzogJ3Bhc3QnLCB2YWx1ZTogXCJQQVNUXCIgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKHRoaXMudXRpbC5pc1N0YXRlKCdNUycpKSB7XHJcbiAgICAgIHRoaXMucGF5bWVudFRleHQgPSBcIndlZWtseSBjZXJ0aWZpY2F0aW9ucyBhbmQgcGF5bWVudHNcIlxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucGF5bWVudFRleHQgPSBcIndlZWtsaWVzIGFuZCBwYXltZW50c1wiXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0gW1xyXG4gICAgICB7IGljb246IG51bGwsIGRlc2M6ICdhbGwgeW91ciBoaXN0b3J5JywgdmFsdWU6IFwiQUxMXCIsIGFsdERlc2M6ICdhbGwnIH0sXHJcbiAgICAgIHsgaWNvbjogJ3NhY2stZG9sbGFyJywgZGVzYzogdGhpcy5wYXltZW50VGV4dCwgdmFsdWU6IFwiV0tMWVwiIH0sXHJcbiAgICAgIHsgaWNvbjogJ2ZpbGUtdXBsb2FkJywgZGVzYzogJ3VwbG9hZGVkIGRvY3VtZW50cycsIHZhbHVlOiBcIkRPQ1NcIiB9LFxyXG4gICAgICB7IGljb246ICdiYWxhbmNlLXNjYWxlJywgZGVzYzogJ2lzc3VlICYgYXBwZWFscycsIHZhbHVlOiBcIkFQUExcIiB9XHJcblxyXG4gICAgXTtcclxuXHJcbiAgICBsZXQgdHhuSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd0eG5pZCcpO1xyXG4gICAgaWYgKHR4bklkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbklkU2VsZWN0ZWQgPSBhdG9iKHR4bklkKTtcclxuICAgICAgLy90aGlzLmxvZ2dlci5pbmZvKHRoaXMudHJhbnNhY3Rpb25JZFNlbGVjdGVkKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5sb2FkSGlzdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFllYXJIaXN0b3J5KCkge1xyXG4gICAgbGV0IHR5cGVGaWx0ZXIgPSB0aGlzLmZpbHRlci52YWx1ZTtcclxuICAgIGxldCB0aW1lRmlsdGVyID0gdGhpcy50aW1lLnZhbHVlO1xyXG4gICAgXHJcblxyXG4gICAgaWYgKHRpbWVGaWx0ZXIgPT0gJ0NVUlInKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSB0aGlzLmhpc3Rvcmllcy5maWx0ZXIoaGlzdCA9PiAoaGlzdC55ZWFyICE9ICdTdGFydCcgJiYgcGFyc2VJbnQoaGlzdC55ZWFyKSA9PSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEhpc3RvcmllcyA9IHRoaXMuZ2V0RmlsdGVyZWRIaXN0b3JpZXModGhpcy5maWx0ZXJlZEhpc3RvcmllcywgdHlwZUZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJY29uKGhpc3Rvcnk6IEhpc3RvcnlNb2RlbCkge1xyXG4gICAgbGV0IGhpc3QgPSB0aGlzLmZpbHRlck9wdGlvbnMuZmlsdGVyKGZvID0+IGZvLnZhbHVlID09IGhpc3RvcnkucHJvY2Vzc1R5cGUpWzBdO1xyXG4gICAgaWYgKGhpc3QpIHtcclxuICAgICAgcmV0dXJuIFsnZmFyJywgaGlzdC5pY29uXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEhpc3RvcnkoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmVzLmdldEhpc3RvcnlPZkxvZ2dlZGluVXNlcigpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmhpc3RvcmllcyA9IHJlcy5oaXN0b3J5O1xyXG4gICAgICAgIHRoaXMuc2hvd09sZGVyUmVjb3Jkc0xpbmsgPSByZXMuc2hvd09sZGVyUmVjb3Jkc0xpbms7XHJcbiAgICAgICAgLy90aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gWy4uLnRoaXMuaGlzdG9yaWVzXTtcclxuICAgICAgICB0aGlzLmdldEN1cnJlbnRZZWFySGlzdG9yeSgpO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgdGhpcy5oaXN0b3JpZXMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEhpc3RvcmllcyA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBsZXQgdHlwZUZpbHRlciA9IHRoaXMuZmlsdGVyLnZhbHVlO1xyXG4gICAgbGV0IHRpbWVGaWx0ZXIgPSB0aGlzLnRpbWUudmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlckljb24gPSB0aGlzLnRpbWUuaWNvbjtcclxuICAgIGlmICh0aW1lRmlsdGVyID09ICdDVVJSJykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gdGhpcy5oaXN0b3JpZXMuZmlsdGVyKGhpc3QgPT4gKGhpc3QueWVhciAhPSAnU3RhcnQnICYmIHBhcnNlSW50KGhpc3QueWVhcikgPT0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSB0aGlzLmdldEZpbHRlcmVkSGlzdG9yaWVzKHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMsIHR5cGVGaWx0ZXIpO1xyXG4gICAgfSBlbHNlIGlmICh0aW1lRmlsdGVyID09ICdQQVNUJykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gdGhpcy5oaXN0b3JpZXMuZmlsdGVyKGhpc3QgPT4gKGhpc3QueWVhciAhPSAnU3RhcnQnICYmIGhpc3QueWVhciAhPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgKyAnJykpO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gdGhpcy5nZXRGaWx0ZXJlZEhpc3Rvcmllcyh0aGlzLmZpbHRlcmVkSGlzdG9yaWVzLCB0eXBlRmlsdGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZUZpbHRlciAhPSAnQUxMJykge1xyXG4gICAgICB0aGlzLmZpbHRlckljb24gPSB0aGlzLmZpbHRlci5pY29uO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB5d2ggPSB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzLmZpbHRlcihoID0+IGgueWVhciA9PSAnU3RhcnQnKTtcclxuXHJcbiAgICBpZiAodGhpcy5maWx0ZXJlZEhpc3Rvcmllcy5sZW5ndGggPiAwICYmIHl3aC5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMucHVzaCh7XHJcbiAgICAgICAgY29sb3I6ICd2YXIoLS1pb24tY29sb3ItbWVkaXVtLWdyYXkpJyxcclxuICAgICAgICBpY29uOiAnaG91cmdsYXNzLXN0YXJ0JyxcclxuICAgICAgICBoaXN0b3J5OiBbXSxcclxuICAgICAgICB5ZWFyOiAnU3RhcnQnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RmlsdGVyZWRIaXN0b3JpZXMoaGlzdG9yaWVzOiBZZWFyV2lzZUhpc3RvcnlbXSwgZmlsdGVyOiBzdHJpbmcpIHtcclxuICAgIGlmIChmaWx0ZXIgPT0gJ0FMTCcpIHtcclxuICAgICAgdGhpcy5jb3VudCA9IHRoaXMuY291bnQgKyAxO1xyXG4gICAgICByZXR1cm4gaGlzdG9yaWVzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGhpc3Rvcmllc1xyXG4gICAgICAuZmlsdGVyKGhpc3QgPT4gaGlzdC5oaXN0b3J5LnNvbWUoc3ViSGlzdCA9PiBzdWJIaXN0LnByb2Nlc3NUeXBlID09PSBmaWx0ZXIpKVxyXG4gICAgICAubWFwKGhpc3RvcnkgPT4ge1xyXG4gICAgICAgIGxldCBuZXdIaXN0ID0gT2JqZWN0LmFzc2lnbih7fSwgaGlzdG9yeSk7XHJcbiAgICAgICAgbmV3SGlzdC5oaXN0b3J5ID0gbmV3SGlzdC5oaXN0b3J5LmZpbHRlcihoaXN0ID0+IGhpc3QucHJvY2Vzc1R5cGUgPT09IGZpbHRlcik7XHJcbiAgICAgICAgcmV0dXJuIG5ld0hpc3Q7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaHMuc2V0SGVscEF2YWlsYWJpbGl0eShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBpb25WaWV3RGlkRW50ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhzLnNldEhlbHBBdmFpbGFiaWxpdHkodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBpc1ZhbHVlU2VsZWN0ZWQoaGlzdG9yeTogSGlzdG9yeU1vZGVsLCBjb3VudDogYW55KSB7XHJcbiAgICAvL3RoaXMubG9nZ2VyLmluZm8oJ2lzIHZhbHVlIHNlbGVjdGVkJyAsIHRoaXMudHJhbnNhY3Rpb25JZFNlbGVjdGVkKTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uSWRTZWxlY3RlZCA9PSBudWxsICYmIGNvdW50ID09IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKGhpc3RvcnkudHJhbnNhY3Rpb25JZCA9PSB0aGlzLnRyYW5zYWN0aW9uSWRTZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9wZW4oaGlzdG9yeU1vZGVsOiBIaXN0b3J5TW9kZWwpIHtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBoaXN0b3J5TW9kZWw7XHJcbiAgICBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmkuaW5jbHVkZXMoXCJQb3B1cFwiKSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdIaXN0b3J5IGJ1dHRvbiB1cmkgaW5jbHVkZXMgUG9wdXAgdmFsdWUnKTtcclxuICAgICAgaWYgKHRoaXMubHMuaXNDc3IoKSAmJiBoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uY2xtdE9ubHlGTiA9PSAnMScpIHtcclxuICAgICAgICBsZXQgZXJyb3JNb2RlbDogRXJyb3JNb2RlbCA9IG5ldyBFcnJvck1vZGVsKCk7XHJcbiAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSBcIlRoaXMgaXMgYSBjbGFpbWFudCBvbmx5IGZ1bmN0aW9uYWxpdHkuXCI7XHJcbiAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJvck1vZGVsKTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5hY3Rpb25VcmkgPT0gJ0FwcGVhbHNQb3B1cCcgJiYgaGlzdG9yeU1vZGVsLmRhdGEucWVEYXRhKSB7XHJcbiAgICAgICAgbGV0IHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsczogQXJyYXk8UXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWw+ID0gSlNPTi5wYXJzZShoaXN0b3J5TW9kZWwuZGF0YS5xZURhdGEpO1xyXG4gICAgICAgIHRoaXMucWVRdWVyeU1vZGVscyA9IHRoaXMuY3JlYXRlUWVRdWVyeU1vZGVsKHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVscyk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5RZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbiAmJiBoaXN0b3J5TW9kZWwuYnV0dG9uLmRpYWxvZyA9PSAndXBsb2FkUG9wdXBJbkNwJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRNb2RlbC5kYXRhKTtcclxuICAgICAgICB0aGlzLnVwbG9hZFR5cGVJZCA9IHRoaXMuc2VsZWN0ZWRNb2RlbC5kYXRhLnVwbG9hZFR5cGVJZDtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGVsLmRhdGE/LmVtcGxveWVyRGF0YSAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLmVtcGxveWVyRGF0YU1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkTW9kZWwuZGF0YT8uZW1wbG95ZXJEYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlbC5kYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuZGF0YU1vZGVsID0gdGhpcy5zZWxlY3RlZE1vZGVsLmRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd1VwbG9hZFBvcHVwID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICd1cGxvYWRQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9LnVwbG9hZGRvY3VtZW50ZW50ZXJzc25gLCAnX3NlbGYnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICd1cGxvYWRXU0FQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJy51cGxvYWRkb2N1bWVudHdvcmtzZWFyY2hhdWRpdCc7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9Lm5hdmlnYXRpb25icmlkZ2UmdGFyZ2V0PSR7dGFyZ2V0fWAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ3VwbG9hZElEVlBvcHVwJykge1xyXG4gICAgICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTkmQ0xBSU1BTlRfUE9SVEFMPXRydWUmdmlldz0uc2VsZWN0aWR2ZXJpZmljYXRpb25vcHRpb25gLCAnX3NlbGYnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICd1cGxvYWRQYXltZW50T3B0aW9uRG9jUG9wdXAnKSB7XHJcbiAgICAgICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpO1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OSZDTEFJTUFOVF9QT1JUQUw9dHJ1ZSZ2aWV3PS5wYXltZW50b3B0aW9uZG9jdXBsb2FkYCwgJ19zZWxmJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbiAmJiBoaXN0b3J5TW9kZWwuYnV0dG9uLmRpYWxvZyA9PSAnb3ZwV2FpdmVyUG9wdXAnKSB7XHJcbiAgICAgICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uSWQgPSBoaXN0b3J5TW9kZWwudHJhbnNhY3Rpb25JZFxyXG4gICAgICAgIGNvbnN0IGRvY2tldE51bWJlciA9IGhpc3RvcnlNb2RlbC5kYXRhPy5kb2NrZXRfbnVtYmVyIHx8ICcnXHJcbiAgICAgICAgY29uc3QgYnVjRGVjaXNpb25JZCA9IGhpc3RvcnlNb2RlbC5kYXRhPy5idWNEZWNpc2lvbklkIHx8ICcnXHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9Lm1lZmlsZW92ZXJwYXltZW50d2FpdmVycmVxdWVzdGRlY2lzaW9ubGlzdCZ0cmFuc2FjdGlvbklkPSR7dHJhbnNhY3Rpb25JZH0mZG9ja2V0TnVtYmVyPSR7ZG9ja2V0TnVtYmVyfSZidWNEZWNpc2lvbklkPSR7YnVjRGVjaXNpb25JZH1gLCAnX3NlbGYnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICdSZXNjaGVkdWxlUmVzZWFQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7IFxyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OSZDTEFJTUFOVF9QT1JUQUw9dHJ1ZSZ2aWV3PS5yZXNjaGVkdWxlcmVzZWFhcHBvaW50bWVudGAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ1NjaGVkdWxlUmVzZWFQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7IFxyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICcucmVlbXBsb3ltZW50c2VydmljZXMnO1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OSZDTEFJTUFOVF9QT1JUQUw9dHJ1ZSZ2aWV3PS5uYXZpZ2F0aW9uYnJpZGdlJnRhcmdldD0ke3RhcmdldH1gLCAnX3NlbGYnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnV0aWwucHJlc2VudFRvYXN0KCdTY2VuYXJpbyB1bmRlciBkZXZlbG9wbWVudC4gUGxlYXNlIGNoZWNrIHdpdGggZGV2ZWxvcGVyLicpO1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGhpc3RvcnlNb2RlbCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24udXJpICE9ICcnICYmIGhpc3RvcnlNb2RlbC5idXR0b24udXJpLmluY2x1ZGVzKFwiUGFnZVwiKSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdIaXN0b3J5IGJ1dHRvbiB1cmkgaW5jbHVkZXMgUGFnZSB2YWx1ZScpO1xyXG4gICAgICBpZiAoaGlzdG9yeU1vZGVsLmRhdGEgJiYgaGlzdG9yeU1vZGVsLmRhdGEucWVEYXRhKSB7XHJcbiAgICAgICAgbGV0IGpzb25EYXRhID0gSlNPTi5wYXJzZShoaXN0b3J5TW9kZWwuZGF0YS5xZURhdGEpO1xyXG4gICAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3RXaXRoRGF0YShoaXN0b3J5TW9kZWwuYnV0dG9uLmNvbnRleHQsIGhpc3RvcnlNb2RlbC5idXR0b24udXJsLCBqc29uRGF0YVswXS5keW5hbWljUGFyYW0sIHRoaXMubmF2KTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuZGF0YSkge1xyXG4gICAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3RXaXRoRGF0YShoaXN0b3J5TW9kZWwuYnV0dG9uLmNvbnRleHQsIGhpc3RvcnlNb2RlbC5idXR0b24udXJsLCBoaXN0b3J5TW9kZWwuZGF0YSwgdGhpcy5uYXYpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdChoaXN0b3J5TW9kZWwuYnV0dG9uLmNvbnRleHQsIGhpc3RvcnlNb2RlbC5idXR0b24udXJsLCB0aGlzLm5hdik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5PbGRSZWNvcmRzKCkge1xyXG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpO1xyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubHMuaXNDc3IoKSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5scy5pc0NsYWltYW50KCkpIHtcclxuICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OSZDTEFJTUFOVF9QT1JUQUw9dHJ1ZSZ2aWV3PS5jbGFpbWFudHN1bW1hcnlgLCAnX3NlbGYnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVFlUXVlcnlNb2RlbChxdWVzdGlvbm5haXJlUXVlcnlNb2RlbHM6IFF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsW10pIHtcclxuICAgIHJldHVybiBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbHMubWFwKHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsID0+IHtcclxuICAgICAgbGV0IGR5bmFtaWNQYXJhbSA9IHt9O1xyXG4gICAgICB2YXIga2V5TW9kZWwgPSA8S2V5VmFsdWVNb2RlbD5xdWVzdGlvbm5haXJlUXVlcnlNb2RlbC5keW5hbWljUGFyYW1bMF07XHJcbiAgICAgIHZhciB0aXRsZSA9IGtleU1vZGVsLmtleTtcclxuICAgICAgdmFyIHZlcmJhaWdlS2V5ID0ga2V5TW9kZWwudmFsdWU7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh2ZXJiYWlnZUtleSk7XHJcbiAgICAgIGR5bmFtaWNQYXJhbVt0aXRsZV0gPSB0cmFuc2xhdGVkVGV4dDtcclxuICAgICAgZHluYW1pY1BhcmFtWydoaWRBcHBlYWxEZWNpc2lvbiddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnaGlkQXBwZWFsRGVjaXNpb24nXTtcclxuICAgICAgZHluYW1pY1BhcmFtWydkb2NrZXRudW1iZXInXSA9IHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsLmRhdGFbJ2RvY2tldG51bWJlciddO1xyXG4gICAgICBkeW5hbWljUGFyYW1bJ3BhcmVudEFwcGVhbElkJ10gPSBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbC5kYXRhWydwYXJlbnRBcHBlYWxJZCddO1xyXG4gICAgICBkeW5hbWljUGFyYW1bJ2FwcGVhbFR5cGUnXSA9IHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsLmRhdGFbJ2FwcGVhbFR5cGUnXTtcclxuICAgICAgZHluYW1pY1BhcmFtWydhcHBlYWxMZXZlbCddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnYXBwZWFsTGV2ZWwnXTtcclxuICAgICAgaWYgKHRoaXMudXRpbC5pc1N0YXRlKCdNRScpKSB7XHJcbiAgICAgICAgZHluYW1pY1BhcmFtWydhcHBlYWxDb25zaWRlcmVkTGF0ZURhdGUnXSA9IHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsLmRhdGFbJ2FwcGVhbENvbnNpZGVyZWRMYXRlRGF0ZSddO1xyXG4gICAgICAgIGR5bmFtaWNQYXJhbVsnbGF0ZUFwcGVhbCddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnbGF0ZUFwcGVhbCddO1xyXG4gICAgICB9XHJcbiAgICAgIHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsWydkeW5hbWljUGFyYW0nXSA9IGR5bmFtaWNQYXJhbTtcclxuICAgICAgcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxbJ2F1dG9TYXZlJ10gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWw7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlUWUoKSB7XHJcbiAgICB0aGlzLmlzT3BlblFlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBudWxsO1xyXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUWUgY2FuY2VsJyk7XHJcbiAgfVxyXG5cclxuICBxdVN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmhpc3RvcmllcyA9IG51bGw7XHJcbiAgICB0aGlzLmlzT3BlblFlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZXNcclxuICAgICAgICAuZGlzYWJsZUhpc3RvcnlCdXR0b24odGhpcy5zZWxlY3RlZE1vZGVsLnRyYW5zYWN0aW9uSWQsIHRoaXMuc2VsZWN0ZWRNb2RlbC5oaXN0b3J5S2V5KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIHRpbWVyKDIwMDApLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZEhpc3RvcnkoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiRXJyb3Igd2hpbGUgZGVhY3RpdmF0aW5nIHRoZSBldmVudC5cIiwgZXJyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ1FlIHN1Y2Nlc3MnKTtcclxuICB9XHJcblxyXG4gIGNsb3NlVXBsb2FkUG9wdXAoKSB7XHJcbiAgICB0aGlzLnNob3dVcGxvYWRQb3B1cCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkUG9wdXBEb25lKCkge1xyXG4gICAgdGhpcy5zaG93VXBsb2FkUG9wdXAgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kZWwpIHtcclxuICAgICAgdGhpcy5lc1xyXG4gICAgICAgIC5kaXNhYmxlSGlzdG9yeUJ1dHRvbih0aGlzLnNlbGVjdGVkTW9kZWwudHJhbnNhY3Rpb25JZCwgdGhpcy5zZWxlY3RlZE1vZGVsLmhpc3RvcnlLZXkpXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIkVycm9yIHdoaWxlIGRlYWN0aXZhdGluZyB0aGUgZXZlbnQuXCIsIGVycik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZU1vZGVsIHtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG4iLCI8YXBwLW11bHRpLXF1ZXN0aW9ubmFpcmUgW3FlUXVlcnlNb2RlbHNdPVwicWVRdWVyeU1vZGVsc1wiICpuZ0lmPVwiaXNPcGVuUWVcIiAobW9kZWxDYW5jZWwpPVwiY2xvc2VRZSgpXCJcclxuICAob25Db21wbGV0ZSk9XCJxdVN1Y2Nlc3MoKVwiPjwvYXBwLW11bHRpLXF1ZXN0aW9ubmFpcmU+XHJcbjxhcHAtcHJvb2Ytb2YtYW55dGhpbmcgKm5nSWY9XCJzaG93VXBsb2FkUG9wdXBcIiBbdXBsb2FkVHlwZUlkXT1cInVwbG9hZFR5cGVJZFwiIFtlbXBsb3llckRhdGFNb2RlbF09XCJlbXBsb3llckRhdGFNb2RlbFwiXHJcbiAgW2RhdGFdPVwiZGF0YU1vZGVsXCIgKGNhbmNlbCk9XCJjbG9zZVVwbG9hZFBvcHVwKClcIiAoc3VjY2Vzcyk9XCJ1cGxvYWRQb3B1cERvbmUoKVwiPjwvYXBwLXByb29mLW9mLWFueXRoaW5nPlxyXG48YXBwLWRhc2hib2FyZC1oZWxwICpuZ0lmPVwiaHMuaXNTaG93aW5nKClcIiBbYWN0aXZlSW5kZXhdPVwiMFwiPjwvYXBwLWRhc2hib2FyZC1oZWxwPlxyXG48aW9uLWdyaWQ+XHJcbiAgPGlvbi1yb3c+XHJcbiAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplWGw9XCI4XCIgc2l6ZUxnPVwiOFwiIHNpemVNZD1cIjEwXCIgb2Zmc2V0WGw9XCIyXCIgb2Zmc2V0TGc9XCIyXCIgb2Zmc2V0TWQ9XCIxXCI+XHJcbiAgICAgIDxoMT5Zb3VyIHVuZW1wbG95bWVudCBoaXN0b3J5PC9oMT5cclxuICAgIDwvaW9uLWNvbD5cclxuICA8L2lvbi1yb3c+XHJcbiAgPGlvbi1yb3c+XHJcbiAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplWGw9XCI4XCIgc2l6ZUxnPVwiOFwiIHNpemVNZD1cIjEwXCIgb2Zmc2V0WGw9XCIyXCIgb2Zmc2V0TGc9XCIyXCIgb2Zmc2V0TWQ9XCIxXCI+XHJcblxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWxlZnQgZmllbGRcIiAqbmdJZj1cImhpc3Rvcmllc1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGltZWxpbmVcIiBpZD1cImxibFRpbWVsaW5lXCI+e3t0aW1lPy5kZXNjfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwidGltZU9wdGlvblwiIFsobmdNb2RlbCldPVwidGltZVwiIG9wdGlvbkxhYmVsPVwiZGVzY1wiXHJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCIgW2FyaWFMYWJlbGxlZEJ5XT1cIidsYmxUaW1lbGluZSdcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbcFRvb2x0aXBdPVwiaXRlbS5kZXNjXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgdGFiaW5kZXg9XCIwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmRlc2NcIlxyXG4gICAgICAgICAgICAgICAgICByb2xlPVwibm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmljb25cIj57e2l0ZW0uZGVzY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcicsIGl0ZW0uaWNvbl1cIiAqbmdJZj1cIml0ZW0uaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodCBmaWVsZFwiICpuZ0lmPVwiaGlzdG9yaWVzXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbD57e2ZpbHRlcj8uZGVzY319PC9sYWJlbD48YnIgLz5cclxuICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cImZpbHRlck9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cImZpbHRlclwiIG9wdGlvbkxhYmVsPVwiaWNvblwiXHJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW3BUb29sdGlwXT1cIml0ZW0uZGVzY1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIHRhYmluZGV4PVwiMFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5kZXNjXCJcclxuICAgICAgICAgICAgICAgICAgcm9sZT1cIm5vdGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5pY29uXCI+e3tpdGVtLmFsdERlc2N9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYXInLCBpdGVtLmljb25dXCIgKm5nSWY9XCJpdGVtLmljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICA8YnIgLz5cclxuICAgICAgPHAtdGltZWxpbmUgW3ZhbHVlXT1cImZpbHRlcmVkSGlzdG9yaWVzXCIgKm5nSWY9XCIoZmlsdGVyZWRIaXN0b3JpZXMgJiYgZmlsdGVyZWRIaXN0b3JpZXMubGVuZ3RoID4gMClcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibWFya2VyXCIgbGV0LWhpc3Q+XHJcbiAgICAgICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwiaGlzdC5jb2xvclwiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcicsIGhpc3QuaWNvbl1cIiBjbGFzcz1cImN1c3RvbS1tYXJrZXJcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiIGxldC1oaXN0PlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiYXBwLWFjY29yZGlhbi1oZWFkaW5nXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAwcHg7IGZvbnQtd2VpZ2h0OiBib2xkO1wiPnt7aGlzdC55ZWFyfX08L2gxPlxyXG4gICAgICAgICAgPHAtYWNjb3JkaW9uIGV4cGFuZEljb249XCJwaSBwaS1mdyBwaS1jaGV2cm9uLXVwXCIgY29sbGFwc2VJY29uPVwicGkgcGktZncgcGktY2hldnJvbi11cFwiPlxyXG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nRm9yPVwibGV0IGhpc3Rvcnkgb2YgaGlzdC5oaXN0b3J5OyBsZXQgaSA9IGluZGV4XCIgW3NlbGVjdGVkXT1cImlzVmFsdWVTZWxlY3RlZChoaXN0b3J5LGkpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3cgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCIgc2l6ZT1cIjEyXCIgc2l6ZVhsPVwiM1wiIHNpemVMZz1cIjNcIiBzaXplTWQ9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYWNjb3JkaWFuLWhlYWRpbmdcIiBbc3R5bGUuY29sb3JdPVwiaGlzdG9yeS5jb2xvclwiPnt7aGlzdG9yeS5ldmVudERhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImFwcC10ZXh0LWFsaWduXCIgc2l6ZT1cIjExXCIgc2l6ZVhsPVwiOFwiIHNpemVMZz1cIjhcIiBzaXplTWQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYWNjb3JkaWFuLWhlYWRpbmdcIiBbc3R5bGUuY29sb3JdPVwiaGlzdG9yeS5jb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3toaXN0b3J5LnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJoaXN0b3J5LmNvbG9yXCIgKm5nSWY9XCJnZXRJY29uKGhpc3RvcnkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJnZXRJY29uKGhpc3RvcnkpXCIgY2xhc3M9XCJjdXN0b20tbWFya2VyXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWFjY29yZGlhbi1ib2R5XCIgW2lubmVySHRtbF09XCJoaXN0b3J5LmRlc2NcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGlzdG9yeS5idXR0b24gIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnIgLz48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCInZ28gdG8nICsgaGlzdG9yeS5idXR0b24uYnV0dG9uVGV4dFwiIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLS1jb2xvcjoge3toaXN0b3J5LmJ1dHRvbi5jb2xvcn19OyAtLWJvcmRlci1jb2xvcjoge3toaXN0b3J5LmJ1dHRvbi5jb2xvcn19OyAtLWJvcmRlci13aWR0aDogMnB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNoYXBlPVwicm91bmRcIiBjbGFzcz1cInNtYWxsLWJ1dHRvblwiIChjbGljayk9XCJvcGVuKGhpc3RvcnkpXCI+e3toaXN0b3J5LmJ1dHRvbi5idXR0b25UZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cclxuICAgICAgICAgIDwvcC1hY2NvcmRpb24+XHJcbiAgICAgICAgICA8YnIgLz5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtdGltZWxpbmU+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgaW9uLXRleHQtY2VudGVyIGFwcC1hY2NvcmRpYW4tYm9keVwiXHJcbiAgICAgICAgKm5nSWY9XCIoIWZpbHRlcmVkSGlzdG9yaWVzIHx8IGZpbHRlcmVkSGlzdG9yaWVzLmxlbmd0aCA8IDEpICYmICFpc0xvYWRpbmdcIj5cclxuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcicsIGZpbHRlckljb25dXCIgY2xhc3M9XCJsYXJnZS1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDxwPnt7J05vIGhpc3RvcnkgcHJlc2VudC4nIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogNSU7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtYWxpZ25cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWFjY29yZGlhbi1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxzdHJvbmc+e3sgJ1RvIHZpZXcgeW91ciBjbGFpbSBzdW1tYXJ5IGFuZCB3ZWVrbHkgcGF5IHN0YXR1cyBjbGljayBoZXJlJyB8IHRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gYXJpYS1sYWJlbD1cInZpZXcgb2xkIHJlY29yZHNcIiAoY2xpY2spPVwib3Blbk9sZFJlY29yZHMoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFzJywgJ2V4dGVybmFsLWxpbmstYWx0J11cIiBjbGFzcz1cImV4dGVybmFsLWxpbmstaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxiciAvPlxyXG5cclxuICAgIDwvaW9uLWNvbD5cclxuICA8L2lvbi1yb3c+XHJcbjwvaW9uLWdyaWQ+Il19
611
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oaXN0b3J5LXBhZ2UvaGlzdG9yeS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oaXN0b3J5LXBhZ2UvaGlzdG9yeS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVF6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDZjdCLG1EQUM2QjtJQUQ2QyxtTkFBZSxlQUFBLGdCQUFTLENBQUEsSUFBQyxxTUFDbkYsZUFBQSxtQkFBVyxDQUFBLElBRHdFO0lBQ3RFLGlCQUEwQjs7O0lBRDlCLG9EQUErQjs7OztJQUV4RCxpREFDaUY7SUFBNUQsc01BQVUsZUFBQSwwQkFBa0IsQ0FBQSxJQUFDLDJMQUFZLGVBQUEseUJBQWlCLENBQUEsSUFBN0I7SUFBK0IsaUJBQXdCOzs7SUFEMUQsa0RBQTZCLCtDQUFBLDBCQUFBOzs7SUFFNUUseUNBQWtGOztJQUF2QywrQkFBaUI7OztJQW1CMUMsNEJBQXlCO0lBQUEsWUFBYTtJQUFBLGlCQUFPOzs7SUFBcEIsZUFBYTtJQUFiLG1DQUFhOzs7O0lBQ3RDLDhCQUFpRTs7O0lBQXhELGdFQUEyQjs7O0lBSHRDLCtCQUNj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QUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO3FGQXJUVSxvQkFBb0I7b0VBQXBCLG9CQUFvQjtZQzNCakMsNkdBQ3VELDRGQUFBLHNGQUFBO1lBSXZELGdDQUFVLGNBQUEsaUJBQUEsU0FBQTtZQUdBLHlDQUF5QjtZQUFBLGlCQUFLLEVBQUEsRUFBQTtZQUd0QywrQkFBUyxpQkFBQSxlQUFBLGtCQUFBO1lBS0QsdUVBWU07WUFDUixpQkFBVTtZQUNWLG1DQUFrQjtZQUNoQix1RUFZTTtZQUNSLGlCQUFVLEVBQUE7WUFHWixzQkFBTTtZQUNOLHFGQTJDYSwwREFBQSwyREFBQSwyREFBQTtZQXVCYixzQkFBTTtZQUVSLGlCQUFVLEVBQUEsRUFBQTs7WUFwSDRDLG1DQUFjO1lBRWhELGVBQXFCO1lBQXJCLDBDQUFxQjtZQUV4QixlQUFvQjtZQUFwQix5Q0FBb0I7WUFZRyxnQkFBZTtZQUFmLG9DQUFlO1lBZWQsZUFBZTtZQUFmLG9DQUFlO1lBaUJiLGVBQXlEO1lBQXpELGdGQUF5RDtZQTZDcEUsZUFBZTtZQUFmLG9DQUFlO1lBSzFDLGVBQXdFO1lBQXhFLHFHQUF3RTtZQUszQyxlQUFxQjtZQUFyQiwwQ0FBcUI7MmlFRDlFN0MsQ0FBQyxtQkFBbUIsQ0FBQzs7aUZBRXRCLG9CQUFvQjtjQU5oQyxTQUFTOzJCQUNFLGtCQUFrQixjQUdoQixDQUFDLG1CQUFtQixDQUFDOztrRkFFdEIsb0JBQW9CO0FBMFRqQyxNQUFNLE9BQU8sYUFBYTtDQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBIZWxwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hlbHAvaGVscC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW1wbG95ZXJEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZXVwbG9hZC9FbXBsb3llckRhdGFNb2RlbCc7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdWVzdGlvbm5haXJlUXVlcnlNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXN0b3J5TW9kZWwsIFllYXJXaXNlSGlzdG9yeSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXNoYm9hcmQtbW9kZWwnO1xyXG5pbXBvcnQgeyByb3dFeHBhbnNpb25UcmlnZ2VyIH0gZnJvbSAnLi4vLi4vYW5uaW1hdGlvbnMvYXBwLWFuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50LXNlcnZpY2UvZXZlbnQtc2VydmljZSc7XHJcblxyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1oaXN0b3J5LXBhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXN0b3J5LXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9oaXN0b3J5LXBhZ2UuY29tcG9uZW50LmNzcycsXHJcbiAgYW5pbWF0aW9uczogW3Jvd0V4cGFuc2lvblRyaWdnZXJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXN0b3J5UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHNlbGVjdGVkTW9kZWw6IEhpc3RvcnlNb2RlbCBcclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBoaXN0b3JpZXM6IFllYXJXaXNlSGlzdG9yeVtdO1xyXG4gIGZpbHRlcmVkSGlzdG9yaWVzOiBZZWFyV2lzZUhpc3RvcnlbXTtcclxuICBmaWx0ZXJPcHRpb25zOiBhbnlbXTtcclxuICB0aW1lT3B0aW9uOiBhbnlbXTtcclxuICB2YWx1ZSA9IHsgaWNvbjogbnVsbCwgZGVzYzogJ0FsbCcsIHZhbHVlOiBcIkFMTFwiIH07XHJcbiAgdGltZSA9IHsgaWNvbjogJ2Nsb2NrJywgZGVzYzogJ2N1cnJlbnQnLCB2YWx1ZTogXCJDVVJSXCIgfTtcclxuICBmaWx0ZXIgPSB7IGljb246IG51bGwsIGRlc2M6ICdhbGwgeW91ciBoaXN0b3J5JywgdmFsdWU6IFwiQUxMXCIsIGFsdERlc2M6ICdhbGwnIH07XHJcbiAgZmlsdGVySWNvbiA9ICdoaXN0b3J5JztcclxuICBwYXltZW50VGV4dDogc3RyaW5nO1xyXG4gIHFlUXVlcnlNb2RlbHM6IFF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsW107XHJcbiAgaXNPcGVuUWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93T2xkZXJSZWNvcmRzTGluazogYm9vbGVhbjtcclxuICB0cmFuc2FjdGlvbklkU2VsZWN0ZWQ6IGFueTtcclxuICBzaG93VXBsb2FkUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB1cGxvYWRUeXBlSWQ6IFN0cmluZztcclxuICBlbXBsb3llckRhdGFNb2RlbDogQXJyYXk8RW1wbG95ZXJEYXRhTW9kZWw+O1xyXG4gIGNvdW50ID0gMDtcclxuICBkYXRhTW9kZWwgOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXM6IEV2ZW50U2VydmljZSwgcHVibGljIGhzOiBIZWxwU2VydmljZSwgcHJpdmF0ZSB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50aW1lT3B0aW9uID0gW1xyXG4gICAgICB7IGljb246ICdjbG9jaycsIGRlc2M6ICdjdXJyZW50JywgdmFsdWU6IFwiQ1VSUlwiIH0sXHJcbiAgICAgIHsgaWNvbjogJ2hpc3RvcnknLCBkZXNjOiAncGFzdCcsIHZhbHVlOiBcIlBBU1RcIiB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAodGhpcy51dGlsLmlzU3RhdGUoJ01TJykpIHtcclxuICAgICAgdGhpcy5wYXltZW50VGV4dCA9IFwid2Vla2x5IGNlcnRpZmljYXRpb25zIGFuZCBwYXltZW50c1wiXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYXltZW50VGV4dCA9IFwid2Vla2xpZXMgYW5kIHBheW1lbnRzXCJcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbHRlck9wdGlvbnMgPSBbXHJcbiAgICAgIHsgaWNvbjogbnVsbCwgZGVzYzogJ2FsbCB5b3VyIGhpc3RvcnknLCB2YWx1ZTogXCJBTExcIiwgYWx0RGVzYzogJ2FsbCcgfSxcclxuICAgICAgeyBpY29uOiAnc2Fjay1kb2xsYXInLCBkZXNjOiB0aGlzLnBheW1lbnRUZXh0LCB2YWx1ZTogXCJXS0xZXCIgfSxcclxuICAgICAgeyBpY29uOiAnZmlsZS11cGxvYWQnLCBkZXNjOiAndXBsb2FkZWQgZG9jdW1lbnRzJywgdmFsdWU6IFwiRE9DU1wiIH0sXHJcbiAgICAgIHsgaWNvbjogJ2JhbGFuY2Utc2NhbGUnLCBkZXNjOiAnaXNzdWUgJiBhcHBlYWxzJywgdmFsdWU6IFwiQVBQTFwiIH1cclxuXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCB0eG5JZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3R4bmlkJyk7XHJcbiAgICBpZiAodHhuSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uSWRTZWxlY3RlZCA9IGF0b2IodHhuSWQpO1xyXG4gICAgICAvL3RoaXMubG9nZ2VyLmluZm8odGhpcy50cmFuc2FjdGlvbklkU2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmxvYWRIaXN0b3J5KCk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50WWVhckhpc3RvcnkoKSB7XHJcbiAgICBsZXQgdHlwZUZpbHRlciA9IHRoaXMuZmlsdGVyLnZhbHVlO1xyXG4gICAgbGV0IHRpbWVGaWx0ZXIgPSB0aGlzLnRpbWUudmFsdWU7XHJcbiAgICBcclxuXHJcbiAgICBpZiAodGltZUZpbHRlciA9PSAnQ1VSUicpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEhpc3RvcmllcyA9IHRoaXMuaGlzdG9yaWVzLmZpbHRlcihoaXN0ID0+IChoaXN0LnllYXIgIT0gJ1N0YXJ0JyAmJiBwYXJzZUludChoaXN0LnllYXIpID09IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gdGhpcy5nZXRGaWx0ZXJlZEhpc3Rvcmllcyh0aGlzLmZpbHRlcmVkSGlzdG9yaWVzLCB0eXBlRmlsdGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEljb24oaGlzdG9yeTogSGlzdG9yeU1vZGVsKSB7XHJcbiAgICBsZXQgaGlzdCA9IHRoaXMuZmlsdGVyT3B0aW9ucy5maWx0ZXIoZm8gPT4gZm8udmFsdWUgPT0gaGlzdG9yeS5wcm9jZXNzVHlwZSlbMF07XHJcbiAgICBpZiAoaGlzdCkge1xyXG4gICAgICByZXR1cm4gWydmYXInLCBoaXN0Lmljb25dO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkSGlzdG9yeSgpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZXMuZ2V0SGlzdG9yeU9mTG9nZ2VkaW5Vc2VyKClcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlzdG9yaWVzID0gcmVzLmhpc3Rvcnk7XHJcbiAgICAgICAgdGhpcy5zaG93T2xkZXJSZWNvcmRzTGluayA9IHJlcy5zaG93T2xkZXJSZWNvcmRzTGluaztcclxuICAgICAgICAvL3RoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSBbLi4udGhpcy5oaXN0b3JpZXNdO1xyXG4gICAgICAgIHRoaXMuZ2V0Q3VycmVudFllYXJIaXN0b3J5KCk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICB0aGlzLmhpc3RvcmllcyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSGlzdG9yaWVzID0gbnVsbDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcclxuICAgIGxldCB0eXBlRmlsdGVyID0gdGhpcy5maWx0ZXIudmFsdWU7XHJcbiAgICBsZXQgdGltZUZpbHRlciA9IHRoaXMudGltZS52YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVySWNvbiA9IHRoaXMudGltZS5pY29uO1xyXG4gICAgaWYgKHRpbWVGaWx0ZXIgPT0gJ0NVUlInKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSB0aGlzLmhpc3Rvcmllcy5maWx0ZXIoaGlzdCA9PiAoaGlzdC55ZWFyICE9ICdTdGFydCcgJiYgcGFyc2VJbnQoaGlzdC55ZWFyKSA9PSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEhpc3RvcmllcyA9IHRoaXMuZ2V0RmlsdGVyZWRIaXN0b3JpZXModGhpcy5maWx0ZXJlZEhpc3RvcmllcywgdHlwZUZpbHRlcik7XHJcbiAgICB9IGVsc2UgaWYgKHRpbWVGaWx0ZXIgPT0gJ1BBU1QnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSB0aGlzLmhpc3Rvcmllcy5maWx0ZXIoaGlzdCA9PiAoaGlzdC55ZWFyICE9ICdTdGFydCcgJiYgaGlzdC55ZWFyICE9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArICcnKSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMgPSB0aGlzLmdldEZpbHRlcmVkSGlzdG9yaWVzKHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMsIHR5cGVGaWx0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlRmlsdGVyICE9ICdBTEwnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVySWNvbiA9IHRoaXMuZmlsdGVyLmljb247XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHl3aCA9IHRoaXMuZmlsdGVyZWRIaXN0b3JpZXMuZmlsdGVyKGggPT4gaC55ZWFyID09ICdTdGFydCcpO1xyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlcmVkSGlzdG9yaWVzLmxlbmd0aCA+IDAgJiYgeXdoLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEhpc3Rvcmllcy5wdXNoKHtcclxuICAgICAgICBjb2xvcjogJ3ZhcigtLWlvbi1jb2xvci1tZWRpdW0tZ3JheSknLFxyXG4gICAgICAgIGljb246ICdob3VyZ2xhc3Mtc3RhcnQnLFxyXG4gICAgICAgIGhpc3Rvcnk6IFtdLFxyXG4gICAgICAgIHllYXI6ICdTdGFydCdcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGaWx0ZXJlZEhpc3RvcmllcyhoaXN0b3JpZXM6IFllYXJXaXNlSGlzdG9yeVtdLCBmaWx0ZXI6IHN0cmluZykge1xyXG4gICAgaWYgKGZpbHRlciA9PSAnQUxMJykge1xyXG4gICAgICB0aGlzLmNvdW50ID0gdGhpcy5jb3VudCArIDE7XHJcbiAgICAgIHJldHVybiBoaXN0b3JpZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGlzdG9yaWVzXHJcbiAgICAgIC5maWx0ZXIoaGlzdCA9PiBoaXN0Lmhpc3Rvcnkuc29tZShzdWJIaXN0ID0+IHN1Ykhpc3QucHJvY2Vzc1R5cGUgPT09IGZpbHRlcikpXHJcbiAgICAgIC5tYXAoaGlzdG9yeSA9PiB7XHJcbiAgICAgICAgbGV0IG5ld0hpc3QgPSBPYmplY3QuYXNzaWduKHt9LCBoaXN0b3J5KTtcclxuICAgICAgICBuZXdIaXN0Lmhpc3RvcnkgPSBuZXdIaXN0Lmhpc3RvcnkuZmlsdGVyKGhpc3QgPT4gaGlzdC5wcm9jZXNzVHlwZSA9PT0gZmlsdGVyKTtcclxuICAgICAgICByZXR1cm4gbmV3SGlzdDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ocy5zZXRIZWxwQXZhaWxhYmlsaXR5KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGlvblZpZXdEaWRFbnRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuaHMuc2V0SGVscEF2YWlsYWJpbGl0eSh0cnVlKTtcclxuICB9XHJcblxyXG4gIGlzVmFsdWVTZWxlY3RlZChoaXN0b3J5OiBIaXN0b3J5TW9kZWwsIGNvdW50OiBhbnkpIHtcclxuICAgIC8vdGhpcy5sb2dnZXIuaW5mbygnaXMgdmFsdWUgc2VsZWN0ZWQnICwgdGhpcy50cmFuc2FjdGlvbklkU2VsZWN0ZWQpO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25JZFNlbGVjdGVkID09IG51bGwgJiYgY291bnQgPT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAoaGlzdG9yeS50cmFuc2FjdGlvbklkID09IHRoaXMudHJhbnNhY3Rpb25JZFNlbGVjdGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb3BlbihoaXN0b3J5TW9kZWw6IEhpc3RvcnlNb2RlbCkge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IGhpc3RvcnlNb2RlbDtcclxuICAgIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uLnVyaS5pbmNsdWRlcyhcIlBvcHVwXCIpKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0hpc3RvcnkgYnV0dG9uIHVyaSBpbmNsdWRlcyBQb3B1cCB2YWx1ZScpO1xyXG4gICAgICBpZiAodGhpcy5scy5pc0NzcigpICYmIGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5jbG10T25seUZOID09ICcxJykge1xyXG4gICAgICAgIGxldCBlcnJvck1vZGVsOiBFcnJvck1vZGVsID0gbmV3IEVycm9yTW9kZWwoKTtcclxuICAgICAgICBlcnJvck1vZGVsLm1zZyA9IFwiVGhpcyBpcyBhIGNsYWltYW50IG9ubHkgZnVuY3Rpb25hbGl0eS5cIjtcclxuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycm9yTW9kZWwpO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmFjdGlvblVyaSA9PSAnQXBwZWFsc1BvcHVwJyAmJiBoaXN0b3J5TW9kZWwuZGF0YS5xZURhdGEpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxzOiBBcnJheTxRdWVzdGlvbm5haXJlUXVlcnlNb2RlbD4gPSBKU09OLnBhcnNlKGhpc3RvcnlNb2RlbC5kYXRhLnFlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5xZVF1ZXJ5TW9kZWxzID0gdGhpcy5jcmVhdGVRZVF1ZXJ5TW9kZWwocXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxzKTtcclxuICAgICAgICB0aGlzLmlzT3BlblFlID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICd1cGxvYWRQb3B1cEluQ3AnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE1vZGVsLmRhdGEpO1xyXG4gICAgICAgIHRoaXMudXBsb2FkVHlwZUlkID0gdGhpcy5zZWxlY3RlZE1vZGVsLmRhdGEudXBsb2FkVHlwZUlkO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kZWwuZGF0YT8uZW1wbG95ZXJEYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuZW1wbG95ZXJEYXRhTW9kZWwgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRNb2RlbC5kYXRhPy5lbXBsb3llckRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGVsLmRhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhTW9kZWwgPSB0aGlzLnNlbGVjdGVkTW9kZWwuZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93VXBsb2FkUG9wdXAgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ3VwbG9hZFBvcHVwJykge1xyXG4gICAgICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTkmQ0xBSU1BTlRfUE9SVEFMPXRydWUmdmlldz0udXBsb2FkZG9jdW1lbnRlbnRlcnNzbmAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ3VwbG9hZFdTQVBvcHVwJykge1xyXG4gICAgICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSAnLnVwbG9hZGRvY3VtZW50d29ya3NlYXJjaGF1ZGl0JztcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTkmQ0xBSU1BTlRfUE9SVEFMPXRydWUmdmlldz0ubmF2aWdhdGlvbmJyaWRnZSZ0YXJnZXQ9JHt0YXJnZXR9YCwgJ19zZWxmJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbiAmJiBoaXN0b3J5TW9kZWwuYnV0dG9uLmRpYWxvZyA9PSAndXBsb2FkSURWUG9wdXAnKSB7XHJcbiAgICAgICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpO1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OSZDTEFJTUFOVF9QT1JUQUw9dHJ1ZSZ2aWV3PS5zZWxlY3RpZHZlcmlmaWNhdGlvbm9wdGlvbmAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ3VwbG9hZFBheW1lbnRPcHRpb25Eb2NQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9LnBheW1lbnRvcHRpb25kb2N1cGxvYWRgLCAnX3NlbGYnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChoaXN0b3J5TW9kZWwuYnV0dG9uICYmIGhpc3RvcnlNb2RlbC5idXR0b24uZGlhbG9nID09ICdvdnBXYWl2ZXJQb3B1cCcpIHtcclxuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25JZCA9IGhpc3RvcnlNb2RlbC50cmFuc2FjdGlvbklkXHJcbiAgICAgICAgY29uc3QgZG9ja2V0TnVtYmVyID0gaGlzdG9yeU1vZGVsLmRhdGE/LmRvY2tldF9udW1iZXIgfHwgJydcclxuICAgICAgICBjb25zdCBidWNEZWNpc2lvbklkID0gaGlzdG9yeU1vZGVsLmRhdGE/LmJ1Y0RlY2lzaW9uSWQgfHwgJydcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTkmQ0xBSU1BTlRfUE9SVEFMPXRydWUmdmlldz0ubWVmaWxlb3ZlcnBheW1lbnR3YWl2ZXJyZXF1ZXN0ZGVjaXNpb25saXN0JnRyYW5zYWN0aW9uSWQ9JHt0cmFuc2FjdGlvbklkfSZkb2NrZXROdW1iZXI9JHtkb2NrZXROdW1iZXJ9JmJ1Y0RlY2lzaW9uSWQ9JHtidWNEZWNpc2lvbklkfWAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5idXR0b24gJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi5kaWFsb2cgPT0gJ1Jlc2NoZWR1bGVSZXNlYVBvcHVwJykge1xyXG4gICAgICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTsgXHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9LnJlc2NoZWR1bGVyZXNlYWFwcG9pbnRtZW50YCwgJ19zZWxmJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbiAmJiBoaXN0b3J5TW9kZWwuYnV0dG9uLmRpYWxvZyA9PSAnU2NoZWR1bGVSZXNlYVBvcHVwJykge1xyXG4gICAgICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTsgXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJy5yZWVtcGxveW1lbnRzZXJ2aWNlcyc7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9Lm5hdmlnYXRpb25icmlkZ2UmdGFyZ2V0PSR7dGFyZ2V0fWAsICdfc2VsZicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXRpbC5wcmVzZW50VG9hc3QoJ1NjZW5hcmlvIHVuZGVyIGRldmVsb3BtZW50LiBQbGVhc2UgY2hlY2sgd2l0aCBkZXZlbG9wZXIuJyk7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoaGlzdG9yeU1vZGVsKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmkgIT0gJycgJiYgaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmkuaW5jbHVkZXMoXCJQYWdlXCIpKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0hpc3RvcnkgYnV0dG9uIHVyaSBpbmNsdWRlcyBQYWdlIHZhbHVlJyk7XHJcbiAgICAgIGlmIChoaXN0b3J5TW9kZWwuZGF0YSAmJiBoaXN0b3J5TW9kZWwuZGF0YS5xZURhdGEpIHtcclxuICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBhcnNlKGhpc3RvcnlNb2RlbC5kYXRhLnFlRGF0YSk7XHJcbiAgICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdFdpdGhEYXRhKGhpc3RvcnlNb2RlbC5idXR0b24uY29udGV4dCwgaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmwsIGpzb25EYXRhWzBdLmR5bmFtaWNQYXJhbSwgdGhpcy5uYXYpO1xyXG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlNb2RlbC5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdFdpdGhEYXRhKGhpc3RvcnlNb2RlbC5idXR0b24uY29udGV4dCwgaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmwsIGhpc3RvcnlNb2RlbC5kYXRhLCB0aGlzLm5hdilcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KGhpc3RvcnlNb2RlbC5idXR0b24uY29udGV4dCwgaGlzdG9yeU1vZGVsLmJ1dHRvbi51cmwsIHRoaXMubmF2KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbk9sZFJlY29yZHMoKSB7XHJcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XHJcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5scy5pc0NzcigpKSB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxzLmlzQ2xhaW1hbnQoKSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9LmNsYWltYW50c3VtbWFyeWAsICdfc2VsZicpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUWVRdWVyeU1vZGVsKHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsczogUXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxbXSkge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVscy5tYXAocXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwgPT4ge1xyXG4gICAgICBsZXQgZHluYW1pY1BhcmFtID0ge307XHJcbiAgICAgIHZhciBrZXlNb2RlbCA9IDxLZXlWYWx1ZU1vZGVsPnF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsLmR5bmFtaWNQYXJhbVswXTtcclxuICAgICAgdmFyIHRpdGxlID0ga2V5TW9kZWwua2V5O1xyXG4gICAgICB2YXIgdmVyYmFpZ2VLZXkgPSBrZXlNb2RlbC52YWx1ZTtcclxuICAgICAgY29uc3QgdHJhbnNsYXRlZFRleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHZlcmJhaWdlS2V5KTtcclxuICAgICAgZHluYW1pY1BhcmFtW3RpdGxlXSA9IHRyYW5zbGF0ZWRUZXh0O1xyXG4gICAgICBkeW5hbWljUGFyYW1bJ2hpZEFwcGVhbERlY2lzaW9uJ10gPSBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbC5kYXRhWydoaWRBcHBlYWxEZWNpc2lvbiddO1xyXG4gICAgICBkeW5hbWljUGFyYW1bJ2RvY2tldG51bWJlciddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnZG9ja2V0bnVtYmVyJ107XHJcbiAgICAgIGR5bmFtaWNQYXJhbVsncGFyZW50QXBwZWFsSWQnXSA9IHF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsLmRhdGFbJ3BhcmVudEFwcGVhbElkJ107XHJcbiAgICAgIGR5bmFtaWNQYXJhbVsnYXBwZWFsVHlwZSddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnYXBwZWFsVHlwZSddO1xyXG4gICAgICBkeW5hbWljUGFyYW1bJ2FwcGVhbExldmVsJ10gPSBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbC5kYXRhWydhcHBlYWxMZXZlbCddO1xyXG4gICAgICBpZiAodGhpcy51dGlsLmlzU3RhdGUoJ01FJykpIHtcclxuICAgICAgICBkeW5hbWljUGFyYW1bJ2FwcGVhbENvbnNpZGVyZWRMYXRlRGF0ZSddID0gcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWwuZGF0YVsnYXBwZWFsQ29uc2lkZXJlZExhdGVEYXRlJ107XHJcbiAgICAgICAgZHluYW1pY1BhcmFtWydsYXRlQXBwZWFsJ10gPSBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbC5kYXRhWydsYXRlQXBwZWFsJ107XHJcbiAgICAgIH1cclxuICAgICAgcXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxbJ2R5bmFtaWNQYXJhbSddID0gZHluYW1pY1BhcmFtO1xyXG4gICAgICBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbFsnYXV0b1NhdmUnXSA9IHRydWU7XHJcbiAgICAgIHJldHVybiBxdWVzdGlvbm5haXJlUXVlcnlNb2RlbDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VRZSgpIHtcclxuICAgIHRoaXMuaXNPcGVuUWUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IG51bGw7XHJcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdRZSBjYW5jZWwnKTtcclxuICB9XHJcblxyXG4gIHF1U3VjY2VzcygpIHtcclxuICAgIHRoaXMuaGlzdG9yaWVzID0gbnVsbDtcclxuICAgIHRoaXMuaXNPcGVuUWUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kZWwpIHtcclxuICAgICAgdGhpcy5lc1xyXG4gICAgICAgIC5kaXNhYmxlSGlzdG9yeUJ1dHRvbih0aGlzLnNlbGVjdGVkTW9kZWwudHJhbnNhY3Rpb25JZCwgdGhpcy5zZWxlY3RlZE1vZGVsLmhpc3RvcnlLZXkpXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgdGltZXIoMjAwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkSGlzdG9yeSgpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJFcnJvciB3aGlsZSBkZWFjdGl2YXRpbmcgdGhlIGV2ZW50LlwiLCBlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUWUgc3VjY2VzcycpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VVcGxvYWRQb3B1cCgpIHtcclxuICAgIHRoaXMuc2hvd1VwbG9hZFBvcHVwID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRQb3B1cERvbmUoKSB7XHJcbiAgICB0aGlzLnNob3dVcGxvYWRQb3B1cCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlbCkge1xyXG4gICAgICB0aGlzLmVzXHJcbiAgICAgICAgLmRpc2FibGVIaXN0b3J5QnV0dG9uKHRoaXMuc2VsZWN0ZWRNb2RlbC50cmFuc2FjdGlvbklkLCB0aGlzLnNlbGVjdGVkTW9kZWwuaGlzdG9yeUtleSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiRXJyb3Igd2hpbGUgZGVhY3RpdmF0aW5nIHRoZSBldmVudC5cIiwgZXJyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEtleVZhbHVlTW9kZWwge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbn1cclxuXHJcbiIsIjxhcHAtbXVsdGktcXVlc3Rpb25uYWlyZSBbcWVRdWVyeU1vZGVsc109XCJxZVF1ZXJ5TW9kZWxzXCIgKm5nSWY9XCJpc09wZW5RZVwiIChtb2RlbENhbmNlbCk9XCJjbG9zZVFlKClcIlxyXG4gIChvbkNvbXBsZXRlKT1cInF1U3VjY2VzcygpXCI+PC9hcHAtbXVsdGktcXVlc3Rpb25uYWlyZT5cclxuPGFwcC1wcm9vZi1vZi1hbnl0aGluZyAqbmdJZj1cInNob3dVcGxvYWRQb3B1cFwiIFt1cGxvYWRUeXBlSWRdPVwidXBsb2FkVHlwZUlkXCIgW2VtcGxveWVyRGF0YU1vZGVsXT1cImVtcGxveWVyRGF0YU1vZGVsXCJcclxuICBbZGF0YV09XCJkYXRhTW9kZWxcIiAoY2FuY2VsKT1cImNsb3NlVXBsb2FkUG9wdXAoKVwiIChzdWNjZXNzKT1cInVwbG9hZFBvcHVwRG9uZSgpXCI+PC9hcHAtcHJvb2Ytb2YtYW55dGhpbmc+XHJcbjxhcHAtZGFzaGJvYXJkLWhlbHAgKm5nSWY9XCJocy5pc1Nob3dpbmcoKVwiIFthY3RpdmVJbmRleF09XCIwXCI+PC9hcHAtZGFzaGJvYXJkLWhlbHA+XHJcbjxpb24tZ3JpZD5cclxuICA8aW9uLXJvdz5cclxuICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVYbD1cIjhcIiBzaXplTGc9XCI4XCIgc2l6ZU1kPVwiMTBcIiBvZmZzZXRYbD1cIjJcIiBvZmZzZXRMZz1cIjJcIiBvZmZzZXRNZD1cIjFcIj5cclxuICAgICAgPGgxPllvdXIgdW5lbXBsb3ltZW50IGhpc3Rvcnk8L2gxPlxyXG4gICAgPC9pb24tY29sPlxyXG4gIDwvaW9uLXJvdz5cclxuICA8aW9uLXJvdz5cclxuICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVYbD1cIjhcIiBzaXplTGc9XCI4XCIgc2l6ZU1kPVwiMTBcIiBvZmZzZXRYbD1cIjJcIiBvZmZzZXRMZz1cIjJcIiBvZmZzZXRNZD1cIjFcIj5cclxuXHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtbGVmdCBmaWVsZFwiICpuZ0lmPVwiaGlzdG9yaWVzXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0aW1lbGluZVwiIGlkPVwibGJsVGltZWxpbmVcIj57e3RpbWU/LmRlc2N9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ0aW1lT3B0aW9uXCIgWyhuZ01vZGVsKV09XCJ0aW1lXCIgb3B0aW9uTGFiZWw9XCJkZXNjXCJcclxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIiBbYXJpYUxhYmVsbGVkQnldPVwiJ2xibFRpbWVsaW5lJ1wiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtwVG9vbHRpcF09XCJpdGVtLmRlc2NcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiB0YWJpbmRleD1cIjBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uZGVzY1wiXHJcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJub3RlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uaWNvblwiPnt7aXRlbS5kZXNjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFyJywgaXRlbS5pY29uXVwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0IGZpZWxkXCIgKm5nSWY9XCJoaXN0b3JpZXNcIj5cclxuICAgICAgICAgICAgPGxhYmVsPnt7ZmlsdGVyPy5kZXNjfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiZmlsdGVyT3B0aW9uc1wiIFsobmdNb2RlbCldPVwiZmlsdGVyXCIgb3B0aW9uTGFiZWw9XCJpY29uXCJcclxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbcFRvb2x0aXBdPVwiaXRlbS5kZXNjXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgdGFiaW5kZXg9XCIwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmRlc2NcIlxyXG4gICAgICAgICAgICAgICAgICByb2xlPVwibm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmljb25cIj57e2l0ZW0uYWx0RGVzY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcicsIGl0ZW0uaWNvbl1cIiAqbmdJZj1cIml0ZW0uaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgIDxiciAvPlxyXG4gICAgICA8cC10aW1lbGluZSBbdmFsdWVdPVwiZmlsdGVyZWRIaXN0b3JpZXNcIiAqbmdJZj1cIihmaWx0ZXJlZEhpc3RvcmllcyAmJiBmaWx0ZXJlZEhpc3Rvcmllcy5sZW5ndGggPiAwKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJtYXJrZXJcIiBsZXQtaGlzdD5cclxuICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJoaXN0LmNvbG9yXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFyJywgaGlzdC5pY29uXVwiIGNsYXNzPVwiY3VzdG9tLW1hcmtlclwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCIgbGV0LWhpc3Q+XHJcbiAgICAgICAgICA8aDEgY2xhc3M9XCJhcHAtYWNjb3JkaWFuLWhlYWRpbmdcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDBweDsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+e3toaXN0LnllYXJ9fTwvaDE+XHJcbiAgICAgICAgICA8cC1hY2NvcmRpb24gZXhwYW5kSWNvbj1cInBpIHBpLWZ3IHBpLWNoZXZyb24tdXBcIiBjb2xsYXBzZUljb249XCJwaSBwaS1mdyBwaS1jaGV2cm9uLXVwXCI+XHJcbiAgICAgICAgICAgIDxwLWFjY29yZGlvblRhYiAqbmdGb3I9XCJsZXQgaGlzdG9yeSBvZiBoaXN0Lmhpc3Rvcnk7IGxldCBpID0gaW5kZXhcIiBbc2VsZWN0ZWRdPVwiaXNWYWx1ZVNlbGVjdGVkKGhpc3RvcnksaSlcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIiBzaXplPVwiMTJcIiBzaXplWGw9XCIzXCIgc2l6ZUxnPVwiM1wiIHNpemVNZD1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1hY2NvcmRpYW4taGVhZGluZ1wiIFtzdHlsZS5jb2xvcl09XCJoaXN0b3J5LmNvbG9yXCI+e3toaXN0b3J5LmV2ZW50RGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiYXBwLXRleHQtYWxpZ25cIiBzaXplPVwiMTFcIiBzaXplWGw9XCI4XCIgc2l6ZUxnPVwiOFwiIHNpemVNZD1cIjhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1hY2NvcmRpYW4taGVhZGluZ1wiIFtzdHlsZS5jb2xvcl09XCJoaXN0b3J5LmNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e2hpc3RvcnkudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImhpc3RvcnkuY29sb3JcIiAqbmdJZj1cImdldEljb24oaGlzdG9yeSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImdldEljb24oaGlzdG9yeSlcIiBjbGFzcz1cImN1c3RvbS1tYXJrZXJcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYWNjb3JkaWFuLWJvZHlcIiBbaW5uZXJIdG1sXT1cImhpc3RvcnkuZGVzY1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoaXN0b3J5LmJ1dHRvbiAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxiciAvPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidnbyB0bycgKyBoaXN0b3J5LmJ1dHRvbi5idXR0b25UZXh0XCIgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCItLWNvbG9yOiB7e2hpc3RvcnkuYnV0dG9uLmNvbG9yfX07IC0tYm9yZGVyLWNvbG9yOiB7e2hpc3RvcnkuYnV0dG9uLmNvbG9yfX07IC0tYm9yZGVyLXdpZHRoOiAycHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwic21hbGwtYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW4oaGlzdG9yeSlcIj57e2hpc3RvcnkuYnV0dG9uLmJ1dHRvblRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxyXG4gICAgICAgICAgPC9wLWFjY29yZGlvbj5cclxuICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC10aW1lbGluZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBpb24tdGV4dC1jZW50ZXIgYXBwLWFjY29yZGlhbi1ib2R5XCJcclxuICAgICAgICAqbmdJZj1cIighZmlsdGVyZWRIaXN0b3JpZXMgfHwgZmlsdGVyZWRIaXN0b3JpZXMubGVuZ3RoIDwgMSkgJiYgIWlzTG9hZGluZ1wiPlxyXG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFyJywgZmlsdGVySWNvbl1cIiBjbGFzcz1cImxhcmdlLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPHA+e3snTm8gaGlzdG9yeSBwcmVzZW50LicgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1JTtcIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWFsaWduXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1hY2NvcmRpYW4tYm9keVwiPlxyXG4gICAgICAgICAgICA8c3Ryb25nPnt7ICdUbyB2aWV3IHlvdXIgY2xhaW0gc3VtbWFyeSBhbmQgd2Vla2x5IHBheSBzdGF0dXMgY2xpY2sgaGVyZScgfCB0cmFuc2xhdGUgfX08L3N0cm9uZz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJ2aWV3IG9sZCByZWNvcmRzXCIgKGNsaWNrKT1cIm9wZW5PbGRSZWNvcmRzKClcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcycsICdleHRlcm5hbC1saW5rLWFsdCddXCIgY2xhc3M9XCJleHRlcm5hbC1saW5rLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnIgLz5cclxuXHJcbiAgICA8L2lvbi1jb2w+XHJcbiAgPC9pb24tcm93PlxyXG48L2lvbi1ncmlkPiJdfQ==