@fundamental-ngx/platform 0.44.1-rc.3 → 0.45.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 (277) hide show
  1. package/action-bar/action-bar.component.d.ts +1 -6
  2. package/action-bar/action-bar.module.d.ts +3 -4
  3. package/button/button.module.d.ts +2 -3
  4. package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +1 -3
  5. package/esm2022/action-bar/action-bar.component.mjs +3 -5
  6. package/esm2022/action-bar/action-bar.module.mjs +5 -26
  7. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +5 -5
  8. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +5 -5
  9. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
  10. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +5 -5
  11. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
  12. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
  13. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
  14. package/esm2022/approval-flow/approval-flow.component.mjs +1 -1
  15. package/esm2022/button/button.module.mjs +5 -6
  16. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +2 -8
  17. package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
  18. package/esm2022/feed-input/feed-input.component.mjs +3 -17
  19. package/esm2022/form/checkbox/checkbox.component.mjs +3 -50
  20. package/esm2022/form/checkbox/checkbox.module.mjs +5 -26
  21. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +10 -38
  22. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +5 -23
  23. package/esm2022/form/combobox/combobox/combobox.component.mjs +1 -1
  24. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
  25. package/esm2022/form/combobox/combobox.module.mjs +4 -8
  26. package/esm2022/form/date-picker/date-picker.component.mjs +4 -66
  27. package/esm2022/form/date-picker/date-picker.module.mjs +5 -26
  28. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -56
  29. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +5 -26
  30. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +2 -2
  31. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +2 -2
  32. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +2 -2
  33. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +2 -2
  34. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +35 -60
  35. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
  36. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  37. package/esm2022/form/form-group/fdp-form.module.mjs +1 -5
  38. package/esm2022/form/form-group/form-field/form-field.component.mjs +5 -41
  39. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  40. package/esm2022/form/form-group/form-group.component.mjs +5 -29
  41. package/esm2022/form/index.mjs +1 -2
  42. package/esm2022/form/input/fdp-input.module.mjs +5 -23
  43. package/esm2022/form/input-group/input-group.module.mjs +4 -22
  44. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -1
  45. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
  46. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -8
  47. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  48. package/esm2022/form/multi-input/multi-input.component.mjs +3 -3
  49. package/esm2022/form/multi-input/multi-input.module.mjs +4 -8
  50. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +9 -27
  51. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +5 -23
  52. package/esm2022/form/radio-group/radio/radio.component.mjs +3 -22
  53. package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
  54. package/esm2022/form/radio-group/radio-group.module.mjs +4 -17
  55. package/esm2022/form/select/select/select.component.mjs +5 -23
  56. package/esm2022/form/select/select.module.mjs +4 -20
  57. package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
  58. package/esm2022/form/step-input/step-input.module.mjs +4 -8
  59. package/esm2022/form/switch/switch/switch.component.mjs +1 -1
  60. package/esm2022/form/switch/switch.module.mjs +5 -23
  61. package/esm2022/form/text-area/text-area.component.mjs +4 -21
  62. package/esm2022/form/text-area/text-area.module.mjs +4 -8
  63. package/esm2022/form/time-picker/time-picker.module.mjs +5 -26
  64. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
  65. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
  66. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
  67. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  68. package/esm2022/link/link.component.mjs +3 -3
  69. package/esm2022/list/action-list-item/action-list-item.component.mjs +1 -1
  70. package/esm2022/list/base-list-item.mjs +6 -49
  71. package/esm2022/list/display-list-item/display-list-item.component.mjs +1 -1
  72. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
  73. package/esm2022/list/list-group-header.component.mjs +2 -8
  74. package/esm2022/list/list.component.mjs +1 -1
  75. package/esm2022/list/list.module.mjs +2 -9
  76. package/esm2022/list/object-list-item/object-list-item.component.mjs +1 -1
  77. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -17
  78. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
  79. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -8
  80. package/esm2022/menu/menu.module.mjs +5 -37
  81. package/esm2022/menu-button/menu-button.module.mjs +5 -23
  82. package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
  83. package/esm2022/message-popover/message-popover.component.mjs +4 -5
  84. package/esm2022/panel/panel.module.mjs +5 -17
  85. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
  86. package/esm2022/search-field/search-field.component.mjs +8 -45
  87. package/esm2022/search-field/search-field.module.mjs +4 -19
  88. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +2 -2
  89. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
  90. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  91. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  92. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
  93. package/esm2022/shared/form/form-field.mjs +1 -1
  94. package/esm2022/shared/form/form-options.mjs +1 -1
  95. package/esm2022/shared/form/hint-options.mjs +1 -1
  96. package/esm2022/shared/index.mjs +1 -2
  97. package/esm2022/slider/slider.component.mjs +1 -1
  98. package/esm2022/slider/slider.module.mjs +5 -6
  99. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +6 -10
  100. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +10 -12
  101. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +8 -11
  102. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +40 -45
  103. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
  104. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
  105. package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
  106. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
  107. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +5 -72
  108. package/esm2022/split-menu-button/split-menu-button.module.mjs +5 -23
  109. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +1 -1
  110. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
  111. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +3 -3
  112. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  113. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +3 -3
  114. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +3 -3
  115. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +3 -3
  116. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
  117. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +1 -1
  118. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  119. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  120. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +3 -3
  121. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  122. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
  123. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  124. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  125. package/esm2022/table/table.component.mjs +1 -1
  126. package/esm2022/table/table.module.mjs +1 -5
  127. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +5 -5
  128. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
  129. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +1 -1
  130. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +1 -1
  131. package/esm2022/upload-collection/models/upload-collection.models.mjs +1 -1
  132. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +4 -29
  133. package/esm2022/upload-collection/upload-collection.module.mjs +4 -8
  134. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -27
  135. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -17
  136. package/esm2022/value-help-dialog/index.mjs +1 -2
  137. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +4 -43
  138. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -22
  139. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +3 -3
  140. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  141. package/esm2022/variant-management/variant-management.component.mjs +1 -1
  142. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +1 -1
  143. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
  144. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
  145. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
  146. package/feed-input/feed-input.component.d.ts +1 -9
  147. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +7 -29
  148. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
  149. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +25 -25
  150. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-platform-button.mjs +5 -5
  152. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  153. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +3 -8
  154. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  155. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -16
  156. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-platform-form.mjs +138 -716
  158. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  159. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +4 -4
  160. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  161. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  162. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  163. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -93
  164. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  165. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +5 -22
  166. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  167. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -36
  168. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  169. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +2 -2
  170. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  171. package/fesm2022/fundamental-ngx-platform-panel.mjs +5 -16
  172. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  173. package/fesm2022/fundamental-ngx-platform-search-field.mjs +12 -63
  174. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  175. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +5 -5
  176. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-platform-shared.mjs +2 -116
  178. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-platform-slider.mjs +6 -6
  180. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +71 -146
  182. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +5 -22
  184. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  185. package/fesm2022/fundamental-ngx-platform-table.mjs +23 -26
  186. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  187. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +6 -6
  188. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
  189. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +9 -37
  190. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  191. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +11 -147
  192. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  193. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +4 -4
  194. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  195. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +4 -4
  196. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  197. package/form/checkbox/checkbox.component.d.ts +3 -19
  198. package/form/checkbox/checkbox.module.d.ts +3 -4
  199. package/form/checkbox-group/checkbox-group.component.d.ts +5 -16
  200. package/form/checkbox-group/checkbox-group.module.d.ts +2 -3
  201. package/form/combobox/combobox.module.d.ts +2 -3
  202. package/form/date-picker/date-picker.component.d.ts +1 -35
  203. package/form/date-picker/date-picker.module.d.ts +2 -3
  204. package/form/datetime-picker/datetime-picker.component.d.ts +1 -33
  205. package/form/datetime-picker/datetime-picker.module.d.ts +2 -3
  206. package/form/form-generator/form-generator/form-generator.component.d.ts +8 -18
  207. package/form/form-generator/interfaces/dynamic-form-item.d.ts +1 -13
  208. package/form/form-group/fdp-form.module.d.ts +12 -13
  209. package/form/form-group/form-field/form-field.component.d.ts +2 -17
  210. package/form/form-group/form-group.component.d.ts +2 -14
  211. package/form/index.d.ts +0 -1
  212. package/form/input/fdp-input.module.d.ts +2 -3
  213. package/form/input-group/input-group.module.d.ts +2 -3
  214. package/form/multi-combobox/multi-combobox.module.d.ts +2 -3
  215. package/form/multi-input/multi-input.module.d.ts +2 -3
  216. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +5 -11
  217. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +2 -3
  218. package/form/radio-group/radio/radio.component.d.ts +1 -8
  219. package/form/radio-group/radio-group.module.d.ts +2 -3
  220. package/form/select/select/select.component.d.ts +1 -8
  221. package/form/select/select.module.d.ts +2 -3
  222. package/form/step-input/step-input.module.d.ts +2 -3
  223. package/form/switch/switch.module.d.ts +2 -3
  224. package/form/text-area/text-area.component.d.ts +1 -6
  225. package/form/text-area/text-area.module.d.ts +3 -4
  226. package/form/time-picker/time-picker.module.d.ts +2 -3
  227. package/fundamental-ngx-platform-v0.45.0.tgz +0 -0
  228. package/list/base-list-item.d.ts +2 -27
  229. package/list/list-group-header.component.d.ts +1 -3
  230. package/list/list.module.d.ts +7 -8
  231. package/list/object-list-item/object-list-item.module.d.ts +2 -3
  232. package/list/standard-list-item/standard-list-item.module.d.ts +2 -3
  233. package/menu/menu.module.d.ts +2 -3
  234. package/menu-button/menu-button.module.d.ts +2 -3
  235. package/package.json +4 -4
  236. package/panel/panel.module.d.ts +2 -3
  237. package/schematics/ng-add/index.js +1 -1
  238. package/search-field/search-field.component.d.ts +1 -18
  239. package/search-field/search-field.module.d.ts +4 -5
  240. package/shared/form/form-field.d.ts +1 -17
  241. package/shared/form/form-options.d.ts +0 -3
  242. package/shared/form/hint-options.d.ts +0 -7
  243. package/shared/index.d.ts +0 -1
  244. package/slider/slider.module.d.ts +2 -3
  245. package/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.d.ts +1 -3
  246. package/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.d.ts +1 -2
  247. package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +8 -8
  248. package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +0 -6
  249. package/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.d.ts +0 -6
  250. package/smart-filter-bar/interfaces/strategy-labels.type.d.ts +1 -1
  251. package/smart-filter-bar/smart-filter-bar.class.d.ts +0 -3
  252. package/smart-filter-bar/smart-filter-bar.component.d.ts +1 -43
  253. package/split-menu-button/split-menu-button.module.d.ts +2 -3
  254. package/table/table.module.d.ts +5 -6
  255. package/upload-collection/models/upload-collection.models.d.ts +0 -2
  256. package/upload-collection/upload-collection/upload-collection.component.d.ts +1 -16
  257. package/upload-collection/upload-collection.module.d.ts +1 -1
  258. package/value-help-dialog/components/define-tab/define-tab.component.d.ts +1 -11
  259. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -7
  260. package/value-help-dialog/index.d.ts +0 -1
  261. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -21
  262. package/value-help-dialog/value-help-dialog.module.d.ts +32 -34
  263. package/esm2022/form/form-group/deprecated-form-group-compact.directive.mjs +0 -30
  264. package/esm2022/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.mjs +0 -24
  265. package/esm2022/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.mjs +0 -68
  266. package/esm2022/shared/platform-content-density-deprecations/index.mjs +0 -5
  267. package/esm2022/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.mjs +0 -19
  268. package/esm2022/shared/platform-content-density-deprecations/providers/module-deprecation.provider.mjs +0 -13
  269. package/esm2022/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +0 -46
  270. package/form/form-group/deprecated-form-group-compact.directive.d.ts +0 -8
  271. package/fundamental-ngx-platform-v0.44.1-rc.3.tgz +0 -0
  272. package/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.d.ts +0 -8
  273. package/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.d.ts +0 -10
  274. package/shared/platform-content-density-deprecations/index.d.ts +0 -4
  275. package/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.d.ts +0 -9
  276. package/shared/platform-content-density-deprecations/providers/module-deprecation.provider.d.ts +0 -3
  277. package/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.d.ts +0 -20
@@ -1,11 +1,10 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, isDevMode, Output, QueryList, TemplateRef, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, QueryList, TemplateRef, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
2
2
  import { FormGroupDirective, NgForm } from '@angular/forms';
3
3
  import { debounceTime, filter, startWith, switchMap, take, takeUntil } from 'rxjs/operators';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
5
- import { warnOnce } from '@fundamental-ngx/cdk/utils';
6
5
  import { FormGeneratorFieldComponent } from '../form-generator-field/form-generator-field.component';
7
6
  import { FormGeneratorService } from '../form-generator.service';
8
- import { DefaultGapLayout, DefaultHorizontalFieldLayout, DefaultHorizontalLabelLayout, DefaultVerticalFieldLayout, DefaultVerticalLabelLayout } from '../../form-group/constants';
7
+ import { DefaultGapLayout, DefaultVerticalFieldLayout, DefaultVerticalLabelLayout } from '../../form-group/constants';
9
8
  import { FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS } from '../form-generator.tokens';
10
9
  import { defaultFormGeneratorHintOptions } from '../config/default-form-generator-hint-options';
11
10
  import * as i0 from "@angular/core";
@@ -44,25 +43,6 @@ export class FormGeneratorComponent {
44
43
  get formItems() {
45
44
  return this._formItems;
46
45
  }
47
- /**
48
- * @deprecated
49
- * Use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties.
50
- *
51
- * Defines form field label placement.
52
- */
53
- set labelLayout(value) {
54
- if (isDevMode()) {
55
- warnOnce('LabelLayout input property is deprecated. Please use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties instead');
56
- }
57
- this._labelLayout = value;
58
- this.labelColumnLayout =
59
- this._labelLayout === 'horizontal' ? DefaultHorizontalLabelLayout : DefaultVerticalLabelLayout;
60
- this.fieldColumnLayout =
61
- this._labelLayout === 'horizontal' ? DefaultHorizontalFieldLayout : DefaultVerticalFieldLayout;
62
- }
63
- get labelLayout() {
64
- return this._labelLayout;
65
- }
66
46
  /** Array of form field controls. */
67
47
  get formFields() {
68
48
  return this.fields
@@ -201,33 +181,6 @@ export class FormGeneratorComponent {
201
181
  this.formValue$.next(formValue);
202
182
  this.form.markAsPristine();
203
183
  }
204
- /**
205
- * @hidden
206
- */
207
- async _generateForm() {
208
- this.formLoading = true;
209
- this.loading$.next(this.formLoading);
210
- const form = await this._fgService.generateForm(this.formName, this.formItems);
211
- this._formValueSubscription?.unsubscribe();
212
- this.form = form;
213
- this.formControlItems = this._getOrderedControls(form.controls);
214
- this.shouldShowFields = await this._fgService.checkVisibleFormItems(this.form);
215
- this._formValueSubscription = this.form.valueChanges
216
- .pipe(debounceTime(50), takeUntil(this._onDestroy$))
217
- .subscribe(async () => {
218
- this.shouldShowFields = await this._fgService.checkVisibleFormItems(this.form);
219
- this._cd.markForCheck();
220
- });
221
- this.formLoading = false;
222
- this._firstLoadingDone = true;
223
- this._cd.detectChanges();
224
- this.formCreated.emit(this.form);
225
- this.loading$.next(this.formLoading);
226
- if (!this.formGroup) {
227
- return;
228
- }
229
- this._listenToSubmit();
230
- }
231
184
  /**
232
185
  *
233
186
  * @hidden
@@ -243,10 +196,6 @@ export class FormGeneratorComponent {
243
196
  submit() {
244
197
  this.formGroup.onSubmit(new Event('submit'));
245
198
  }
246
- /** @hidden */
247
- _getOrderedControls(controls) {
248
- return Object.values(controls).sort((a, b) => (a.formItem?.rank ?? -Infinity) - (b.formItem?.rank ?? -Infinity));
249
- }
250
199
  /**
251
200
  * @description
252
201
  * Used for extracting hintOptions from GuiOptions. This will coerce string | HintOptions to FieldHintOptions,
@@ -258,17 +207,14 @@ export class FormGeneratorComponent {
258
207
  return;
259
208
  }
260
209
  const formItemHintOptions = guiOptions.hint;
261
- const placement = guiOptions.hintPlacement || this._defaultHintOptions.placement;
262
210
  if (typeof formItemHintOptions === 'string' || formItemHintOptions instanceof TemplateRef) {
263
211
  return {
264
212
  ...this._defaultHintOptions,
265
- placement,
266
213
  content: formItemHintOptions
267
214
  };
268
215
  }
269
216
  return {
270
217
  ...this._defaultHintOptions,
271
- placement,
272
218
  ...formItemHintOptions
273
219
  };
274
220
  }
@@ -276,6 +222,37 @@ export class FormGeneratorComponent {
276
222
  _isAdvancedError(error) {
277
223
  return error.heading && error.description && error.type;
278
224
  }
225
+ /**
226
+ * @hidden
227
+ */
228
+ async _generateForm() {
229
+ this.formLoading = true;
230
+ this.loading$.next(this.formLoading);
231
+ const form = await this._fgService.generateForm(this.formName, this.formItems);
232
+ this._formValueSubscription?.unsubscribe();
233
+ this.form = form;
234
+ this.formControlItems = this._getOrderedControls(form.controls);
235
+ this.shouldShowFields = await this._fgService.checkVisibleFormItems(this.form);
236
+ this._formValueSubscription = this.form.valueChanges
237
+ .pipe(debounceTime(50), takeUntil(this._onDestroy$))
238
+ .subscribe(async () => {
239
+ this.shouldShowFields = await this._fgService.checkVisibleFormItems(this.form);
240
+ this._cd.markForCheck();
241
+ });
242
+ this.formLoading = false;
243
+ this._firstLoadingDone = true;
244
+ this._cd.detectChanges();
245
+ this.formCreated.emit(this.form);
246
+ this.loading$.next(this.formLoading);
247
+ if (!this.formGroup) {
248
+ return;
249
+ }
250
+ this._listenToSubmit();
251
+ }
252
+ /** @hidden */
253
+ _getOrderedControls(controls) {
254
+ return Object.values(controls).sort((a, b) => (a.formItem?.rank ?? -Infinity) - (b.formItem?.rank ?? -Infinity));
255
+ }
279
256
  /** @hidden */
280
257
  _getErrors() {
281
258
  const returnErrors = [];
@@ -302,7 +279,7 @@ export class FormGeneratorComponent {
302
279
  });
303
280
  }
304
281
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGeneratorComponent, deps: [{ token: i1.FormGeneratorService }, { token: i0.ChangeDetectorRef }, { token: FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: { formName: "formName", formItems: "formItems", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", hint: "hint", columnLayout: "columnLayout", labelLayout: "labelLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", unifiedLayout: "unifiedLayout", inlineColumnLayout: "inlineColumnLayout", noAdditionalContent: "noAdditionalContent" }, outputs: { formCreated: "formCreated", formSubmitted: "formSubmitted", formSubmittedStatus: "formSubmittedStatus" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "fields", predicate: FormGeneratorFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\" style=\"padding: 1rem\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n", dependencies: [{ 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: i3.FormGroupComponent, selector: "fdp-form-group", inputs: ["id", "name", "editable", "noLabelLayout", "class", "hint", "labelLayout", "inlineColumnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "formGroup", "topTitle", "mainTitle", "hideMainTItle", "object", "i18Strings", "useForm", "columnLayout", "unifiedLayout"], outputs: ["onSubmit"] }, { kind: "component", type: i4.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hintPlacement", "hint", "labelLayout", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "component", type: i5.FormFieldGroupComponent, selector: "fdp-form-field-group", inputs: ["label", "formName", "formGroupContainer", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "hintOptions"] }, { kind: "directive", type: i6.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i7.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i8.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: ["fdpDynamicFormControlField", "fdpDynamicFormControlFieldShow"] }, { kind: "component", type: i13.FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: ["field", "form", "i18n", "formFieldName", "formGroupNamePath", "rank", "shouldShow", "hintOptions"] }, { kind: "pipe", type: i14.GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
282
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: { formName: "formName", formItems: "formItems", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", hint: "hint", columnLayout: "columnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", unifiedLayout: "unifiedLayout", inlineColumnLayout: "inlineColumnLayout", noAdditionalContent: "noAdditionalContent" }, outputs: { formCreated: "formCreated", formSubmitted: "formSubmitted", formSubmittedStatus: "formSubmittedStatus" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "fields", predicate: FormGeneratorFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\" style=\"padding: 1rem\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n", dependencies: [{ 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: i3.FormGroupComponent, selector: "fdp-form-group", inputs: ["id", "name", "editable", "noLabelLayout", "class", "hint", "inlineColumnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "formGroup", "topTitle", "mainTitle", "hideMainTItle", "object", "i18Strings", "useForm", "columnLayout", "unifiedLayout"], outputs: ["onSubmit"] }, { kind: "component", type: i4.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hint", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "component", type: i5.FormFieldGroupComponent, selector: "fdp-form-field-group", inputs: ["label", "formName", "formGroupContainer", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "hintOptions"] }, { kind: "directive", type: i6.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i7.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i8.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: ["fdpDynamicFormControlField", "fdpDynamicFormControlFieldShow"] }, { kind: "component", type: i13.FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: ["field", "form", "i18n", "formFieldName", "formGroupNamePath", "rank", "shouldShow", "hintOptions"] }, { kind: "pipe", type: i14.GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
306
283
  }
307
284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGeneratorComponent, decorators: [{
308
285
  type: Component,
@@ -322,8 +299,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
322
299
  type: Input
323
300
  }], columnLayout: [{
324
301
  type: Input
325
- }], labelLayout: [{
326
- type: Input
327
302
  }], labelColumnLayout: [{
328
303
  type: Input
329
304
  }], fieldColumnLayout: [{
@@ -352,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
352
327
  type: ViewChildren,
353
328
  args: [FormGeneratorFieldComponent]
354
329
  }] } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQVM5RCxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlakUsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFD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a0JBQWtCO3NCQURqQixLQUFLO2dCQVNOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFRTixXQUFXO3NCQURWLE1BQU07Z0JBUVAsYUFBYTtzQkFEWixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsTUFBTTtnQkFLakIsU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENvbHVtbkxheW91dCxcbiAgICBGaWVsZEhpbnRPcHRpb25zLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICBIaW50T3B0aW9ucyxcbiAgICBMYWJlbExheW91dCxcbiAgICBIaW50SW5wdXRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgTnVsbGFibGUsIHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3ItZmllbGQvZm9ybS1nZW5lcmF0b3ItZmllbGQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMsXG4gICAgRHluYW1pY0Zvcm1JdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMsXG4gICAgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvbk9iamVjdCxcbiAgICBEeW5hbWljRm9ybVZhbHVlXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWl0ZW0nO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzXG59IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1jb250cm9sJztcbmltcG9ydCB7IER5bmFtaWNGb3JtR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1ncm91cCc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRHYXBMYXlvdXQsXG4gICAgRGVmYXVsdEhvcml6b250YWxGaWVsZExheW91dCxcbiAgICBEZWZhdWx0SG9yaXpvbnRhbExhYmVsTGF5b3V0LFxuICAgIERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0LFxuICAgIERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0XG59IGZyb20gJy4uLy4uL2Zvcm0tZ3JvdXAvY29uc3RhbnRzJztcbmltcG9ydCB7IEZEUF9GT1JNX0dFTkVSQVRPUl9ERUZBVUxUX0hJTlRfT1BUSU9OUyB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLnRva2Vucyc7XG5pbXBvcnQgeyBkZWZhdWx0Rm9ybUdlbmVyYXRvckhpbnRPcHRpb25zIH0gZnJvbSAnLi4vY29uZmlnL2RlZmF1bHQtZm9ybS1nZW5lcmF0b3ItaGludC1vcHRpb25zJztcblxubGV0IGZvcm1VbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBjb25zdCBGRFBfRk9STV9JR05PUkVEX1NUQVRVU0VTOiBGb3JtQ29udHJvbFN0YXR1c1tdID0gWydJTlZBTElEJywgJ1BFTkRJTkcnLCAnRElTQUJMRUQnXTtcblxuZXhwb3J0IGludGVyZmFjZSBTdWJtaXRGb3JtRXZlbnRSZXN1bHQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmRpY2F0b3IgaWYgdmFsaWRhdGlvbiBoYXMgYmVlbiBwYXNzZWQuXG4gICAgICovXG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRm9ybWF0dGVkIGZvcm0gdmFsdWUuXG4gICAgICovXG4gICAgdmFsdWU6IER5bmFtaWNGb3JtVmFsdWUgfCBudWxsO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGb3JtIEdlbmVyYXRvciBjb21wb25lbnQgcmVwcmVzZW50cyBhIGhpZ2gtbGV2ZWwgY29tcG9uZW50XG4gKiB3aGljaCBpbmNsdWRlcyBAc2VlIEZvcm1Hcm91cCBpbnNpZGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZ2VuZXJhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFVuaXF1ZSBmb3JtIG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1OYW1lID0gYGZkcC1mb3JtLWdlbmVyYXRvci0ke2Zvcm1VbmlxdWVJZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiBAc2VlIER5bmFtaWNGb3JtSXRlbSByZXByZXNlbnRpbmcgdGhlIGxpc3Qgb2YgaXRlbXNcbiAgICAgKiB0byBiZSByZW5kZXJlZCBpbiB0aGUgZm9ybS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtSXRlbXMoZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXSkge1xuICAgICAgICBpZiAoIWZvcm1JdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1zID0gZm9ybUl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7IC4uLml0ZW0sIHJhbms6IGl0ZW0ucmFuayB8fCBpbmRleCB9KSk7XG4gICAgICAgIHRoaXMuX2dlbmVyYXRlRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgZm9ybUl0ZW1zKCk6IER5bmFtaWNGb3JtSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1JdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRm9ybSBtYWluIHRpdGxlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFpblRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBoaWRlIG1haW4gdGl0bGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTWFpblRJdGxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBIaW50IGZvciB0aGUgbWFpbiB0aXRsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGludDogSGludElucHV0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZnkgdGhlIGNvbHVtbiBsYXlvdXQgaW4gdGhlIGZvcm1hdCBgWExuLUxuLU1uLVNuYFxuICAgICAqIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuZCBjYW4gYmUgZGlmZmVyZW50IGZvciBlYWNoIHNpemUuXG4gICAgICogZWc6IFhMMi1MMi1NMi1TMSB3b3VsZCBjcmVhdGUgMi1jb2x1bW4gbGF5b3V0cyBmb3IgWEwsIEwsXG4gICAgICogYW5kIE0gc2l6ZXMgYW5kIHNpbmdsZS1jb2x1bW4gbGF5b3V0IGZvciBTIHNpemUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5MYXlvdXQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogRGVmaW5lcyBmb3JtIGZpZWxkIGxhYmVsIHBsYWNlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYWJlbExheW91dCh2YWx1ZTogTGFiZWxMYXlvdXQpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICAnTGFiZWxMYXlvdXQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzIGluc3RlYWQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLl9sYWJlbExheW91dCA9PT0gJ2hvcml6b250YWwnID8gRGVmYXVsdEhvcml6b250YWxMYWJlbExheW91dCA6IERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0O1xuICAgICAgICB0aGlzLmZpZWxkQ29sdW1uTGF5b3V0ID1cbiAgICAgICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID09PSAnaG9yaXpvbnRhbCcgPyBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0IDogRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG4gICAgfVxuICAgIGdldCBsYWJlbExheW91dCgpOiBMYWJlbExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbExheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxMYWJlbExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEdhcExheW91dDtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKiBJbmxpbmUgY29sdW1uIGxheW91dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZW1vdmVzIGV4dHJhIGVtcHR5IHJvdy5cbiAgICAgKiBUT0RPOiByZW1vdmUgYWZ0ZXIgIzc1MzMgaGFzIGJlZW4gZml4ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBub0FkZGl0aW9uYWxDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkXG4gICAgICogYW5kIGFsbCBjb250cm9scyBhcmUgaW4gcGxhY2UuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtR3JvdXA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWRcbiAgICAgKiBhbmQgc3VibWl0dGVkLiBDb250YWlucyBmb3JtXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1WYWx1ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCB3aGljaCBub3RpZmllcyBwYXJlbnQgY29tcG9uZW50IHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU3VibWl0dGVkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZm9ybSBpbnN0YW5jZS4gQHNlZSBOZ0Zvcm1cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcbiAgICBuZ0Zvcm06IE5nRm9ybTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGdyb3VwIGRpcmVjdGl2ZS4gKi9cbiAgICBAVmlld0NoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSlcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGZpZWxkcyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50KVxuICAgIGZpZWxkczogUXVlcnlMaXN0PEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudD47XG5cbiAgICAvKiogQXJyYXkgb2YgZm9ybSBmaWVsZCBjb250cm9scy4gKi9cbiAgICBnZXQgZm9ybUZpZWxkcygpOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkc1xuICAgICAgICAgICAgPy50b0FycmF5KClcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkLmZpZWxkUmVuZGVyZXI/LmNvbnRyb2wpXG4gICAgICAgICAgICAubWFwKChmaWVsZCkgPT4gZmllbGQuZmllbGRSZW5kZXJlci5jb250cm9sISk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmb3JtLiBAc2VlIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXG4gICAgICovXG4gICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cDtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiB0aGUgZm9ybSBjb250cm9scy5cbiAgICAgKi9cbiAgICBmb3JtQ29udHJvbEl0ZW1zOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGZsYWdzIHJlcHJlc2VudGluZyBpZiBwYXJ0aWN1bGFyIGZvcm0gaXRlbSBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogRmxhZyByZXByZXNlbnRpbmcgdGhhdCBmb3JtIGlzIGxvYWRpbmdcbiAgICAgKi9cbiAgICBmb3JtTG9hZGluZyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgZm9ybSBsb2FkaW5nIHN0YXRlLlxuICAgICAqL1xuICAgIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBsYXN0IGZvcm0gc3VibWlzc2lvbiBzdGF0dXMuXG4gICAgICovXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyQgPSBuZXcgU3ViamVjdDxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgbGFzdCBmb3JtIHN1Ym1pc3Npb24gdmFsdWUuXG4gICAgICovXG4gICAgZm9ybVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1WYWx1ZT4oe30pO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUbyBkaWZmZXJlbnRpYXRlIGJldHdlZW4gZmlyc3QgbG9hZGluZyB3aGVuIHNrZWxldG9ucyBiZSBzaG93biBhbmQgc3Vic2VxdWVudCBsb2FkaW5ncyB3aGVuIGJ1c3kgaW5kaWNhdG9yIGJlIHNob3duXG4gICAgICovXG4gICAgX2ZpcnN0TG9hZGluZ0RvbmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBoaW50T3B0aW9uczogSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lcnJvck1vZGVsczogeyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xhYmVsTGF5b3V0OiBMYWJlbExheW91dDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ1N1Ym1pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmdTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9GT1JNX0dFTkVSQVRPUl9ERUZBVUxUX0hJTlRfT1BUSU9OUykgX3Byb3ZpZGVkSGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdEZvcm1HZW5lcmF0b3JIaW50T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLl9wcm92aWRlZEhpbnRPcHRpb25zXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fZXJyb3JNb2RlbHMgPSB0aGlzLl9nZXRFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdzdHJpbmcnIHx8IHRoaXMuaGludCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLmhpbnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2hlcyBmb3JtIGl0ZW1zIHZpc2liaWxpdHkgd2l0aCAnd2hlbicgY29uZGl0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hTdGVwc1Zpc2liaWxpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGFzeW5jIF9vblN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMuZW1pdCh7IHN1Y2Nlc3M6ICF0aGlzLmZvcm0uaW52YWxpZCwgdmFsdWU6IGZvcm1WYWx1ZSB9KTtcbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkU3RhdHVzJC5uZXh0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZC5lbWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dlbmVyYXRlRm9ybSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgICAgICBjb25zdCBmb3JtID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmdlbmVyYXRlRm9ybSh0aGlzLmZvcm1OYW1lLCB0aGlzLmZvcm1JdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fZm9ybVZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbEl0ZW1zID0gdGhpcy5fZ2V0T3JkZXJlZENvbnRyb2xzKGZvcm0uY29udHJvbHMpO1xuXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2ZpcnN0TG9hZGluZ0RvbmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2luZGV4fV8ke3ZhbHVlLmZvcm1JdGVtLm5hbWV9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9ncmFtbWF0aWNhbGx5IHN1Ym1pdCBmb3JtLlxuICAgICAqIFRoaXMgbWV0aG9kIGFsc28gY2FsbHMgdmFsaWRhdGlvbiBmb3IgdGhlIGZvcm0gaXRlbXMuXG4gICAgICovXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5vblN1Ym1pdChuZXcgRXZlbnQoJ3N1Ym1pdCcpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRDb250cm9scyhjb250cm9sczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzKTogKER5bmFtaWNGb3JtQ29udHJvbCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT4gKGEuZm9ybUl0ZW0/LnJhbmsgPz8gLUluZmluaXR5KSAtIChiLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBVc2VkIGZvciBleHRyYWN0aW5nIGhpbnRPcHRpb25zIGZyb20gR3VpT3B0aW9ucy4gVGhpcyB3aWxsIGNvZXJjZSBzdHJpbmcgfCBIaW50T3B0aW9ucyB0byBGaWVsZEhpbnRPcHRpb25zLFxuICAgICAqIHdpbGwgY29tYmluZSBkZWZhdWx0IHZhbHVlIG9mIGhpbnRzIGZvciBmb3JtIGdlbmVyYXRvciB3aXRoIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGd1aU9wdGlvbnNcbiAgICAgKi9cbiAgICBnZXRIaW50T3B0aW9ucyhcbiAgICAgICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHwgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9uc1xuICAgICk6IEZpZWxkSGludE9wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWd1aU9wdGlvbnM/LmhpbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSXRlbUhpbnRPcHRpb25zID0gZ3VpT3B0aW9ucy5oaW50O1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSBndWlPcHRpb25zLmhpbnRQbGFjZW1lbnQgfHwgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLnBsYWNlbWVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtSXRlbUhpbnRPcHRpb25zID09PSAnc3RyaW5nJyB8fCBmb3JtSXRlbUhpbnRPcHRpb25zIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAuLi5mb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNBZHZhbmNlZEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIGVycm9yLmhlYWRpbmcgJiYgZXJyb3IuZGVzY3JpcHRpb24gJiYgZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVycm9ycygpOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xuICAgICAgICBjb25zdCByZXR1cm5FcnJvcnM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZWdpc3RlcmVkRXJyb3JzID0gdGhpcy5fZmdTZXJ2aWNlLnZhbGlkYXRpb25FcnJvckhpbnRzO1xuICAgICAgICBPYmplY3QuZW50cmllcyhyZWdpc3RlcmVkRXJyb3JzKS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JUeXBlLCBlcnJvclZhbHVlXSA9IHR5cGU7XG5cbiAgICAgICAgICAgIHJldHVybkVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVycm9yVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3JzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC5zdGF0dXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKSA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyKChzdGF0dXMpID0+IHN0YXR1cyAhPT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGZkLWJ1c3ktaW5kaWNhdG9yICpuZ0lmPVwiX2ZpcnN0TG9hZGluZ0RvbmU7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCIgW2xvYWRpbmddPVwiZm9ybUxvYWRpbmdcIiBbYmxvY2tdPVwidHJ1ZVwiPlxuICAgIDxmZHAtZm9ybS1ncm91cFxuICAgICAgICAqbmdJZj1cImZvcm1cIlxuICAgICAgICBbaGludF09XCJoaW50XCJcbiAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICBbaGlkZU1haW5USXRsZV09XCJoaWRlTWFpblRJdGxlXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwibGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZmllbGRDb2x1bW5MYXlvdXRdPVwiZmllbGRDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgIFt1bmlmaWVkTGF5b3V0XT1cInVuaWZpZWRMYXlvdXRcIlxuICAgICAgICBbaW5saW5lQ29sdW1uTGF5b3V0XT1cImlubGluZUNvbHVtbkxheW91dFwiXG4gICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgX2Vycm9yTW9kZWxzXCI+XG4gICAgICAgICAgICA8c3BhbiAqZmRwRm9ybUZpZWxkRXJyb3I9XCJlcnJvci50eXBlOyBsZXQgZGlyZWN0aXZlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGl2ZUVycm9yLmhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmhlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3RpdmVFcnJvci5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9ySGVhZGluZz1cImxldCB2YWxpZGF0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2tCeTogX3RyYWNrRm5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgZmllbGQ6IGZpZWxkLCBmb3JtRmllbGROYW1lOiBmaWVsZC5mb3JtSXRlbS5uYW1lLCByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICBsZXQtZmllbGQ9XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgbGV0LWZvcm1GaWVsZE5hbWU9XCJmb3JtRmllbGROYW1lXCJcbiAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIGxldC1yYW5rPVwicmFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJmaWVsZDsgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3VsZFNob3ddPVwic2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImZvcm1GaWVsZE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVQYXRoXT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dyb3VwUmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJnZXRIaW50T3B0aW9ucyhmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmxhYmVsQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybU5hbWVdPVwiZmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEZpZWxkIG9mIGZpZWxkIHwgZ2V0T3JkZXJlZEZpZWxkQ29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tncm91cEZpZWxkLmZvcm1JdGVtLm5hbWUhXSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3ItZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGdyb3VwRmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdWxkU2hvd109XCJzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImdyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwiZ3JvdXBGaWVsZC5mb3JtSXRlbS5yYW5rIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC1mb3JtLWZpZWxkLWdyb3VwPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxmZHAtZm9ybS1maWVsZCAqbmdJZj1cIiFub0FkZGl0aW9uYWxDb250ZW50XCIgW2NvbHVtbl09XCIxXCIgW3JhbmtdPVwiZm9ybUNvbnRyb2xJdGVtcy5sZW5ndGggKyAxXCI+XG4gICAgICAgICAgICA8IS0tIEZvciB1c2VyLWRlZmluZWQgZWxlbWVudHMsIGxpa2Ugc3VibWl0IGJ1dHRvbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9mZHAtZm9ybS1maWVsZD5cbiAgICA8L2ZkcC1mb3JtLWdyb3VwPlxuPC9mZC1idXN5LWluZGljYXRvcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGZkLXNrZWxldG9uIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMHB4XCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtXCI+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMzUlXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBUzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRXJHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBZWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSwwQkFBMEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RILE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBRSwr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LG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkF5TTFDLE1BQU07MkJBQUMsdUNBQXVDOzRDQXBNbkQsUUFBUTtzQkFEUCxLQUFLO2dCQVFGLFNBQVM7c0JBRFosS0FBSztnQkFpQk4sU0FBUztzQkFEUixLQUFLO2dCQU9OLGFBQWE7c0JBRFosS0FBSztnQkFRTixJQUFJO3NCQURILEtBQUs7Z0JBVU4sWUFBWTtzQkFEWCxLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBU04sbUJBQW1CO3NCQURsQixLQUFLO2dCQVFOLFdBQVc7c0JBRFYsTUFBTTtnQkFRUCxhQUFhO3NCQURaLE1BQU07Z0JBT1AsbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLE1BQU07c0JBREwsU0FBUzt1QkFBQyxNQUFNO2dCQUtqQixTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUs3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0dXMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDb2x1bW5MYXlvdXQsXG4gICAgRmllbGRIaW50T3B0aW9ucyxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgSGludE9wdGlvbnMsXG4gICAgSGludElucHV0XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3ItZmllbGQvZm9ybS1nZW5lcmF0b3ItZmllbGQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMsXG4gICAgRHluYW1pY0Zvcm1JdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMsXG4gICAgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvbk9iamVjdCxcbiAgICBEeW5hbWljRm9ybVZhbHVlXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWl0ZW0nO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzXG59IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1jb250cm9sJztcbmltcG9ydCB7IER5bmFtaWNGb3JtR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1ncm91cCc7XG5pbXBvcnQgeyBEZWZhdWx0R2FwTGF5b3V0LCBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dCwgRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXQgfSBmcm9tICcuLi8uLi9mb3JtLWdyb3VwL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGRFBfRk9STV9HRU5FUkFUT1JfREVGQVVMVF9ISU5UX09QVElPTlMgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci50b2tlbnMnO1xuaW1wb3J0IHsgZGVmYXVsdEZvcm1HZW5lcmF0b3JIaW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbmZpZy9kZWZhdWx0LWZvcm0tZ2VuZXJhdG9yLWhpbnQtb3B0aW9ucyc7XG5cbmxldCBmb3JtVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY29uc3QgRkRQX0ZPUk1fSUdOT1JFRF9TVEFUVVNFUzogRm9ybUNvbnRyb2xTdGF0dXNbXSA9IFsnSU5WQUxJRCcsICdQRU5ESU5HJywgJ0RJU0FCTEVEJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibWl0Rm9ybUV2ZW50UmVzdWx0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5kaWNhdG9yIGlmIHZhbGlkYXRpb24gaGFzIGJlZW4gcGFzc2VkLlxuICAgICAqL1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZvcm1hdHRlZCBmb3JtIHZhbHVlLlxuICAgICAqL1xuICAgIHZhbHVlOiBEeW5hbWljRm9ybVZhbHVlIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRm9ybSBHZW5lcmF0b3IgY29tcG9uZW50IHJlcHJlc2VudHMgYSBoaWdoLWxldmVsIGNvbXBvbmVudFxuICogd2hpY2ggaW5jbHVkZXMgQHNlZSBGb3JtR3JvdXAgaW5zaWRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1mb3JtLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBVbmlxdWUgZm9ybSBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBmb3JtTmFtZSA9IGBmZHAtZm9ybS1nZW5lcmF0b3ItJHtmb3JtVW5pcXVlSWQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgQHNlZSBEeW5hbWljRm9ybUl0ZW0gcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGl0ZW1zXG4gICAgICogdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybUl0ZW1zKGZvcm1JdGVtczogRHluYW1pY0Zvcm1JdGVtW10pIHtcbiAgICAgICAgaWYgKCFmb3JtSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtcyA9IGZvcm1JdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoeyAuLi5pdGVtLCByYW5rOiBpdGVtLnJhbmsgfHwgaW5kZXggfSkpO1xuICAgICAgICB0aGlzLl9nZW5lcmF0ZUZvcm0oKTtcbiAgICB9XG4gICAgZ2V0IGZvcm1JdGVtcygpOiBEeW5hbWljRm9ybUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZvcm0gbWFpbiB0aXRsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1haW5UaXRsZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSBtYWluIHRpdGxlLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU1haW5USXRsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSGludCBmb3IgdGhlIG1haW4gdGl0bGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpbnQ6IEhpbnRJbnB1dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZ5IHRoZSBjb2x1bW4gbGF5b3V0IGluIHRoZSBmb3JtYXQgYFhMbi1Mbi1Nbi1TbmBcbiAgICAgKiB3aGVyZSBuIGlzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgY2FuIGJlIGRpZmZlcmVudCBmb3IgZWFjaCBzaXplLlxuICAgICAqIGVnOiBYTDItTDItTTItUzEgd291bGQgY3JlYXRlIDItY29sdW1uIGxheW91dHMgZm9yIFhMLCBMLFxuICAgICAqIGFuZCBNIHNpemVzIGFuZCBzaW5nbGUtY29sdW1uIGxheW91dCBmb3IgUyBzaXplLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uTGF5b3V0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGZpZWxkJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnYXBDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRHYXBMYXlvdXQ7XG5cbiAgICAvKiogV2hldGhlciBhbGwgZm9ybSBpdGVtcyBzaG91bGQgaGF2ZSBpZGVudGljYWwgbGF5b3V0IHByb3ZpZGVkIGZvciBmb3JtIGdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdW5pZmllZExheW91dCA9IHRydWU7XG5cbiAgICAvKiogSW5saW5lIGNvbHVtbiBsYXlvdXQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlubGluZUNvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmVtb3ZlcyBleHRyYSBlbXB0eSByb3cuXG4gICAgICogVE9ETzogcmVtb3ZlIGFmdGVyICM3NTMzIGhhcyBiZWVuIGZpeGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9BZGRpdGlvbmFsQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV2ZW50IHdoaWNoIG5vdGlmaWVzIHBhcmVudCBjb21wb25lbnQgdGhhdCB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZFxuICAgICAqIGFuZCBhbGwgY29udHJvbHMgYXJlIGluIHBsYWNlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1DcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUdyb3VwPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV2ZW50IHdoaWNoIG5vdGlmaWVzIHBhcmVudCBjb21wb25lbnQgdGhhdCB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdmFsaWRhdGVkXG4gICAgICogYW5kIHN1Ym1pdHRlZC4gQ29udGFpbnMgZm9ybVxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1TdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtVmFsdWU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIHdhcyBzdWJtaXR0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8U3VibWl0Rm9ybUV2ZW50UmVzdWx0PigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGZvcm0gaW5zdGFuY2UuIEBzZWUgTmdGb3JtXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pXG4gICAgbmdGb3JtOiBOZ0Zvcm07XG5cbiAgICAvKiogSW5uZXIgZm9ybSBncm91cCBkaXJlY3RpdmUuICovXG4gICAgQFZpZXdDaGlsZChGb3JtR3JvdXBEaXJlY3RpdmUpXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmU7XG5cbiAgICAvKiogSW5uZXIgZm9ybSBmaWVsZHMgKi9cbiAgICBAVmlld0NoaWxkcmVuKEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudClcbiAgICBmaWVsZHM6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yRmllbGRDb21wb25lbnQ+O1xuXG4gICAgLyoqIEFycmF5IG9mIGZvcm0gZmllbGQgY29udHJvbHMuICovXG4gICAgZ2V0IGZvcm1GaWVsZHMoKTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZHNcbiAgICAgICAgICAgID8udG9BcnJheSgpXG4gICAgICAgICAgICAuZmlsdGVyKChmaWVsZCkgPT4gISFmaWVsZC5maWVsZFJlbmRlcmVyPy5jb250cm9sKVxuICAgICAgICAgICAgLm1hcCgoZmllbGQpID0+IGZpZWxkLmZpZWxkUmVuZGVyZXIuY29udHJvbCEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEeW5hbWljYWxseSBnZW5lcmF0ZWQgZm9ybS4gQHNlZSBGb3JtR2VuZXJhdG9yU2VydmljZVxuICAgICAqL1xuICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXA7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgdGhlIGZvcm0gY29udHJvbHMuXG4gICAgICovXG4gICAgZm9ybUNvbnRyb2xJdGVtczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xbXTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvZiBmbGFncyByZXByZXNlbnRpbmcgaWYgcGFydGljdWxhciBmb3JtIGl0ZW0gc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHVzZXIuXG4gICAgICovXG4gICAgc2hvdWxkU2hvd0ZpZWxkczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEZsYWcgcmVwcmVzZW50aW5nIHRoYXQgZm9ybSBpcyBsb2FkaW5nXG4gICAgICovXG4gICAgZm9ybUxvYWRpbmcgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIG9mIGZvcm0gbG9hZGluZyBzdGF0ZS5cbiAgICAgKi9cbiAgICBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5mb3JtTG9hZGluZyk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgbGFzdCBmb3JtIHN1Ym1pc3Npb24gc3RhdHVzLlxuICAgICAqL1xuICAgIGZvcm1TdWJtaXR0ZWRTdGF0dXMkID0gbmV3IFN1YmplY3Q8U3VibWl0Rm9ybUV2ZW50UmVzdWx0PigpO1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIG9mIGxhc3QgZm9ybSBzdWJtaXNzaW9uIHZhbHVlLlxuICAgICAqL1xuICAgIGZvcm1WYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PER5bmFtaWNGb3JtVmFsdWU+KHt9KTtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogVG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGZpcnN0IGxvYWRpbmcgd2hlbiBza2VsZXRvbnMgYmUgc2hvd24gYW5kIHN1YnNlcXVlbnQgbG9hZGluZ3Mgd2hlbiBidXN5IGluZGljYXRvciBiZSBzaG93blxuICAgICAqL1xuICAgIF9maXJzdExvYWRpbmdEb25lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgaGludE9wdGlvbnM6IEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXJyb3JNb2RlbHM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtczogRHluYW1pY0Zvcm1JdGVtW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybVZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0SGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25nU3VibWl0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9mZ1NlcnZpY2U6IEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TKSBfcHJvdmlkZWRIaW50T3B0aW9uczogRmllbGRIaW50T3B0aW9uc1xuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0SGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0Rm9ybUdlbmVyYXRvckhpbnRPcHRpb25zLFxuICAgICAgICAgICAgLi4uX3Byb3ZpZGVkSGludE9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9lcnJvck1vZGVscyA9IHRoaXMuX2dldEVycm9ycygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5oaW50KSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGludCA9PT0gJ3N0cmluZycgfHwgdGhpcy5oaW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5oaW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fbmdTdWJtaXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIGZvcm0gaXRlbXMgdmlzaWJpbGl0eSB3aXRoICd3aGVuJyBjb25kaXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgcmVmcmVzaFN0ZXBzVmlzaWJpbGl0eSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zaG91bGRTaG93RmllbGRzID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmNoZWNrVmlzaWJsZUZvcm1JdGVtcyh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgYXN5bmMgX29uU3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmdldEZvcm1WYWx1ZSh0aGlzLmZvcm0pO1xuXG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZFN0YXR1cy5lbWl0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMkLm5leHQoeyBzdWNjZXNzOiAhdGhpcy5mb3JtLmludmFsaWQsIHZhbHVlOiBmb3JtVmFsdWUgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkLmVtaXQoZm9ybVZhbHVlKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUkLm5leHQoZm9ybVZhbHVlKTtcblxuICAgICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdHJhY2tGbihpbmRleDogbnVtYmVyLCB2YWx1ZTogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2wpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7aW5kZXh9XyR7dmFsdWUuZm9ybUl0ZW0ubmFtZX1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2dyYW1tYXRpY2FsbHkgc3VibWl0IGZvcm0uXG4gICAgICogVGhpcyBtZXRob2QgYWxzbyBjYWxscyB2YWxpZGF0aW9uIGZvciB0aGUgZm9ybSBpdGVtcy5cbiAgICAgKi9cbiAgICBzdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm9uU3VibWl0KG5ldyBFdmVudCgnc3VibWl0JykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFVzZWQgZm9yIGV4dHJhY3RpbmcgaGludE9wdGlvbnMgZnJvbSBHdWlPcHRpb25zLiBUaGlzIHdpbGwgY29lcmNlIHN0cmluZyB8IEhpbnRPcHRpb25zIHRvIEZpZWxkSGludE9wdGlvbnMsXG4gICAgICogd2lsbCBjb21iaW5lIGRlZmF1bHQgdmFsdWUgb2YgaGludHMgZm9yIGZvcm0gZ2VuZXJhdG9yIHdpdGggcHJvdmlkZWQgb3B0aW9ucy5cbiAgICAgKiBAcGFyYW0gZ3VpT3B0aW9uc1xuICAgICAqL1xuICAgIGdldEhpbnRPcHRpb25zKFxuICAgICAgICBndWlPcHRpb25zPzogQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMgfCBEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zXG4gICAgKTogRmllbGRIaW50T3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghZ3VpT3B0aW9ucz8uaGludCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1JdGVtSGludE9wdGlvbnMgPSBndWlPcHRpb25zLmhpbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgZm9ybUl0ZW1IaW50T3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgZm9ybUl0ZW1IaW50T3B0aW9ucyBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAuLi5mb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNBZHZhbmNlZEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIGVycm9yLmhlYWRpbmcgJiYgZXJyb3IuZGVzY3JpcHRpb24gJiYgZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2VuZXJhdGVGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGNvbnN0IGZvcm0gPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuZ2VuZXJhdGVGb3JtKHRoaXMuZm9ybU5hbWUsIHRoaXMuZm9ybUl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcblxuICAgICAgICB0aGlzLmZvcm1Db250cm9sSXRlbXMgPSB0aGlzLl9nZXRPcmRlcmVkQ29udHJvbHMoZm9ybS5jb250cm9scyk7XG5cbiAgICAgICAgdGhpcy5zaG91bGRTaG93RmllbGRzID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmNoZWNrVmlzaWJsZUZvcm1JdGVtcyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1WYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZmlyc3RMb2FkaW5nRG9uZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuZm9ybUNyZWF0ZWQuZW1pdCh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodGhpcy5mb3JtTG9hZGluZyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TdWJtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRDb250cm9scyhjb250cm9sczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzKTogKER5bmFtaWNGb3JtQ29udHJvbCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT4gKGEuZm9ybUl0ZW0/LnJhbmsgPz8gLUluZmluaXR5KSAtIChiLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVycm9ycygpOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xuICAgICAgICBjb25zdCByZXR1cm5FcnJvcnM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZWdpc3RlcmVkRXJyb3JzID0gdGhpcy5fZmdTZXJ2aWNlLnZhbGlkYXRpb25FcnJvckhpbnRzO1xuICAgICAgICBPYmplY3QuZW50cmllcyhyZWdpc3RlcmVkRXJyb3JzKS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JUeXBlLCBlcnJvclZhbHVlXSA9IHR5cGU7XG5cbiAgICAgICAgICAgIHJldHVybkVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVycm9yVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3JzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC5zdGF0dXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKSA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyKChzdGF0dXMpID0+IHN0YXR1cyAhPT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGZkLWJ1c3ktaW5kaWNhdG9yICpuZ0lmPVwiX2ZpcnN0TG9hZGluZ0RvbmU7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCIgW2xvYWRpbmddPVwiZm9ybUxvYWRpbmdcIiBbYmxvY2tdPVwidHJ1ZVwiPlxuICAgIDxmZHAtZm9ybS1ncm91cFxuICAgICAgICAqbmdJZj1cImZvcm1cIlxuICAgICAgICBbaGludF09XCJoaW50XCJcbiAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICBbaGlkZU1haW5USXRsZV09XCJoaWRlTWFpblRJdGxlXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwibGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZmllbGRDb2x1bW5MYXlvdXRdPVwiZmllbGRDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgIFt1bmlmaWVkTGF5b3V0XT1cInVuaWZpZWRMYXlvdXRcIlxuICAgICAgICBbaW5saW5lQ29sdW1uTGF5b3V0XT1cImlubGluZUNvbHVtbkxheW91dFwiXG4gICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgX2Vycm9yTW9kZWxzXCI+XG4gICAgICAgICAgICA8c3BhbiAqZmRwRm9ybUZpZWxkRXJyb3I9XCJlcnJvci50eXBlOyBsZXQgZGlyZWN0aXZlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGl2ZUVycm9yLmhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmhlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3RpdmVFcnJvci5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9ySGVhZGluZz1cImxldCB2YWxpZGF0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2tCeTogX3RyYWNrRm5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgZmllbGQ6IGZpZWxkLCBmb3JtRmllbGROYW1lOiBmaWVsZC5mb3JtSXRlbS5uYW1lLCByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICBsZXQtZmllbGQ9XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgbGV0LWZvcm1GaWVsZE5hbWU9XCJmb3JtRmllbGROYW1lXCJcbiAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIGxldC1yYW5rPVwicmFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJmaWVsZDsgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3VsZFNob3ddPVwic2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImZvcm1GaWVsZE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVQYXRoXT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dyb3VwUmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJnZXRIaW50T3B0aW9ucyhmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmxhYmVsQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybU5hbWVdPVwiZmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEZpZWxkIG9mIGZpZWxkIHwgZ2V0T3JkZXJlZEZpZWxkQ29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tncm91cEZpZWxkLmZvcm1JdGVtLm5hbWUhXSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3ItZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGdyb3VwRmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdWxkU2hvd109XCJzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImdyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwiZ3JvdXBGaWVsZC5mb3JtSXRlbS5yYW5rIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC1mb3JtLWZpZWxkLWdyb3VwPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxmZHAtZm9ybS1maWVsZCAqbmdJZj1cIiFub0FkZGl0aW9uYWxDb250ZW50XCIgW2NvbHVtbl09XCIxXCIgW3JhbmtdPVwiZm9ybUNvbnRyb2xJdGVtcy5sZW5ndGggKyAxXCI+XG4gICAgICAgICAgICA8IS0tIEZvciB1c2VyLWRlZmluZWQgZWxlbWVudHMsIGxpa2Ugc3VibWl0IGJ1dHRvbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9mZHAtZm9ybS1maWVsZD5cbiAgICA8L2ZkcC1mb3JtLWdyb3VwPlxuPC9mZC1idXN5LWluZGljYXRvcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGZkLXNrZWxldG9uIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMHB4XCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtXCI+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMzUlXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -71,7 +71,7 @@ export class FormGeneratorFieldComponent {
71
71
  return error.heading && error.description && error.type;
72
72
  }
73
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGeneratorFieldComponent, deps: [{ token: i1.FormGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: { field: "field", form: "form", i18n: "i18n", formFieldName: "formFieldName", formGroupNamePath: "formGroupNamePath", rank: "rank", shouldShow: "shouldShow", hintOptions: "hintOptions" }, providers: [formFieldProvider, formGroupChildProvider], viewQueries: [{ propertyName: "fieldRenderer", first: true, predicate: i0.forwardRef(function () { return FormFieldComponent; }), descendants: true }], ngImport: i0, template: "<fdp-form-field\n [hint]=\"hintOptions\"\n [placeholder]=\"_placeholder\"\n [id]=\"field.formItem.id || formFieldName\"\n [column]=\"field.formItem.guiOptions?.column || 1\"\n [columnLayout]=\"field.formItem.guiOptions?.columnLayout\"\n [colon]=\"field.formItem.guiOptions?.appendColon === true\"\n [label]=\"field.formItem.message\"\n [validators]=\"field.formItem.validators || []\"\n [required]=\"field.formItem.required\"\n [rank]=\"rank\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [noLabelLayout]=\"field.formItem.guiOptions?.noLabelLayout || false\"\n [formGroup]=\"form\"\n #formField\n>\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container\n [formField]=\"formField\"\n [form]=\"form\"\n [formGroupNamePath]=\"formGroupNamePath\"\n fdpDynamicFormControl\n [id]=\"field.formItem.id || formFieldName\"\n [name]=\"formFieldName\"\n [formItem]=\"field.formItem\"\n >\n </ng-container>\n</fdp-form-field>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hintPlacement", "hint", "labelLayout", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "directive", type: i4.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i5.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i6.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.DynamicFormControlDirective, selector: "[fdpDynamicFormControl]", inputs: ["formItem", "id", "name", "form", "formGroupNamePath", "formField"] }], encapsulation: i0.ViewEncapsulation.None }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: { field: "field", form: "form", i18n: "i18n", formFieldName: "formFieldName", formGroupNamePath: "formGroupNamePath", rank: "rank", shouldShow: "shouldShow", hintOptions: "hintOptions" }, providers: [formFieldProvider, formGroupChildProvider], viewQueries: [{ propertyName: "fieldRenderer", first: true, predicate: i0.forwardRef(function () { return FormFieldComponent; }), descendants: true }], ngImport: i0, template: "<fdp-form-field\n [hint]=\"hintOptions\"\n [placeholder]=\"_placeholder\"\n [id]=\"field.formItem.id || formFieldName\"\n [column]=\"field.formItem.guiOptions?.column || 1\"\n [columnLayout]=\"field.formItem.guiOptions?.columnLayout\"\n [colon]=\"field.formItem.guiOptions?.appendColon === true\"\n [label]=\"field.formItem.message\"\n [validators]=\"field.formItem.validators || []\"\n [required]=\"field.formItem.required\"\n [rank]=\"rank\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [noLabelLayout]=\"field.formItem.guiOptions?.noLabelLayout || false\"\n [formGroup]=\"form\"\n #formField\n>\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container\n [formField]=\"formField\"\n [form]=\"form\"\n [formGroupNamePath]=\"formGroupNamePath\"\n fdpDynamicFormControl\n [id]=\"field.formItem.id || formFieldName\"\n [name]=\"formFieldName\"\n [formItem]=\"field.formItem\"\n >\n </ng-container>\n</fdp-form-field>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hint", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "directive", type: i4.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i5.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i6.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.DynamicFormControlDirective, selector: "[fdpDynamicFormControl]", inputs: ["formItem", "id", "name", "form", "formGroupNamePath", "formField"] }], encapsulation: i0.ViewEncapsulation.None }); }
75
75
  }
76
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGeneratorFieldComponent, decorators: [{
77
77
  type: Component,
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdlbmVyYXRvci9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQ29sdW1uTGF5b3V0LFxuICAgIEZpZWxkSGludElucHV0LFxuICAgIEhpbnRJbnB1dCxcbiAgICBIaW50UGxhY2VtZW50LFxuICAgIElubGluZUxheW91dCxcbiAgICBMYWJlbExheW91dCxcbiAgICBTZWxlY3RJdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUdyb3VwIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tZ3JvdXAnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sLCBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1jb250cm9sJztcbmltcG9ydCB7IFRleHRBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi9jb21ib2JveCc7XG5pbXBvcnQgeyBGZERhdGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL29iamVjdC1zdGF0dXMnO1xuaW1wb3J0IHsgSW5kaWNhdGlvbkNvbG9yVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vb2JqZWN0LXN0YXR1cyc7XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbUNob2ljZTxUID0gYW55PiA9XG4gICAgfCBEeW5hbWljRm9ybUl0ZW1DaG9pY2VUeXBlczxUPltdXG4gICAgfCBPYnNlcnZhYmxlPER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQ+W10+XG4gICAgfCBQcm9taXNlPER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQ+W10+O1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUl0ZW1DaG9pY2VUeXBlczxUID0gYW55PiA9IG51bWJlciB8IHN0cmluZyB8IFNlbGVjdEl0ZW08VD47XG4vKiogQWR2YW5jZWQgZXJyb3IgdHlwZS4gVXNlZCB0byByZW5kZXIgbW9yZSBjb21wbGV4IGVycm9yIHZpZXcgd2l0aCBjdXN0b20gZXJyb3IgdHlwZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvbk9iamVjdCB7XG4gICAgLyoqIEVycm9yIGhlYWRpbmcuICovXG4gICAgaGVhZGluZzogc3RyaW5nO1xuICAgIC8qKiBFcnJvciBkZXNjcmlwdGlvbi4gKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAvKiogRXJyb3Igc3RhdGUgKi9cbiAgICB0eXBlOiBGb3JtU3RhdGVzO1xufVxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdCA9IG51bGwgfCBib29sZWFuIHwgc3RyaW5nIHwgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvbk9iamVjdDtcbi8qKlxuICogRHluYW1pYyBmb3JtIGl0ZW0gdHlwZS5cbiAqXG4gKiBgVGAgdHlwZSByZXByZXNlbnRzIGFkZGl0aW9uYWwgdHlwZSBwcm9wZXJ0aWVzLlxuICogYFVgIHR5cGUgcmVwcmVzZW50cyBhZGRpdGlvbmFsIGBEeW5hbWljRm9ybUZpZWxkSXRlbWAgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUl0ZW08XG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIFUgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0gPSBBbnlEeW5hbWljRm9ybUZpZWxkSXRlbVxuPiA9IER5bmFtaWNGb3JtRmllbGRHcm91cCB8IER5bmFtaWNGb3JtRmllbGRJdGVtPFQsIFU+O1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtRmllbGRHcm91cCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSUQgb2YgdGhlIGZvcm0gaXRlbSwgaWYgbm90IHByb3ZpZGVkLCBuYW1lIHdpbGwgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGl0ZW0gaW4gZm9ybS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IG5hbWUgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgbWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIExpc3Qgb2YgQHNlZSBEeW5hbWljRm9ybUl0ZW0gcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGl0ZW1zXG4gICAgICogdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0uXG4gICAgICovXG4gICAgaXRlbXM/OiBEeW5hbWljRm9ybUZpZWxkSXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmFuayBpcyB1c2VkIGZvciBvcmRlcmluZy5cbiAgICAgKiBUaGFuIGxvd2VyIG51bWJlciB0aGVuIGhpZ2hlciBwcmlvcml0eS5cbiAgICAgKi9cbiAgICByYW5rPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQWRkaXRpb25hbCBzZXQgb2Ygb3B0aW9ucyB0aGF0IGNhbiBhZmZlY3QgVUkgb2YgdGhlIGZvcm0gZmllbGQgZ3JvdXAuXG4gICAgICovXG4gICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxUID0gc3RyaW5nPiA9IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCA9IGFueT4ge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFR5cGUgb2YgdGhlIGZvcm0gaXRlbS4gRS5nLiBpbnB1dCwgdGV4dGFyZWEsIGNoZWNrYm94LCBldGMuXG4gICAgICovXG4gICAgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElEIG9mIHRoZSBmb3JtIGl0ZW0sIGlmIG5vdCBwcm92aWRlZCwgbmFtZSB3aWxsIGJlIHVzZWQgaW5zdGVhZFxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogTmFtZSBvZiB0aGUgZm9ybSBpdGVtIGluIGZvcm0uXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGlzcGxheSBuYW1lIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIG1lc3NhZ2U6XG4gICAgICAgIHwgRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8c3RyaW5nPlxuICAgICAgICB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8c3RyaW5nPik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IHBsYWNlaG9sZGVyIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIHBsYWNlaG9sZGVyPzpcbiAgICAgICAgfCBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+XG4gICAgICAgIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHRydWUsIHdpbGwgZmFsbCBiYWNrIHRvIGBtZXNzYWdlYCBwcm9wZXJ0eSBpZiBgcGxhY2Vob2xkZXJgIHdhcyBub3QgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdXNlTWVzc2FnZUFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBvZiB0aGUgZm9ybSBpdGVtLlxuICAgICAqL1xuICAgIGRlZmF1bHQ/OiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxUPiB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8VD4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmVjZWl2ZSB0aGUgdXNlciBpbnB1dCBhbmQgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIFNob3VsZCByZXR1cm4gbnVsbCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGFuZCBhbiBlcnJvciBtZXNzYWdlIChTdHJpbmcpIG9yIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqIElmIGBmYWxzZWAgaXMgcmV0dXJuZWQsIGEgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGlzIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEByZXR1cm5zIG51bGwgb3IgU3RyaW5nXG4gICAgICovXG4gICAgdmFsaWRhdGU/OiAoXG4gICAgICAgIGZvcm1JdGVtVmFsdWU6IFQsXG4gICAgICAgIGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWVcbiAgICApID0+XG4gICAgICAgIHwgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdFxuICAgICAgICB8IFByb21pc2U8RHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdD5cbiAgICAgICAgfCBPYnNlcnZhYmxlPER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHQ+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgdmFsaWRhdG9ycyBhcHBsaWVkIHRvIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW10gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXN5bmMgdmFsaWRhdG9ycyBhcHBsaWVkIHRvIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHdoZW4gZm9ybSBpdGVtIGlzIGEgbWFuZGF0b3J5IG9uZS5cbiAgICAgKi9cbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmb3JtcyByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbSBAc2VlIER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICogQHJldHVybnMgdXBkYXRlZCBmb3JtIGl0ZW0gdmFsdWUgdG8gYmUgdXNlZCBpbiB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybWVyPzogKFxuICAgICAgICBmb3JtSXRlbVZhbHVlOiBULFxuICAgICAgICBmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlLFxuICAgICAgICBmb3JtSXRlbT86IER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmb3JtcyByYXcgZm9ybSBpdGVtIHZhbHVlIGZvciByZW5kZXIgcHVycG9zZXMuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHBhcmFtIGZvcm1JdGVtIEBzZWUgRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgKiBAcmV0dXJucyB1cGRhdGVkIGZvcm0gaXRlbSB2YWx1ZSB0byBiZSB1c2VkIGluIHRoZSBmb3JtIHZhbHVlIGhhc2ggZm9yIHJlbmRlcmluZyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICB2YWx1ZVJlbmRlcmVyPzogKFxuICAgICAgICBmb3JtSXRlbVZhbHVlOiBULFxuICAgICAgICBmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlLFxuICAgICAgICBmb3JtSXRlbT86IER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoaXMgZm9ybSBpdGVtIHNob3VsZCBiZSBhc2tlZC5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHBhcmFtIGZvcm1zIEFsbCBhdmFpbGFibGUgZm9ybXMgc3RvcmVkIGluIGZvcm0gZ2VuZXJhdG9yIHNlcnZpY2UuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgRHluYW1pYyBmb3JtIGNvbnRyb2wuXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuICAgIHdoZW4/OiAoXG4gICAgICAgIGZvcm1WYWx1ZTogRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICAgICAgZm9ybXM6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtR3JvdXA+LFxuICAgICAgICBjb250cm9sOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFxuICAgICkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIGFmdGVyIGZpZWxkIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICogQHBhcmFtIGZpZWxkVmFsdWUgRmllbGQgdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1zIEFsbCBhdmFpbGFibGUgZm9ybXMgc3RvcmVkIGluIGZvcm0gZ2VuZXJhdG9yIHNlcnZpY2UuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgRHluYW1pYyBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgb25jaGFuZ2U/OiAoXG4gICAgICAgIGZpZWxkVmFsdWU6IFQsXG4gICAgICAgIGZvcm1zOiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUdyb3VwPixcbiAgICAgICAgY29udHJvbDogRHluYW1pY0Zvcm1Db250cm9sXG4gICAgKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB8IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVXNlZCBhcyBhIHN0YXRpYyBmbGFnIG9uIHNob3VsZCB0aGlzIGZvcm0gaXRlbSBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJhbmsgaXMgdXNlZCBmb3Igb3JkZXJpbmcuXG4gICAgICogVGhhbiBsb3dlciBudW1iZXIgdGhlbiBoaWdoZXIgcHJpb3JpdHkuXG4gICAgICovXG4gICAgcmFuaz86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFkZGl0aW9uYWwgc2V0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYWZmZWN0IFVJIG9mIHRoZSBmb3JtIGl0ZW0gZm9ybSBjb250cm9sLlxuICAgICAqL1xuICAgIGd1aU9wdGlvbnM/OiBEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0RHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08c3RyaW5nPiB7XG4gICAgdHlwZTogJ2lucHV0JyB8ICdlbWFpbCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQWRkaXRpb25hbCBzZXQgb2Ygb3B0aW9ucyB0aGF0IGNhbiBhZmZlY3QgVUkgb2YgdGhlIGZvcm0gaXRlbSBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgY29udHJvbFR5cGU/OiBJbnB1dFR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlckR5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPEZkRGF0ZT4ge1xuICAgIHR5cGU6ICdkYXRlcGlja2VyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0QXJlYUR5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPHN0cmluZz4ge1xuICAgIHR5cGU6ICdlZGl0b3InIHwgJ3RleHRhcmVhJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxib29sZWFuPiB7XG4gICAgdHlwZTogJ3N3aXRjaCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW08VCA9IER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPGFueT4+IGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPFQ+IHtcbiAgICB0eXBlOiAnc2VsZWN0JyB8ICdsaXN0JyB8ICdtdWx0aS1pbnB1dCc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgdG8gc2VsZWN0LlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBjaG9pY2VzPzogRHluYW1pY0Zvcm1JdGVtQ2hvaWNlIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UpO1xuXG4gICAgc2Vjb25kYXJ5S2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqIFNob3cgdGhlIHNlY29uZCBjb2x1bW4gKEFwcGxpY2FibGUgZm9yIHR3byBjb2x1bW5zIGxheW91dCkgKi9cbiAgICBzaG93U2Vjb25kYXJ5VGV4dD86IGJvb2xlYW47XG5cbiAgICAvKiogSG9yaXpvbnRhbGx5IGFsaWduIHRleHQgaW5zaWRlIHRoZSBzZWNvbmQgY29sdW1uIChBcHBsaWNhYmxlIGZvciB0d28gY29sdW1ucyBsYXlvdXQpICovXG4gICAgc2Vjb25kYXJ5VGV4dEFsaWdubWVudD86IFRleHRBbGlnbm1lbnQ7XG4gICAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIGJ1aWxkIGNvbnRyb2wgYm9keS4gKi9cbiAgICBjb250cm9sVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhZGlvRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBPbWl0PFNlbGVjdER5bmFtaWNGb3JtRmllbGRJdGVtPGFueT4sICd0eXBlJz4ge1xuICAgIHR5cGU6ICdyYWRpbycgfCAnY29uZmlybSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tib3hEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIE9taXQ8U2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW08YW55PiwgJ3R5cGUnPiB7XG4gICAgdHlwZTogJ2NoZWNrYm94Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RTdGF0dXNEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxzdHJpbmc+IHtcbiAgICB0eXBlOiAnb2JqZWN0LXN0YXR1cyc7XG4gICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbVsnZ3VpT3B0aW9ucyddICYge1xuICAgICAgICBzdGF0dXM/OiBPYmplY3RTdGF0dXM7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIGluZGljYXRpb25Db2xvcj86IEluZGljYXRpb25Db2xvclR5cGU7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbnlEeW5hbWljRm9ybUZpZWxkSXRlbTxUID0gYW55PiBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxUPiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zIHRvIHNlbGVjdC5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICovXG4gICAgY2hvaWNlcz86IER5bmFtaWNGb3JtSXRlbUNob2ljZSB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRHluYW1pY0Zvcm1JdGVtQ2hvaWNlKTtcbn1cblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1GaWVsZEl0ZW08XG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIFUgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0gPSBBbnlEeW5hbWljRm9ybUZpZWxkSXRlbVxuPiA9IFQgJlxuICAgIChcbiAgICAgICAgfCBJbnB1dER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgRGF0ZVBpY2tlckR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgVGV4dEFyZWFEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFN3aXRjaER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgU2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBSYWRpb0R5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgQ2hlY2tib3hEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IE9iamVjdFN0YXR1c0R5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgVVxuICAgICAgICB8IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKTtcblxudHlwZSBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtRmllbGRzID0ge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBkZWZhdWx0OiBhbnk7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgY2hvaWNlcz86IFNlbGVjdEl0ZW1bXTtcbn07XG5cbi8qKlxuICogQGhpZGRlblxuICogSW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgRHluYW1pY0Zvcm1GaWVsZEl0ZW0gd2l0aCBhbGwgZmllbGRzIHJlc29sdmVkIHRvIGEgcGxhaW4gdmFsdWVcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbTxUIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtID0gQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPiA9IE9taXQ8XG4gICAgVCxcbiAgICBrZXlvZiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtRmllbGRzXG4+ICZcbiAgICBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtRmllbGRzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBsYWJlbENvbHVtbkxheW91dD86IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGZpZWxkQ29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBnYXBDb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJZiBzZXQsIGhpbnQgaWNvbiBpcyBhZGRlZCB0byBjb250cm9sIGxhYmVsIG9yIGdyb3VwIGhlYWRpbmcgd2l0aCB0b29sdGlwIG1lc3NhZ2UgYXMgYSB2YWx1ZS5cbiAgICAgKi9cbiAgICBoaW50PzogSGludElucHV0O1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBoaW50LnBsYWNlbWVudGAgaW5zdGVhZFxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERlZmluZSBoaW50IHBsYWNlbWVudC5cbiAgICAgKi9cbiAgICBoaW50UGxhY2VtZW50PzogSGludFBsYWNlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEluZGV4IG9mIGNvbHVtbiBpZiBmb3JtIGhhcyBtdWx0aS1jb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGNvbHVtbj86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIENvbHVtbiBhcnJhbmdlbWVudCBmb3IgZm9ybS1maWVsZCBiYXNlZCBvbiBzY3JlZW4gc2l6ZS5cbiAgICAgKi9cbiAgICBjb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbmxpbmUgbGF5b3V0IGZvciBsaXN0IGJhc2VkIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICBpbmxpbmVMYXlvdXQ/OiBJbmxpbmVMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzLlxuICAgICAqIERlZmluZSBmb3JtIGZpZWxkIGxhYmVsIHBsYWNlbWVudC5cbiAgICAgKi9cbiAgICBsYXlvdXQ/OiBMYWJlbExheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEZsYWcgaW5kaWNhdGluZyB0aGF0IGxhYmVsIHNob3VsZCBiZSBoaWRkZW4uXG4gICAgICovXG4gICAgbm9MYWJlbExheW91dD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJZiBzZXQsIGNvbnRyb2xzIGlubmVyIGVsZW1lbnRzIHdpbGwgYmUgaW5saW5lZC5cbiAgICAgKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSWYgc2V0LCBvdmVycmlkZXMgY3VycmVudCBjb250ZW50IGRlbnNpdHkgb2YgdGhlIGVsZW1lbnQgZGVmaW5lZCBvbiB0aGUgZ2xvYmFsIHNjb3BlLlxuICAgICAqL1xuICAgIGNvbnRlbnREZW5zaXR5PzogQ29udGVudERlbnNpdHk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT2JqZWN0IGNvbnRhaW5zIGFkZGl0aW9uYWwgcGF5bG9hZC4gVXNlZnVsIGZvciBjdXN0b20gZWxlbWVudHMgdG8gbWFuaXB1bGF0ZSBpdCdzIHZpZXcuXG4gICAgICovXG4gICAgYWRkaXRpb25hbERhdGE/OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJZiBsYWJlbCBzaG91bGQgYmUgYXBwZW5kZWQgd2l0aCBjb2xvbi4gVHJ1ZSBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIGFwcGVuZENvbG9uPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEhpbnQgb3B0aW9ucy4gRWl0aGVyIG9ubHkgdGV4dCBvciBmdWxsIGNvbmZpZ1xuICAgICAqL1xuICAgIGhpbnQ/OiBGaWVsZEhpbnRJbnB1dDtcbn1cblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1WYWx1ZSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdlbmVyYXRvci9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbHVtbkxheW91dCwgRmllbGRIaW50SW5wdXQsIEhpbnRJbnB1dCwgSW5saW5lTGF5b3V0LCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGb3JtR3JvdXAgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1ncm91cCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wsIER5bmFtaWNGb3JtR3JvdXBDb250cm9sIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgVGV4dEFsaWdubWVudCB9IGZyb20gJy4uLy4uL2NvbWJvYm94JztcbmltcG9ydCB7IEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBJbmRpY2F0aW9uQ29sb3JUeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9vYmplY3Qtc3RhdHVzJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1JdGVtQ2hvaWNlPFQgPSBhbnk+ID1cbiAgICB8IER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQ+W11cbiAgICB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT5cbiAgICB8IFByb21pc2U8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQgPSBhbnk+ID0gbnVtYmVyIHwgc3RyaW5nIHwgU2VsZWN0SXRlbTxUPjtcbi8qKiBBZHZhbmNlZCBlcnJvciB0eXBlLiBVc2VkIHRvIHJlbmRlciBtb3JlIGNvbXBsZXggZXJyb3IgdmlldyB3aXRoIGN1c3RvbSBlcnJvciB0eXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAvKiogRXJyb3IgaGVhZGluZy4gKi9cbiAgICBoZWFkaW5nOiBzdHJpbmc7XG4gICAgLyoqIEVycm9yIGRlc2NyaXB0aW9uLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBFcnJvciBzdGF0ZSAqL1xuICAgIHR5cGU6IEZvcm1TdGF0ZXM7XG59XG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0ID0gbnVsbCB8IGJvb2xlYW4gfCBzdHJpbmcgfCBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0O1xuLyoqXG4gKiBEeW5hbWljIGZvcm0gaXRlbSB0eXBlLlxuICpcbiAqIGBUYCB0eXBlIHJlcHJlc2VudHMgYWRkaXRpb25hbCB0eXBlIHByb3BlcnRpZXMuXG4gKiBgVWAgdHlwZSByZXByZXNlbnRzIGFkZGl0aW9uYWwgYER5bmFtaWNGb3JtRmllbGRJdGVtYCBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHwgRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCwgVT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJRCBvZiB0aGUgZm9ybSBpdGVtLCBpZiBub3QgcHJvdmlkZWQsIG5hbWUgd2lsbCBiZSB1c2VkIGluc3RlYWRcbiAgICAgKi9cbiAgICBpZD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIE5hbWUgb2YgdGhlIGZvcm0gaXRlbSBpbiBmb3JtLlxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgZm9ybSBpdGVtLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKi9cbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogTGlzdCBvZiBAc2VlIER5bmFtaWNGb3JtSXRlbSByZXByZXNlbnRpbmcgdGhlIGxpc3Qgb2YgaXRlbXNcbiAgICAgKiB0byBiZSByZW5kZXJlZCBpbiB0aGUgZm9ybS5cbiAgICAgKi9cbiAgICBpdGVtcz86IER5bmFtaWNGb3JtRmllbGRJdGVtW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSYW5rIGlzIHVzZWQgZm9yIG9yZGVyaW5nLlxuICAgICAqIFRoYW4gbG93ZXIgbnVtYmVyIHRoZW4gaGlnaGVyIHByaW9yaXR5LlxuICAgICAqL1xuICAgIHJhbms/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBBZGRpdGlvbmFsIHNldCBvZiBvcHRpb25zIHRoYXQgY2FuIGFmZmVjdCBVSSBvZiB0aGUgZm9ybSBmaWVsZCBncm91cC5cbiAgICAgKi9cbiAgICBndWlPcHRpb25zPzogQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIEZkcEZvcm1HZW5lcmF0b3JBc3luY1Byb3BlcnR5PFQgPSBzdHJpbmc+ID0gVCB8IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxUID0gYW55PiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVHlwZSBvZiB0aGUgZm9ybSBpdGVtLiBFLmcuIGlucHV0LCB0ZXh0YXJlYSwgY2hlY2tib3gsIGV0Yy5cbiAgICAgKi9cbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSUQgb2YgdGhlIGZvcm0gaXRlbSwgaWYgbm90IHByb3ZpZGVkLCBuYW1lIHdpbGwgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGl0ZW0gaW4gZm9ybS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IG5hbWUgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgbWVzc2FnZTpcbiAgICAgICAgfCBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+XG4gICAgICAgIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERpc3BsYXkgcGxhY2Vob2xkZXIgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgcGxhY2Vob2xkZXI/OlxuICAgICAgICB8IEZkcEZvcm1HZW5lcmF0b3JBc3luY1Byb3BlcnR5PHN0cmluZz5cbiAgICAgICAgfCAoKGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWUpID0+IEZkcEZvcm1HZW5lcmF0b3JBc3luY1Byb3BlcnR5PHN0cmluZz4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSWYgdHJ1ZSwgd2lsbCBmYWxsIGJhY2sgdG8gYG1lc3NhZ2VgIHByb3BlcnR5IGlmIGBwbGFjZWhvbGRlcmAgd2FzIG5vdCBwcm92aWRlZC5cbiAgICAgKi9cbiAgICB1c2VNZXNzYWdlQXNQbGFjZWhvbGRlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEZWZhdWx0IHZhbHVlIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgZGVmYXVsdD86IEZkcEZvcm1HZW5lcmF0b3JBc3luY1Byb3BlcnR5PFQ+IHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxUPik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSZWNlaXZlIHRoZSB1c2VyIGlucHV0IGFuZCBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogU2hvdWxkIHJldHVybiBudWxsIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgYW5kIGFuIGVycm9yIG1lc3NhZ2UgKFN0cmluZykgb3IgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICogSWYgYGZhbHNlYCBpcyByZXR1cm5lZCwgYSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgaXMgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHJldHVybnMgbnVsbCBvciBTdHJpbmdcbiAgICAgKi9cbiAgICB2YWxpZGF0ZT86IChcbiAgICAgICAgZm9ybUl0ZW1WYWx1ZTogVCxcbiAgICAgICAgZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZVxuICAgICkgPT5cbiAgICAgICAgfCBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0XG4gICAgICAgIHwgUHJvbWlzZTxEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0PlxuICAgICAgICB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdD47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGUgbGlzdCBvZiB2YWxpZGF0b3JzIGFwcGxpZWQgdG8gdGhlIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXSB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGUgbGlzdCBvZiBhc3luYyB2YWxpZGF0b3JzIGFwcGxpZWQgdG8gdGhlIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXQgd2hlbiBmb3JtIGl0ZW0gaXMgYSBtYW5kYXRvcnkgb25lLlxuICAgICAqL1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2Zvcm1zIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHBhcmFtIGZvcm1JdGVtIEBzZWUgRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgKiBAcmV0dXJucyB1cGRhdGVkIGZvcm0gaXRlbSB2YWx1ZSB0byBiZSB1c2VkIGluIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgdHJhbnNmb3JtZXI/OiAoXG4gICAgICAgIGZvcm1JdGVtVmFsdWU6IFQsXG4gICAgICAgIGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWUsXG4gICAgICAgIGZvcm1JdGVtPzogRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApID0+IGFueSB8IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2Zvcm1zIHJhdyBmb3JtIGl0ZW0gdmFsdWUgZm9yIHJlbmRlciBwdXJwb3Nlcy5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1WYWx1ZSByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW0gQHNlZSBEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAqIEByZXR1cm5zIHVwZGF0ZWQgZm9ybSBpdGVtIHZhbHVlIHRvIGJlIHVzZWQgaW4gdGhlIGZvcm0gdmFsdWUgaGFzaCBmb3IgcmVuZGVyaW5nIHB1cnBvc2VzLlxuICAgICAqL1xuICAgIHZhbHVlUmVuZGVyZXI/OiAoXG4gICAgICAgIGZvcm1JdGVtVmFsdWU6IFQsXG4gICAgICAgIGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWUsXG4gICAgICAgIGZvcm1JdGVtPzogRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApID0+IGFueSB8IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhpcyBmb3JtIGl0ZW0gc2hvdWxkIGJlIGFza2VkLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKiBAcGFyYW0gZm9ybXMgQWxsIGF2YWlsYWJsZSBmb3JtcyBzdG9yZWQgaW4gZm9ybSBnZW5lcmF0b3Igc2VydmljZS5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBEeW5hbWljIGZvcm0gY29udHJvbC5cbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG4gICAgd2hlbj86IChcbiAgICAgICAgZm9ybVZhbHVlOiBEeW5hbWljRm9ybVZhbHVlLFxuICAgICAgICBmb3JtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4sXG4gICAgICAgIGNvbnRyb2w6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sXG4gICAgKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgZmllbGQgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKiBAcGFyYW0gZmllbGRWYWx1ZSBGaWVsZCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybXMgQWxsIGF2YWlsYWJsZSBmb3JtcyBzdG9yZWQgaW4gZm9ybSBnZW5lcmF0b3Igc2VydmljZS5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBEeW5hbWljIGZvcm0gY29udHJvbC5cbiAgICAgKi9cbiAgICBvbmNoYW5nZT86IChcbiAgICAgICAgZmllbGRWYWx1ZTogVCxcbiAgICAgICAgZm9ybXM6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtR3JvdXA+LFxuICAgICAgICBjb250cm9sOiBEeW5hbWljRm9ybUNvbnRyb2xcbiAgICApID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHwgT2JzZXJ2YWJsZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBVc2VkIGFzIGEgc3RhdGljIGZsYWcgb24gc2hvdWxkIHRoaXMgZm9ybSBpdGVtIGJlIHNob3duLlxuICAgICAqL1xuICAgIHNob3VsZFNob3c/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmFuayBpcyB1c2VkIGZvciBvcmRlcmluZy5cbiAgICAgKiBUaGFuIGxvd2VyIG51bWJlciB0aGVuIGhpZ2hlciBwcmlvcml0eS5cbiAgICAgKi9cbiAgICByYW5rPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQWRkaXRpb25hbCBzZXQgb2Ygb3B0aW9ucyB0aGF0IGNhbiBhZmZlY3QgVUkgb2YgdGhlIGZvcm0gaXRlbSBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgZ3VpT3B0aW9ucz86IER5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXREeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxzdHJpbmc+IHtcbiAgICB0eXBlOiAnaW5wdXQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBBZGRpdGlvbmFsIHNldCBvZiBvcHRpb25zIHRoYXQgY2FuIGFmZmVjdCBVSSBvZiB0aGUgZm9ybSBpdGVtIGZvcm0gY29udHJvbC5cbiAgICAgKi9cbiAgICBjb250cm9sVHlwZT86IElucHV0VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlUGlja2VyRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08RmREYXRlPiB7XG4gICAgdHlwZTogJ2RhdGVwaWNrZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRBcmVhRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08c3RyaW5nPiB7XG4gICAgdHlwZTogJ2VkaXRvcicgfCAndGV4dGFyZWEnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaER5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPGJvb2xlYW4+IHtcbiAgICB0eXBlOiAnc3dpdGNoJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REeW5hbWljRm9ybUZpZWxkSXRlbTxUID0gRHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8YW55Pj4gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08VD4ge1xuICAgIHR5cGU6ICdzZWxlY3QnIHwgJ2xpc3QnIHwgJ211bHRpLWlucHV0JztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyB0byBzZWxlY3QuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqL1xuICAgIGNob2ljZXM/OiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UgfCAoKGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWUpID0+IER5bmFtaWNGb3JtSXRlbUNob2ljZSk7XG5cbiAgICBzZWNvbmRhcnlLZXk/OiBzdHJpbmc7XG5cbiAgICAvKiogU2hvdyB0aGUgc2Vjb25kIGNvbHVtbiAoQXBwbGljYWJsZSBmb3IgdHdvIGNvbHVtbnMgbGF5b3V0KSAqL1xuICAgIHNob3dTZWNvbmRhcnlUZXh0PzogYm9vbGVhbjtcblxuICAgIC8qKiBIb3Jpem9udGFsbHkgYWxpZ24gdGV4dCBpbnNpZGUgdGhlIHNlY29uZCBjb2x1bW4gKEFwcGxpY2FibGUgZm9yIHR3byBjb2x1bW5zIGxheW91dCkgKi9cbiAgICBzZWNvbmRhcnlUZXh0QWxpZ25tZW50PzogVGV4dEFsaWdubWVudDtcbiAgICAvKiogQ3VzdG9tIHRlbXBsYXRlIHVzZWQgdG8gYnVpbGQgY29udHJvbCBib2R5LiAqL1xuICAgIGNvbnRyb2xUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFkaW9EeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIE9taXQ8U2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW08YW55PiwgJ3R5cGUnPiB7XG4gICAgdHlwZTogJ3JhZGlvJyB8ICdjb25maXJtJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja2JveER5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgT21pdDxTZWxlY3REeW5hbWljRm9ybUZpZWxkSXRlbTxhbnk+LCAndHlwZSc+IHtcbiAgICB0eXBlOiAnY2hlY2tib3gnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFN0YXR1c0R5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPHN0cmluZz4ge1xuICAgIHR5cGU6ICdvYmplY3Qtc3RhdHVzJztcbiAgICBndWlPcHRpb25zPzogQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtWydndWlPcHRpb25zJ10gJiB7XG4gICAgICAgIHN0YXR1cz86IE9iamVjdFN0YXR1cztcbiAgICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgICAgaW5kaWNhdGlvbkNvbG9yPzogSW5kaWNhdGlvbkNvbG9yVHlwZTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFueUR5bmFtaWNGb3JtRmllbGRJdGVtPFQgPSBhbnk+IGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPFQ+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgdG8gc2VsZWN0LlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBjaG9pY2VzPzogRHluYW1pY0Zvcm1JdGVtQ2hvaWNlIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UpO1xufVxuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUZpZWxkSXRlbTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gVCAmXG4gICAgKFxuICAgICAgICB8IElucHV0RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBEYXRlUGlja2VyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBUZXh0QXJlYUR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgU3dpdGNoRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBTZWxlY3REeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFJhZGlvRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBDaGVja2JveER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgT2JqZWN0U3RhdHVzRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBVXG4gICAgICAgIHwgQW55RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApO1xuXG50eXBlIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHMgPSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRlZmF1bHQ6IGFueTtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBjaG9pY2VzPzogU2VsZWN0SXRlbVtdO1xufTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBJbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBEeW5hbWljRm9ybUZpZWxkSXRlbSB3aXRoIGFsbCBmaWVsZHMgcmVzb2x2ZWQgdG8gYSBwbGFpbiB2YWx1ZVxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtPFQgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0gPSBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0+ID0gT21pdDxcbiAgICBULFxuICAgIGtleW9mIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHNcbj4gJlxuICAgIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERlZmluZXMgbGFiZWwncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGxhYmVsQ29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEZWZpbmVzIGdhcCBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGdhcENvbHVtbkxheW91dD86IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHNldCwgaGludCBpY29uIGlzIGFkZGVkIHRvIGNvbnRyb2wgbGFiZWwgb3IgZ3JvdXAgaGVhZGluZyB3aXRoIHRvb2x0aXAgbWVzc2FnZSBhcyBhIHZhbHVlLlxuICAgICAqL1xuICAgIGhpbnQ/OiBIaW50SW5wdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbmRleCBvZiBjb2x1bW4gaWYgZm9ybSBoYXMgbXVsdGktY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBjb2x1bW4/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBDb2x1bW4gYXJyYW5nZW1lbnQgZm9yIGZvcm0tZmllbGQgYmFzZWQgb24gc2NyZWVuIHNpemUuXG4gICAgICovXG4gICAgY29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSW5saW5lIGxheW91dCBmb3IgbGlzdCBiYXNlZCBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgaW5saW5lTGF5b3V0PzogSW5saW5lTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgbGFiZWwgc2hvdWxkIGJlIGhpZGRlbi5cbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHNldCwgY29udHJvbHMgaW5uZXIgZWxlbWVudHMgd2lsbCBiZSBpbmxpbmVkLlxuICAgICAqL1xuICAgIGlubGluZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJZiBzZXQsIG92ZXJyaWRlcyBjdXJyZW50IGNvbnRlbnQgZGVuc2l0eSBvZiB0aGUgZWxlbWVudCBkZWZpbmVkIG9uIHRoZSBnbG9iYWwgc2NvcGUuXG4gICAgICovXG4gICAgY29udGVudERlbnNpdHk/OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPYmplY3QgY29udGFpbnMgYWRkaXRpb25hbCBwYXlsb2FkLiBVc2VmdWwgZm9yIGN1c3RvbSBlbGVtZW50cyB0byBtYW5pcHVsYXRlIGl0J3Mgdmlldy5cbiAgICAgKi9cbiAgICBhZGRpdGlvbmFsRGF0YT86IGFueTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIGxhYmVsIHNob3VsZCBiZSBhcHBlbmRlZCB3aXRoIGNvbG9uLiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgYXBwZW5kQ29sb24/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSGludCBvcHRpb25zLiBFaXRoZXIgb25seSB0ZXh0IG9yIGZ1bGwgY29uZmlnXG4gICAgICovXG4gICAgaGludD86IEZpZWxkSGludElucHV0O1xufVxuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybVZhbHVlID0gUmVjb3JkPHN0cmluZywgYW55PjtcbiJdfQ==
@@ -13,7 +13,6 @@ import { FormFieldControlExtrasComponent } from './form-field-extras/form-field-
13
13
  import { FormGroupHeaderComponent } from './form-group-header/form-group-header.component';
14
14
  import { LinkModule } from '@fundamental-ngx/core/link';
15
15
  import { FieldGroupRowValuePipe } from './pipes/field-group-row-value.pipe';
16
- import { DeprecatedFormGroupCompactDirective } from './deprecated-form-group-compact.directive';
17
16
  import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
18
17
  import { FormFieldErrorDirective } from './form-field-error/form-field-error.directive';
19
18
  import { FormFieldErrorHeadingDirective } from './form-field-error/form-field-error-heading.directive';
@@ -27,7 +26,6 @@ const EXPORTABLE_DECLARATIONS = [
27
26
  FormFieldControlExtrasComponent,
28
27
  FormGroupHeaderComponent,
29
28
  FieldGroupRowValuePipe,
30
- DeprecatedFormGroupCompactDirective,
31
29
  FormFieldErrorDirective,
32
30
  FormFieldErrorHeadingDirective,
33
31
  FormFieldErrorDescriptionDirective
@@ -41,7 +39,6 @@ export class FdpFormGroupModule {
41
39
  FormFieldControlExtrasComponent,
42
40
  FormGroupHeaderComponent,
43
41
  FieldGroupRowValuePipe,
44
- DeprecatedFormGroupCompactDirective,
45
42
  FormFieldErrorDirective,
46
43
  FormFieldErrorHeadingDirective,
47
44
  FormFieldErrorDescriptionDirective], imports: [CommonModule,
@@ -59,7 +56,6 @@ export class FdpFormGroupModule {
59
56
  FormFieldControlExtrasComponent,
60
57
  FormGroupHeaderComponent,
61
58
  FieldGroupRowValuePipe,
62
- DeprecatedFormGroupCompactDirective,
63
59
  FormFieldErrorDirective,
64
60
  FormFieldErrorHeadingDirective,
65
61
  FormFieldErrorDescriptionDirective, ContentDensityModule] }); }
@@ -91,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
91
87
  exports: [...EXPORTABLE_DECLARATIONS, ContentDensityModule]
92
88
  }]
93
89
  }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmRwLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mZHAtZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLElBQUksWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMkRBQTJELENBQUM7O0FBRS9HLE1BQU0sdUJBQXVCLEdBQUc7SUFDNUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLGtDQUFrQztDQUNyQyxDQUFDO0FBaUJGLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQTVCM0Isa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQiw2QkFBNkI7WUFDN0IsdUJBQXVCO1lBQ3ZCLCtCQUErQjtZQUMvQix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx1QkFBdUI7WUFDdkIsOEJBQThCO1lBQzlCLGtDQUFrQyxhQU05QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixVQUFVO1lBQ1YsVUFBVTtZQUNWLG9CQUFvQixhQXhCeEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQiw2QkFBNkI7WUFDN0IsdUJBQXVCO1lBQ3ZCLCtCQUErQjtZQUMvQix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx1QkFBdUI7WUFDdkIsOEJBQThCO1lBQzlCLGtDQUFrQyxFQWdCSSxvQkFBb0I7K0dBRWpELGtCQUFrQixZQVp2QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixVQUFVO1lBQ1YsVUFBVTtZQUNWLG9CQUFvQixFQUVjLG9CQUFvQjs7MkZBRWpELGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixDQUFDO29CQUMxQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG9CQUFvQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3JtTW9kdWxlIGFzIEZkRm9ybU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBJbmxpbmVIZWxwTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2lubGluZS1oZWxwJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSB9IGZyb20gJy4uL2lucHV0LW1lc3NhZ2UtZ3JvdXAtd2l0aC10ZW1wbGF0ZS9pbnB1dC1tZXNzYWdlLWdyb3VwLXdpdGgtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLWdyb3VwL2Zvcm0tZmllbGQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2xFeHRyYXNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXh0cmFzL2Zvcm0tZmllbGQtZXh0cmFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtR3JvdXBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtaGVhZGVyL2Zvcm0tZ3JvdXAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnO1xuaW1wb3J0IHsgRmllbGRHcm91cFJvd1ZhbHVlUGlwZSB9IGZyb20gJy4vcGlwZXMvZmllbGQtZ3JvdXAtcm93LXZhbHVlLnBpcGUnO1xuaW1wb3J0IHsgRGVwcmVjYXRlZEZvcm1Hcm91cENvbXBhY3REaXJlY3RpdmUgfSBmcm9tICcuL2RlcHJlY2F0ZWQtZm9ybS1ncm91cC1jb21wYWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JIZWFkaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItaGVhZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1lcnJvci9mb3JtLWZpZWxkLWVycm9yLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IEVYUE9SVEFCTEVfREVDTEFSQVRJT05TID0gW1xuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb21wb25lbnQsXG4gICAgSW5wdXRNZXNzYWdlR3JvdXBXaXRoVGVtcGxhdGUsXG4gICAgRm9ybUZpZWxkR3JvdXBDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29udHJvbEV4dHJhc0NvbXBvbmVudCxcbiAgICBGb3JtR3JvdXBIZWFkZXJDb21wb25lbnQsXG4gICAgRmllbGRHcm91cFJvd1ZhbHVlUGlwZSxcbiAgICBEZXByZWNhdGVkRm9ybUdyb3VwQ29tcGFjdERpcmVjdGl2ZSxcbiAgICBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSxcbiAgICBGb3JtRmllbGRFcnJvckhlYWRpbmdEaXJlY3RpdmUsXG4gICAgRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbkRpcmVjdGl2ZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5FWFBPUlRBQkxFX0RFQ0xBUkFUSU9OU10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGZEZvcm1Nb2R1bGUsXG4gICAgICAgIElubGluZUhlbHBNb2R1bGUsXG4gICAgICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEljb25Nb2R1bGUsXG4gICAgICAgIExpbmtNb2R1bGUsXG4gICAgICAgIENvbnRlbnREZW5zaXR5TW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbLi4uRVhQT1JUQUJMRV9ERUNMQVJBVElPTlMsIENvbnRlbnREZW5zaXR5TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGZHBGb3JtR3JvdXBNb2R1bGUge31cbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmRwLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mZHAtZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLElBQUksWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMkRBQTJELENBQUM7O0FBRS9HLE1BQU0sdUJBQXVCLEdBQUc7SUFDNUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsa0NBQWtDO0NBQ3JDLENBQUM7QUFpQkYsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsaUJBM0IzQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLDZCQUE2QjtZQUM3Qix1QkFBdUI7WUFDdkIsK0JBQStCO1lBQy9CLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixrQ0FBa0MsYUFNOUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsVUFBVTtZQUNWLFVBQVU7WUFDVixvQkFBb0IsYUF2QnhCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsNkJBQTZCO1lBQzdCLHVCQUF1QjtZQUN2QiwrQkFBK0I7WUFDL0Isd0JBQXdCO1lBQ3hCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsOEJBQThCO1lBQzlCLGtDQUFrQyxFQWdCSSxvQkFBb0I7K0dBRWpELGtCQUFrQixZQVp2QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixVQUFVO1lBQ1YsVUFBVTtZQUNWLG9CQUFvQixFQUVjLG9CQUFvQjs7MkZBRWpELGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixDQUFDO29CQUMxQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG9CQUFvQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3JtTW9kdWxlIGFzIEZkRm9ybU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBJbmxpbmVIZWxwTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2lubGluZS1oZWxwJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSB9IGZyb20gJy4uL2lucHV0LW1lc3NhZ2UtZ3JvdXAtd2l0aC10ZW1wbGF0ZS9pbnB1dC1tZXNzYWdlLWdyb3VwLXdpdGgtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLWdyb3VwL2Zvcm0tZmllbGQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2xFeHRyYXNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXh0cmFzL2Zvcm0tZmllbGQtZXh0cmFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtR3JvdXBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtaGVhZGVyL2Zvcm0tZ3JvdXAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnO1xuaW1wb3J0IHsgRmllbGRHcm91cFJvd1ZhbHVlUGlwZSB9IGZyb20gJy4vcGlwZXMvZmllbGQtZ3JvdXAtcm93LXZhbHVlLnBpcGUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1GaWVsZEVycm9ySGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1lcnJvci9mb3JtLWZpZWxkLWVycm9yLWhlYWRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuXG5jb25zdCBFWFBPUlRBQkxFX0RFQ0xBUkFUSU9OUyA9IFtcbiAgICBGb3JtR3JvdXBDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIElucHV0TWVzc2FnZUdyb3VwV2l0aFRlbXBsYXRlLFxuICAgIEZvcm1GaWVsZEdyb3VwQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbnRyb2xFeHRyYXNDb21wb25lbnQsXG4gICAgRm9ybUdyb3VwSGVhZGVyQ29tcG9uZW50LFxuICAgIEZpZWxkR3JvdXBSb3dWYWx1ZVBpcGUsXG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUsXG4gICAgRm9ybUZpZWxkRXJyb3JIZWFkaW5nRGlyZWN0aXZlLFxuICAgIEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb25EaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbLi4uRVhQT1JUQUJMRV9ERUNMQVJBVElPTlNdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgRmRGb3JtTW9kdWxlLFxuICAgICAgICBJbmxpbmVIZWxwTW9kdWxlLFxuICAgICAgICBQb3BvdmVyTW9kdWxlLFxuICAgICAgICBJY29uTW9kdWxlLFxuICAgICAgICBMaW5rTW9kdWxlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogWy4uLkVYUE9SVEFCTEVfREVDTEFSQVRJT05TLCBDb250ZW50RGVuc2l0eU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmRwRm9ybUdyb3VwTW9kdWxlIHt9XG4iXX0=