@ieeesa-npm/presentation 0.33.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/esm2022/lib/assets/constants.json +13 -561
  2. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +28 -60
  3. package/esm2022/lib/components/checkbox/checkbox.component.mjs +16 -77
  4. package/esm2022/lib/components/date-picker/date-picker.component.mjs +10 -27
  5. package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +11 -6
  6. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +14 -275
  7. package/esm2022/lib/components/form-error/form-error.component.mjs +6 -6
  8. package/esm2022/lib/components/input/input.component.mjs +13 -34
  9. package/esm2022/lib/components/notification/notification.component.mjs +6 -18
  10. package/esm2022/lib/components/radio/radio.component.mjs +6 -12
  11. package/esm2022/lib/components/search/search.component.mjs +10 -62
  12. package/esm2022/lib/components/select/select.component.mjs +9 -32
  13. package/esm2022/lib/components/text-area/text-area.component.mjs +7 -65
  14. package/esm2022/lib/date-formats.mjs +2 -2
  15. package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +5 -206
  16. package/esm2022/lib/models/checkbox-option.model.mjs +2 -0
  17. package/esm2022/lib/models/confirmation-modal-data.model.mjs +2 -0
  18. package/esm2022/lib/models/date-picker.model.mjs +1 -1
  19. package/esm2022/lib/models/field-config.model.mjs +1 -1
  20. package/esm2022/lib/models/footer-config.model.mjs +1 -1
  21. package/esm2022/lib/models/form-control-types.model.mjs +9 -9
  22. package/esm2022/lib/models/header-config.model.mjs +1 -1
  23. package/esm2022/lib/models/navigation-menu.model.mjs +1 -1
  24. package/esm2022/lib/models/select-option.model.mjs +2 -0
  25. package/esm2022/lib/models/toggle-button.model.mjs +1 -1
  26. package/esm2022/lib/presentation.module.mjs +5 -5
  27. package/esm2022/lib/services/datepicker.service.mjs +4 -4
  28. package/esm2022/lib/services/form-utility.service.mjs +5 -17
  29. package/esm2022/public-api.mjs +17 -97
  30. package/fesm2022/ieeesa-npm-presentation.mjs +599 -7589
  31. package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
  32. package/lib/components/autocomplete/autocomplete.component.d.ts +13 -27
  33. package/lib/components/checkbox/checkbox.component.d.ts +6 -32
  34. package/lib/components/date-picker/date-picker.component.d.ts +2 -11
  35. package/lib/components/dynamic-form/dynamic-form.component.d.ts +11 -157
  36. package/lib/components/input/input.component.d.ts +2 -9
  37. package/lib/components/notification/notification.component.d.ts +1 -4
  38. package/lib/components/radio/radio.component.d.ts +1 -3
  39. package/lib/components/search/search.component.d.ts +4 -13
  40. package/lib/components/select/select.component.d.ts +2 -5
  41. package/lib/components/text-area/text-area.component.d.ts +2 -24
  42. package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +3 -36
  43. package/lib/models/checkbox-option.model.d.ts +6 -0
  44. package/lib/models/confirmation-modal-data.model.d.ts +5 -0
  45. package/lib/models/date-picker.model.d.ts +0 -3
  46. package/lib/models/field-config.model.d.ts +2 -54
  47. package/lib/models/footer-config.model.d.ts +0 -1
  48. package/lib/models/form-control-types.model.d.ts +1 -8
  49. package/lib/models/header-config.model.d.ts +0 -6
  50. package/lib/models/navigation-menu.model.d.ts +1 -1
  51. package/lib/models/select-option.model.d.ts +5 -0
  52. package/lib/models/toggle-button.model.d.ts +0 -4
  53. package/lib/services/form-utility.service.d.ts +1 -1
  54. package/package.json +2 -4
  55. package/public-api.d.ts +16 -95
  56. package/src/lib/assets/constants.json +13 -561
  57. package/esm2022/lib/components/accordion/accordion.component.mjs +0 -61
  58. package/esm2022/lib/components/add-form-group/add-form-group.component.mjs +0 -34
  59. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -129
  60. package/esm2022/lib/components/card/card.component.mjs +0 -74
  61. package/esm2022/lib/components/chips/chips.component.mjs +0 -162
  62. package/esm2022/lib/components/color-picker/color-picker.component.mjs +0 -314
  63. package/esm2022/lib/components/data-table/data-table.component.mjs +0 -781
  64. package/esm2022/lib/components/export-format-popover/export-format-popover.component.mjs +0 -75
  65. package/esm2022/lib/components/export-success-dialog/export-success-dialog.component.mjs +0 -39
  66. package/esm2022/lib/components/file-download/file-download.component.mjs +0 -176
  67. package/esm2022/lib/components/file-upload/file-upload.component.mjs +0 -474
  68. package/esm2022/lib/components/filter/filter.component.mjs +0 -302
  69. package/esm2022/lib/components/filter-popover/filter-popover.component.mjs +0 -198
  70. package/esm2022/lib/components/footer/footer.component.mjs +0 -55
  71. package/esm2022/lib/components/form-support-text/form-support-text.component.mjs +0 -63
  72. package/esm2022/lib/components/header/header.component.mjs +0 -193
  73. package/esm2022/lib/components/icon-button/icon-button.component.mjs +0 -38
  74. package/esm2022/lib/components/image-preview/image-preview.component.mjs +0 -30
  75. package/esm2022/lib/components/inactive-tenant/inactive-tenant.component.mjs +0 -44
  76. package/esm2022/lib/components/legend/legend.component.mjs +0 -37
  77. package/esm2022/lib/components/list/list.component.mjs +0 -199
  78. package/esm2022/lib/components/loader/loader.component.mjs +0 -22
  79. package/esm2022/lib/components/menu/menu.component.mjs +0 -75
  80. package/esm2022/lib/components/modal/modal.component.mjs +0 -166
  81. package/esm2022/lib/components/modal-confirmation/modal-confirmation.component.mjs +0 -45
  82. package/esm2022/lib/components/modal-info/modal-info.component.mjs +0 -41
  83. package/esm2022/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.mjs +0 -321
  84. package/esm2022/lib/components/navigation-menu/navigation-menu.component.mjs +0 -89
  85. package/esm2022/lib/components/policy-confirmation-dialog/policy-confirmation-dialog.component.mjs +0 -81
  86. package/esm2022/lib/components/rich-text-editor/rich-text-editor.component.mjs +0 -214
  87. package/esm2022/lib/components/slide-toggle/slide-toggle.component.mjs +0 -98
  88. package/esm2022/lib/components/stepper/stepper.component.mjs +0 -69
  89. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -210
  90. package/esm2022/lib/components/tile/tile.component.mjs +0 -70
  91. package/esm2022/lib/components/time-picker/time-picker.component.mjs +0 -59
  92. package/esm2022/lib/components/toggle-button/toggle-button.component.mjs +0 -76
  93. package/esm2022/lib/components/welcome/welcome.component.mjs +0 -85
  94. package/esm2022/lib/directives/file-upload/file-upload.directive.mjs +0 -85
  95. package/esm2022/lib/directives/focus-invalid-form-field/focus-invalid-form-field.directive.mjs +0 -34
  96. package/esm2022/lib/directives/observe-dom-change/observe-dom-change.directive.mjs +0 -54
  97. package/esm2022/lib/directives/set-background/set-background.directive.mjs +0 -53
  98. package/esm2022/lib/directives/text-truncated/text-truncated.directive.mjs +0 -72
  99. package/esm2022/lib/models/accordion-info.model.mjs +0 -14
  100. package/esm2022/lib/models/align-browsed-files.model.mjs +0 -7
  101. package/esm2022/lib/models/allowed-file-types.model.mjs +0 -8
  102. package/esm2022/lib/models/app-config-info.model.mjs +0 -2
  103. package/esm2022/lib/models/breadcrumb.model.mjs +0 -2
  104. package/esm2022/lib/models/button-type.model.mjs +0 -7
  105. package/esm2022/lib/models/card-button.model.mjs +0 -2
  106. package/esm2022/lib/models/card-info.model.mjs +0 -2
  107. package/esm2022/lib/models/chip-option.model.mjs +0 -21
  108. package/esm2022/lib/models/color-format.model.mjs +0 -13
  109. package/esm2022/lib/models/custom-properties.model.mjs +0 -14
  110. package/esm2022/lib/models/download-file.model.mjs +0 -2
  111. package/esm2022/lib/models/event-emit-type.model.mjs +0 -2
  112. package/esm2022/lib/models/export-format-popover.model.mjs +0 -10
  113. package/esm2022/lib/models/export-success-dialog.model.mjs +0 -2
  114. package/esm2022/lib/models/file-download-config.model.mjs +0 -2
  115. package/esm2022/lib/models/file-info.model.mjs +0 -2
  116. package/esm2022/lib/models/file-upload-payload-model.mjs +0 -2
  117. package/esm2022/lib/models/file-upload-presigned-url-res.model.mjs +0 -2
  118. package/esm2022/lib/models/file-upload-response.model.mjs +0 -2
  119. package/esm2022/lib/models/file-upload-status.model.mjs +0 -2
  120. package/esm2022/lib/models/filter-popover.model.mjs +0 -2
  121. package/esm2022/lib/models/filters-options.model.mjs +0 -2
  122. package/esm2022/lib/models/inactive-tenant.model.mjs +0 -2
  123. package/esm2022/lib/models/input-field-type.model.mjs +0 -8
  124. package/esm2022/lib/models/legend.model.mjs +0 -2
  125. package/esm2022/lib/models/link-type.model.mjs +0 -6
  126. package/esm2022/lib/models/list-item.model.mjs +0 -2
  127. package/esm2022/lib/models/menu.model.mjs +0 -2
  128. package/esm2022/lib/models/paginator-config.model.mjs +0 -2
  129. package/esm2022/lib/models/policy-confirmation-dialog.model.mjs +0 -2
  130. package/esm2022/lib/models/profile-menu.model.mjs +0 -8
  131. package/esm2022/lib/models/select-opened-state.model.mjs +0 -2
  132. package/esm2022/lib/models/selected-date.model.mjs +0 -2
  133. package/esm2022/lib/models/selected-time.model.mjs +0 -2
  134. package/esm2022/lib/models/slide-toggle-options.model.mjs +0 -2
  135. package/esm2022/lib/models/tab.model.mjs +0 -2
  136. package/esm2022/lib/models/table-actions.model.mjs +0 -2
  137. package/esm2022/lib/models/table-column-menu-info.model.mjs +0 -2
  138. package/esm2022/lib/models/table-schema.model.mjs +0 -20
  139. package/esm2022/lib/models/tile.model.mjs +0 -2
  140. package/esm2022/lib/pipes/safe.pipe.mjs +0 -44
  141. package/esm2022/lib/services/break-point-observer.service.mjs +0 -36
  142. package/esm2022/lib/services/file-upload.service.mjs +0 -378
  143. package/lib/components/accordion/accordion.component.d.ts +0 -30
  144. package/lib/components/add-form-group/add-form-group.component.d.ts +0 -19
  145. package/lib/components/breadcrumb/breadcrumb.component.d.ts +0 -61
  146. package/lib/components/card/card.component.d.ts +0 -39
  147. package/lib/components/chips/chips.component.d.ts +0 -374
  148. package/lib/components/color-picker/color-picker.component.d.ts +0 -88
  149. package/lib/components/data-table/data-table.component.d.ts +0 -326
  150. package/lib/components/export-format-popover/export-format-popover.component.d.ts +0 -45
  151. package/lib/components/export-success-dialog/export-success-dialog.component.d.ts +0 -24
  152. package/lib/components/file-download/file-download.component.d.ts +0 -383
  153. package/lib/components/file-upload/file-upload.component.d.ts +0 -522
  154. package/lib/components/filter/filter.component.d.ts +0 -113
  155. package/lib/components/filter-popover/filter-popover.component.d.ts +0 -84
  156. package/lib/components/footer/footer.component.d.ts +0 -37
  157. package/lib/components/form-support-text/form-support-text.component.d.ts +0 -32
  158. package/lib/components/header/header.component.d.ts +0 -86
  159. package/lib/components/icon-button/icon-button.component.d.ts +0 -21
  160. package/lib/components/image-preview/image-preview.component.d.ts +0 -11
  161. package/lib/components/inactive-tenant/inactive-tenant.component.d.ts +0 -21
  162. package/lib/components/legend/legend.component.d.ts +0 -13
  163. package/lib/components/list/list.component.d.ts +0 -95
  164. package/lib/components/loader/loader.component.d.ts +0 -7
  165. package/lib/components/menu/menu.component.d.ts +0 -36
  166. package/lib/components/modal/modal.component.d.ts +0 -75
  167. package/lib/components/modal-confirmation/modal-confirmation.component.d.ts +0 -24
  168. package/lib/components/modal-info/modal-info.component.d.ts +0 -23
  169. package/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.d.ts +0 -130
  170. package/lib/components/navigation-menu/navigation-menu.component.d.ts +0 -45
  171. package/lib/components/policy-confirmation-dialog/policy-confirmation-dialog.component.d.ts +0 -46
  172. package/lib/components/rich-text-editor/rich-text-editor.component.d.ts +0 -75
  173. package/lib/components/slide-toggle/slide-toggle.component.d.ts +0 -45
  174. package/lib/components/stepper/stepper.component.d.ts +0 -46
  175. package/lib/components/tabs/tabs.component.d.ts +0 -86
  176. package/lib/components/tile/tile.component.d.ts +0 -39
  177. package/lib/components/time-picker/time-picker.component.d.ts +0 -20
  178. package/lib/components/toggle-button/toggle-button.component.d.ts +0 -51
  179. package/lib/components/welcome/welcome.component.d.ts +0 -41
  180. package/lib/directives/file-upload/file-upload.directive.d.ts +0 -42
  181. package/lib/directives/focus-invalid-form-field/focus-invalid-form-field.directive.d.ts +0 -18
  182. package/lib/directives/observe-dom-change/observe-dom-change.directive.d.ts +0 -23
  183. package/lib/directives/set-background/set-background.directive.d.ts +0 -28
  184. package/lib/directives/text-truncated/text-truncated.directive.d.ts +0 -30
  185. package/lib/models/accordion-info.model.d.ts +0 -12
  186. package/lib/models/align-browsed-files.model.d.ts +0 -4
  187. package/lib/models/allowed-file-types.model.d.ts +0 -5
  188. package/lib/models/app-config-info.model.d.ts +0 -16
  189. package/lib/models/breadcrumb.model.d.ts +0 -6
  190. package/lib/models/button-type.model.d.ts +0 -4
  191. package/lib/models/card-button.model.d.ts +0 -6
  192. package/lib/models/card-info.model.d.ts +0 -8
  193. package/lib/models/chip-option.model.d.ts +0 -25
  194. package/lib/models/color-format.model.d.ts +0 -13
  195. package/lib/models/custom-properties.model.d.ts +0 -11
  196. package/lib/models/download-file.model.d.ts +0 -4
  197. package/lib/models/event-emit-type.model.d.ts +0 -5
  198. package/lib/models/export-format-popover.model.d.ts +0 -15
  199. package/lib/models/export-success-dialog.model.d.ts +0 -8
  200. package/lib/models/file-download-config.model.d.ts +0 -9
  201. package/lib/models/file-info.model.d.ts +0 -12
  202. package/lib/models/file-upload-payload-model.d.ts +0 -10
  203. package/lib/models/file-upload-presigned-url-res.model.d.ts +0 -35
  204. package/lib/models/file-upload-response.model.d.ts +0 -13
  205. package/lib/models/file-upload-status.model.d.ts +0 -8
  206. package/lib/models/filter-popover.model.d.ts +0 -24
  207. package/lib/models/filters-options.model.d.ts +0 -4
  208. package/lib/models/inactive-tenant.model.d.ts +0 -5
  209. package/lib/models/input-field-type.model.d.ts +0 -5
  210. package/lib/models/legend.model.d.ts +0 -6
  211. package/lib/models/link-type.model.d.ts +0 -3
  212. package/lib/models/list-item.model.d.ts +0 -24
  213. package/lib/models/menu.model.d.ts +0 -9
  214. package/lib/models/paginator-config.model.d.ts +0 -5
  215. package/lib/models/policy-confirmation-dialog.model.d.ts +0 -13
  216. package/lib/models/profile-menu.model.d.ts +0 -4
  217. package/lib/models/select-opened-state.model.d.ts +0 -4
  218. package/lib/models/selected-date.model.d.ts +0 -4
  219. package/lib/models/selected-time.model.d.ts +0 -4
  220. package/lib/models/slide-toggle-options.model.d.ts +0 -6
  221. package/lib/models/tab.model.d.ts +0 -6
  222. package/lib/models/table-actions.model.d.ts +0 -8
  223. package/lib/models/table-column-menu-info.model.d.ts +0 -6
  224. package/lib/models/table-schema.model.d.ts +0 -32
  225. package/lib/models/tile.model.d.ts +0 -12
  226. package/lib/pipes/safe.pipe.d.ts +0 -16
  227. package/lib/services/break-point-observer.service.d.ts +0 -21
  228. package/lib/services/file-upload.service.d.ts +0 -462
@@ -10,7 +10,6 @@ import { SearchComponent } from '../../components/search/search.component';
10
10
  import { FormErrorComponent } from '../../components/form-error/form-error.component';
11
11
  import * as dropdownInfo from '../../assets/constants.json';
12
12
  import { FormControlType } from '../../models/form-control-types.model';
13
- import { FormSupportTextComponent } from '../form-support-text/form-support-text.component';
14
13
  import * as i0 from "@angular/core";
15
14
  import * as i1 from "../../services/form-utility.service";
16
15
  import * as i2 from "@angular/common";
@@ -33,8 +32,6 @@ export class SelectComponent {
33
32
  */
34
33
  set isSortNeeded(value) {
35
34
  this._isSortNeeded = value;
36
- if (!value && this.unsortedDropdownOptions)
37
- this._dropdownOptions = this.unsortedDropdownOptions;
38
35
  }
39
36
  get isSortNeeded() {
40
37
  return this._isSortNeeded;
@@ -44,14 +41,7 @@ export class SelectComponent {
44
41
  * @memberof SelectComponent
45
42
  */
46
43
  set dropdownOptions(value) {
47
- if (value)
48
- this.unsortedDropdownOptions = [...value];
49
- if (this.isSortNeeded && Array.isArray(value)) {
50
- this._dropdownOptions = this.arraySorting(value);
51
- }
52
- else {
53
- this._dropdownOptions = value;
54
- }
44
+ this._dropdownOptions = value;
55
45
  }
56
46
  get dropdownOptions() {
57
47
  return this._dropdownOptions;
@@ -67,9 +57,6 @@ export class SelectComponent {
67
57
  else {
68
58
  this._selectedOptions = value;
69
59
  }
70
- if (this.config?.controlName && this.group) {
71
- this.group.get(this.config.controlName)?.setValue(this._selectedOptions);
72
- }
73
60
  }
74
61
  get selectedOptions() {
75
62
  return this._selectedOptions;
@@ -94,7 +81,6 @@ export class SelectComponent {
94
81
  this.placeholderText = this.dropdownInfo.dropdown.placeholderText;
95
82
  this.optionSelected = new EventEmitter();
96
83
  this.optionSearched = new EventEmitter();
97
- this.dropdownOpenedChange = new EventEmitter();
98
84
  }
99
85
  /**
100
86
  * Initializes components instance properties from config if its defined otherwise creates form group and config.
@@ -111,16 +97,14 @@ export class SelectComponent {
111
97
  this.isMultiSelect = this.config.isMultiSelect ?? false;
112
98
  this.dropdownOptions =
113
99
  this.config?.dropdownOptions ?? this.dropdownOptions;
114
- this.selectedOptions = this.selectedOptions ?? this.config?.value;
115
- this.selectLabel = this.config?.label ?? this.selectLabel;
100
+ this.selectedOptions = this.config?.value;
101
+ this.selectLabel = this.config?.label ?? '';
116
102
  this.placeholderText = this.config?.placeholder ?? this.placeholderText;
117
103
  this.isMultiSelect = this.config?.isMultiSelect ?? this.isMultiSelect;
118
104
  this.isDisabled = this.config?.disabled ?? this.isDisabled;
119
105
  this.searchType = this.config?.searchType ?? this.searchType;
120
106
  this.isSortNeeded = this.config?.isSortNeeded ?? this.isSortNeeded;
121
- this.isSearch = this.config?.isSearch ?? this.isSearch;
122
107
  }
123
- this.group.get(this.config.controlName)?.setValue(this.selectedOptions);
124
108
  }
125
109
  /**
126
110
  * Emits selected option on changes the selected option.
@@ -137,10 +121,6 @@ export class SelectComponent {
137
121
  */
138
122
  updateArrowDirection(opened) {
139
123
  this.arrowDirection = opened;
140
- this.dropdownOpenedChange.emit({
141
- controlName: this.config?.controlName,
142
- opened: opened,
143
- });
144
124
  }
145
125
  /**
146
126
  * Takes the index and the current option as arguments and needs to return the unique identifier for this option.
@@ -215,15 +195,15 @@ export class SelectComponent {
215
195
  });
216
196
  return sort;
217
197
  }
218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
219
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectComponent, isStandalone: true, selector: "ieeesa-select", inputs: { isSortNeeded: "isSortNeeded", dropdownOptions: "dropdownOptions", selectedOptions: "selectedOptions", formControlName: "formControlName", isMultiLevel: "isMultiLevel", isLabelAlignedLeft: "isLabelAlignedLeft", selectLabel: "selectLabel", isMultiSelect: "isMultiSelect", isDisabled: "isDisabled", isSearch: "isSearch", placeholderText: "placeholderText" }, outputs: { optionSelected: "optionSelected", optionSearched: "optionSearched", dropdownOpenedChange: "dropdownOpenedChange" }, providers: [
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SelectComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: SelectComponent, isStandalone: true, selector: "ieeesa-select", inputs: { isSortNeeded: "isSortNeeded", dropdownOptions: "dropdownOptions", selectedOptions: "selectedOptions", formControlName: "formControlName", isMultiLevel: "isMultiLevel", isLabelAlignedLeft: "isLabelAlignedLeft", selectLabel: "selectLabel", isMultiSelect: "isMultiSelect", isDisabled: "isDisabled", isSearch: "isSearch", placeholderText: "placeholderText" }, outputs: { optionSelected: "optionSelected", optionSearched: "optionSearched" }, providers: [
220
200
  {
221
201
  provide: MAT_SELECT_CONFIG,
222
202
  useValue: { overlayPanelClass: 'ieeesa-select-overlay-pane' },
223
203
  },
224
- ], viewQueries: [{ propertyName: "formFields", predicate: SearchComponent, descendants: true }], ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-select-field__label\">{{\r\n selectLabel\r\n }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [aria-label]=\"config.ariaLabel ?? ''\"\r\n [aria-describedby]=\"config.ariaDescribedById ?? ''\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch && arrowDirection\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n [compareWith]=\"comparer\"\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [aria-label]=\"config.ariaLabel ?? ''\"\r\n [aria-describedby]=\"config.ariaDescribedById ?? ''\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch && arrowDirection\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\r\n <ieeesa-form-support-text\r\n [formGroup]=\"group\"\r\n [config]=\"config\"\r\n ></ieeesa-form-support-text>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-select-field .ieeesa-body-sm-14{font-size:.75rem;color:#49454f}.ieeesa-select-field .mat-mdc-form-field{width:-webkit-fill-available;width:-moz-available}.ieeesa-select-field .mat-mdc-select-min-line{font-family:Calibri Regular;color:#1c1b1f;font-size:1rem}.ieeesa-select-field .mat-mdc-select-placeholder{color:#63666a}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(0);-webkit-transform:rotate(0);border-bottom:5px solid #49454f}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(0);-webkit-transform:rotate(0);border-top:5px solid #49454f}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-select-field .mat-mdc-text-field-wrapper{height:40px}.ieeesa-select-field .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:9px}.ieeesa-select-field:has(.mdc-text-field--focused):not(.mdc-text-field--disabled) .ieeesa-select-field__label{color:#00629b!important}.ieeesa-select-field .mat-mdc-text-field-wrapper{background:#fff!important;border-top:1px solid #878b8f;border-right:1px solid #878b8f;border-left:1px solid #878b8f;border-radius:4px}.ieeesa-select-field .mdc-text-field--focused{border-top:2px solid #00629b;border-right:2px solid #00629b;border-left:2px solid #00629b}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#00629b!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#878b8f!important}.ieeesa-select-field:has(.mdc-text-field--invalid) .ieeesa-select-field__label{color:#ba0c2f!important}.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled{border-top:2px solid #ba0c2f;border-right:2px solid #ba0c2f;border-left:2px solid #ba0c2f}.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:before,.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #ba0c2f!important}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay{background:#fff!important}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled{border:none}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple:before,.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple:after{border:none}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mat-mdc-select-arrow-wrapper{display:none}.ieeesa-select-field .ieeesa-select-field:has(.mdc-text-field--disabled) .ieeesa-select-field__label__label{color:#49454f!important}.ieeesa-select-overlay-pane.cdk-overlay-pane{min-width:auto}.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px 1px #00000026,0 1px 2px #0000004d}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#1c1b1f!important;font-family:Calibri Regular!important;font-size:1rem!important}.ieeesa-select-overlay-pane .mdc-list-item--selected{background-color:#dae9f1!important}.ieeesa-select-overlay-pane .mat-mdc-option{padding:0 1.125em 0 .625em;min-height:1.75em}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-mdc-option:hover{background-color:#dae9f1!important}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}:has(.ieeesa-select-overlay-pane) .mat-mdc-select-placeholder{color:#878b8f}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchTerm", "supportMessage", "searchType", "minCharacterToSearch"], outputs: ["searchValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: FormSupportTextComponent, selector: "ieeesa-form-support-text", inputs: ["formGroup", "config"], outputs: ["supportTextLinkClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
204
+ ], viewQueries: [{ propertyName: "formFields", predicate: SearchComponent, descendants: true }], ngImport: i0, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-select-field__label\">{{ selectLabel }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-select-field .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-line-ripple--active:after{opacity:0}.ieeesa-select-field .mat-mdc-select-placeholder{font-size:1em;font-weight:400;color:#000}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fffbfe}.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay,.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fffbfe}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#000}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchType", "searchTerm"], outputs: ["searchValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormErrorComponent, selector: "ieeesa-form-error", inputs: ["formGroup", "config", "submitResponse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }], encapsulation: i0.ViewEncapsulation.None }); }
225
205
  }
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: SelectComponent, decorators: [{
227
207
  type: Component,
228
208
  args: [{ selector: 'ieeesa-select', standalone: true, imports: [
229
209
  CommonModule,
@@ -234,13 +214,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
234
214
  MatInputModule,
235
215
  MatIconModule,
236
216
  MatSelectModule,
237
- FormSupportTextComponent,
238
217
  ], providers: [
239
218
  {
240
219
  provide: MAT_SELECT_CONFIG,
241
220
  useValue: { overlayPanelClass: 'ieeesa-select-overlay-pane' },
242
221
  },
243
- ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-select-field__label\">{{\r\n selectLabel\r\n }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [aria-label]=\"config.ariaLabel ?? ''\"\r\n [aria-describedby]=\"config.ariaDescribedById ?? ''\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch && arrowDirection\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n [compareWith]=\"comparer\"\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [aria-label]=\"config.ariaLabel ?? ''\"\r\n [aria-describedby]=\"config.ariaDescribedById ?? ''\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch && arrowDirection\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\r\n <ieeesa-form-support-text\r\n [formGroup]=\"group\"\r\n [config]=\"config\"\r\n ></ieeesa-form-support-text>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-select-field .ieeesa-body-sm-14{font-size:.75rem;color:#49454f}.ieeesa-select-field .mat-mdc-form-field{width:-webkit-fill-available;width:-moz-available}.ieeesa-select-field .mat-mdc-select-min-line{font-family:Calibri Regular;color:#1c1b1f;font-size:1rem}.ieeesa-select-field .mat-mdc-select-placeholder{color:#63666a}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(0);-webkit-transform:rotate(0);border-bottom:5px solid #49454f}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(0);-webkit-transform:rotate(0);border-top:5px solid #49454f}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-select-field .mat-mdc-text-field-wrapper{height:40px}.ieeesa-select-field .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:9px}.ieeesa-select-field:has(.mdc-text-field--focused):not(.mdc-text-field--disabled) .ieeesa-select-field__label{color:#00629b!important}.ieeesa-select-field .mat-mdc-text-field-wrapper{background:#fff!important;border-top:1px solid #878b8f;border-right:1px solid #878b8f;border-left:1px solid #878b8f;border-radius:4px}.ieeesa-select-field .mdc-text-field--focused{border-top:2px solid #00629b;border-right:2px solid #00629b;border-left:2px solid #00629b}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#00629b!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#878b8f!important}.ieeesa-select-field:has(.mdc-text-field--invalid) .ieeesa-select-field__label{color:#ba0c2f!important}.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled{border-top:2px solid #ba0c2f;border-right:2px solid #ba0c2f;border-left:2px solid #ba0c2f}.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:before,.ieeesa-select-field:has(.mdc-text-field--invalid) .mdc-text-field--filled .mdc-line-ripple:after{border-bottom:2px solid #ba0c2f!important}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay{background:#fff!important}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled{border:none}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple:before,.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple:after{border:none}.ieeesa-select-field .mdc-text-field--filled.mdc-text-field--disabled .mat-mdc-select-arrow-wrapper{display:none}.ieeesa-select-field .ieeesa-select-field:has(.mdc-text-field--disabled) .ieeesa-select-field__label__label{color:#49454f!important}.ieeesa-select-overlay-pane.cdk-overlay-pane{min-width:auto}.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px 1px #00000026,0 1px 2px #0000004d}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#1c1b1f!important;font-family:Calibri Regular!important;font-size:1rem!important}.ieeesa-select-overlay-pane .mdc-list-item--selected{background-color:#dae9f1!important}.ieeesa-select-overlay-pane .mat-mdc-option{padding:0 1.125em 0 .625em;min-height:1.75em}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-mdc-option:hover{background-color:#dae9f1!important}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}:has(.ieeesa-select-overlay-pane) .mat-mdc-select-placeholder{color:#878b8f}\n"] }]
222
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n [formGroup]=\"group\"\r\n class=\"ieeesa-select-field\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n isLabelAlignedLeft\r\n ? 'ieeesa-select-field__label-left'\r\n : 'ieeesa-select-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-select-field__label\">{{ selectLabel }}</mat-label>\r\n <mat-form-field\r\n [ngClass]=\"\r\n arrowDirection\r\n ? 'ieeesa-select-field__arrow-up'\r\n : 'ieeesa-select-field__arrow-down'\r\n \"\r\n >\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [multiple]=\"isMultiSelect\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n [compareWith]=\"comparer\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n\r\n <mat-select\r\n disableOptionCentering\r\n *ngIf=\"!isMultiSelect\"\r\n [multiple]=\"isMultiSelect\"\r\n (openedChange)=\"updateArrowDirection($event)\"\r\n (selectionChange)=\"onChange($event.value)\"\r\n [formControlName]=\"config.controlName\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholderText\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isSearch\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"onOptionSearch($event)\"\r\n ></ieeesa-search>\r\n <ng-container\r\n *ngIf=\"!isMultiLevel\"\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: dropdownOptions }\"\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"isMultiLevel\">\r\n <mat-optgroup\r\n *ngFor=\"let option of dropdownOptions; trackBy: trackByFn\"\r\n [label]=\"option.name\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropdownOptionsTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: option.option_groups }\"\r\n >\r\n </ng-container>\r\n </mat-optgroup>\r\n </ng-container>\r\n <ng-template #dropdownOptionsTemplateRef let-options=\"data\">\r\n <mat-option\r\n *ngFor=\"let option of options; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane{width:100%;min-width:312px}.ieeesa-select-field .mat-mdc-form-field{width:-webkit-fill-available}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ieeesa-select-field__arrow-up .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow{border:solid #595758;border-width:0 2px 2px 0;display:inline-block;padding:4px;margin:0 10px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ieeesa-select-field__arrow-down .mat-mdc-select-arrow svg{display:none}.ieeesa-select-field__label-left{display:flex}.ieeesa-select-field__label-top{display:block}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:after{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-text-field--filled .mdc-line-ripple:before{border-bottom-color:#918f90!important}.ieeesa-select-field .mdc-line-ripple--active:after{opacity:0}.ieeesa-select-field .mat-mdc-select-placeholder{font-size:1em;font-weight:400;color:#000}.ieeesa-select-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fffbfe}.ieeesa-select-field .mdc-text-field--focused,.ieeesa-select-field .mat-mdc-form-field-focus-overlay,.ieeesa-select-overlay-pane .mat-mdc-select-panel{background-color:#fffbfe}.ieeesa-select-overlay-pane .mdc-list-item__primary-text{color:#000}.ieeesa-select-overlay-pane .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:0;float:right}.ieeesa-select-overlay-pane .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-select-overlay-pane .ieeesa-search-field .mat-mdc-form-field-infix{width:100%}\n"] }]
244
223
  }], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { formFields: [{
245
224
  type: ViewChildren,
246
225
  args: [SearchComponent]
@@ -270,7 +249,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
270
249
  type: Output
271
250
  }], optionSearched: [{
272
251
  type: Output
273
- }], dropdownOpenedChange: [{
274
- type: Output
275
252
  }] } });
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixZQUFZLEVBRVosaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxZQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7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aEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1BVF9TRUxFQ1RfQ09ORklHLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICdAaWVlZXNhLW5wbS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWFyY2hUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC5tb2RlbCc7XHJcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBkcm9wZG93bkluZm8gZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1VdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybVN1cHBvcnRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1zdXBwb3J0LXRleHQvZm9ybS1zdXBwb3J0LXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0T3BlbmVkU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wZW5lZC1zdGF0ZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIHNlbGVjdCB0eXBlIG9mIGZvcm0gZmlsZWQgYW5kIHNlbGVjdCB0eXBlIGlzIGNvbmZpZ3VyYWJsZSB0byBzdXBwb3J0IHNpbmdsZSBzZWxlY3Rpb24gb3IgbXVsdGktc2VsZWN0aW9uIHdpdGggbXVsdGlsZXZlbCBvciBzaW5nbGUgbGV2ZWwuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFNlbGVjdENvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7QWZ0ZXJWaWV3SW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXNlbGVjdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTZWFyY2hDb21wb25lbnQsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybUVycm9yQ29tcG9uZW50LFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgRm9ybVN1cHBvcnRUZXh0Q29tcG9uZW50LFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE1BVF9TRUxFQ1RfQ09ORklHLFxyXG4gICAgICB1c2VWYWx1ZTogeyBvdmVybGF5UGFuZWxDbGFzczogJ2llZWVzYS1zZWxlY3Qtb3ZlcmxheS1wYW5lJyB9LFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oU2VhcmNoQ29tcG9uZW50KVxyXG4gIGZvcm1GaWVsZHMhOiBRdWVyeUxpc3Q8U2VhcmNoQ29tcG9uZW50PjtcclxuICBncm91cCE6IEZvcm1Hcm91cDtcclxuICBjb25maWchOiBGaWVsZENvbmZpZztcclxuICBhcnJvd0RpcmVjdGlvbiA9IGZhbHNlO1xyXG4gIHNlYXJjaFR5cGUgPSBTZWFyY2hUeXBlLkFVVE87XHJcbiAgc29ydGVkT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZHJvcGRvd25JbmZvOiBhbnkgPSBkcm9wZG93bkluZm87XHJcbiAgcHJpdmF0ZSBfZHJvcGRvd25PcHRpb25zITogU2VsZWN0T3B0aW9uW107XHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRPcHRpb25zITogU2VsZWN0T3B0aW9uIHwgU2VsZWN0T3B0aW9uW107XHJcbiAgcHJpdmF0ZSBfaXNTb3J0TmVlZGVkID0gdHJ1ZTtcclxuICBwcml2YXRlIHVuc29ydGVkRHJvcGRvd25PcHRpb25zITogU2VsZWN0T3B0aW9uW107XHJcbiAgLyoqXHJcbiAgICogVGFrZXMgaXNTb3J0TmVlZGVkIGFzIGlucHV0IHRvIGNoZWNrIGlmIHRoZSBwYXNzZWQgb3B0aW9ucyBhcmUgc29ydGVkIG9yIG5vdC5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgaXNTb3J0TmVlZGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NvcnROZWVkZWQgPSB2YWx1ZTtcclxuICAgIGlmICghdmFsdWUgJiYgdGhpcy51bnNvcnRlZERyb3Bkb3duT3B0aW9ucylcclxuICAgICAgdGhpcy5fZHJvcGRvd25PcHRpb25zID0gdGhpcy51bnNvcnRlZERyb3Bkb3duT3B0aW9ucztcclxuICB9XHJcbiAgZ2V0IGlzU29ydE5lZWRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1NvcnROZWVkZWQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRyb3Bkb3duIG9wdGlvbnMgZm9yIHNlbGVjdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZHJvcGRvd25PcHRpb25zKHZhbHVlOiBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLnVuc29ydGVkRHJvcGRvd25PcHRpb25zID0gWy4uLnZhbHVlXTtcclxuICAgIGlmICh0aGlzLmlzU29ydE5lZWRlZCAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLl9kcm9wZG93bk9wdGlvbnMgPSB0aGlzLmFycmF5U29ydGluZyh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kcm9wZG93bk9wdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRyb3Bkb3duT3B0aW9ucygpOiBTZWxlY3RPcHRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZHJvcGRvd25PcHRpb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzZWxlY3RlZCBvcHRpb25cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VsZWN0ZWRPcHRpb25zKHZhbHVlOiBTZWxlY3RPcHRpb24gfCBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHRoaXMuYXJyYXlTb3J0aW5nKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUgJiYgdGhpcy5ncm91cCkge1xyXG4gICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk/LnNldFZhbHVlKHRoaXMuX3NlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKTogU2VsZWN0T3B0aW9uIHwgU2VsZWN0T3B0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9ucztcclxuICB9XHJcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lID0gJ3NlbGVjdCc7XHJcbiAgQElucHV0KCkgaXNNdWx0aUxldmVsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMYWJlbEFsaWduZWRMZWZ0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0TGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBpc011bHRpU2VsZWN0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzU2VhcmNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXJUZXh0ID0gdGhpcy5kcm9wZG93bkluZm8uZHJvcGRvd24ucGxhY2Vob2xkZXJUZXh0O1xyXG4gIEBPdXRwdXQoKSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBvcHRpb25TZWFyY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBkcm9wZG93bk9wZW5lZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3BlbmVkU3RhdGU+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgY29tcG9uZW50cyBpbnN0YW5jZSBwcm9wZXJ0aWVzIGZyb20gY29uZmlnIGlmIGl0cyBkZWZpbmVkIG90aGVyd2lzZSBjcmVhdGVzIGZvcm0gZ3JvdXAgYW5kIGNvbmZpZy5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUFycm93RGlyZWN0aW9uKGZhbHNlKTtcclxuICAgIHRoaXMuZ3JvdXAgPVxyXG4gICAgICB0aGlzLmdyb3VwID8/IHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1Hcm91cCh0aGlzLmZvcm1Db250cm9sTmFtZSk7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgICBGb3JtQ29udHJvbFR5cGUuU0VMRUNUXHJcbiAgICAgICk7XHJcbiAgICBpZiAodGhpcy5jb25maWcpIHtcclxuICAgICAgdGhpcy5pc011bHRpU2VsZWN0ID0gdGhpcy5jb25maWcuaXNNdWx0aVNlbGVjdCA/PyBmYWxzZTtcclxuICAgICAgdGhpcy5kcm9wZG93bk9wdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnPy5kcm9wZG93bk9wdGlvbnMgPz8gdGhpcy5kcm9wZG93bk9wdGlvbnM7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMgPz8gdGhpcy5jb25maWc/LnZhbHVlO1xyXG4gICAgICB0aGlzLnNlbGVjdExhYmVsID0gdGhpcy5jb25maWc/LmxhYmVsID8/IHRoaXMuc2VsZWN0TGFiZWw7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJUZXh0ID0gdGhpcy5jb25maWc/LnBsYWNlaG9sZGVyID8/IHRoaXMucGxhY2Vob2xkZXJUZXh0O1xyXG4gICAgICB0aGlzLmlzTXVsdGlTZWxlY3QgPSB0aGlzLmNvbmZpZz8uaXNNdWx0aVNlbGVjdCA/PyB0aGlzLmlzTXVsdGlTZWxlY3Q7XHJcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuY29uZmlnPy5kaXNhYmxlZCA/PyB0aGlzLmlzRGlzYWJsZWQ7XHJcbiAgICAgIHRoaXMuc2VhcmNoVHlwZSA9IHRoaXMuY29uZmlnPy5zZWFyY2hUeXBlID8/IHRoaXMuc2VhcmNoVHlwZTtcclxuICAgICAgdGhpcy5pc1NvcnROZWVkZWQgPSB0aGlzLmNvbmZpZz8uaXNTb3J0TmVlZGVkID8/IHRoaXMuaXNTb3J0TmVlZGVkO1xyXG4gICAgICB0aGlzLmlzU2VhcmNoID0gdGhpcy5jb25maWc/LmlzU2VhcmNoID8/IHRoaXMuaXNTZWFyY2g7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlbGVjdGVkIG9wdGlvbiBvbiBjaGFuZ2VzIHRoZSBzZWxlY3RlZCBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hhbmdlKGV2ZW50OiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzZWxlY3QgZHJvcGRvd24gYXJyb3cgZGlyZWN0aW9uXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBvcGVuZWRcclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlQXJyb3dEaXJlY3Rpb24ob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmFycm93RGlyZWN0aW9uID0gb3BlbmVkO1xyXG4gICAgdGhpcy5kcm9wZG93bk9wZW5lZENoYW5nZS5lbWl0KHtcclxuICAgICAgY29udHJvbE5hbWU6IHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSxcclxuICAgICAgb3BlbmVkOiBvcGVuZWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGN1cnJlbnQgb3B0aW9uIGFzIGFyZ3VtZW50cyBhbmQgbmVlZHMgdG8gcmV0dXJuIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IG9wdGlvblxyXG4gICAqIEByZXR1cm4geyhudW1iZXIgfCBzdHJpbmcpfVxyXG4gICAqIEBtZW1iZXJvZiBTZWxlY3RDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb24pOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG9wdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlYXJjaGVkIG9wdGlvbnMgb24gZmlsdGVyaW5nIG9wdGlvbnMgaW4gc2VsZWN0IGRyb3Bkb3duXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRleHRcclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25PcHRpb25TZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wdGlvblNlYXJjaGVkLmVtaXQoc2VhcmNoVGV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wYXJlcyB0aGUgdHdvIHBhc3NlZCBvcHRpb25zXHJcbiAgICogQHBhcmFtIHthbnl9IG9wdGlvbjFcclxuICAgKiBAcGFyYW0ge2FueX0gb3B0aW9uMlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29tcGFyZXIob3B0aW9uMTogYW55LCBvcHRpb24yOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvcHRpb24xICYmIG9wdGlvbjIgPyBvcHRpb24xLmlkID09PSBvcHRpb24yLmlkIDogb3B0aW9uMSA9PT0gb3B0aW9uMjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnRzIHRoZSBvcHRpb25zXHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU29ydE5lZWRlZCAmJiBBcnJheS5pc0FycmF5KHRoaXMuZHJvcGRvd25PcHRpb25zKSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duT3B0aW9ucyA9IHRoaXMuYXJyYXlTb3J0aW5nKHRoaXMuZHJvcGRvd25PcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnRzIHRoZSBvcHRpb25zIGJ5IHVzaW5nIGFycmF5U29ydGluZyBtZXRob2RcclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgc29ydE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1NvcnROZWVkZWQgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRyb3Bkb3duT3B0aW9ucykpIHtcclxuICAgICAgdGhpcy5zb3J0ZWRPcHRpb25zID0gdGhpcy5hcnJheVNvcnRpbmcodGhpcy5kcm9wZG93bk9wdGlvbnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zb3J0ZWRPcHRpb25zID0gdGhpcy5kcm9wZG93bk9wdGlvbnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVdGlsaXR5IG1ldGhvZCB0byBzb3J0IGRyb3Bkb3duIG9wdGlvbnMgaW4gYXNjZW5kaW5nIG9yZGVyLlxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3B0aW9uW119IGxpc3RcclxuICAgKiBAcmV0dXJuIHtTZWxlY3RPcHRpb25bXX1cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgYXJyYXlTb3J0aW5nKGxpc3Q6IFNlbGVjdE9wdGlvbltdKTogU2VsZWN0T3B0aW9uW10ge1xyXG4gICAgY29uc3QgY2xvbmVkVmFsdWUgPSBbLi4ubGlzdF07XHJcbiAgICBjb25zdCBzb3J0ID0gY2xvbmVkVmFsdWUuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBpZiAoYS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGIubmFtZS50b0xvd2VyQ2FzZSgpKSByZXR1cm4gMDtcclxuICAgICAgaWYgKGEubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYWxsJykgcmV0dXJuIC0xO1xyXG4gICAgICBpZiAoYi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhbGwnKSByZXR1cm4gMTtcclxuICAgICAgaWYgKGEubmFtZS50b0xvd2VyQ2FzZSgpIDwgYi5uYW1lLnRvTG93ZXJDYXNlKCkpIHJldHVybiAtMTtcclxuICAgICAgaWYgKGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkpIHJldHVybiAxO1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNvcnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICBjbGFzcz1cImllZWVzYS1zZWxlY3QtZmllbGRcIlxyXG4gICpuZ0lmPVwiZ3JvdXBcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgaXNMYWJlbEFsaWduZWRMZWZ0XHJcbiAgICAgID8gJ2llZWVzYS1zZWxlY3QtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1zZWxlY3QtZmllbGRfX2xhYmVsLXRvcCdcclxuICBcIlxyXG4+XHJcbiAgPG1hdC1sYWJlbCBjbGFzcz1cImllZWVzYS1ib2R5LXNtLTE0IGllZWVzYS1zZWxlY3QtZmllbGRfX2xhYmVsXCI+e3tcclxuICAgIHNlbGVjdExhYmVsXHJcbiAgfX08L21hdC1sYWJlbD5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBhcnJvd0RpcmVjdGlvblxyXG4gICAgICAgID8gJ2llZWVzYS1zZWxlY3QtZmllbGRfX2Fycm93LXVwJ1xyXG4gICAgICAgIDogJ2llZWVzYS1zZWxlY3QtZmllbGRfX2Fycm93LWRvd24nXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmdcclxuICAgICAgKm5nSWY9XCJpc011bHRpU2VsZWN0XCJcclxuICAgICAgKG9wZW5lZENoYW5nZSk9XCJ1cGRhdGVBcnJvd0RpcmVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgW2FyaWEtbGFiZWxdPVwiY29uZmlnLmFyaWFMYWJlbCA/PyAnJ1wiXHJcbiAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cImNvbmZpZy5hcmlhRGVzY3JpYmVkQnlJZCA/PyAnJ1wiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIlxyXG4gICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZXJcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLXNlYXJjaFxyXG4gICAgICAgICpuZ0lmPVwiaXNTZWFyY2ggJiYgYXJyb3dEaXJlY3Rpb25cIlxyXG4gICAgICAgIFtzZWFyY2hUeXBlXT1cInNlYXJjaFR5cGVcIlxyXG4gICAgICAgIChzZWFyY2hWYWx1ZSk9XCJvbk9wdGlvblNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLXNlYXJjaD5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0lmPVwiIWlzTXVsdGlMZXZlbFwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25PcHRpb25zVGVtcGxhdGVSZWZcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6IGRyb3Bkb3duT3B0aW9ucyB9XCJcclxuICAgICAgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlMZXZlbFwiPlxyXG4gICAgICAgIDxtYXQtb3B0Z3JvdXBcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZHJvcGRvd25PcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5uYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZGF0YTogb3B0aW9uLm9wdGlvbl9ncm91cHMgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1vcHRncm91cD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25PcHRpb25zVGVtcGxhdGVSZWYgbGV0LW9wdGlvbnM9XCJkYXRhXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmdcclxuICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVyXCJcclxuICAgICAgKm5nSWY9XCIhaXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJpc011bHRpU2VsZWN0XCJcclxuICAgICAgKG9wZW5lZENoYW5nZSk9XCJ1cGRhdGVBcnJvd0RpcmVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgIFthcmlhLWxhYmVsXT1cImNvbmZpZy5hcmlhTGFiZWwgPz8gJydcIlxyXG4gICAgICBbYXJpYS1kZXNjcmliZWRieV09XCJjb25maWcuYXJpYURlc2NyaWJlZEJ5SWQgPz8gJydcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcclxuICAgID5cclxuICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAqbmdJZj1cImlzU2VhcmNoICYmIGFycm93RGlyZWN0aW9uXCJcclxuICAgICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICAoc2VhcmNoVmFsdWUpPVwib25PcHRpb25TZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdJZj1cIiFpc011bHRpTGV2ZWxcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhOiBkcm9wZG93bk9wdGlvbnMgfVwiXHJcbiAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc011bHRpTGV2ZWxcIj5cclxuICAgICAgICA8bWF0LW9wdGdyb3VwXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRyb3Bkb3duT3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcm9wZG93bk9wdGlvbnNUZW1wbGF0ZVJlZlwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6IG9wdGlvbi5vcHRpb25fZ3JvdXBzIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmIGxldC1vcHRpb25zPVwiZGF0YVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICA8aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICA+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbjwvZGl2PlxyXG4iXX0=
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixZQUFZLEVBRVosaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxZQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7OztBQUd4RTs7Ozs7OztHQU9HO0FBd0JILE1BQU0sT0FBTyxlQUFlO0lBYTFC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ZTtzQkFBdkIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1BVF9TRUxFQ1RfQ09ORklHLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFNlYXJjaFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLm1vZGVsJztcclxuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGRyb3Bkb3duSW5mbyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9sLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS11dGlsaXR5LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBzZWxlY3QgdHlwZSBvZiBmb3JtIGZpbGVkIGFuZCBzZWxlY3QgdHlwZSBpcyBjb25maWd1cmFibGUgdG8gc3VwcG9ydCBzaW5nbGUgc2VsZWN0aW9uIG9yIG11bHRpLXNlbGVjdGlvbiB3aXRoIG11bHRpbGV2ZWwgb3Igc2luZ2xlIGxldmVsLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBTZWxlY3RDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0FmdGVyVmlld0luaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkRlc3Ryb3l9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1zZWxlY3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1FcnJvckNvbXBvbmVudCxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfU0VMRUNUX0NPTkZJRyxcclxuICAgICAgdXNlVmFsdWU6IHsgb3ZlcmxheVBhbmVsQ2xhc3M6ICdpZWVlc2Etc2VsZWN0LW92ZXJsYXktcGFuZScgfSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkcmVuKFNlYXJjaENvbXBvbmVudClcclxuICBmb3JtRmllbGRzITogUXVlcnlMaXN0PFNlYXJjaENvbXBvbmVudD47XHJcbiAgZ3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgY29uZmlnITogRmllbGRDb25maWc7XHJcbiAgYXJyb3dEaXJlY3Rpb24gPSBmYWxzZTtcclxuICBzZWFyY2hUeXBlID0gU2VhcmNoVHlwZS5BVVRPO1xyXG4gIHNvcnRlZE9wdGlvbnMhOiBTZWxlY3RPcHRpb25bXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRyb3Bkb3duSW5mbzogYW55ID0gZHJvcGRvd25JbmZvO1xyXG4gIHByaXZhdGUgX2Ryb3Bkb3duT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9ucyE6IFNlbGVjdE9wdGlvbiB8IFNlbGVjdE9wdGlvbltdO1xyXG4gIHByaXZhdGUgX2lzU29ydE5lZWRlZCA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogVGFrZXMgaXNTb3J0TmVlZGVkIGFzIGlucHV0IHRvIGNoZWNrIGlmIHRoZSBwYXNzZWQgb3B0aW9ucyBhcmUgc29ydGVkIG9yIG5vdC5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgaXNTb3J0TmVlZGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NvcnROZWVkZWQgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGlzU29ydE5lZWRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1NvcnROZWVkZWQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRyb3Bkb3duIG9wdGlvbnMgZm9yIHNlbGVjdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZHJvcGRvd25PcHRpb25zKHZhbHVlOiBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgdGhpcy5fZHJvcGRvd25PcHRpb25zID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBkcm9wZG93bk9wdGlvbnMoKTogU2VsZWN0T3B0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGVkT3B0aW9ucyh2YWx1ZTogU2VsZWN0T3B0aW9uIHwgU2VsZWN0T3B0aW9uW10pIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmFycmF5U29ydGluZyh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBTZWxlY3RPcHRpb24gfCBTZWxlY3RPcHRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRPcHRpb25zO1xyXG4gIH1cclxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWUgPSAnc2VsZWN0JztcclxuICBASW5wdXQoKSBpc011bHRpTGV2ZWwgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xhYmVsQWxpZ25lZExlZnQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RMYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzTXVsdGlTZWxlY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNTZWFyY2ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlclRleHQgPSB0aGlzLmRyb3Bkb3duSW5mby5kcm9wZG93bi5wbGFjZWhvbGRlclRleHQ7XHJcbiAgQE91dHB1dCgpIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RPcHRpb24+KCk7XHJcbiAgQE91dHB1dCgpIG9wdGlvblNlYXJjaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgY29tcG9uZW50cyBpbnN0YW5jZSBwcm9wZXJ0aWVzIGZyb20gY29uZmlnIGlmIGl0cyBkZWZpbmVkIG90aGVyd2lzZSBjcmVhdGVzIGZvcm0gZ3JvdXAgYW5kIGNvbmZpZy5cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUFycm93RGlyZWN0aW9uKGZhbHNlKTtcclxuICAgIHRoaXMuZ3JvdXAgPVxyXG4gICAgICB0aGlzLmdyb3VwID8/IHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1Hcm91cCh0aGlzLmZvcm1Db250cm9sTmFtZSk7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgICBGb3JtQ29udHJvbFR5cGUuU0VMRUNUXHJcbiAgICAgICk7XHJcbiAgICBpZiAodGhpcy5jb25maWcpIHtcclxuICAgICAgdGhpcy5pc011bHRpU2VsZWN0ID0gdGhpcy5jb25maWcuaXNNdWx0aVNlbGVjdCA/PyBmYWxzZTtcclxuICAgICAgdGhpcy5kcm9wZG93bk9wdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnPy5kcm9wZG93bk9wdGlvbnMgPz8gdGhpcy5kcm9wZG93bk9wdGlvbnM7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5jb25maWc/LnZhbHVlO1xyXG4gICAgICB0aGlzLnNlbGVjdExhYmVsID0gdGhpcy5jb25maWc/LmxhYmVsID8/ICcnO1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyVGV4dCA9IHRoaXMuY29uZmlnPy5wbGFjZWhvbGRlciA/PyB0aGlzLnBsYWNlaG9sZGVyVGV4dDtcclxuICAgICAgdGhpcy5pc011bHRpU2VsZWN0ID0gdGhpcy5jb25maWc/LmlzTXVsdGlTZWxlY3QgPz8gdGhpcy5pc011bHRpU2VsZWN0O1xyXG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0aGlzLmNvbmZpZz8uZGlzYWJsZWQgPz8gdGhpcy5pc0Rpc2FibGVkO1xyXG4gICAgICB0aGlzLnNlYXJjaFR5cGUgPSB0aGlzLmNvbmZpZz8uc2VhcmNoVHlwZSA/PyB0aGlzLnNlYXJjaFR5cGU7XHJcbiAgICAgIHRoaXMuaXNTb3J0TmVlZGVkID0gdGhpcy5jb25maWc/LmlzU29ydE5lZWRlZCA/PyB0aGlzLmlzU29ydE5lZWRlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlbGVjdGVkIG9wdGlvbiBvbiBjaGFuZ2VzIHRoZSBzZWxlY3RlZCBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hhbmdlKGV2ZW50OiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzZWxlY3QgZHJvcGRvd24gYXJyb3cgZGlyZWN0aW9uXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBvcGVuZWRcclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlQXJyb3dEaXJlY3Rpb24ob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmFycm93RGlyZWN0aW9uID0gb3BlbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGFrZXMgdGhlIGluZGV4IGFuZCB0aGUgY3VycmVudCBvcHRpb24gYXMgYXJndW1lbnRzIGFuZCBuZWVkcyB0byByZXR1cm4gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9wdGlvbi5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIFNlbGVjdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBvcHRpb246IFNlbGVjdE9wdGlvbik6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uLmlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgc2VhcmNoZWQgb3B0aW9ucyBvbiBmaWx0ZXJpbmcgb3B0aW9ucyBpbiBzZWxlY3QgZHJvcGRvd25cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGV4dFxyXG4gICAqIEBtZW1iZXJvZiBTZWxlY3RDb21wb25lbnRcclxuICAgKi9cclxuICBvbk9wdGlvblNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9uU2VhcmNoZWQuZW1pdChzZWFyY2hUZXh0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBhcmVzIHRoZSB0d28gcGFzc2VkIG9wdGlvbnNcclxuICAgKiBAcGFyYW0ge2FueX0gb3B0aW9uMVxyXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb24yXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb21wYXJlcihvcHRpb24xOiBhbnksIG9wdGlvbjI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9wdGlvbjEgJiYgb3B0aW9uMiA/IG9wdGlvbjEuaWQgPT09IG9wdGlvbjIuaWQgOiBvcHRpb24xID09PSBvcHRpb24yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29ydHMgdGhlIG9wdGlvbnNcclxuICAgKiBAbWVtYmVyb2YgU2VsZWN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNTb3J0TmVlZGVkICYmIEFycmF5LmlzQXJyYXkodGhpcy5kcm9wZG93bk9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25PcHRpb25zID0gdGhpcy5hcnJheVNvcnRpbmcodGhpcy5kcm9wZG93bk9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29ydHMgdGhlIG9wdGlvbnMgYnkgdXNpbmcgYXJyYXlTb3J0aW5nIG1ldGhvZFxyXG4gICAqIEBtZW1iZXJvZiBTZWxlY3RDb21wb25lbnRcclxuICAgKi9cclxuICBzb3J0T3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU29ydE5lZWRlZCAmJiBBcnJheS5pc0FycmF5KHRoaXMuZHJvcGRvd25PcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNvcnRlZE9wdGlvbnMgPSB0aGlzLmFycmF5U29ydGluZyh0aGlzLmRyb3Bkb3duT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnRlZE9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duT3B0aW9ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFV0aWxpdHkgbWV0aG9kIHRvIHNvcnQgZHJvcGRvd24gb3B0aW9ucyBpbiBhc2NlbmRpbmcgb3JkZXIuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25bXX0gbGlzdFxyXG4gICAqIEByZXR1cm4ge1NlbGVjdE9wdGlvbltdfVxyXG4gICAqIEBtZW1iZXJvZiBTZWxlY3RDb21wb25lbnRcclxuICAgKi9cclxuICBhcnJheVNvcnRpbmcobGlzdDogU2VsZWN0T3B0aW9uW10pOiBTZWxlY3RPcHRpb25bXSB7XHJcbiAgICBjb25zdCBjbG9uZWRWYWx1ZSA9IFsuLi5saXN0XTtcclxuICAgIGNvbnN0IHNvcnQgPSBjbG9uZWRWYWx1ZS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGlmIChhLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYi5uYW1lLnRvTG93ZXJDYXNlKCkpIHJldHVybiAwO1xyXG4gICAgICBpZiAoYS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhbGwnKSByZXR1cm4gLTE7XHJcbiAgICAgIGlmIChiLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2FsbCcpIHJldHVybiAxO1xyXG4gICAgICBpZiAoYS5uYW1lLnRvTG93ZXJDYXNlKCkgPCBiLm5hbWUudG9Mb3dlckNhc2UoKSkgcmV0dXJuIC0xO1xyXG4gICAgICBpZiAoYS5uYW1lLnRvTG93ZXJDYXNlKCkgPiBiLm5hbWUudG9Mb3dlckNhc2UoKSkgcmV0dXJuIDE7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc29ydDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxyXG4gIGNsYXNzPVwiaWVlZXNhLXNlbGVjdC1maWVsZFwiXHJcbiAgKm5nSWY9XCJncm91cFwiXHJcbiAgW25nQ2xhc3NdPVwiXHJcbiAgICBpc0xhYmVsQWxpZ25lZExlZnRcclxuICAgICAgPyAnaWVlZXNhLXNlbGVjdC1maWVsZF9fbGFiZWwtbGVmdCdcclxuICAgICAgOiAnaWVlZXNhLXNlbGVjdC1maWVsZF9fbGFiZWwtdG9wJ1xyXG4gIFwiXHJcbj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwiaWVlZXNhLXNlbGVjdC1maWVsZF9fbGFiZWxcIj57eyBzZWxlY3RMYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGFycm93RGlyZWN0aW9uXHJcbiAgICAgICAgPyAnaWVlZXNhLXNlbGVjdC1maWVsZF9fYXJyb3ctdXAnXHJcbiAgICAgICAgOiAnaWVlZXNhLXNlbGVjdC1maWVsZF9fYXJyb3ctZG93bidcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPG1hdC1zZWxlY3RcclxuICAgICAgZGlzYWJsZU9wdGlvbkNlbnRlcmluZ1xyXG4gICAgICAqbmdJZj1cImlzTXVsdGlTZWxlY3RcIlxyXG4gICAgICAob3BlbmVkQ2hhbmdlKT1cInVwZGF0ZUFycm93RGlyZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJpc011bHRpU2VsZWN0XCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcclxuICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVyXCJcclxuICAgID5cclxuICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAqbmdJZj1cImlzU2VhcmNoXCJcclxuICAgICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICAoc2VhcmNoVmFsdWUpPVwib25PcHRpb25TZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdJZj1cIiFpc011bHRpTGV2ZWxcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhOiBkcm9wZG93bk9wdGlvbnMgfVwiXHJcbiAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc011bHRpTGV2ZWxcIj5cclxuICAgICAgICA8bWF0LW9wdGdyb3VwXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRyb3Bkb3duT3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcm9wZG93bk9wdGlvbnNUZW1wbGF0ZVJlZlwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6IG9wdGlvbi5vcHRpb25fZ3JvdXBzIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmIGxldC1vcHRpb25zPVwiZGF0YVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICA8bWF0LXNlbGVjdFxyXG4gICAgICBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nXHJcbiAgICAgICpuZ0lmPVwiIWlzTXVsdGlTZWxlY3RcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgIChvcGVuZWRDaGFuZ2UpPVwidXBkYXRlQXJyb3dEaXJlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcclxuICAgID5cclxuICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAqbmdJZj1cImlzU2VhcmNoXCJcclxuICAgICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICAoc2VhcmNoVmFsdWUpPVwib25PcHRpb25TZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdJZj1cIiFpc011bHRpTGV2ZWxcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhOiBkcm9wZG93bk9wdGlvbnMgfVwiXHJcbiAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc011bHRpTGV2ZWxcIj5cclxuICAgICAgICA8bWF0LW9wdGdyb3VwXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRyb3Bkb3duT3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcm9wZG93bk9wdGlvbnNUZW1wbGF0ZVJlZlwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6IG9wdGlvbi5vcHRpb25fZ3JvdXBzIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duT3B0aW9uc1RlbXBsYXRlUmVmIGxldC1vcHRpb25zPVwiZGF0YVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuPC9kaXY+XHJcbiJdfQ==