mis-crystal-design-system 17.0.0 → 17.0.1

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 (164) hide show
  1. package/analytics/analytics.service.d.ts +5 -1
  2. package/assets/images/close.svg +5 -0
  3. package/async-search-dropdown/async-dropdown.component.d.ts +9 -1
  4. package/async-search-dropdown/async-dropdown.module.d.ts +2 -1
  5. package/datepicker_v2/datepicker.module.d.ts +2 -1
  6. package/datepicker_v2/tz-datepicker.directive.d.ts +2 -0
  7. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +18 -1
  8. package/daterangepicker_v2/daterangepicker.module.d.ts +2 -1
  9. package/daterangepicker_v2/models/drp-config.model.d.ts +6 -0
  10. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -0
  11. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +5 -1
  12. package/dropdown/calculate-container-height.directive.d.ts +1 -1
  13. package/dropdown/dropdown.component.d.ts +4 -1
  14. package/dropdown/dropdown.module.d.ts +2 -1
  15. package/dynamic-form/dynamic-form.component.d.ts +14 -3
  16. package/dynamic-form/dynamic-form.namespace.d.ts +1 -0
  17. package/esm2022/action-list/action-list.component.mjs +1 -1
  18. package/esm2022/analytics/analytics.service.mjs +7 -6
  19. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +97 -46
  20. package/esm2022/async-search-dropdown/async-dropdown.module.mjs +5 -4
  21. package/esm2022/button/button.directive.mjs +1 -1
  22. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  23. package/esm2022/chip/chip.component.mjs +13 -13
  24. package/esm2022/datepicker_v2/datepicker.module.mjs +5 -4
  25. package/esm2022/datepicker_v2/public_api.mjs +1 -1
  26. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +21 -2
  27. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +259 -73
  28. package/esm2022/datepicker_v2/utils/index.mjs +1 -1
  29. package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +5 -4
  30. package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  31. package/esm2022/daterangepicker_v2/public_api.mjs +1 -1
  32. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +24 -3
  33. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +179 -78
  34. package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
  35. package/esm2022/dropdown/calculate-container-height.directive.mjs +5 -5
  36. package/esm2022/dropdown/dropdown.component.mjs +156 -96
  37. package/esm2022/dropdown/dropdown.module.mjs +5 -4
  38. package/esm2022/dynamic-form/dynamic-form.component.mjs +599 -216
  39. package/esm2022/dynamic-form/dynamic-form.namespace.mjs +1 -1
  40. package/esm2022/fab/fab.component.mjs +1 -1
  41. package/esm2022/filter/animations/slideFromRight.mjs +12 -0
  42. package/esm2022/filter/filter-panel/filter-panel.component.mjs +396 -0
  43. package/esm2022/filter/filters.module.mjs +66 -0
  44. package/esm2022/filter/has-value.pipe.mjs +31 -0
  45. package/esm2022/filter/index.mjs +2 -0
  46. package/esm2022/filter/mis-crystal-design-system-filter.mjs +5 -0
  47. package/esm2022/filter/public_api.mjs +4 -0
  48. package/esm2022/input/mis-input.component.mjs +1 -1
  49. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +4 -4
  50. package/esm2022/mobile-filter/mobile-filter.component.mjs +9 -7
  51. package/esm2022/modal/modal.service.mjs +1 -1
  52. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +26 -14
  53. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +14 -7
  54. package/esm2022/phone-input/phone-input.component.mjs +6 -50
  55. package/esm2022/radio-button/radio-button.component.mjs +4 -4
  56. package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
  57. package/esm2022/snackbar/snackbar.service.mjs +1 -1
  58. package/esm2022/specificdatepicker/public_api.mjs +3 -3
  59. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +39 -26
  60. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +1 -1
  61. package/esm2022/specificdatepicker/utils/index.mjs +1 -1
  62. package/esm2022/star-rating/star-rating.component.mjs +1 -1
  63. package/esm2022/table/custom-table-cell.directive.mjs +1 -1
  64. package/esm2022/table/filter/filter.component.mjs +12 -4
  65. package/esm2022/table/public_api.mjs +2 -3
  66. package/esm2022/table/sub-table/sub-table.component.mjs +1 -1
  67. package/esm2022/table/table.component.mjs +27 -11
  68. package/esm2022/timepicker/timepicker.component.mjs +16 -12
  69. package/esm2022/timerangepicker/public_api.mjs +1 -1
  70. package/esm2022/timerangepicker/timerangepicker.component.mjs +13 -7
  71. package/esm2022/toast/toast.service.mjs +1 -1
  72. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +10 -9
  73. package/esm2022/tooltip/tooltip.directive.mjs +9 -3
  74. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +1 -1
  75. package/esm2022/widgets/classes/async-widget.mjs +1 -1
  76. package/esm2022/widgets/classes/base-widget.mjs +1 -1
  77. package/esm2022/widgets/classes/sync-widget.mjs +1 -1
  78. package/fesm2022/mis-crystal-design-system-action-list.mjs +1 -1
  79. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
  80. package/fesm2022/mis-crystal-design-system-analytics.mjs +6 -5
  81. package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
  82. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +100 -48
  83. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  84. package/fesm2022/mis-crystal-design-system-button.mjs +1 -1
  85. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
  86. package/fesm2022/mis-crystal-design-system-checkbox.mjs +4 -4
  87. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  88. package/fesm2022/mis-crystal-design-system-chip.mjs +13 -13
  89. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  90. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +282 -76
  91. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  92. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +205 -83
  93. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  94. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  95. package/fesm2022/mis-crystal-design-system-dropdown.mjs +163 -102
  96. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
  97. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +598 -216
  98. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  99. package/fesm2022/mis-crystal-design-system-fab.mjs +1 -1
  100. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  101. package/fesm2022/mis-crystal-design-system-filter.mjs +503 -0
  102. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -0
  103. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +4 -4
  104. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  105. package/fesm2022/mis-crystal-design-system-input.mjs +1 -1
  106. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  107. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  108. package/fesm2022/mis-crystal-design-system-menu.mjs +1 -1
  109. package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
  110. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +9 -7
  111. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
  112. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  113. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +26 -14
  114. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  115. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +14 -7
  116. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  117. package/fesm2022/mis-crystal-design-system-phone-input.mjs +5 -49
  118. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  119. package/fesm2022/mis-crystal-design-system-radio-button.mjs +4 -4
  120. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  121. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
  122. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  123. package/fesm2022/mis-crystal-design-system-slider.mjs +1 -1
  124. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  125. package/fesm2022/mis-crystal-design-system-snackbar.mjs +1 -1
  126. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  127. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +39 -26
  128. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  129. package/fesm2022/mis-crystal-design-system-star-rating.mjs +1 -1
  130. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
  131. package/fesm2022/mis-crystal-design-system-switch.mjs +1 -1
  132. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
  133. package/fesm2022/mis-crystal-design-system-table.mjs +41 -17
  134. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  135. package/fesm2022/mis-crystal-design-system-timepicker.mjs +16 -12
  136. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  137. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +13 -7
  138. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  139. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  140. package/fesm2022/mis-crystal-design-system-tooltip.mjs +18 -11
  141. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  142. package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
  143. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +1 -1
  144. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  145. package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
  146. package/filter/animations/slideFromRight.d.ts +1 -0
  147. package/filter/filter-panel/filter-panel.component.d.ts +51 -0
  148. package/filter/filters.module.d.ts +18 -0
  149. package/filter/has-value.pipe.d.ts +12 -0
  150. package/filter/index.d.ts +1 -0
  151. package/filter/public_api.d.ts +4 -0
  152. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +3 -1
  153. package/package.json +24 -18
  154. package/phone-input/phone-input.component.d.ts +6 -15
  155. package/specificdatepicker/public_api.d.ts +2 -3
  156. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -0
  157. package/styles/mis-mixins.scss +46 -0
  158. package/styles/mis-old-icon-styles.scss +498 -0
  159. package/table/public_api.d.ts +1 -2
  160. package/timepicker/timepicker.component.d.ts +3 -2
  161. package/timerangepicker/public_api.d.ts +1 -0
  162. package/timerangepicker/timerangepicker.component.d.ts +3 -1
  163. package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
  164. package/tooltip/tooltip.directive.d.ts +3 -1
@@ -15,6 +15,8 @@ const _c4 = a0 => ({ transform: a0 });
15
15
  const _c5 = (a0, a1) => ({ "height": a0, width: a1 });
16
16
  const _c6 = (a0, a1) => ({ "position-left": a0, "position-right": a1 });
17
17
  const _c7 = (a0, a1, a2) => ({ paddingLeft: a0, border: a1, paddingRight: a2 });
18
+ const _c8 = a0 => ({ "disabled": a0 });
19
+ const _c9 = () => ({ "width": "calc(50% - 4px)" });
18
20
  function MultiSelectDropdownComponent_ng_container_4_p_3_Template(rf, ctx) { if (rf & 1) {
19
21
  i0.ɵɵelementStart(0, "p", 10);
20
22
  i0.ɵɵtext(1);
@@ -78,7 +80,7 @@ function MultiSelectDropdownComponent_ng_template_8_div_1_Template(rf, ctx) { if
78
80
  i0.ɵɵadvance();
79
81
  i0.ɵɵproperty("ngIf", !ctx_r1.isSearchInputFocused);
80
82
  i0.ɵɵadvance();
81
- i0.ɵɵproperty("ngModel", ctx_r1.searchInput)("ngStyle", i0.ɵɵpureFunction3(5, _c7, ctx_r1.isSearchInputFocused ? "12px" : "45px", ctx_r1.isSearchInputFocused ? "1px solid #0937B2" : "1px solid #e0e0e0", ctx_r1.isSearchInputFocused ? "45px" : "10px"))("placeholder", ctx_r1.isSearchInputFocused ? "" : "Search Keyword");
83
+ i0.ɵɵproperty("ngModel", ctx_r1.searchInput)("ngStyle", i0.ɵɵpureFunction3(5, _c7, ctx_r1.isSearchInputFocused ? "12px" : "45px", ctx_r1.isSearchInputFocused ? "1px solid #0937B2" : "1px solid #e0e0e0", ctx_r1.isSearchInputFocused ? "45px" : "10px"))("placeholder", ctx_r1.isSearchInputFocused ? "" : ctx_r1.searchInputPlaceholder);
82
84
  i0.ɵɵadvance();
83
85
  i0.ɵɵproperty("ngIf", ctx_r1.isSearchInputFocused);
84
86
  } }
@@ -105,6 +107,7 @@ function MultiSelectDropdownComponent_ng_template_8_div_3_Template(rf, ctx) { if
105
107
  i0.ɵɵelementEnd();
106
108
  } if (rf & 2) {
107
109
  const item_r6 = ctx.$implicit;
110
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c8, item_r6.disabled));
108
111
  i0.ɵɵadvance(3);
109
112
  i0.ɵɵproperty("checked", item_r6.checked);
110
113
  i0.ɵɵadvance(2);
@@ -123,25 +126,31 @@ function MultiSelectDropdownComponent_ng_template_8_div_4_Template(rf, ctx) { if
123
126
  } }
124
127
  function MultiSelectDropdownComponent_ng_template_8_div_5_Template(rf, ctx) { if (rf & 1) {
125
128
  const _r7 = i0.ɵɵgetCurrentView();
126
- i0.ɵɵelementStart(0, "div", 34)(1, "div", 35)(2, "mis-button", 36);
127
- i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_5_Template_mis_button_click_2_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onReset()); });
129
+ i0.ɵɵelementStart(0, "div", 34)(1, "div", 35);
130
+ i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_5_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onReset()); });
131
+ i0.ɵɵelement(2, "mis-button", 36);
132
+ i0.ɵɵelementEnd();
133
+ i0.ɵɵelementStart(3, "div", 35);
134
+ i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_5_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.applyFilters()); });
135
+ i0.ɵɵelement(4, "mis-button", 36);
128
136
  i0.ɵɵelementEnd()();
129
- i0.ɵɵelementStart(3, "div", 35)(4, "mis-button", 36);
130
- i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_5_Template_mis_button_click_4_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.applyFilters()); });
131
- i0.ɵɵelementEnd()()();
132
137
  } if (rf & 2) {
133
- i0.ɵɵadvance(2);
138
+ i0.ɵɵadvance();
139
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c9));
140
+ i0.ɵɵadvance();
134
141
  i0.ɵɵproperty("name", "Reset")("type", "Text")("width", "100%");
135
- i0.ɵɵadvance(2);
142
+ i0.ɵɵadvance();
143
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(9, _c9));
144
+ i0.ɵɵadvance();
136
145
  i0.ɵɵproperty("name", "Apply")("type", "Solid")("width", "100%");
137
146
  } }
138
147
  function MultiSelectDropdownComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
139
148
  i0.ɵɵelementStart(0, "div", 12);
140
149
  i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1_Template, 4, 9, "div", 13);
141
150
  i0.ɵɵelementStart(2, "div", 14);
142
- i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_3_Template, 7, 3, "div", 15)(4, MultiSelectDropdownComponent_ng_template_8_div_4_Template, 2, 1, "div", 16);
151
+ i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_3_Template, 7, 6, "div", 15)(4, MultiSelectDropdownComponent_ng_template_8_div_4_Template, 2, 1, "div", 16);
143
152
  i0.ɵɵelementEnd();
144
- i0.ɵɵtemplate(5, MultiSelectDropdownComponent_ng_template_8_div_5_Template, 5, 6, "div", 17);
153
+ i0.ɵɵtemplate(5, MultiSelectDropdownComponent_ng_template_8_div_5_Template, 5, 10, "div", 17);
145
154
  i0.ɵɵelementEnd();
146
155
  } if (rf & 2) {
147
156
  const ctx_r1 = i0.ɵɵnextContext();
@@ -190,6 +199,7 @@ export class MultiSelectDropdownComponent {
190
199
  sortLabels: true
191
200
  };
192
201
  this.hideApplyButton = false;
202
+ this.searchInputPlaceholder = "Search Keyword";
193
203
  this.onChange = new EventEmitter();
194
204
  }
195
205
  ngOnInit() { }
@@ -407,7 +417,7 @@ export class MultiSelectDropdownComponent {
407
417
  let _t;
408
418
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);
409
419
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popupContainer = _t.first);
410
- } }, inputs: { data: "data", label: "label", height: "height", width: "width", dropdownListHeight: "dropdownListHeight", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", enableSelectAll: "enableSelectAll", searchEnabled: "searchEnabled", showSelectedCount: "showSelectedCount", noDataMessage: "noDataMessage", options: "options", selectedItems: "selectedItems", hideApplyButton: "hideApplyButton", customLabelTemplate: "customLabelTemplate" }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "items"], ["class", "item", "tabindex", "0", 3, "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [2, "width", "calc(50% - 4px)"], [3, "click", "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
420
+ } }, inputs: { data: "data", label: "label", height: "height", width: "width", dropdownListHeight: "dropdownListHeight", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", enableSelectAll: "enableSelectAll", searchEnabled: "searchEnabled", showSelectedCount: "showSelectedCount", noDataMessage: "noDataMessage", options: "options", selectedItems: "selectedItems", hideApplyButton: "hideApplyButton", searchInputPlaceholder: "searchInputPlaceholder", customLabelTemplate: "customLabelTemplate" }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click", "ngClass"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [3, "click", "ngStyle"], [3, "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
411
421
  const _r1 = i0.ɵɵgetCurrentView();
412
422
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3, 0);
413
423
  i0.ɵɵlistener("keyup.enter", function MultiSelectDropdownComponent_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); })("click", function MultiSelectDropdownComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); });
@@ -429,11 +439,11 @@ export class MultiSelectDropdownComponent {
429
439
  i0.ɵɵproperty("ngIf", ctx.customLabelTemplate);
430
440
  i0.ɵɵadvance();
431
441
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(10, _c4, ctx.isOpen ? "rotate(180deg)" : "rotate(0deg)"));
432
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.CheckboxComponent, i5.ButtonComponent], styles: [".container[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]{height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:hover, .container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .handle[_ngcontent-%COMP%]{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container[_ngcontent-%COMP%]{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;padding:8px}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .cancel-icon[_ngcontent-%COMP%]{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px;height:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .noData[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%]{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:#0079f1;border:1px solid rgb(106,115,125)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{width:10%;display:flex;justify-content:flex-end}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:20px;height:20px}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:#fff;border-top:1px solid #e0e0e0;margin-top:auto}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .cancel[_ngcontent-%COMP%]{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .cancel[_ngcontent-%COMP%]:hover{background:#0937b20a}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .apply[_ngcontent-%COMP%]{cursor:pointer;padding:10px 32px;text-align:center;color:#fff;font-size:16px;line-height:24px;background:#0937b2;border-radius:8px}"] }); }
442
+ } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.CheckboxComponent, i5.ButtonComponent], styles: [".container[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]{height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:hover, .container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .handle[_ngcontent-%COMP%]{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container[_ngcontent-%COMP%]{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;padding:8px}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .cancel-icon[_ngcontent-%COMP%]{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px;height:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .noData[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .disabled[_ngcontent-%COMP%]{pointer-events:none;opacity:.5}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%]{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:#0079f1;border:1px solid rgb(106,115,125)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .checkbox-container-wrapper[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{width:10%;display:flex;justify-content:flex-end}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:20px;height:20px}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:#fff;border-top:1px solid #e0e0e0;margin-top:auto}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .cancel[_ngcontent-%COMP%]{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .cancel[_ngcontent-%COMP%]:hover{background:#0937b20a}.popup-container[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .apply[_ngcontent-%COMP%]{cursor:pointer;padding:10px 32px;text-align:center;color:#fff;font-size:16px;line-height:24px;background:#0937b2;border-radius:8px}"] }); }
433
443
  }
434
444
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectDropdownComponent, [{
435
445
  type: Component,
436
- args: [{ selector: "mis-multi-select-dropdown", template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ background: isOpen ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate\">\n <p class=\"text\">{{ label }}</p>\n <p *ngIf=\"showSelectedCount && localSelectedItems?.length > 0\" class=\"count\">\n {{ localSelectedItems?.length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate\">\n </ng-container>\n </ng-container>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n 'height': dropdownListHeight,\n width: dropdownListWidth\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition === 'Left',\n 'position-right': dropdownListPosition === 'Right'\n }\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : 'Search Keyword'\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of searchInput ? searchData : localData\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"(searchInput ? searchData : localData).length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"localData.length !== 0 && !hideApplyButton\" class=\"actions-container\">\n <div style=\"width: calc(50% - 4px)\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" (click)=\"onReset()\"></mis-button>\n </div>\n <div style=\"width: calc(50% - 4px)\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" (click)=\"applyFilters()\"></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:#f5f7fc;outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container .dropdown .label .text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container .dropdown .label .count{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:#f5f7fc;outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:#0079f1;border:1px solid rgb(106,115,125)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:#fff;border-top:1px solid #e0e0e0;margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:#0937b20a}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:#fff;font-size:16px;line-height:24px;background:#0937b2;border-radius:8px}\n"] }]
446
+ args: [{ selector: "mis-multi-select-dropdown", template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ background: isOpen ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate\">\n <p class=\"text\">{{ label }}</p>\n <p *ngIf=\"showSelectedCount && localSelectedItems?.length > 0\" class=\"count\">\n {{ localSelectedItems?.length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate\">\n </ng-container>\n </ng-container>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n 'height': dropdownListHeight,\n width: dropdownListWidth\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition === 'Left',\n 'position-right': dropdownListPosition === 'Right'\n }\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : searchInputPlaceholder\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of searchInput ? searchData : localData\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"(searchInput ? searchData : localData).length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"localData.length !== 0 && !hideApplyButton\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:#f5f7fc;outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container .dropdown .label .text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.container .dropdown .label .count{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container .items .disabled{pointer-events:none;opacity:.5}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:#f5f7fc;outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:#0079f1;border:1px solid rgb(106,115,125)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:#fff;border-top:1px solid #e0e0e0;margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:#0937b20a}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:#fff;font-size:16px;line-height:24px;background:#0937b2;border-radius:8px}\n"] }]
437
447
  }], () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }], { data: [{
438
448
  type: Input
439
449
  }], label: [{
@@ -462,6 +472,8 @@ export class MultiSelectDropdownComponent {
462
472
  type: Input
463
473
  }], hideApplyButton: [{
464
474
  type: Input
475
+ }], searchInputPlaceholder: [{
476
+ type: Input
465
477
  }], customLabelTemplate: [{
466
478
  type: Input
467
479
  }], onChange: [{
@@ -474,4 +486,4 @@ export class MultiSelectDropdownComponent {
474
486
  args: ["popupContainer", { static: false }]
475
487
  }] }); })();
476
488
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSelectDropdownComponent, { className: "MultiSelectDropdownComponent" }); })();
477
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL211bHRpLXNlbGVjdC1kcm9wZG93bi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWtCLE1BQU0sRUFBZSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQXVCLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lDZ0I1Riw2QkFBNkU7SUFDM0UsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsNEdBQ0Y7OztJQUpBLDZCQUEyQztJQUMzQyw0QkFBZ0I7SUFBQSxZQUFXO0lBQUEsaUJBQUk7SUFDL0Isd0ZBQTZFOzs7O0lBRDdELGVBQVc7SUFBWCxrQ0FBVztJQUN2QixjQUF5RDtJQUF6RCxvSUFBeUQ7OztJQUs3RCx3QkFDZTs7O0lBRmpCLDZCQUEwQztJQUN4QywrR0FBc0Q7Ozs7SUFBdkMsY0FBcUM7SUFBckMsNkRBQXFDOzs7O0lBbUNsRCwrQkFRQztJQUNDLDJCQUtFO0lBQ0osaUJBQU07Ozs7O0lBYU4sK0JBU0M7SUFOQyxxTkFBUyxrQ0FBMkIsS0FBQztJQU9yQywyQkFLRTtJQUNKLGlCQUFNOzs7O0lBN0NSLCtCQUFvRDtJQUNsRCx1R0FRQztJQVFELGlDQVdFO0lBRkEsQUFGQSw0TkFBaUIsa0NBQTJCLEtB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LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IE92ZXJsYXlSZWYsIE92ZXJsYXksIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXlDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtbXVsdGktc2VsZWN0LWRyb3Bkb3duXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vbXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3REcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlYXJjaElucHV0OiBzdHJpbmcgPSBcIlwiO1xuICBpc09wZW4gPSBmYWxzZTtcbiAgbG9jYWxTZWxlY3RlZEl0ZW1zOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdID0gW107XG4gIGxvY2FsRGF0YTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSA9IFtdO1xuICBzZWFyY2hEYXRhOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdID0gW107XG4gIGlzU2VhcmNoSW5wdXRGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIFNFTEVDVF9BTExfRU5VTSA9IFwiU0VMRUNUX0FMTF9FTkFCTEVEXCI7XG4gIEBJbnB1dCgpIHNldCBkYXRhKHZhbHVlczogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSkge1xuICAgIHRoaXMubG9jYWxEYXRhID0gdmFsdWVzLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrZWQ6IGZhbHNlIH07XG4gICAgfSk7XG4gIH1cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiU2VsZWN0XCI7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdEhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0V2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFBvc2l0aW9uOiBcIkxlZnRcIiB8IFwiUmlnaHRcIiA9IFwiTGVmdFwiO1xuICBASW5wdXQoKSBlbmFibGVTZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3RlZENvdW50OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5vRGF0YU1lc3NhZ2U6IHN0cmluZyA9IFwiTm8gRGF0YVwiO1xuICBASW5wdXQoKSBvcHRpb25zOiBPUFRJT05TID0ge1xuICAgIHNvcnRMYWJlbHM6IHRydWVcbiAgfTtcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSXRlbXModmFsdWVzOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdKSB7XG4gICAgdGhpcy5oYW5kbGVyU2V0TG9jYWxTZWxlY3RlZEl0ZW1zKHZhbHVlcyk7XG4gIH1cbiAgQElucHV0KCkgaGlkZUFwcGx5QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1c3RvbUxhYmVsVGVtcGxhdGUgOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3RcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJwb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGhhbmRsZXJTZXRMb2NhbFNlbGVjdGVkSXRlbXModmFsdWVzKSB7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGVkSXRlbXMgPSB2YWx1ZXM7XG4gICAgdGhpcy5sb2NhbERhdGEgPSB0aGlzLmxvY2FsRGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0gICYmIHZhbHVlcy5sZW5ndGggPT09IHRoaXMubG9jYWxEYXRhLmxlbmd0aC0xKSB7XG4gICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrZWQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZXMuc29tZShiYXNlID0+IGJhc2UudmFsdWUgPT09IGl0ZW0udmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrZWQ6IHRydWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKGl0ZW0udmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNIHx8ICF0aGlzLmhpZGVBcHBseUJ1dHRvbil7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgY2hlY2tlZDogZmFsc2UgfTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubG9jYWxEYXRhID0gdGhpcy5mb3JtYXRWYWx1ZXModGhpcy5sb2NhbERhdGEpO1xuICB9XG5cbiAgc2VhcmNoSW5wdXRGb2N1c2VkKGlzRm9jdXNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gIH1cblxuICBzZWFyY2hJbnB1dENhbmNlbGVkKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlclNldExvY2FsU2VsZWN0ZWRJdGVtcyh0aGlzLmxvY2FsU2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMubG9jYWxEYXRhID0gdGhpcy5mb3JtYXRWYWx1ZXModGhpcy5sb2NhbERhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLnBvcHVwQ29udGFpbmVyLCB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICBlbHNlIHRoaXMub25DYW5jZWwoKTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zQm90dG9tLnJldmVyc2UoKSA6IHBvc2l0aW9uc0JvdHRvbSksXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoIH0pO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCkgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0IH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZmlsdGVyQnlWYWx1ZShhcnJheTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSwgc3RyaW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXJyYXkuZmlsdGVyKG8gPT4gby5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHN0cmluZy50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cblxuICBzZWFyY2hJbnB1dE9uQ2hhbmdlKG5ld1ZhbHVlKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IG5ld1ZhbHVlO1xuICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hEYXRhID0gdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMubG9jYWxEYXRhLCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0VmFsdWVzKGFycmF5OiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdKSB7XG4gICAgbGV0IHNvcnRlZEFycmF5ID0gYXJyYXk7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zb3J0TGFiZWxzKSB7XG4gICAgICBjb25zdCBjaGVja2VkVmFsdWVzID0gYXJyYXlcbiAgICAgICAgLmZpbHRlcihhID0+IGEuY2hlY2tlZClcbiAgICAgICAgLnNvcnQoKGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtLCBiOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSkgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IGIubGFiZWwgPiBhLmxhYmVsID8gLTEgOiAwKSk7XG4gICAgICBjb25zdCB1bkNoZWNrZWRWYWx1ZXMgPSBhcnJheVxuICAgICAgICAuZmlsdGVyKGEgPT4gIWEuY2hlY2tlZClcbiAgICAgICAgLnNvcnQoKGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtLCBiOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSkgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IGIubGFiZWwgPiBhLmxhYmVsID8gLTEgOiAwKSk7XG4gICAgICBzb3J0ZWRBcnJheSA9IFsuLi5jaGVja2VkVmFsdWVzLCAuLi51bkNoZWNrZWRWYWx1ZXNdLmZpbHRlcih0ID0+IHQudmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKTtcbiAgICB9XG4gICAgaWYgKCFzb3J0ZWRBcnJheS5zb21lKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSAmJiB0aGlzLmVuYWJsZVNlbGVjdEFsbCAmJiBzb3J0ZWRBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICBzb3J0ZWRBcnJheS51bnNoaWZ0KHtcbiAgICAgICAgbGFiZWw6IFwiU2VsZWN0IGFsbFwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5TRUxFQ1RfQUxMX0VOVU0sXG4gICAgICAgIGNoZWNrZWQ6IHNvcnRlZEFycmF5LmV2ZXJ5KHkgPT4geS5jaGVja2VkKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzb3J0ZWRBcnJheTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGVkSXRlbXMoZXZlbnQsIGl0ZW06IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VsZWN0QWxsICYmIGl0ZW0udmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IHRoaXMubG9jYWxEYXRhLm1hcCh0ID0+ICh7XG4gICAgICAgIC4uLnQsXG4gICAgICAgIGNoZWNrZWQ6ICFpdGVtLmNoZWNrZWRcbiAgICAgIH0pKTtcbiAgICAgIGlmICh0aGlzLmhpZGVBcHBseUJ1dHRvbikge1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jaGVja2VkKSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgLi4udGhpcy5sb2NhbERhdGEubWFwKGEgPT4ge1xuICAgICAgICAgIGlmIChhLnZhbHVlID09PSBpdGVtLnZhbHVlIHx8IGEudmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICBjaGVja2VkOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH0pXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgLi4udGhpcy5sb2NhbERhdGEubWFwKGEgPT4ge1xuICAgICAgICAgIGlmIChhLnZhbHVlID09PSBpdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfSlcbiAgICAgIF07XG4gICAgICBpZiAodGhpcy5lbmFibGVTZWxlY3RBbGwgJiYgdGhpcy5sb2NhbERhdGEuZmlsdGVyKHIgPT4gci52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pLmV2ZXJ5KHQgPT4gdC5jaGVja2VkKSkge1xuICAgICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgICAuLi50aGlzLmxvY2FsRGF0YS5tYXAoYSA9PiB7XG4gICAgICAgICAgICBpZiAoYS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNlYXJjaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXRPbkNoYW5nZSh0aGlzLnNlYXJjaElucHV0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGlkZUFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoXG4gICAgICB0aGlzLmxvY2FsRGF0YVxuICAgICAgICAuZmlsdGVyKGEgPT4ge1xuICAgICAgICAgIHJldHVybiBhLmNoZWNrZWQgJiYgYS52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU07XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjaGVja2VkLCAuLi5kYXRhIH0gPSBpdGVtO1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KVxuICAgICk7XG4gICAgaWYgKCF0aGlzLmhpZGVBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzZXQoKSB7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChbXSk7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxvY2FsRGF0YSA9IHRoaXMubG9jYWxEYXRhLm1hcChhID0+IHtcbiAgICAgIGlmICh0aGlzLmxvY2FsU2VsZWN0ZWRJdGVtcy5zb21lKGIgPT4gYi52YWx1ZSA9PT0gYS52YWx1ZSAmJiBTdHJpbmcoYi5jaGVja2VkKSAhPT0gU3RyaW5nKGEuY2hlY2tlZCkpKSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYoYS52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0gJiYgdGhpcy5oaWRlQXBwbHlCdXR0b24pe1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgY2hlY2tlZDogZmFsc2VcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBpY29uPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPUFRJT05TIHtcbiAgc29ydExhYmVsczogYm9vbGVhbjtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBoZWlnaHQubGVuZ3RoID4gMCA/IGhlaWdodCA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aC5sZW5ndGggPiAwID8gd2lkdGggOiAnJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICNzZWxlY3RcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBpc09wZW4gPyAnI0U2RUJGNycgOiAnJyB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21MYWJlbFRlbXBsYXRlXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvcD5cbiAgICAgIDxwICpuZ0lmPVwic2hvd1NlbGVjdGVkQ291bnQgJiYgbG9jYWxTZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjb3VudFwiPlxuICAgICAgICB7eyBsb2NhbFNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB9fVxuICAgICAgPC9wPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21MYWJlbFRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGFiZWxUZW1wbGF0ZVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJoYW5kbGVcIlxuICAgICAgW25nU3R5bGVdPVwieyB0cmFuc2Zvcm06IGlzT3BlbiA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyB9XCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTMuODI1IDcuMTU4NDVMMTAgMTAuOTc1MUw2LjE3NSA3LjE1ODQ1TDUgOC4zMzM0NUwxMCAxMy4zMzM0TDE1IDguMzMzNDVMMTMuODI1IDcuMTU4NDVaXCJcbiAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2hlaWdodCc6IGRyb3Bkb3duTGlzdEhlaWdodCxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aFxuICAgIH1cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdwb3NpdGlvbi1sZWZ0JzogZHJvcGRvd25MaXN0UG9zaXRpb24gPT09ICdMZWZ0JyxcbiAgICAgICdwb3NpdGlvbi1yaWdodCc6IGRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSAnUmlnaHQnXG4gICAgfVwiXG4gID5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hFbmFibGVkXCIgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cIiFpc1NlYXJjaElucHV0Rm9jdXNlZFwiXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvblwiXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk00LjIxNTA4IDExLjE0NTZDNC4yMTUwOCA3LjMxNzkgNy4zMzcyMiA0LjIxMTY1IDExLjE5MjYgNC4yMTE2NUMxNS4wNDggNC4yMTE2NSAxOC4xNzAyIDcuMzE3OSAxOC4xNzAyIDExLjE0NTZDMTguMTcwMiAxMi42OTMxIDE3LjY1OTkgMTQuMTIyNiAxNi43OTcyIDE1LjI3NjdMMTUuMzY4NSAxNi43MDEzQzE0LjIwNDQgMTcuNTY2OCAxMi43NTkgMTguMDc5NiAxMS4xOTI2IDE4LjA3OTZDNy4zMzcyMiAxOC4wNzk2IDQuMjE1MDggMTQuOTczNCA0LjIxNTA4IDExLjE0NTZaTTE1Ljk0MjEgMTcuNzgzNUMxNC42MDIxIDE4LjczMjkgMTIuOTYyNyAxOS4yOTEzIDExLjE5MjYgMTkuMjkxM0M2LjY2OTc3IDE5LjI5MTMgMyAxNS42NDYxIDMgMTEuMTQ1NkMzIDYuNjQ1MTIgNi42Njk3NyAzIDExLjE5MjYgM0MxNS43MTU1IDMgMTkuMzg1MiA2LjY0NTEyIDE5LjM4NTIgMTEuMTQ1NkMxOS4zODUyIDEyLjkzNzEgMTguODAzNyAxNC41OTMxIDE3LjgxODQgMTUuOTM3NUwxOS44MzYxIDE3LjQwNDhDMjAuNjcwNSAxNy45MTIgMjEuNzU1NCAxOC42NTQzIDIwLjI0NTQgMjAuMjE1QzE4LjczNTMgMjEuNzc1NiAxOC4wMDk5IDIwLjY2NjMgMTcuNDk5MSAxOS44MzY0TDE1Ljk0MjEgMTcuNzgzNVpcIlxuICAgICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzEycHgnIDogJzQ1cHgnLFxuICAgICAgICAgICAgYm9yZGVyOiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcxcHggc29saWQgIzA5MzdCMicgOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICc0NXB4JyA6ICcxMHB4J1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0T25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJycgOiAnU2VhcmNoIEtleXdvcmQnXCJcbiAgICAgICAgICAoZm9jdXMpPVwic2VhcmNoSW5wdXRGb2N1c2VkKHRydWUpXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cImlzU2VhcmNoSW5wdXRGb2N1c2VkXCJcbiAgICAgICAgICBjbGFzcz1cImNhbmNlbC1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoSW5wdXRDYW5jZWxlZCgkZXZlbnQpXCJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTguODc0NDYgNy4zMjE0NEM4LjQ0NTg4IDYuODkyODUgNy43NTEgNi44OTI4NSA3LjMyMjQyIDcuMzIxNDRDNi44OTM4MyA3Ljc1MDAyIDYuODkzODMgOC40NDQ5IDcuMzIyNDIgOC44NzM0OUwxMC40NDg4IDExLjk5OTlMNy4zMjM1NyAxNS4xMjUyQzYuODk0OTggMTUuNTUzOCA2Ljg5NDk4IDE2LjI0ODYgNy4zMjM1NyAxNi42NzcyQzcuNzUyMTUgMTcuMTA1OCA4LjQ0NzAzIDE3LjEwNTggOC44NzU2MSAxNi42NzcyTDEyLjAwMDkgMTMuNTUyTDE1LjEyNjEgMTYuNjc3MkMxNS41NTQ3IDE3LjEwNTggMTYuMjQ5NiAxNy4xMDU4IDE2LjY3ODEgMTYuNjc3MkMxNy4xMDY3IDE2LjI0ODYgMTcuMTA2NyAxNS41NTM3IDE2LjY3ODEgMTUuMTI1MUwxMy41NTI5IDExLjk5OTlMMTYuNjc5MyA4Ljg3MzU0QzE3LjEwNzkgOC40NDQ5NiAxNy4xMDc5IDcuNzUwMDggMTYuNjc5MyA3LjMyMTVDMTYuMjUwNyA2Ljg5MjkxIDE1LjU1NTggNi44OTI5MSAxNS4xMjczIDcuMzIxNUwxMi4wMDA5IDEwLjQ0NzlMOC44NzQ0NiA3LjMyMTQ0WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzZBNzM3RFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVTZWxlY3RlZEl0ZW1zKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWxlY3RlZEl0ZW1zKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlYXJjaElucHV0ID8gc2VhcmNoRGF0YSA6IGxvY2FsRGF0YVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtY29udGFpbmVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPG1pcy1jaGVja2JveCBbY2hlY2tlZF09XCJpdGVtLmNoZWNrZWRcIiB0YWJpbmRleD1cIi0xXCI+PC9taXMtY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cIihzZWFyY2hJbnB1dCA/IHNlYXJjaERhdGEgOiBsb2NhbERhdGEpLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIHt7IHNlYXJjaElucHV0ID09PSBcIlwiID8gbm9EYXRhTWVzc2FnZSA6IFwiTm8gcmVzdWx0c1wiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxvY2FsRGF0YS5sZW5ndGggIT09IDAgJiYgIWhpZGVBcHBseUJ1dHRvblwiIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogY2FsYyg1MCUgLSA0cHgpXCI+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidSZXNldCdcIiBbdHlwZV09XCInVGV4dCdcIiBbd2lkdGhdPVwiJzEwMCUnXCIgKGNsaWNrKT1cIm9uUmVzZXQoKVwiPjwvbWlzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiBjYWxjKDUwJSAtIDRweClcIj5cbiAgICAgICAgPG1pcy1idXR0b24gW25hbWVdPVwiJ0FwcGx5J1wiIFt0eXBlXT1cIidTb2xpZCdcIiBbd2lkdGhdPVwiJzEwMCUnXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+PC9taXMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
489
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL211bHRpLXNlbGVjdC1kcm9wZG93bi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWtCLE1BQU0sRUFBZSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQXVCLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNnQjVGLDZCQUE2RTtJQUMzRSxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGNBQ0Y7SUFERSw0R0FDRjs7O0lBSkEsNkJBQTJDO0lBQzNDLDRCQUFnQjtJQUFBLFlBQVc7SUFBQSxpQkFBSTtJQUMvQix3RkFBNkU7Ozs7SUFEN0QsZUFBVztJQUFYLGtDQUFXO0lBQ3ZCLGNBQXlEO0lBQXpELG9JQUF5RDs7O0lBSzdELHdCQUNlOzs7SUFGakIsNkJBQTBDO0lBQ3hDLCtHQUFzRDs7OztJQUF2QyxjQUFxQztJQUFyQyw2REFBcUM7Ozs7SUFtQ2xELCtCQVFDO0lBQ0MsMkJBS0U7SUFDSixpQkFBTTs7Ozs7SUFhTiwrQkFTQztJQU5DLHFOQUFTLGtDQUEyQixLQUFDO0lBT3JDLDJCQUtFO0lBQ0osaUJBQU07Ozs7SUE3Q1IsK0JBQW9EO0lBQ2xELHVHQVFDO0lBUUQsaUNBV0U7SUFGQSxBQUZBLDROQUFpQixrQ0FBMkIs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QUFERSxpQkFBTSxFQUNGLEVBQ0Y7WUFDTiwrSEFBNkI7O1lBM0MzQixvSUFHRTtZQVFBLGNBQW1EO1lBQW5ELGlGQUFtRDtZQUdsQyxlQUEwQjtZQUExQiwrQ0FBMEI7WUFNNUIsY0FBeUI7WUFBekIsOENBQXlCO1lBT3RDLGNBQXFFO1lBQXJFLHFHQUFxRTs7O2lGRHJCOUQsNEJBQTRCO2NBTHhDLFNBQVM7MkJBQ0UsMkJBQTJCO3FIQVl4QixJQUFJO2tCQUFoQixLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBR08sYUFBYTtrQkFBekIsS0FBSztZQUdHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDSSxRQUFRO2tCQUFqQixNQUFNO1lBRWlDLGFBQWE7a0JBQXBELFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNVLGNBQWM7a0JBQTdELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkFuQ25DLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBPdmVybGF5UmVmLCBPdmVybGF5LCBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5Q29uZmlnIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLW11bHRpLXNlbGVjdC1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vbXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZWFyY2hJbnB1dDogc3RyaW5nID0gXCJcIjtcbiAgaXNPcGVuID0gZmFsc2U7XG4gIGxvY2FsU2VsZWN0ZWRJdGVtczogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSA9IFtdO1xuICBsb2NhbERhdGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10gPSBbXTtcbiAgc2VhcmNoRGF0YTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSA9IFtdO1xuICBpc1NlYXJjaElucHV0Rm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBTRUxFQ1RfQUxMX0VOVU0gPSBcIlNFTEVDVF9BTExfRU5BQkxFRFwiO1xuICBASW5wdXQoKSBzZXQgZGF0YSh2YWx1ZXM6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10pIHtcbiAgICB0aGlzLmxvY2FsRGF0YSA9IHZhbHVlcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCBjaGVja2VkOiBmYWxzZSB9O1xuICAgIH0pO1xuICB9XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBcIlNlbGVjdFwiO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RIZWlnaHQ6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFdpZHRoOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RQb3NpdGlvbjogXCJMZWZ0XCIgfCBcIlJpZ2h0XCIgPSBcIkxlZnRcIjtcbiAgQElucHV0KCkgZW5hYmxlU2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaEVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93U2VsZWN0ZWRDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBub0RhdGFNZXNzYWdlOiBzdHJpbmcgPSBcIk5vIERhdGFcIjtcbiAgQElucHV0KCkgb3B0aW9uczogT1BUSU9OUyA9IHtcbiAgICBzb3J0TGFiZWxzOiB0cnVlXG4gIH07XG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEl0ZW1zKHZhbHVlczogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSkge1xuICAgIHRoaXMuaGFuZGxlclNldExvY2FsU2VsZWN0ZWRJdGVtcyh2YWx1ZXMpO1xuICB9XG4gIEBJbnB1dCgpIGhpZGVBcHBseUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlNlYXJjaCBLZXl3b3JkXCI7XG4gIEBJbnB1dCgpIGN1c3RvbUxhYmVsVGVtcGxhdGUgOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3RcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJwb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGhhbmRsZXJTZXRMb2NhbFNlbGVjdGVkSXRlbXModmFsdWVzKSB7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGVkSXRlbXMgPSB2YWx1ZXM7XG4gICAgdGhpcy5sb2NhbERhdGEgPSB0aGlzLmxvY2FsRGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0gICYmIHZhbHVlcy5sZW5ndGggPT09IHRoaXMubG9jYWxEYXRhLmxlbmd0aC0xKSB7XG4gICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrZWQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZXMuc29tZShiYXNlID0+IGJhc2UudmFsdWUgPT09IGl0ZW0udmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrZWQ6IHRydWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKGl0ZW0udmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNIHx8ICF0aGlzLmhpZGVBcHBseUJ1dHRvbil7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgY2hlY2tlZDogZmFsc2UgfTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubG9jYWxEYXRhID0gdGhpcy5mb3JtYXRWYWx1ZXModGhpcy5sb2NhbERhdGEpO1xuICB9XG5cbiAgc2VhcmNoSW5wdXRGb2N1c2VkKGlzRm9jdXNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gIH1cblxuICBzZWFyY2hJbnB1dENhbmNlbGVkKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlclNldExvY2FsU2VsZWN0ZWRJdGVtcyh0aGlzLmxvY2FsU2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMubG9jYWxEYXRhID0gdGhpcy5mb3JtYXRWYWx1ZXModGhpcy5sb2NhbERhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLnBvcHVwQ29udGFpbmVyLCB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICBlbHNlIHRoaXMub25DYW5jZWwoKTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zQm90dG9tLnJldmVyc2UoKSA6IHBvc2l0aW9uc0JvdHRvbSksXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoIH0pO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCkgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0IH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZmlsdGVyQnlWYWx1ZShhcnJheTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSwgc3RyaW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXJyYXkuZmlsdGVyKG8gPT4gby5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHN0cmluZy50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cblxuICBzZWFyY2hJbnB1dE9uQ2hhbmdlKG5ld1ZhbHVlKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IG5ld1ZhbHVlO1xuICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hEYXRhID0gdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMubG9jYWxEYXRhLCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0VmFsdWVzKGFycmF5OiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdKSB7XG4gICAgbGV0IHNvcnRlZEFycmF5ID0gYXJyYXk7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zb3J0TGFiZWxzKSB7XG4gICAgICBjb25zdCBjaGVja2VkVmFsdWVzID0gYXJyYXlcbiAgICAgICAgLmZpbHRlcihhID0+IGEuY2hlY2tlZClcbiAgICAgICAgLnNvcnQoKGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtLCBiOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSkgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IGIubGFiZWwgPiBhLmxhYmVsID8gLTEgOiAwKSk7XG4gICAgICBjb25zdCB1bkNoZWNrZWRWYWx1ZXMgPSBhcnJheVxuICAgICAgICAuZmlsdGVyKGEgPT4gIWEuY2hlY2tlZClcbiAgICAgICAgLnNvcnQoKGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtLCBiOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSkgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IGIubGFiZWwgPiBhLmxhYmVsID8gLTEgOiAwKSk7XG4gICAgICBzb3J0ZWRBcnJheSA9IFsuLi5jaGVja2VkVmFsdWVzLCAuLi51bkNoZWNrZWRWYWx1ZXNdLmZpbHRlcih0ID0+IHQudmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKTtcbiAgICB9XG4gICAgaWYgKCFzb3J0ZWRBcnJheS5zb21lKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSAmJiB0aGlzLmVuYWJsZVNlbGVjdEFsbCAmJiBzb3J0ZWRBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICBzb3J0ZWRBcnJheS51bnNoaWZ0KHtcbiAgICAgICAgbGFiZWw6IFwiU2VsZWN0IGFsbFwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5TRUxFQ1RfQUxMX0VOVU0sXG4gICAgICAgIGNoZWNrZWQ6IHNvcnRlZEFycmF5LmV2ZXJ5KHkgPT4geS5jaGVja2VkKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzb3J0ZWRBcnJheTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGVkSXRlbXMoZXZlbnQsIGl0ZW06IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VsZWN0QWxsICYmIGl0ZW0udmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IHRoaXMubG9jYWxEYXRhLm1hcCh0ID0+ICh7XG4gICAgICAgIC4uLnQsXG4gICAgICAgIGNoZWNrZWQ6ICFpdGVtLmNoZWNrZWRcbiAgICAgIH0pKTtcbiAgICAgIGlmICh0aGlzLmhpZGVBcHBseUJ1dHRvbikge1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jaGVja2VkKSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgLi4udGhpcy5sb2NhbERhdGEubWFwKGEgPT4ge1xuICAgICAgICAgIGlmIChhLnZhbHVlID09PSBpdGVtLnZhbHVlIHx8IGEudmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICBjaGVja2VkOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH0pXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgLi4udGhpcy5sb2NhbERhdGEubWFwKGEgPT4ge1xuICAgICAgICAgIGlmIChhLnZhbHVlID09PSBpdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfSlcbiAgICAgIF07XG4gICAgICBpZiAodGhpcy5lbmFibGVTZWxlY3RBbGwgJiYgdGhpcy5sb2NhbERhdGEuZmlsdGVyKHIgPT4gci52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pLmV2ZXJ5KHQgPT4gdC5jaGVja2VkKSkge1xuICAgICAgICB0aGlzLmxvY2FsRGF0YSA9IFtcbiAgICAgICAgICAuLi50aGlzLmxvY2FsRGF0YS5tYXAoYSA9PiB7XG4gICAgICAgICAgICBpZiAoYS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNlYXJjaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXRPbkNoYW5nZSh0aGlzLnNlYXJjaElucHV0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGlkZUFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoXG4gICAgICB0aGlzLmxvY2FsRGF0YVxuICAgICAgICAuZmlsdGVyKGEgPT4ge1xuICAgICAgICAgIHJldHVybiBhLmNoZWNrZWQgJiYgYS52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU07XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjaGVja2VkLCAuLi5kYXRhIH0gPSBpdGVtO1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KVxuICAgICk7XG4gICAgaWYgKCF0aGlzLmhpZGVBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzZXQoKSB7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChbXSk7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxvY2FsRGF0YSA9IHRoaXMubG9jYWxEYXRhLm1hcChhID0+IHtcbiAgICAgIGlmICh0aGlzLmxvY2FsU2VsZWN0ZWRJdGVtcy5zb21lKGIgPT4gYi52YWx1ZSA9PT0gYS52YWx1ZSAmJiBTdHJpbmcoYi5jaGVja2VkKSAhPT0gU3RyaW5nKGEuY2hlY2tlZCkpKSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYoYS52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0gJiYgdGhpcy5oaWRlQXBwbHlCdXR0b24pe1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgY2hlY2tlZDogZmFsc2VcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86Ym9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBPUFRJT05TIHtcbiAgc29ydExhYmVsczogYm9vbGVhbjtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBoZWlnaHQubGVuZ3RoID4gMCA/IGhlaWdodCA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aC5sZW5ndGggPiAwID8gd2lkdGggOiAnJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICNzZWxlY3RcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBpc09wZW4gPyAnI0U2RUJGNycgOiAnJyB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21MYWJlbFRlbXBsYXRlXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvcD5cbiAgICAgIDxwICpuZ0lmPVwic2hvd1NlbGVjdGVkQ291bnQgJiYgbG9jYWxTZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjb3VudFwiPlxuICAgICAgICB7eyBsb2NhbFNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB9fVxuICAgICAgPC9wPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21MYWJlbFRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGFiZWxUZW1wbGF0ZVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJoYW5kbGVcIlxuICAgICAgW25nU3R5bGVdPVwieyB0cmFuc2Zvcm06IGlzT3BlbiA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyB9XCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTMuODI1IDcuMTU4NDVMMTAgMTAuOTc1MUw2LjE3NSA3LjE1ODQ1TDUgOC4zMzM0NUwxMCAxMy4zMzM0TDE1IDguMzMzNDVMMTMuODI1IDcuMTU4NDVaXCJcbiAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2hlaWdodCc6IGRyb3Bkb3duTGlzdEhlaWdodCxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aFxuICAgIH1cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdwb3NpdGlvbi1sZWZ0JzogZHJvcGRvd25MaXN0UG9zaXRpb24gPT09ICdMZWZ0JyxcbiAgICAgICdwb3NpdGlvbi1yaWdodCc6IGRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSAnUmlnaHQnXG4gICAgfVwiXG4gID5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hFbmFibGVkXCIgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cIiFpc1NlYXJjaElucHV0Rm9jdXNlZFwiXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvblwiXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk00LjIxNTA4IDExLjE0NTZDNC4yMTUwOCA3LjMxNzkgNy4zMzcyMiA0LjIxMTY1IDExLjE5MjYgNC4yMTE2NUMxNS4wNDggNC4yMTE2NSAxOC4xNzAyIDcuMzE3OSAxOC4xNzAyIDExLjE0NTZDMTguMTcwMiAxMi42OTMxIDE3LjY1OTkgMTQuMTIyNiAxNi43OTcyIDE1LjI3NjdMMTUuMzY4NSAxNi43MDEzQzE0LjIwNDQgMTcuNTY2OCAxMi43NTkgMTguMDc5NiAxMS4xOTI2IDE4LjA3OTZDNy4zMzcyMiAxOC4wNzk2IDQuMjE1MDggMTQuOTczNCA0LjIxNTA4IDExLjE0NTZaTTE1Ljk0MjEgMTcuNzgzNUMxNC42MDIxIDE4LjczMjkgMTIuOTYyNyAxOS4yOTEzIDExLjE5MjYgMTkuMjkxM0M2LjY2OTc3IDE5LjI5MTMgMyAxNS42NDYxIDMgMTEuMTQ1NkMzIDYuNjQ1MTIgNi42Njk3NyAzIDExLjE5MjYgM0MxNS43MTU1IDMgMTkuMzg1MiA2LjY0NTEyIDE5LjM4NTIgMTEuMTQ1NkMxOS4zODUyIDEyLjkzNzEgMTguODAzNyAxNC41OTMxIDE3LjgxODQgMTUuOTM3NUwxOS44MzYxIDE3LjQwNDhDMjAuNjcwNSAxNy45MTIgMjEuNzU1NCAxOC42NTQzIDIwLjI0NTQgMjAuMjE1QzE4LjczNTMgMjEuNzc1NiAxOC4wMDk5IDIwLjY2NjMgMTcuNDk5MSAxOS44MzY0TDE1Ljk0MjEgMTcuNzgzNVpcIlxuICAgICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzEycHgnIDogJzQ1cHgnLFxuICAgICAgICAgICAgYm9yZGVyOiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcxcHggc29saWQgIzA5MzdCMicgOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICc0NXB4JyA6ICcxMHB4J1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0T25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJycgOiBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoZm9jdXMpPVwic2VhcmNoSW5wdXRGb2N1c2VkKHRydWUpXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cImlzU2VhcmNoSW5wdXRGb2N1c2VkXCJcbiAgICAgICAgICBjbGFzcz1cImNhbmNlbC1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoSW5wdXRDYW5jZWxlZCgkZXZlbnQpXCJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTguODc0NDYgNy4zMjE0NEM4LjQ0NTg4IDYuODkyODUgNy43NTEgNi44OTI4NSA3LjMyMjQyIDcuMzIxNDRDNi44OTM4MyA3Ljc1MDAyIDYuODkzODMgOC40NDQ5IDcuMzIyNDIgOC44NzM0OUwxMC40NDg4IDExLjk5OTlMNy4zMjM1NyAxNS4xMjUyQzYuODk0OTggMTUuNTUzOCA2Ljg5NDk4IDE2LjI0ODYgNy4zMjM1NyAxNi42NzcyQzcuNzUyMTUgMTcuMTA1OCA4LjQ0NzAzIDE3LjEwNTggOC44NzU2MSAxNi42NzcyTDEyLjAwMDkgMTMuNTUyTDE1LjEyNjEgMTYuNjc3MkMxNS41NTQ3IDE3LjEwNTggMTYuMjQ5NiAxNy4xMDU4IDE2LjY3ODEgMTYuNjc3MkMxNy4xMDY3IDE2LjI0ODYgMTcuMTA2NyAxNS41NTM3IDE2LjY3ODEgMTUuMTI1MUwxMy41NTI5IDExLjk5OTlMMTYuNjc5MyA4Ljg3MzU0QzE3LjEwNzkgOC40NDQ5NiAxNy4xMDc5IDcuNzUwMDggMTYuNjc5MyA3LjMyMTVDMTYuMjUwNyA2Ljg5MjkxIDE1LjU1NTggNi44OTI5MSAxNS4xMjczIDcuMzIxNUwxMi4wMDA5IDEwLjQ0NzlMOC44NzQ0NiA3LjMyMTQ0WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzZBNzM3RFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVTZWxlY3RlZEl0ZW1zKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWxlY3RlZEl0ZW1zKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlYXJjaElucHV0ID8gc2VhcmNoRGF0YSA6IGxvY2FsRGF0YVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6aXRlbS5kaXNhYmxlZH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lci13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiaXRlbS5jaGVja2VkXCIgdGFiaW5kZXg9XCItMVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIGFsdD1cIm5vIGltZ1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibm9EYXRhXCIgKm5nSWY9XCIoc2VhcmNoSW5wdXQgPyBzZWFyY2hEYXRhIDogbG9jYWxEYXRhKS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICB7eyBzZWFyY2hJbnB1dCA9PT0gXCJcIiA/IG5vRGF0YU1lc3NhZ2UgOiBcIk5vIHJlc3VsdHNcIiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsb2NhbERhdGEubGVuZ3RoICE9PSAwICYmICFoaWRlQXBwbHlCdXR0b25cIiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAnY2FsYyg1MCUgLSA0cHgpJ31cIiAoY2xpY2spPVwib25SZXNldCgpXCI+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidSZXNldCdcIiBbdHlwZV09XCInVGV4dCdcIiBbd2lkdGhdPVwiJzEwMCUnXCIgPjwvbWlzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogJ2NhbGMoNTAlIC0gNHB4KSd9XCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidBcHBseSdcIiBbdHlwZV09XCInU29saWQnXCIgW3dpZHRoXT1cIicxMDAlJ1wiID48L21pcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19