@po-ui/ng-components 6.11.0 → 6.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm2020/lib/components/po-button/po-button-base.component.mjs +27 -7
  2. package/esm2020/lib/components/po-button/po-button.component.mjs +4 -4
  3. package/esm2020/lib/components/po-field/index.mjs +3 -1
  4. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.module.mjs +20 -0
  5. package/esm2020/lib/components/po-field/po-datepicker/po-datepicker-base.component.mjs +8 -3
  6. package/esm2020/lib/components/po-field/po-field.module.mjs +22 -15
  7. package/esm2020/lib/components/po-field/po-radio/po-radio-base.component.mjs +104 -0
  8. package/esm2020/lib/components/po-field/po-radio/po-radio-size.enum.mjs +6 -0
  9. package/esm2020/lib/components/po-field/po-radio/po-radio.component.mjs +100 -0
  10. package/esm2020/lib/components/po-list-view/po-list-view.component.mjs +77 -82
  11. package/esm2020/lib/components/po-list-view/po-list-view.module.mjs +6 -4
  12. package/esm2020/lib/components/po-menu/po-menu-base.component.mjs +46 -6
  13. package/esm2020/lib/components/po-menu/po-menu.component.mjs +5 -5
  14. package/esm2020/lib/components/po-table/po-table-base.component.mjs +6 -2
  15. package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +96 -25
  16. package/esm2020/lib/components/po-table/po-table-detail/po-table-detail.component.mjs +40 -40
  17. package/esm2020/lib/components/po-table/po-table.component.mjs +620 -596
  18. package/esm2020/lib/components/po-table/po-table.module.mjs +12 -4
  19. package/esm2020/lib/services/po-notification/po-notification-base.service.mjs +6 -4
  20. package/esm2020/lib/services/po-notification/po-notification.interface.mjs +1 -1
  21. package/esm2020/lib/services/po-notification/po-notification.module.mjs +6 -4
  22. package/esm2020/lib/services/po-notification/po-notification.service.mjs +3 -2
  23. package/esm2020/lib/services/po-notification/po-toaster/po-toaster.component.mjs +49 -32
  24. package/esm2020/lib/services/po-notification/po-toaster/po-toaster.literals.mjs +15 -0
  25. package/esm2020/lib/utils/util.mjs +9 -1
  26. package/fesm2015/po-ui-ng-components.mjs +1697 -1271
  27. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  28. package/fesm2020/po-ui-ng-components.mjs +1672 -1255
  29. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  30. package/lib/components/po-button/po-button-base.component.d.ts +16 -6
  31. package/lib/components/po-field/index.d.ts +2 -0
  32. package/lib/components/po-field/po-checkbox/po-checkbox.module.d.ts +9 -0
  33. package/lib/components/po-field/po-field.module.d.ts +35 -34
  34. package/lib/components/po-field/po-radio/po-radio-base.component.d.ts +58 -0
  35. package/lib/components/po-field/po-radio/po-radio-size.enum.d.ts +4 -0
  36. package/lib/components/po-field/po-radio/po-radio.component.d.ts +38 -0
  37. package/lib/components/po-list-view/po-list-view.module.d.ts +6 -4
  38. package/lib/components/po-menu/po-menu-base.component.d.ts +19 -1
  39. package/lib/components/po-table/po-table-base.component.d.ts +2 -0
  40. package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +16 -1
  41. package/lib/components/po-table/po-table.component.d.ts +6 -0
  42. package/lib/components/po-table/po-table.module.d.ts +14 -12
  43. package/lib/services/po-notification/po-notification-base.service.d.ts +4 -2
  44. package/lib/services/po-notification/po-notification.interface.d.ts +5 -1
  45. package/lib/services/po-notification/po-notification.module.d.ts +3 -1
  46. package/lib/services/po-notification/po-toaster/po-toaster.component.d.ts +5 -1
  47. package/lib/services/po-notification/po-toaster/po-toaster.literals.d.ts +14 -0
  48. package/lib/utils/util.d.ts +1 -0
  49. package/package.json +6 -4
  50. package/po-ui-ng-components-6.13.0.tgz +0 -0
  51. package/schematics/ng-add/index.js +1 -1
  52. package/schematics/ng-add/index.spec.js +5 -5
  53. package/schematics/ng-generate/po-page-default/index.spec.js +12 -12
  54. package/schematics/ng-generate/po-page-detail/index.spec.js +12 -12
  55. package/schematics/ng-generate/po-page-edit/index.spec.js +12 -12
  56. package/schematics/ng-generate/po-page-list/index.spec.js +12 -12
  57. package/schematics/ng-generate/sidemenu/index.spec.js +4 -4
  58. package/schematics/ng-update/v2/index.js +1 -1
  59. package/schematics/ng-update/v3/index.js +1 -1
  60. package/schematics/ng-update/v4/index.js +1 -1
  61. package/schematics/ng-update/v5/index.js +1 -1
  62. package/schematics/ng-update/v6/index.js +1 -1
  63. package/po-ui-ng-components-6.11.0.tgz +0 -0
@@ -16,26 +16,32 @@ import * as i6 from "../po-container/po-container.component";
16
16
  import * as i7 from "../po-loading/po-loading.component";
17
17
  import * as i8 from "./po-table-subtitle-footer/po-table-subtitle-footer.component";
18
18
  import * as i9 from "../po-button/po-button.component";
19
- import * as i10 from "../../directives/po-tooltip/po-tooltip.directive";
20
- import * as i11 from "./po-table-column-link/po-table-column-link.component";
21
- import * as i12 from "./po-table-column-icon/po-table-column-icon.component";
22
- import * as i13 from "./po-table-subtitle-circle/po-table-subtitle-circle.component";
23
- import * as i14 from "./po-table-column-label/po-table-column-label.component";
24
- import * as i15 from "./po-table-detail/po-table-detail.component";
25
- import * as i16 from "../po-popup/po-popup.component";
26
- import * as i17 from "../po-icon/po-icon.component";
27
- import * as i18 from "./po-table-column-manager/po-table-column-manager.component";
28
- import * as i19 from "../../pipes/po-time/po-time.pipe";
19
+ import * as i10 from "../po-field/po-checkbox/po-checkbox.component";
20
+ import * as i11 from "@angular/forms";
21
+ import * as i12 from "../../directives/po-tooltip/po-tooltip.directive";
22
+ import * as i13 from "@angular/cdk/scrolling";
23
+ import * as i14 from "./po-table-column-link/po-table-column-link.component";
24
+ import * as i15 from "./po-table-column-icon/po-table-column-icon.component";
25
+ import * as i16 from "./po-table-subtitle-circle/po-table-subtitle-circle.component";
26
+ import * as i17 from "./po-table-column-label/po-table-column-label.component";
27
+ import * as i18 from "./po-table-detail/po-table-detail.component";
28
+ import * as i19 from "../po-popup/po-popup.component";
29
+ import * as i20 from "../po-icon/po-icon.component";
30
+ import * as i21 from "./po-table-column-manager/po-table-column-manager.component";
31
+ import * as i22 from "../../pipes/po-time/po-time.pipe";
29
32
  const _c0 = ["noColumnsHeader"];
30
33
  const _c1 = ["popup"];
31
34
  const _c2 = ["tableFooter"];
32
35
  const _c3 = ["tableWrapper"];
33
36
  const _c4 = ["poTableTbody"];
34
37
  const _c5 = ["poTableThead"];
35
- const _c6 = ["columnManagerTarget"];
36
- const _c7 = ["actionsIconElement"];
37
- const _c8 = ["actionsElement"];
38
- const _c9 = ["headersTable"];
38
+ const _c6 = ["poTableTbodyVirtual"];
39
+ const _c7 = ["columnManager"];
40
+ const _c8 = ["columnActionLeft"];
41
+ const _c9 = ["columnManagerTarget"];
42
+ const _c10 = ["actionsIconElement"];
43
+ const _c11 = ["actionsElement"];
44
+ const _c12 = ["headersTable"];
39
45
  function PoTableComponent_po_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
40
46
  i0.ɵɵelementContainer(0);
41
47
  } }
@@ -66,23 +72,21 @@ function PoTableComponent_ng_template_1_div_5_ng_container_6_Template(rf, ctx) {
66
72
  i0.ɵɵelementContainer(0);
67
73
  } }
68
74
  function PoTableComponent_ng_template_1_div_5_Template(rf, ctx) { if (rf & 1) {
69
- const _r37 = i0.ɵɵgetCurrentView();
70
75
  i0.ɵɵelementStart(0, "div", 27)(1, "div", 28, 29);
71
76
  i0.ɵɵtemplate(3, PoTableComponent_ng_template_1_div_5_ng_container_3_Template, 1, 0, "ng-container", 17);
72
77
  i0.ɵɵelementEnd();
73
78
  i0.ɵɵelementStart(4, "div", 30, 31);
74
- i0.ɵɵlistener("scroll", function PoTableComponent_ng_template_1_div_5_Template_div_scroll_4_listener() { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(2); return ctx_r36.syncronizeHorizontalScroll(); });
75
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_1_div_5_ng_container_6_Template, 1, 0, "ng-container", 17);
79
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_1_div_5_ng_container_6_Template, 1, 0, "ng-container", 32);
76
80
  i0.ɵɵelementEnd()();
77
81
  } if (rf & 2) {
78
82
  const ctx_r29 = i0.ɵɵnextContext(2);
79
83
  const _r4 = i0.ɵɵreference(5);
80
84
  const _r6 = i0.ɵɵreference(7);
81
- i0.ɵɵstyleProp("height", ctx_r29.heightTableContainer, "px");
85
+ const _r8 = i0.ɵɵreference(9);
82
86
  i0.ɵɵadvance(3);
83
87
  i0.ɵɵproperty("ngTemplateOutlet", _r4);
84
88
  i0.ɵɵadvance(3);
85
- i0.ɵɵproperty("ngTemplateOutlet", _r6);
89
+ i0.ɵɵproperty("ngIf", ctx_r29.height)("ngIfThen", _r6)("ngIfElse", _r8);
86
90
  } }
87
91
  function PoTableComponent_ng_template_1_div_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
88
92
  i0.ɵɵelementContainer(0);
@@ -99,17 +103,17 @@ function PoTableComponent_ng_template_1_div_6_Template(rf, ctx) { if (rf & 1) {
99
103
  } }
100
104
  function PoTableComponent_ng_template_1_div_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
101
105
  i0.ɵɵelementContainerStart(0);
102
- i0.ɵɵelement(1, "po-table-subtitle-footer", 34);
106
+ i0.ɵɵelement(1, "po-table-subtitle-footer", 35);
103
107
  i0.ɵɵelementContainerEnd();
104
108
  } if (rf & 2) {
105
- const column_r40 = ctx.$implicit;
106
- const ctx_r39 = i0.ɵɵnextContext(3);
109
+ const column_r38 = ctx.$implicit;
110
+ const ctx_r37 = i0.ɵɵnextContext(3);
107
111
  i0.ɵɵadvance(1);
108
- i0.ɵɵproperty("p-literals", ctx_r39.literals)("p-subtitles", column_r40.subtitles);
112
+ i0.ɵɵproperty("p-literals", ctx_r37.literals)("p-subtitles", column_r38.subtitles);
109
113
  } }
110
114
  function PoTableComponent_ng_template_1_div_7_Template(rf, ctx) { if (rf & 1) {
111
- i0.ɵɵelementStart(0, "div", 32);
112
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_1_div_7_ng_container_1_Template, 2, 2, "ng-container", 33);
115
+ i0.ɵɵelementStart(0, "div", 33);
116
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_1_div_7_ng_container_1_Template, 2, 2, "ng-container", 34);
113
117
  i0.ɵɵelementEnd();
114
118
  } if (rf & 2) {
115
119
  const ctx_r31 = i0.ɵɵnextContext(2);
@@ -140,9 +144,9 @@ function PoTableComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
140
144
  i0.ɵɵproperty("ngIf", ctx_r2.hasFooter);
141
145
  } }
142
146
  function PoTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
143
- const _r43 = i0.ɵɵgetCurrentView();
144
- i0.ɵɵelementStart(0, "div", 35, 36)(2, "po-button", 37);
145
- i0.ɵɵlistener("p-click", function PoTableComponent_div_3_Template_po_button_p_click_2_listener() { i0.ɵɵrestoreView(_r43); const ctx_r42 = i0.ɵɵnextContext(); return ctx_r42.onShowMore(); });
147
+ const _r41 = i0.ɵɵgetCurrentView();
148
+ i0.ɵɵelementStart(0, "div", 36, 37)(2, "po-button", 38);
149
+ i0.ɵɵlistener("p-click", function PoTableComponent_div_3_Template_po_button_p_click_2_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(); return ctx_r40.onShowMore(); });
146
150
  i0.ɵɵelementEnd()();
147
151
  } if (rf & 2) {
148
152
  const ctx_r3 = i0.ɵɵnextContext();
@@ -150,111 +154,106 @@ function PoTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
150
154
  i0.ɵɵadvance(2);
151
155
  i0.ɵɵproperty("p-disabled", ctx_r3.showMoreDisabled)("p-label", ctx_r3.literals.loadMoreData)("p-loading", ctx_r3.loadingShowMore);
152
156
  } }
153
- function PoTableComponent_ng_template_4_th_3_input_2_Template(rf, ctx) { if (rf & 1) {
154
- i0.ɵɵelement(0, "input", 49);
155
- } if (rf & 2) {
156
- const ctx_r52 = i0.ɵɵnextContext(3);
157
- i0.ɵɵclassProp("po-table-checkbox-checked", ctx_r52.selectAll)("po-table-checkbox-indeterminate", ctx_r52.selectAll === null);
158
- } }
159
- function PoTableComponent_ng_template_4_th_3_label_3_Template(rf, ctx) { if (rf & 1) {
160
- const _r55 = i0.ɵɵgetCurrentView();
161
- i0.ɵɵelementStart(0, "label", 50);
162
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_3_label_3_Template_label_click_0_listener() { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.selectAllRows(); });
157
+ function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template(rf, ctx) { if (rf & 1) {
158
+ const _r52 = i0.ɵɵgetCurrentView();
159
+ i0.ɵɵelementStart(0, "po-checkbox", 49);
160
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_click_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return ctx_r51.selectAllRows(); })("p-change", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r53 = i0.ɵɵnextContext(3); return ctx_r53.selectAllRows(); })("ngModelChange", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r52); const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.selectAll = $event; });
163
161
  i0.ɵɵelementEnd();
162
+ } if (rf & 2) {
163
+ const ctx_r50 = i0.ɵɵnextContext(3);
164
+ i0.ɵɵproperty("ngModel", ctx_r50.selectAll);
164
165
  } }
165
166
  function PoTableComponent_ng_template_4_th_3_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵelementStart(0, "th", 46)(1, "div");
167
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_4_th_3_input_2_Template, 1, 4, "input", 47);
168
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_4_th_3_label_3_Template, 1, 0, "label", 48);
167
+ i0.ɵɵelementStart(0, "th", 47)(1, "div");
168
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template, 1, 1, "po-checkbox", 48);
169
169
  i0.ɵɵelementEnd()();
170
170
  } if (rf & 2) {
171
- const ctx_r44 = i0.ɵɵnextContext(2);
172
- i0.ɵɵadvance(1);
173
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r44.height);
171
+ const ctx_r42 = i0.ɵɵnextContext(2);
174
172
  i0.ɵɵadvance(1);
175
- i0.ɵɵproperty("ngIf", !ctx_r44.hideSelectAll);
173
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r42.height);
176
174
  i0.ɵɵadvance(1);
177
- i0.ɵɵproperty("ngIf", !ctx_r44.hideSelectAll);
175
+ i0.ɵɵproperty("ngIf", !ctx_r42.hideSelectAll);
178
176
  } }
179
177
  function PoTableComponent_ng_template_4_th_4_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelement(0, "th", 51);
178
+ i0.ɵɵelement(0, "th", 50);
181
179
  } }
182
180
  function PoTableComponent_ng_template_4_th_5_Template(rf, ctx) { if (rf & 1) {
183
- i0.ɵɵelement(0, "th");
181
+ i0.ɵɵelement(0, "th", null, 51);
184
182
  } if (rf & 2) {
185
- const ctx_r46 = i0.ɵɵnextContext(2);
186
- i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r46.isSingleAction)("po-table-header-single-action", ctx_r46.isSingleAction);
183
+ const ctx_r44 = i0.ɵɵnextContext(2);
184
+ i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r44.isSingleAction)("po-table-header-single-action", ctx_r44.isSingleAction);
187
185
  } }
188
186
  function PoTableComponent_ng_template_4_th_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
189
187
  i0.ɵɵelementContainer(0);
190
188
  } }
191
189
  function PoTableComponent_ng_template_4_th_6_Template(rf, ctx) { if (rf & 1) {
192
190
  i0.ɵɵelementStart(0, "th", 52, 53);
193
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_4_th_6_ng_container_2_Template, 1, 0, "ng-container", 54);
191
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_4_th_6_ng_container_2_Template, 1, 0, "ng-container", 32);
194
192
  i0.ɵɵelementEnd();
195
193
  } if (rf & 2) {
196
- const ctx_r47 = i0.ɵɵnextContext(2);
194
+ const ctx_r45 = i0.ɵɵnextContext(2);
197
195
  const _r19 = i0.ɵɵreference(21);
198
196
  const _r21 = i0.ɵɵreference(23);
199
197
  i0.ɵɵadvance(2);
200
- i0.ɵɵproperty("ngIf", ctx_r47.height)("ngIfThen", _r19)("ngIfElse", _r21);
198
+ i0.ɵɵproperty("ngIf", ctx_r45.height)("ngIfThen", _r19)("ngIfElse", _r21);
201
199
  } }
202
200
  function PoTableComponent_ng_template_4_th_7_ng_container_3_Template(rf, ctx) { if (rf & 1) {
203
201
  i0.ɵɵelementContainer(0);
204
202
  } }
205
- const _c10 = function (a0) { return { $implicit: a0 }; };
203
+ const _c13 = function (a0) { return { $implicit: a0 }; };
206
204
  function PoTableComponent_ng_template_4_th_7_Template(rf, ctx) { if (rf & 1) {
207
205
  const _r63 = i0.ɵɵgetCurrentView();
208
- i0.ɵɵelementStart(0, "th", 55, 56);
206
+ i0.ɵɵelementStart(0, "th", 54, 55);
209
207
  i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r63); const column_r58 = restoredCtx.$implicit; const ctx_r62 = i0.ɵɵnextContext(2); return ctx_r62.sortColumn(column_r58); });
210
- i0.ɵɵelementStart(2, "div", 57);
211
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_4_th_7_ng_container_3_Template, 1, 0, "ng-container", 58);
208
+ i0.ɵɵelementStart(2, "div", 56);
209
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_4_th_7_ng_container_3_Template, 1, 0, "ng-container", 57);
212
210
  i0.ɵɵelementEnd()();
213
211
  } if (rf & 2) {
214
212
  const column_r58 = ctx.$implicit;
215
- const ctx_r48 = i0.ɵɵnextContext(2);
213
+ const ctx_r46 = i0.ɵɵnextContext(2);
216
214
  const _r17 = i0.ɵɵreference(19);
217
215
  i0.ɵɵstyleProp("width", column_r58.width)("max-width", column_r58.width)("min-width", column_r58.width);
218
- i0.ɵɵclassProp("po-clickable", ctx_r48.sort && column_r58.sortable !== false || ctx_r48.hasService)("po-table-header-subtitle", column_r58.type === "subtitle");
216
+ i0.ɵɵclassProp("po-clickable", ctx_r46.sort && column_r58.sortable !== false || ctx_r46.hasService)("po-table-header-subtitle", column_r58.type === "subtitle");
219
217
  i0.ɵɵadvance(2);
220
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r48.height)("po-table-header-flex-right", column_r58.type === "currency" || column_r58.type === "number")("po-table-header-flex-center", column_r58.type === "subtitle");
218
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r46.height)("po-table-header-flex-right", column_r58.type === "currency" || column_r58.type === "number")("po-table-header-flex-center", column_r58.type === "subtitle");
221
219
  i0.ɵɵadvance(1);
222
- i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c10, column_r58));
220
+ i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c13, column_r58));
223
221
  } }
224
222
  function PoTableComponent_ng_template_4_th_8_Template(rf, ctx) { if (rf & 1) {
225
- i0.ɵɵelement(0, "th", 51);
223
+ i0.ɵɵelement(0, "th", 50);
226
224
  } }
227
225
  function PoTableComponent_ng_template_4_th_9_Template(rf, ctx) { if (rf & 1) {
228
226
  i0.ɵɵelement(0, "th");
229
227
  } if (rf & 2) {
230
- const ctx_r50 = i0.ɵɵnextContext(2);
231
- i0.ɵɵclassProp("po-table-header-single-action", ctx_r50.isSingleAction)("po-table-header-actions", !ctx_r50.isSingleAction);
228
+ const ctx_r48 = i0.ɵɵnextContext(2);
229
+ i0.ɵɵclassProp("po-table-header-single-action", ctx_r48.isSingleAction && !ctx_r48.hideColumnsManager)("po-table-header-actions", !ctx_r48.isSingleAction);
232
230
  } }
233
231
  function PoTableComponent_ng_template_4_th_10_Template(rf, ctx) { if (rf & 1) {
234
232
  const _r67 = i0.ɵɵgetCurrentView();
235
- i0.ɵɵelementStart(0, "th", null, 59)(2, "div")(3, "button", 60, 61);
233
+ i0.ɵɵelementStart(0, "th", null, 58)(2, "div")(3, "button", 59, 60);
236
234
  i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(2); return ctx_r66.onOpenColumnManager(); });
237
235
  i0.ɵɵelementEnd()()();
238
236
  } if (rf & 2) {
239
237
  const _r64 = i0.ɵɵreference(1);
240
- const ctx_r51 = i0.ɵɵnextContext(2);
241
- i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r51.isSingleAction || !ctx_r51.actionRight)("po-table-header-column-manager-border", !ctx_r51.height && ctx_r51.container)("po-table-header-single-action", ctx_r51.isSingleAction && ctx_r51.actionRight);
238
+ const ctx_r49 = i0.ɵɵnextContext(2);
239
+ i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r49.isSingleAction || !ctx_r49.actionRight)("po-table-header-column-manager-border", !ctx_r49.height && ctx_r49.container)("po-table-header-single-action", ctx_r49.isSingleAction && ctx_r49.actionRight);
242
240
  i0.ɵɵadvance(2);
243
- i0.ɵɵstyleProp("width", ctx_r51.height && ctx_r51.visibleActions.length ? _r64.offsetWidth : undefined, "px");
244
- i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r51.height && ctx_r51.container)("po-table-header-column-manager-fixed-inner", ctx_r51.height);
241
+ i0.ɵɵstyleProp("width", ctx_r49.height && ctx_r49.visibleActions.length ? _r64.offsetWidth : undefined, "px");
242
+ i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r49.height && ctx_r49.container)("po-table-header-column-manager-fixed-inner", ctx_r49.height);
245
243
  i0.ɵɵadvance(1);
246
- i0.ɵɵproperty("p-tooltip", ctx_r51.literals.columnsManager);
244
+ i0.ɵɵproperty("p-tooltip", ctx_r49.literals.columnsManager);
245
+ i0.ɵɵattribute("aria-label", ctx_r49.literals.columnsManager);
247
246
  } }
248
247
  function PoTableComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
249
- i0.ɵɵelementStart(0, "table", 38)(1, "thead")(2, "tr");
250
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_4_th_3_Template, 4, 4, "th", 39);
251
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_4_th_4_Template, 1, 0, "th", 40);
252
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_4_th_5_Template, 1, 4, "th", 41);
253
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_4_th_6_Template, 3, 3, "th", 42);
254
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_4_th_7_Template, 4, 20, "th", 43);
255
- i0.ɵɵtemplate(8, PoTableComponent_ng_template_4_th_8_Template, 1, 0, "th", 40);
256
- i0.ɵɵtemplate(9, PoTableComponent_ng_template_4_th_9_Template, 1, 4, "th", 44);
257
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_4_th_10_Template, 5, 13, "th", 45);
248
+ i0.ɵɵelementStart(0, "table", 39)(1, "thead")(2, "tr");
249
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_4_th_3_Template, 3, 3, "th", 40);
250
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_4_th_4_Template, 1, 0, "th", 41);
251
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_4_th_5_Template, 2, 4, "th", 42);
252
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_4_th_6_Template, 3, 3, "th", 43);
253
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_4_th_7_Template, 4, 20, "th", 44);
254
+ i0.ɵɵtemplate(8, PoTableComponent_ng_template_4_th_8_Template, 1, 0, "th", 41);
255
+ i0.ɵɵtemplate(9, PoTableComponent_ng_template_4_th_9_Template, 1, 4, "th", 45);
256
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_4_th_10_Template, 5, 14, "th", 46);
258
257
  i0.ɵɵelementEnd()()();
259
258
  } if (rf & 2) {
260
259
  const ctx_r5 = i0.ɵɵnextContext();
@@ -278,258 +277,258 @@ function PoTableComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
278
277
  i0.ɵɵadvance(1);
279
278
  i0.ɵɵproperty("ngIf", ctx_r5.hasValidColumns && !ctx_r5.hideColumnsManager);
280
279
  } }
281
- function PoTableComponent_ng_template_6_tbody_1_Template(rf, ctx) { if (rf & 1) {
282
- i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 64)(2, "td", 65)(3, "span");
280
+ function PoTableComponent_ng_template_6_tbody_3_Template(rf, ctx) { if (rf & 1) {
281
+ i0.ɵɵelementStart(0, "tbody", 64)(1, "tr", 65)(2, "td", 66)(3, "span");
283
282
  i0.ɵɵtext(4);
284
283
  i0.ɵɵelementEnd()()()();
285
284
  } if (rf & 2) {
286
- const ctx_r68 = i0.ɵɵnextContext(2);
285
+ const ctx_r69 = i0.ɵɵnextContext(2);
287
286
  i0.ɵɵadvance(2);
288
- i0.ɵɵproperty("colSpan", ctx_r68.columnCount);
287
+ i0.ɵɵproperty("colSpan", ctx_r69.columnCount);
289
288
  i0.ɵɵadvance(2);
290
- i0.ɵɵtextInterpolate1(" ", ctx_r68.literals.noData, " ");
289
+ i0.ɵɵtextInterpolate1(" ", ctx_r69.literals.noData, " ");
291
290
  } }
292
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
291
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
293
292
  i0.ɵɵelementContainer(0);
294
293
  } }
295
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_2_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelementStart(0, "td", 46);
297
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 58);
294
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_Template(rf, ctx) { if (rf & 1) {
295
+ i0.ɵɵelementStart(0, "td", 47);
296
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 57);
298
297
  i0.ɵɵelementEnd();
299
298
  } if (rf & 2) {
300
- const row_r71 = i0.ɵɵnextContext().$implicit;
301
- const ctx_r73 = i0.ɵɵnextContext(3);
299
+ const row_r72 = i0.ɵɵnextContext().$implicit;
300
+ const ctx_r74 = i0.ɵɵnextContext(3);
302
301
  const _r13 = i0.ɵɵreference(15);
303
302
  const _r15 = i0.ɵɵreference(17);
304
303
  i0.ɵɵadvance(1);
305
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r73.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c10, row_r71));
304
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r74.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c13, row_r72));
306
305
  } }
307
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_3_ng_template_1_Template(rf, ctx) { }
308
- const _c11 = function (a0, a1) { return { row: a0, rowIndex: a1 }; };
309
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_3_Template(rf, ctx) { if (rf & 1) {
310
- const _r89 = i0.ɵɵgetCurrentView();
311
- i0.ɵɵelementStart(0, "td", 71);
312
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r89); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r87 = i0.ɵɵnextContext(3); return ctx_r87.toggleDetail(row_r71); });
313
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 72);
306
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_ng_template_1_Template(rf, ctx) { }
307
+ const _c14 = function (a0, a1) { return { row: a0, rowIndex: a1 }; };
308
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template(rf, ctx) { if (rf & 1) {
309
+ const _r90 = i0.ɵɵgetCurrentView();
310
+ i0.ɵɵelementStart(0, "td", 72);
311
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r90); const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r88 = i0.ɵɵnextContext(3); return ctx_r88.toggleDetail(row_r72); });
312
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 73);
314
313
  i0.ɵɵelementEnd();
315
314
  } if (rf & 2) {
316
- const ctx_r90 = i0.ɵɵnextContext();
317
- const row_r71 = ctx_r90.$implicit;
318
- const rowIndex_r72 = ctx_r90.index;
315
+ const ctx_r91 = i0.ɵɵnextContext();
316
+ const row_r72 = ctx_r91.$implicit;
317
+ const rowIndex_r73 = ctx_r91.index;
319
318
  i0.ɵɵnextContext(3);
320
319
  const _r11 = i0.ɵɵreference(13);
321
320
  i0.ɵɵadvance(1);
322
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r71, rowIndex_r72));
321
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r72, rowIndex_r73));
323
322
  } }
324
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_4_ng_template_0_Template(rf, ctx) { }
325
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_4_Template(rf, ctx) { if (rf & 1) {
326
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_2_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 72);
323
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_ng_template_0_Template(rf, ctx) { }
324
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_Template(rf, ctx) { if (rf & 1) {
325
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 73);
327
326
  } if (rf & 2) {
328
- const ctx_r92 = i0.ɵɵnextContext();
329
- const row_r71 = ctx_r92.$implicit;
330
- const rowIndex_r72 = ctx_r92.index;
327
+ const ctx_r93 = i0.ɵɵnextContext();
328
+ const row_r72 = ctx_r93.$implicit;
329
+ const rowIndex_r73 = ctx_r93.index;
331
330
  i0.ɵɵnextContext(3);
332
331
  const _r23 = i0.ɵɵreference(25);
333
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r71, rowIndex_r72));
334
- } }
335
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_5_ng_template_1_Template(rf, ctx) { }
336
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_5_Template(rf, ctx) { if (rf & 1) {
337
- const _r96 = i0.ɵɵgetCurrentView();
338
- i0.ɵɵelementStart(0, "td", 71);
339
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r96); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r94 = i0.ɵɵnextContext(3); return ctx_r94.toggleDetail(row_r71); });
340
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 72);
332
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r72, rowIndex_r73));
333
+ } }
334
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_ng_template_1_Template(rf, ctx) { }
335
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template(rf, ctx) { if (rf & 1) {
336
+ const _r97 = i0.ɵɵgetCurrentView();
337
+ i0.ɵɵelementStart(0, "td", 72);
338
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r97); const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r95 = i0.ɵɵnextContext(3); return ctx_r95.toggleDetail(row_r72); });
339
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 73);
341
340
  i0.ɵɵelementEnd();
342
341
  } if (rf & 2) {
343
- const ctx_r97 = i0.ɵɵnextContext();
344
- const row_r71 = ctx_r97.$implicit;
345
- const rowIndex_r72 = ctx_r97.index;
342
+ const ctx_r98 = i0.ɵɵnextContext();
343
+ const row_r72 = ctx_r98.$implicit;
344
+ const rowIndex_r73 = ctx_r98.index;
346
345
  i0.ɵɵnextContext(3);
347
346
  const _r11 = i0.ɵɵreference(13);
348
347
  i0.ɵɵadvance(1);
349
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r71, rowIndex_r72));
348
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r72, rowIndex_r73));
350
349
  } }
351
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
350
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
352
351
  i0.ɵɵelementContainer(0);
353
352
  } }
354
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_2_Template(rf, ctx) { if (rf & 1) {
353
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_Template(rf, ctx) { if (rf & 1) {
355
354
  i0.ɵɵelementStart(0, "span");
356
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 58);
355
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 57);
357
356
  i0.ɵɵelementEnd();
358
357
  } if (rf & 2) {
359
- const column_r98 = i0.ɵɵnextContext().$implicit;
360
- const row_r71 = i0.ɵɵnextContext().$implicit;
361
- const ctx_r100 = i0.ɵɵnextContext(3);
358
+ const column_r99 = i0.ɵɵnextContext().$implicit;
359
+ const row_r72 = i0.ɵɵnextContext().$implicit;
360
+ const ctx_r101 = i0.ɵɵnextContext(3);
362
361
  i0.ɵɵadvance(1);
363
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r100.getTemplate(column_r98))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c10, ctx_r100.getCellData(row_r71, column_r98)));
362
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r101.getTemplate(column_r99))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c13, ctx_r101.getCellData(row_r72, column_r99)));
364
363
  } }
365
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
364
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
366
365
  i0.ɵɵelementContainer(0);
367
366
  } }
368
- const _c12 = function (a0, a1) { return { row: a0, column: a1 }; };
369
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_3_Template(rf, ctx) { if (rf & 1) {
367
+ const _c15 = function (a0, a1) { return { row: a0, column: a1 }; };
368
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_Template(rf, ctx) { if (rf & 1) {
370
369
  i0.ɵɵelementStart(0, "span");
371
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 58);
370
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 57);
372
371
  i0.ɵɵelementEnd();
373
372
  } if (rf & 2) {
374
- const column_r98 = i0.ɵɵnextContext().$implicit;
375
- const row_r71 = i0.ɵɵnextContext().$implicit;
376
- const ctx_r101 = i0.ɵɵnextContext(3);
373
+ const column_r99 = i0.ɵɵnextContext().$implicit;
374
+ const row_r72 = i0.ɵɵnextContext().$implicit;
375
+ const ctx_r102 = i0.ɵɵnextContext(3);
377
376
  i0.ɵɵadvance(1);
378
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r101.tableCellTemplate == null ? null : ctx_r101.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c12, row_r71, column_r98));
377
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r102.tableCellTemplate == null ? null : ctx_r102.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c15, row_r72, column_r99));
379
378
  } }
380
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_4_Template(rf, ctx) { if (rf & 1) {
379
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_4_Template(rf, ctx) { if (rf & 1) {
381
380
  i0.ɵɵelementStart(0, "span");
382
381
  i0.ɵɵtext(1);
383
382
  i0.ɵɵelementEnd();
384
383
  } if (rf & 2) {
385
- const column_r98 = i0.ɵɵnextContext().$implicit;
386
- const row_r71 = i0.ɵɵnextContext().$implicit;
387
- const ctx_r102 = i0.ɵɵnextContext(3);
384
+ const column_r99 = i0.ɵɵnextContext().$implicit;
385
+ const row_r72 = i0.ɵɵnextContext().$implicit;
386
+ const ctx_r103 = i0.ɵɵnextContext(3);
388
387
  i0.ɵɵadvance(1);
389
- i0.ɵɵtextInterpolate1(" ", ctx_r102.getBooleanLabel(ctx_r102.getCellData(row_r71, column_r98), column_r98), " ");
388
+ i0.ɵɵtextInterpolate1(" ", ctx_r103.getBooleanLabel(ctx_r103.getCellData(row_r72, column_r99), column_r99), " ");
390
389
  } }
391
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_5_Template(rf, ctx) { if (rf & 1) {
390
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_5_Template(rf, ctx) { if (rf & 1) {
392
391
  i0.ɵɵelementStart(0, "span");
393
392
  i0.ɵɵtext(1);
394
393
  i0.ɵɵpipe(2, "currency");
395
394
  i0.ɵɵelementEnd();
396
395
  } if (rf & 2) {
397
- const column_r98 = i0.ɵɵnextContext().$implicit;
398
- const row_r71 = i0.ɵɵnextContext().$implicit;
399
- const ctx_r103 = i0.ɵɵnextContext(3);
396
+ const column_r99 = i0.ɵɵnextContext().$implicit;
397
+ const row_r72 = i0.ɵɵnextContext().$implicit;
398
+ const ctx_r104 = i0.ɵɵnextContext(3);
400
399
  i0.ɵɵadvance(1);
401
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r103.getCellData(row_r71, column_r98), column_r98.format, "symbol", "1.2-2"), " ");
400
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r104.getCellData(row_r72, column_r99), column_r99.format, "symbol", "1.2-2"), " ");
402
401
  } }
403
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_6_Template(rf, ctx) { if (rf & 1) {
402
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_6_Template(rf, ctx) { if (rf & 1) {
404
403
  i0.ɵɵelementStart(0, "span");
405
404
  i0.ɵɵtext(1);
406
405
  i0.ɵɵpipe(2, "date");
407
406
  i0.ɵɵelementEnd();
408
407
  } if (rf & 2) {
409
- const column_r98 = i0.ɵɵnextContext().$implicit;
410
- const row_r71 = i0.ɵɵnextContext().$implicit;
411
- const ctx_r104 = i0.ɵɵnextContext(3);
408
+ const column_r99 = i0.ɵɵnextContext().$implicit;
409
+ const row_r72 = i0.ɵɵnextContext().$implicit;
410
+ const ctx_r105 = i0.ɵɵnextContext(3);
412
411
  i0.ɵɵadvance(1);
413
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r104.getCellData(row_r71, column_r98), column_r98.format || "dd/MM/yyyy"), " ");
412
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r105.getCellData(row_r72, column_r99), column_r99.format || "dd/MM/yyyy"), " ");
414
413
  } }
415
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_7_Template(rf, ctx) { if (rf & 1) {
414
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_7_Template(rf, ctx) { if (rf & 1) {
416
415
  i0.ɵɵelementStart(0, "span");
417
416
  i0.ɵɵtext(1);
418
417
  i0.ɵɵpipe(2, "po_time");
419
418
  i0.ɵɵelementEnd();
420
419
  } if (rf & 2) {
421
- const column_r98 = i0.ɵɵnextContext().$implicit;
422
- const row_r71 = i0.ɵɵnextContext().$implicit;
423
- const ctx_r105 = i0.ɵɵnextContext(3);
420
+ const column_r99 = i0.ɵɵnextContext().$implicit;
421
+ const row_r72 = i0.ɵɵnextContext().$implicit;
422
+ const ctx_r106 = i0.ɵɵnextContext(3);
424
423
  i0.ɵɵadvance(1);
425
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r105.getCellData(row_r71, column_r98), column_r98.format || "HH:mm:ss.ffffff"), " ");
424
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r106.getCellData(row_r72, column_r99), column_r99.format || "HH:mm:ss.ffffff"), " ");
426
425
  } }
427
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_8_Template(rf, ctx) { if (rf & 1) {
426
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_8_Template(rf, ctx) { if (rf & 1) {
428
427
  i0.ɵɵelementStart(0, "span");
429
428
  i0.ɵɵtext(1);
430
429
  i0.ɵɵpipe(2, "date");
431
430
  i0.ɵɵelementEnd();
432
431
  } if (rf & 2) {
433
- const column_r98 = i0.ɵɵnextContext().$implicit;
434
- const row_r71 = i0.ɵɵnextContext().$implicit;
435
- const ctx_r106 = i0.ɵɵnextContext(3);
432
+ const column_r99 = i0.ɵɵnextContext().$implicit;
433
+ const row_r72 = i0.ɵɵnextContext().$implicit;
434
+ const ctx_r107 = i0.ɵɵnextContext(3);
436
435
  i0.ɵɵadvance(1);
437
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r106.getCellData(row_r71, column_r98), column_r98.format || "dd/MM/yyyy HH:mm:ss"), " ");
436
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r107.getCellData(row_r72, column_r99), column_r99.format || "dd/MM/yyyy HH:mm:ss"), " ");
438
437
  } }
439
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_9_Template(rf, ctx) { if (rf & 1) {
438
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_9_Template(rf, ctx) { if (rf & 1) {
440
439
  i0.ɵɵelementStart(0, "span");
441
440
  i0.ɵɵtext(1);
442
441
  i0.ɵɵelementEnd();
443
442
  } if (rf & 2) {
444
- const column_r98 = i0.ɵɵnextContext().$implicit;
445
- const row_r71 = i0.ɵɵnextContext().$implicit;
446
- const ctx_r107 = i0.ɵɵnextContext(3);
443
+ const column_r99 = i0.ɵɵnextContext().$implicit;
444
+ const row_r72 = i0.ɵɵnextContext().$implicit;
445
+ const ctx_r108 = i0.ɵɵnextContext(3);
447
446
  i0.ɵɵadvance(1);
448
- i0.ɵɵtextInterpolate1(" ", ctx_r107.formatNumber(ctx_r107.getCellData(row_r71, column_r98), column_r98.format), " ");
447
+ i0.ɵɵtextInterpolate1(" ", ctx_r108.formatNumber(ctx_r108.getCellData(row_r72, column_r99), column_r99.format), " ");
449
448
  } }
450
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_po_table_column_link_10_Template(rf, ctx) { if (rf & 1) {
451
- const _r133 = i0.ɵɵgetCurrentView();
452
- i0.ɵɵelementStart(0, "po-table-column-link", 79);
453
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r133); const column_r98 = i0.ɵɵnextContext().$implicit; const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r131 = i0.ɵɵnextContext(3); return ctx_r131.onClickLink($event, row_r71, column_r98); });
449
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template(rf, ctx) { if (rf & 1) {
450
+ const _r134 = i0.ɵɵgetCurrentView();
451
+ i0.ɵɵelementStart(0, "po-table-column-link", 80);
452
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r134); const column_r99 = i0.ɵɵnextContext().$implicit; const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r132 = i0.ɵɵnextContext(3); return ctx_r132.onClickLink($event, row_r72, column_r99); });
454
453
  i0.ɵɵelementEnd();
455
454
  } if (rf & 2) {
456
- const column_r98 = i0.ɵɵnextContext().$implicit;
457
- const row_r71 = i0.ɵɵnextContext().$implicit;
458
- const ctx_r108 = i0.ɵɵnextContext(3);
459
- i0.ɵɵproperty("p-action", column_r98.action)("p-disabled", ctx_r108.checkDisabled(row_r71, column_r98))("p-link", row_r71[column_r98.link])("p-row", row_r71)("p-value", ctx_r108.getCellData(row_r71, column_r98));
455
+ const column_r99 = i0.ɵɵnextContext().$implicit;
456
+ const row_r72 = i0.ɵɵnextContext().$implicit;
457
+ const ctx_r109 = i0.ɵɵnextContext(3);
458
+ i0.ɵɵproperty("p-action", column_r99.action)("p-disabled", ctx_r109.checkDisabled(row_r72, column_r99))("p-link", row_r72[column_r99.link])("p-row", row_r72)("p-value", ctx_r109.getCellData(row_r72, column_r99));
460
459
  } }
461
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_po_table_column_icon_11_Template(rf, ctx) { if (rf & 1) {
462
- i0.ɵɵelement(0, "po-table-column-icon", 80);
460
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_icon_11_Template(rf, ctx) { if (rf & 1) {
461
+ i0.ɵɵelement(0, "po-table-column-icon", 81);
463
462
  } if (rf & 2) {
464
- const column_r98 = i0.ɵɵnextContext().$implicit;
465
- const row_r71 = i0.ɵɵnextContext().$implicit;
466
- const ctx_r109 = i0.ɵɵnextContext(3);
467
- i0.ɵɵproperty("p-column", column_r98)("p-icons", ctx_r109.getColumnIcons(row_r71, column_r98))("p-row", row_r71);
463
+ const column_r99 = i0.ɵɵnextContext().$implicit;
464
+ const row_r72 = i0.ɵɵnextContext().$implicit;
465
+ const ctx_r110 = i0.ɵɵnextContext(3);
466
+ i0.ɵɵproperty("p-column", column_r99)("p-icons", ctx_r110.getColumnIcons(row_r72, column_r99))("p-row", row_r72);
468
467
  } }
469
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_12_Template(rf, ctx) { if (rf & 1) {
468
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_12_Template(rf, ctx) { if (rf & 1) {
470
469
  i0.ɵɵelementStart(0, "span");
471
- i0.ɵɵelement(1, "po-table-subtitle-circle", 81);
470
+ i0.ɵɵelement(1, "po-table-subtitle-circle", 82);
472
471
  i0.ɵɵelementEnd();
473
472
  } if (rf & 2) {
474
- const column_r98 = i0.ɵɵnextContext().$implicit;
475
- const row_r71 = i0.ɵɵnextContext().$implicit;
476
- const ctx_r110 = i0.ɵɵnextContext(3);
473
+ const column_r99 = i0.ɵɵnextContext().$implicit;
474
+ const row_r72 = i0.ɵɵnextContext().$implicit;
475
+ const ctx_r111 = i0.ɵɵnextContext(3);
477
476
  i0.ɵɵadvance(1);
478
- i0.ɵɵproperty("p-subtitle", ctx_r110.getSubtitleColumn(row_r71, column_r98));
477
+ i0.ɵɵproperty("p-subtitle", ctx_r111.getSubtitleColumn(row_r72, column_r99));
479
478
  } }
480
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_13_Template(rf, ctx) { if (rf & 1) {
479
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_13_Template(rf, ctx) { if (rf & 1) {
481
480
  i0.ɵɵelementStart(0, "span");
482
- i0.ɵɵelement(1, "po-table-column-label", 82);
481
+ i0.ɵɵelement(1, "po-table-column-label", 83);
483
482
  i0.ɵɵelementEnd();
484
483
  } if (rf & 2) {
485
- const column_r98 = i0.ɵɵnextContext().$implicit;
486
- const row_r71 = i0.ɵɵnextContext().$implicit;
487
- const ctx_r111 = i0.ɵɵnextContext(3);
484
+ const column_r99 = i0.ɵɵnextContext().$implicit;
485
+ const row_r72 = i0.ɵɵnextContext().$implicit;
486
+ const ctx_r112 = i0.ɵɵnextContext(3);
488
487
  i0.ɵɵadvance(1);
489
- i0.ɵɵproperty("p-value", ctx_r111.getColumnLabel(row_r71, column_r98));
488
+ i0.ɵɵproperty("p-value", ctx_r112.getColumnLabel(row_r72, column_r99));
490
489
  } }
491
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_14_Template(rf, ctx) { if (rf & 1) {
490
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_14_Template(rf, ctx) { if (rf & 1) {
492
491
  i0.ɵɵelementStart(0, "span");
493
492
  i0.ɵɵtext(1);
494
493
  i0.ɵɵelementEnd();
495
494
  } if (rf & 2) {
496
- const column_r98 = i0.ɵɵnextContext().$implicit;
497
- const row_r71 = i0.ɵɵnextContext().$implicit;
498
- const ctx_r112 = i0.ɵɵnextContext(3);
499
- i0.ɵɵadvance(1);
500
- i0.ɵɵtextInterpolate(ctx_r112.getCellData(row_r71, column_r98));
501
- } }
502
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template(rf, ctx) { if (rf & 1) {
503
- const _r146 = i0.ɵɵgetCurrentView();
504
- i0.ɵɵelementStart(0, "td", 73);
505
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r146); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r145 = i0.ɵɵnextContext(3); return ctx_r145.selectable ? ctx_r145.selectRow(row_r71) : "javascript:;"; });
506
- i0.ɵɵelementStart(1, "div", 74);
507
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r146); const column_r98 = restoredCtx.$implicit; const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r148 = i0.ɵɵnextContext(3); return ctx_r148.tooltipMouseEnter($event, column_r98, row_r71); })("mouseleave", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r146); const ctx_r150 = i0.ɵɵnextContext(4); return ctx_r150.tooltipMouseLeave(); });
508
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_2_Template, 2, 4, "span", 75);
509
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_3_Template, 2, 5, "span", 75);
510
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_4_Template, 2, 1, "span", 75);
511
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_5_Template, 3, 6, "span", 75);
512
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_6_Template, 3, 4, "span", 75);
513
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_7_Template, 3, 4, "span", 75);
514
- i0.ɵɵtemplate(8, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_8_Template, 3, 4, "span", 75);
515
- i0.ɵɵtemplate(9, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_9_Template, 2, 1, "span", 75);
516
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_po_table_column_link_10_Template, 1, 5, "po-table-column-link", 76);
517
- i0.ɵɵtemplate(11, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_po_table_column_icon_11_Template, 1, 3, "po-table-column-icon", 77);
518
- i0.ɵɵtemplate(12, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_12_Template, 2, 1, "span", 75);
519
- i0.ɵɵtemplate(13, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_13_Template, 2, 1, "span", 75);
520
- i0.ɵɵtemplate(14, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_span_14_Template, 2, 1, "span", 78);
495
+ const column_r99 = i0.ɵɵnextContext().$implicit;
496
+ const row_r72 = i0.ɵɵnextContext().$implicit;
497
+ const ctx_r113 = i0.ɵɵnextContext(3);
498
+ i0.ɵɵadvance(1);
499
+ i0.ɵɵtextInterpolate(ctx_r113.getCellData(row_r72, column_r99));
500
+ } }
501
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template(rf, ctx) { if (rf & 1) {
502
+ const _r147 = i0.ɵɵgetCurrentView();
503
+ i0.ɵɵelementStart(0, "td", 74);
504
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r147); const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r146 = i0.ɵɵnextContext(3); return ctx_r146.selectable ? ctx_r146.selectRow(row_r72) : "javascript:;"; });
505
+ i0.ɵɵelementStart(1, "div", 75);
506
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r147); const column_r99 = restoredCtx.$implicit; const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r149 = i0.ɵɵnextContext(3); return ctx_r149.tooltipMouseEnter($event, column_r99, row_r72); })("mouseleave", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r147); const ctx_r151 = i0.ɵɵnextContext(4); return ctx_r151.tooltipMouseLeave(); });
507
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_Template, 2, 4, "span", 76);
508
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_Template, 2, 5, "span", 76);
509
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_4_Template, 2, 1, "span", 76);
510
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_5_Template, 3, 6, "span", 76);
511
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_6_Template, 3, 4, "span", 76);
512
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_7_Template, 3, 4, "span", 76);
513
+ i0.ɵɵtemplate(8, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_8_Template, 3, 4, "span", 76);
514
+ i0.ɵɵtemplate(9, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_9_Template, 2, 1, "span", 76);
515
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template, 1, 5, "po-table-column-link", 77);
516
+ i0.ɵɵtemplate(11, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_icon_11_Template, 1, 3, "po-table-column-icon", 78);
517
+ i0.ɵɵtemplate(12, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_12_Template, 2, 1, "span", 76);
518
+ i0.ɵɵtemplate(13, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_13_Template, 2, 1, "span", 76);
519
+ i0.ɵɵtemplate(14, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_14_Template, 2, 1, "span", 79);
521
520
  i0.ɵɵelementEnd()();
522
521
  } if (rf & 2) {
523
- const column_r98 = ctx.$implicit;
524
- const row_r71 = i0.ɵɵnextContext().$implicit;
525
- const ctx_r77 = i0.ɵɵnextContext(3);
526
- i0.ɵɵstyleProp("width", column_r98.width)("max-width", column_r98.width)("min-width", column_r98.width);
527
- i0.ɵɵclassProp("po-table-column", column_r98.type !== "icon")("po-table-column-right", column_r98.type === "currency" || column_r98.type === "number")("po-table-column-center", column_r98.type === "subtitle")("po-table-column-icons", column_r98.type === "icon");
528
- i0.ɵɵproperty("ngClass", ctx_r77.getClassColor(row_r71, column_r98));
522
+ const column_r99 = ctx.$implicit;
523
+ const row_r72 = i0.ɵɵnextContext().$implicit;
524
+ const ctx_r78 = i0.ɵɵnextContext(3);
525
+ i0.ɵɵstyleProp("width", column_r99.width)("max-width", column_r99.width)("min-width", column_r99.width);
526
+ i0.ɵɵclassProp("po-table-column", column_r99.type !== "icon")("po-table-column-right", column_r99.type === "currency" || column_r99.type === "number")("po-table-column-center", column_r99.type === "subtitle")("po-table-column-icons", column_r99.type === "icon");
527
+ i0.ɵɵproperty("ngClass", ctx_r78.getClassColor(row_r72, column_r99));
529
528
  i0.ɵɵadvance(1);
530
- i0.ɵɵstyleProp("width", ctx_r77.noColumnsHeader == null ? null : ctx_r77.noColumnsHeader.nativeElement.parentElement == null ? null : ctx_r77.noColumnsHeader.nativeElement.parentElement.offsetWidth, "px");
531
- i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r77.hideTextOverflow);
532
- i0.ɵɵproperty("ngSwitch", column_r98.type)("p-tooltip", ctx_r77.tooltipText);
529
+ i0.ɵɵstyleProp("width", ctx_r78.noColumnsHeader == null ? null : ctx_r78.noColumnsHeader.nativeElement.parentElement == null ? null : ctx_r78.noColumnsHeader.nativeElement.parentElement.offsetWidth, "px");
530
+ i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r78.hideTextOverflow);
531
+ i0.ɵɵproperty("ngSwitch", column_r99.type)("p-tooltip", ctx_r78.tooltipText);
533
532
  i0.ɵɵadvance(1);
534
533
  i0.ɵɵproperty("ngSwitchCase", "columnTemplate");
535
534
  i0.ɵɵadvance(1);
@@ -555,337 +554,338 @@ function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template(rf,
555
554
  i0.ɵɵadvance(1);
556
555
  i0.ɵɵproperty("ngSwitchCase", "label");
557
556
  } }
558
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_7_ng_template_1_Template(rf, ctx) { }
559
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_7_Template(rf, ctx) { if (rf & 1) {
560
- const _r155 = i0.ɵɵgetCurrentView();
561
- i0.ɵɵelementStart(0, "td", 71);
562
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r155); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r153 = i0.ɵɵnextContext(3); return ctx_r153.toggleDetail(row_r71); });
563
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 72);
557
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_ng_template_1_Template(rf, ctx) { }
558
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template(rf, ctx) { if (rf & 1) {
559
+ const _r156 = i0.ɵɵgetCurrentView();
560
+ i0.ɵɵelementStart(0, "td", 72);
561
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r156); const row_r72 = i0.ɵɵnextContext().$implicit; const ctx_r154 = i0.ɵɵnextContext(3); return ctx_r154.toggleDetail(row_r72); });
562
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 73);
564
563
  i0.ɵɵelementEnd();
565
564
  } if (rf & 2) {
566
- const ctx_r156 = i0.ɵɵnextContext();
567
- const row_r71 = ctx_r156.$implicit;
568
- const rowIndex_r72 = ctx_r156.index;
565
+ const ctx_r157 = i0.ɵɵnextContext();
566
+ const row_r72 = ctx_r157.$implicit;
567
+ const rowIndex_r73 = ctx_r157.index;
569
568
  i0.ɵɵnextContext(3);
570
569
  const _r11 = i0.ɵɵreference(13);
571
570
  i0.ɵɵadvance(1);
572
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r71, rowIndex_r72));
571
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r72, rowIndex_r73));
573
572
  } }
574
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_8_ng_template_0_Template(rf, ctx) { }
575
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_8_Template(rf, ctx) { if (rf & 1) {
576
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_2_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 72);
573
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_ng_template_0_Template(rf, ctx) { }
574
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_Template(rf, ctx) { if (rf & 1) {
575
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 73);
577
576
  } if (rf & 2) {
578
- const ctx_r158 = i0.ɵɵnextContext();
579
- const row_r71 = ctx_r158.$implicit;
580
- const rowIndex_r72 = ctx_r158.index;
577
+ const ctx_r159 = i0.ɵɵnextContext();
578
+ const row_r72 = ctx_r159.$implicit;
579
+ const rowIndex_r73 = ctx_r159.index;
581
580
  i0.ɵɵnextContext(3);
582
581
  const _r23 = i0.ɵɵreference(25);
583
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r71, rowIndex_r72));
582
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r72, rowIndex_r73));
584
583
  } }
585
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
584
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
586
585
  i0.ɵɵelementContainerStart(0);
587
- i0.ɵɵelement(1, "td", 83);
586
+ i0.ɵɵelement(1, "td", 84);
588
587
  i0.ɵɵelementContainerEnd();
589
588
  } }
590
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_10_Template(rf, ctx) { if (rf & 1) {
591
- i0.ɵɵelement(0, "td", 84);
589
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_10_Template(rf, ctx) { if (rf & 1) {
590
+ i0.ɵɵelement(0, "td", 85);
592
591
  } }
593
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_11_ng_template_2_Template(rf, ctx) { }
594
- const _c13 = function (a0, a1) { return { $implicit: a0, rowIndex: a1 }; };
595
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_11_Template(rf, ctx) { if (rf & 1) {
596
- i0.ɵɵelementStart(0, "tr")(1, "td", 85);
597
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 72);
592
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_ng_template_2_Template(rf, ctx) { }
593
+ const _c16 = function (a0, a1) { return { $implicit: a0, rowIndex: a1 }; };
594
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_Template(rf, ctx) { if (rf & 1) {
595
+ i0.ɵɵelementStart(0, "tr")(1, "td", 86);
596
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 73);
598
597
  i0.ɵɵelementEnd()();
599
598
  } if (rf & 2) {
600
- const ctx_r160 = i0.ɵɵnextContext();
601
- const row_r71 = ctx_r160.$implicit;
602
- const rowIndex_r72 = ctx_r160.index;
603
- const ctx_r82 = i0.ɵɵnextContext(3);
599
+ const ctx_r161 = i0.ɵɵnextContext();
600
+ const row_r72 = ctx_r161.$implicit;
601
+ const rowIndex_r73 = ctx_r161.index;
602
+ const ctx_r83 = i0.ɵɵnextContext(3);
604
603
  i0.ɵɵadvance(1);
605
- i0.ɵɵproperty("colSpan", ctx_r82.columnCountForMasterDetail);
604
+ i0.ɵɵproperty("colSpan", ctx_r83.columnCountForMasterDetail);
606
605
  i0.ɵɵadvance(1);
607
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r82.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c13, row_r71, rowIndex_r72));
606
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r83.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c16, row_r72, rowIndex_r73));
608
607
  } }
609
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_12_Template(rf, ctx) { if (rf & 1) {
610
- const _r162 = i0.ɵɵgetCurrentView();
611
- i0.ɵɵelementStart(0, "tr")(1, "td", 86)(2, "po-table-detail", 87);
612
- i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r162); const ctx_r161 = i0.ɵɵnextContext(4); return ctx_r161.selectDetailRow($event); });
608
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template(rf, ctx) { if (rf & 1) {
609
+ const _r163 = i0.ɵɵgetCurrentView();
610
+ i0.ɵɵelementStart(0, "tr")(1, "td", 87)(2, "po-table-detail", 88);
611
+ i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r163); const ctx_r162 = i0.ɵɵnextContext(4); return ctx_r162.selectDetailRow($event); });
613
612
  i0.ɵɵelementEnd()()();
614
613
  } if (rf & 2) {
615
- const row_r71 = i0.ɵɵnextContext().$implicit;
616
- const ctx_r83 = i0.ɵɵnextContext(3);
614
+ const row_r72 = i0.ɵɵnextContext().$implicit;
615
+ const ctx_r84 = i0.ɵɵnextContext(3);
617
616
  i0.ɵɵadvance(1);
618
- i0.ɵɵproperty("colSpan", ctx_r83.columnCountForMasterDetail);
617
+ i0.ɵɵproperty("colSpan", ctx_r84.columnCountForMasterDetail);
619
618
  i0.ɵɵadvance(1);
620
- i0.ɵɵproperty("p-selectable", ctx_r83.selectable && !ctx_r83.detailHideSelect)("p-detail", ctx_r83.columnMasterDetail.detail)("p-items", row_r71[ctx_r83.nameColumnDetail]);
621
- } }
622
- function PoTableComponent_ng_template_6_ng_container_2_tbody_1_Template(rf, ctx) { if (rf & 1) {
623
- i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 67);
624
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_2_Template, 2, 4, "td", 39);
625
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_3_Template, 2, 5, "td", 68);
626
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_2_tbody_1_4_Template, 1, 5, null, 23);
627
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_5_Template, 2, 5, "td", 68);
628
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_6_Template, 15, 33, "td", 69);
629
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_7_Template, 2, 5, "td", 68);
630
- i0.ɵɵtemplate(8, PoTableComponent_ng_template_6_ng_container_2_tbody_1_8_Template, 1, 5, null, 23);
631
- i0.ɵɵtemplate(9, PoTableComponent_ng_template_6_ng_container_2_tbody_1_ng_container_9_Template, 2, 0, "ng-container", 23);
632
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_6_ng_container_2_tbody_1_td_10_Template, 1, 0, "td", 70);
619
+ i0.ɵɵproperty("p-selectable", ctx_r84.selectable && !ctx_r84.detailHideSelect)("p-detail", ctx_r84.columnMasterDetail.detail)("p-items", row_r72[ctx_r84.nameColumnDetail]);
620
+ } }
621
+ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_Template(rf, ctx) { if (rf & 1) {
622
+ i0.ɵɵelementStart(0, "tbody", 64)(1, "tr", 68);
623
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_Template, 2, 4, "td", 40);
624
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template, 2, 5, "td", 69);
625
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_Template, 1, 5, null, 23);
626
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template, 2, 5, "td", 69);
627
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template, 15, 33, "td", 70);
628
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template, 2, 5, "td", 69);
629
+ i0.ɵɵtemplate(8, PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_Template, 1, 5, null, 23);
630
+ i0.ɵɵtemplate(9, PoTableComponent_ng_template_6_ng_container_4_tbody_1_ng_container_9_Template, 2, 0, "ng-container", 23);
631
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_10_Template, 1, 0, "td", 71);
633
632
  i0.ɵɵelementEnd();
634
- i0.ɵɵtemplate(11, PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_11_Template, 3, 6, "tr", 23);
635
- i0.ɵɵtemplate(12, PoTableComponent_ng_template_6_ng_container_2_tbody_1_tr_12_Template, 3, 4, "tr", 23);
633
+ i0.ɵɵtemplate(11, PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_Template, 3, 6, "tr", 23);
634
+ i0.ɵɵtemplate(12, PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template, 3, 4, "tr", 23);
636
635
  i0.ɵɵelementEnd();
637
636
  } if (rf & 2) {
638
- const row_r71 = ctx.$implicit;
639
- const rowIndex_r72 = ctx.index;
640
- const ctx_r70 = i0.ɵɵnextContext(3);
637
+ const row_r72 = ctx.$implicit;
638
+ const rowIndex_r73 = ctx.index;
639
+ const ctx_r71 = i0.ɵɵnextContext(3);
641
640
  i0.ɵɵadvance(1);
642
- i0.ɵɵclassProp("po-table-row-active", row_r71.$selected || row_r71.$selected === null && ctx_r70.selectable);
641
+ i0.ɵɵclassProp("po-table-row-active", row_r72.$selected || row_r72.$selected === null && ctx_r71.selectable);
643
642
  i0.ɵɵadvance(1);
644
- i0.ɵɵproperty("ngIf", ctx_r70.selectable);
643
+ i0.ɵɵproperty("ngIf", ctx_r71.selectable);
645
644
  i0.ɵɵadvance(1);
646
- i0.ɵɵproperty("ngIf", ctx_r70.columnMasterDetail && !ctx_r70.hideDetail && !ctx_r70.hasRowTemplate);
645
+ i0.ɵɵproperty("ngIf", ctx_r71.columnMasterDetail && !ctx_r71.hideDetail && !ctx_r71.hasRowTemplate);
647
646
  i0.ɵɵadvance(1);
648
- i0.ɵɵproperty("ngIf", !ctx_r70.actionRight && (ctx_r70.visibleActions.length > 1 || ctx_r70.isSingleAction));
647
+ i0.ɵɵproperty("ngIf", !ctx_r71.actionRight && (ctx_r71.visibleActions.length > 1 || ctx_r71.isSingleAction));
649
648
  i0.ɵɵadvance(1);
650
- i0.ɵɵproperty("ngIf", ctx_r70.hasRowTemplate && !ctx_r70.hasRowTemplateWithArrowDirectionRight);
649
+ i0.ɵɵproperty("ngIf", ctx_r71.hasRowTemplate && !ctx_r71.hasRowTemplateWithArrowDirectionRight);
651
650
  i0.ɵɵadvance(1);
652
- i0.ɵɵproperty("ngForOf", ctx_r70.mainColumns)("ngForTrackBy", ctx_r70.trackBy);
651
+ i0.ɵɵproperty("ngForOf", ctx_r71.mainColumns)("ngForTrackBy", ctx_r71.trackBy);
653
652
  i0.ɵɵadvance(1);
654
- i0.ɵɵproperty("ngIf", ctx_r70.hasRowTemplateWithArrowDirectionRight);
653
+ i0.ɵɵproperty("ngIf", ctx_r71.hasRowTemplateWithArrowDirectionRight);
655
654
  i0.ɵɵadvance(1);
656
- i0.ɵɵproperty("ngIf", ctx_r70.actionRight);
655
+ i0.ɵɵproperty("ngIf", ctx_r71.actionRight);
657
656
  i0.ɵɵadvance(1);
658
- i0.ɵɵproperty("ngIf", !ctx_r70.actionRight && (ctx_r70.visibleActions.length > 1 || ctx_r70.isSingleAction) && !ctx_r70.hideColumnsManager);
657
+ i0.ɵɵproperty("ngIf", !ctx_r71.actionRight && (ctx_r71.visibleActions.length > 1 || ctx_r71.isSingleAction) && !ctx_r71.hideColumnsManager);
659
658
  i0.ɵɵadvance(1);
660
- i0.ɵɵproperty("ngIf", !ctx_r70.hasVisibleActions && !ctx_r70.hideColumnsManager && !ctx_r70.hasRowTemplateWithArrowDirectionRight);
659
+ i0.ɵɵproperty("ngIf", !ctx_r71.hasVisibleActions && !ctx_r71.hideColumnsManager && !ctx_r71.hasRowTemplateWithArrowDirectionRight);
661
660
  i0.ɵɵadvance(1);
662
- i0.ɵɵproperty("ngIf", ctx_r70.hasMainColumns && ctx_r70.hasRowTemplate && row_r71.$showDetail && ctx_r70.isShowRowTemplate(row_r71, rowIndex_r72));
661
+ i0.ɵɵproperty("ngIf", ctx_r71.hasMainColumns && ctx_r71.hasRowTemplate && row_r72.$showDetail && ctx_r71.isShowRowTemplate(row_r72, rowIndex_r73));
663
662
  i0.ɵɵadvance(1);
664
- i0.ɵɵproperty("ngIf", ctx_r70.hasMainColumns && ctx_r70.isShowMasterDetail(row_r71));
663
+ i0.ɵɵproperty("ngIf", ctx_r71.hasMainColumns && ctx_r71.isShowMasterDetail(row_r72));
665
664
  } }
666
- function PoTableComponent_ng_template_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
665
+ function PoTableComponent_ng_template_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {
667
666
  i0.ɵɵelementContainerStart(0);
668
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_2_tbody_1_Template, 13, 14, "tbody", 66);
667
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_Template, 13, 14, "tbody", 67);
669
668
  i0.ɵɵelementContainerEnd();
670
669
  } if (rf & 2) {
671
- const ctx_r69 = i0.ɵɵnextContext(2);
670
+ const ctx_r70 = i0.ɵɵnextContext(2);
672
671
  i0.ɵɵadvance(1);
673
- i0.ɵɵproperty("ngForOf", ctx_r69.items)("ngForTrackBy", ctx_r69.trackBy);
672
+ i0.ɵɵproperty("cdkVirtualForOf", ctx_r70.items)("cdkVirtualForTrackBy", ctx_r70.trackBy);
674
673
  } }
675
674
  function PoTableComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
676
- i0.ɵɵelementStart(0, "table", 38);
677
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_tbody_1_Template, 5, 2, "tbody", 62);
678
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_2_Template, 2, 2, "ng-container", 23);
679
- i0.ɵɵelementEnd();
675
+ const _r166 = i0.ɵɵgetCurrentView();
676
+ i0.ɵɵelementStart(0, "cdk-virtual-scroll-viewport", 61, 62);
677
+ i0.ɵɵlistener("scroll", function PoTableComponent_ng_template_6_Template_cdk_virtual_scroll_viewport_scroll_0_listener() { i0.ɵɵrestoreView(_r166); const ctx_r165 = i0.ɵɵnextContext(); return ctx_r165.syncronizeHorizontalScroll(); });
678
+ i0.ɵɵelementStart(2, "table", 39);
679
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_tbody_3_Template, 5, 2, "tbody", 63);
680
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_4_Template, 2, 2, "ng-container", 23);
681
+ i0.ɵɵelementEnd()();
680
682
  } if (rf & 2) {
681
683
  const ctx_r7 = i0.ɵɵnextContext();
684
+ i0.ɵɵstyleProp("height", ctx_r7.heightTableContainer, "px");
685
+ i0.ɵɵproperty("itemSize", ctx_r7.itemSize)("minBufferPx", ctx_r7.height < 100 ? 100 : ctx_r7.height)("maxBufferPx", ctx_r7.height < 200 ? 200 : ctx_r7.height);
686
+ i0.ɵɵadvance(2);
682
687
  i0.ɵɵclassProp("po-table-striped", ctx_r7.striped)("po-table-layout-fixed", ctx_r7.hideTextOverflow);
683
688
  i0.ɵɵadvance(1);
684
689
  i0.ɵɵproperty("ngIf", !ctx_r7.hasItems || !ctx_r7.hasMainColumns);
685
690
  i0.ɵɵadvance(1);
686
691
  i0.ɵɵproperty("ngIf", ctx_r7.hasMainColumns);
687
692
  } }
688
- function PoTableComponent_ng_template_8_th_3_input_2_Template(rf, ctx) { if (rf & 1) {
689
- i0.ɵɵelement(0, "input", 49);
690
- } if (rf & 2) {
691
- const ctx_r174 = i0.ɵɵnextContext(3);
692
- i0.ɵɵclassProp("po-table-checkbox-checked", ctx_r174.selectAll)("po-table-checkbox-indeterminate", ctx_r174.selectAll === null);
693
- } }
694
- function PoTableComponent_ng_template_8_th_3_label_3_Template(rf, ctx) { if (rf & 1) {
695
- const _r177 = i0.ɵɵgetCurrentView();
696
- i0.ɵɵelementStart(0, "label", 50);
697
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_3_label_3_Template_label_click_0_listener() { i0.ɵɵrestoreView(_r177); const ctx_r176 = i0.ɵɵnextContext(3); return ctx_r176.selectAllRows(); });
693
+ function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template(rf, ctx) { if (rf & 1) {
694
+ const _r179 = i0.ɵɵgetCurrentView();
695
+ i0.ɵɵelementStart(0, "po-checkbox", 49);
696
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_click_0_listener() { i0.ɵɵrestoreView(_r179); const ctx_r178 = i0.ɵɵnextContext(3); return ctx_r178.selectAllRows(); })("p-change", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r179); const ctx_r180 = i0.ɵɵnextContext(3); return ctx_r180.selectAllRows(); })("ngModelChange", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r179); const ctx_r181 = i0.ɵɵnextContext(3); return ctx_r181.selectAll = $event; });
698
697
  i0.ɵɵelementEnd();
698
+ } if (rf & 2) {
699
+ const ctx_r177 = i0.ɵɵnextContext(3);
700
+ i0.ɵɵproperty("ngModel", ctx_r177.selectAll);
699
701
  } }
700
702
  function PoTableComponent_ng_template_8_th_3_Template(rf, ctx) { if (rf & 1) {
701
- i0.ɵɵelementStart(0, "th", 46)(1, "div");
702
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_3_input_2_Template, 1, 4, "input", 47);
703
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_th_3_label_3_Template, 1, 0, "label", 48);
703
+ i0.ɵɵelementStart(0, "th", 47)(1, "div");
704
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template, 1, 1, "po-checkbox", 48);
704
705
  i0.ɵɵelementEnd()();
705
706
  } if (rf & 2) {
706
- const ctx_r164 = i0.ɵɵnextContext(2);
707
- i0.ɵɵadvance(1);
708
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r164.height);
707
+ const ctx_r167 = i0.ɵɵnextContext(2);
709
708
  i0.ɵɵadvance(1);
710
- i0.ɵɵproperty("ngIf", !ctx_r164.hideSelectAll);
709
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r167.height);
711
710
  i0.ɵɵadvance(1);
712
- i0.ɵɵproperty("ngIf", !ctx_r164.hideSelectAll);
711
+ i0.ɵɵproperty("ngIf", !ctx_r167.hideSelectAll);
713
712
  } }
714
713
  function PoTableComponent_ng_template_8_th_4_Template(rf, ctx) { if (rf & 1) {
715
- i0.ɵɵelement(0, "th", 51);
714
+ i0.ɵɵelement(0, "th", 50);
716
715
  } }
717
716
  function PoTableComponent_ng_template_8_th_5_Template(rf, ctx) { if (rf & 1) {
718
717
  i0.ɵɵelement(0, "th");
719
718
  } if (rf & 2) {
720
- const ctx_r166 = i0.ɵɵnextContext(2);
721
- i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r166.isSingleAction)("po-table-header-single-action", ctx_r166.isSingleAction);
719
+ const ctx_r169 = i0.ɵɵnextContext(2);
720
+ i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r169.isSingleAction)("po-table-header-single-action", ctx_r169.isSingleAction);
722
721
  } }
723
722
  function PoTableComponent_ng_template_8_th_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
724
723
  i0.ɵɵelementContainer(0);
725
724
  } }
726
725
  function PoTableComponent_ng_template_8_th_6_Template(rf, ctx) { if (rf & 1) {
727
726
  i0.ɵɵelementStart(0, "th", 52, 53);
728
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_6_ng_container_2_Template, 1, 0, "ng-container", 54);
727
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_6_ng_container_2_Template, 1, 0, "ng-container", 32);
729
728
  i0.ɵɵelementEnd();
730
729
  } if (rf & 2) {
731
- const ctx_r167 = i0.ɵɵnextContext(2);
730
+ const ctx_r170 = i0.ɵɵnextContext(2);
732
731
  const _r19 = i0.ɵɵreference(21);
733
732
  const _r21 = i0.ɵɵreference(23);
734
733
  i0.ɵɵadvance(2);
735
- i0.ɵɵproperty("ngIf", ctx_r167.height)("ngIfThen", _r19)("ngIfElse", _r21);
734
+ i0.ɵɵproperty("ngIf", ctx_r170.height)("ngIfThen", _r19)("ngIfElse", _r21);
736
735
  } }
737
736
  function PoTableComponent_ng_template_8_th_7_ng_container_3_Template(rf, ctx) { if (rf & 1) {
738
737
  i0.ɵɵelementContainer(0);
739
738
  } }
740
739
  function PoTableComponent_ng_template_8_th_7_Template(rf, ctx) { if (rf & 1) {
741
- const _r185 = i0.ɵɵgetCurrentView();
742
- i0.ɵɵelementStart(0, "th", 55, 56);
743
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r185); const column_r180 = restoredCtx.$implicit; const ctx_r184 = i0.ɵɵnextContext(2); return ctx_r184.sortColumn(column_r180); });
744
- i0.ɵɵelementStart(2, "div", 57);
745
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_th_7_ng_container_3_Template, 1, 0, "ng-container", 58);
740
+ const _r189 = i0.ɵɵgetCurrentView();
741
+ i0.ɵɵelementStart(0, "th", 54, 55);
742
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r189); const column_r184 = restoredCtx.$implicit; const ctx_r188 = i0.ɵɵnextContext(2); return ctx_r188.sortColumn(column_r184); });
743
+ i0.ɵɵelementStart(2, "div", 56);
744
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_th_7_ng_container_3_Template, 1, 0, "ng-container", 57);
746
745
  i0.ɵɵelementEnd()();
747
746
  } if (rf & 2) {
748
- const column_r180 = ctx.$implicit;
749
- const ctx_r168 = i0.ɵɵnextContext(2);
747
+ const column_r184 = ctx.$implicit;
748
+ const ctx_r171 = i0.ɵɵnextContext(2);
750
749
  const _r17 = i0.ɵɵreference(19);
751
- i0.ɵɵstyleProp("width", column_r180.width)("max-width", column_r180.width)("min-width", column_r180.width);
752
- i0.ɵɵclassProp("po-clickable", ctx_r168.sort && column_r180.sortable !== false || ctx_r168.hasService)("po-table-header-subtitle", column_r180.type === "subtitle");
750
+ i0.ɵɵstyleProp("width", column_r184.width)("max-width", column_r184.width)("min-width", column_r184.width);
751
+ i0.ɵɵclassProp("po-clickable", ctx_r171.sort && column_r184.sortable !== false || ctx_r171.hasService)("po-table-header-subtitle", column_r184.type === "subtitle");
753
752
  i0.ɵɵadvance(2);
754
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r168.height)("po-table-header-flex-right", column_r180.type === "currency" || column_r180.type === "number")("po-table-header-flex-center", column_r180.type === "subtitle");
753
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r171.height)("po-table-header-flex-right", column_r184.type === "currency" || column_r184.type === "number")("po-table-header-flex-center", column_r184.type === "subtitle");
755
754
  i0.ɵɵadvance(1);
756
- i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c10, column_r180));
755
+ i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c13, column_r184));
757
756
  } }
758
757
  function PoTableComponent_ng_template_8_th_8_Template(rf, ctx) { if (rf & 1) {
759
- i0.ɵɵelement(0, "th", 51);
758
+ i0.ɵɵelement(0, "th", 50);
760
759
  } }
761
760
  function PoTableComponent_ng_template_8_th_9_Template(rf, ctx) { if (rf & 1) {
762
761
  i0.ɵɵelement(0, "th");
763
762
  } if (rf & 2) {
764
- const ctx_r170 = i0.ɵɵnextContext(2);
765
- i0.ɵɵclassProp("po-table-header-single-action", ctx_r170.isSingleAction)("po-table-header-actions", !ctx_r170.isSingleAction);
763
+ const ctx_r173 = i0.ɵɵnextContext(2);
764
+ i0.ɵɵclassProp("po-table-header-single-action", ctx_r173.isSingleAction)("po-table-header-actions", !ctx_r173.isSingleAction);
766
765
  } }
767
766
  function PoTableComponent_ng_template_8_th_10_Template(rf, ctx) { if (rf & 1) {
768
- const _r189 = i0.ɵɵgetCurrentView();
769
- i0.ɵɵelementStart(0, "th", null, 59)(2, "div")(3, "button", 60, 61);
770
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r189); const ctx_r188 = i0.ɵɵnextContext(2); return ctx_r188.onOpenColumnManager(); });
767
+ const _r193 = i0.ɵɵgetCurrentView();
768
+ i0.ɵɵelementStart(0, "th", null, 58)(2, "div")(3, "button", 59, 60);
769
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r193); const ctx_r192 = i0.ɵɵnextContext(2); return ctx_r192.onOpenColumnManager(); });
771
770
  i0.ɵɵelementEnd()()();
772
771
  } if (rf & 2) {
773
- const _r186 = i0.ɵɵreference(1);
774
- const ctx_r171 = i0.ɵɵnextContext(2);
775
- i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r171.isSingleAction || !ctx_r171.actionRight)("po-table-header-column-manager-border", !ctx_r171.height && ctx_r171.container)("po-table-header-single-action", ctx_r171.isSingleAction && ctx_r171.actionRight);
772
+ const _r190 = i0.ɵɵreference(1);
773
+ const ctx_r174 = i0.ɵɵnextContext(2);
774
+ i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r174.isSingleAction || !ctx_r174.actionRight)("po-table-header-column-manager-border", !ctx_r174.height && ctx_r174.container)("po-table-header-single-action", ctx_r174.isSingleAction && ctx_r174.actionRight);
776
775
  i0.ɵɵadvance(2);
777
- i0.ɵɵstyleProp("width", ctx_r171.height && ctx_r171.visibleActions.length ? _r186.offsetWidth : undefined, "px");
778
- i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r171.height && ctx_r171.container)("po-table-header-column-manager-fixed-inner", ctx_r171.height);
776
+ i0.ɵɵstyleProp("width", ctx_r174.height && ctx_r174.visibleActions.length ? _r190.offsetWidth : undefined, "px");
777
+ i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r174.height && ctx_r174.container)("po-table-header-column-manager-fixed-inner", ctx_r174.height);
779
778
  i0.ɵɵadvance(1);
780
- i0.ɵɵproperty("p-tooltip", ctx_r171.literals.columnsManager);
779
+ i0.ɵɵproperty("p-tooltip", ctx_r174.literals.columnsManager);
780
+ i0.ɵɵattribute("aria-label", ctx_r174.literals.columnsManager);
781
781
  } }
782
782
  function PoTableComponent_ng_template_8_tbody_11_Template(rf, ctx) { if (rf & 1) {
783
- i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 64)(2, "td", 65)(3, "span");
783
+ i0.ɵɵelementStart(0, "tbody", 64)(1, "tr", 65)(2, "td", 66)(3, "span");
784
784
  i0.ɵɵtext(4);
785
785
  i0.ɵɵelementEnd()()()();
786
786
  } if (rf & 2) {
787
- const ctx_r172 = i0.ɵɵnextContext(2);
787
+ const ctx_r175 = i0.ɵɵnextContext(2);
788
788
  i0.ɵɵadvance(2);
789
- i0.ɵɵproperty("colSpan", ctx_r172.columnCount);
789
+ i0.ɵɵproperty("colSpan", ctx_r175.columnCount);
790
790
  i0.ɵɵadvance(2);
791
- i0.ɵɵtextInterpolate1(" ", ctx_r172.literals.noData, " ");
791
+ i0.ɵɵtextInterpolate1(" ", ctx_r175.literals.noData, " ");
792
792
  } }
793
793
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
794
794
  i0.ɵɵelementContainer(0);
795
795
  } }
796
796
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_Template(rf, ctx) { if (rf & 1) {
797
- i0.ɵɵelementStart(0, "td", 46);
798
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 58);
797
+ i0.ɵɵelementStart(0, "td", 47);
798
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 57);
799
799
  i0.ɵɵelementEnd();
800
800
  } if (rf & 2) {
801
- const row_r191 = i0.ɵɵnextContext().$implicit;
802
- const ctx_r193 = i0.ɵɵnextContext(3);
801
+ const row_r195 = i0.ɵɵnextContext().$implicit;
802
+ const ctx_r197 = i0.ɵɵnextContext(3);
803
803
  const _r13 = i0.ɵɵreference(15);
804
804
  const _r15 = i0.ɵɵreference(17);
805
805
  i0.ɵɵadvance(1);
806
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r193.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c10, row_r191));
806
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r197.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c13, row_r195));
807
807
  } }
808
808
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_ng_template_1_Template(rf, ctx) { }
809
809
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template(rf, ctx) { if (rf & 1) {
810
- const _r209 = i0.ɵɵgetCurrentView();
811
- i0.ɵɵelementStart(0, "td", 71);
812
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r209); const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r207 = i0.ɵɵnextContext(3); return ctx_r207.toggleDetail(row_r191); });
813
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 72);
810
+ const _r213 = i0.ɵɵgetCurrentView();
811
+ i0.ɵɵelementStart(0, "td", 72);
812
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r213); const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r211 = i0.ɵɵnextContext(3); return ctx_r211.toggleDetail(row_r195); });
813
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 73);
814
814
  i0.ɵɵelementEnd();
815
815
  } if (rf & 2) {
816
- const ctx_r210 = i0.ɵɵnextContext();
817
- const row_r191 = ctx_r210.$implicit;
818
- const rowIndex_r192 = ctx_r210.index;
816
+ const ctx_r214 = i0.ɵɵnextContext();
817
+ const row_r195 = ctx_r214.$implicit;
818
+ const rowIndex_r196 = ctx_r214.index;
819
819
  i0.ɵɵnextContext(3);
820
820
  const _r11 = i0.ɵɵreference(13);
821
821
  i0.ɵɵadvance(1);
822
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r191, rowIndex_r192));
822
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r195, rowIndex_r196));
823
823
  } }
824
824
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_ng_template_0_Template(rf, ctx) { }
825
825
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_Template(rf, ctx) { if (rf & 1) {
826
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 72);
826
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 73);
827
827
  } if (rf & 2) {
828
- const ctx_r212 = i0.ɵɵnextContext();
829
- const row_r191 = ctx_r212.$implicit;
830
- const rowIndex_r192 = ctx_r212.index;
828
+ const ctx_r216 = i0.ɵɵnextContext();
829
+ const row_r195 = ctx_r216.$implicit;
830
+ const rowIndex_r196 = ctx_r216.index;
831
831
  i0.ɵɵnextContext(3);
832
832
  const _r23 = i0.ɵɵreference(25);
833
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r191, rowIndex_r192));
833
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r195, rowIndex_r196));
834
834
  } }
835
835
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_ng_template_1_Template(rf, ctx) { }
836
836
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template(rf, ctx) { if (rf & 1) {
837
- const _r216 = i0.ɵɵgetCurrentView();
838
- i0.ɵɵelementStart(0, "td", 71);
839
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r216); const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r214 = i0.ɵɵnextContext(3); return ctx_r214.toggleDetail(row_r191); });
840
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 72);
837
+ const _r220 = i0.ɵɵgetCurrentView();
838
+ i0.ɵɵelementStart(0, "td", 72);
839
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r220); const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r218 = i0.ɵɵnextContext(3); return ctx_r218.toggleDetail(row_r195); });
840
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 73);
841
841
  i0.ɵɵelementEnd();
842
842
  } if (rf & 2) {
843
- const ctx_r217 = i0.ɵɵnextContext();
844
- const row_r191 = ctx_r217.$implicit;
845
- const rowIndex_r192 = ctx_r217.index;
843
+ const ctx_r221 = i0.ɵɵnextContext();
844
+ const row_r195 = ctx_r221.$implicit;
845
+ const rowIndex_r196 = ctx_r221.index;
846
846
  i0.ɵɵnextContext(3);
847
847
  const _r11 = i0.ɵɵreference(13);
848
848
  i0.ɵɵadvance(1);
849
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r191, rowIndex_r192));
849
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r195, rowIndex_r196));
850
850
  } }
851
851
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
852
852
  i0.ɵɵelementContainer(0);
853
853
  } }
854
854
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_Template(rf, ctx) { if (rf & 1) {
855
855
  i0.ɵɵelementStart(0, "span");
856
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 58);
856
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 57);
857
857
  i0.ɵɵelementEnd();
858
858
  } if (rf & 2) {
859
- const column_r218 = i0.ɵɵnextContext().$implicit;
860
- const row_r191 = i0.ɵɵnextContext().$implicit;
861
- const ctx_r220 = i0.ɵɵnextContext(3);
859
+ const column_r222 = i0.ɵɵnextContext().$implicit;
860
+ const row_r195 = i0.ɵɵnextContext().$implicit;
861
+ const ctx_r224 = i0.ɵɵnextContext(3);
862
862
  i0.ɵɵadvance(1);
863
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r220.getTemplate(column_r218))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c10, ctx_r220.getCellData(row_r191, column_r218)));
863
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r224.getTemplate(column_r222))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c13, ctx_r224.getCellData(row_r195, column_r222)));
864
864
  } }
865
865
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
866
866
  i0.ɵɵelementContainer(0);
867
867
  } }
868
868
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_Template(rf, ctx) { if (rf & 1) {
869
869
  i0.ɵɵelementStart(0, "span");
870
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 58);
870
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 57);
871
871
  i0.ɵɵelementEnd();
872
872
  } if (rf & 2) {
873
- const column_r218 = i0.ɵɵnextContext().$implicit;
874
- const row_r191 = i0.ɵɵnextContext().$implicit;
875
- const ctx_r221 = i0.ɵɵnextContext(3);
873
+ const column_r222 = i0.ɵɵnextContext().$implicit;
874
+ const row_r195 = i0.ɵɵnextContext().$implicit;
875
+ const ctx_r225 = i0.ɵɵnextContext(3);
876
876
  i0.ɵɵadvance(1);
877
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r221.tableCellTemplate == null ? null : ctx_r221.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c12, row_r191, column_r218));
877
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r225.tableCellTemplate == null ? null : ctx_r225.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c15, row_r195, column_r222));
878
878
  } }
879
879
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_4_Template(rf, ctx) { if (rf & 1) {
880
880
  i0.ɵɵelementStart(0, "span");
881
881
  i0.ɵɵtext(1);
882
882
  i0.ɵɵelementEnd();
883
883
  } if (rf & 2) {
884
- const column_r218 = i0.ɵɵnextContext().$implicit;
885
- const row_r191 = i0.ɵɵnextContext().$implicit;
886
- const ctx_r222 = i0.ɵɵnextContext(3);
884
+ const column_r222 = i0.ɵɵnextContext().$implicit;
885
+ const row_r195 = i0.ɵɵnextContext().$implicit;
886
+ const ctx_r226 = i0.ɵɵnextContext(3);
887
887
  i0.ɵɵadvance(1);
888
- i0.ɵɵtextInterpolate1(" ", ctx_r222.getBooleanLabel(ctx_r222.getCellData(row_r191, column_r218), column_r218), " ");
888
+ i0.ɵɵtextInterpolate1(" ", ctx_r226.getBooleanLabel(ctx_r226.getCellData(row_r195, column_r222), column_r222), " ");
889
889
  } }
890
890
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Template(rf, ctx) { if (rf & 1) {
891
891
  i0.ɵɵelementStart(0, "span");
@@ -893,11 +893,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Temp
893
893
  i0.ɵɵpipe(2, "currency");
894
894
  i0.ɵɵelementEnd();
895
895
  } if (rf & 2) {
896
- const column_r218 = i0.ɵɵnextContext().$implicit;
897
- const row_r191 = i0.ɵɵnextContext().$implicit;
898
- const ctx_r223 = i0.ɵɵnextContext(3);
896
+ const column_r222 = i0.ɵɵnextContext().$implicit;
897
+ const row_r195 = i0.ɵɵnextContext().$implicit;
898
+ const ctx_r227 = i0.ɵɵnextContext(3);
899
899
  i0.ɵɵadvance(1);
900
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r223.getCellData(row_r191, column_r218), column_r218.format, "symbol", "1.2-2"), " ");
900
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r227.getCellData(row_r195, column_r222), column_r222.format, "symbol", "1.2-2"), " ");
901
901
  } }
902
902
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Template(rf, ctx) { if (rf & 1) {
903
903
  i0.ɵɵelementStart(0, "span");
@@ -905,11 +905,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Temp
905
905
  i0.ɵɵpipe(2, "date");
906
906
  i0.ɵɵelementEnd();
907
907
  } if (rf & 2) {
908
- const column_r218 = i0.ɵɵnextContext().$implicit;
909
- const row_r191 = i0.ɵɵnextContext().$implicit;
910
- const ctx_r224 = i0.ɵɵnextContext(3);
908
+ const column_r222 = i0.ɵɵnextContext().$implicit;
909
+ const row_r195 = i0.ɵɵnextContext().$implicit;
910
+ const ctx_r228 = i0.ɵɵnextContext(3);
911
911
  i0.ɵɵadvance(1);
912
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r224.getCellData(row_r191, column_r218), column_r218.format || "dd/MM/yyyy"), " ");
912
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r228.getCellData(row_r195, column_r222), column_r222.format || "dd/MM/yyyy"), " ");
913
913
  } }
914
914
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Template(rf, ctx) { if (rf & 1) {
915
915
  i0.ɵɵelementStart(0, "span");
@@ -917,11 +917,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Temp
917
917
  i0.ɵɵpipe(2, "po_time");
918
918
  i0.ɵɵelementEnd();
919
919
  } if (rf & 2) {
920
- const column_r218 = i0.ɵɵnextContext().$implicit;
921
- const row_r191 = i0.ɵɵnextContext().$implicit;
922
- const ctx_r225 = i0.ɵɵnextContext(3);
920
+ const column_r222 = i0.ɵɵnextContext().$implicit;
921
+ const row_r195 = i0.ɵɵnextContext().$implicit;
922
+ const ctx_r229 = i0.ɵɵnextContext(3);
923
923
  i0.ɵɵadvance(1);
924
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r225.getCellData(row_r191, column_r218), column_r218.format || "HH:mm:ss.ffffff"), " ");
924
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r229.getCellData(row_r195, column_r222), column_r222.format || "HH:mm:ss.ffffff"), " ");
925
925
  } }
926
926
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Template(rf, ctx) { if (rf & 1) {
927
927
  i0.ɵɵelementStart(0, "span");
@@ -929,105 +929,105 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Temp
929
929
  i0.ɵɵpipe(2, "date");
930
930
  i0.ɵɵelementEnd();
931
931
  } if (rf & 2) {
932
- const column_r218 = i0.ɵɵnextContext().$implicit;
933
- const row_r191 = i0.ɵɵnextContext().$implicit;
934
- const ctx_r226 = i0.ɵɵnextContext(3);
932
+ const column_r222 = i0.ɵɵnextContext().$implicit;
933
+ const row_r195 = i0.ɵɵnextContext().$implicit;
934
+ const ctx_r230 = i0.ɵɵnextContext(3);
935
935
  i0.ɵɵadvance(1);
936
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r226.getCellData(row_r191, column_r218), column_r218.format || "dd/MM/yyyy HH:mm:ss"), " ");
936
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r230.getCellData(row_r195, column_r222), column_r222.format || "dd/MM/yyyy HH:mm:ss"), " ");
937
937
  } }
938
938
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_9_Template(rf, ctx) { if (rf & 1) {
939
939
  i0.ɵɵelementStart(0, "span");
940
940
  i0.ɵɵtext(1);
941
941
  i0.ɵɵelementEnd();
942
942
  } if (rf & 2) {
943
- const column_r218 = i0.ɵɵnextContext().$implicit;
944
- const row_r191 = i0.ɵɵnextContext().$implicit;
945
- const ctx_r227 = i0.ɵɵnextContext(3);
943
+ const column_r222 = i0.ɵɵnextContext().$implicit;
944
+ const row_r195 = i0.ɵɵnextContext().$implicit;
945
+ const ctx_r231 = i0.ɵɵnextContext(3);
946
946
  i0.ɵɵadvance(1);
947
- i0.ɵɵtextInterpolate1(" ", ctx_r227.formatNumber(ctx_r227.getCellData(row_r191, column_r218), column_r218.format), " ");
947
+ i0.ɵɵtextInterpolate1(" ", ctx_r231.formatNumber(ctx_r231.getCellData(row_r195, column_r222), column_r222.format), " ");
948
948
  } }
949
949
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template(rf, ctx) { if (rf & 1) {
950
- const _r253 = i0.ɵɵgetCurrentView();
951
- i0.ɵɵelementStart(0, "po-table-column-link", 79);
952
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r253); const column_r218 = i0.ɵɵnextContext().$implicit; const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r251 = i0.ɵɵnextContext(3); return ctx_r251.onClickLink($event, row_r191, column_r218); });
950
+ const _r257 = i0.ɵɵgetCurrentView();
951
+ i0.ɵɵelementStart(0, "po-table-column-link", 80);
952
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r257); const column_r222 = i0.ɵɵnextContext().$implicit; const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r255 = i0.ɵɵnextContext(3); return ctx_r255.onClickLink($event, row_r195, column_r222); });
953
953
  i0.ɵɵelementEnd();
954
954
  } if (rf & 2) {
955
- const column_r218 = i0.ɵɵnextContext().$implicit;
956
- const row_r191 = i0.ɵɵnextContext().$implicit;
957
- const ctx_r228 = i0.ɵɵnextContext(3);
958
- i0.ɵɵproperty("p-action", column_r218.action)("p-disabled", ctx_r228.checkDisabled(row_r191, column_r218))("p-link", row_r191[column_r218.link])("p-row", row_r191)("p-value", ctx_r228.getCellData(row_r191, column_r218));
955
+ const column_r222 = i0.ɵɵnextContext().$implicit;
956
+ const row_r195 = i0.ɵɵnextContext().$implicit;
957
+ const ctx_r232 = i0.ɵɵnextContext(3);
958
+ i0.ɵɵproperty("p-action", column_r222.action)("p-disabled", ctx_r232.checkDisabled(row_r195, column_r222))("p-link", row_r195[column_r222.link])("p-row", row_r195)("p-value", ctx_r232.getCellData(row_r195, column_r222));
959
959
  } }
960
960
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_icon_11_Template(rf, ctx) { if (rf & 1) {
961
- i0.ɵɵelement(0, "po-table-column-icon", 80);
961
+ i0.ɵɵelement(0, "po-table-column-icon", 81);
962
962
  } if (rf & 2) {
963
- const column_r218 = i0.ɵɵnextContext().$implicit;
964
- const row_r191 = i0.ɵɵnextContext().$implicit;
965
- const ctx_r229 = i0.ɵɵnextContext(3);
966
- i0.ɵɵproperty("p-column", column_r218)("p-icons", ctx_r229.getColumnIcons(row_r191, column_r218))("p-row", row_r191);
963
+ const column_r222 = i0.ɵɵnextContext().$implicit;
964
+ const row_r195 = i0.ɵɵnextContext().$implicit;
965
+ const ctx_r233 = i0.ɵɵnextContext(3);
966
+ i0.ɵɵproperty("p-column", column_r222)("p-icons", ctx_r233.getColumnIcons(row_r195, column_r222))("p-row", row_r195);
967
967
  } }
968
968
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_12_Template(rf, ctx) { if (rf & 1) {
969
969
  i0.ɵɵelementStart(0, "span");
970
- i0.ɵɵelement(1, "po-table-subtitle-circle", 81);
970
+ i0.ɵɵelement(1, "po-table-subtitle-circle", 82);
971
971
  i0.ɵɵelementEnd();
972
972
  } if (rf & 2) {
973
- const column_r218 = i0.ɵɵnextContext().$implicit;
974
- const row_r191 = i0.ɵɵnextContext().$implicit;
975
- const ctx_r230 = i0.ɵɵnextContext(3);
973
+ const column_r222 = i0.ɵɵnextContext().$implicit;
974
+ const row_r195 = i0.ɵɵnextContext().$implicit;
975
+ const ctx_r234 = i0.ɵɵnextContext(3);
976
976
  i0.ɵɵadvance(1);
977
- i0.ɵɵproperty("p-subtitle", ctx_r230.getSubtitleColumn(row_r191, column_r218));
977
+ i0.ɵɵproperty("p-subtitle", ctx_r234.getSubtitleColumn(row_r195, column_r222));
978
978
  } }
979
979
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_13_Template(rf, ctx) { if (rf & 1) {
980
980
  i0.ɵɵelementStart(0, "span");
981
- i0.ɵɵelement(1, "po-table-column-label", 82);
981
+ i0.ɵɵelement(1, "po-table-column-label", 83);
982
982
  i0.ɵɵelementEnd();
983
983
  } if (rf & 2) {
984
- const column_r218 = i0.ɵɵnextContext().$implicit;
985
- const row_r191 = i0.ɵɵnextContext().$implicit;
986
- const ctx_r231 = i0.ɵɵnextContext(3);
984
+ const column_r222 = i0.ɵɵnextContext().$implicit;
985
+ const row_r195 = i0.ɵɵnextContext().$implicit;
986
+ const ctx_r235 = i0.ɵɵnextContext(3);
987
987
  i0.ɵɵadvance(1);
988
- i0.ɵɵproperty("p-value", ctx_r231.getColumnLabel(row_r191, column_r218));
988
+ i0.ɵɵproperty("p-value", ctx_r235.getColumnLabel(row_r195, column_r222));
989
989
  } }
990
990
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_14_Template(rf, ctx) { if (rf & 1) {
991
991
  i0.ɵɵelementStart(0, "span");
992
992
  i0.ɵɵtext(1);
993
993
  i0.ɵɵelementEnd();
994
994
  } if (rf & 2) {
995
- const column_r218 = i0.ɵɵnextContext().$implicit;
996
- const row_r191 = i0.ɵɵnextContext().$implicit;
997
- const ctx_r232 = i0.ɵɵnextContext(3);
995
+ const column_r222 = i0.ɵɵnextContext().$implicit;
996
+ const row_r195 = i0.ɵɵnextContext().$implicit;
997
+ const ctx_r236 = i0.ɵɵnextContext(3);
998
998
  i0.ɵɵadvance(1);
999
- i0.ɵɵtextInterpolate(ctx_r232.getCellData(row_r191, column_r218));
999
+ i0.ɵɵtextInterpolate(ctx_r236.getCellData(row_r195, column_r222));
1000
1000
  } }
1001
1001
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template(rf, ctx) { if (rf & 1) {
1002
- const _r266 = i0.ɵɵgetCurrentView();
1003
- i0.ɵɵelementStart(0, "td", 73);
1004
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r266); const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r265 = i0.ɵɵnextContext(3); return ctx_r265.selectable ? ctx_r265.selectRow(row_r191) : "javascript:;"; });
1005
- i0.ɵɵelementStart(1, "div", 74);
1006
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r266); const column_r218 = restoredCtx.$implicit; const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r268 = i0.ɵɵnextContext(3); return ctx_r268.tooltipMouseEnter($event, column_r218, row_r191); })("mouseleave", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r266); const ctx_r270 = i0.ɵɵnextContext(4); return ctx_r270.tooltipMouseLeave(); });
1007
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_Template, 2, 4, "span", 75);
1008
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_Template, 2, 5, "span", 75);
1009
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_4_Template, 2, 1, "span", 75);
1010
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Template, 3, 6, "span", 75);
1011
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Template, 3, 4, "span", 75);
1012
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Template, 3, 4, "span", 75);
1013
- i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Template, 3, 4, "span", 75);
1014
- i0.ɵɵtemplate(9, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_9_Template, 2, 1, "span", 75);
1015
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template, 1, 5, "po-table-column-link", 76);
1016
- i0.ɵɵtemplate(11, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_icon_11_Template, 1, 3, "po-table-column-icon", 77);
1017
- i0.ɵɵtemplate(12, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_12_Template, 2, 1, "span", 75);
1018
- i0.ɵɵtemplate(13, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_13_Template, 2, 1, "span", 75);
1019
- i0.ɵɵtemplate(14, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_14_Template, 2, 1, "span", 78);
1002
+ const _r270 = i0.ɵɵgetCurrentView();
1003
+ i0.ɵɵelementStart(0, "td", 74);
1004
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r270); const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r269 = i0.ɵɵnextContext(3); return ctx_r269.selectable ? ctx_r269.selectRow(row_r195) : "javascript:;"; });
1005
+ i0.ɵɵelementStart(1, "div", 75);
1006
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r270); const column_r222 = restoredCtx.$implicit; const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r272 = i0.ɵɵnextContext(3); return ctx_r272.tooltipMouseEnter($event, column_r222, row_r195); })("mouseleave", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r270); const ctx_r274 = i0.ɵɵnextContext(4); return ctx_r274.tooltipMouseLeave(); });
1007
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_Template, 2, 4, "span", 76);
1008
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_Template, 2, 5, "span", 76);
1009
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_4_Template, 2, 1, "span", 76);
1010
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Template, 3, 6, "span", 76);
1011
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Template, 3, 4, "span", 76);
1012
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Template, 3, 4, "span", 76);
1013
+ i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Template, 3, 4, "span", 76);
1014
+ i0.ɵɵtemplate(9, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_9_Template, 2, 1, "span", 76);
1015
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template, 1, 5, "po-table-column-link", 77);
1016
+ i0.ɵɵtemplate(11, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_icon_11_Template, 1, 3, "po-table-column-icon", 78);
1017
+ i0.ɵɵtemplate(12, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_12_Template, 2, 1, "span", 76);
1018
+ i0.ɵɵtemplate(13, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_13_Template, 2, 1, "span", 76);
1019
+ i0.ɵɵtemplate(14, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_14_Template, 2, 1, "span", 79);
1020
1020
  i0.ɵɵelementEnd()();
1021
1021
  } if (rf & 2) {
1022
- const column_r218 = ctx.$implicit;
1023
- const row_r191 = i0.ɵɵnextContext().$implicit;
1024
- const ctx_r197 = i0.ɵɵnextContext(3);
1025
- i0.ɵɵstyleProp("width", column_r218.width)("max-width", column_r218.width)("min-width", column_r218.width);
1026
- i0.ɵɵclassProp("po-table-column", column_r218.type !== "icon")("po-table-column-right", column_r218.type === "currency" || column_r218.type === "number")("po-table-column-center", column_r218.type === "subtitle")("po-table-column-icons", column_r218.type === "icon");
1027
- i0.ɵɵproperty("ngClass", ctx_r197.getClassColor(row_r191, column_r218));
1022
+ const column_r222 = ctx.$implicit;
1023
+ const row_r195 = i0.ɵɵnextContext().$implicit;
1024
+ const ctx_r201 = i0.ɵɵnextContext(3);
1025
+ i0.ɵɵstyleProp("width", column_r222.width)("max-width", column_r222.width)("min-width", column_r222.width);
1026
+ i0.ɵɵclassProp("po-table-column", column_r222.type !== "icon")("po-table-column-right", column_r222.type === "currency" || column_r222.type === "number")("po-table-column-center", column_r222.type === "subtitle")("po-table-column-icons", column_r222.type === "icon");
1027
+ i0.ɵɵproperty("ngClass", ctx_r201.getClassColor(row_r195, column_r222));
1028
1028
  i0.ɵɵadvance(1);
1029
- i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r197.hideTextOverflow);
1030
- i0.ɵɵproperty("ngSwitch", column_r218.type)("p-tooltip", ctx_r197.tooltipText);
1029
+ i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r201.hideTextOverflow);
1030
+ i0.ɵɵproperty("ngSwitch", column_r222.type)("p-tooltip", ctx_r201.tooltipText);
1031
1031
  i0.ɵɵadvance(1);
1032
1032
  i0.ɵɵproperty("ngSwitchCase", "columnTemplate");
1033
1033
  i0.ɵɵadvance(1);
@@ -1055,132 +1055,132 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template(rf
1055
1055
  } }
1056
1056
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_ng_template_1_Template(rf, ctx) { }
1057
1057
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template(rf, ctx) { if (rf & 1) {
1058
- const _r275 = i0.ɵɵgetCurrentView();
1059
- i0.ɵɵelementStart(0, "td", 71);
1060
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r275); const row_r191 = i0.ɵɵnextContext().$implicit; const ctx_r273 = i0.ɵɵnextContext(3); return ctx_r273.toggleDetail(row_r191); });
1061
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 72);
1058
+ const _r279 = i0.ɵɵgetCurrentView();
1059
+ i0.ɵɵelementStart(0, "td", 72);
1060
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r279); const row_r195 = i0.ɵɵnextContext().$implicit; const ctx_r277 = i0.ɵɵnextContext(3); return ctx_r277.toggleDetail(row_r195); });
1061
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 73);
1062
1062
  i0.ɵɵelementEnd();
1063
1063
  } if (rf & 2) {
1064
- const ctx_r276 = i0.ɵɵnextContext();
1065
- const row_r191 = ctx_r276.$implicit;
1066
- const rowIndex_r192 = ctx_r276.index;
1064
+ const ctx_r280 = i0.ɵɵnextContext();
1065
+ const row_r195 = ctx_r280.$implicit;
1066
+ const rowIndex_r196 = ctx_r280.index;
1067
1067
  i0.ɵɵnextContext(3);
1068
1068
  const _r11 = i0.ɵɵreference(13);
1069
1069
  i0.ɵɵadvance(1);
1070
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r191, rowIndex_r192));
1070
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r195, rowIndex_r196));
1071
1071
  } }
1072
1072
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_ng_template_0_Template(rf, ctx) { }
1073
1073
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_Template(rf, ctx) { if (rf & 1) {
1074
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 72);
1074
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 73);
1075
1075
  } if (rf & 2) {
1076
- const ctx_r278 = i0.ɵɵnextContext();
1077
- const row_r191 = ctx_r278.$implicit;
1078
- const rowIndex_r192 = ctx_r278.index;
1076
+ const ctx_r282 = i0.ɵɵnextContext();
1077
+ const row_r195 = ctx_r282.$implicit;
1078
+ const rowIndex_r196 = ctx_r282.index;
1079
1079
  i0.ɵɵnextContext(3);
1080
1080
  const _r23 = i0.ɵɵreference(25);
1081
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c11, row_r191, rowIndex_r192));
1081
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c14, row_r195, rowIndex_r196));
1082
1082
  } }
1083
1083
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
1084
1084
  i0.ɵɵelementContainerStart(0);
1085
- i0.ɵɵelement(1, "td", 88);
1085
+ i0.ɵɵelement(1, "td", 90);
1086
1086
  i0.ɵɵelementContainerEnd();
1087
1087
  } }
1088
1088
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_10_Template(rf, ctx) { if (rf & 1) {
1089
- i0.ɵɵelement(0, "td", 84);
1089
+ i0.ɵɵelement(0, "td", 85);
1090
1090
  } }
1091
1091
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_ng_template_2_Template(rf, ctx) { }
1092
1092
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_Template(rf, ctx) { if (rf & 1) {
1093
- i0.ɵɵelementStart(0, "tr")(1, "td", 85);
1094
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 72);
1093
+ i0.ɵɵelementStart(0, "tr")(1, "td", 86);
1094
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 73);
1095
1095
  i0.ɵɵelementEnd()();
1096
1096
  } if (rf & 2) {
1097
- const ctx_r280 = i0.ɵɵnextContext();
1098
- const row_r191 = ctx_r280.$implicit;
1099
- const rowIndex_r192 = ctx_r280.index;
1100
- const ctx_r202 = i0.ɵɵnextContext(3);
1097
+ const ctx_r284 = i0.ɵɵnextContext();
1098
+ const row_r195 = ctx_r284.$implicit;
1099
+ const rowIndex_r196 = ctx_r284.index;
1100
+ const ctx_r206 = i0.ɵɵnextContext(3);
1101
1101
  i0.ɵɵadvance(1);
1102
- i0.ɵɵproperty("colSpan", ctx_r202.columnCountForMasterDetail);
1102
+ i0.ɵɵproperty("colSpan", ctx_r206.columnCountForMasterDetail);
1103
1103
  i0.ɵɵadvance(1);
1104
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r202.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c13, row_r191, rowIndex_r192));
1104
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r206.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c16, row_r195, rowIndex_r196));
1105
1105
  } }
1106
1106
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template(rf, ctx) { if (rf & 1) {
1107
- const _r282 = i0.ɵɵgetCurrentView();
1108
- i0.ɵɵelementStart(0, "tr")(1, "td", 86)(2, "po-table-detail", 87);
1109
- i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r282); const ctx_r281 = i0.ɵɵnextContext(4); return ctx_r281.selectDetailRow($event); });
1107
+ const _r286 = i0.ɵɵgetCurrentView();
1108
+ i0.ɵɵelementStart(0, "tr")(1, "td", 87)(2, "po-table-detail", 88);
1109
+ i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r286); const ctx_r285 = i0.ɵɵnextContext(4); return ctx_r285.selectDetailRow($event); });
1110
1110
  i0.ɵɵelementEnd()()();
1111
1111
  } if (rf & 2) {
1112
- const row_r191 = i0.ɵɵnextContext().$implicit;
1113
- const ctx_r203 = i0.ɵɵnextContext(3);
1112
+ const row_r195 = i0.ɵɵnextContext().$implicit;
1113
+ const ctx_r207 = i0.ɵɵnextContext(3);
1114
1114
  i0.ɵɵadvance(1);
1115
- i0.ɵɵproperty("colSpan", ctx_r203.columnCountForMasterDetail);
1115
+ i0.ɵɵproperty("colSpan", ctx_r207.columnCountForMasterDetail);
1116
1116
  i0.ɵɵadvance(1);
1117
- i0.ɵɵproperty("p-selectable", ctx_r203.selectable && !ctx_r203.detailHideSelect)("p-detail", ctx_r203.columnMasterDetail.detail)("p-items", row_r191[ctx_r203.nameColumnDetail]);
1117
+ i0.ɵɵproperty("p-selectable", ctx_r207.selectable && !ctx_r207.detailHideSelect)("p-detail", ctx_r207.columnMasterDetail.detail)("p-items", row_r195[ctx_r207.nameColumnDetail]);
1118
1118
  } }
1119
1119
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template(rf, ctx) { if (rf & 1) {
1120
- i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 67);
1121
- i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_Template, 2, 4, "td", 39);
1122
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template, 2, 5, "td", 68);
1120
+ i0.ɵɵelementStart(0, "tbody", 64)(1, "tr", 68);
1121
+ i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_Template, 2, 4, "td", 40);
1122
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template, 2, 5, "td", 69);
1123
1123
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_Template, 1, 5, null, 23);
1124
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template, 2, 5, "td", 68);
1125
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template, 15, 31, "td", 69);
1126
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template, 2, 5, "td", 68);
1124
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template, 2, 5, "td", 69);
1125
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template, 15, 31, "td", 70);
1126
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template, 2, 5, "td", 69);
1127
1127
  i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_Template, 1, 5, null, 23);
1128
1128
  i0.ɵɵtemplate(9, PoTableComponent_ng_template_8_ng_container_12_tbody_1_ng_container_9_Template, 2, 0, "ng-container", 23);
1129
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_10_Template, 1, 0, "td", 70);
1129
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_10_Template, 1, 0, "td", 71);
1130
1130
  i0.ɵɵelementEnd();
1131
1131
  i0.ɵɵtemplate(11, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_Template, 3, 6, "tr", 23);
1132
1132
  i0.ɵɵtemplate(12, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template, 3, 4, "tr", 23);
1133
1133
  i0.ɵɵelementEnd();
1134
1134
  } if (rf & 2) {
1135
- const row_r191 = ctx.$implicit;
1136
- const rowIndex_r192 = ctx.index;
1137
- const ctx_r190 = i0.ɵɵnextContext(3);
1135
+ const row_r195 = ctx.$implicit;
1136
+ const rowIndex_r196 = ctx.index;
1137
+ const ctx_r194 = i0.ɵɵnextContext(3);
1138
1138
  i0.ɵɵadvance(1);
1139
- i0.ɵɵclassProp("po-table-row-active", row_r191.$selected || row_r191.$selected === null && ctx_r190.selectable);
1139
+ i0.ɵɵclassProp("po-table-row-active", row_r195.$selected || row_r195.$selected === null && ctx_r194.selectable);
1140
1140
  i0.ɵɵadvance(1);
1141
- i0.ɵɵproperty("ngIf", ctx_r190.selectable);
1141
+ i0.ɵɵproperty("ngIf", ctx_r194.selectable);
1142
1142
  i0.ɵɵadvance(1);
1143
- i0.ɵɵproperty("ngIf", ctx_r190.columnMasterDetail && !ctx_r190.hideDetail && !ctx_r190.hasRowTemplate);
1143
+ i0.ɵɵproperty("ngIf", ctx_r194.columnMasterDetail && !ctx_r194.hideDetail && !ctx_r194.hasRowTemplate);
1144
1144
  i0.ɵɵadvance(1);
1145
- i0.ɵɵproperty("ngIf", !ctx_r190.actionRight && (ctx_r190.visibleActions.length > 1 || ctx_r190.isSingleAction));
1145
+ i0.ɵɵproperty("ngIf", !ctx_r194.actionRight && (ctx_r194.visibleActions.length > 1 || ctx_r194.isSingleAction));
1146
1146
  i0.ɵɵadvance(1);
1147
- i0.ɵɵproperty("ngIf", ctx_r190.hasRowTemplate && !ctx_r190.hasRowTemplateWithArrowDirectionRight);
1147
+ i0.ɵɵproperty("ngIf", ctx_r194.hasRowTemplate && !ctx_r194.hasRowTemplateWithArrowDirectionRight);
1148
1148
  i0.ɵɵadvance(1);
1149
- i0.ɵɵproperty("ngForOf", ctx_r190.mainColumns)("ngForTrackBy", ctx_r190.trackBy);
1149
+ i0.ɵɵproperty("ngForOf", ctx_r194.mainColumns)("ngForTrackBy", ctx_r194.trackBy);
1150
1150
  i0.ɵɵadvance(1);
1151
- i0.ɵɵproperty("ngIf", ctx_r190.hasRowTemplateWithArrowDirectionRight);
1151
+ i0.ɵɵproperty("ngIf", ctx_r194.hasRowTemplateWithArrowDirectionRight);
1152
1152
  i0.ɵɵadvance(1);
1153
- i0.ɵɵproperty("ngIf", ctx_r190.actionRight);
1153
+ i0.ɵɵproperty("ngIf", ctx_r194.actionRight);
1154
1154
  i0.ɵɵadvance(1);
1155
- i0.ɵɵproperty("ngIf", !ctx_r190.actionRight && (ctx_r190.visibleActions.length > 1 || ctx_r190.isSingleAction) && !ctx_r190.hideColumnsManager);
1155
+ i0.ɵɵproperty("ngIf", !ctx_r194.actionRight && (ctx_r194.visibleActions.length > 1 || ctx_r194.isSingleAction) && !ctx_r194.hideColumnsManager);
1156
1156
  i0.ɵɵadvance(1);
1157
- i0.ɵɵproperty("ngIf", !ctx_r190.hasVisibleActions && !ctx_r190.hideColumnsManager && !ctx_r190.hasRowTemplateWithArrowDirectionRight);
1157
+ i0.ɵɵproperty("ngIf", !ctx_r194.hasVisibleActions && !ctx_r194.hideColumnsManager && !ctx_r194.hasRowTemplateWithArrowDirectionRight);
1158
1158
  i0.ɵɵadvance(1);
1159
- i0.ɵɵproperty("ngIf", ctx_r190.hasMainColumns && ctx_r190.hasRowTemplate && row_r191.$showDetail && ctx_r190.isShowRowTemplate(row_r191, rowIndex_r192));
1159
+ i0.ɵɵproperty("ngIf", ctx_r194.hasMainColumns && ctx_r194.hasRowTemplate && row_r195.$showDetail && ctx_r194.isShowRowTemplate(row_r195, rowIndex_r196));
1160
1160
  i0.ɵɵadvance(1);
1161
- i0.ɵɵproperty("ngIf", ctx_r190.hasMainColumns && ctx_r190.isShowMasterDetail(row_r191));
1161
+ i0.ɵɵproperty("ngIf", ctx_r194.hasMainColumns && ctx_r194.isShowMasterDetail(row_r195));
1162
1162
  } }
1163
1163
  function PoTableComponent_ng_template_8_ng_container_12_Template(rf, ctx) { if (rf & 1) {
1164
1164
  i0.ɵɵelementContainerStart(0);
1165
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template, 13, 14, "tbody", 66);
1165
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template, 13, 14, "tbody", 89);
1166
1166
  i0.ɵɵelementContainerEnd();
1167
1167
  } if (rf & 2) {
1168
- const ctx_r173 = i0.ɵɵnextContext(2);
1168
+ const ctx_r176 = i0.ɵɵnextContext(2);
1169
1169
  i0.ɵɵadvance(1);
1170
- i0.ɵɵproperty("ngForOf", ctx_r173.items)("ngForTrackBy", ctx_r173.trackBy);
1170
+ i0.ɵɵproperty("ngForOf", ctx_r176.items)("ngForTrackBy", ctx_r176.trackBy);
1171
1171
  } }
1172
1172
  function PoTableComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
1173
- i0.ɵɵelementStart(0, "table", 38)(1, "thead")(2, "tr");
1174
- i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_th_3_Template, 4, 4, "th", 39);
1175
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_th_4_Template, 1, 0, "th", 40);
1176
- i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_th_5_Template, 1, 4, "th", 41);
1177
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_th_6_Template, 3, 3, "th", 42);
1178
- i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_th_7_Template, 4, 20, "th", 43);
1179
- i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_th_8_Template, 1, 0, "th", 40);
1180
- i0.ɵɵtemplate(9, PoTableComponent_ng_template_8_th_9_Template, 1, 4, "th", 44);
1181
- i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_th_10_Template, 5, 13, "th", 45);
1173
+ i0.ɵɵelementStart(0, "table", 39)(1, "thead")(2, "tr");
1174
+ i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_th_3_Template, 3, 3, "th", 40);
1175
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_th_4_Template, 1, 0, "th", 41);
1176
+ i0.ɵɵtemplate(5, PoTableComponent_ng_template_8_th_5_Template, 1, 4, "th", 42);
1177
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_8_th_6_Template, 3, 3, "th", 43);
1178
+ i0.ɵɵtemplate(7, PoTableComponent_ng_template_8_th_7_Template, 4, 20, "th", 44);
1179
+ i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_th_8_Template, 1, 0, "th", 41);
1180
+ i0.ɵɵtemplate(9, PoTableComponent_ng_template_8_th_9_Template, 1, 4, "th", 45);
1181
+ i0.ɵɵtemplate(10, PoTableComponent_ng_template_8_th_10_Template, 5, 14, "th", 46);
1182
1182
  i0.ɵɵelementEnd()();
1183
- i0.ɵɵtemplate(11, PoTableComponent_ng_template_8_tbody_11_Template, 5, 2, "tbody", 62);
1183
+ i0.ɵɵtemplate(11, PoTableComponent_ng_template_8_tbody_11_Template, 5, 2, "tbody", 63);
1184
1184
  i0.ɵɵtemplate(12, PoTableComponent_ng_template_8_ng_container_12_Template, 2, 2, "ng-container", 23);
1185
1185
  i0.ɵɵelementEnd();
1186
1186
  } if (rf & 2) {
@@ -1210,65 +1210,64 @@ function PoTableComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
1210
1210
  i0.ɵɵproperty("ngIf", ctx_r9.hasMainColumns);
1211
1211
  } }
1212
1212
  function PoTableComponent_ng_template_12_span_0_Template(rf, ctx) { if (rf & 1) {
1213
- i0.ɵɵelement(0, "span", 90);
1213
+ i0.ɵɵelement(0, "span", 92);
1214
1214
  } if (rf & 2) {
1215
- const row_r284 = i0.ɵɵnextContext().row;
1216
- i0.ɵɵclassProp("po-icon-arrow-up", row_r284.$showDetail)("po-icon-arrow-down", !row_r284.$showDetail);
1215
+ const row_r288 = i0.ɵɵnextContext().row;
1216
+ i0.ɵɵclassProp("po-icon-arrow-up", row_r288.$showDetail)("po-icon-arrow-down", !row_r288.$showDetail);
1217
1217
  } }
1218
1218
  function PoTableComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
1219
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_12_span_0_Template, 1, 4, "span", 89);
1219
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_12_span_0_Template, 1, 4, "span", 91);
1220
1220
  } if (rf & 2) {
1221
- const row_r284 = ctx.row;
1222
- const rowIndex_r285 = ctx.rowIndex;
1221
+ const row_r288 = ctx.row;
1222
+ const rowIndex_r289 = ctx.rowIndex;
1223
1223
  const ctx_r12 = i0.ɵɵnextContext();
1224
- i0.ɵɵproperty("ngIf", ctx_r12.containsMasterDetail(row_r284) && !ctx_r12.hasRowTemplate || ctx_r12.isShowRowTemplate(row_r284, rowIndex_r285) && ctx_r12.hasRowTemplate);
1224
+ i0.ɵɵproperty("ngIf", ctx_r12.containsMasterDetail(row_r288) && !ctx_r12.hasRowTemplate || ctx_r12.isShowRowTemplate(row_r288, rowIndex_r289) && ctx_r12.hasRowTemplate);
1225
1225
  } }
1226
1226
  function PoTableComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
1227
- const _r290 = i0.ɵɵgetCurrentView();
1228
- i0.ɵɵelement(0, "input", 91);
1229
- i0.ɵɵelementStart(1, "label", 92);
1230
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_14_Template_label_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r290); const row_r288 = restoredCtx.$implicit; const ctx_r289 = i0.ɵɵnextContext(); return ctx_r289.selectable ? ctx_r289.selectRow(row_r288) : "javascript:;"; });
1227
+ const _r294 = i0.ɵɵgetCurrentView();
1228
+ i0.ɵɵelement(0, "input", 93);
1229
+ i0.ɵɵelementStart(1, "label", 94);
1230
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_14_Template_label_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r294); const row_r292 = restoredCtx.$implicit; const ctx_r293 = i0.ɵɵnextContext(); return ctx_r293.selectable ? ctx_r293.selectRow(row_r292) : "javascript:;"; });
1231
1231
  i0.ɵɵelementEnd();
1232
1232
  } if (rf & 2) {
1233
- const row_r288 = ctx.$implicit;
1234
- i0.ɵɵclassProp("po-table-radio-checked", row_r288.$selected);
1233
+ const row_r292 = ctx.$implicit;
1234
+ i0.ɵɵclassProp("po-table-radio-checked", row_r292.$selected);
1235
1235
  } }
1236
1236
  function PoTableComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
1237
- const _r293 = i0.ɵɵgetCurrentView();
1238
- i0.ɵɵelement(0, "input", 49);
1239
- i0.ɵɵelementStart(1, "label", 50);
1240
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_16_Template_label_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r293); const row_r291 = restoredCtx.$implicit; const ctx_r292 = i0.ɵɵnextContext(); return ctx_r292.selectable ? ctx_r292.selectRow(row_r291) : "javascript:;"; });
1237
+ const _r297 = i0.ɵɵgetCurrentView();
1238
+ i0.ɵɵelementStart(0, "po-checkbox", 95);
1239
+ i0.ɵɵlistener("p-change", function PoTableComponent_ng_template_16_Template_po_checkbox_p_change_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r297); const row_r295 = restoredCtx.$implicit; const ctx_r296 = i0.ɵɵnextContext(); return ctx_r296.selectable ? ctx_r296.selectRow(row_r295) : "javascript:;"; })("ngModelChange", function PoTableComponent_ng_template_16_Template_po_checkbox_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r297); const row_r295 = restoredCtx.$implicit; return row_r295.$selected = $event; })("click", function PoTableComponent_ng_template_16_Template_po_checkbox_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r297); const row_r295 = restoredCtx.$implicit; const ctx_r299 = i0.ɵɵnextContext(); return ctx_r299.selectable ? ctx_r299.selectRow(row_r295) : "javascript:;"; });
1241
1240
  i0.ɵɵelementEnd();
1242
1241
  } if (rf & 2) {
1243
- const row_r291 = ctx.$implicit;
1244
- i0.ɵɵclassProp("po-table-checkbox-checked", row_r291.$selected);
1242
+ const row_r295 = ctx.$implicit;
1243
+ i0.ɵɵproperty("ngModel", row_r295.$selected);
1245
1244
  } }
1246
1245
  function PoTableComponent_ng_template_18_span_4_Template(rf, ctx) { if (rf & 1) {
1247
1246
  i0.ɵɵelement(0, "span");
1248
1247
  } if (rf & 2) {
1249
- const column_r294 = i0.ɵɵnextContext().$implicit;
1250
- const ctx_r296 = i0.ɵɵnextContext();
1251
- i0.ɵɵclassProp("po-table-header-icon-unselected", (ctx_r296.sortedColumn == null ? null : ctx_r296.sortedColumn.property) !== column_r294)("po-table-header-icon-descending", (ctx_r296.sortedColumn == null ? null : ctx_r296.sortedColumn.property) === column_r294 && ctx_r296.sortedColumn.ascending)("po-table-header-icon-ascending", (ctx_r296.sortedColumn == null ? null : ctx_r296.sortedColumn.property) === column_r294 && !ctx_r296.sortedColumn.ascending);
1248
+ const column_r300 = i0.ɵɵnextContext().$implicit;
1249
+ const ctx_r302 = i0.ɵɵnextContext();
1250
+ i0.ɵɵclassProp("po-table-header-icon-unselected", (ctx_r302.sortedColumn == null ? null : ctx_r302.sortedColumn.property) !== column_r300)("po-table-header-icon-descending", (ctx_r302.sortedColumn == null ? null : ctx_r302.sortedColumn.property) === column_r300 && ctx_r302.sortedColumn.ascending)("po-table-header-icon-ascending", (ctx_r302.sortedColumn == null ? null : ctx_r302.sortedColumn.property) === column_r300 && !ctx_r302.sortedColumn.ascending);
1252
1251
  } }
1253
1252
  function PoTableComponent_ng_template_18_Template(rf, ctx) { if (rf & 1) {
1254
- const _r299 = i0.ɵɵgetCurrentView();
1255
- i0.ɵɵelementStart(0, "span", 93, 94);
1256
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_18_Template_span_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r299); const ctx_r298 = i0.ɵɵnextContext(); return ctx_r298.tooltipMouseEnter($event); })("mouseleave", function PoTableComponent_ng_template_18_Template_span_mouseleave_0_listener() { i0.ɵɵrestoreView(_r299); const ctx_r300 = i0.ɵɵnextContext(); return ctx_r300.tooltipMouseLeave(); });
1253
+ const _r305 = i0.ɵɵgetCurrentView();
1254
+ i0.ɵɵelementStart(0, "span", 96, 97);
1255
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_18_Template_span_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r305); const ctx_r304 = i0.ɵɵnextContext(); return ctx_r304.tooltipMouseEnter($event); })("mouseleave", function PoTableComponent_ng_template_18_Template_span_mouseleave_0_listener() { i0.ɵɵrestoreView(_r305); const ctx_r306 = i0.ɵɵnextContext(); return ctx_r306.tooltipMouseLeave(); });
1257
1256
  i0.ɵɵtext(2);
1258
1257
  i0.ɵɵpipe(3, "titlecase");
1259
1258
  i0.ɵɵelementEnd();
1260
- i0.ɵɵtemplate(4, PoTableComponent_ng_template_18_span_4_Template, 1, 6, "span", 95);
1259
+ i0.ɵɵtemplate(4, PoTableComponent_ng_template_18_span_4_Template, 1, 6, "span", 98);
1261
1260
  } if (rf & 2) {
1262
- const column_r294 = ctx.$implicit;
1261
+ const column_r300 = ctx.$implicit;
1263
1262
  const ctx_r18 = i0.ɵɵnextContext();
1264
1263
  i0.ɵɵproperty("p-tooltip", ctx_r18.tooltipText);
1265
1264
  i0.ɵɵadvance(2);
1266
- i0.ɵɵtextInterpolate1(" ", column_r294.label || i0.ɵɵpipeBind1(3, 3, column_r294.property), " ");
1265
+ i0.ɵɵtextInterpolate1(" ", column_r300.label || i0.ɵɵpipeBind1(3, 3, column_r300.property), " ");
1267
1266
  i0.ɵɵadvance(2);
1268
- i0.ɵɵproperty("ngIf", ctx_r18.sort && column_r294.sortable !== false);
1267
+ i0.ɵɵproperty("ngIf", ctx_r18.sort && column_r300.sortable !== false);
1269
1268
  } }
1270
1269
  function PoTableComponent_ng_template_20_Template(rf, ctx) { if (rf & 1) {
1271
- i0.ɵɵelementStart(0, "div", 96);
1270
+ i0.ɵɵelementStart(0, "div", 99);
1272
1271
  i0.ɵɵtext(1);
1273
1272
  i0.ɵɵelementEnd();
1274
1273
  } if (rf & 2) {
@@ -1284,45 +1283,46 @@ function PoTableComponent_ng_template_22_Template(rf, ctx) { if (rf & 1) {
1284
1283
  i0.ɵɵtextInterpolate1(" ", ctx_r22.hasValidColumns ? ctx_r22.literals.noVisibleColumn : ctx_r22.literals.noColumns, "\n");
1285
1284
  } }
1286
1285
  function PoTableComponent_ng_template_24_td_0_div_1_po_icon_1_Template(rf, ctx) { if (rf & 1) {
1287
- i0.ɵɵelement(0, "po-icon", 103);
1286
+ i0.ɵɵelement(0, "po-icon", 106);
1288
1287
  } if (rf & 2) {
1289
- const ctx_r306 = i0.ɵɵnextContext(4);
1290
- i0.ɵɵproperty("p-icon", ctx_r306.firstAction.icon);
1288
+ const ctx_r312 = i0.ɵɵnextContext(4);
1289
+ i0.ɵɵproperty("p-icon", ctx_r312.firstAction.icon);
1291
1290
  } }
1292
1291
  function PoTableComponent_ng_template_24_td_0_div_1_Template(rf, ctx) { if (rf & 1) {
1293
- const _r309 = i0.ɵɵgetCurrentView();
1294
- i0.ɵɵelementStart(0, "div", 101);
1295
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_0_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r309); const row_r301 = i0.ɵɵnextContext(2).row; const ctx_r307 = i0.ɵɵnextContext(); return ctx_r307.executeTableAction(row_r301, ctx_r307.firstAction); });
1296
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_po_icon_1_Template, 1, 1, "po-icon", 102);
1292
+ const _r315 = i0.ɵɵgetCurrentView();
1293
+ i0.ɵɵelementStart(0, "div", 104);
1294
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_0_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r315); const row_r307 = i0.ɵɵnextContext(2).row; const ctx_r313 = i0.ɵɵnextContext(); return ctx_r313.executeTableAction(row_r307, ctx_r313.firstAction); });
1295
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_po_icon_1_Template, 1, 1, "po-icon", 105);
1297
1296
  i0.ɵɵtext(2);
1298
1297
  i0.ɵɵelementEnd();
1299
1298
  } if (rf & 2) {
1300
- const row_r301 = i0.ɵɵnextContext(2).row;
1301
- const ctx_r305 = i0.ɵɵnextContext();
1302
- i0.ɵɵclassProp("po-table-action-disabled", ctx_r305.firstAction.disabled ? ctx_r305.validateTableAction(row_r301, ctx_r305.firstAction) : false);
1299
+ const row_r307 = i0.ɵɵnextContext(2).row;
1300
+ const ctx_r311 = i0.ɵɵnextContext();
1301
+ i0.ɵɵclassProp("po-table-action-disabled", ctx_r311.firstAction.disabled ? ctx_r311.validateTableAction(row_r307, ctx_r311.firstAction) : false);
1303
1302
  i0.ɵɵadvance(1);
1304
- i0.ɵɵproperty("ngIf", ctx_r305.firstAction.icon);
1303
+ i0.ɵɵproperty("ngIf", ctx_r311.firstAction.icon);
1305
1304
  i0.ɵɵadvance(1);
1306
- i0.ɵɵtextInterpolate1(" ", ctx_r305.firstAction.label, " ");
1305
+ i0.ɵɵtextInterpolate1(" ", ctx_r311.firstAction.label, " ");
1307
1306
  } }
1308
1307
  function PoTableComponent_ng_template_24_td_0_Template(rf, ctx) { if (rf & 1) {
1309
- i0.ɵɵelementStart(0, "td", 99);
1310
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_Template, 3, 4, "div", 100);
1308
+ i0.ɵɵelementStart(0, "td", 102);
1309
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_Template, 3, 4, "div", 103);
1311
1310
  i0.ɵɵelementEnd();
1312
1311
  } if (rf & 2) {
1313
- const ctx_r303 = i0.ɵɵnextContext(2);
1312
+ const ctx_r309 = i0.ɵɵnextContext(2);
1313
+ i0.ɵɵstyleProp("width", ctx_r309.height && ctx_r309.actionRight ? ctx_r309.getWidthColumnManager() : "", "px")("max-width", ctx_r309.height && !ctx_r309.actionRight ? ctx_r309.getColumnWidthActionsLeft() : "", "px")("width", ctx_r309.height && !ctx_r309.actionRight ? ctx_r309.getColumnWidthActionsLeft() : "", "px");
1314
1314
  i0.ɵɵadvance(1);
1315
- i0.ɵɵproperty("ngIf", ctx_r303.firstAction.visible !== false);
1315
+ i0.ɵɵproperty("ngIf", ctx_r309.firstAction.visible !== false);
1316
1316
  } }
1317
1317
  function PoTableComponent_ng_template_24_td_1_Template(rf, ctx) { if (rf & 1) {
1318
- const _r314 = i0.ɵɵgetCurrentView();
1319
- i0.ɵɵelementStart(0, "td", 104)(1, "span", 105, 106);
1320
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_1_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r314); const _r311 = i0.ɵɵreference(2); const row_r301 = i0.ɵɵnextContext().row; const ctx_r312 = i0.ɵɵnextContext(); return ctx_r312.togglePopup(row_r301, _r311); });
1318
+ const _r320 = i0.ɵɵgetCurrentView();
1319
+ i0.ɵɵelementStart(0, "td", 107)(1, "span", 108, 109);
1320
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_1_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r320); const _r317 = i0.ɵɵreference(2); const row_r307 = i0.ɵɵnextContext().row; const ctx_r318 = i0.ɵɵnextContext(); return ctx_r318.togglePopup(row_r307, _r317); });
1321
1321
  i0.ɵɵelementEnd()();
1322
1322
  } }
1323
1323
  function PoTableComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
1324
- i0.ɵɵtemplate(0, PoTableComponent_ng_template_24_td_0_Template, 2, 1, "td", 97);
1325
- i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_1_Template, 3, 0, "td", 98);
1324
+ i0.ɵɵtemplate(0, PoTableComponent_ng_template_24_td_0_Template, 2, 7, "td", 100);
1325
+ i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_1_Template, 3, 0, "td", 101);
1326
1326
  } if (rf & 2) {
1327
1327
  const ctx_r24 = i0.ɵɵnextContext();
1328
1328
  i0.ɵɵproperty("ngIf", ctx_r24.isSingleAction);
@@ -1330,9 +1330,9 @@ function PoTableComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
1330
1330
  i0.ɵɵproperty("ngIf", ctx_r24.visibleActions.length > 1);
1331
1331
  } }
1332
1332
  function PoTableComponent_po_table_column_manager_26_Template(rf, ctx) { if (rf & 1) {
1333
- const _r316 = i0.ɵɵgetCurrentView();
1334
- i0.ɵɵelementStart(0, "po-table-column-manager", 107);
1335
- i0.ɵɵlistener("p-visible-columns-change", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_visible_columns_change_0_listener($event) { i0.ɵɵrestoreView(_r316); const ctx_r315 = i0.ɵɵnextContext(); return ctx_r315.onVisibleColumnsChange($event); })("p-change-visible-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_change_visible_columns_0_listener($event) { i0.ɵɵrestoreView(_r316); const ctx_r317 = i0.ɵɵnextContext(); return ctx_r317.onChangeVisibleColumns($event); })("p-initial-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_initial_columns_0_listener($event) { i0.ɵɵrestoreView(_r316); const ctx_r318 = i0.ɵɵnextContext(); return ctx_r318.onColumnRestoreManager($event); });
1333
+ const _r322 = i0.ɵɵgetCurrentView();
1334
+ i0.ɵɵelementStart(0, "po-table-column-manager", 110);
1335
+ i0.ɵɵlistener("p-visible-columns-change", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_visible_columns_change_0_listener($event) { i0.ɵɵrestoreView(_r322); const ctx_r321 = i0.ɵɵnextContext(); return ctx_r321.onVisibleColumnsChange($event); })("p-change-visible-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_change_visible_columns_0_listener($event) { i0.ɵɵrestoreView(_r322); const ctx_r323 = i0.ɵɵnextContext(); return ctx_r323.onChangeVisibleColumns($event); })("p-initial-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_initial_columns_0_listener($event) { i0.ɵɵrestoreView(_r322); const ctx_r324 = i0.ɵɵnextContext(); return ctx_r324.onColumnRestoreManager($event); });
1336
1336
  i0.ɵɵelementEnd();
1337
1337
  } if (rf & 2) {
1338
1338
  const ctx_r25 = i0.ɵɵnextContext();
@@ -1475,6 +1475,7 @@ export class PoTableComponent extends PoTableBaseComponent {
1475
1475
  this.checkInfiniteScroll();
1476
1476
  this.visibleElement = true;
1477
1477
  }
1478
+ document.body.offsetWidth > 1366 ? (this.itemSize = 44) : (this.itemSize = 32);
1478
1479
  }
1479
1480
  ngOnDestroy() {
1480
1481
  this.removeListeners();
@@ -1731,7 +1732,13 @@ export class PoTableComponent extends PoTableBaseComponent {
1731
1732
  return template.templateRef;
1732
1733
  }
1733
1734
  syncronizeHorizontalScroll() {
1734
- this.poTableThead.nativeElement.scrollLeft = this.poTableTbody.nativeElement.scrollLeft;
1735
+ this.poTableThead.nativeElement.scrollLeft = this.poTableTbodyVirtual.nativeElement.scrollLeft;
1736
+ }
1737
+ getWidthColumnManager() {
1738
+ return this.columnManager?.nativeElement.offsetWidth;
1739
+ }
1740
+ getColumnWidthActionsLeft() {
1741
+ return this.columnActionLeft?.nativeElement.offsetWidth;
1735
1742
  }
1736
1743
  calculateHeightTableContainer(height) {
1737
1744
  const value = parseFloat(height);
@@ -1749,11 +1756,12 @@ export class PoTableComponent extends PoTableBaseComponent {
1749
1756
  }
1750
1757
  });
1751
1758
  }
1759
+ this.changeDetector.detectChanges();
1752
1760
  });
1753
1761
  }
1754
1762
  checkInfiniteScroll() {
1755
1763
  if (this.hasInfiniteScroll()) {
1756
- if (this.poTableTbody.nativeElement.scrollHeight > this.height) {
1764
+ if (this.poTableTbodyVirtual.nativeElement.scrollHeight >= this.height) {
1757
1765
  this.includeInfiniteScroll();
1758
1766
  }
1759
1767
  else {
@@ -1800,11 +1808,12 @@ export class PoTableComponent extends PoTableBaseComponent {
1800
1808
  this.hasItems &&
1801
1809
  !this.subscriptionScrollEvent &&
1802
1810
  this.height &&
1803
- this.poTableTbody.nativeElement.scrollHeight);
1811
+ this.poTableTbodyVirtual.nativeElement.scrollHeight);
1804
1812
  }
1805
1813
  includeInfiniteScroll() {
1806
- this.scrollEvent$ = this.defaultService.scrollListener(this.poTableTbody.nativeElement);
1814
+ this.scrollEvent$ = this.defaultService.scrollListener(this.poTableTbodyVirtual.nativeElement);
1807
1815
  this.subscriptionScrollEvent = this.scrollEvent$.subscribe(event => this.showMoreInfiniteScroll(event));
1816
+ this.changeDetector.detectChanges();
1808
1817
  }
1809
1818
  mergeCustomIcons(rowIcons, customIcons) {
1810
1819
  const mergedIcons = [];
@@ -1871,10 +1880,13 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1871
1880
  i0.ɵɵviewQuery(_c3, 5, ElementRef);
1872
1881
  i0.ɵɵviewQuery(_c4, 5, ElementRef);
1873
1882
  i0.ɵɵviewQuery(_c5, 5, ElementRef);
1874
- i0.ɵɵviewQuery(_c6, 5);
1883
+ i0.ɵɵviewQuery(_c6, 5, ElementRef);
1875
1884
  i0.ɵɵviewQuery(_c7, 5, ElementRef);
1876
1885
  i0.ɵɵviewQuery(_c8, 5, ElementRef);
1877
1886
  i0.ɵɵviewQuery(_c9, 5);
1887
+ i0.ɵɵviewQuery(_c10, 5, ElementRef);
1888
+ i0.ɵɵviewQuery(_c11, 5, ElementRef);
1889
+ i0.ɵɵviewQuery(_c12, 5);
1878
1890
  } if (rf & 2) {
1879
1891
  let _t;
1880
1892
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noColumnsHeader = _t.first);
@@ -1883,21 +1895,24 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1883
1895
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableWrapperElement = _t.first);
1884
1896
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poTableTbody = _t.first);
1885
1897
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poTableThead = _t.first);
1898
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poTableTbodyVirtual = _t.first);
1899
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnManager = _t.first);
1900
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnActionLeft = _t.first);
1886
1901
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnManagerTarget = _t.first);
1887
1902
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionsIconElement = _t);
1888
1903
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionsElement = _t);
1889
1904
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headersTable = _t);
1890
- } }, features: [i0.ɵɵProvidersFeature([PoDateService]), i0.ɵɵInheritDefinitionFeature], decls: 27, vars: 6, consts: [["p-no-padding", "", 3, "p-no-shadow", 4, "ngIf", "ngIfElse"], ["tableContainerTemplate", ""], ["class", "po-row po-table-footer-show-more", 3, "po-invisible", 4, "ngIf"], ["tableHeaderTemplate", ""], ["tableBodyTemplate", ""], ["tableTemplate", ""], [3, "p-actions", "p-target"], ["popup", ""], ["poTableColumnDetail", ""], ["inputRadio", ""], ["inputCheckbox", ""], ["contentHeaderTemplate", ""], ["noColumnsWithHeight", ""], ["noColumnsWithoutHeight", ""], ["ActionsColumnTemplate", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns", 4, "ngIf"], ["p-no-padding", "", 3, "p-no-shadow"], [4, "ngTemplateOutlet"], ["class", "po-table-overlay", 4, "ngIf"], [1, "po-table-main-container"], [1, "po-table-wrapper"], ["tableWrapper", ""], ["class", "po-table-container", 3, "height", 4, "ngIf"], [4, "ngIf"], ["class", "po-table-footer", 4, "ngIf"], [1, "po-table-overlay"], [1, "po-table-overlay-content", 3, "p-text"], [1, "po-table-container"], [1, "po-table-header-fixed", "po-table-header"], ["poTableThead", ""], [1, "po-table-container-fixed-inner", 3, "scroll"], ["poTableTbody", ""], [1, "po-table-footer"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "p-literals", "p-subtitles"], [1, "po-row", "po-table-footer-show-more"], ["tableFooter", ""], [1, "po-offset-xl-4", "po-offset-lg-4", "po-offset-md-3", "po-lg-4", "po-md-6", 3, "p-disabled", "p-label", "p-loading", "p-click"], [1, "po-table"], ["class", "po-table-column-selectable", 4, "ngIf"], ["class", "po-table-header-column po-table-header-master-detail", 4, "ngIf"], [3, "po-table-header-master-detail", "po-table-header-single-action", 4, "ngIf"], ["class", "po-table-header-column po-text-center", 4, "ngIf"], ["class", "po-table-header-ellipsis", 3, "width", "max-width", "min-width", "po-clickable", "po-table-header-subtitle", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "po-table-header-single-action", "po-table-header-actions", 4, "ngIf"], [3, "po-table-header-column-manager", "po-table-header-column-manager-border", "po-table-header-single-action", 4, "ngIf"], [1, "po-table-column-selectable"], ["type", "checkbox", "class", "po-table-checkbox", 3, "po-table-checkbox-checked", "po-table-checkbox-indeterminate", 4, "ngIf"], ["class", "po-table-checkbox-label po-clickable", 3, "click", 4, "ngIf"], ["type", "checkbox", 1, "po-table-checkbox"], [1, "po-table-checkbox-label", "po-clickable", 3, "click"], [1, "po-table-header-column", "po-table-header-master-detail"], [1, "po-table-header-column", "po-text-center"], ["noColumnsHeader", ""], [4, "ngIf", "ngIfThen", "ngIfElse"], [1, "po-table-header-ellipsis", 3, "click"], ["headersTable", ""], [1, "po-table-header-flex"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["columnManager", ""], ["p-tooltip-position", "left", 1, "po-table-header-column-manager-button", "po-icon", "po-icon-settings", "po-clickable", 3, "p-tooltip", "click"], ["columnManagerTarget", ""], ["class", "po-table-group-row", 4, "ngIf"], [1, "po-table-group-row"], [1, "po-table-row", "po-table-row-no-data"], [1, "po-table-no-data", "po-text-center", 3, "colSpan"], ["class", "po-table-group-row", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "po-table-row"], ["class", "po-table-column-detail-toggle", 3, "click", 4, "ngIf"], [3, "width", "max-width", "min-width", "po-table-column", "po-table-column-right", "po-table-column-center", "po-table-column-icons", "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "po-table-column", 4, "ngIf"], [1, "po-table-column-detail-toggle", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass", "click"], [1, "po-table-column-cell", "notranslate", 3, "ngSwitch", "p-tooltip", "mouseenter", "mouseleave"], [4, "ngSwitchCase"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click", 4, "ngSwitchCase"], [3, "p-column", "p-icons", "p-row", 4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click"], [3, "p-column", "p-icons", "p-row"], [3, "p-subtitle"], [3, "p-value"], [1, "po-table-column", "po-table-column-empty"], [1, "po-table-column"], [1, "po-table-row-template-container", 3, "colSpan"], [1, "po-table-column-detail", 3, "colSpan"], [3, "p-selectable", "p-detail", "p-items", "p-select-row"], [1, "po-table-row-no-data", "po-table-column-empty"], ["class", "po-icon po-clickable", 3, "po-icon-arrow-up", "po-icon-arrow-down", 4, "ngIf"], [1, "po-icon", "po-clickable"], ["type", "radio", 1, "po-table-radio"], [1, "po-table-radio-label", "po-clickable", 3, "click"], [1, "po-table-header-ellipsis", 3, "p-tooltip", "mouseenter", "mouseleave"], ["columnHeader", ""], [3, "po-table-header-icon-unselected", "po-table-header-icon-descending", "po-table-header-icon-ascending", 4, "ngIf"], [1, "po-table-header-fixed-inner"], ["class", "po-table-column po-table-column-single-action", 4, "ngIf"], ["class", "po-table-column-actions", 4, "ngIf"], [1, "po-table-column", "po-table-column-single-action"], ["class", "po-table-single-action po-clickable", 3, "po-table-action-disabled", "click", 4, "ngIf"], [1, "po-table-single-action", "po-clickable", 3, "click"], ["class", "po-table-single-action-content", 3, "p-icon", 4, "ngIf"], [1, "po-table-single-action-content", 3, "p-icon"], [1, "po-table-column-actions"], [1, "po-icon", "po-icon-more", "po-clickable", 3, "click"], ["popupTarget", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"]], template: function PoTableComponent_Template(rf, ctx) { if (rf & 1) {
1905
+ } }, features: [i0.ɵɵProvidersFeature([PoDateService]), i0.ɵɵInheritDefinitionFeature], decls: 27, vars: 6, consts: [["p-no-padding", "", 3, "p-no-shadow", 4, "ngIf", "ngIfElse"], ["tableContainerTemplate", ""], ["class", "po-row po-table-footer-show-more", 3, "po-invisible", 4, "ngIf"], ["tableHeaderTemplate", ""], ["tableBodyTemplate", ""], ["tableTemplate", ""], [3, "p-actions", "p-target"], ["popup", ""], ["poTableColumnDetail", ""], ["inputRadio", ""], ["inputCheckbox", ""], ["contentHeaderTemplate", ""], ["noColumnsWithHeight", ""], ["noColumnsWithoutHeight", ""], ["ActionsColumnTemplate", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns", 4, "ngIf"], ["p-no-padding", "", 3, "p-no-shadow"], [4, "ngTemplateOutlet"], ["class", "po-table-overlay", 4, "ngIf"], [1, "po-table-main-container"], [1, "po-table-wrapper"], ["tableWrapper", ""], ["class", "po-table-container", 4, "ngIf"], [4, "ngIf"], ["class", "po-table-footer", 4, "ngIf"], [1, "po-table-overlay"], [1, "po-table-overlay-content", 3, "p-text"], [1, "po-table-container"], [1, "po-table-header-fixed", "po-table-header"], ["poTableThead", ""], [1, "po-table-container-fixed-inner"], ["poTableTbody", ""], [4, "ngIf", "ngIfThen", "ngIfElse"], [1, "po-table-footer"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "p-literals", "p-subtitles"], [1, "po-row", "po-table-footer-show-more"], ["tableFooter", ""], [1, "po-offset-xl-4", "po-offset-lg-4", "po-offset-md-3", "po-lg-4", "po-md-6", 3, "p-disabled", "p-label", "p-loading", "p-click"], [1, "po-table"], ["class", "po-table-column-selectable", 4, "ngIf"], ["class", "po-table-header-column po-table-header-master-detail", 4, "ngIf"], [3, "po-table-header-master-detail", "po-table-header-single-action", 4, "ngIf"], ["class", "po-table-header-column po-text-center", 4, "ngIf"], ["class", "po-table-header-ellipsis", 3, "width", "max-width", "min-width", "po-clickable", "po-table-header-subtitle", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "po-table-header-single-action", "po-table-header-actions", 4, "ngIf"], [3, "po-table-header-column-manager", "po-table-header-column-manager-border", "po-table-header-single-action", 4, "ngIf"], [1, "po-table-column-selectable"], ["name", "selectAll", 3, "ngModel", "click", "p-change", "ngModelChange", 4, "ngIf"], ["name", "selectAll", 3, "ngModel", "click", "p-change", "ngModelChange"], [1, "po-table-header-column", "po-table-header-master-detail"], ["columnActionLeft", ""], [1, "po-table-header-column", "po-text-center"], ["noColumnsHeader", ""], [1, "po-table-header-ellipsis", 3, "click"], ["headersTable", ""], [1, "po-table-header-flex"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["columnManager", ""], ["p-tooltip-position", "left", 1, "po-table-header-column-manager-button", "po-icon", "po-icon-settings", "po-clickable", 3, "p-tooltip", "click"], ["columnManagerTarget", ""], [3, "itemSize", "minBufferPx", "maxBufferPx", "scroll"], ["poTableTbodyVirtual", ""], ["class", "po-table-group-row", 4, "ngIf"], [1, "po-table-group-row"], [1, "po-table-row", "po-table-row-no-data"], [1, "po-table-no-data", "po-text-center", 3, "colSpan"], ["class", "po-table-group-row", 4, "cdkVirtualFor", "cdkVirtualForOf", "cdkVirtualForTrackBy"], [1, "po-table-row"], ["class", "po-table-column-detail-toggle", 3, "click", 4, "ngIf"], [3, "width", "max-width", "min-width", "po-table-column", "po-table-column-right", "po-table-column-center", "po-table-column-icons", "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "po-table-column", 4, "ngIf"], [1, "po-table-column-detail-toggle", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass", "click"], [1, "po-table-column-cell", "notranslate", 3, "ngSwitch", "p-tooltip", "mouseenter", "mouseleave"], [4, "ngSwitchCase"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click", 4, "ngSwitchCase"], [3, "p-column", "p-icons", "p-row", 4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click"], [3, "p-column", "p-icons", "p-row"], [3, "p-subtitle"], [3, "p-value"], [1, "po-table-column", "po-table-column-empty"], [1, "po-table-column"], [1, "po-table-row-template-container", 3, "colSpan"], [1, "po-table-column-detail", 3, "colSpan"], [3, "p-selectable", "p-detail", "p-items", "p-select-row"], ["class", "po-table-group-row", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "po-table-row-no-data", "po-table-column-empty"], ["class", "po-icon po-clickable", 3, "po-icon-arrow-up", "po-icon-arrow-down", 4, "ngIf"], [1, "po-icon", "po-clickable"], ["type", "radio", 1, "po-table-radio"], [1, "po-table-radio-label", "po-clickable", 3, "click"], ["name", "checkbox", 3, "ngModel", "p-change", "ngModelChange", "click"], [1, "po-table-header-ellipsis", 3, "p-tooltip", "mouseenter", "mouseleave"], ["columnHeader", ""], [3, "po-table-header-icon-unselected", "po-table-header-icon-descending", "po-table-header-icon-ascending", 4, "ngIf"], [1, "po-table-header-fixed-inner"], ["class", "po-table-column po-table-column-single-action", 3, "width", "max-width", 4, "ngIf"], ["class", "po-table-column-actions", 4, "ngIf"], [1, "po-table-column", "po-table-column-single-action"], ["class", "po-table-single-action po-clickable", 3, "po-table-action-disabled", "click", 4, "ngIf"], [1, "po-table-single-action", "po-clickable", 3, "click"], ["class", "po-table-single-action-content", 3, "p-icon", 4, "ngIf"], [1, "po-table-single-action-content", 3, "p-icon"], [1, "po-table-column-actions"], [1, "po-icon", "po-icon-more", "po-clickable", 3, "click"], ["popupTarget", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"]], template: function PoTableComponent_Template(rf, ctx) { if (rf & 1) {
1891
1906
  i0.ɵɵtemplate(0, PoTableComponent_po_container_0_Template, 2, 2, "po-container", 0);
1892
1907
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_1_Template, 8, 10, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
1893
1908
  i0.ɵɵtemplate(3, PoTableComponent_div_3_Template, 3, 5, "div", 2);
1894
1909
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_4_Template, 11, 15, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
1895
- i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_Template, 3, 6, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
1910
+ i0.ɵɵtemplate(6, PoTableComponent_ng_template_6_Template, 5, 11, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
1896
1911
  i0.ɵɵtemplate(8, PoTableComponent_ng_template_8_Template, 13, 17, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
1897
1912
  i0.ɵɵelement(10, "po-popup", 6, 7);
1898
1913
  i0.ɵɵtemplate(12, PoTableComponent_ng_template_12_Template, 1, 1, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor);
1899
1914
  i0.ɵɵtemplate(14, PoTableComponent_ng_template_14_Template, 2, 2, "ng-template", null, 9, i0.ɵɵtemplateRefExtractor);
1900
- i0.ɵɵtemplate(16, PoTableComponent_ng_template_16_Template, 2, 2, "ng-template", null, 10, i0.ɵɵtemplateRefExtractor);
1915
+ i0.ɵɵtemplate(16, PoTableComponent_ng_template_16_Template, 1, 1, "ng-template", null, 10, i0.ɵɵtemplateRefExtractor);
1901
1916
  i0.ɵɵtemplate(18, PoTableComponent_ng_template_18_Template, 5, 5, "ng-template", null, 11, i0.ɵɵtemplateRefExtractor);
1902
1917
  i0.ɵɵtemplate(20, PoTableComponent_ng_template_20_Template, 2, 3, "ng-template", null, 12, i0.ɵɵtemplateRefExtractor);
1903
1918
  i0.ɵɵtemplate(22, PoTableComponent_ng_template_22_Template, 1, 1, "ng-template", null, 13, i0.ɵɵtemplateRefExtractor);
@@ -1912,10 +1927,10 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1912
1927
  i0.ɵɵproperty("p-actions", ctx.actions)("p-target", ctx.popupTarget);
1913
1928
  i0.ɵɵadvance(16);
1914
1929
  i0.ɵɵproperty("ngIf", !ctx.hideColumnsManager);
1915
- } }, directives: [i3.NgIf, i6.PoContainerComponent, i3.NgTemplateOutlet, i7.PoLoadingComponent, i3.NgForOf, i8.PoTableSubtitleFooterComponent, i9.PoButtonComponent, i10.PoTooltipDirective, i3.NgClass, i3.NgSwitch, i3.NgSwitchCase, i11.PoTableColumnLinkComponent, i12.PoTableColumnIconComponent, i13.PoTableSubtitleCircleComponent, i14.PoTableColumnLabelComponent, i3.NgSwitchDefault, i15.PoTableDetailComponent, i16.PoPopupComponent, i17.PoIconComponent, i18.PoTableColumnManagerComponent], pipes: [i3.CurrencyPipe, i3.DatePipe, i19.PoTimePipe, i3.TitleCasePipe], encapsulation: 2 });
1930
+ } }, directives: [i3.NgIf, i6.PoContainerComponent, i3.NgTemplateOutlet, i7.PoLoadingComponent, i3.NgForOf, i8.PoTableSubtitleFooterComponent, i9.PoButtonComponent, i10.PoCheckboxComponent, i11.NgControlStatus, i11.NgModel, i12.PoTooltipDirective, i13.CdkVirtualScrollViewport, i13.CdkFixedSizeVirtualScroll, i13.CdkVirtualForOf, i3.NgClass, i3.NgSwitch, i3.NgSwitchCase, i14.PoTableColumnLinkComponent, i15.PoTableColumnIconComponent, i16.PoTableSubtitleCircleComponent, i17.PoTableColumnLabelComponent, i3.NgSwitchDefault, i18.PoTableDetailComponent, i19.PoPopupComponent, i20.PoIconComponent, i21.PoTableColumnManagerComponent], pipes: [i3.CurrencyPipe, i3.DatePipe, i22.PoTimePipe, i3.TitleCasePipe], encapsulation: 2 });
1916
1931
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableComponent, [{
1917
1932
  type: Component,
1918
- args: [{ selector: 'po-table', providers: [PoDateService], template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\n\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n <div *ngIf=\"height\" class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableThead class=\"po-table-header-fixed po-table-header\">\n <ng-container *ngTemplateOutlet=\"tableHeaderTemplate\"></ng-container>\n </div>\n <div #poTableTbody class=\"po-table-container-fixed-inner\" (scroll)=\"syncronizeHorizontalScroll()\">\n <ng-container *ngTemplateOutlet=\"tableBodyTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n>\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableHeaderTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <input\n *ngIf=\"!hideSelectAll\"\n type=\"checkbox\"\n class=\"po-table-checkbox\"\n [class.po-table-checkbox-checked]=\"selectAll\"\n [class.po-table-checkbox-indeterminate]=\"selectAll === null\"\n />\n <label *ngIf=\"!hideSelectAll\" class=\"po-table-checkbox-label po-clickable\" (click)=\"selectAllRows()\">\n </label>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n </table>\n</ng-template>\n\n<ng-template #tableBodyTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n [style.width.px]=\"noColumnsHeader?.nativeElement.parentElement?.offsetWidth\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-column po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <input\n *ngIf=\"!hideSelectAll\"\n type=\"checkbox\"\n class=\"po-table-checkbox\"\n [class.po-table-checkbox-checked]=\"selectAll\"\n [class.po-table-checkbox-indeterminate]=\"selectAll === null\"\n />\n <label *ngIf=\"!hideSelectAll\" class=\"po-table-checkbox-label po-clickable\" (click)=\"selectAllRows()\">\n </label>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-row-no-data po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <input type=\"checkbox\" class=\"po-table-checkbox\" [class.po-table-checkbox-checked]=\"row.$selected\" />\n <label class=\"po-table-checkbox-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort && column.sortable !== false\"\n [class.po-table-header-icon-unselected]=\"sortedColumn?.property !== column\"\n [class.po-table-header-icon-descending]=\"sortedColumn?.property === column && sortedColumn.ascending\"\n [class.po-table-header-icon-ascending]=\"sortedColumn?.property === column && !sortedColumn.ascending\"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <td *ngIf=\"isSingleAction\" class=\"po-table-column po-table-column-single-action\">\n <div\n *ngIf=\"firstAction.visible !== false\"\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n <po-icon *ngIf=\"firstAction.icon\" class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n>\n</po-table-column-manager>\n" }]
1933
+ args: [{ selector: 'po-table', providers: [PoDateService], template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\n\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n <div *ngIf=\"height\" class=\"po-table-container\">\n <div #poTableThead class=\"po-table-header-fixed po-table-header\">\n <ng-container *ngTemplateOutlet=\"tableHeaderTemplate\"></ng-container>\n </div>\n\n <div #poTableTbody class=\"po-table-container-fixed-inner\">\n <ng-container *ngIf=\"height; then tableBodyTemplate; else tableTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n>\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableHeaderTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (click)=\"selectAllRows()\"\n (p-change)=\"selectAllRows()\"\n [(ngModel)]=\"selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n #columnActionLeft\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction && !hideColumnsManager\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n </table>\n</ng-template>\n\n<!-- s\u00F3 virtual -->\n<ng-template #tableBodyTemplate>\n <cdk-virtual-scroll-viewport\n #poTableTbodyVirtual\n [itemSize]=\"itemSize\"\n [style.height.px]=\"heightTableContainer\"\n [minBufferPx]=\"height < 100 ? 100 : height\"\n [maxBufferPx]=\"height < 200 ? 200 : height\"\n (scroll)=\"syncronizeHorizontalScroll()\"\n >\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *cdkVirtualFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n [style.width.px]=\"noColumnsHeader?.nativeElement.parentElement?.offsetWidth\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-column po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (click)=\"selectAllRows()\"\n (p-change)=\"selectAllRows()\"\n [(ngModel)]=\"selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-row-no-data po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"selectable ? selectRow(row) : 'javascript:;'\"\n [(ngModel)]=\"row.$selected\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n ></po-checkbox>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort && column.sortable !== false\"\n [class.po-table-header-icon-unselected]=\"sortedColumn?.property !== column\"\n [class.po-table-header-icon-descending]=\"sortedColumn?.property === column && sortedColumn.ascending\"\n [class.po-table-header-icon-ascending]=\"sortedColumn?.property === column && !sortedColumn.ascending\"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <td\n *ngIf=\"isSingleAction\"\n class=\"po-table-column po-table-column-single-action\"\n [style.width.px]=\"height && actionRight ? getWidthColumnManager() : ''\"\n [style.max-width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n [style.width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n >\n <div\n *ngIf=\"firstAction.visible !== false\"\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n <po-icon *ngIf=\"firstAction.icon\" class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n>\n</po-table-column-manager>\n" }]
1919
1934
  }], function () { return [{ type: i1.PoDateService }, { type: i0.IterableDiffers }, { type: i0.Renderer2 }, { type: i2.PoLanguageService }, { type: i0.ChangeDetectorRef }, { type: i3.DecimalPipe }, { type: i4.Router }, { type: i5.PoTableService }]; }, { tableRowTemplate: [{
1920
1935
  type: ContentChild,
1921
1936
  args: [PoTableRowTemplateDirective, { static: true }]
@@ -1943,6 +1958,15 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1943
1958
  }], poTableThead: [{
1944
1959
  type: ViewChild,
1945
1960
  args: ['poTableThead', { read: ElementRef, static: false }]
1961
+ }], poTableTbodyVirtual: [{
1962
+ type: ViewChild,
1963
+ args: ['poTableTbodyVirtual', { read: ElementRef, static: false }]
1964
+ }], columnManager: [{
1965
+ type: ViewChild,
1966
+ args: ['columnManager', { read: ElementRef, static: false }]
1967
+ }], columnActionLeft: [{
1968
+ type: ViewChild,
1969
+ args: ['columnActionLeft', { read: ElementRef, static: false }]
1946
1970
  }], actionsIconElement: [{
1947
1971
  type: ViewChildren,
1948
1972
  args: ['actionsIconElement', { read: ElementRef }]
@@ -1956,4 +1980,4 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1956
1980
  type: ViewChild,
1957
1981
  args: ['columnManagerTarget']
1958
1982
  }] }); })();
1959
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBS1YsU0FBUyxFQUNULFlBQVksRUFFWixlQUFlLEVBRWhCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDL0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDakNwRyx3QkFBd0U7OztJQUQxRSx3Q0FBaUg7SUFDL0csbUdBQXdFO0lBQzFFLGlCQUFlOzs7O0lBRjJELDJEQUFzQztJQUMvRixlQUF3QztJQUF4QyxzQ0FBd0M7OztJQUtyRCwrQkFBOEM7SUFDNUMsaUNBQTBGO0lBQzVGLGlCQUFNOzs7SUFEeUMsZUFBK0I7SUFBL0IscURBQStCOzs7SUFZdEUsd0JBQXFFOzs7SUFHckUsd0JBQW1FOzs7O0lBTHZFLCtC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O2tCQUFwRSxlQUFlO21CQUFDLDhCQUE4QjtZQUVLLGVBQWU7a0JBQWxFLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlCLGdCQUFnQjtrQkFBbkMsU0FBUzttQkFBQyxPQUFPO1lBQzZDLGtCQUFrQjtrQkFBaEYsU0FBUzttQkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDRyxtQkFBbUI7a0JBQWxGLFNBQVM7bUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0UsWUFBWTtrQkFBM0UsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDRSxZQUFZO2tCQUEzRSxTQUFTO21CQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUVKLGtCQUFrQjtrQkFBM0UsWUFBWTttQkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDRixjQUFjO2tCQUFuRSxZQUFZO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN0QixZQUFZO2tCQUF6QyxZQUFZO21CQUFDLGNBQWM7WUFvQlUsbUJBQW1CO2tCQUF4RCxTQUFTO21CQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9EYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWRhdGUvcG8tZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQb1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vcG8tcG9wdXAvcG8tcG9wdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9UYWJsZUFjdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVCYXNlQ29tcG9uZW50LCBRdWVyeVBhcmFtc1R5cGUgfSBmcm9tICcuL3BvLXRhYmxlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uTGFiZWwgfSBmcm9tICcuL3BvLXRhYmxlLWNvbHVtbi1sYWJlbC9wby10YWJsZS1jb2x1bW4tbGFiZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVSb3dUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tdGFibGUtcm93LXRlbXBsYXRlL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9UYWJsZVN1YnRpdGxlQ29sdW1uIH0gZnJvbSAnLi9wby10YWJsZS1zdWJ0aXRsZS1mb290ZXIvcG8tdGFibGUtc3VidGl0bGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9wby10YWJsZS1jZWxsLXRlbXBsYXRlL3BvLXRhYmxlLWNlbGwtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tdGFibGUtY29sdW1uLXRlbXBsYXRlL3BvLXRhYmxlLWNvbHVtbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9UYWJsZVJvd1RlbXBsYXRlQXJyb3dEaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZS1hcnJvdy1kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBQb1RhYmxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tdGFibGUuc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvVGFibGVCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtYmFzaWNcIiB0aXRsZT1cIlBPIFRhYmxlIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1iYXNpYy9zYW1wbGUtcG8tdGFibGUtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWJhc2ljL3NhbXBsZS1wby10YWJsZS1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWxhYnNcIiB0aXRsZT1cIlBPIFRhYmxlIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQuZTJlLXNwZWMudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQucG8udHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtd2l0aC1hcGlcIiB0aXRsZT1cIlBPIFRhYmxlIHVzaW5nIEFQSVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkvc2FtcGxlLXBvLXRhYmxlLXdpdGgtYXBpLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS13aXRoLWFwaS9zYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS10cmFuc3BvcnRcIiB0aXRsZT1cIlBPIFRhYmxlIC0gVHJhbnNwb3J0XCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS10cmFuc3BvcnQvc2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0L3NhbXBsZS1wby10YWJsZS10cmFuc3BvcnQuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0L3NhbXBsZS1wby10YWJsZS10cmFuc3BvcnQuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWFpcmZhcmVcIiB0aXRsZT1cIlBPIFRhYmxlIC0gQWlyZmFyZVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYWlyZmFyZS9zYW1wbGUtcG8tdGFibGUtYWlyZmFyZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYWlyZmFyZS9zYW1wbGUtcG8tdGFibGUtYWlyZmFyZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1haXJmYXJlL3NhbXBsZS1wby10YWJsZS1haXJmYXJlLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS1jb21wb25lbnRzXCIgdGl0bGU9XCJQTyBUYWJsZSAtIFBvIEZpZWxkIENvbXBvbmVudHNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuZW51bS50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmNvbXBvbmVudC5jc3NcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtQb0RhdGVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb1RhYmxlQ29tcG9uZW50IGV4dGVuZHMgUG9UYWJsZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBAQ29udGVudENoaWxkKFBvVGFibGVSb3dUZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgdGFibGVSb3dUZW1wbGF0ZTogUG9UYWJsZVJvd1RlbXBsYXRlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKFBvVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmUpIHRhYmxlQ2VsbFRlbXBsYXRlOiBQb1RhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlKSB0YWJsZUNvbHVtblRlbXBsYXRlczogUXVlcnlMaXN0PFBvVGFibGVDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgQFZpZXdDaGlsZCgnbm9Db2x1bW5zSGVhZGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG5vQ29sdW1uc0hlYWRlcjtcbiAgQFZpZXdDaGlsZCgncG9wdXAnKSBwb1BvcHVwQ29tcG9uZW50OiBQb1BvcHVwQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZUZvb3RlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB0YWJsZUZvb3RlckVsZW1lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlV3JhcHBlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB0YWJsZVdyYXBwZXJFbGVtZW50O1xuICBAVmlld0NoaWxkKCdwb1RhYmxlVGJvZHknLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgcG9UYWJsZVRib2R5O1xuICBAVmlld0NoaWxkKCdwb1RhYmxlVGhlYWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgcG9UYWJsZVRoZWFkO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbnNJY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhY3Rpb25zSWNvbkVsZW1lbnQ6IFF1ZXJ5TGlzdDxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25zRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhY3Rpb25zRWxlbWVudDogUXVlcnlMaXN0PGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oJ2hlYWRlcnNUYWJsZScpIGhlYWRlcnNUYWJsZTogUXVlcnlMaXN0PGFueT47XG5cbiAgaGVpZ2h0VGFibGVDb250YWluZXI6IG51bWJlcjtcbiAgcG9wdXBUYXJnZXQ7XG4gIHRhYmxlT3BhY2l0eTogbnVtYmVyID0gMDtcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcbiAgbGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQ6IEFycmF5PFBvVGFibGVDb2x1bW4+O1xuXG4gIHByaXZhdGUgX2NvbHVtbk1hbmFnZXJUYXJnZXQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgZGlmZmVyO1xuICBwcml2YXRlIGZvb3RlckhlaWdodDtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIHRpbWVvdXRSZXNpemU7XG4gIHByaXZhdGUgdmlzaWJsZUVsZW1lbnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzY3JvbGxFdmVudCQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TY3JvbGxFdmVudDogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgY2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZXNpemVMaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBAVmlld0NoaWxkKCdjb2x1bW5NYW5hZ2VyVGFyZ2V0Jykgc2V0IGNvbHVtbk1hbmFnZXJUYXJnZXQodmFsdWU6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9jb2x1bW5NYW5hZ2VyVGFyZ2V0ID0gdmFsdWU7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBjb2x1bW5NYW5hZ2VyVGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5NYW5hZ2VyVGFyZ2V0O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcG9EYXRlOiBQb0RhdGVTZXJ2aWNlLFxuICAgIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZGVmYXVsdFNlcnZpY2U6IFBvVGFibGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHBvRGF0ZSwgcG9MYW5ndWFnZVNlcnZpY2UsIGRlZmF1bHRTZXJ2aWNlKTtcblxuICAgIHRoaXMuZGlmZmVyID0gZGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XG5cbiAgICAvLyBUT0RPOiAjNTU1MCBhbyByZW1vdmVyIGVzdGUgbGlzdGVuZXIsIG5vIHBvcnRhbCwgcXVhbmRvIGFzIGNvbHVuYXMgZm9yZW0gZml4YXMgbsOjbyBzb2ZyZW1cbiAgICAvLyBhbHRlcmHDp8OjbyBkZSBsYXJndXJhLCBwb2lzIG8gbmdEb0NoZWNrIG7Do28gw6kgZXhlY3V0YWRvLlxuICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IHJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoKSA9PiB7fSk7XG5cbiAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlUm93VGVtcGxhdGU/LnRhYmxlUm93VGVtcGxhdGVBcnJvd0RpcmVjdGlvbiA9PT0gUG9UYWJsZVJvd1RlbXBsYXRlQXJyb3dEaXJlY3Rpb24uUmlnaHQ7XG4gIH1cblxuICBnZXQgY29sdW1uQ291bnQoKSB7XG4gICAgY29uc3QgY29sdW1uQ291bnQgPVxuICAgICAgdGhpcy5tYWluQ29sdW1ucy5sZW5ndGggK1xuICAgICAgKHRoaXMuYWN0aW9ucy5sZW5ndGggPiAwID8gMSA6IDApICtcbiAgICAgICh0aGlzLnNlbGVjdGFibGUgPyAxIDogMCkgK1xuICAgICAgKCF0aGlzLmhpZGVEZXRhaWwgJiYgdGhpcy5jb2x1bW5NYXN0ZXJEZXRhaWwgIT09IHVuZGVmaW5lZCA/IDEgOiAwKTtcblxuICAgIHJldHVybiBjb2x1bW5Db3VudCB8fCAxO1xuICB9XG5cbiAgZ2V0IGNvbHVtbkNvdW50Rm9yTWFzdGVyRGV0YWlsKCkge1xuICAgIC8vIGNhc28gdGl2ZXIgYcOnw7VlcyBzZXLDoSB1dGlsaXphZG8gYSBzdWEgY29sdW5hIHBhcmEgZXhpYmlyIG8gY29sdW1uTWFuYWdlclxuICAgIGNvbnN0IGNvbHVtbk1hbmFnZXIgPSB0aGlzLmFjdGlvbnMubGVuZ3RoID8gMCA6IDE7XG5cbiAgICByZXR1cm4gdGhpcy5tYWluQ29sdW1ucy5sZW5ndGggKyAxICsgKHRoaXMuYWN0aW9ucy5sZW5ndGggPiAwID8gMSA6IDApICsgKHRoaXMuc2VsZWN0YWJsZSA/IDEgOiAwKSArIGNvbHVtbk1hbmFnZXI7XG4gIH1cblxuICBnZXQgZGV0YWlsSGlkZVNlbGVjdCgpIHtcbiAgICBjb25zdCBtYXN0ZXJEZXRhaWwgPSB0aGlzLmNvbHVtbk1hc3RlckRldGFpbDtcbiAgICByZXR1cm4gbWFzdGVyRGV0YWlsICYmIG1hc3RlckRldGFpbC5kZXRhaWwgPyBtYXN0ZXJEZXRhaWwuZGV0YWlsLmhpZGVTZWxlY3QgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCBoYXNWaXNpYmxlQWN0aW9ucygpIHtcbiAgICByZXR1cm4gISF0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBmaXJzdEFjdGlvbigpOiBQb1RhYmxlQWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlQWN0aW9ucyAmJiB0aGlzLnZpc2libGVBY3Rpb25zWzBdO1xuICB9XG5cbiAgZ2V0IGhhc0Zvb3RlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNJdGVtcyAmJiB0aGlzLmhhc1Zpc2libGVTdWJ0aXRsZUNvbHVtbnM7XG4gIH1cblxuICBnZXQgaGFzTWFzdGVyRGV0YWlsQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmhhc01haW5Db2x1bW5zICYmIHRoaXMuaGFzSXRlbXMgJiYgIXRoaXMuaGlkZURldGFpbCAmJiAhISh0aGlzLmNvbHVtbk1hc3RlckRldGFpbCB8fCB0aGlzLmhhc1Jvd1RlbXBsYXRlKVxuICAgICk7XG4gIH1cblxuICBnZXQgaGFzUm93VGVtcGxhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy50YWJsZVJvd1RlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGhhc1NlbGVjdGFibGVDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZSAmJiB0aGlzLmhhc0l0ZW1zICYmIHRoaXMuaGFzTWFpbkNvbHVtbnM7XG4gIH1cblxuICBnZXQgaGFzVmFsaWRDb2x1bW5zKCkge1xuICAgIHJldHVybiAhIXRoaXMudmFsaWRDb2x1bW5zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBoYXNWaXNpYmxlU3VidGl0bGVDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnRpdGxlQ29sdW1ucy5zb21lKGNvbHVtbiA9PiBjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgZ2V0IGlzU2luZ2xlQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlQWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zICYmIHRoaXMuYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbiAmJiBhY3Rpb24udmlzaWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgc2hvd01vcmVJbmZpbml0ZVNjcm9sbCh7IHRhcmdldCB9KTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0SGVpZ2h0ICsgdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICBpZiAoIXRoaXMuc2hvd01vcmVEaXNhYmxlZCAmJiBzY3JvbGxQb3NpdGlvbiA+PSB0YXJnZXQuc2Nyb2xsSGVpZ2h0ICogKHRoaXMuaW5maW5pdGVTY3JvbGxEaXN0YW5jZSAvIDExMCkpIHtcbiAgICAgIHRoaXMub25TaG93TW9yZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICB0aGlzLmNoZWNrQ2hhbmdlc0l0ZW1zKCk7XG4gICAgdGhpcy52ZXJpZnlDYWxjdWxhdGVIZWlnaHRUYWJsZUNvbnRhaW5lcigpO1xuICAgIC8vIFBlcm1pdGUgcXVlIG9zIGNhYmXDp2FsaG9zIHNlamFtIGNhbGN1bGFkb3MgbmEgcHJpbWVpcmEgdmV6IHF1ZSBvIGNvbXBvbmVudGUgdG9ybmEtc2Ugdmlzw612ZWwsXG4gICAgLy8gZXZpdGFuZG8gY29tIGlzc28sIHByb2JsZW1hcyBjb20gVGFicyBvdSBEaXZzIHF1ZSBpbmljaWVtIGVzY29uZGlkYXMuXG4gICAgaWYgKHRoaXMudGFibGVXcmFwcGVyRWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAmJiAhdGhpcy52aXNpYmxlRWxlbWVudCAmJiB0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG4gICAgICB0aGlzLmNoZWNrSW5maW5pdGVTY3JvbGwoKTtcbiAgICAgIHRoaXMudmlzaWJsZUVsZW1lbnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHJlYWxpemFyIGJ1c2NhIG5vIHNlcnZpw6dvIGRlIGRhZG9zIHBvZGVuZG8gaW5mb3JtYXIgZmlsdHJvcyBlIGNvbSBvIHJldG9ybm8sIGF0dWFsaXphIGEgdGFiZWxhLlxuICAgKlxuICAgKiBDYXNvIG7Do28gc2VqYSBpbmZvcm1hZG8gcGFyw6JtZXRybywgbmFkYSBzZXLDoSBhZGljaW9uYWRvIGFvIEdFVCwgY29uZm9ybWUgYWJhaXhvOlxuICAgKiBgYGBcbiAgICogdXJsICsgP3BhZ2U9MSZwYWdlU2l6ZT0xMFxuICAgKiBgYGBcbiAgICogPiBPYnM6IG9zIHBhcsOibWV0cm9zIGBwYWdlYCBlIGBwYWdlU2l6ZWAgc2VtcHJlIHNlcsOjbyBjaGFtYWRvcyBpbmRlcGVuZGVudGUgZGUgc2VyIGVudmlhZG9zIG91dHJvcyBwYXLDom1ldHJvcy5cbiAgICpcbiAgICogQ2FzbyBzZWphbSBpbmZvcm1hZG9zIG9zIHBhcsOibWV0cm9zIGB7IG5hbWU6ICdKT0hOJywgYWdlOiAnMjMnIH1gLCB0b2RvcyBzZXLDo28gYWRpY2lvbmFkb3MgYW8gR0VULCBjb25mb3JtZSBhYmFpeG86XG4gICAqIGBgYFxuICAgKiB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwJm5hbWU9Sk9ITiZhZ2U9MjNcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7IHsga2V5OiB2YWx1ZSB9IH0gcXVlcnlQYXJhbXMgRm9ybWF0byBkbyBvYmpldG8gYSBzZXIgZW52aWFkby5cbiAgICogPiBQb2RlIHNlciB1dGlsaXphZGEgcXVhbHF1ZXIgc3RyaW5nIGNvbW8ga2V5LCBlIHF1YWxxdWVyIHN0cmluZyBvdSBudW1iZXIgY29tbyB2YWx1ZS5cbiAgICovXG4gIGFwcGx5RmlsdGVycyhxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogUXVlcnlQYXJhbXNUeXBlIH0pIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGNvbGFwc2EgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGNvbGFwc2FkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgY29sbGFwc2Uocm93SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3dJbmRleCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGV4cGFuZGUgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGV4cGFuZGlkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgZXhwYW5kKHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFNob3dEZXRhaWwocm93SW5kZXgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIGVzdMOjbyBzZWxlY2lvbmFkYXMuXG4gICAqL1xuICBnZXRTZWxlY3RlZFJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIG7Do28gZXN0w6NvIHNlbGVjaW9uYWRhcy5cbiAgICovXG4gIGdldFVuc2VsZWN0ZWRSb3dzKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgYXMgbGluaGFzIHF1ZSBlc3TDo28gc2VsZWNpb25hZGFzLlxuICAgKi9cbiAgdW5zZWxlY3RSb3dzKCkge1xuICAgIGNvbnN0IGNvbHVtbkRldGFpbCA9IHRoaXMubmFtZUNvbHVtbkRldGFpbDtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGRldGFpbEl0ZW1zID0gY29sdW1uRGV0YWlsID8gaXRlbVtjb2x1bW5EZXRhaWxdIDogbnVsbDtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGV0YWlsSXRlbXMpKSB7XG4gICAgICAgIGRldGFpbEl0ZW1zLmZvckVhY2goZGV0YWlsSXRlbSA9PiB7XG4gICAgICAgICAgZGV0YWlsSXRlbS4kc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGl0ZW0uJHNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlO1xuICB9XG5cbiAgY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4uZGlzYWJsZWQgPyBjb2x1bW4uZGlzYWJsZWQocm93KSA6IGZhbHNlO1xuICB9XG5cbiAgY29udGFpbnNNYXN0ZXJEZXRhaWwocm93KSB7XG4gICAgcmV0dXJuIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdICYmIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdLmxlbmd0aDtcbiAgfVxuXG4gIGV4ZWN1dGVUYWJsZUFjdGlvbihyb3c6IGFueSwgdGFibGVBY3Rpb246IGFueSkge1xuICAgIGlmICghcm93LmRpc2FibGVkICYmICF0aGlzLnZhbGlkYXRlVGFibGVBY3Rpb24ocm93LCB0YWJsZUFjdGlvbikpIHtcbiAgICAgIHRhYmxlQWN0aW9uLmFjdGlvbihyb3cpO1xuICAgICAgdGhpcy50b2dnbGVSb3dBY3Rpb24ocm93KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgdW1hIGxpbmhhIHF1ZSBlc3TDoSBzZWxlY2lvbmFkYS5cbiAgICovXG4gIHVuc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5pdGVtcy5ldmVyeShpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWNpb25hIHVtYSBsaW5oYSBkbyAncG8tdGFibGUnLlxuICAgKi9cbiAgc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCB0cnVlKTtcblxuICAgIGlmICh0aGlzLml0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IGFueSwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZvcm1hdCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0KTtcbiAgfVxuXG4gIGdldENlbGxEYXRhKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBhbnkge1xuICAgIGNvbnN0IGFycmF5UHJvcGVydHkgPSBjb2x1bW4ucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICBpZiAoYXJyYXlQcm9wZXJ0eS5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBuZXN0ZWRQcm9wZXJ0aWVzID0gYXJyYXlQcm9wZXJ0eTtcbiAgICAgIGxldCB2YWx1ZTogYW55ID0gcm93O1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBuZXN0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcHJvcGVydHldIHx8IHZhbHVlW3Byb3BlcnR5XSA9PT0gMCA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV07XG4gICAgfVxuICB9XG5cbiAgZ2V0Qm9vbGVhbkxhYmVsKHJvd1ZhbHVlOiBhbnksIGNvbHVtbkJvb2xlYW46IFBvVGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGlmIChyb3dWYWx1ZSB8fCByb3dWYWx1ZSA9PT0gZmFsc2UgfHwgcm93VmFsdWUgPT09IDApIHtcbiAgICAgIHJvd1ZhbHVlID0gY29udmVydFRvQm9vbGVhbihyb3dWYWx1ZSk7XG5cbiAgICAgIGlmIChjb2x1bW5Cb29sZWFuLmJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHJvd1ZhbHVlID8gY29sdW1uQm9vbGVhbi5ib29sZWFuLnRydWVMYWJlbCB8fCAnU2ltJyA6IGNvbHVtbkJvb2xlYW4uYm9vbGVhbi5mYWxzZUxhYmVsIHx8ICdOw6NvJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByb3dWYWx1ZSA/ICdTaW0nIDogJ07Do28nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb3dWYWx1ZTtcbiAgfVxuXG4gIGdldENvbHVtbkljb25zKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCByb3dJY29ucyA9IHRoaXMuZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pO1xuXG4gICAgaWYgKGNvbHVtbi5pY29ucykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93SWNvbnMpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lcmdlQ3VzdG9tSWNvbnMocm93SWNvbnMsIGNvbHVtbi5pY29ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ3VzdG9tSWNvbihyb3dJY29ucywgY29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm93SWNvbnM7XG4gIH1cblxuICBnZXRDb2x1bW5MYWJlbChyb3c6IGFueSwgY29sdW1uTGFiZWw6IFBvVGFibGVDb2x1bW4pOiBQb1RhYmxlQ29sdW1uTGFiZWwge1xuICAgIHJldHVybiBjb2x1bW5MYWJlbC5sYWJlbHMuZmluZChsYWJlbEl0ZW0gPT4gdGhpcy5nZXRDZWxsRGF0YShyb3csIGNvbHVtbkxhYmVsKSA9PT0gbGFiZWxJdGVtLnZhbHVlKTtcbiAgfVxuXG4gIGdldFN1YnRpdGxlQ29sdW1uKHJvdzogYW55LCBzdWJ0aXRsZUNvbHVtbjogUG9UYWJsZUNvbHVtbik6IFBvVGFibGVTdWJ0aXRsZUNvbHVtbiB7XG4gICAgcmV0dXJuIHN1YnRpdGxlQ29sdW1uLnN1YnRpdGxlcy5maW5kKHN1YnRpdGxlSXRlbSA9PiB0aGlzLmdldENlbGxEYXRhKHJvdywgc3VidGl0bGVDb2x1bW4pID09PSBzdWJ0aXRsZUl0ZW0udmFsdWUpO1xuICB9XG5cbiAgaXNTaG93TWFzdGVyRGV0YWlsKHJvdykge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5oaWRlRGV0YWlsICYmXG4gICAgICB0aGlzLm5hbWVDb2x1bW5EZXRhaWwgJiZcbiAgICAgIHJvdy4kc2hvd0RldGFpbCAmJlxuICAgICAgdGhpcy5jb250YWluc01hc3RlckRldGFpbChyb3cpICYmXG4gICAgICAhdGhpcy5oYXNSb3dUZW1wbGF0ZVxuICAgICk7XG4gIH1cblxuICBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50YWJsZVJvd1RlbXBsYXRlICYmIHRoaXMudGFibGVSb3dUZW1wbGF0ZS5wb1RhYmxlUm93VGVtcGxhdGVTaG93KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd1RlbXBsYXRlLnBvVGFibGVSb3dUZW1wbGF0ZVNob3cocm93LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvbkNsaWNrTGluayhldmVudCwgcm93LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbikpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlVmlzaWJsZUNvbHVtbnMoY29sdW1uczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuY2hhbmdlVmlzaWJsZUNvbHVtbnMuZW1pdChjb2x1bW5zKTtcbiAgfVxuXG4gIG9uQ29sdW1uUmVzdG9yZU1hbmFnZXIodmFsdWU6IEFycmF5PFN0cmluZz4pIHtcbiAgICB0aGlzLmNvbHVtblJlc3RvcmVNYW5hZ2VyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgb25WaXNpYmxlQ29sdW1uc0NoYW5nZShjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPikge1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvb2x0aXBNb3VzZUVudGVyKGV2ZW50OiBhbnksIGNvbHVtbj86IFBvVGFibGVDb2x1bW4sIHJvdz86IGFueSkge1xuICAgIHRoaXMudG9vbHRpcFRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5oaWRlVGV4dE92ZXJmbG93ICYmIGV2ZW50LnRhcmdldC5vZmZzZXRXaWR0aCA8IGV2ZW50LnRhcmdldC5zY3JvbGxXaWR0aCAmJiBldmVudC50YXJnZXQuaW5uZXJUZXh0LnRyaW0oKSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gZXZlbnQudGFyZ2V0LmlubmVyVGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgdGhpcy5jaGVja2luZ0lmQ29sdW1uSGFzVG9vbHRpcChjb2x1bW4sIHJvdyk7XG4gICAgfVxuICB9XG5cbiAgdG9vbHRpcE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRvZ2dsZVBvcHVwKHJvdywgdGFyZ2V0UmVmKSB7XG4gICAgdGhpcy5wb3B1cFRhcmdldCA9IHRhcmdldFJlZjtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMucG9Qb3B1cENvbXBvbmVudC50b2dnbGUocm93KTtcbiAgfVxuXG4gIHRyYWNrQnkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHZhbGlkYXRlVGFibGVBY3Rpb24ocm93OiBhbnksIHRhYmxlQWN0aW9uOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRhYmxlQWN0aW9uLmRpc2FibGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGFibGVBY3Rpb24uZGlzYWJsZWQocm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhYmxlQWN0aW9uLmRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIG9uT3BlbkNvbHVtbk1hbmFnZXIoKSB7XG4gICAgdGhpcy5sYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZCA9IFsuLi50aGlzLmNvbHVtbnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIHJlbW92ZSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSByZW1vdmlkby5cbiAgICogPiBBbyByZW1vdmVyIG8gaXRlbSwgYSBsaW5oYSBxdWUgbyByZXByZXNlbnRhIHNlcsOhIGV4Y2x1w61kYSBkYSB0YWJlbGEuXG4gICAqL1xuICByZW1vdmVJdGVtKGl0ZW06IG51bWJlciB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGZpbHRlckl0ZW0gPT4gZmlsdGVySXRlbSAhPT0gaXRlbSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSBpdGVtO1xuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHF1ZSBhdHVhbGl6YSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSBhdHVhbGl6YWRvLlxuICAgKiBAcGFyYW0geyB7IGtleTogdmFsdWUgfSB9IHVwZGF0ZWRJdGVtIEl0ZW0gcXVlIGZvaSBhdHVhbGl6YWRvLlxuICAgKiA+IEFvIGF0dWFsaXphciBvIGl0ZW0sIGEgaW5mb3JtYcOnw6NvIHNlcsOhIGFsdGVyYWRhIG5hIHRhYmVsYS5cbiAgICovXG4gIHVwZGF0ZUl0ZW0oaXRlbTogbnVtYmVyIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgdXBkYXRlZEl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpdGVtLCAxLCB1cGRhdGVkSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaW5kZXhJdGVtID0+IGluZGV4SXRlbSA9PT0gaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSwgdXBkYXRlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZShjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZTogUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlID0gdGhpcy50YWJsZUNvbHVtblRlbXBsYXRlcy5maW5kKFxuICAgICAgdGFibGVDb2x1bW5UZW1wbGF0ZSA9PiB0YWJsZUNvbHVtblRlbXBsYXRlLnRhcmdldFByb3BlcnR5ID09PSBjb2x1bW4ucHJvcGVydHlcbiAgICApO1xuICAgIGlmICghdGVtcGxhdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE7Do28gZm9pIHBvc3PDrXZlbCBlbmNvbnRyYXIgbyB0ZW1wbGF0ZSBwYXJhIGEgY29sdW5hOiAke2NvbHVtbi5wcm9wZXJ0eX0sIHBvciBnZW50aWxlemEgaW5mb3JtZSBhIHByb3ByaWVkYWRlIFtwLXByb3BlcnR5XWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICB9XG5cbiAgcHVibGljIHN5bmNyb25pemVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMucG9UYWJsZVRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMucG9UYWJsZVRib2R5Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVIZWlnaHRUYWJsZUNvbnRhaW5lcihoZWlnaHQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQoaGVpZ2h0KTtcbiAgICB0aGlzLmhlaWdodFRhYmxlQ29udGFpbmVyID0gdmFsdWUgPyB2YWx1ZSAtIHRoaXMuZ2V0SGVpZ2h0VGFibGVGb290ZXIoKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNldFRhYmxlT3BhY2l0eSgxKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVXaWR0aEhlYWRlcnMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oZWlnaHQpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzVGFibGUuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IGRpdkhlYWRlciA9IGhlYWRlci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wby10YWJsZS1oZWFkZXItZml4ZWQtaW5uZXInKTtcbiAgICAgICAgICBpZiAoZGl2SGVhZGVyKSB7XG4gICAgICAgICAgICBkaXZIZWFkZXIuc3R5bGUud2lkdGggPSBgJHtoZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aH1weGA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0luZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0luZmluaXRlU2Nyb2xsKCkpIHtcbiAgICAgIGlmICh0aGlzLnBvVGFibGVUYm9keS5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCA+IHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZUluZmluaXRlU2Nyb2xsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmluZmluaXRlU2Nyb2xsID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NoYW5nZXNJdGVtcygpIHtcbiAgICBjb25zdCBjaGFuZ2VzSXRlbXMgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuaXRlbXMpO1xuXG4gICAgaWYgKGNoYW5nZXNJdGVtcyAmJiB0aGlzLnNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzSXRlbXMgJiYgIXRoaXMuaGFzQ29sdW1ucyAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmdldERlZmF1bHRDb2x1bW5zKHRoaXMuaXRlbXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdJZkNvbHVtbkhhc1Rvb2x0aXAoY29sdW1uLCByb3cpIHtcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdsaW5rJyAmJiBjb2x1bW4udG9vbHRpcCAmJiAhdGhpcy5jaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gY29sdW1uLnRvb2x0aXApO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xhYmVsJykge1xuICAgICAgY29uc3QgY29sdW1uTGFiZWwgPSB0aGlzLmdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKTtcbiAgICAgIHJldHVybiAodGhpcy50b29sdGlwVGV4dCA9IGNvbHVtbkxhYmVsPy50b29sdGlwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYm91bmNlUmVzaXplKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZXNpemUpO1xuICAgIHRoaXMudGltZW91dFJlc2l6ZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jYWxjdWxhdGVXaWR0aEhlYWRlcnMoKTtcblxuICAgICAgLy8gc2hvdyB0aGUgdGFibGVcbiAgICAgIHRoaXMuc2V0VGFibGVPcGFjaXR5KDEpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ3VzdG9tSWNvbihyb3dJY29ucywgY29sdW1uOiBQb1RhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY3VzdG9tSWNvbiA9IGNvbHVtbi5pY29ucy5maW5kKGljb24gPT4gcm93SWNvbnMgPT09IGljb24udmFsdWUpO1xuICAgIHJldHVybiBjdXN0b21JY29uID8gW2N1c3RvbUljb25dIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWlnaHRUYWJsZUZvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUZvb3RlckVsZW1lbnQgPyB0aGlzLnRhYmxlRm9vdGVyRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XG4gIH1cblxuICBwcml2YXRlIGhhc0luZmluaXRlU2Nyb2xsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluZmluaXRlU2Nyb2xsICYmXG4gICAgICB0aGlzLmhhc0l0ZW1zICYmXG4gICAgICAhdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCAmJlxuICAgICAgdGhpcy5oZWlnaHQgJiZcbiAgICAgIHRoaXMucG9UYWJsZVRib2R5Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5jbHVkZUluZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsRXZlbnQkID0gdGhpcy5kZWZhdWx0U2VydmljZS5zY3JvbGxMaXN0ZW5lcih0aGlzLnBvVGFibGVUYm9keS5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ID0gdGhpcy5zY3JvbGxFdmVudCQuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMuc2hvd01vcmVJbmZpbml0ZVNjcm9sbChldmVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUN1c3RvbUljb25zKHJvd0ljb25zOiBBcnJheTxzdHJpbmc+LCBjdXN0b21JY29uczogQXJyYXk8YW55Pikge1xuICAgIGNvbnN0IG1lcmdlZEljb25zID0gW107XG5cbiAgICByb3dJY29ucy5mb3JFYWNoKGNvbHVtblZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kQ3VzdG9tSWNvbiA9IGN1c3RvbUljb25zLmZpbmQoXG4gICAgICAgIGN1c3RvbUljb24gPT4gY29sdW1uVmFsdWUgPT09IGN1c3RvbUljb24uaWNvbiB8fCBjb2x1bW5WYWx1ZSA9PT0gY3VzdG9tSWNvbi52YWx1ZVxuICAgICAgKTtcbiAgICAgIGZvdW5kQ3VzdG9tSWNvbiA/IG1lcmdlZEljb25zLnB1c2goZm91bmRDdXN0b21JY29uKSA6IG1lcmdlZEljb25zLnB1c2goY29sdW1uVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlZEljb25zO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYmxlT3BhY2l0eSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlDaGFuZ2VIZWlnaHRJbkZvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy5mb290ZXJIZWlnaHQgIT09IHRoaXMuZ2V0SGVpZ2h0VGFibGVGb290ZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5Q2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoKSB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMudmVyaWZ5Q2hhbmdlSGVpZ2h0SW5Gb290ZXIoKSkge1xuICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmdldEhlaWdodFRhYmxlRm9vdGVyKCk7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKHRoaXMuaGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVNlbGVjdChjb21wYXJlLCBzZWxlY3RWYWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgY29tcGFyZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbSA9PT0gY29tcGFyZSkge1xuICAgICAgICAgIGl0ZW0uJHNlbGVjdGVkID0gc2VsZWN0VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChjb21wYXJlKGl0ZW0pKSB7XG4gICAgICAgICAgaXRlbS4kc2VsZWN0ZWQgPSBzZWxlY3RWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8cG8tY29udGFpbmVyICpuZ0lmPVwiY29udGFpbmVyOyBlbHNlIHRhYmxlQ29udGFpbmVyVGVtcGxhdGVcIiBwLW5vLXBhZGRpbmcgW3Atbm8tc2hhZG93XT1cImNvbnRhaW5lciA9PT0gJ2JvcmRlcidcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ29udGFpbmVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvcG8tY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQ29udGFpbmVyVGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzLnBvLXRhYmxlLWNvbnRhaW5lci1yZWxhdGl2ZV09XCJsb2FkaW5nXCI+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInBvLXRhYmxlLW92ZXJsYXlcIj5cbiAgICAgIDxwby1sb2FkaW5nIGNsYXNzPVwicG8tdGFibGUtb3ZlcmxheS1jb250ZW50XCIgW3AtdGV4dF09XCJsaXRlcmFscy5sb2FkaW5nRGF0YVwiPjwvcG8tbG9hZGluZz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby10YWJsZS1tYWluLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdlxuICAgICAgICAjdGFibGVXcmFwcGVyXG4gICAgICAgIGNsYXNzPVwicG8tdGFibGUtd3JhcHBlclwiXG4gICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZml4ZWQtY29sdW1ucy1waXhlbHNdPVwiYWxsQ29sdW1uc1dpZHRoUGl4ZWxzXCJcbiAgICAgICAgW3N0eWxlLm9wYWNpdHldPVwidGFibGVPcGFjaXR5XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImhlaWdodFwiIGNsYXNzPVwicG8tdGFibGUtY29udGFpbmVyXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRUYWJsZUNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgI3BvVGFibGVUaGVhZCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1maXhlZCBwby10YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAjcG9UYWJsZVRib2R5IGNsYXNzPVwicG8tdGFibGUtY29udGFpbmVyLWZpeGVkLWlubmVyXCIgKHNjcm9sbCk9XCJzeW5jcm9uaXplSG9yaXpvbnRhbFNjcm9sbCgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVCb2R5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFoZWlnaHRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtZm9vdGVyXCIgKm5nSWY9XCJoYXNGb290ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc3VidGl0bGVDb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICA8cG8tdGFibGUtc3VidGl0bGUtZm9vdGVyIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCIgW3Atc3VidGl0bGVzXT1cImNvbHVtbi5zdWJ0aXRsZXNcIj4gPC9wby10YWJsZS1zdWJ0aXRsZS1mb290ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAqbmdJZj1cIiFpbmZpbml0ZVNjcm9sbFwiXG4gIGNsYXNzPVwicG8tcm93IHBvLXRhYmxlLWZvb3Rlci1zaG93LW1vcmVcIlxuICBbY2xhc3MucG8taW52aXNpYmxlXT1cInNob3dNb3JlLm9ic2VydmVycy5sZW5ndGggPT09IDAgJiYgIWhhc1NlcnZpY2VcIlxuICAjdGFibGVGb290ZXJcbj5cbiAgPHBvLWJ1dHRvblxuICAgIGNsYXNzPVwicG8tb2Zmc2V0LXhsLTQgcG8tb2Zmc2V0LWxnLTQgcG8tb2Zmc2V0LW1kLTMgcG8tbGctNCBwby1tZC02XCJcbiAgICBbcC1kaXNhYmxlZF09XCJzaG93TW9yZURpc2FibGVkXCJcbiAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5sb2FkTW9yZURhdGFcIlxuICAgIFtwLWxvYWRpbmddPVwibG9hZGluZ1Nob3dNb3JlXCJcbiAgICAocC1jbGljayk9XCJvblNob3dNb3JlKClcIlxuICA+XG4gIDwvcG8tYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVIZWFkZXJUZW1wbGF0ZT5cbiAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyIFtjbGFzcy5wby10YWJsZS1oZWFkZXJdPVwiIWhlaWdodFwiPlxuICAgICAgICA8dGggKm5nSWY9XCJoYXNTZWxlY3RhYmxlQ29sdW1uXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jaGVja2JveC1jaGVja2VkXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jaGVja2JveC1pbmRldGVybWluYXRlXT1cInNlbGVjdEFsbCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWhpZGVTZWxlY3RBbGxcIiBjbGFzcz1cInBvLXRhYmxlLWNoZWNrYm94LWxhYmVsIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJzZWxlY3RBbGxSb3dzKClcIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCIoaGFzTWFzdGVyRGV0YWlsQ29sdW1uIHx8IGhhc1Jvd1RlbXBsYXRlKSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPCEtLSBDb2x1bmEgY3JpYWRhIHBhcmEgY2FzbyBhcyBhw6fDtWVzIGZpcXVlbSBubyBsYWRvIGVzcXVlcmRvIC0tPlxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbF09XCIhaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aCAqbmdJZj1cIiFoYXNNYWluQ29sdW1uc1wiICNub0NvbHVtbnNIZWFkZXIgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlaWdodDsgdGhlbiBub0NvbHVtbnNXaXRoSGVpZ2h0OyBlbHNlIG5vQ29sdW1uc1dpdGhvdXRIZWlnaHRcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgI2hlYWRlcnNUYWJsZVxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwiKHNvcnQgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSkgfHwgaGFzU2VydmljZVwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zdWJ0aXRsZV09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInNvcnRDb2x1bW4oY29sdW1uKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1mbGV4XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZml4ZWQtaW5uZXJdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1yaWdodF09XCJjb2x1bW4udHlwZSA9PT0gJ2N1cnJlbmN5JyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LWNlbnRlcl09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRIZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodCAmJiAoaGFzVmlzaWJsZUFjdGlvbnMgfHwgaGlkZUNvbHVtbnNNYW5hZ2VyKVwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCJoYXNWaXNpYmxlQWN0aW9ucyAmJiBoaWRlQ29sdW1uc01hbmFnZXIgJiYgYWN0aW9uUmlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1hY3Rpb25zXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5NYW5hZ2VyXG4gICAgICAgICAgKm5nSWY9XCJoYXNWYWxpZENvbHVtbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlcl09XCIhaXNTaW5nbGVBY3Rpb24gfHwgIWFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCIhaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cImhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPyBjb2x1bW5NYW5hZ2VyLm9mZnNldFdpZHRoIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICNjb2x1bW5NYW5hZ2VyVGFyZ2V0XG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJ1dHRvbiBwby1pY29uIHBvLWljb24tc2V0dGluZ3MgcG8tY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuQ29sdW1uTWFuYWdlcigpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVCb2R5VGVtcGxhdGU+XG4gIDx0YWJsZSBjbGFzcz1cInBvLXRhYmxlXCIgW2NsYXNzLnBvLXRhYmxlLXN0cmlwZWRdPVwic3RyaXBlZFwiIFtjbGFzcy5wby10YWJsZS1sYXlvdXQtZml4ZWRdPVwiaGlkZVRleHRPdmVyZmxvd1wiPlxuICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0lmPVwiIWhhc0l0ZW1zIHx8ICFoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5Db3VudFwiIGNsYXNzPVwicG8tdGFibGUtbm8tZGF0YSBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0RhdGEgfX0gPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01haW5Db2x1bW5zXCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3dcIiBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0YWJsZVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW5nbGVTZWxlY3QgPyBpbnB1dFJhZGlvIDogaW5wdXRDaGVja2JveDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbG8gaW5wdXQgZG8gcG8tdGFibGUgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbk1hc3RlckRldGFpbCAmJiAhaGlkZURldGFpbCAmJiAhaGFzUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGNvbSBhcyBhw6fDtWVzIG5hIGVzcXVlcmRhIChwYWRyw6NvKS0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbl09XCJjb2x1bW4udHlwZSAhPT0gJ2ljb24nXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4taWNvbnNdPVwiY29sdW1uLnR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tY2VsbCBub3RyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1ib2R5LWVsbGlwc2lzXT1cImhpZGVUZXh0T3ZlcmZsb3dcIlxuICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIm5vQ29sdW1uc0hlYWRlcj8ubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5vZmZzZXRXaWR0aFwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInRvb2x0aXBNb3VzZUVudGVyKCRldmVudCwgY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9vbHRpcE1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY29sdW1uVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKGNvbHVtbik7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjZWxsVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbFRlbXBsYXRlPy50ZW1wbGF0ZVJlZjsgY29udGV4dDogeyByb3c6IHJvdywgY29sdW1uOiBjb2x1bW4gfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldEJvb2xlYW5MYWJlbChnZXRDZWxsRGF0YShyb3csIGNvbHVtbiksIGNvbHVtbikgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgY3VycmVuY3k6IGNvbHVtbi5mb3JtYXQ6J3N5bWJvbCc6JzEuMi0yJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGRhdGU6IGNvbHVtbi5mb3JtYXQgfHwgJ2RkL01NL3l5eXknIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUnXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgcG9fdGltZTogY29sdW1uLmZvcm1hdCB8fCAnSEg6bW06c3MuZmZmZmZmJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlVGltZSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBkYXRlOiBjb2x1bW4uZm9ybWF0IHx8ICdkZC9NTS95eXl5IEhIOm1tOnNzJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAge3sgZm9ybWF0TnVtYmVyKGdldENlbGxEYXRhKHJvdywgY29sdW1uKSwgY29sdW1uLmZvcm1hdCkgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4tbGlua1xuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbGluaydcIlxuICAgICAgICAgICAgICAgIFtwLWFjdGlvbl09XCJjb2x1bW4uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJjaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgW3AtbGlua109XCJyb3dbY29sdW1uLmxpbmtdXCJcbiAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICBbcC12YWx1ZV09XCJnZXRDZWxsRGF0YShyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrTGluaygkZXZlbnQsIHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4tbGluaz5cblxuICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWljb25cbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICBbcC1jb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbcC1pY29uc109XCJnZXRDb2x1bW5JY29ucyhyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvcG8tdGFibGUtY29sdW1uLWljb24+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidzdWJ0aXRsZSdcIj5cbiAgICAgICAgICAgICAgICA8cG8tdGFibGUtc3VidGl0bGUtY2lyY2xlIFtwLXN1YnRpdGxlXT1cImdldFN1YnRpdGxlQ29sdW1uKHJvdywgY29sdW1uKVwiPjwvcG8tdGFibGUtc3VidGl0bGUtY2lyY2xlPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1sYWJlbCBbcC12YWx1ZV09XCJnZXRDb2x1bW5MYWJlbChyb3csIGNvbHVtbilcIj4gPC9wby10YWJsZS1jb2x1bW4tbGFiZWw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD57eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGRlIGHDp29lcyBuYSBkaXJlaXRhIC0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb25SaWdodFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJBY3Rpb25zQ29sdW1uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIHBhcmEgbsOjbyBmaWNhciBlbSBicmFuY28gbmFzIGxpbmhhcyBkZSBnZXJlbmNpYW1lbnRvIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pICYmICFoaWRlQ29sdW1uc01hbmFnZXJcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbiBwby10YWJsZS1jb2x1bW4tZW1wdHlcIj48L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bW4gTWFuYWdlciAtLT5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiIWhhc1Zpc2libGVBY3Rpb25zICYmICFoaWRlQ29sdW1uc01hbmFnZXIgJiYgIWhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW5cIlxuICAgICAgICAgID48L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGhhc1Jvd1RlbXBsYXRlICYmIHJvdy4kc2hvd0RldGFpbCAmJiBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIHJvd0luZGV4KVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLXJvdy10ZW1wbGF0ZS1jb250YWluZXJcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlUm93VGVtcGxhdGUudGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGlzU2hvd01hc3RlckRldGFpbChyb3cpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbFwiIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50Rm9yTWFzdGVyRGV0YWlsXCI+XG4gICAgICAgICAgICA8cG8tdGFibGUtZGV0YWlsXG4gICAgICAgICAgICAgIFtwLXNlbGVjdGFibGVdPVwic2VsZWN0YWJsZSAmJiAhZGV0YWlsSGlkZVNlbGVjdFwiXG4gICAgICAgICAgICAgIFtwLWRldGFpbF09XCJjb2x1bW5NYXN0ZXJEZXRhaWwuZGV0YWlsXCJcbiAgICAgICAgICAgICAgW3AtaXRlbXNdPVwicm93W25hbWVDb2x1bW5EZXRhaWxdXCJcbiAgICAgICAgICAgICAgKHAtc2VsZWN0LXJvdyk9XCJzZWxlY3REZXRhaWxSb3coJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLXRhYmxlLWRldGFpbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVUZW1wbGF0ZT5cbiAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyIFtjbGFzcy5wby10YWJsZS1oZWFkZXJdPVwiIWhlaWdodFwiPlxuICAgICAgICA8dGggKm5nSWY9XCJoYXNTZWxlY3RhYmxlQ29sdW1uXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jaGVja2JveC1jaGVja2VkXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jaGVja2JveC1pbmRldGVybWluYXRlXT1cInNlbGVjdEFsbCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWhpZGVTZWxlY3RBbGxcIiBjbGFzcz1cInBvLXRhYmxlLWNoZWNrYm94LWxhYmVsIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJzZWxlY3RBbGxSb3dzKClcIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCIoaGFzTWFzdGVyRGV0YWlsQ29sdW1uIHx8IGhhc1Jvd1RlbXBsYXRlKSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPCEtLSBDb2x1bmEgY3JpYWRhIHBhcmEgY2FzbyBhcyBhw6fDtWVzIGZpcXVlbSBubyBsYWRvIGVzcXVlcmRvIC0tPlxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbF09XCIhaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aCAqbmdJZj1cIiFoYXNNYWluQ29sdW1uc1wiICNub0NvbHVtbnNIZWFkZXIgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlaWdodDsgdGhlbiBub0NvbHVtbnNXaXRoSGVpZ2h0OyBlbHNlIG5vQ29sdW1uc1dpdGhvdXRIZWlnaHRcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgI2hlYWRlcnNUYWJsZVxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwiKHNvcnQgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSkgfHwgaGFzU2VydmljZVwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zdWJ0aXRsZV09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInNvcnRDb2x1bW4oY29sdW1uKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1mbGV4XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZml4ZWQtaW5uZXJdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1yaWdodF09XCJjb2x1bW4udHlwZSA9PT0gJ2N1cnJlbmN5JyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LWNlbnRlcl09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRIZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodCAmJiAoaGFzVmlzaWJsZUFjdGlvbnMgfHwgaGlkZUNvbHVtbnNNYW5hZ2VyKVwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCJoYXNWaXNpYmxlQWN0aW9ucyAmJiBoaWRlQ29sdW1uc01hbmFnZXIgJiYgYWN0aW9uUmlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1hY3Rpb25zXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5NYW5hZ2VyXG4gICAgICAgICAgKm5nSWY9XCJoYXNWYWxpZENvbHVtbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlcl09XCIhaXNTaW5nbGVBY3Rpb24gfHwgIWFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCIhaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cImhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPyBjb2x1bW5NYW5hZ2VyLm9mZnNldFdpZHRoIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICNjb2x1bW5NYW5hZ2VyVGFyZ2V0XG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJ1dHRvbiBwby1pY29uIHBvLWljb24tc2V0dGluZ3MgcG8tY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuQ29sdW1uTWFuYWdlcigpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cblxuICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0lmPVwiIWhhc0l0ZW1zIHx8ICFoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5Db3VudFwiIGNsYXNzPVwicG8tdGFibGUtbm8tZGF0YSBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0RhdGEgfX0gPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01haW5Db2x1bW5zXCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3dcIiBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0YWJsZVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW5nbGVTZWxlY3QgPyBpbnB1dFJhZGlvIDogaW5wdXRDaGVja2JveDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbG8gaW5wdXQgZG8gcG8tdGFibGUgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbk1hc3RlckRldGFpbCAmJiAhaGlkZURldGFpbCAmJiAhaGFzUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGNvbSBhcyBhw6fDtWVzIG5hIGVzcXVlcmRhIChwYWRyw6NvKS0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbl09XCJjb2x1bW4udHlwZSAhPT0gJ2ljb24nXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4taWNvbnNdPVwiY29sdW1uLnR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tY2VsbCBub3RyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1ib2R5LWVsbGlwc2lzXT1cImhpZGVUZXh0T3ZlcmZsb3dcIlxuICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwidG9vbHRpcE1vdXNlRW50ZXIoJGV2ZW50LCBjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjb2x1bW5UZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VGVtcGxhdGUoY29sdW1uKTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NlbGxUZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVDZWxsVGVtcGxhdGU/LnRlbXBsYXRlUmVmOyBjb250ZXh0OiB7IHJvdzogcm93LCBjb2x1bW46IGNvbHVtbiB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Qm9vbGVhbkxhYmVsKGdldENlbGxEYXRhKHJvdywgY29sdW1uKSwgY29sdW1uKSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBjdXJyZW5jeTogY29sdW1uLmZvcm1hdDonc3ltYm9sJzonMS4yLTInIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eScgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBwb190aW1lOiBjb2x1bW4uZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGRhdGU6IGNvbHVtbi5mb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICB7eyBmb3JtYXROdW1iZXIoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4uZm9ybWF0KSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1saW5rXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiXG4gICAgICAgICAgICAgICAgW3AtYWN0aW9uXT1cImNvbHVtbi5hY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImNoZWNrRGlzYWJsZWQocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICBbcC1saW5rXT1cInJvd1tjb2x1bW4ubGlua11cIlxuICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgIFtwLXZhbHVlXT1cImdldENlbGxEYXRhKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tMaW5rKCRldmVudCwgcm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1saW5rPlxuXG4gICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4taWNvblxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIlxuICAgICAgICAgICAgICAgIFtwLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtwLWljb25zXT1cImdldENvbHVtbkljb25zKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgW3Atcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4taWNvbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgICAgICAgIDxwby10YWJsZS1zdWJ0aXRsZS1jaXJjbGUgW3Atc3VidGl0bGVdPVwiZ2V0U3VidGl0bGVDb2x1bW4ocm93LCBjb2x1bW4pXCI+PC9wby10YWJsZS1zdWJ0aXRsZS1jaXJjbGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidsYWJlbCdcIj5cbiAgICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWxhYmVsIFtwLXZhbHVlXT1cImdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKVwiPiA8L3BvLXRhYmxlLWNvbHVtbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWwtdG9nZ2xlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEZXRhaWwocm93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvVGFibGVDb2x1bW5EZXRhaWxcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bmEgZGUgYcOnb2VzIG5hIGRpcmVpdGEgLS0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bmEgcGFyYSBuw6NvIGZpY2FyIGVtIGJyYW5jbyBuYXMgbGluaGFzIGRlIGdlcmVuY2lhbWVudG8gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbikgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtcm93LW5vLWRhdGEgcG8tdGFibGUtY29sdW1uLWVtcHR5XCI+PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gQ29sdW1uIE1hbmFnZXIgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cIiFoYXNWaXNpYmxlQWN0aW9ucyAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uXCJcbiAgICAgICAgICA+PC90ZD5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8dHIgKm5nSWY9XCJoYXNNYWluQ29sdW1ucyAmJiBoYXNSb3dUZW1wbGF0ZSAmJiByb3cuJHNob3dEZXRhaWwgJiYgaXNTaG93Um93VGVtcGxhdGUocm93LCByb3dJbmRleClcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1yb3ctdGVtcGxhdGUtY29udGFpbmVyXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZVJvd1RlbXBsYXRlLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8dHIgKm5nSWY9XCJoYXNNYWluQ29sdW1ucyAmJiBpc1Nob3dNYXN0ZXJEZXRhaWwocm93KVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWxcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgPHBvLXRhYmxlLWRldGFpbFxuICAgICAgICAgICAgICBbcC1zZWxlY3RhYmxlXT1cInNlbGVjdGFibGUgJiYgIWRldGFpbEhpZGVTZWxlY3RcIlxuICAgICAgICAgICAgICBbcC1kZXRhaWxdPVwiY29sdW1uTWFzdGVyRGV0YWlsLmRldGFpbFwiXG4gICAgICAgICAgICAgIFtwLWl0ZW1zXT1cInJvd1tuYW1lQ29sdW1uRGV0YWlsXVwiXG4gICAgICAgICAgICAgIChwLXNlbGVjdC1yb3cpPVwic2VsZWN0RGV0YWlsUm93KCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby10YWJsZS1kZXRhaWw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGFibGU+XG48L25nLXRlbXBsYXRlPlxuXG48cG8tcG9wdXAgI3BvcHVwIFtwLWFjdGlvbnNdPVwiYWN0aW9uc1wiIFtwLXRhcmdldF09XCJwb3B1cFRhcmdldFwiPiA8L3BvLXBvcHVwPlxuXG48bmctdGVtcGxhdGUgI3BvVGFibGVDb2x1bW5EZXRhaWwgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCIoY29udGFpbnNNYXN0ZXJEZXRhaWwocm93KSAmJiAhaGFzUm93VGVtcGxhdGUpIHx8IChpc1Nob3dSb3dUZW1wbGF0ZShyb3csIHJvd0luZGV4KSAmJiBoYXNSb3dUZW1wbGF0ZSlcIlxuICAgIGNsYXNzPVwicG8taWNvbiBwby1jbGlja2FibGVcIlxuICAgIFtjbGFzcy5wby1pY29uLWFycm93LXVwXT1cInJvdy4kc2hvd0RldGFpbFwiXG4gICAgW2NsYXNzLnBvLWljb24tYXJyb3ctZG93bl09XCIhcm93LiRzaG93RGV0YWlsXCJcbiAgPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0UmFkaW8gbGV0LXJvdz5cbiAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwicG8tdGFibGUtcmFkaW9cIiBbY2xhc3MucG8tdGFibGUtcmFkaW8tY2hlY2tlZF09XCJyb3cuJHNlbGVjdGVkXCIgLz5cbiAgPGxhYmVsIGNsYXNzPVwicG8tdGFibGUtcmFkaW8tbGFiZWwgcG8tY2xpY2thYmxlXCIgKGNsaWNrKT1cInNlbGVjdGFibGUgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCI+PC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRDaGVja2JveCBsZXQtcm93PlxuICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJwby10YWJsZS1jaGVja2JveFwiIFtjbGFzcy5wby10YWJsZS1jaGVja2JveC1jaGVja2VkXT1cInJvdy4kc2VsZWN0ZWRcIiAvPlxuICA8bGFiZWwgY2xhc3M9XCJwby10YWJsZS1jaGVja2JveC1sYWJlbCBwby1jbGlja2FibGVcIiAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIj48L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50SGVhZGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgPHNwYW5cbiAgICAjY29sdW1uSGVhZGVyXG4gICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZWxsaXBzaXNcIlxuICAgIFtwLXRvb2x0aXBdPVwidG9vbHRpcFRleHRcIlxuICAgIChtb3VzZWVudGVyKT1cInRvb2x0aXBNb3VzZUVudGVyKCRldmVudClcIlxuICAgIChtb3VzZWxlYXZlKT1cInRvb2x0aXBNb3VzZUxlYXZlKClcIlxuICA+XG4gICAge3sgY29sdW1uLmxhYmVsIHx8IChjb2x1bW4ucHJvcGVydHkgfCB0aXRsZWNhc2UpIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cInNvcnQgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZVwiXG4gICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1pY29uLXVuc2VsZWN0ZWRdPVwic29ydGVkQ29sdW1uPy5wcm9wZXJ0eSAhPT0gY29sdW1uXCJcbiAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWljb24tZGVzY2VuZGluZ109XCJzb3J0ZWRDb2x1bW4/LnByb3BlcnR5ID09PSBjb2x1bW4gJiYgc29ydGVkQ29sdW1uLmFzY2VuZGluZ1wiXG4gICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1pY29uLWFzY2VuZGluZ109XCJzb3J0ZWRDb2x1bW4/LnByb3BlcnR5ID09PSBjb2x1bW4gJiYgIXNvcnRlZENvbHVtbi5hc2NlbmRpbmdcIlxuICA+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Db2x1bW5zV2l0aEhlaWdodD5cbiAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lclwiIFtzdHlsZS53aWR0aC5weF09XCJub0NvbHVtbnNIZWFkZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcIj5cbiAgICB7eyBoYXNWYWxpZENvbHVtbnMgPyBsaXRlcmFscy5ub1Zpc2libGVDb2x1bW4gOiBsaXRlcmFscy5ub0NvbHVtbnMgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29sdW1uc1dpdGhvdXRIZWlnaHQ+XG4gIHt7IGhhc1ZhbGlkQ29sdW1ucyA/IGxpdGVyYWxzLm5vVmlzaWJsZUNvbHVtbiA6IGxpdGVyYWxzLm5vQ29sdW1ucyB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBUZW1wbGF0ZSBkZSBhw6fDtWVzIC0tPlxuPG5nLXRlbXBsYXRlICNBY3Rpb25zQ29sdW1uVGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gIDx0ZCAqbmdJZj1cImlzU2luZ2xlQWN0aW9uXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLXNpbmdsZS1hY3Rpb25cIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImZpcnN0QWN0aW9uLnZpc2libGUgIT09IGZhbHNlXCJcbiAgICAgIGNsYXNzPVwicG8tdGFibGUtc2luZ2xlLWFjdGlvbiBwby1jbGlja2FibGVcIlxuICAgICAgW2NsYXNzLnBvLXRhYmxlLWFjdGlvbi1kaXNhYmxlZF09XCJmaXJzdEFjdGlvbi5kaXNhYmxlZCA/IHZhbGlkYXRlVGFibGVBY3Rpb24ocm93LCBmaXJzdEFjdGlvbikgOiBmYWxzZVwiXG4gICAgICAoY2xpY2spPVwiZXhlY3V0ZVRhYmxlQWN0aW9uKHJvdywgZmlyc3RBY3Rpb24pXCJcbiAgICA+XG4gICAgICA8cG8taWNvbiAqbmdJZj1cImZpcnN0QWN0aW9uLmljb25cIiBjbGFzcz1cInBvLXRhYmxlLXNpbmdsZS1hY3Rpb24tY29udGVudFwiIFtwLWljb25dPVwiZmlyc3RBY3Rpb24uaWNvblwiPjwvcG8taWNvbj5cbiAgICAgIHt7IGZpcnN0QWN0aW9uLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gIDwvdGQ+XG5cbiAgPHRkICpuZ0lmPVwidmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWFjdGlvbnNcIj5cbiAgICA8c3BhbiAjcG9wdXBUYXJnZXQgY2xhc3M9XCJwby1pY29uIHBvLWljb24tbW9yZSBwby1jbGlja2FibGVcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAocm93LCBwb3B1cFRhcmdldClcIj48L3NwYW4+XG4gIDwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48cG8tdGFibGUtY29sdW1uLW1hbmFnZXJcbiAgKm5nSWY9XCIhaGlkZUNvbHVtbnNNYW5hZ2VyXCJcbiAgW3AtY29sdW1uc109XCJjb2x1bW5zXCJcbiAgW3AtbWF4LWNvbHVtbnNdPVwibWF4Q29sdW1uc1wiXG4gIFtwLXRhcmdldF09XCJjb2x1bW5NYW5hZ2VyVGFyZ2V0XCJcbiAgW3AtbGFzdC12aXNpYmxlLWNvbHVtbnMtc2VsZWN0ZWRdPVwibGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWRcIlxuICAocC12aXNpYmxlLWNvbHVtbnMtY2hhbmdlKT1cIm9uVmlzaWJsZUNvbHVtbnNDaGFuZ2UoJGV2ZW50KVwiXG4gIChwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMpPVwib25DaGFuZ2VWaXNpYmxlQ29sdW1ucygkZXZlbnQpXCJcbiAgW3AtY29sdW1ucy1kZWZhdWx0XT1cImluaXRpYWxDb2x1bW5zXCJcbiAgKHAtaW5pdGlhbC1jb2x1bW5zKT1cIm9uQ29sdW1uUmVzdG9yZU1hbmFnZXIoJGV2ZW50KVwiXG4+XG48L3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyPlxuIl19
1983
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBS1YsU0FBUyxFQUNULFlBQVksRUFFWixlQUFlLEVBRWhCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDL0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDakNwRyx3QkFBd0U7OztJQUQxRSx3Q0FBaUg7SUFDL0csbUdBQXdFO0lBQzFFLGlCQUFlOzs7O0lBRjJELDJEQUFzQztJQUMvRixlQUF3QztJQUF4QyxzQ0FBd0M7OztJQUtyRCwrQkFBOEM7SUFDNUMsaUNBQTBGO0lBQzVGLGlCQUFNOzs7SUFEeUMsZUFBK0I7SUFBL0IscURBQStCOzs7SUFZdEUsd0JBQXFFOzs7SUFJckUsd0JBQXdGOzs7SUFO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QVM7bUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ1MsbUJBQW1CO2tCQUF6RixTQUFTO21CQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0osYUFBYTtrQkFBN0UsU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDSyxnQkFBZ0I7a0JBQW5GLFNBQVM7bUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFUixrQkFBa0I7a0JBQTNFLFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ0YsY0FBYztrQkFBbkUsWUFBWTttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdEIsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjO1lBcUJVLG1CQUFtQjtrQkFBeEQsU0FBUzttQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvRGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1kYXRlL3BvLWRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3BvLXBvcHVwL3BvLXBvcHVwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFBvVGFibGVBY3Rpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQmFzZUNvbXBvbmVudCwgUXVlcnlQYXJhbXNUeXBlIH0gZnJvbSAnLi9wby10YWJsZS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtbkxhYmVsIH0gZnJvbSAnLi9wby10YWJsZS1jb2x1bW4tbGFiZWwvcG8tdGFibGUtY29sdW1uLWxhYmVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlUm93VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZS9wby10YWJsZS1yb3ctdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvVGFibGVTdWJ0aXRsZUNvbHVtbiB9IGZyb20gJy4vcG8tdGFibGUtc3VidGl0bGUtZm9vdGVyL3BvLXRhYmxlLXN1YnRpdGxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNlbGxUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tdGFibGUtY2VsbC10ZW1wbGF0ZS9wby10YWJsZS1jZWxsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3BvLXRhYmxlLWNvbHVtbi10ZW1wbGF0ZS9wby10YWJsZS1jb2x1bW4tdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvVGFibGVSb3dUZW1wbGF0ZUFycm93RGlyZWN0aW9uIH0gZnJvbSAnLi9lbnVtcy9wby10YWJsZS1yb3ctdGVtcGxhdGUtYXJyb3ctZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgUG9UYWJsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLXRhYmxlLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1RhYmxlQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWJhc2ljXCIgdGl0bGU9XCJQTyBUYWJsZSBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYmFzaWMvc2FtcGxlLXBvLXRhYmxlLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1iYXNpYy9zYW1wbGUtcG8tdGFibGUtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS1sYWJzXCIgdGl0bGU9XCJQTyBUYWJsZSBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1sYWJzL3NhbXBsZS1wby10YWJsZS1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1sYWJzL3NhbXBsZS1wby10YWJsZS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50LmUyZS1zcGVjLnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50LnBvLnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLXdpdGgtYXBpXCIgdGl0bGU9XCJQTyBUYWJsZSB1c2luZyBBUElcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLXdpdGgtYXBpL3NhbXBsZS1wby10YWJsZS13aXRoLWFwaS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkvc2FtcGxlLXBvLXRhYmxlLXdpdGgtYXBpLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtdHJhbnNwb3J0XCIgdGl0bGU9XCJQTyBUYWJsZSAtIFRyYW5zcG9ydFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0L3NhbXBsZS1wby10YWJsZS10cmFuc3BvcnQuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC9zYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0LmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC9zYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0LnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS1haXJmYXJlXCIgdGl0bGU9XCJQTyBUYWJsZSAtIEFpcmZhcmVcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUvc2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUvc2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYWlyZmFyZS9zYW1wbGUtcG8tdGFibGUtYWlyZmFyZS5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtY29tcG9uZW50c1wiIHRpdGxlPVwiUE8gVGFibGUgLSBQbyBGaWVsZCBDb21wb25lbnRzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmVudW0udHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy9zYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy9zYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy5jb21wb25lbnQuY3NzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbUG9EYXRlU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgUG9UYWJsZUNvbXBvbmVudCBleHRlbmRzIFBvVGFibGVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjaywgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZChQb1RhYmxlUm93VGVtcGxhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHRhYmxlUm93VGVtcGxhdGU6IFBvVGFibGVSb3dUZW1wbGF0ZURpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZChQb1RhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlKSB0YWJsZUNlbGxUZW1wbGF0ZTogUG9UYWJsZUNlbGxUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkcmVuKFBvVGFibGVDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSkgdGFibGVDb2x1bW5UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQb1RhYmxlQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gIEBWaWV3Q2hpbGQoJ25vQ29sdW1uc0hlYWRlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBub0NvbHVtbnNIZWFkZXI7XG4gIEBWaWV3Q2hpbGQoJ3BvcHVwJykgcG9Qb3B1cENvbXBvbmVudDogUG9Qb3B1cENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgndGFibGVGb290ZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgdGFibGVGb290ZXJFbGVtZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZVdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgdGFibGVXcmFwcGVyRWxlbWVudDtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRib2R5JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHBvVGFibGVUYm9keTtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRoZWFkJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHBvVGFibGVUaGVhZDtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRib2R5VmlydHVhbCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBwb1RhYmxlVGJvZHlWaXJ0dWFsO1xuICBAVmlld0NoaWxkKCdjb2x1bW5NYW5hZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGNvbHVtbk1hbmFnZXI7XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkFjdGlvbkxlZnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgY29sdW1uQWN0aW9uTGVmdDtcblxuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25zSWNvbkVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWN0aW9uc0ljb25FbGVtZW50OiBRdWVyeUxpc3Q8YW55PjtcbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uc0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWN0aW9uc0VsZW1lbnQ6IFF1ZXJ5TGlzdDxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdoZWFkZXJzVGFibGUnKSBoZWFkZXJzVGFibGU6IFF1ZXJ5TGlzdDxhbnk+O1xuXG4gIGhlaWdodFRhYmxlQ29udGFpbmVyOiBudW1iZXI7XG4gIHBvcHVwVGFyZ2V0O1xuICB0YWJsZU9wYWNpdHk6IG51bWJlciA9IDA7XG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG4gIGl0ZW1TaXplOiBudW1iZXI7XG4gIGxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkOiBBcnJheTxQb1RhYmxlQ29sdW1uPjtcblxuICBwcml2YXRlIF9jb2x1bW5NYW5hZ2VyVGFyZ2V0OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGRpZmZlcjtcbiAgcHJpdmF0ZSBmb290ZXJIZWlnaHQ7XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0aW1lb3V0UmVzaXplO1xuICBwcml2YXRlIHZpc2libGVFbGVtZW50ID0gZmFsc2U7XG4gIHByaXZhdGUgc2Nyb2xsRXZlbnQkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGNsaWNrTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVzaXplTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgQFZpZXdDaGlsZCgnY29sdW1uTWFuYWdlclRhcmdldCcpIHNldCBjb2x1bW5NYW5hZ2VyVGFyZ2V0KHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fY29sdW1uTWFuYWdlclRhcmdldCA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbk1hbmFnZXJUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1hbmFnZXJUYXJnZXQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwb0RhdGU6IFBvRGF0ZVNlcnZpY2UsXG4gICAgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcG9MYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkZWZhdWx0U2VydmljZTogUG9UYWJsZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocG9EYXRlLCBwb0xhbmd1YWdlU2VydmljZSwgZGVmYXVsdFNlcnZpY2UpO1xuXG4gICAgdGhpcy5kaWZmZXIgPSBkaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcblxuICAgIC8vIFRPRE86ICM1NTUwIGFvIHJlbW92ZXIgZXN0ZSBsaXN0ZW5lciwgbm8gcG9ydGFsLCBxdWFuZG8gYXMgY29sdW5hcyBmb3JlbSBmaXhhcyBuw6NvIHNvZnJlbVxuICAgIC8vIGFsdGVyYcOnw6NvIGRlIGxhcmd1cmEsIHBvaXMgbyBuZ0RvQ2hlY2sgbsOjbyDDqSBleGVjdXRhZG8uXG4gICAgdGhpcy5jbGlja0xpc3RlbmVyID0gcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsICgpID0+IHt9KTtcblxuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSByZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5kZWJvdW5jZVJlc2l6ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVSb3dUZW1wbGF0ZT8udGFibGVSb3dUZW1wbGF0ZUFycm93RGlyZWN0aW9uID09PSBQb1RhYmxlUm93VGVtcGxhdGVBcnJvd0RpcmVjdGlvbi5SaWdodDtcbiAgfVxuXG4gIGdldCBjb2x1bW5Db3VudCgpIHtcbiAgICBjb25zdCBjb2x1bW5Db3VudCA9XG4gICAgICB0aGlzLm1haW5Db2x1bW5zLmxlbmd0aCArXG4gICAgICAodGhpcy5hY3Rpb25zLmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuc2VsZWN0YWJsZSA/IDEgOiAwKSArXG4gICAgICAoIXRoaXMuaGlkZURldGFpbCAmJiB0aGlzLmNvbHVtbk1hc3RlckRldGFpbCAhPT0gdW5kZWZpbmVkID8gMSA6IDApO1xuXG4gICAgcmV0dXJuIGNvbHVtbkNvdW50IHx8IDE7XG4gIH1cblxuICBnZXQgY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWwoKSB7XG4gICAgLy8gY2FzbyB0aXZlciBhw6fDtWVzIHNlcsOhIHV0aWxpemFkbyBhIHN1YSBjb2x1bmEgcGFyYSBleGliaXIgbyBjb2x1bW5NYW5hZ2VyXG4gICAgY29uc3QgY29sdW1uTWFuYWdlciA9IHRoaXMuYWN0aW9ucy5sZW5ndGggPyAwIDogMTtcblxuICAgIHJldHVybiB0aGlzLm1haW5Db2x1bW5zLmxlbmd0aCArIDEgKyAodGhpcy5hY3Rpb25zLmxlbmd0aCA+IDAgPyAxIDogMCkgKyAodGhpcy5zZWxlY3RhYmxlID8gMSA6IDApICsgY29sdW1uTWFuYWdlcjtcbiAgfVxuXG4gIGdldCBkZXRhaWxIaWRlU2VsZWN0KCkge1xuICAgIGNvbnN0IG1hc3RlckRldGFpbCA9IHRoaXMuY29sdW1uTWFzdGVyRGV0YWlsO1xuICAgIHJldHVybiBtYXN0ZXJEZXRhaWwgJiYgbWFzdGVyRGV0YWlsLmRldGFpbCA/IG1hc3RlckRldGFpbC5kZXRhaWwuaGlkZVNlbGVjdCA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGhhc1Zpc2libGVBY3Rpb25zKCkge1xuICAgIHJldHVybiAhIXRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGZpcnN0QWN0aW9uKCk6IFBvVGFibGVBY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVBY3Rpb25zICYmIHRoaXMudmlzaWJsZUFjdGlvbnNbMF07XG4gIH1cblxuICBnZXQgaGFzRm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0l0ZW1zICYmIHRoaXMuaGFzVmlzaWJsZVN1YnRpdGxlQ29sdW1ucztcbiAgfVxuXG4gIGdldCBoYXNNYXN0ZXJEZXRhaWxDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaGFzTWFpbkNvbHVtbnMgJiYgdGhpcy5oYXNJdGVtcyAmJiAhdGhpcy5oaWRlRGV0YWlsICYmICEhKHRoaXMuY29sdW1uTWFzdGVyRGV0YWlsIHx8IHRoaXMuaGFzUm93VGVtcGxhdGUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBoYXNSb3dUZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRhYmxlUm93VGVtcGxhdGU7XG4gIH1cblxuICBnZXQgaGFzU2VsZWN0YWJsZUNvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RhYmxlICYmIHRoaXMuaGFzSXRlbXMgJiYgdGhpcy5oYXNNYWluQ29sdW1ucztcbiAgfVxuXG4gIGdldCBoYXNWYWxpZENvbHVtbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy52YWxpZENvbHVtbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGhhc1Zpc2libGVTdWJ0aXRsZUNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VidGl0bGVDb2x1bW5zLnNvbWUoY29sdW1uID0+IGNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBnZXQgaXNTaW5nbGVBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgZ2V0IHZpc2libGVBY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMgJiYgdGhpcy5hY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uICYmIGFjdGlvbi52aXNpYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBzaG93TW9yZUluZmluaXRlU2Nyb2xsKHsgdGFyZ2V0IH0pOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHRhcmdldC5vZmZzZXRIZWlnaHQgKyB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgIGlmICghdGhpcy5zaG93TW9yZURpc2FibGVkICYmIHNjcm9sbFBvc2l0aW9uID49IHRhcmdldC5zY3JvbGxIZWlnaHQgKiAodGhpcy5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIC8gMTEwKSkge1xuICAgICAgdGhpcy5vblNob3dNb3JlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuY2hlY2tDaGFuZ2VzSXRlbXMoKTtcbiAgICB0aGlzLnZlcmlmeUNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKCk7XG4gICAgLy8gUGVybWl0ZSBxdWUgb3MgY2FiZcOnYWxob3Mgc2VqYW0gY2FsY3VsYWRvcyBuYSBwcmltZWlyYSB2ZXogcXVlIG8gY29tcG9uZW50ZSB0b3JuYS1zZSB2aXPDrXZlbCxcbiAgICAvLyBldml0YW5kbyBjb20gaXNzbywgcHJvYmxlbWFzIGNvbSBUYWJzIG91IERpdnMgcXVlIGluaWNpZW0gZXNjb25kaWRhcy5cbiAgICBpZiAodGhpcy50YWJsZVdyYXBwZXJFbGVtZW50Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICYmICF0aGlzLnZpc2libGVFbGVtZW50ICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcbiAgICAgIHRoaXMuY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuICAgICAgdGhpcy52aXNpYmxlRWxlbWVudCA9IHRydWU7XG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggPiAxMzY2ID8gKHRoaXMuaXRlbVNpemUgPSA0NCkgOiAodGhpcy5pdGVtU2l6ZSA9IDMyKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHJlYWxpemFyIGJ1c2NhIG5vIHNlcnZpw6dvIGRlIGRhZG9zIHBvZGVuZG8gaW5mb3JtYXIgZmlsdHJvcyBlIGNvbSBvIHJldG9ybm8sIGF0dWFsaXphIGEgdGFiZWxhLlxuICAgKlxuICAgKiBDYXNvIG7Do28gc2VqYSBpbmZvcm1hZG8gcGFyw6JtZXRybywgbmFkYSBzZXLDoSBhZGljaW9uYWRvIGFvIEdFVCwgY29uZm9ybWUgYWJhaXhvOlxuICAgKiBgYGBcbiAgICogdXJsICsgP3BhZ2U9MSZwYWdlU2l6ZT0xMFxuICAgKiBgYGBcbiAgICogPiBPYnM6IG9zIHBhcsOibWV0cm9zIGBwYWdlYCBlIGBwYWdlU2l6ZWAgc2VtcHJlIHNlcsOjbyBjaGFtYWRvcyBpbmRlcGVuZGVudGUgZGUgc2VyIGVudmlhZG9zIG91dHJvcyBwYXLDom1ldHJvcy5cbiAgICpcbiAgICogQ2FzbyBzZWphbSBpbmZvcm1hZG9zIG9zIHBhcsOibWV0cm9zIGB7IG5hbWU6ICdKT0hOJywgYWdlOiAnMjMnIH1gLCB0b2RvcyBzZXLDo28gYWRpY2lvbmFkb3MgYW8gR0VULCBjb25mb3JtZSBhYmFpeG86XG4gICAqIGBgYFxuICAgKiB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwJm5hbWU9Sk9ITiZhZ2U9MjNcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7IHsga2V5OiB2YWx1ZSB9IH0gcXVlcnlQYXJhbXMgRm9ybWF0byBkbyBvYmpldG8gYSBzZXIgZW52aWFkby5cbiAgICogPiBQb2RlIHNlciB1dGlsaXphZGEgcXVhbHF1ZXIgc3RyaW5nIGNvbW8ga2V5LCBlIHF1YWxxdWVyIHN0cmluZyBvdSBudW1iZXIgY29tbyB2YWx1ZS5cbiAgICovXG4gIGFwcGx5RmlsdGVycyhxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogUXVlcnlQYXJhbXNUeXBlIH0pIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGNvbGFwc2EgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGNvbGFwc2FkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgY29sbGFwc2Uocm93SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3dJbmRleCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGV4cGFuZGUgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGV4cGFuZGlkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgZXhwYW5kKHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFNob3dEZXRhaWwocm93SW5kZXgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIGVzdMOjbyBzZWxlY2lvbmFkYXMuXG4gICAqL1xuICBnZXRTZWxlY3RlZFJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIG7Do28gZXN0w6NvIHNlbGVjaW9uYWRhcy5cbiAgICovXG4gIGdldFVuc2VsZWN0ZWRSb3dzKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgYXMgbGluaGFzIHF1ZSBlc3TDo28gc2VsZWNpb25hZGFzLlxuICAgKi9cbiAgdW5zZWxlY3RSb3dzKCkge1xuICAgIGNvbnN0IGNvbHVtbkRldGFpbCA9IHRoaXMubmFtZUNvbHVtbkRldGFpbDtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGRldGFpbEl0ZW1zID0gY29sdW1uRGV0YWlsID8gaXRlbVtjb2x1bW5EZXRhaWxdIDogbnVsbDtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGV0YWlsSXRlbXMpKSB7XG4gICAgICAgIGRldGFpbEl0ZW1zLmZvckVhY2goZGV0YWlsSXRlbSA9PiB7XG4gICAgICAgICAgZGV0YWlsSXRlbS4kc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGl0ZW0uJHNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlO1xuICB9XG5cbiAgY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4uZGlzYWJsZWQgPyBjb2x1bW4uZGlzYWJsZWQocm93KSA6IGZhbHNlO1xuICB9XG5cbiAgY29udGFpbnNNYXN0ZXJEZXRhaWwocm93KSB7XG4gICAgcmV0dXJuIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdICYmIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdLmxlbmd0aDtcbiAgfVxuXG4gIGV4ZWN1dGVUYWJsZUFjdGlvbihyb3c6IGFueSwgdGFibGVBY3Rpb246IGFueSkge1xuICAgIGlmICghcm93LmRpc2FibGVkICYmICF0aGlzLnZhbGlkYXRlVGFibGVBY3Rpb24ocm93LCB0YWJsZUFjdGlvbikpIHtcbiAgICAgIHRhYmxlQWN0aW9uLmFjdGlvbihyb3cpO1xuICAgICAgdGhpcy50b2dnbGVSb3dBY3Rpb24ocm93KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgdW1hIGxpbmhhIHF1ZSBlc3TDoSBzZWxlY2lvbmFkYS5cbiAgICovXG4gIHVuc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5pdGVtcy5ldmVyeShpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWNpb25hIHVtYSBsaW5oYSBkbyAncG8tdGFibGUnLlxuICAgKi9cbiAgc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCB0cnVlKTtcblxuICAgIGlmICh0aGlzLml0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IGFueSwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZvcm1hdCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0KTtcbiAgfVxuXG4gIGdldENlbGxEYXRhKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBhbnkge1xuICAgIGNvbnN0IGFycmF5UHJvcGVydHkgPSBjb2x1bW4ucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICBpZiAoYXJyYXlQcm9wZXJ0eS5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBuZXN0ZWRQcm9wZXJ0aWVzID0gYXJyYXlQcm9wZXJ0eTtcbiAgICAgIGxldCB2YWx1ZTogYW55ID0gcm93O1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBuZXN0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcHJvcGVydHldIHx8IHZhbHVlW3Byb3BlcnR5XSA9PT0gMCA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV07XG4gICAgfVxuICB9XG5cbiAgZ2V0Qm9vbGVhbkxhYmVsKHJvd1ZhbHVlOiBhbnksIGNvbHVtbkJvb2xlYW46IFBvVGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGlmIChyb3dWYWx1ZSB8fCByb3dWYWx1ZSA9PT0gZmFsc2UgfHwgcm93VmFsdWUgPT09IDApIHtcbiAgICAgIHJvd1ZhbHVlID0gY29udmVydFRvQm9vbGVhbihyb3dWYWx1ZSk7XG5cbiAgICAgIGlmIChjb2x1bW5Cb29sZWFuLmJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHJvd1ZhbHVlID8gY29sdW1uQm9vbGVhbi5ib29sZWFuLnRydWVMYWJlbCB8fCAnU2ltJyA6IGNvbHVtbkJvb2xlYW4uYm9vbGVhbi5mYWxzZUxhYmVsIHx8ICdOw6NvJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByb3dWYWx1ZSA/ICdTaW0nIDogJ07Do28nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb3dWYWx1ZTtcbiAgfVxuXG4gIGdldENvbHVtbkljb25zKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCByb3dJY29ucyA9IHRoaXMuZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pO1xuXG4gICAgaWYgKGNvbHVtbi5pY29ucykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93SWNvbnMpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lcmdlQ3VzdG9tSWNvbnMocm93SWNvbnMsIGNvbHVtbi5pY29ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ3VzdG9tSWNvbihyb3dJY29ucywgY29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm93SWNvbnM7XG4gIH1cblxuICBnZXRDb2x1bW5MYWJlbChyb3c6IGFueSwgY29sdW1uTGFiZWw6IFBvVGFibGVDb2x1bW4pOiBQb1RhYmxlQ29sdW1uTGFiZWwge1xuICAgIHJldHVybiBjb2x1bW5MYWJlbC5sYWJlbHMuZmluZChsYWJlbEl0ZW0gPT4gdGhpcy5nZXRDZWxsRGF0YShyb3csIGNvbHVtbkxhYmVsKSA9PT0gbGFiZWxJdGVtLnZhbHVlKTtcbiAgfVxuXG4gIGdldFN1YnRpdGxlQ29sdW1uKHJvdzogYW55LCBzdWJ0aXRsZUNvbHVtbjogUG9UYWJsZUNvbHVtbik6IFBvVGFibGVTdWJ0aXRsZUNvbHVtbiB7XG4gICAgcmV0dXJuIHN1YnRpdGxlQ29sdW1uLnN1YnRpdGxlcy5maW5kKHN1YnRpdGxlSXRlbSA9PiB0aGlzLmdldENlbGxEYXRhKHJvdywgc3VidGl0bGVDb2x1bW4pID09PSBzdWJ0aXRsZUl0ZW0udmFsdWUpO1xuICB9XG5cbiAgaXNTaG93TWFzdGVyRGV0YWlsKHJvdykge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5oaWRlRGV0YWlsICYmXG4gICAgICB0aGlzLm5hbWVDb2x1bW5EZXRhaWwgJiZcbiAgICAgIHJvdy4kc2hvd0RldGFpbCAmJlxuICAgICAgdGhpcy5jb250YWluc01hc3RlckRldGFpbChyb3cpICYmXG4gICAgICAhdGhpcy5oYXNSb3dUZW1wbGF0ZVxuICAgICk7XG4gIH1cblxuICBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50YWJsZVJvd1RlbXBsYXRlICYmIHRoaXMudGFibGVSb3dUZW1wbGF0ZS5wb1RhYmxlUm93VGVtcGxhdGVTaG93KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd1RlbXBsYXRlLnBvVGFibGVSb3dUZW1wbGF0ZVNob3cocm93LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvbkNsaWNrTGluayhldmVudCwgcm93LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbikpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlVmlzaWJsZUNvbHVtbnMoY29sdW1uczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuY2hhbmdlVmlzaWJsZUNvbHVtbnMuZW1pdChjb2x1bW5zKTtcbiAgfVxuXG4gIG9uQ29sdW1uUmVzdG9yZU1hbmFnZXIodmFsdWU6IEFycmF5PFN0cmluZz4pIHtcbiAgICB0aGlzLmNvbHVtblJlc3RvcmVNYW5hZ2VyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgb25WaXNpYmxlQ29sdW1uc0NoYW5nZShjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPikge1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvb2x0aXBNb3VzZUVudGVyKGV2ZW50OiBhbnksIGNvbHVtbj86IFBvVGFibGVDb2x1bW4sIHJvdz86IGFueSkge1xuICAgIHRoaXMudG9vbHRpcFRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5oaWRlVGV4dE92ZXJmbG93ICYmIGV2ZW50LnRhcmdldC5vZmZzZXRXaWR0aCA8IGV2ZW50LnRhcmdldC5zY3JvbGxXaWR0aCAmJiBldmVudC50YXJnZXQuaW5uZXJUZXh0LnRyaW0oKSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gZXZlbnQudGFyZ2V0LmlubmVyVGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgdGhpcy5jaGVja2luZ0lmQ29sdW1uSGFzVG9vbHRpcChjb2x1bW4sIHJvdyk7XG4gICAgfVxuICB9XG5cbiAgdG9vbHRpcE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRvZ2dsZVBvcHVwKHJvdywgdGFyZ2V0UmVmKSB7XG4gICAgdGhpcy5wb3B1cFRhcmdldCA9IHRhcmdldFJlZjtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMucG9Qb3B1cENvbXBvbmVudC50b2dnbGUocm93KTtcbiAgfVxuXG4gIHRyYWNrQnkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHZhbGlkYXRlVGFibGVBY3Rpb24ocm93OiBhbnksIHRhYmxlQWN0aW9uOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRhYmxlQWN0aW9uLmRpc2FibGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGFibGVBY3Rpb24uZGlzYWJsZWQocm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhYmxlQWN0aW9uLmRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIG9uT3BlbkNvbHVtbk1hbmFnZXIoKSB7XG4gICAgdGhpcy5sYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZCA9IFsuLi50aGlzLmNvbHVtbnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIHJlbW92ZSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSByZW1vdmlkby5cbiAgICogPiBBbyByZW1vdmVyIG8gaXRlbSwgYSBsaW5oYSBxdWUgbyByZXByZXNlbnRhIHNlcsOhIGV4Y2x1w61kYSBkYSB0YWJlbGEuXG4gICAqL1xuICByZW1vdmVJdGVtKGl0ZW06IG51bWJlciB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGZpbHRlckl0ZW0gPT4gZmlsdGVySXRlbSAhPT0gaXRlbSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSBpdGVtO1xuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHF1ZSBhdHVhbGl6YSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSBhdHVhbGl6YWRvLlxuICAgKiBAcGFyYW0geyB7IGtleTogdmFsdWUgfSB9IHVwZGF0ZWRJdGVtIEl0ZW0gcXVlIGZvaSBhdHVhbGl6YWRvLlxuICAgKiA+IEFvIGF0dWFsaXphciBvIGl0ZW0sIGEgaW5mb3JtYcOnw6NvIHNlcsOhIGFsdGVyYWRhIG5hIHRhYmVsYS5cbiAgICovXG4gIHVwZGF0ZUl0ZW0oaXRlbTogbnVtYmVyIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgdXBkYXRlZEl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpdGVtLCAxLCB1cGRhdGVkSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaW5kZXhJdGVtID0+IGluZGV4SXRlbSA9PT0gaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSwgdXBkYXRlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZShjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZTogUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlID0gdGhpcy50YWJsZUNvbHVtblRlbXBsYXRlcy5maW5kKFxuICAgICAgdGFibGVDb2x1bW5UZW1wbGF0ZSA9PiB0YWJsZUNvbHVtblRlbXBsYXRlLnRhcmdldFByb3BlcnR5ID09PSBjb2x1bW4ucHJvcGVydHlcbiAgICApO1xuICAgIGlmICghdGVtcGxhdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE7Do28gZm9pIHBvc3PDrXZlbCBlbmNvbnRyYXIgbyB0ZW1wbGF0ZSBwYXJhIGEgY29sdW5hOiAke2NvbHVtbi5wcm9wZXJ0eX0sIHBvciBnZW50aWxlemEgaW5mb3JtZSBhIHByb3ByaWVkYWRlIFtwLXByb3BlcnR5XWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICB9XG5cbiAgcHVibGljIHN5bmNyb25pemVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMucG9UYWJsZVRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMucG9UYWJsZVRib2R5VmlydHVhbC5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0V2lkdGhDb2x1bW5NYW5hZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk1hbmFnZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uV2lkdGhBY3Rpb25zTGVmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5BY3Rpb25MZWZ0Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKGhlaWdodCkge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChoZWlnaHQpO1xuICAgIHRoaXMuaGVpZ2h0VGFibGVDb250YWluZXIgPSB2YWx1ZSA/IHZhbHVlIC0gdGhpcy5nZXRIZWlnaHRUYWJsZUZvb3RlcigpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2V0VGFibGVPcGFjaXR5KDEpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZVdpZHRoSGVhZGVycygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICB0aGlzLmhlYWRlcnNUYWJsZS5mb3JFYWNoKGhlYWRlciA9PiB7XG4gICAgICAgICAgY29uc3QgZGl2SGVhZGVyID0gaGVhZGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcicpO1xuICAgICAgICAgIGlmIChkaXZIZWFkZXIpIHtcbiAgICAgICAgICAgIGRpdkhlYWRlci5zdHlsZS53aWR0aCA9IGAke2hlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofXB4YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNJbmZpbml0ZVNjcm9sbCgpKSB7XG4gICAgICBpZiAodGhpcy5wb1RhYmxlVGJvZHlWaXJ0dWFsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID49IHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZUluZmluaXRlU2Nyb2xsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmluZmluaXRlU2Nyb2xsID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NoYW5nZXNJdGVtcygpIHtcbiAgICBjb25zdCBjaGFuZ2VzSXRlbXMgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuaXRlbXMpO1xuXG4gICAgaWYgKGNoYW5nZXNJdGVtcyAmJiB0aGlzLnNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzSXRlbXMgJiYgIXRoaXMuaGFzQ29sdW1ucyAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmdldERlZmF1bHRDb2x1bW5zKHRoaXMuaXRlbXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdJZkNvbHVtbkhhc1Rvb2x0aXAoY29sdW1uLCByb3cpIHtcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdsaW5rJyAmJiBjb2x1bW4udG9vbHRpcCAmJiAhdGhpcy5jaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gY29sdW1uLnRvb2x0aXApO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xhYmVsJykge1xuICAgICAgY29uc3QgY29sdW1uTGFiZWwgPSB0aGlzLmdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKTtcbiAgICAgIHJldHVybiAodGhpcy50b29sdGlwVGV4dCA9IGNvbHVtbkxhYmVsPy50b29sdGlwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYm91bmNlUmVzaXplKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZXNpemUpO1xuICAgIHRoaXMudGltZW91dFJlc2l6ZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jYWxjdWxhdGVXaWR0aEhlYWRlcnMoKTtcblxuICAgICAgLy8gc2hvdyB0aGUgdGFibGVcbiAgICAgIHRoaXMuc2V0VGFibGVPcGFjaXR5KDEpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ3VzdG9tSWNvbihyb3dJY29ucywgY29sdW1uOiBQb1RhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY3VzdG9tSWNvbiA9IGNvbHVtbi5pY29ucy5maW5kKGljb24gPT4gcm93SWNvbnMgPT09IGljb24udmFsdWUpO1xuICAgIHJldHVybiBjdXN0b21JY29uID8gW2N1c3RvbUljb25dIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWlnaHRUYWJsZUZvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUZvb3RlckVsZW1lbnQgPyB0aGlzLnRhYmxlRm9vdGVyRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XG4gIH1cblxuICBwcml2YXRlIGhhc0luZmluaXRlU2Nyb2xsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluZmluaXRlU2Nyb2xsICYmXG4gICAgICB0aGlzLmhhc0l0ZW1zICYmXG4gICAgICAhdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCAmJlxuICAgICAgdGhpcy5oZWlnaHQgJiZcbiAgICAgIHRoaXMucG9UYWJsZVRib2R5VmlydHVhbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbEV2ZW50JCA9IHRoaXMuZGVmYXVsdFNlcnZpY2Uuc2Nyb2xsTGlzdGVuZXIodGhpcy5wb1RhYmxlVGJvZHlWaXJ0dWFsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgPSB0aGlzLnNjcm9sbEV2ZW50JC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5zaG93TW9yZUluZmluaXRlU2Nyb2xsKGV2ZW50KSk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VDdXN0b21JY29ucyhyb3dJY29uczogQXJyYXk8c3RyaW5nPiwgY3VzdG9tSWNvbnM6IEFycmF5PGFueT4pIHtcbiAgICBjb25zdCBtZXJnZWRJY29ucyA9IFtdO1xuXG4gICAgcm93SWNvbnMuZm9yRWFjaChjb2x1bW5WYWx1ZSA9PiB7XG4gICAgICBjb25zdCBmb3VuZEN1c3RvbUljb24gPSBjdXN0b21JY29ucy5maW5kKFxuICAgICAgICBjdXN0b21JY29uID0+IGNvbHVtblZhbHVlID09PSBjdXN0b21JY29uLmljb24gfHwgY29sdW1uVmFsdWUgPT09IGN1c3RvbUljb24udmFsdWVcbiAgICAgICk7XG4gICAgICBmb3VuZEN1c3RvbUljb24gPyBtZXJnZWRJY29ucy5wdXNoKGZvdW5kQ3VzdG9tSWNvbikgOiBtZXJnZWRJY29ucy5wdXNoKGNvbHVtblZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtZXJnZWRJY29ucztcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xpY2tMaXN0ZW5lcikge1xuICAgICAgdGhpcy5jbGlja0xpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlT3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy50YWJsZU9wYWNpdHkgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5Q2hhbmdlSGVpZ2h0SW5Gb290ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9vdGVySGVpZ2h0ICE9PSB0aGlzLmdldEhlaWdodFRhYmxlRm9vdGVyKCk7XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeUNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKCkge1xuICAgIGlmICh0aGlzLmhlaWdodCAmJiB0aGlzLnZlcmlmeUNoYW5nZUhlaWdodEluRm9vdGVyKCkpIHtcbiAgICAgIHRoaXMuZm9vdGVySGVpZ2h0ID0gdGhpcy5nZXRIZWlnaHRUYWJsZUZvb3RlcigpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVIZWlnaHRUYWJsZUNvbnRhaW5lcih0aGlzLmhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3QoY29tcGFyZSwgc2VsZWN0VmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIGNvbXBhcmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0gPT09IGNvbXBhcmUpIHtcbiAgICAgICAgICBpdGVtLiRzZWxlY3RlZCA9IHNlbGVjdFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoY29tcGFyZShpdGVtKSkge1xuICAgICAgICAgIGl0ZW0uJHNlbGVjdGVkID0gc2VsZWN0VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHBvLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhaW5lcjsgZWxzZSB0YWJsZUNvbnRhaW5lclRlbXBsYXRlXCIgcC1uby1wYWRkaW5nIFtwLW5vLXNoYWRvd109XCJjb250YWluZXIgPT09ICdib3JkZXInXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNvbnRhaW5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L3BvLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUNvbnRhaW5lclRlbXBsYXRlPlxuICA8ZGl2IFtjbGFzcy5wby10YWJsZS1jb250YWluZXItcmVsYXRpdmVdPVwibG9hZGluZ1wiPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJwby10YWJsZS1vdmVybGF5XCI+XG4gICAgICA8cG8tbG9hZGluZyBjbGFzcz1cInBvLXRhYmxlLW92ZXJsYXktY29udGVudFwiIFtwLXRleHRdPVwibGl0ZXJhbHMubG9hZGluZ0RhdGFcIj48L3BvLWxvYWRpbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtbWFpbi1jb250YWluZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgI3RhYmxlV3JhcHBlclxuICAgICAgICBjbGFzcz1cInBvLXRhYmxlLXdyYXBwZXJcIlxuICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWNvbHVtbnMtcGl4ZWxzXT1cImFsbENvbHVtbnNXaWR0aFBpeGVsc1wiXG4gICAgICAgIFtzdHlsZS5vcGFjaXR5XT1cInRhYmxlT3BhY2l0eVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJoZWlnaHRcIiBjbGFzcz1cInBvLXRhYmxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgI3BvVGFibGVUaGVhZCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1maXhlZCBwby10YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICNwb1RhYmxlVGJvZHkgY2xhc3M9XCJwby10YWJsZS1jb250YWluZXItZml4ZWQtaW5uZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWlnaHQ7IHRoZW4gdGFibGVCb2R5VGVtcGxhdGU7IGVsc2UgdGFibGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhlaWdodFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby10YWJsZS1mb290ZXJcIiAqbmdJZj1cImhhc0Zvb3RlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBzdWJ0aXRsZUNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlcIj5cbiAgICAgIDxwby10YWJsZS1zdWJ0aXRsZS1mb290ZXIgW3AtbGl0ZXJhbHNdPVwibGl0ZXJhbHNcIiBbcC1zdWJ0aXRsZXNdPVwiY29sdW1uLnN1YnRpdGxlc1wiPiA8L3BvLXRhYmxlLXN1YnRpdGxlLWZvb3Rlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2XG4gICpuZ0lmPVwiIWluZmluaXRlU2Nyb2xsXCJcbiAgY2xhc3M9XCJwby1yb3cgcG8tdGFibGUtZm9vdGVyLXNob3ctbW9yZVwiXG4gIFtjbGFzcy5wby1pbnZpc2libGVdPVwic2hvd01vcmUub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCAmJiAhaGFzU2VydmljZVwiXG4gICN0YWJsZUZvb3RlclxuPlxuICA8cG8tYnV0dG9uXG4gICAgY2xhc3M9XCJwby1vZmZzZXQteGwtNCBwby1vZmZzZXQtbGctNCBwby1vZmZzZXQtbWQtMyBwby1sZy00IHBvLW1kLTZcIlxuICAgIFtwLWRpc2FibGVkXT1cInNob3dNb3JlRGlzYWJsZWRcIlxuICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmxvYWRNb3JlRGF0YVwiXG4gICAgW3AtbG9hZGluZ109XCJsb2FkaW5nU2hvd01vcmVcIlxuICAgIChwLWNsaWNrKT1cIm9uU2hvd01vcmUoKVwiXG4gID5cbiAgPC9wby1idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUhlYWRlclRlbXBsYXRlPlxuICA8dGFibGUgY2xhc3M9XCJwby10YWJsZVwiIFtjbGFzcy5wby10YWJsZS1zdHJpcGVkXT1cInN0cmlwZWRcIiBbY2xhc3MucG8tdGFibGUtbGF5b3V0LWZpeGVkXT1cImhpZGVUZXh0T3ZlcmZsb3dcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHIgW2NsYXNzLnBvLXRhYmxlLWhlYWRlcl09XCIhaGVpZ2h0XCI+XG4gICAgICAgIDx0aCAqbmdJZj1cImhhc1NlbGVjdGFibGVDb2x1bW5cIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgPGRpdiBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiPlxuICAgICAgICAgICAgPHBvLWNoZWNrYm94XG4gICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RBbGxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICA+PC9wby1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIihoYXNNYXN0ZXJEZXRhaWxDb2x1bW4gfHwgaGFzUm93VGVtcGxhdGUpICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8IS0tIENvbHVuYSBjcmlhZGEgcGFyYSBjYXNvIGFzIGHDp8O1ZXMgZmlxdWVtIG5vIGxhZG8gZXNxdWVyZG8gLS0+XG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5BY3Rpb25MZWZ0XG4gICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxdPVwiIWlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGggKm5nSWY9XCIhaGFzTWFpbkNvbHVtbnNcIiAjbm9Db2x1bW5zSGVhZGVyIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbiBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWlnaHQ7IHRoZW4gbm9Db2x1bW5zV2l0aEhlaWdodDsgZWxzZSBub0NvbHVtbnNXaXRob3V0SGVpZ2h0XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICNoZWFkZXJzVGFibGVcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cIihzb3J0ICYmIGNvbHVtbi5zb3J0YWJsZSAhPT0gZmFsc2UpIHx8IGhhc1NlcnZpY2VcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc3VidGl0bGVdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgIChjbGljayk9XCJzb3J0Q29sdW1uKGNvbHVtbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZmxleFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZsZXgtcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50SGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHQgJiYgKGhhc1Zpc2libGVBY3Rpb25zIHx8IGhpZGVDb2x1bW5zTWFuYWdlcilcIlxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbiBwby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbFwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzVmlzaWJsZUFjdGlvbnMgJiYgaGlkZUNvbHVtbnNNYW5hZ2VyICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb24gJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1hY3Rpb25zXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5NYW5hZ2VyXG4gICAgICAgICAgKm5nSWY9XCJoYXNWYWxpZENvbHVtbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlcl09XCIhaXNTaW5nbGVBY3Rpb24gfHwgIWFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCIhaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cImhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPyBjb2x1bW5NYW5hZ2VyLm9mZnNldFdpZHRoIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICNjb2x1bW5NYW5hZ2VyVGFyZ2V0XG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1idXR0b24gcG8taWNvbiBwby1pY29uLXNldHRpbmdzIHBvLWNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgIHAtdG9vbHRpcC1wb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cImxpdGVyYWxzLmNvbHVtbnNNYW5hZ2VyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3BlbkNvbHVtbk1hbmFnZXIoKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gIDwvdGFibGU+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIHPDsyB2aXJ0dWFsIC0tPlxuPG5nLXRlbXBsYXRlICN0YWJsZUJvZHlUZW1wbGF0ZT5cbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICNwb1RhYmxlVGJvZHlWaXJ0dWFsXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFRhYmxlQ29udGFpbmVyXCJcbiAgICBbbWluQnVmZmVyUHhdPVwiaGVpZ2h0IDwgMTAwID8gMTAwIDogaGVpZ2h0XCJcbiAgICBbbWF4QnVmZmVyUHhdPVwiaGVpZ2h0IDwgMjAwID8gMjAwIDogaGVpZ2h0XCJcbiAgICAoc2Nyb2xsKT1cInN5bmNyb25pemVIb3Jpem9udGFsU2Nyb2xsKClcIlxuICA+XG4gICAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdJZj1cIiFoYXNJdGVtcyB8fCAhaGFzTWFpbkNvbHVtbnNcIj5cbiAgICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50XCIgY2xhc3M9XCJwby10YWJsZS1uby1kYXRhIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj4ge3sgbGl0ZXJhbHMubm9EYXRhIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgaXRlbXM7IGxldCByb3dJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLXJvd1wiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2luZ2xlU2VsZWN0ID8gaW5wdXRSYWRpbyA6IGlucHV0Q2hlY2tib3g7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cgfVwiPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgIDwhLS0gVmFsaWRhIHNlIGEgb3JpZ2VtIGRvIGRldGFpbCDDqSBwZWxvIGlucHV0IGRvIHBvLXRhYmxlIC0tPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uTWFzdGVyRGV0YWlsICYmICFoaWRlRGV0YWlsICYmICFoYXNSb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVuYSBjb20gYXMgYcOnw7VlcyBuYSBlc3F1ZXJkYSAocGFkcsOjbyktLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJBY3Rpb25zQ29sdW1uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSb3dUZW1wbGF0ZSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW5dPVwiY29sdW1uLnR5cGUgIT09ICdpY29uJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtY29sdW1uLWljb25zXT1cImNvbHVtbi50eXBlID09PSAnaWNvbidcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RhYmxlID8gc2VsZWN0Um93KHJvdykgOiAnamF2YXNjcmlwdDo7J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1jZWxsIG5vdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtYm9keS1lbGxpcHNpc109XCJoaWRlVGV4dE92ZXJmbG93XCJcbiAgICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwidG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJub0NvbHVtbnNIZWFkZXI/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInRvb2x0aXBNb3VzZUVudGVyKCRldmVudCwgY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY29sdW1uVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VGVtcGxhdGUoY29sdW1uKTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY2VsbFRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbFRlbXBsYXRlPy50ZW1wbGF0ZVJlZjsgY29udGV4dDogeyByb3c6IHJvdywgY29sdW1uOiBjb2x1bW4gfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRCb29sZWFuTGFiZWwoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4pIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGN1cnJlbmN5OiBjb2x1bW4uZm9ybWF0OidzeW1ib2wnOicxLjItMicgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBkYXRlOiBjb2x1bW4uZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IHBvX3RpbWU6IGNvbHVtbi5mb3JtYXQgfHwgJ0hIOm1tOnNzLmZmZmZmZicgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eSBISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdE51bWJlcihnZXRDZWxsRGF0YShyb3csIGNvbHVtbiksIGNvbHVtbi5mb3JtYXQpIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1saW5rXG4gICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCJcbiAgICAgICAgICAgICAgICAgIFtwLWFjdGlvbl09XCJjb2x1bW4uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImNoZWNrRGlzYWJsZWQocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtwLWxpbmtdPVwicm93W2NvbHVtbi5saW5rXVwiXG4gICAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIFtwLXZhbHVlXT1cImdldENlbGxEYXRhKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0xpbmsoJGV2ZW50LCByb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1saW5rPlxuXG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1pY29uXG4gICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICAgIFtwLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgW3AtaWNvbnNdPVwiZ2V0Q29sdW1uSWNvbnMocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1pY29uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidzdWJ0aXRsZSdcIj5cbiAgICAgICAgICAgICAgICAgIDxwby10YWJsZS1zdWJ0aXRsZS1jaXJjbGUgW3Atc3VidGl0bGVdPVwiZ2V0U3VidGl0bGVDb2x1bW4ocm93LCBjb2x1bW4pXCI+PC9wby10YWJsZS1zdWJ0aXRsZS1jaXJjbGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XG4gICAgICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWxhYmVsIFtwLXZhbHVlXT1cImdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKVwiPiA8L3BvLXRhYmxlLWNvbHVtbi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD57eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVuYSBkZSBhw6dvZXMgbmEgZGlyZWl0YSAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiQWN0aW9uc0NvbHVtblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDwhLS0gQ29sdW5hIHBhcmEgbsOjbyBmaWNhciBlbSBicmFuY28gbmFzIGxpbmhhcyBkZSBnZXJlbmNpYW1lbnRvIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbikgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLWVtcHR5XCI+PC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVtbiBNYW5hZ2VyIC0tPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWhhc1Zpc2libGVBY3Rpb25zICYmICFoaWRlQ29sdW1uc01hbmFnZXIgJiYgIWhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtblwiXG4gICAgICAgICAgICA+PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaGFzUm93VGVtcGxhdGUgJiYgcm93LiRzaG93RGV0YWlsICYmIGlzU2hvd1Jvd1RlbXBsYXRlKHJvdywgcm93SW5kZXgpXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1yb3ctdGVtcGxhdGUtY29udGFpbmVyXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVSb3dUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaXNTaG93TWFzdGVyRGV0YWlsKHJvdylcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWxcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgICA8cG8tdGFibGUtZGV0YWlsXG4gICAgICAgICAgICAgICAgW3Atc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlICYmICFkZXRhaWxIaWRlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbcC1kZXRhaWxdPVwiY29sdW1uTWFzdGVyRGV0YWlsLmRldGFpbFwiXG4gICAgICAgICAgICAgICAgW3AtaXRlbXNdPVwicm93W25hbWVDb2x1bW5EZXRhaWxdXCJcbiAgICAgICAgICAgICAgICAocC1zZWxlY3Qtcm93KT1cInNlbGVjdERldGFpbFJvdygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLXRhYmxlLWRldGFpbD5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGFibGU+XG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZVRlbXBsYXRlPlxuICA8dGFibGUgY2xhc3M9XCJwby10YWJsZVwiIFtjbGFzcy5wby10YWJsZS1zdHJpcGVkXT1cInN0cmlwZWRcIiBbY2xhc3MucG8tdGFibGUtbGF5b3V0LWZpeGVkXT1cImhpZGVUZXh0T3ZlcmZsb3dcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHIgW2NsYXNzLnBvLXRhYmxlLWhlYWRlcl09XCIhaGVpZ2h0XCI+XG4gICAgICAgIDx0aCAqbmdJZj1cImhhc1NlbGVjdGFibGVDb2x1bW5cIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgPGRpdiBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiPlxuICAgICAgICAgICAgPHBvLWNoZWNrYm94XG4gICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RBbGxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICA+PC9wby1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIihoYXNNYXN0ZXJEZXRhaWxDb2x1bW4gfHwgaGFzUm93VGVtcGxhdGUpICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8IS0tIENvbHVuYSBjcmlhZGEgcGFyYSBjYXNvIGFzIGHDp8O1ZXMgZmlxdWVtIG5vIGxhZG8gZXNxdWVyZG8gLS0+XG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiIWFjdGlvblJpZ2h0ICYmICh2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAxIHx8IGlzU2luZ2xlQWN0aW9uKVwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoICpuZ0lmPVwiIWhhc01haW5Db2x1bW5zXCIgI25vQ29sdW1uc0hlYWRlciBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVpZ2h0OyB0aGVuIG5vQ29sdW1uc1dpdGhIZWlnaHQ7IGVsc2Ugbm9Db2x1bW5zV2l0aG91dEhlaWdodFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIG1haW5Db2x1bW5zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAjaGVhZGVyc1RhYmxlXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZWxsaXBzaXNcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW2NsYXNzLnBvLWNsaWNrYWJsZV09XCIoc29ydCAmJiBjb2x1bW4uc29ydGFibGUgIT09IGZhbHNlKSB8fCBoYXNTZXJ2aWNlXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXN1YnRpdGxlXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAoY2xpY2spPVwic29ydENvbHVtbihjb2x1bW4pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWZsZXhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LXJpZ2h0XT1cImNvbHVtbi50eXBlID09PSAnY3VycmVuY3knIHx8IGNvbHVtbi50eXBlID09PSAnbnVtYmVyJ1wiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZsZXgtY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudEhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCJoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0ICYmIChoYXNWaXNpYmxlQWN0aW9ucyB8fCBoaWRlQ29sdW1uc01hbmFnZXIpXCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cImhhc1Zpc2libGVBY3Rpb25zICYmIGhpZGVDb2x1bW5zTWFuYWdlciAmJiBhY3Rpb25SaWdodFwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWFjdGlvbnNdPVwiIWlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgI2NvbHVtbk1hbmFnZXJcbiAgICAgICAgICAqbmdJZj1cImhhc1ZhbGlkQ29sdW1ucyAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyXT1cIiFpc1NpbmdsZUFjdGlvbiB8fCAhYWN0aW9uUmlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cIiFoZWlnaHQgJiYgY29udGFpbmVyXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb24gJiYgYWN0aW9uUmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1ib3JkZXJdPVwiaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaGVpZ2h0ICYmIHZpc2libGVBY3Rpb25zLmxlbmd0aCA/IGNvbHVtbk1hbmFnZXIub2Zmc2V0V2lkdGggOiB1bmRlZmluZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgI2NvbHVtbk1hbmFnZXJUYXJnZXRcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXRlcmFscy5jb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJ1dHRvbiBwby1pY29uIHBvLWljb24tc2V0dGluZ3MgcG8tY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuQ29sdW1uTWFuYWdlcigpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cblxuICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0lmPVwiIWhhc0l0ZW1zIHx8ICFoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5Db3VudFwiIGNsYXNzPVwicG8tdGFibGUtbm8tZGF0YSBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0RhdGEgfX0gPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01haW5Db2x1bW5zXCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3dcIiBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0YWJsZVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW5nbGVTZWxlY3QgPyBpbnB1dFJhZGlvIDogaW5wdXRDaGVja2JveDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbG8gaW5wdXQgZG8gcG8tdGFibGUgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbk1hc3RlckRldGFpbCAmJiAhaGlkZURldGFpbCAmJiAhaGFzUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGNvbSBhcyBhw6fDtWVzIG5hIGVzcXVlcmRhIChwYWRyw6NvKS0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbl09XCJjb2x1bW4udHlwZSAhPT0gJ2ljb24nXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4taWNvbnNdPVwiY29sdW1uLnR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tY2VsbCBub3RyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1ib2R5LWVsbGlwc2lzXT1cImhpZGVUZXh0T3ZlcmZsb3dcIlxuICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwidG9vbHRpcE1vdXNlRW50ZXIoJGV2ZW50LCBjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjb2x1bW5UZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VGVtcGxhdGUoY29sdW1uKTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NlbGxUZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVDZWxsVGVtcGxhdGU/LnRlbXBsYXRlUmVmOyBjb250ZXh0OiB7IHJvdzogcm93LCBjb2x1bW46IGNvbHVtbiB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Qm9vbGVhbkxhYmVsKGdldENlbGxEYXRhKHJvdywgY29sdW1uKSwgY29sdW1uKSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBjdXJyZW5jeTogY29sdW1uLmZvcm1hdDonc3ltYm9sJzonMS4yLTInIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eScgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBwb190aW1lOiBjb2x1bW4uZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGRhdGU6IGNvbHVtbi5mb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICB7eyBmb3JtYXROdW1iZXIoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4uZm9ybWF0KSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1saW5rXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiXG4gICAgICAgICAgICAgICAgW3AtYWN0aW9uXT1cImNvbHVtbi5hY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImNoZWNrRGlzYWJsZWQocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICBbcC1saW5rXT1cInJvd1tjb2x1bW4ubGlua11cIlxuICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgIFtwLXZhbHVlXT1cImdldENlbGxEYXRhKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tMaW5rKCRldmVudCwgcm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1saW5rPlxuXG4gICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4taWNvblxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIlxuICAgICAgICAgICAgICAgIFtwLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtwLWljb25zXT1cImdldENvbHVtbkljb25zKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgW3Atcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4taWNvbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgICAgICAgIDxwby10YWJsZS1zdWJ0aXRsZS1jaXJjbGUgW3Atc3VidGl0bGVdPVwiZ2V0U3VidGl0bGVDb2x1bW4ocm93LCBjb2x1bW4pXCI+PC9wby10YWJsZS1zdWJ0aXRsZS1jaXJjbGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidsYWJlbCdcIj5cbiAgICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWxhYmVsIFtwLXZhbHVlXT1cImdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKVwiPiA8L3BvLXRhYmxlLWNvbHVtbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWwtdG9nZ2xlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEZXRhaWwocm93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvVGFibGVDb2x1bW5EZXRhaWxcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bmEgZGUgYcOnb2VzIG5hIGRpcmVpdGEgLS0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bmEgcGFyYSBuw6NvIGZpY2FyIGVtIGJyYW5jbyBuYXMgbGluaGFzIGRlIGdlcmVuY2lhbWVudG8gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbikgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtcm93LW5vLWRhdGEgcG8tdGFibGUtY29sdW1uLWVtcHR5XCI+PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gQ29sdW1uIE1hbmFnZXIgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cIiFoYXNWaXNpYmxlQWN0aW9ucyAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uXCJcbiAgICAgICAgICA+PC90ZD5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8dHIgKm5nSWY9XCJoYXNNYWluQ29sdW1ucyAmJiBoYXNSb3dUZW1wbGF0ZSAmJiByb3cuJHNob3dEZXRhaWwgJiYgaXNTaG93Um93VGVtcGxhdGUocm93LCByb3dJbmRleClcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1yb3ctdGVtcGxhdGUtY29udGFpbmVyXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZVJvd1RlbXBsYXRlLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8dHIgKm5nSWY9XCJoYXNNYWluQ29sdW1ucyAmJiBpc1Nob3dNYXN0ZXJEZXRhaWwocm93KVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWxcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgPHBvLXRhYmxlLWRldGFpbFxuICAgICAgICAgICAgICBbcC1zZWxlY3RhYmxlXT1cInNlbGVjdGFibGUgJiYgIWRldGFpbEhpZGVTZWxlY3RcIlxuICAgICAgICAgICAgICBbcC1kZXRhaWxdPVwiY29sdW1uTWFzdGVyRGV0YWlsLmRldGFpbFwiXG4gICAgICAgICAgICAgIFtwLWl0ZW1zXT1cInJvd1tuYW1lQ29sdW1uRGV0YWlsXVwiXG4gICAgICAgICAgICAgIChwLXNlbGVjdC1yb3cpPVwic2VsZWN0RGV0YWlsUm93KCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby10YWJsZS1kZXRhaWw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGFibGU+XG48L25nLXRlbXBsYXRlPlxuXG48cG8tcG9wdXAgI3BvcHVwIFtwLWFjdGlvbnNdPVwiYWN0aW9uc1wiIFtwLXRhcmdldF09XCJwb3B1cFRhcmdldFwiPiA8L3BvLXBvcHVwPlxuXG48bmctdGVtcGxhdGUgI3BvVGFibGVDb2x1bW5EZXRhaWwgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCIoY29udGFpbnNNYXN0ZXJEZXRhaWwocm93KSAmJiAhaGFzUm93VGVtcGxhdGUpIHx8IChpc1Nob3dSb3dUZW1wbGF0ZShyb3csIHJvd0luZGV4KSAmJiBoYXNSb3dUZW1wbGF0ZSlcIlxuICAgIGNsYXNzPVwicG8taWNvbiBwby1jbGlja2FibGVcIlxuICAgIFtjbGFzcy5wby1pY29uLWFycm93LXVwXT1cInJvdy4kc2hvd0RldGFpbFwiXG4gICAgW2NsYXNzLnBvLWljb24tYXJyb3ctZG93bl09XCIhcm93LiRzaG93RGV0YWlsXCJcbiAgPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0UmFkaW8gbGV0LXJvdz5cbiAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwicG8tdGFibGUtcmFkaW9cIiBbY2xhc3MucG8tdGFibGUtcmFkaW8tY2hlY2tlZF09XCJyb3cuJHNlbGVjdGVkXCIgLz5cbiAgPGxhYmVsIGNsYXNzPVwicG8tdGFibGUtcmFkaW8tbGFiZWwgcG8tY2xpY2thYmxlXCIgKGNsaWNrKT1cInNlbGVjdGFibGUgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCI+PC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRDaGVja2JveCBsZXQtcm93PlxuICA8cG8tY2hlY2tib3hcbiAgICBuYW1lPVwiY2hlY2tib3hcIlxuICAgIChwLWNoYW5nZSk9XCJzZWxlY3RhYmxlID8gc2VsZWN0Um93KHJvdykgOiAnamF2YXNjcmlwdDo7J1wiXG4gICAgWyhuZ01vZGVsKV09XCJyb3cuJHNlbGVjdGVkXCJcbiAgICAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICA+PC9wby1jaGVja2JveD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudEhlYWRlclRlbXBsYXRlIGxldC1jb2x1bW4+XG4gIDxzcGFuXG4gICAgI2NvbHVtbkhlYWRlclxuICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCJcbiAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAobW91c2VlbnRlcik9XCJ0b29sdGlwTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgPlxuICAgIHt7IGNvbHVtbi5sYWJlbCB8fCAoY29sdW1uLnByb3BlcnR5IHwgdGl0bGVjYXNlKSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJzb3J0ICYmIGNvbHVtbi5zb3J0YWJsZSAhPT0gZmFsc2VcIlxuICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItaWNvbi11bnNlbGVjdGVkXT1cInNvcnRlZENvbHVtbj8ucHJvcGVydHkgIT09IGNvbHVtblwiXG4gICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1pY29uLWRlc2NlbmRpbmddPVwic29ydGVkQ29sdW1uPy5wcm9wZXJ0eSA9PT0gY29sdW1uICYmIHNvcnRlZENvbHVtbi5hc2NlbmRpbmdcIlxuICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItaWNvbi1hc2NlbmRpbmddPVwic29ydGVkQ29sdW1uPy5wcm9wZXJ0eSA9PT0gY29sdW1uICYmICFzb3J0ZWRDb2x1bW4uYXNjZW5kaW5nXCJcbiAgPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29sdW1uc1dpdGhIZWlnaHQ+XG4gIDxkaXYgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZml4ZWQtaW5uZXJcIiBbc3R5bGUud2lkdGgucHhdPVwibm9Db2x1bW5zSGVhZGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXCI+XG4gICAge3sgaGFzVmFsaWRDb2x1bW5zID8gbGl0ZXJhbHMubm9WaXNpYmxlQ29sdW1uIDogbGl0ZXJhbHMubm9Db2x1bW5zIH19XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNub0NvbHVtbnNXaXRob3V0SGVpZ2h0PlxuICB7eyBoYXNWYWxpZENvbHVtbnMgPyBsaXRlcmFscy5ub1Zpc2libGVDb2x1bW4gOiBsaXRlcmFscy5ub0NvbHVtbnMgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gVGVtcGxhdGUgZGUgYcOnw7VlcyAtLT5cbjxuZy10ZW1wbGF0ZSAjQWN0aW9uc0NvbHVtblRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICA8dGRcbiAgICAqbmdJZj1cImlzU2luZ2xlQWN0aW9uXCJcbiAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbiBwby10YWJsZS1jb2x1bW4tc2luZ2xlLWFjdGlvblwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiBhY3Rpb25SaWdodCA/IGdldFdpZHRoQ29sdW1uTWFuYWdlcigpIDogJydcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiaGVpZ2h0ICYmICFhY3Rpb25SaWdodCA/IGdldENvbHVtbldpZHRoQWN0aW9uc0xlZnQoKSA6ICcnXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiaGVpZ2h0ICYmICFhY3Rpb25SaWdodCA/IGdldENvbHVtbldpZHRoQWN0aW9uc0xlZnQoKSA6ICcnXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiZmlyc3RBY3Rpb24udmlzaWJsZSAhPT0gZmFsc2VcIlxuICAgICAgY2xhc3M9XCJwby10YWJsZS1zaW5nbGUtYWN0aW9uIHBvLWNsaWNrYWJsZVwiXG4gICAgICBbY2xhc3MucG8tdGFibGUtYWN0aW9uLWRpc2FibGVkXT1cImZpcnN0QWN0aW9uLmRpc2FibGVkID8gdmFsaWRhdGVUYWJsZUFjdGlvbihyb3csIGZpcnN0QWN0aW9uKSA6IGZhbHNlXCJcbiAgICAgIChjbGljayk9XCJleGVjdXRlVGFibGVBY3Rpb24ocm93LCBmaXJzdEFjdGlvbilcIlxuICAgID5cbiAgICAgIDxwby1pY29uICpuZ0lmPVwiZmlyc3RBY3Rpb24uaWNvblwiIGNsYXNzPVwicG8tdGFibGUtc2luZ2xlLWFjdGlvbi1jb250ZW50XCIgW3AtaWNvbl09XCJmaXJzdEFjdGlvbi5pY29uXCI+PC9wby1pY29uPlxuICAgICAge3sgZmlyc3RBY3Rpb24ubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgPC90ZD5cblxuICA8dGQgKm5nSWY9XCJ2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAxXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tYWN0aW9uc1wiPlxuICAgIDxzcGFuICNwb3B1cFRhcmdldCBjbGFzcz1cInBvLWljb24gcG8taWNvbi1tb3JlIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJ0b2dnbGVQb3B1cChyb3csIHBvcHVwVGFyZ2V0KVwiPjwvc3Bhbj5cbiAgPC90ZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxwby10YWJsZS1jb2x1bW4tbWFuYWdlclxuICAqbmdJZj1cIiFoaWRlQ29sdW1uc01hbmFnZXJcIlxuICBbcC1jb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbcC1tYXgtY29sdW1uc109XCJtYXhDb2x1bW5zXCJcbiAgW3AtdGFyZ2V0XT1cImNvbHVtbk1hbmFnZXJUYXJnZXRcIlxuICBbcC1sYXN0LXZpc2libGUtY29sdW1ucy1zZWxlY3RlZF09XCJsYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZFwiXG4gIChwLXZpc2libGUtY29sdW1ucy1jaGFuZ2UpPVwib25WaXNpYmxlQ29sdW1uc0NoYW5nZSgkZXZlbnQpXCJcbiAgKHAtY2hhbmdlLXZpc2libGUtY29sdW1ucyk9XCJvbkNoYW5nZVZpc2libGVDb2x1bW5zKCRldmVudClcIlxuICBbcC1jb2x1bW5zLWRlZmF1bHRdPVwiaW5pdGlhbENvbHVtbnNcIlxuICAocC1pbml0aWFsLWNvbHVtbnMpPVwib25Db2x1bW5SZXN0b3JlTWFuYWdlcigkZXZlbnQpXCJcbj5cbjwvcG8tdGFibGUtY29sdW1uLW1hbmFnZXI+XG4iXX0=