@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.20

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 (674) hide show
  1. package/approval-flow/helpers/index.d.ts +1 -1
  2. package/approval-flow/index.d.ts +2 -2
  3. package/approval-flow/interfaces/approval-process.d.ts +1 -1
  4. package/approval-flow/interfaces/index.d.ts +1 -1
  5. package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
  6. package/button/index.d.ts +1 -1
  7. package/dynamic-page/index.d.ts +5 -5
  8. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
  9. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
  10. package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
  11. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
  12. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
  13. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +1 -1
  14. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
  15. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  16. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
  17. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
  18. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
  19. package/esm2022/approval-flow/approval-flow.component.mjs +1 -1
  20. package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
  21. package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
  22. package/esm2022/approval-flow/helpers/index.mjs +1 -1
  23. package/esm2022/approval-flow/index.mjs +3 -3
  24. package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
  25. package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
  26. package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
  27. package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
  28. package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
  29. package/esm2022/approval-flow/interfaces/index.mjs +2 -2
  30. package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
  31. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
  32. package/esm2022/button/button.component.mjs +3 -3
  33. package/esm2022/button/button.module.mjs +1 -1
  34. package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
  35. package/esm2022/button/index.mjs +2 -2
  36. package/esm2022/dynamic-page/constants.mjs +1 -1
  37. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
  38. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
  39. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
  40. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
  41. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
  42. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
  43. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
  44. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  45. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
  46. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
  47. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
  48. package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
  49. package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
  50. package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
  51. package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
  52. package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
  53. package/esm2022/dynamic-page/index.mjs +6 -6
  54. package/esm2022/dynamic-page/utils.mjs +1 -1
  55. package/esm2022/feed-input/feed-input.component.mjs +1 -1
  56. package/esm2022/feed-input/feed-input.module.mjs +1 -1
  57. package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
  58. package/esm2022/feed-input/index.mjs +2 -2
  59. package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
  60. package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
  61. package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
  62. package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
  63. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
  64. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
  65. package/esm2022/form/combobox/combobox/combobox.component.mjs +12 -3
  66. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
  67. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
  68. package/esm2022/form/combobox/combobox.config.mjs +2 -2
  69. package/esm2022/form/combobox/combobox.interface.mjs +1 -1
  70. package/esm2022/form/combobox/combobox.module.mjs +1 -1
  71. package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
  72. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
  73. package/esm2022/form/combobox/index.mjs +1 -1
  74. package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
  75. package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
  76. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
  77. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
  78. package/esm2022/form/datetime-picker/errors.mjs +1 -1
  79. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
  80. package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
  81. package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
  82. package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
  83. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
  84. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
  85. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
  86. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
  87. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
  88. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +1 -1
  89. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
  90. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
  91. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
  92. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
  93. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
  94. package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
  95. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
  96. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
  97. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
  98. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
  99. package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
  100. package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
  101. package/esm2022/form/form-generator/helpers.mjs +1 -1
  102. package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
  103. package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
  104. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  105. package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
  106. package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
  107. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
  108. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
  109. package/esm2022/form/form-generator/providers/providers.mjs +1 -1
  110. package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
  111. package/esm2022/form/form-group/constants.mjs +1 -1
  112. package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
  113. package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
  114. package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
  115. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
  116. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
  117. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
  118. package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
  119. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
  120. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
  121. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  122. package/esm2022/form/form-group/form-group.component.mjs +1 -1
  123. package/esm2022/form/form-group/helpers.mjs +1 -1
  124. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
  125. package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
  126. package/esm2022/form/form-helpers.mjs +3 -3
  127. package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
  128. package/esm2022/form/helpers.mjs +1 -1
  129. package/esm2022/form/index.mjs +1 -1
  130. package/esm2022/form/input/fdp-input.module.mjs +1 -1
  131. package/esm2022/form/input/input.component.mjs +1 -1
  132. package/esm2022/form/input-group/addon-body.component.mjs +2 -2
  133. package/esm2022/form/input-group/addon.component.mjs +2 -2
  134. package/esm2022/form/input-group/constants.mjs +1 -1
  135. package/esm2022/form/input-group/input-group.component.mjs +1 -1
  136. package/esm2022/form/input-group/input-group.config.mjs +1 -1
  137. package/esm2022/form/input-group/input-group.module.mjs +3 -3
  138. package/esm2022/form/input-group/input.component.mjs +2 -2
  139. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
  140. package/esm2022/form/models/field.model.mjs +1 -1
  141. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
  142. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -1
  143. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
  144. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
  145. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
  146. package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
  147. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
  148. package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
  149. package/esm2022/form/multi-input/index.mjs +2 -2
  150. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  151. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
  152. package/esm2022/form/multi-input/multi-input.component.mjs +1 -1
  153. package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
  154. package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
  155. package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
  156. package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
  157. package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
  158. package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
  159. package/esm2022/form/select/commons/base-select.mjs +1 -1
  160. package/esm2022/form/select/models/select.models.mjs +1 -1
  161. package/esm2022/form/select/select/select.component.mjs +1 -1
  162. package/esm2022/form/select/select.config.mjs +1 -1
  163. package/esm2022/form/select/select.module.mjs +1 -1
  164. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  165. package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
  166. package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
  167. package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
  168. package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
  169. package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
  170. package/esm2022/form/step-input/step-input.config.mjs +1 -1
  171. package/esm2022/form/step-input/step-input.module.mjs +3 -3
  172. package/esm2022/form/step-input/step-input.util.mjs +1 -1
  173. package/esm2022/form/switch/switch/index.mjs +1 -1
  174. package/esm2022/form/switch/switch/switch.component.mjs +1 -1
  175. package/esm2022/form/switch/switch/switch.config.mjs +1 -1
  176. package/esm2022/form/switch/switch.module.mjs +1 -1
  177. package/esm2022/form/text-area/text-area.component.mjs +1 -1
  178. package/esm2022/form/text-area/text-area.config.mjs +1 -1
  179. package/esm2022/form/text-area/text-area.module.mjs +1 -1
  180. package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
  181. package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
  182. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
  183. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
  184. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
  185. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
  186. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
  187. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  188. package/esm2022/icon-tab-bar/components/index.mjs +1 -1
  189. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +1 -1
  190. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
  191. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +1 -1
  192. package/esm2022/icon-tab-bar/constants.mjs +1 -1
  193. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
  194. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
  195. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
  196. package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
  197. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
  198. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
  199. package/esm2022/icon-tab-bar/index.mjs +8 -8
  200. package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
  201. package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
  202. package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
  203. package/esm2022/icon-tab-bar/types.mjs +1 -1
  204. package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
  205. package/esm2022/info-label/index.mjs +1 -1
  206. package/esm2022/info-label/info-label.component.mjs +1 -1
  207. package/esm2022/info-label/info-label.module.mjs +1 -1
  208. package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
  209. package/esm2022/link/index.mjs +1 -1
  210. package/esm2022/link/link.component.mjs +3 -3
  211. package/esm2022/link/link.module.mjs +1 -1
  212. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  213. package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
  214. package/esm2022/list/base-list-item.mjs +2 -2
  215. package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
  216. package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
  217. package/esm2022/list/fdpListComponent.token.mjs +1 -1
  218. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
  219. package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
  220. package/esm2022/list/index.mjs +13 -13
  221. package/esm2022/list/list-group-footer.component.mjs +3 -3
  222. package/esm2022/list/list-group-header.component.mjs +5 -5
  223. package/esm2022/list/list.component.mjs +5 -5
  224. package/esm2022/list/list.config.mjs +1 -1
  225. package/esm2022/list/list.module.mjs +1 -1
  226. package/esm2022/list/load-more-content.directive.mjs +1 -1
  227. package/esm2022/list/models/list.mjs +1 -1
  228. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
  229. package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
  230. package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
  231. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
  232. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
  233. package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
  234. package/esm2022/menu/index.mjs +3 -3
  235. package/esm2022/menu/menu-item.component.mjs +1 -1
  236. package/esm2022/menu/menu-trigger.directive.mjs +1 -1
  237. package/esm2022/menu/menu.component.mjs +1 -1
  238. package/esm2022/menu/menu.module.mjs +1 -1
  239. package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
  240. package/esm2022/menu-button/index.mjs +2 -2
  241. package/esm2022/menu-button/menu-button.component.mjs +1 -1
  242. package/esm2022/menu-button/menu-button.module.mjs +1 -1
  243. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
  244. package/esm2022/message-popover/components/message-view/message-view.component.mjs +1 -1
  245. package/esm2022/message-popover/default-config.mjs +1 -1
  246. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
  247. package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
  248. package/esm2022/message-popover/index.mjs +5 -5
  249. package/esm2022/message-popover/message-popover.component.mjs +1 -1
  250. package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
  251. package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
  252. package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
  253. package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
  254. package/esm2022/message-popover/utils.mjs +1 -1
  255. package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
  256. package/esm2022/object-attribute/index.mjs +1 -1
  257. package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
  258. package/esm2022/object-marker/index.mjs +1 -1
  259. package/esm2022/object-marker/object-marker.component.mjs +1 -1
  260. package/esm2022/object-marker/object-marker.module.mjs +1 -1
  261. package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
  262. package/esm2022/object-status/index.mjs +1 -1
  263. package/esm2022/object-status/object-status.component.mjs +1 -1
  264. package/esm2022/object-status/object-status.module.mjs +1 -1
  265. package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
  266. package/esm2022/page-footer/index.mjs +1 -1
  267. package/esm2022/page-footer/page-footer.component.mjs +1 -1
  268. package/esm2022/page-footer/page-footer.module.mjs +1 -1
  269. package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
  270. package/esm2022/panel/index.mjs +3 -3
  271. package/esm2022/panel/panel-actions.component.mjs +1 -1
  272. package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
  273. package/esm2022/panel/panel.component.mjs +1 -1
  274. package/esm2022/panel/panel.config.mjs +1 -1
  275. package/esm2022/panel/panel.module.mjs +1 -1
  276. package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
  277. package/esm2022/search-field/index.mjs +2 -2
  278. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
  279. package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
  280. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
  281. package/esm2022/search-field/search-field.component.mjs +1 -1
  282. package/esm2022/search-field/search-field.module.mjs +1 -1
  283. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
  284. package/esm2022/settings-generator/default-config.mjs +1 -1
  285. package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
  286. package/esm2022/settings-generator/index.mjs +5 -5
  287. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
  288. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
  289. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  290. package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
  291. package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
  292. package/esm2022/settings-generator/models/settings.model.mjs +1 -1
  293. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  294. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
  295. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
  296. package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
  297. package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
  298. package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
  299. package/esm2022/settings-generator/tokens.mjs +1 -1
  300. package/esm2022/shared/base.mjs +1 -1
  301. package/esm2022/shared/domain/array-data-source.mjs +2 -2
  302. package/esm2022/shared/domain/base-data-provider.mjs +3 -3
  303. package/esm2022/shared/domain/data-model.mjs +1 -1
  304. package/esm2022/shared/domain/data-source.mjs +1 -1
  305. package/esm2022/shared/domain/observable-data-source.mjs +2 -2
  306. package/esm2022/shared/form/base.input.mjs +1 -1
  307. package/esm2022/shared/form/collection-base.input.mjs +4 -4
  308. package/esm2022/shared/form/form-error.mjs +1 -1
  309. package/esm2022/shared/form/form-field.mjs +1 -1
  310. package/esm2022/shared/form/form-options.mjs +1 -1
  311. package/esm2022/shared/form/hint-options.mjs +1 -1
  312. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
  313. package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
  314. package/esm2022/shared/index.mjs +4 -4
  315. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
  316. package/esm2022/shared/pipes/pipe.module.mjs +1 -1
  317. package/esm2022/shared/platform.config.mjs +1 -1
  318. package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
  319. package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
  320. package/esm2022/shared/testing/event-objects.mjs +1 -1
  321. package/esm2022/shared/utils/lang.mjs +1 -1
  322. package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
  323. package/esm2022/slider/index.mjs +1 -1
  324. package/esm2022/slider/slider.component.mjs +2 -2
  325. package/esm2022/slider/slider.module.mjs +1 -1
  326. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
  327. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
  328. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +1 -1
  329. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
  330. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  331. package/esm2022/smart-filter-bar/constants.mjs +1 -1
  332. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
  333. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
  334. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
  335. package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  336. package/esm2022/smart-filter-bar/helpers.mjs +1 -1
  337. package/esm2022/smart-filter-bar/index.mjs +8 -8
  338. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
  339. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
  340. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
  341. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
  342. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
  343. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
  344. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
  345. package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
  346. package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
  347. package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
  348. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
  349. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +1 -1
  350. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
  351. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
  352. package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
  353. package/esm2022/split-menu-button/index.mjs +1 -1
  354. package/esm2022/split-menu-button/split-menu-button.component.mjs +1 -1
  355. package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
  356. package/esm2022/table/components/index.mjs +9 -9
  357. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
  358. package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
  359. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +1 -1
  360. package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
  361. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
  362. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
  363. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
  364. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +1 -1
  365. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
  366. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
  367. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  368. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
  369. package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
  370. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +1 -1
  371. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +1 -1
  372. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
  373. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
  374. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
  375. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
  376. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
  377. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
  378. package/esm2022/table/components/table-row/table-row.component.mjs +1 -1
  379. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
  380. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
  381. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +1 -1
  382. package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
  383. package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
  384. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
  385. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  386. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  387. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
  388. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
  389. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  390. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
  391. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  392. package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
  393. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  394. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
  395. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
  396. package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
  397. package/esm2022/table/index.mjs +15 -15
  398. package/esm2022/table/table.component.mjs +14 -10
  399. package/esm2022/table/table.module.mjs +1 -1
  400. package/esm2022/table-helpers/constants/index.mjs +1 -1
  401. package/esm2022/table-helpers/constants/tokens.mjs +1 -1
  402. package/esm2022/table-helpers/directives/index.mjs +7 -7
  403. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
  404. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
  405. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
  406. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
  407. package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
  408. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
  409. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
  410. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
  411. package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
  412. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
  413. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  414. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
  415. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
  416. package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
  417. package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
  418. package/esm2022/table-helpers/domain/index.mjs +4 -4
  419. package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
  420. package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
  421. package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
  422. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
  423. package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
  424. package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
  425. package/esm2022/table-helpers/enums/index.mjs +4 -4
  426. package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
  427. package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
  428. package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
  429. package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
  430. package/esm2022/table-helpers/helpers.mjs +6 -3
  431. package/esm2022/table-helpers/index.mjs +9 -9
  432. package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
  433. package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
  434. package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
  435. package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
  436. package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
  437. package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
  438. package/esm2022/table-helpers/interfaces/index.mjs +3 -4
  439. package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
  440. package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
  441. package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
  442. package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
  443. package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
  444. package/esm2022/table-helpers/models/directives.mjs +1 -1
  445. package/esm2022/table-helpers/models/dnd.mjs +1 -1
  446. package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
  447. package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
  448. package/esm2022/table-helpers/models/index.mjs +15 -15
  449. package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
  450. package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
  451. package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
  452. package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
  453. package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
  454. package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
  455. package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
  456. package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
  457. package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
  458. package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
  459. package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
  460. package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
  461. package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
  462. package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
  463. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
  464. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
  465. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
  466. package/esm2022/table-helpers/pipes/index.mjs +1 -1
  467. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
  468. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
  469. package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
  470. package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
  471. package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
  472. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
  473. package/esm2022/table-helpers/services/table.service.mjs +1 -1
  474. package/esm2022/table-helpers/table-cell.class.mjs +1 -1
  475. package/esm2022/table-helpers/table-column.mjs +1 -1
  476. package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
  477. package/esm2022/table-helpers/table.mjs +1 -1
  478. package/esm2022/table-helpers/utils.mjs +1 -1
  479. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
  480. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +1 -1
  481. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
  482. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
  483. package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
  484. package/esm2022/value-help-dialog/constans/index.mjs +1 -1
  485. package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
  486. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
  487. package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
  488. package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
  489. package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  490. package/esm2022/value-help-dialog/index.mjs +4 -3
  491. package/esm2022/value-help-dialog/models/index.mjs +2 -2
  492. package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
  493. package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
  494. package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
  495. package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
  496. package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
  497. package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
  498. package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
  499. package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
  500. package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
  501. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
  502. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
  503. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
  504. package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
  505. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  506. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
  507. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
  508. package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
  509. package/esm2022/variant-management/index.mjs +4 -4
  510. package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
  511. package/esm2022/variant-management/models/variant-management.mjs +1 -1
  512. package/esm2022/variant-management/models/variant.interface.mjs +1 -1
  513. package/esm2022/variant-management/tokens.mjs +1 -1
  514. package/esm2022/variant-management/variant-item.class.mjs +1 -1
  515. package/esm2022/variant-management/variant-management.component.mjs +1 -1
  516. package/esm2022/variant-management/variant-management.module.mjs +1 -1
  517. package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
  518. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +1 -1
  519. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +1 -1
  520. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
  521. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
  522. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
  523. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
  524. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
  525. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
  526. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
  527. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
  528. package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
  529. package/esm2022/wizard-generator/index.mjs +10 -10
  530. package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
  531. package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
  532. package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
  533. package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
  534. package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
  535. package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
  536. package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
  537. package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
  538. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
  539. package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
  540. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  541. package/feed-input/index.d.ts +1 -1
  542. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +886 -886
  543. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  544. package/fesm2022/fundamental-ngx-platform-button.mjs +3 -3
  545. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  546. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  547. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  548. package/fesm2022/fundamental-ngx-platform-form.mjs +2721 -2712
  549. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  550. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +5 -5
  551. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  552. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  553. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  554. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  555. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
  556. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  557. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +1 -1
  558. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  559. package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
  560. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  561. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
  562. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  563. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
  564. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  565. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  566. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  567. package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
  568. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  569. package/fesm2022/fundamental-ngx-platform-search-field.mjs +12 -12
  570. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  571. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  572. package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
  573. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  574. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  575. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +18 -18
  576. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  577. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  578. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
  579. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  580. package/fesm2022/fundamental-ngx-platform-table.mjs +357 -353
  581. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  582. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +181 -97
  583. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  584. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +175 -175
  585. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  586. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +39 -39
  587. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  588. package/form/combobox/combobox.config.d.ts +1 -1
  589. package/form/date-picker/date-picker.component.d.ts +5 -5
  590. package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
  591. package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
  592. package/form/form-generator/form-generator.service.d.ts +2 -2
  593. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  594. package/form/form-group/services/form-field-layout.service.d.ts +1 -1
  595. package/form/form-helpers.d.ts +1 -1
  596. package/form/input-group/addon.component.d.ts +1 -1
  597. package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
  598. package/form/multi-input/index.d.ts +1 -1
  599. package/form/multi-input/multi-input.config.d.ts +1 -1
  600. package/form/step-input/base.step-input.d.ts +4 -5
  601. package/fundamental-ngx-platform-v0.48.0-rc.20.tgz +0 -0
  602. package/icon-tab-bar/index.d.ts +7 -7
  603. package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
  604. package/list/index.d.ts +12 -12
  605. package/menu/index.d.ts +2 -2
  606. package/menu-button/index.d.ts +1 -1
  607. package/message-popover/index.d.ts +4 -4
  608. package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
  609. package/message-popover/models/message-popover.interface.d.ts +1 -1
  610. package/message-popover/utils.d.ts +1 -1
  611. package/package.json +4 -4
  612. package/panel/index.d.ts +2 -2
  613. package/schematics/ng-add/index.js +1 -1
  614. package/search-field/index.d.ts +1 -1
  615. package/settings-generator/index.d.ts +4 -4
  616. package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
  617. package/settings-generator/settings-generator.service.d.ts +2 -2
  618. package/shared/domain/array-data-source.d.ts +0 -3
  619. package/shared/form/collection-base.input.d.ts +1 -1
  620. package/shared/form/form-field.d.ts +2 -2
  621. package/shared/form/hint-options.d.ts +2 -2
  622. package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
  623. package/shared/index.d.ts +3 -3
  624. package/smart-filter-bar/index.d.ts +7 -7
  625. package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
  626. package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
  627. package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
  628. package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
  629. package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
  630. package/table/components/index.d.ts +8 -8
  631. package/table/components/table-view-settings-dialog/index.d.ts +2 -2
  632. package/table/index.d.ts +14 -14
  633. package/table/table.component.d.ts +4 -0
  634. package/table-helpers/constants/index.d.ts +1 -1
  635. package/table-helpers/directives/index.d.ts +6 -6
  636. package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
  637. package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
  638. package/table-helpers/domain/array-data-source.d.ts +3 -3
  639. package/table-helpers/domain/index.d.ts +3 -3
  640. package/table-helpers/domain/observable-data-source.d.ts +3 -3
  641. package/table-helpers/enums/index.d.ts +3 -3
  642. package/table-helpers/helpers.d.ts +1 -1
  643. package/table-helpers/index.d.ts +8 -8
  644. package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
  645. package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
  646. package/table-helpers/interfaces/index.d.ts +2 -3
  647. package/table-helpers/models/filter-change-event.model.d.ts +1 -1
  648. package/table-helpers/models/group-change-event.model.d.ts +1 -1
  649. package/table-helpers/models/index.d.ts +14 -14
  650. package/table-helpers/models/sort-change-event.model.d.ts +1 -1
  651. package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
  652. package/table-helpers/table.d.ts +1 -0
  653. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
  654. package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
  655. package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
  656. package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
  657. package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
  658. package/value-help-dialog/index.d.ts +3 -2
  659. package/value-help-dialog/models/index.d.ts +1 -1
  660. package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
  661. package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
  662. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
  663. package/variant-management/index.d.ts +3 -3
  664. package/variant-management/models/variant-management.d.ts +1 -1
  665. package/wizard-generator/base-wizard-generator.d.ts +1 -1
  666. package/wizard-generator/index.d.ts +9 -9
  667. package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
  668. package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
  669. package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
  670. package/wizard-generator/wizard-generator.service.d.ts +1 -1
  671. package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
  672. package/schematics/ng-add/index.ts +0 -64
  673. package/schematics/ng-add/schema.ts +0 -3
  674. package/schematics/utils/package-utils.ts +0 -104
@@ -375,4 +375,4 @@ function getGraphColumnsFromPaths(columns) {
375
375
  });
376
376
  return graphColumns;
377
377
  }
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNILHlCQUF5QixFQUN6QixhQUFhLEVBQ2IsY0FBYyxFQUNkLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QsYUFBYSxFQUNiLHNCQUFzQixFQUN6QixNQUFNLFdBQVcsQ0FBQztBQWlCbkI7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBMEI7SUFDaEUsTUFBTSxLQUFLLEdBQXNCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDZixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUM3RixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFD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LEVBQUUsT0FBOEI7SUFDOUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqQixJQUFJLHNCQUFzQixDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsU0FBUyx3QkFBd0IsQ0FBQyxPQUE4QjtJQUM1RCxNQUFNLFlBQVksR0FBMEIsRUFBRSxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEQsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztZQUNMLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRSxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHByb3ZhbEdyYXBoTm9kZSwgQXBwcm92YWxHcmFwaE5vZGVNZXRhZGF0YSwgQXBwcm92YWxOb2RlLCBBcHByb3ZhbFN0YXR1cyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gICAgZ2V0QmxhbmtBcHByb3ZhbEdyYXBoTm9kZSxcbiAgICBnZXRHcmFwaE5vZGVzLFxuICAgIGdldFBhcmVudE5vZGVzLFxuICAgIGdldFNwYWNlQXBwcm92YWxHcmFwaE5vZGUsXG4gICAgaXNOb2RlQXBwcm92ZWQsXG4gICAgaXNOb2RlU3RhcnRlZCxcbiAgICBpc05vZGVUYXJnZXRzSW5jbHVkZUlkXG59IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92YWxGbG93R3JhcGgge1xuICAgIGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhDb2x1bW5bXTtcbiAgICBlcnJvcnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsR3JhcGhDb2x1bW4ge1xuICAgIG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICAgIGFsbE5vZGVzQXBwcm92ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsR3JhcGhNZXRhZGF0YSB7XG4gICAgW2tleTogc3RyaW5nXTogQXBwcm92YWxHcmFwaE5vZGVNZXRhZGF0YTtcbn1cblxuLyoqIEFsZ29yaXRobSBpbiBzaG9ydDpcbiAqIDEuIEZpbmQgYWxsIHBvc3NpYmxlIHBhdGhzIChsb25nZXN0IHBhdGggbGVuZ3RoID0gYW1vdW50IG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmFwaClcbiAqIDIuIFRyaW0gcGF0aHMgKHJlbW92ZSBibGFuayBub2RlcyBhdCB0aGUgZW5kIG9mIHRoZSBwYXRocylcbiAqIDMuIE1ha2UgYWxsIHBhdGhzIHRoZSBzYW1lIGxlbmd0aCAoPSBsb25nZXN0IHBhdGggbGVuZ3RoKSB0byBtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgYXQgdGhlIHNhbWUgaW5kZXggYWNyb3NzIGFsbCBwYXRoc1xuICogNC4gU29ydCBwYXRocyBieSB0aGVpciBsaWtlbmVzcyBiZXR3ZWVuIGVhY2ggb3RoZXIgdG8gYXZvaWQgcGF0aHMgY3Jvc3NpbmdcbiAqIDUuIFJlbW92ZSBcImR1cGxpY2F0ZVwiIG5vZGVzIGluIHBhdGhzIChtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgb25seSBvbmNlIGFjcm9zcyBhbGwgcGF0aHMpXG4gKiA2LiBSZW1vdmUgZW1wdHkgcGF0aHNcbiAqIDcuIFRyYW5zZm9ybSBwYXRocyBpbnRvIHRoZSBjb2x1bW5zXG4gKiA4LiBUcmltIGNvbHVtbnMgKHJlbW92ZSBzcGFjZSBub2RlcyBhdCB0aGUgZW5kIG9mIGNvbHVtbnMpXG4gKiA5LiBSZW1vdmUgY29sdW1ucyB3aGljaCBjb250YWluIG9ubHkgYmxhbmsgYW5kIGVtcHR5IG5vZGVzXG4gKiAxMC4gVHJhbnNmb3JtIGNvbHVtbnMgaW50byB0aGUgZ3JhcGggY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBcHByb3ZhbEZsb3dHcmFwaChub2RlczogQXBwcm92YWxHcmFwaE5vZGVbXSk6IEFwcHJvdmFsRmxvd0dyYXBoIHtcbiAgICBjb25zdCBncmFwaDogQXBwcm92YWxGbG93R3JhcGggPSB7IGNvbHVtbnM6IFtdLCBlcnJvcnM6IGZhbHNlIH07XG5cbiAgICBpZiAoIW5vZGVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdE5vZGVzID0gZmluZFJvb3ROb2Rlcyhub2Rlcyk7XG4gICAgY29uc3QgZmluYWxOb2RlcyA9IGZpbmRGaW5hbE5vZGVzKG5vZGVzKTtcblxuICAgIGlmICghcm9vdE5vZGVzLmxlbmd0aCB8fCAhZmluYWxOb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBFcnI6IE5vdCBwb3NzaWJsZSB0byBidWlsZCBncmFwaCBiZWNhdXNlIHJvb3Qgb3IgZmluYWwgbm9kZXMgYXJlbid0IHByZXNlbnQhYCk7XG4gICAgICAgIGdyYXBoLmVycm9ycyA9IHRydWU7XG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRocyA9IGdldFBhdGhzKHJvb3ROb2Rlcywgbm9kZXMpO1xuXG4gICAgaWYgKCFwYXRocy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnI6IE5vdCBwb3NzaWJsZSB0byBidWlsZCBncmFwaCEnKTtcbiAgICAgICAgZ3JhcGguZXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGdyYXBoO1xuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQYXRocyA9IHRyaW1QYXRocyhwYXRocyk7XG4gICAgY29uc3Qgc2FtZUxlbmd0aFBhdGhzID0gbWFrZVBhdGhzU2FtZUxlbmd0aCh0cmltbWVkUGF0aHMpO1xuICAgIGNvbnN0IHBhdGhzQnlTaW1pbGFyaXR5ID0gc29ydFBhdGhzKHNhbWVMZW5ndGhQYXRocyk7XG4gICAgY29uc3QgcGF0aHNXaXRoVW5pcXVlTm9kZXMgPSByZW1vdmVEdXBsaWNhdGVOb2RlcyhwYXRoc0J5U2ltaWxhcml0eSk7XG4gICAgY29uc3Qgbm90RW1wdHlQYXRocyA9IHJlbW92ZUVtcHR5UGF0aHMocGF0aHNXaXRoVW5pcXVlTm9kZXMpO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBnZXRDb2x1bW5zRnJvbVBhdGhzKG5vdEVtcHR5UGF0aHMpO1xuICAgIGNvbnN0IHRyaW1tZWRDb2x1bW5zID0gdHJpbUNvbHVtbnMoY29sdW1ucyk7XG4gICAgY29uc3Qgbm90RW1wdHlDb2x1bW5zID0gcmVtb3ZlRW1wdHlDb2x1bW5zKHRyaW1tZWRDb2x1bW5zKTtcbiAgICBncmFwaC5jb2x1bW5zID0gZ2V0R3JhcGhDb2x1bW5zRnJvbVBhdGhzKG5vdEVtcHR5Q29sdW1ucyk7XG5cbiAgICByZXR1cm4gZ3JhcGg7XG59XG5cbi8qKiBHZW5lcmF0ZSBncmFwaCBtZXRhZGF0YSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXBwcm92YWxGbG93R3JhcGhNZXRhZGF0YShncmFwaDogQXBwcm92YWxGbG93R3JhcGgpOiBBcHByb3ZhbEdyYXBoTWV0YWRhdGEge1xuICAgIGNvbnN0IG5vZGVzID0gZ2V0R3JhcGhOb2RlcyhncmFwaCk7XG4gICAgY29uc3QgbWV0YWRhdGE6IEFwcHJvdmFsR3JhcGhNZXRhZGF0YSA9IHt9O1xuXG4gICAgZ3JhcGguY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGNvbHVtbkluZGV4KSA9PiB7XG4gICAgICAgIGNvbHVtbi5ub2Rlcy5mb3JFYWNoKChub2RlLCBub2RlSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudHMgPSBnZXRQYXJlbnROb2Rlcyhub2RlLCBub2Rlcyk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzQXBwcm92ZWQgPSBwYXJlbnRzLmxlbmd0aCA/IHBhcmVudHMuZXZlcnkoKF9ub2RlKSA9PiBpc05vZGVBcHByb3ZlZChfbm9kZSkpIDogZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBpc1Jvb3QgPSAhcGFyZW50cy5sZW5ndGggJiYgIW5vZGUuc3BhY2U7XG4gICAgICAgICAgICBjb25zdCBpc0ZpbmFsID0gIW5vZGUudGFyZ2V0cy5sZW5ndGggJiYgIW5vZGUuc3BhY2U7XG4gICAgICAgICAgICBjb25zdCBwYXJhbGxlbEVuZCA9IHBhcmVudHMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcyA9IGNvbHVtbkluZGV4ID09PSAwICYmIGNvbHVtbi5ub2Rlcy5sZW5ndGggPiAxICYmIG5vZGVJbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMgPVxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4ID09PSBncmFwaC5jb2x1bW5zLmxlbmd0aCAtIDEgJiYgY29sdW1uLm5vZGVzLmxlbmd0aCA+IDEgJiYgbm9kZUluZGV4ID09PSAwO1xuXG4gICAgICAgICAgICBtZXRhZGF0YVtub2RlLmlkXSA9IHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzLFxuICAgICAgICAgICAgICAgIGlzUm9vdCxcbiAgICAgICAgICAgICAgICBpc0ZpbmFsLFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsU3RhcnQ6IG5vZGUudGFyZ2V0cy5sZW5ndGggPiAxLFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsRW5kLFxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgIG5vZGVJbmRleCxcbiAgICAgICAgICAgICAgICBjYW5BZGROb2RlQmVmb3JlOiAhaXNOb2RlU3RhcnRlZChub2RlKSAmJiAhcGFyZW50c0FwcHJvdmVkLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVCZWZvcmVBbGw6IGlzUm9vdCAmJiBmaXJzdE9mTXVsdGlwbGVSb290Tm9kZXMsXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUFmdGVyOiAhaXNOb2RlQXBwcm92ZWQobm9kZSksXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUFmdGVyQWxsOlxuICAgICAgICAgICAgICAgICAgICAhaXNOb2RlQXBwcm92ZWQobm9kZSkgJiYgKChpc0ZpbmFsICYmIGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMpIHx8IChwYXJhbGxlbEVuZCAmJiBub2RlLmJsYW5rKSksXG4gICAgICAgICAgICAgICAgY2FuQWRkUGFyYWxsZWw6ICFpc05vZGVBcHByb3ZlZChub2RlKSxcbiAgICAgICAgICAgICAgICBpc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkOiBub2RlLnNwYWNlICYmIGdyYXBoLmNvbHVtbnNbY29sdW1uSW5kZXggLSAxXT8uYWxsTm9kZXNBcHByb3ZlZCxcbiAgICAgICAgICAgICAgICBpc1ZlcnRpY2FsTGluZUFmdGVyU29saWQ6IG5vZGUuc3BhY2UgJiYgY29sdW1uLmFsbE5vZGVzQXBwcm92ZWQsXG4gICAgICAgICAgICAgICAgZmlyc3RPZk11bHRpcGxlUm9vdE5vZGVzLFxuICAgICAgICAgICAgICAgIGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVzQXBwcm92ZWQ6IGNvbHVtbkluZGV4ID09PSAwICYmIGNvbHVtbi5hbGxOb2Rlc0FwcHJvdmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qIFNvbWUgZmxhZ3MgY2FuIGJlIGNhbGN1bGF0ZWQgb25seSBvbiB0aGUgc2Vjb25kIHJ1biwgd2hlbiBhbGwgbm9kZXMgYWxyZWFkeSBoYXZlIGJhc2UgbWV0YWRhdGEgKi9cbiAgICBncmFwaC5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW4ubm9kZXMuZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub2RlTWV0YWRhdGEgPSBtZXRhZGF0YVtub2RlLmlkXTtcblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLmlzTGFzdEluUGFyYWxsZWwgPSBtZXRhZGF0YVtub2RlLnRhcmdldHNbMF1dPy5wYXJhbGxlbEVuZDtcbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0ZpcnN0SW5QYXJhbGxlbCA9IG1ldGFkYXRhW25vZGVNZXRhZGF0YS5wYXJlbnRzWzBdPy5pZF0/LnBhcmFsbGVsU3RhcnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbkluZGV4ID0gY29sdW1uLmluZGV4O1xuICAgICAgICAgICAgY29uc3QgZ3JhcGhQcmV2Q29sdW1uID0gY29sdW1uSW5kZXggPyBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4IC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBncmFwaE5leHRDb2x1bW4gPSBjb2x1bW5JbmRleCA/IGdyYXBoLmNvbHVtbnNbY29sdW1uSW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgcHJldkhOb2RlID0gZ3JhcGhQcmV2Q29sdW1uPy5ub2Rlc1tub2RlSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV4dEhOb2RlID0gZ3JhcGhOZXh0Q29sdW1uPy5ub2Rlc1tub2RlSW5kZXhdO1xuXG4gICAgICAgICAgICBub2RlTWV0YWRhdGEucmVuZGVyQWRkTm9kZUFmdGVyQnV0dG9uID1cbiAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEuY2FuQWRkTm9kZUFmdGVyICYmXG4gICAgICAgICAgICAgICAgKG5vZGVNZXRhZGF0YS5pc0ZpbmFsIHx8XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5wYXJhbGxlbFN0YXJ0IHx8XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0xhc3RJblBhcmFsbGVsIHx8XG4gICAgICAgICAgICAgICAgICAgIG5leHRITm9kZT8uYmxhbmspO1xuXG4gICAgICAgICAgICBjb25zdCBuZXh0Q29sdW1uTm9kZXMgPSBncmFwaE5leHRDb2x1bW4/Lm5vZGVzO1xuICAgICAgICAgICAgaWYgKG5vZGVNZXRhZGF0YS5wYXJhbGxlbFN0YXJ0ICYmIG5leHRDb2x1bW5Ob2Rlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbmV4dENvbHVtbk5vZGVzLmZpbHRlcigoX25vZGUpID0+IG5vZGUudGFyZ2V0cy5pbmNsdWRlcyhfbm9kZS5pZCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q2hpbGRJbmRleCA9IG5leHRDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gY2hpbGRyZW5bMF0uaWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4ID0gbmV4dENvbHVtbk5vZGVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV0uaWRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZpcnN0Q2hpbGRJbmRleCArIDE7IGkgPD0gbGFzdENoaWxkSW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVtuZXh0Q29sdW1uTm9kZXNbaV0uaWRdLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcmV2Q29sdW1uTm9kZXMgPSBncmFwaFByZXZDb2x1bW4/Lm5vZGVzO1xuICAgICAgICAgICAgaWYgKG5vZGVNZXRhZGF0YS5wYXJhbGxlbEVuZCAmJiBwcmV2Q29sdW1uTm9kZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFBhcmVudEluZGV4ID0gcHJldkNvbHVtbk5vZGVzLmZpbmRJbmRleCgoX25vZGUpID0+IF9ub2RlLmlkID09PSBub2RlTWV0YWRhdGEucGFyZW50c1swXS5pZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFBhcmVudEluZGV4ID0gcHJldkNvbHVtbk5vZGVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gbm9kZU1ldGFkYXRhLnBhcmVudHNbbm9kZU1ldGFkYXRhLnBhcmVudHMubGVuZ3RoIC0gMV0uaWRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZpcnN0UGFyZW50SW5kZXggKyAxOyBpIDw9IGxhc3RQYXJlbnRJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhW3ByZXZDb2x1bW5Ob2Rlc1tpXS5pZF0ucmVuZGVyVmVydGljYWxMaW5lQWZ0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZSA9ICFub2RlTWV0YWRhdGEucmVuZGVyVmVydGljYWxMaW5lQmVmb3JlXG4gICAgICAgICAgICAgICAgPyBub2RlSW5kZXggPiAwICYmICFwcmV2SE5vZGVcbiAgICAgICAgICAgICAgICA6IHRydWU7XG4gICAgICAgICAgICBub2RlTWV0YWRhdGEucmVuZGVyVmVydGljYWxMaW5lQWZ0ZXIgPSAhbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyXG4gICAgICAgICAgICAgICAgPyBub2RlSW5kZXggPiAwICYmICFuZXh0SE5vZGVcbiAgICAgICAgICAgICAgICA6IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1ldGFkYXRhO1xufVxuXG5mdW5jdGlvbiBmaW5kUm9vdE5vZGVzKG5vZGVzOiBBcHByb3ZhbE5vZGVbXSk6IEFwcHJvdmFsTm9kZVtdIHtcbiAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChub2RlKSA9PiBub2Rlcy5ldmVyeSgobikgPT4gIWlzTm9kZVRhcmdldHNJbmNsdWRlSWQobiwgbm9kZS5pZCkpKTtcbn1cblxuZnVuY3Rpb24gZmluZEZpbmFsTm9kZXMobm9kZXM6IEFwcHJvdmFsTm9kZVtdKTogQXBwcm92YWxOb2RlW10ge1xuICAgIHJldHVybiBub2Rlcy5maWx0ZXIoKG5vZGUpID0+ICFub2RlLnRhcmdldHMubGVuZ3RoKTtcbn1cblxuLyoqIEZpbmQgYWxsIHBvc3NpYmxlIHBhdGhzIChsb25nZXN0IHBhdGggbGVuZ3RoID0gYW1vdW50IG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmFwaCkgKi9cbmZ1bmN0aW9uIGdldFBhdGhzKHJvb3ROb2RlczogQXBwcm92YWxHcmFwaE5vZGVbXSwgbm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcbiAgICBjb25zdCBxdWV1ZTogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvb3ROb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBxdWV1ZS5wdXNoKFtyb290Tm9kZXNbaV1dKTtcblxuICAgICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gcXVldWUucG9wKCk7XG4gICAgICAgICAgICBsZXQgbGFzdE5vZGVJblBhdGg6IEFwcHJvdmFsR3JhcGhOb2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm9kZUluUGF0aCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqIEluZGljYXRlcyBhYm91dCBhbiBlcnJvciAqL1xuICAgICAgICAgICAgaWYgKCFsYXN0Tm9kZUluUGF0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFsYXN0Tm9kZUluUGF0aC50YXJnZXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2gocGF0aCEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm9kZUluUGF0aC50YXJnZXRzLmZvckVhY2goKHRhcmdldElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSBub2Rlcy5maW5kKChub2RlKSA9PiBub2RlLmlkID09PSB0YXJnZXRJZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBbLi4ucGF0aCEsIHRhcmdldE5vZGVdO1xuXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlLnB1c2gobmV3UGF0aCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aHM7XG59XG5cbi8qKiBUcmltIHBhdGhzIChyZW1vdmUgYmxhbmsgbm9kZXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aHMpICovXG5mdW5jdGlvbiB0cmltUGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBsZXQgaW5kZXhUb1NsaWNlID0gcGF0aC5sZW5ndGggLSAxO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIDE7IGkgPiAwOyAtLWkpIHtcbiAgICAgICAgICAgIGlmIChwYXRoW2ldLmJsYW5rKSB7XG4gICAgICAgICAgICAgICAgaW5kZXhUb1NsaWNlID0gaSAtIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcGF0aFtpbmRleFRvU2xpY2VdLnRhcmdldHMgPSBbXTtcbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoLnNsaWNlKDAsIGluZGV4VG9TbGljZSArIDEpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIE1ha2UgYWxsIHBhdGhzIHRoZSBzYW1lIGxlbmd0aCAoPSBsb25nZXN0IHBhdGggbGVuZ3RoKSB0byBtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgYXQgdGhlIHNhbWUgaW5kZXggYWNyb3NzIGFsbCBwYXRocyAqL1xuZnVuY3Rpb24gbWFrZVBhdGhzU2FtZUxlbmd0aChwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG4gICAgY29uc3QgcGF0aExlbmd0aHMgPSBwYXRocy5tYXAoKHBhdGgpID0+IHBhdGgubGVuZ3RoKTtcbiAgICBjb25zdCBsb25nZXN0UGF0aExlbmd0aCA9IE1hdGgubWF4KC4uLnBhdGhMZW5ndGhzKTtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSBsb25nZXN0UGF0aExlbmd0aCkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGguZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICAvKiogVHJ5IHRvIGdldCBibGFuayBub2RlcyBmcm9tIGFscmVhZHkgcHJvY2Vzc2VkIHBhdGhzIGFzIHBhdGhzIG1heSBiZSB0aGUgc2FtZSB3aXRoaW4gc29tZSBwYXJ0ICovXG4gICAgICAgICAgICBsZXQgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXNBZnRlck5vZGUobm9kZSwgcHJvY2Vzc2VkUGF0aHMpO1xuICAgICAgICAgICAgaWYgKGJsYW5rTm9kZXMubGVuZ3RoICYmIGJsYW5rTm9kZXNbMF0uaWQgIT09IHBhdGhbbm9kZUluZGV4ICsgMV0/LmlkKSB7XG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2Uobm9kZUluZGV4ICsgMSwgMCwgLi4uYmxhbmtOb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBub2RlSW5kZXhJblBhdGhzID0gcGF0aHMubWFwKChfcGF0aCkgPT4gX3BhdGguaW5kZXhPZihub2RlKSk7XG4gICAgICAgICAgICBjb25zdCBtb3N0RmFyTm9kZUluZGV4SW5QYXRocyA9IE1hdGgubWF4KC4uLm5vZGVJbmRleEluUGF0aHMpO1xuXG4gICAgICAgICAgICBpZiAobm9kZUluZGV4IDwgbW9zdEZhck5vZGVJbmRleEluUGF0aHMpIHtcbiAgICAgICAgICAgICAgICBibGFua05vZGVzID0gZ2V0QmxhbmtOb2Rlcyhtb3N0RmFyTm9kZUluZGV4SW5QYXRocyAtIG5vZGVJbmRleCwgcGF0aFtub2RlSW5kZXggLSAxXS5zdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgYmxhbmtOb2Rlc1tibGFua05vZGVzLmxlbmd0aCAtIDFdLnRhcmdldHMgPSBbbm9kZS5pZF07XG4gICAgICAgICAgICAgICAgcGF0aFtub2RlSW5kZXggLSAxXS50YXJnZXRzID0gW2JsYW5rTm9kZXNbMF0uaWRdO1xuXG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2Uobm9kZUluZGV4LCAwLCAuLi5ibGFua05vZGVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChub2RlSW5kZXggPT09IG1vc3RGYXJOb2RlSW5kZXhJblBhdGhzICYmIG5vZGVJbmRleCA9PT0gcGF0aC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXMobG9uZ2VzdFBhdGhMZW5ndGggLSBwYXRoLmxlbmd0aCwgcGF0aFtub2RlSW5kZXhdLnN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICBwYXRoW25vZGVJbmRleF0udGFyZ2V0cyA9IFtibGFua05vZGVzWzBdLmlkXTtcblxuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCArIDEsIDAsIC4uLmJsYW5rTm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFRyeSB0byBnZXQgYmxhbmsgbm9kZXMgZnJvbSBhbHJlYWR5IHByb2Nlc3NlZCBwYXRocyBhcyBwYXRocyBtYXkgYmUgdGhlIHNhbWUgd2l0aGluIHNvbWUgcGFydCAqL1xuZnVuY3Rpb24gZ2V0QmxhbmtOb2Rlc0FmdGVyTm9kZShub2RlOiBBcHByb3ZhbEdyYXBoTm9kZSwgcGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW10ge1xuICAgIGNvbnN0IGJsYW5rTm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGNvbnN0IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIgPSBwYXRocy5maW5kKChwYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVJbmRleCA9IHBhdGguaW5kZXhPZihub2RlKTtcbiAgICAgICAgcmV0dXJuIG5vZGVJbmRleCA+IC0xICYmIHBhdGhbbm9kZUluZGV4ICsgMV0/LmJsYW5rO1xuICAgIH0pO1xuXG4gICAgaWYgKHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIpIHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4ID0gcGF0aFdpdGhCbGFua05vZGVBZnRlci5pbmRleE9mKG5vZGUpICsgMTtcbiAgICAgICAgY29uc3QgbmV4dE5vdEJsYW5rTm9kZUluZGV4ID0gcGF0aFdpdGhCbGFua05vZGVBZnRlci5maW5kSW5kZXgoXG4gICAgICAgICAgICAoX25vZGUsIF9pbmRleCkgPT4gX2luZGV4ID4gbm9kZUluZGV4ICYmICFfbm9kZS5ibGFua1xuICAgICAgICApO1xuXG4gICAgICAgIGJsYW5rTm9kZXMucHVzaChcbiAgICAgICAgICAgIC4uLnBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuc2xpY2Uobm9kZUluZGV4LCBuZXh0Tm90QmxhbmtOb2RlSW5kZXggPiAwID8gbmV4dE5vdEJsYW5rTm9kZUluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBibGFua05vZGVzO1xufVxuXG4vKiogR2VuZXJhdGUgYmxhbmsgbm9kZXMgc2VxdWVudGlhbCAqL1xuZnVuY3Rpb24gZ2V0QmxhbmtOb2Rlcyhjb3VudDogbnVtYmVyLCBzdGF0dXM6IEFwcHJvdmFsU3RhdHVzKTogQXBwcm92YWxHcmFwaE5vZGVbXSB7XG4gICAgY29uc3Qgbm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGxldCBub2RlOiBBcHByb3ZhbEdyYXBoTm9kZTtcbiAgICBsZXQgbm9kZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gY291bnQ7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgbm9kZSA9IE9iamVjdC5hc3NpZ24oe30sIGdldEJsYW5rQXBwcm92YWxHcmFwaE5vZGUoKSwgeyB0YXJnZXRzOiBub2RlSWQgPyBbbm9kZUlkXSA6IFtdLCBzdGF0dXMgfSk7XG4gICAgICAgIG5vZGVJZCA9IG5vZGUuaWQ7XG5cbiAgICAgICAgbm9kZXMudW5zaGlmdChub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXM7XG59XG5cbi8qKiBTb3J0IHBhdGhzIGJ5IHRoZWlyIGxpa2VuZXNzICg9IGNvdW50IG9mIHRoZSBzYW1lIG5vZGVzIHJlbGF0aXZlbHkgdG8gdGhlIG90aGVyIHBhdGhzKSBiZXR3ZWVuIGVhY2ggb3RoZXIgdG8gYXZvaWQgcGF0aHMgY3Jvc3NpbmcgKi9cbmZ1bmN0aW9uIHNvcnRQYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBpZiAocGF0aHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG5cbiAgICAvKiogW3BhdGhJbmRleCwgcmVsYXRpdmVUb1BhdGhJbmRleCwgc2FtZU5vZGVzQ291bnRdW10gKi9cbiAgICBsZXQgc2ltaWxhcml0aWVzOiBudW1iZXJbXVtdID0gW107XG4gICAgbGV0IHBhdGhTaW1pbGFyaXR5ID0gMDtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgsIGluZGV4KSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gaSAmJiAhc2ltaWxhcml0aWVzLnNvbWUoKGxpa2VseSkgPT4gaW5kZXggPT09IGxpa2VseVsxXSAmJiBpID09PSBsaWtlbHlbMF0pKSB7XG4gICAgICAgICAgICAgICAgcGF0aFNpbWlsYXJpdHkgPSAwO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwYXRoLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXRoW2pdLmlkID09PSBwYXRoc1tpXVtqXS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFNpbWlsYXJpdHkrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNpbWlsYXJpdGllcy5wdXNoKFtpbmRleCwgaSwgcGF0aFNpbWlsYXJpdHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgc2ltaWxhcml0aWVzID0gc2ltaWxhcml0aWVzLnNvcnQoKGEsIGIpID0+IChhWzJdID4gYlsyXSA/IC0xIDogMSkpO1xuXG4gICAgY29uc3QgdXNlZFBhdGhJbmRleGVzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIHNpbWlsYXJpdGllcy5mb3JFYWNoKChzaW1pbGFyaXR5KSA9PiB7XG4gICAgICAgIGlmICghdXNlZFBhdGhJbmRleGVzLnNvbWUoKGkpID0+IGkgPT09IHNpbWlsYXJpdHlbMF0pKSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGhzW3NpbWlsYXJpdHlbMF1dKTtcbiAgICAgICAgICAgIHVzZWRQYXRoSW5kZXhlcy5wdXNoKHNpbWlsYXJpdHlbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VkUGF0aEluZGV4ZXMuc29tZSgoaSkgPT4gaSA9PT0gc2ltaWxhcml0eVsxXSkpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aHNbc2ltaWxhcml0eVsxXV0pO1xuICAgICAgICAgICAgdXNlZFBhdGhJbmRleGVzLnB1c2goc2ltaWxhcml0eVsxXSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFJlbW92ZSBcImR1cGxpY2F0ZVwiIG5vZGVzIGluIHBhdGhzIChtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgb25seSBvbmNlIGFjcm9zcyBhbGwgcGF0aHMpICovXG5mdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVOb2RlcyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICBwYXRoLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIHBhdGhzLmZvckVhY2goKF9wYXRoLCBfaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc05vZGVJblBhdGggPSBfaW5kZXggIT09IGluZGV4ICYmIF9wYXRoLmluZGV4T2Yobm9kZSkgPiAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChpc05vZGVJblBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqIEluc3RlYWQgb2Ygbm9kZSBwbGFjZSBzcGFjZSBub2RlICovXG4gICAgICAgICAgICAgICAgICAgIF9wYXRoLnNwbGljZShfcGF0aC5pbmRleE9mKG5vZGUpLCAxLCBnZXRTcGFjZUFwcHJvdmFsR3JhcGhOb2RlKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZFBhdGhzO1xufVxuXG4vKiogUmVtb3ZlIGVtcHR5IHBhdGhzICh3aGljaCBjb250YWlucyBvbmx5IGVtcHR5IG5vZGVzKSAqL1xuZnVuY3Rpb24gcmVtb3ZlRW1wdHlQYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICByZXR1cm4gcGF0aHMucmVkdWNlKChhY2MsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKCFwYXRoLmV2ZXJ5KChub2RlKSA9PiBub2RlLnNwYWNlKSkge1xuICAgICAgICAgICAgYWNjLnB1c2gocGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdIGFzIEFwcHJvdmFsR3JhcGhOb2RlW11bXSk7XG59XG5cbi8qKiBUcmFuc2Zvcm0gcGF0aHMgaW50byB0aGUgY29sdW1ucyAoaXQncyBwb3NzaWJsZSBhcyB0aGV5J3JlIGFsbCB0aGUgc2FtZSBsZW5ndGgpICovXG5mdW5jdGlvbiBnZXRDb2x1bW5zRnJvbVBhdGhzKHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuICAgIGxldCBjb2x1bW46IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHNbMF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29sdW1uID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgdiA9IDA7IHYgPCBwYXRocy5sZW5ndGg7IHYrKykge1xuICAgICAgICAgICAgY29sdW1uLnB1c2gocGF0aHNbdl1baV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbnM7XG59XG5cbi8qKiBUcmltIHNwYWNlIG5vZGVzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbHVtbnMuICovXG5mdW5jdGlvbiB0cmltQ29sdW1ucyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZENvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgbGV0IGxhc3ROb3RTcGFjZU5vZGVJbmRleDtcblxuICAgICAgICBmb3IgKGxldCBpID0gY29sdW1uLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoIWNvbHVtbltpXS5zcGFjZSkge1xuICAgICAgICAgICAgICAgIGxhc3ROb3RTcGFjZU5vZGVJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGFzdE5vdFNwYWNlTm9kZUluZGV4IDwgY29sdW1uLmxlbmd0aCkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbi5zbGljZSgwLCBsYXN0Tm90U3BhY2VOb2RlSW5kZXggKyAxKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRDb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZENvbHVtbnM7XG59XG5cbi8qKiBSZW1vdmUgZW1wdHkgY29sdW1ucyAod2hlcmUgZXZlcnkgbm9kZSBpcyBhIGJsYW5rIG5vZGUpICAqL1xuZnVuY3Rpb24gcmVtb3ZlRW1wdHlDb2x1bW5zKGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkQ29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBhcmVBbGxOb2Rlc0VtcHR5ID0gY29sdW1uLmV2ZXJ5KChub2RlKSA9PiBub2RlLmJsYW5rIHx8IG5vZGUuc3BhY2UpO1xuXG4gICAgICAgIGlmIChhcmVBbGxOb2Rlc0VtcHR5KSB7XG4gICAgICAgICAgICBjb2x1bW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmJsYW5rKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKiBDb25uZWN0IHByZXZpb3VzIGNvbHVtbiB0byB0aGUgbmV4dCBjb2x1bW4sIG9taXR0aW5nIGN1cnJlbnQgY29sdW1uLiAqL1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlVGFyZ2V0cyhub2RlLmlkLCBub2RlLnRhcmdldHMsIGNvbHVtbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRDb2x1bW5zO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlVGFyZ2V0cyhyZXBsYWNlSWQ6IHN0cmluZywgcmVwbGFjZVdpdGhJZDogc3RyaW5nW10sIGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IHZvaWQge1xuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbHVtbi5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNOb2RlVGFyZ2V0c0luY2x1ZGVJZChuLCByZXBsYWNlSWQpKSB7XG4gICAgICAgICAgICAgICAgbi50YXJnZXRzID0gbi50YXJnZXRzLmZpbHRlcigoX2lkKSA9PiBfaWQgIT09IHJlcGxhY2VJZCk7XG4gICAgICAgICAgICAgICAgbi50YXJnZXRzLnB1c2goLi4ucmVwbGFjZVdpdGhJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG4vKiogVHJhbnNmb3JtIGNvbHVtbnMgaW50byB0aGUgZ3JhcGggY29sdW1ucyAod2l0aCBhZGRpdGlvbmFsIG1ldGFkYXRhKS4gKi9cbmZ1bmN0aW9uIGdldEdyYXBoQ29sdW1uc0Zyb21QYXRocyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoQ29sdW1uW10ge1xuICAgIGNvbnN0IGdyYXBoQ29sdW1uczogQXBwcm92YWxHcmFwaENvbHVtbltdID0gW107XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgY29sdW1uLmZvckVhY2goKG5vZGUpID0+IChub2RlLmNvbEluZGV4ID0gaW5kZXgpKTtcblxuICAgICAgICBncmFwaENvbHVtbnMucHVzaCh7XG4gICAgICAgICAgICBub2RlczogY29sdW1uLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhbGxOb2Rlc0FwcHJvdmVkOiBjb2x1bW4uZXZlcnkoKG5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKG5vZGUpKVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBncmFwaENvbHVtbnM7XG59XG4iXX0=
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsYUFBYSxFQUNiLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsY0FBYyxFQUNkLGFBQWEsRUFDYixzQkFBc0IsRUFDekIsTUFBTSxXQUFXLENBQUM7QUFpQm5COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQTBCO0lBQ2hFLE1BQU0sS0FBSyxHQUFzQixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRWhFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDN0YsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXpDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8s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QThCO0lBQzlGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakIsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDekQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQzthQUNwQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLFNBQVMsd0JBQXdCLENBQUMsT0FBOEI7SUFDNUQsTUFBTSxZQUFZLEdBQTBCLEVBQUUsQ0FBQztJQUUvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWxELFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUs7WUFDTCxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwcm92YWxHcmFwaE5vZGUsIEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGEsIEFwcHJvdmFsTm9kZSwgQXBwcm92YWxTdGF0dXMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1xuICAgIGdldEJsYW5rQXBwcm92YWxHcmFwaE5vZGUsXG4gICAgZ2V0R3JhcGhOb2RlcyxcbiAgICBnZXRQYXJlbnROb2RlcyxcbiAgICBnZXRTcGFjZUFwcHJvdmFsR3JhcGhOb2RlLFxuICAgIGlzTm9kZUFwcHJvdmVkLFxuICAgIGlzTm9kZVN0YXJ0ZWQsXG4gICAgaXNOb2RlVGFyZ2V0c0luY2x1ZGVJZFxufSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsRmxvd0dyYXBoIHtcbiAgICBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoQ29sdW1uW107XG4gICAgZXJyb3JzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZhbEdyYXBoQ29sdW1uIHtcbiAgICBub2RlczogQXBwcm92YWxHcmFwaE5vZGVbXTtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICBhbGxOb2Rlc0FwcHJvdmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZhbEdyYXBoTWV0YWRhdGEge1xuICAgIFtrZXk6IHN0cmluZ106IEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGE7XG59XG5cbi8qKiBBbGdvcml0aG0gaW4gc2hvcnQ6XG4gKiAxLiBGaW5kIGFsbCBwb3NzaWJsZSBwYXRocyAobG9uZ2VzdCBwYXRoIGxlbmd0aCA9IGFtb3VudCBvZiB0aGUgY29sdW1ucyBpbiB0aGUgZ3JhcGgpXG4gKiAyLiBUcmltIHBhdGhzIChyZW1vdmUgYmxhbmsgbm9kZXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aHMpXG4gKiAzLiBNYWtlIGFsbCBwYXRocyB0aGUgc2FtZSBsZW5ndGggKD0gbG9uZ2VzdCBwYXRoIGxlbmd0aCkgdG8gbWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IGF0IHRoZSBzYW1lIGluZGV4IGFjcm9zcyBhbGwgcGF0aHNcbiAqIDQuIFNvcnQgcGF0aHMgYnkgdGhlaXIgbGlrZW5lc3MgYmV0d2VlbiBlYWNoIG90aGVyIHRvIGF2b2lkIHBhdGhzIGNyb3NzaW5nXG4gKiA1LiBSZW1vdmUgXCJkdXBsaWNhdGVcIiBub2RlcyBpbiBwYXRocyAobWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IG9ubHkgb25jZSBhY3Jvc3MgYWxsIHBhdGhzKVxuICogNi4gUmVtb3ZlIGVtcHR5IHBhdGhzXG4gKiA3LiBUcmFuc2Zvcm0gcGF0aHMgaW50byB0aGUgY29sdW1uc1xuICogOC4gVHJpbSBjb2x1bW5zIChyZW1vdmUgc3BhY2Ugbm9kZXMgYXQgdGhlIGVuZCBvZiBjb2x1bW5zKVxuICogOS4gUmVtb3ZlIGNvbHVtbnMgd2hpY2ggY29udGFpbiBvbmx5IGJsYW5rIGFuZCBlbXB0eSBub2Rlc1xuICogMTAuIFRyYW5zZm9ybSBjb2x1bW5zIGludG8gdGhlIGdyYXBoIGNvbHVtbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXBwcm92YWxGbG93R3JhcGgobm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10pOiBBcHByb3ZhbEZsb3dHcmFwaCB7XG4gICAgY29uc3QgZ3JhcGg6IEFwcHJvdmFsRmxvd0dyYXBoID0geyBjb2x1bW5zOiBbXSwgZXJyb3JzOiBmYWxzZSB9O1xuXG4gICAgaWYgKCFub2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGdyYXBoO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3ROb2RlcyA9IGZpbmRSb290Tm9kZXMobm9kZXMpO1xuICAgIGNvbnN0IGZpbmFsTm9kZXMgPSBmaW5kRmluYWxOb2Rlcyhub2Rlcyk7XG5cbiAgICBpZiAoIXJvb3ROb2Rlcy5sZW5ndGggfHwgIWZpbmFsTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgRXJyOiBOb3QgcG9zc2libGUgdG8gYnVpbGQgZ3JhcGggYmVjYXVzZSByb290IG9yIGZpbmFsIG5vZGVzIGFyZW4ndCBwcmVzZW50IWApO1xuICAgICAgICBncmFwaC5lcnJvcnMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aHMgPSBnZXRQYXRocyhyb290Tm9kZXMsIG5vZGVzKTtcblxuICAgIGlmICghcGF0aHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignRXJyOiBOb3QgcG9zc2libGUgdG8gYnVpbGQgZ3JhcGghJyk7XG4gICAgICAgIGdyYXBoLmVycm9ycyA9IHRydWU7XG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkUGF0aHMgPSB0cmltUGF0aHMocGF0aHMpO1xuICAgIGNvbnN0IHNhbWVMZW5ndGhQYXRocyA9IG1ha2VQYXRoc1NhbWVMZW5ndGgodHJpbW1lZFBhdGhzKTtcbiAgICBjb25zdCBwYXRoc0J5U2ltaWxhcml0eSA9IHNvcnRQYXRocyhzYW1lTGVuZ3RoUGF0aHMpO1xuICAgIGNvbnN0IHBhdGhzV2l0aFVuaXF1ZU5vZGVzID0gcmVtb3ZlRHVwbGljYXRlTm9kZXMocGF0aHNCeVNpbWlsYXJpdHkpO1xuICAgIGNvbnN0IG5vdEVtcHR5UGF0aHMgPSByZW1vdmVFbXB0eVBhdGhzKHBhdGhzV2l0aFVuaXF1ZU5vZGVzKTtcbiAgICBjb25zdCBjb2x1bW5zID0gZ2V0Q29sdW1uc0Zyb21QYXRocyhub3RFbXB0eVBhdGhzKTtcbiAgICBjb25zdCB0cmltbWVkQ29sdW1ucyA9IHRyaW1Db2x1bW5zKGNvbHVtbnMpO1xuICAgIGNvbnN0IG5vdEVtcHR5Q29sdW1ucyA9IHJlbW92ZUVtcHR5Q29sdW1ucyh0cmltbWVkQ29sdW1ucyk7XG4gICAgZ3JhcGguY29sdW1ucyA9IGdldEdyYXBoQ29sdW1uc0Zyb21QYXRocyhub3RFbXB0eUNvbHVtbnMpO1xuXG4gICAgcmV0dXJuIGdyYXBoO1xufVxuXG4vKiogR2VuZXJhdGUgZ3JhcGggbWV0YWRhdGEgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFwcHJvdmFsRmxvd0dyYXBoTWV0YWRhdGEoZ3JhcGg6IEFwcHJvdmFsRmxvd0dyYXBoKTogQXBwcm92YWxHcmFwaE1ldGFkYXRhIHtcbiAgICBjb25zdCBub2RlcyA9IGdldEdyYXBoTm9kZXMoZ3JhcGgpO1xuICAgIGNvbnN0IG1ldGFkYXRhOiBBcHByb3ZhbEdyYXBoTWV0YWRhdGEgPSB7fTtcblxuICAgIGdyYXBoLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uLCBjb2x1bW5JbmRleCkgPT4ge1xuICAgICAgICBjb2x1bW4ubm9kZXMuZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzID0gZ2V0UGFyZW50Tm9kZXMobm9kZSwgbm9kZXMpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50c0FwcHJvdmVkID0gcGFyZW50cy5sZW5ndGggPyBwYXJlbnRzLmV2ZXJ5KChfbm9kZSkgPT4gaXNOb2RlQXBwcm92ZWQoX25vZGUpKSA6IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaXNSb290ID0gIXBhcmVudHMubGVuZ3RoICYmICFub2RlLnNwYWNlO1xuICAgICAgICAgICAgY29uc3QgaXNGaW5hbCA9ICFub2RlLnRhcmdldHMubGVuZ3RoICYmICFub2RlLnNwYWNlO1xuICAgICAgICAgICAgY29uc3QgcGFyYWxsZWxFbmQgPSBwYXJlbnRzLmxlbmd0aCA+IDE7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE9mTXVsdGlwbGVSb290Tm9kZXMgPSBjb2x1bW5JbmRleCA9PT0gMCAmJiBjb2x1bW4ubm9kZXMubGVuZ3RoID4gMSAmJiBub2RlSW5kZXggPT09IDA7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzID1cbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCA9PT0gZ3JhcGguY29sdW1ucy5sZW5ndGggLSAxICYmIGNvbHVtbi5ub2Rlcy5sZW5ndGggPiAxICYmIG5vZGVJbmRleCA9PT0gMDtcblxuICAgICAgICAgICAgbWV0YWRhdGFbbm9kZS5pZF0gPSB7XG4gICAgICAgICAgICAgICAgcGFyZW50cyxcbiAgICAgICAgICAgICAgICBpc1Jvb3QsXG4gICAgICAgICAgICAgICAgaXNGaW5hbCxcbiAgICAgICAgICAgICAgICBwYXJhbGxlbFN0YXJ0OiBub2RlLnRhcmdldHMubGVuZ3RoID4gMSxcbiAgICAgICAgICAgICAgICBwYXJhbGxlbEVuZCxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICBub2RlSW5kZXgsXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUJlZm9yZTogIWlzTm9kZVN0YXJ0ZWQobm9kZSkgJiYgIXBhcmVudHNBcHByb3ZlZCxcbiAgICAgICAgICAgICAgICBjYW5BZGROb2RlQmVmb3JlQWxsOiBpc1Jvb3QgJiYgZmlyc3RPZk11bHRpcGxlUm9vdE5vZGVzLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVBZnRlcjogIWlzTm9kZUFwcHJvdmVkKG5vZGUpLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVBZnRlckFsbDpcbiAgICAgICAgICAgICAgICAgICAgIWlzTm9kZUFwcHJvdmVkKG5vZGUpICYmICgoaXNGaW5hbCAmJiBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzKSB8fCAocGFyYWxsZWxFbmQgJiYgbm9kZS5ibGFuaykpLFxuICAgICAgICAgICAgICAgIGNhbkFkZFBhcmFsbGVsOiAhaXNOb2RlQXBwcm92ZWQobm9kZSksXG4gICAgICAgICAgICAgICAgaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZDogbm9kZS5zcGFjZSAmJiBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4IC0gMV0/LmFsbE5vZGVzQXBwcm92ZWQsXG4gICAgICAgICAgICAgICAgaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkOiBub2RlLnNwYWNlICYmIGNvbHVtbi5hbGxOb2Rlc0FwcHJvdmVkLFxuICAgICAgICAgICAgICAgIGZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcyxcbiAgICAgICAgICAgICAgICBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzLFxuICAgICAgICAgICAgICAgIHJvb3ROb2Rlc0FwcHJvdmVkOiBjb2x1bW5JbmRleCA9PT0gMCAmJiBjb2x1bW4uYWxsTm9kZXNBcHByb3ZlZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKiBTb21lIGZsYWdzIGNhbiBiZSBjYWxjdWxhdGVkIG9ubHkgb24gdGhlIHNlY29uZCBydW4sIHdoZW4gYWxsIG5vZGVzIGFscmVhZHkgaGF2ZSBiYXNlIG1ldGFkYXRhICovXG4gICAgZ3JhcGguY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1uLm5vZGVzLmZvckVhY2goKG5vZGUsIG5vZGVJbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZU1ldGFkYXRhID0gbWV0YWRhdGFbbm9kZS5pZF07XG5cbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0xhc3RJblBhcmFsbGVsID0gbWV0YWRhdGFbbm9kZS50YXJnZXRzWzBdXT8ucGFyYWxsZWxFbmQ7XG4gICAgICAgICAgICBub2RlTWV0YWRhdGEuaXNGaXJzdEluUGFyYWxsZWwgPSBtZXRhZGF0YVtub2RlTWV0YWRhdGEucGFyZW50c1swXT8uaWRdPy5wYXJhbGxlbFN0YXJ0O1xuXG4gICAgICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9IGNvbHVtbi5pbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGdyYXBoUHJldkNvbHVtbiA9IGNvbHVtbkluZGV4ID8gZ3JhcGguY29sdW1uc1tjb2x1bW5JbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZ3JhcGhOZXh0Q29sdW1uID0gY29sdW1uSW5kZXggPyBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4ICsgMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZITm9kZSA9IGdyYXBoUHJldkNvbHVtbj8ubm9kZXNbbm9kZUluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRITm9kZSA9IGdyYXBoTmV4dENvbHVtbj8ubm9kZXNbbm9kZUluZGV4XTtcblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiA9XG4gICAgICAgICAgICAgICAgbm9kZU1ldGFkYXRhLmNhbkFkZE5vZGVBZnRlciAmJlxuICAgICAgICAgICAgICAgIChub2RlTWV0YWRhdGEuaXNGaW5hbCB8fFxuICAgICAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEucGFyYWxsZWxTdGFydCB8fFxuICAgICAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEuaXNMYXN0SW5QYXJhbGxlbCB8fFxuICAgICAgICAgICAgICAgICAgICBuZXh0SE5vZGU/LmJsYW5rKTtcblxuICAgICAgICAgICAgY29uc3QgbmV4dENvbHVtbk5vZGVzID0gZ3JhcGhOZXh0Q29sdW1uPy5ub2RlcztcbiAgICAgICAgICAgIGlmIChub2RlTWV0YWRhdGEucGFyYWxsZWxTdGFydCAmJiBuZXh0Q29sdW1uTm9kZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5leHRDb2x1bW5Ob2Rlcy5maWx0ZXIoKF9ub2RlKSA9PiBub2RlLnRhcmdldHMuaW5jbHVkZXMoX25vZGUuaWQpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENoaWxkSW5kZXggPSBuZXh0Q29sdW1uTm9kZXMuZmluZEluZGV4KChfbm9kZSkgPT4gX25vZGUuaWQgPT09IGNoaWxkcmVuWzBdLmlkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IG5leHRDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgIChfbm9kZSkgPT4gX25vZGUuaWQgPT09IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLmlkXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmaXJzdENoaWxkSW5kZXggKyAxOyBpIDw9IGxhc3RDaGlsZEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFbbmV4dENvbHVtbk5vZGVzW2ldLmlkXS5yZW5kZXJWZXJ0aWNhbExpbmVCZWZvcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcHJldkNvbHVtbk5vZGVzID0gZ3JhcGhQcmV2Q29sdW1uPy5ub2RlcztcbiAgICAgICAgICAgIGlmIChub2RlTWV0YWRhdGEucGFyYWxsZWxFbmQgJiYgcHJldkNvbHVtbk5vZGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RQYXJlbnRJbmRleCA9IHByZXZDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gbm9kZU1ldGFkYXRhLnBhcmVudHNbMF0uaWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQYXJlbnRJbmRleCA9IHByZXZDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgIChfbm9kZSkgPT4gX25vZGUuaWQgPT09IG5vZGVNZXRhZGF0YS5wYXJlbnRzW25vZGVNZXRhZGF0YS5wYXJlbnRzLmxlbmd0aCAtIDFdLmlkXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmaXJzdFBhcmVudEluZGV4ICsgMTsgaSA8PSBsYXN0UGFyZW50SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVtwcmV2Q29sdW1uTm9kZXNbaV0uaWRdLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5yZW5kZXJWZXJ0aWNhbExpbmVCZWZvcmUgPSAhbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZVxuICAgICAgICAgICAgICAgID8gbm9kZUluZGV4ID4gMCAmJiAhcHJldkhOb2RlXG4gICAgICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyID0gIW5vZGVNZXRhZGF0YS5yZW5kZXJWZXJ0aWNhbExpbmVBZnRlclxuICAgICAgICAgICAgICAgID8gbm9kZUluZGV4ID4gMCAmJiAhbmV4dEhOb2RlXG4gICAgICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtZXRhZGF0YTtcbn1cblxuZnVuY3Rpb24gZmluZFJvb3ROb2Rlcyhub2RlczogQXBwcm92YWxOb2RlW10pOiBBcHByb3ZhbE5vZGVbXSB7XG4gICAgcmV0dXJuIG5vZGVzLmZpbHRlcigobm9kZSkgPT4gbm9kZXMuZXZlcnkoKG4pID0+ICFpc05vZGVUYXJnZXRzSW5jbHVkZUlkKG4sIG5vZGUuaWQpKSk7XG59XG5cbmZ1bmN0aW9uIGZpbmRGaW5hbE5vZGVzKG5vZGVzOiBBcHByb3ZhbE5vZGVbXSk6IEFwcHJvdmFsTm9kZVtdIHtcbiAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChub2RlKSA9PiAhbm9kZS50YXJnZXRzLmxlbmd0aCk7XG59XG5cbi8qKiBGaW5kIGFsbCBwb3NzaWJsZSBwYXRocyAobG9uZ2VzdCBwYXRoIGxlbmd0aCA9IGFtb3VudCBvZiB0aGUgY29sdW1ucyBpbiB0aGUgZ3JhcGgpICovXG5mdW5jdGlvbiBnZXRQYXRocyhyb290Tm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10sIG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG4gICAgY29uc3QgcXVldWU6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb290Tm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcXVldWUucHVzaChbcm9vdE5vZGVzW2ldXSk7XG5cbiAgICAgICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IHF1ZXVlLnBvcCgpO1xuICAgICAgICAgICAgbGV0IGxhc3ROb2RlSW5QYXRoOiBBcHByb3ZhbEdyYXBoTm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgICAgbGFzdE5vZGVJblBhdGggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKiBJbmRpY2F0ZXMgYWJvdXQgYW4gZXJyb3IgKi9cbiAgICAgICAgICAgIGlmICghbGFzdE5vZGVJblBhdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbGFzdE5vZGVJblBhdGgudGFyZ2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHBhdGghKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGFzdE5vZGVJblBhdGgudGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXRJZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXROb2RlID0gbm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5pZCA9PT0gdGFyZ2V0SWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmdldE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXRoID0gWy4uLnBhdGghLCB0YXJnZXROb2RlXTtcblxuICAgICAgICAgICAgICAgICAgICBxdWV1ZS5wdXNoKG5ld1BhdGgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGhzO1xufVxuXG4vKiogVHJpbSBwYXRocyAocmVtb3ZlIGJsYW5rIG5vZGVzIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGhzKSAqL1xuZnVuY3Rpb24gdHJpbVBhdGhzKHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbGV0IGluZGV4VG9TbGljZSA9IHBhdGgubGVuZ3RoIC0gMTtcblxuICAgICAgICBmb3IgKGxldCBpID0gcGF0aC5sZW5ndGggLSAxOyBpID4gMDsgLS1pKSB7XG4gICAgICAgICAgICBpZiAocGF0aFtpXS5ibGFuaykge1xuICAgICAgICAgICAgICAgIGluZGV4VG9TbGljZSA9IGkgLSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGhbaW5kZXhUb1NsaWNlXS50YXJnZXRzID0gW107XG4gICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aC5zbGljZSgwLCBpbmRleFRvU2xpY2UgKyAxKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBNYWtlIGFsbCBwYXRocyB0aGUgc2FtZSBsZW5ndGggKD0gbG9uZ2VzdCBwYXRoIGxlbmd0aCkgdG8gbWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IGF0IHRoZSBzYW1lIGluZGV4IGFjcm9zcyBhbGwgcGF0aHMgKi9cbmZ1bmN0aW9uIG1ha2VQYXRoc1NhbWVMZW5ndGgocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuICAgIGNvbnN0IHBhdGhMZW5ndGhzID0gcGF0aHMubWFwKChwYXRoKSA9PiBwYXRoLmxlbmd0aCk7XG4gICAgY29uc3QgbG9uZ2VzdFBhdGhMZW5ndGggPSBNYXRoLm1heCguLi5wYXRoTGVuZ3Rocyk7XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gbG9uZ2VzdFBhdGhMZW5ndGgpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoLmZvckVhY2goKG5vZGUsIG5vZGVJbmRleCkgPT4ge1xuICAgICAgICAgICAgLyoqIFRyeSB0byBnZXQgYmxhbmsgbm9kZXMgZnJvbSBhbHJlYWR5IHByb2Nlc3NlZCBwYXRocyBhcyBwYXRocyBtYXkgYmUgdGhlIHNhbWUgd2l0aGluIHNvbWUgcGFydCAqL1xuICAgICAgICAgICAgbGV0IGJsYW5rTm9kZXMgPSBnZXRCbGFua05vZGVzQWZ0ZXJOb2RlKG5vZGUsIHByb2Nlc3NlZFBhdGhzKTtcbiAgICAgICAgICAgIGlmIChibGFua05vZGVzLmxlbmd0aCAmJiBibGFua05vZGVzWzBdLmlkICE9PSBwYXRoW25vZGVJbmRleCArIDFdPy5pZCkge1xuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCArIDEsIDAsIC4uLmJsYW5rTm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgbm9kZUluZGV4SW5QYXRocyA9IHBhdGhzLm1hcCgoX3BhdGgpID0+IF9wYXRoLmluZGV4T2Yobm9kZSkpO1xuICAgICAgICAgICAgY29uc3QgbW9zdEZhck5vZGVJbmRleEluUGF0aHMgPSBNYXRoLm1heCguLi5ub2RlSW5kZXhJblBhdGhzKTtcblxuICAgICAgICAgICAgaWYgKG5vZGVJbmRleCA8IG1vc3RGYXJOb2RlSW5kZXhJblBhdGhzKSB7XG4gICAgICAgICAgICAgICAgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXMobW9zdEZhck5vZGVJbmRleEluUGF0aHMgLSBub2RlSW5kZXgsIHBhdGhbbm9kZUluZGV4IC0gMV0uc3RhdHVzKTtcblxuICAgICAgICAgICAgICAgIGJsYW5rTm9kZXNbYmxhbmtOb2Rlcy5sZW5ndGggLSAxXS50YXJnZXRzID0gW25vZGUuaWRdO1xuICAgICAgICAgICAgICAgIHBhdGhbbm9kZUluZGV4IC0gMV0udGFyZ2V0cyA9IFtibGFua05vZGVzWzBdLmlkXTtcblxuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCwgMCwgLi4uYmxhbmtOb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobm9kZUluZGV4ID09PSBtb3N0RmFyTm9kZUluZGV4SW5QYXRocyAmJiBub2RlSW5kZXggPT09IHBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGJsYW5rTm9kZXMgPSBnZXRCbGFua05vZGVzKGxvbmdlc3RQYXRoTGVuZ3RoIC0gcGF0aC5sZW5ndGgsIHBhdGhbbm9kZUluZGV4XS5zdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgcGF0aFtub2RlSW5kZXhdLnRhcmdldHMgPSBbYmxhbmtOb2Rlc1swXS5pZF07XG5cbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZShub2RlSW5kZXggKyAxLCAwLCAuLi5ibGFua05vZGVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBUcnkgdG8gZ2V0IGJsYW5rIG5vZGVzIGZyb20gYWxyZWFkeSBwcm9jZXNzZWQgcGF0aHMgYXMgcGF0aHMgbWF5IGJlIHRoZSBzYW1lIHdpdGhpbiBzb21lIHBhcnQgKi9cbmZ1bmN0aW9uIGdldEJsYW5rTm9kZXNBZnRlck5vZGUobm9kZTogQXBwcm92YWxHcmFwaE5vZGUsIHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdIHtcbiAgICBjb25zdCBibGFua05vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBjb25zdCBwYXRoV2l0aEJsYW5rTm9kZUFmdGVyID0gcGF0aHMuZmluZCgocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlSW5kZXggPSBwYXRoLmluZGV4T2Yobm9kZSk7XG4gICAgICAgIHJldHVybiBub2RlSW5kZXggPiAtMSAmJiBwYXRoW25vZGVJbmRleCArIDFdPy5ibGFuaztcbiAgICB9KTtcblxuICAgIGlmIChwYXRoV2l0aEJsYW5rTm9kZUFmdGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJbmRleCA9IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuaW5kZXhPZihub2RlKSArIDE7XG4gICAgICAgIGNvbnN0IG5leHROb3RCbGFua05vZGVJbmRleCA9IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuZmluZEluZGV4KFxuICAgICAgICAgICAgKF9ub2RlLCBfaW5kZXgpID0+IF9pbmRleCA+IG5vZGVJbmRleCAmJiAhX25vZGUuYmxhbmtcbiAgICAgICAgKTtcblxuICAgICAgICBibGFua05vZGVzLnB1c2goXG4gICAgICAgICAgICAuLi5wYXRoV2l0aEJsYW5rTm9kZUFmdGVyLnNsaWNlKG5vZGVJbmRleCwgbmV4dE5vdEJsYW5rTm9kZUluZGV4ID4gMCA/IG5leHROb3RCbGFua05vZGVJbmRleCA6IHVuZGVmaW5lZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxhbmtOb2Rlcztcbn1cblxuLyoqIEdlbmVyYXRlIGJsYW5rIG5vZGVzIHNlcXVlbnRpYWwgKi9cbmZ1bmN0aW9uIGdldEJsYW5rTm9kZXMoY291bnQ6IG51bWJlciwgc3RhdHVzOiBBcHByb3ZhbFN0YXR1cyk6IEFwcHJvdmFsR3JhcGhOb2RlW10ge1xuICAgIGNvbnN0IG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBsZXQgbm9kZTogQXBwcm92YWxHcmFwaE5vZGU7XG4gICAgbGV0IG5vZGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChsZXQgaSA9IGNvdW50OyBpID4gMDsgaS0tKSB7XG4gICAgICAgIG5vZGUgPSBPYmplY3QuYXNzaWduKHt9LCBnZXRCbGFua0FwcHJvdmFsR3JhcGhOb2RlKCksIHsgdGFyZ2V0czogbm9kZUlkID8gW25vZGVJZF0gOiBbXSwgc3RhdHVzIH0pO1xuICAgICAgICBub2RlSWQgPSBub2RlLmlkO1xuXG4gICAgICAgIG5vZGVzLnVuc2hpZnQobm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKiogU29ydCBwYXRocyBieSB0aGVpciBsaWtlbmVzcyAoPSBjb3VudCBvZiB0aGUgc2FtZSBub2RlcyByZWxhdGl2ZWx5IHRvIHRoZSBvdGhlciBwYXRocykgYmV0d2VlbiBlYWNoIG90aGVyIHRvIGF2b2lkIHBhdGhzIGNyb3NzaW5nICovXG5mdW5jdGlvbiBzb3J0UGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcGF0aHM7XG4gICAgfVxuXG4gICAgLyoqIFtwYXRoSW5kZXgsIHJlbGF0aXZlVG9QYXRoSW5kZXgsIHNhbWVOb2Rlc0NvdW50XVtdICovXG4gICAgbGV0IHNpbWlsYXJpdGllczogbnVtYmVyW11bXSA9IFtdO1xuICAgIGxldCBwYXRoU2ltaWxhcml0eSA9IDA7XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IGkgJiYgIXNpbWlsYXJpdGllcy5zb21lKChsaWtlbHkpID0+IGluZGV4ID09PSBsaWtlbHlbMV0gJiYgaSA9PT0gbGlrZWx5WzBdKSkge1xuICAgICAgICAgICAgICAgIHBhdGhTaW1pbGFyaXR5ID0gMDtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcGF0aC5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGF0aFtqXS5pZCA9PT0gcGF0aHNbaV1bal0uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhTaW1pbGFyaXR5Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzaW1pbGFyaXRpZXMucHVzaChbaW5kZXgsIGksIHBhdGhTaW1pbGFyaXR5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHNpbWlsYXJpdGllcyA9IHNpbWlsYXJpdGllcy5zb3J0KChhLCBiKSA9PiAoYVsyXSA+IGJbMl0gPyAtMSA6IDEpKTtcblxuICAgIGNvbnN0IHVzZWRQYXRoSW5kZXhlczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBzaW1pbGFyaXRpZXMuZm9yRWFjaCgoc2ltaWxhcml0eSkgPT4ge1xuICAgICAgICBpZiAoIXVzZWRQYXRoSW5kZXhlcy5zb21lKChpKSA9PiBpID09PSBzaW1pbGFyaXR5WzBdKSkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoc1tzaW1pbGFyaXR5WzBdXSk7XG4gICAgICAgICAgICB1c2VkUGF0aEluZGV4ZXMucHVzaChzaW1pbGFyaXR5WzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlZFBhdGhJbmRleGVzLnNvbWUoKGkpID0+IGkgPT09IHNpbWlsYXJpdHlbMV0pKSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGhzW3NpbWlsYXJpdHlbMV1dKTtcbiAgICAgICAgICAgIHVzZWRQYXRoSW5kZXhlcy5wdXNoKHNpbWlsYXJpdHlbMV0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBSZW1vdmUgXCJkdXBsaWNhdGVcIiBub2RlcyBpbiBwYXRocyAobWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IG9ubHkgb25jZSBhY3Jvc3MgYWxsIHBhdGhzKSAqL1xuZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlTm9kZXMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaW5kZXgpID0+IHtcbiAgICAgICAgcGF0aC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBwYXRocy5mb3JFYWNoKChfcGF0aCwgX2luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNOb2RlSW5QYXRoID0gX2luZGV4ICE9PSBpbmRleCAmJiBfcGF0aC5pbmRleE9mKG5vZGUpID4gLTE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNOb2RlSW5QYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKiBJbnN0ZWFkIG9mIG5vZGUgcGxhY2Ugc3BhY2Ugbm9kZSAqL1xuICAgICAgICAgICAgICAgICAgICBfcGF0aC5zcGxpY2UoX3BhdGguaW5kZXhPZihub2RlKSwgMSwgZ2V0U3BhY2VBcHByb3ZhbEdyYXBoTm9kZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFJlbW92ZSBlbXB0eSBwYXRocyAod2hpY2ggY29udGFpbnMgb25seSBlbXB0eSBub2RlcykgKi9cbmZ1bmN0aW9uIHJlbW92ZUVtcHR5UGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgcmV0dXJuIHBhdGhzLnJlZHVjZSgoYWNjLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICghcGF0aC5ldmVyeSgobm9kZSkgPT4gbm9kZS5zcGFjZSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKHBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSBhcyBBcHByb3ZhbEdyYXBoTm9kZVtdW10pO1xufVxuXG4vKiogVHJhbnNmb3JtIHBhdGhzIGludG8gdGhlIGNvbHVtbnMgKGl0J3MgcG9zc2libGUgYXMgdGhleSdyZSBhbGwgdGhlIHNhbWUgbGVuZ3RoKSAqL1xuZnVuY3Rpb24gZ2V0Q29sdW1uc0Zyb21QYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcbiAgICBsZXQgY29sdW1uOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhzWzBdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbHVtbiA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IHYgPSAwOyB2IDwgcGF0aHMubGVuZ3RoOyB2KyspIHtcbiAgICAgICAgICAgIGNvbHVtbi5wdXNoKHBhdGhzW3ZdW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xufVxuXG4vKiogVHJpbSBzcGFjZSBub2RlcyBhdCB0aGUgZW5kIG9mIHRoZSBjb2x1bW5zLiAqL1xuZnVuY3Rpb24gdHJpbUNvbHVtbnMoY29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRDb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGxldCBsYXN0Tm90U3BhY2VOb2RlSW5kZXg7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGNvbHVtbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKCFjb2x1bW5baV0uc3BhY2UpIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm90U3BhY2VOb2RlSW5kZXggPSBpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxhc3ROb3RTcGFjZU5vZGVJbmRleCA8IGNvbHVtbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZENvbHVtbnMucHVzaChjb2x1bW4uc2xpY2UoMCwgbGFzdE5vdFNwYWNlTm9kZUluZGV4ICsgMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRDb2x1bW5zO1xufVxuXG4vKiogUmVtb3ZlIGVtcHR5IGNvbHVtbnMgKHdoZXJlIGV2ZXJ5IG5vZGUgaXMgYSBibGFuayBub2RlKSAgKi9cbmZ1bmN0aW9uIHJlbW92ZUVtcHR5Q29sdW1ucyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZENvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgYXJlQWxsTm9kZXNFbXB0eSA9IGNvbHVtbi5ldmVyeSgobm9kZSkgPT4gbm9kZS5ibGFuayB8fCBub2RlLnNwYWNlKTtcblxuICAgICAgICBpZiAoYXJlQWxsTm9kZXNFbXB0eSkge1xuICAgICAgICAgICAgY29sdW1uLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5ibGFuaykge1xuICAgICAgICAgICAgICAgICAgICAvKiogQ29ubmVjdCBwcmV2aW91cyBjb2x1bW4gdG8gdGhlIG5leHQgY29sdW1uLCBvbWl0dGluZyBjdXJyZW50IGNvbHVtbi4gKi9cbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVRhcmdldHMobm9kZS5pZCwgbm9kZS50YXJnZXRzLCBjb2x1bW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZENvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkQ29sdW1ucztcbn1cblxuZnVuY3Rpb24gcmVwbGFjZVRhcmdldHMocmVwbGFjZUlkOiBzdHJpbmcsIHJlcGxhY2VXaXRoSWQ6IHN0cmluZ1tdLCBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiB2b2lkIHtcbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW4uZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgaWYgKGlzTm9kZVRhcmdldHNJbmNsdWRlSWQobiwgcmVwbGFjZUlkKSkge1xuICAgICAgICAgICAgICAgIG4udGFyZ2V0cyA9IG4udGFyZ2V0cy5maWx0ZXIoKF9pZCkgPT4gX2lkICE9PSByZXBsYWNlSWQpO1xuICAgICAgICAgICAgICAgIG4udGFyZ2V0cy5wdXNoKC4uLnJlcGxhY2VXaXRoSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuLyoqIFRyYW5zZm9ybSBjb2x1bW5zIGludG8gdGhlIGdyYXBoIGNvbHVtbnMgKHdpdGggYWRkaXRpb25hbCBtZXRhZGF0YSkuICovXG5mdW5jdGlvbiBnZXRHcmFwaENvbHVtbnNGcm9tUGF0aHMoY29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaENvbHVtbltdIHtcbiAgICBjb25zdCBncmFwaENvbHVtbnM6IEFwcHJvdmFsR3JhcGhDb2x1bW5bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbHVtbi5mb3JFYWNoKChub2RlKSA9PiAobm9kZS5jb2xJbmRleCA9IGluZGV4KSk7XG5cbiAgICAgICAgZ3JhcGhDb2x1bW5zLnB1c2goe1xuICAgICAgICAgICAgbm9kZXM6IGNvbHVtbixcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgYWxsTm9kZXNBcHByb3ZlZDogY29sdW1uLmV2ZXJ5KChub2RlKSA9PiBpc05vZGVBcHByb3ZlZChub2RlKSlcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhcGhDb2x1bW5zO1xufVxuIl19
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
47
47
  }], undoLastAction: [{
48
48
  type: Output
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzL2FwcHJvdmFsLWZsb3ctbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1tZXNzYWdlcy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBZ0J2Qzs7O0dBR0c7QUFhSCxNQUFNLE9BQU8sNkJBQTZCO0lBWjFDO1FBYUksd0JBQXdCO1FBRXhCLGFBQVEsR0FBMEIsRUFBRSxDQUFDO1FBRXJDLHVDQUF1QztRQUV2Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEMsK0NBQStDO1FBRS9DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFM0QsZ0RBQWdEO1FBRWhELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxQyxjQUFjO1FBQ2QsZUFBVSxHQUFHLFNBQVMsQ0FBQztLQWMxQjtJQVpHLGNBQWM7SUFDZCxlQUFlLENBQUMsWUFBb0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZSxDQUFDLFlBQW9CLEVBQUUsS0FBWTtRQUM5QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7OEdBL0JRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHFUQ3BDMUMsbStEQThDQSxrSURaYyxxQkFBcUIsaU9BQUUsZUFBZTs7MkZBRXZDLDZCQUE2QjtrQkFaekMsU0FBUzsrQkFDSSw0QkFBNEIsaUJBR3ZCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLDRCQUE0QjtxQkFDdEMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsRUFBRSxlQUFlLENBQUM7OEJBS2pELFFBQVE7c0JBRFAsS0FBSztnQkFLTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBS04sY0FBYztzQkFEYixNQUFNO2dCQUtQLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lc3NhZ2Utc3RyaXAnO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IHRyYWNrQnlGbiB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBBcHByb3ZhbEZsb3dNZXNzYWdlVHlwZSA9XG4gICAgfCAnd2F0Y2hlcnNDaGFuZ2VTdWNjZXNzJ1xuICAgIHwgJ2FwcHJvdmVyQWRkU3VjY2VzcydcbiAgICB8ICd0ZWFtQWRkU3VjY2VzcydcbiAgICB8ICdub2RlRWRpdCdcbiAgICB8ICdub2RlUmVtb3ZlJ1xuICAgIHwgJ25vZGVzUmVtb3ZlJ1xuICAgIHwgJ3RlYW1SZW1vdmUnXG4gICAgfCAnZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsRmxvd01lc3NhZ2Uge1xuICAgIHR5cGU6IEFwcHJvdmFsRmxvd01lc3NhZ2VUeXBlO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBBcHByb3ZhbEZsb3dNZXNzYWdlcyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1hcHByb3ZhbC1mbG93LW1lc3NhZ2VzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2FwcHJvdmFsLWZsb3ctbWVzc2FnZXMuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1hcHByb3ZhbC1mbG93LW1lc3NhZ2VzJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWVzc2FnZVN0cmlwQ29tcG9uZW50LCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd01lc3NhZ2VzQ29tcG9uZW50IHtcbiAgICAvKiogQXJyYXkgb2YgbWVzc2FnZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIG1lc3NhZ2VzOiBBcHByb3ZhbEZsb3dNZXNzYWdlW10gPSBbXTtcblxuICAgIC8qKiBXaGV0aGVyIHVuZG8gYWN0aW9uIGlzIGF2YWlsYWJsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdW5kb0xhc3RBY3Rpb25BdmFpbGFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gbWVzc2FnZXMgYXJyYXkgY2hhbmdlICovXG4gICAgQE91dHB1dCgpXG4gICAgbWVzc2FnZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsRmxvd01lc3NhZ2VbXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGljayB1bmRvIGJ1dHRvbiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVuZG9MYXN0QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tCeUZuID0gdHJhY2tCeUZuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlzbWlzc01lc3NhZ2UobWVzc2FnZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5zcGxpY2UobWVzc2FnZUluZGV4LCAxKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF91bmRvTGFzdEFjdGlvbihtZXNzYWdlSW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5fZGlzbWlzc01lc3NhZ2UobWVzc2FnZUluZGV4KTtcbiAgICAgICAgdGhpcy51bmRvTGFzdEFjdGlvbi5lbWl0KCk7XG4gICAgfVxufVxuIiwiQGZvciAobWVzc2FnZSBvZiBtZXNzYWdlczsgdHJhY2sgbWVzc2FnZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8ZmQtbWVzc2FnZS1zdHJpcFxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW1lc3NhZ2VzX19pdGVtXCJcbiAgICAgICAgW3R5cGVdPVwibWVzc2FnZS50eXBlID09PSAnZXJyb3InID8gJ2Vycm9yJyA6ICdzdWNjZXNzJ1wiXG4gICAgICAgIFtkaXNtaXNzaWJsZV09XCJtZXNzYWdlLnR5cGUgIT09ICdlcnJvcidcIlxuICAgICAgICAob25EaXNtaXNzKT1cIl9kaXNtaXNzTWVzc2FnZShpKVwiXG4gICAgPlxuICAgICAgICA8YmRpPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYXBwcm92ZXJBZGRTdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzQXBwcm92ZXJBZGRlZFN1Y2Nlc3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ3RlYW1BZGRTdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzVGVhbUFkZGVkU3VjY2VzcycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnbm9kZUVkaXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNOb2RlRWRpdGVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub2RlUmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzTm9kZVJlbW92ZWRTaW5ndWxhcicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnbm9kZXNSZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNOb2RlUmVtb3ZlZFBsdXJhbCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgndGVhbVJlbW92ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc1RlYW1SZW1vdmVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc0Vycm9yQnVpbGRHcmFwaCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgQGlmICh1bmRvTGFzdEFjdGlvbkF2YWlsYWJsZSkge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl91bmRvTGFzdEFjdGlvbihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIl91bmRvTGFzdEFjdGlvbihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIl91bmRvTGFzdEFjdGlvbihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc1VuZG9BY3Rpb24nIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYmRpPlxuICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1tZXNzYWdlcy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzL2FwcHJvdmFsLWZsb3ctbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFnQnZDOzs7R0FHRztBQWFILE1BQU0sT0FBTyw2QkFBNkI7SUFaMUM7UUFhSSx3QkFBd0I7UUFFeEIsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFFckMsdUNBQXVDO1FBRXZDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUVoQywrQ0FBK0M7UUFFL0MsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUUzRCxnREFBZ0Q7UUFFaEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFDLGNBQWM7UUFDZCxlQUFVLEdBQUcsU0FBUyxDQUFDO0tBYzFCO0lBWkcsY0FBYztJQUNkLGVBQWUsQ0FBQyxZQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlLENBQUMsWUFBb0IsRUFBRSxLQUFZO1FBQzlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs4R0EvQlEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIscVRDcEMxQyxtK0RBOENBLGtJRFpjLHFCQUFxQixpT0FBRSxlQUFlOzsyRkFFdkMsNkJBQTZCO2tCQVp6QyxTQUFTOytCQUNJLDRCQUE0QixpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsNEJBQTRCO3FCQUN0QyxjQUNXLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLGVBQWUsQ0FBQzs4QkFLakQsUUFBUTtzQkFEUCxLQUFLO2dCQUtOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFLTixjQUFjO3NCQURiLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1zdHJpcCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgdHJhY2tCeUZuIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCB0eXBlIEFwcHJvdmFsRmxvd01lc3NhZ2VUeXBlID1cbiAgICB8ICd3YXRjaGVyc0NoYW5nZVN1Y2Nlc3MnXG4gICAgfCAnYXBwcm92ZXJBZGRTdWNjZXNzJ1xuICAgIHwgJ3RlYW1BZGRTdWNjZXNzJ1xuICAgIHwgJ25vZGVFZGl0J1xuICAgIHwgJ25vZGVSZW1vdmUnXG4gICAgfCAnbm9kZXNSZW1vdmUnXG4gICAgfCAndGVhbVJlbW92ZSdcbiAgICB8ICdlcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92YWxGbG93TWVzc2FnZSB7XG4gICAgdHlwZTogQXBwcm92YWxGbG93TWVzc2FnZVR5cGU7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEFwcHJvdmFsRmxvd01lc3NhZ2VzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC40MC4wXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXMnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNZXNzYWdlU3RyaXBDb21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93TWVzc2FnZXNDb21wb25lbnQge1xuICAgIC8qKiBBcnJheSBvZiBtZXNzYWdlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVzc2FnZXM6IEFwcHJvdmFsRmxvd01lc3NhZ2VbXSA9IFtdO1xuXG4gICAgLyoqIFdoZXRoZXIgdW5kbyBhY3Rpb24gaXMgYXZhaWxhYmxlICovXG4gICAgQElucHV0KClcbiAgICB1bmRvTGFzdEFjdGlvbkF2YWlsYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBtZXNzYWdlcyBhcnJheSBjaGFuZ2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBtZXNzYWdlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXBwcm92YWxGbG93TWVzc2FnZVtdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrIHVuZG8gYnV0dG9uICovXG4gICAgQE91dHB1dCgpXG4gICAgdW5kb0xhc3RBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Rm4gPSB0cmFja0J5Rm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNtaXNzTWVzc2FnZShtZXNzYWdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShtZXNzYWdlSW5kZXgsIDEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3VuZG9MYXN0QWN0aW9uKG1lc3NhZ2VJbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLl9kaXNtaXNzTWVzc2FnZShtZXNzYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnVuZG9MYXN0QWN0aW9uLmVtaXQoKTtcbiAgICB9XG59XG4iLCJAZm9yIChtZXNzYWdlIG9mIG1lc3NhZ2VzOyB0cmFjayBtZXNzYWdlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxmZC1tZXNzYWdlLXN0cmlwXG4gICAgICAgIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXNfX2l0ZW1cIlxuICAgICAgICBbdHlwZV09XCJtZXNzYWdlLnR5cGUgPT09ICdlcnJvcicgPyAnZXJyb3InIDogJ3N1Y2Nlc3MnXCJcbiAgICAgICAgW2Rpc21pc3NpYmxlXT1cIm1lc3NhZ2UudHlwZSAhPT0gJ2Vycm9yJ1wiXG4gICAgICAgIChvbkRpc21pc3MpPVwiX2Rpc21pc3NNZXNzYWdlKGkpXCJcbiAgICA+XG4gICAgICAgIDxiZGk+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdhcHByb3ZlckFkZFN1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNBcHByb3ZlckFkZGVkU3VjY2VzcycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgndGVhbUFkZFN1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNUZWFtQWRkZWRTdWNjZXNzJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub2RlRWRpdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc05vZGVFZGl0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ25vZGVSZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNOb2RlUmVtb3ZlZFNpbmd1bGFyJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub2Rlc1JlbW92ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc05vZGVSZW1vdmVkUGx1cmFsJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd0ZWFtUmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzVGVhbVJlbW92ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzRXJyb3JCdWlsZEdyYXBoJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHVuZG9MYXN0QWN0aW9uQXZhaWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzVW5kb0FjdGlvbicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9iZGk+XG4gICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxufVxuIl19
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
32
32
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { placement: [{
33
33
  type: Input
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1ub2RlL2FwcHJvdmFsLWZsb3ctZHJvcC16b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTdELE1BQU0sT0FBTyw2QkFBNkI7SUFRdEMsY0FBYztJQUNkLFlBQTZCLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFKOUMsaUZBQWlGO1FBQ2pGLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFHa0MsQ0FBQztJQUVsRCxjQUFjO0lBQ2QsNkJBQTZCLENBQUMsUUFBaUI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUV0RSxJQUNJLFlBQVksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRztZQUNyRCxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUk7WUFDdEQsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNO1lBQzNELFlBQVksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUMxRDtZQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs4R0F6QlEsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0VBSUcsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dOZXdOb2RlUGxhY2VtZW50IH0gZnJvbSAnLi4vYXBwcm92YWwtZmxvdy1hZGQtbm9kZS9hcHByb3ZhbC1mbG93LWFkZC1ub2RlLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLWFwcHJvdmFsLWZsb3ctZHJvcC16b25lXScsXG4gICAgZXhwb3J0QXM6ICdmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmUge1xuICAgIC8qKiBBcHByb3ZhbCBmbG93IG5ldyBub2RlIHBsYWNlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBBcHByb3ZhbEZsb3dOZXdOb2RlUGxhY2VtZW50O1xuXG4gICAgLyoqIFdoZXRoZXIgZHJvcCB6b25lIGlzIGFjdGl2ZSAocG9pbnRlciB3aXRoIGRyYWdnZWQgbm9kZSBvdmVyIHRoZSBkcm9wIHpvbmUpICovXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jaGVja0lmTm9kZURyYWdnZWRJbkRyb3Bab25lKG5vZGVSZWN0OiBET01SZWN0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZHJvcFpvbmVSZWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRyb3Bab25lUmVjdC50b3AgKyBkcm9wWm9uZVJlY3QuaGVpZ2h0ID4gbm9kZVJlY3QudG9wICYmXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QubGVmdCArIGRyb3Bab25lUmVjdC53aWR0aCA+IG5vZGVSZWN0LmxlZnQgJiZcbiAgICAgICAgICAgIGRyb3Bab25lUmVjdC5ib3R0b20gLSBkcm9wWm9uZVJlY3QuaGVpZ2h0IDwgbm9kZVJlY3QuYm90dG9tICYmXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QucmlnaHQgLSBkcm9wWm9uZVJlY3Qud2lkdGggPCBub2RlUmVjdC5yaWdodFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctbm9kZS9hcHByb3ZhbC1mbG93LWRyb3Atem9uZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3RCxNQUFNLE9BQU8sNkJBQTZCO0lBUXRDLGNBQWM7SUFDZCxZQUE2QixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSjlDLGlGQUFpRjtRQUNqRixXQUFNLEdBQUcsS0FBSyxDQUFDO0lBR2tDLENBQUM7SUFFbEQsY0FBYztJQUNkLDZCQUE2QixDQUFDLFFBQWlCO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFdEUsSUFDSSxZQUFZLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUc7WUFDckQsWUFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJO1lBQ3RELFlBQVksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTTtZQUMzRCxZQUFZLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFDMUQ7WUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNMLENBQUM7OEdBekJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQU56QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQUlHLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwcm92YWxGbG93TmV3Tm9kZVBsYWNlbWVudCB9IGZyb20gJy4uL2FwcHJvdmFsLWZsb3ctYWRkLW5vZGUvYXBwcm92YWwtZmxvdy1hZGQtbm9kZS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkcC1hcHByb3ZhbC1mbG93LWRyb3Atem9uZV0nLFxuICAgIGV4cG9ydEFzOiAnZmRwLWFwcHJvdmFsLWZsb3ctZHJvcC16b25lJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd0Ryb3Bab25lRGlyZWN0aXZlIHtcbiAgICAvKiogQXBwcm92YWwgZmxvdyBuZXcgbm9kZSBwbGFjZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlbWVudDogQXBwcm92YWxGbG93TmV3Tm9kZVBsYWNlbWVudDtcblxuICAgIC8qKiBXaGV0aGVyIGRyb3Agem9uZSBpcyBhY3RpdmUgKHBvaW50ZXIgd2l0aCBkcmFnZ2VkIG5vZGUgb3ZlciB0aGUgZHJvcCB6b25lKSAqL1xuICAgIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdDogRE9NUmVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGRyb3Bab25lUmVjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QudG9wICsgZHJvcFpvbmVSZWN0LmhlaWdodCA+IG5vZGVSZWN0LnRvcCAmJlxuICAgICAgICAgICAgZHJvcFpvbmVSZWN0LmxlZnQgKyBkcm9wWm9uZVJlY3Qud2lkdGggPiBub2RlUmVjdC5sZWZ0ICYmXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QuYm90dG9tIC0gZHJvcFpvbmVSZWN0LmhlaWdodCA8IG5vZGVSZWN0LmJvdHRvbSAmJlxuICAgICAgICAgICAgZHJvcFpvbmVSZWN0LnJpZ2h0IC0gZHJvcFpvbmVSZWN0LndpZHRoIDwgbm9kZVJlY3QucmlnaHRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -344,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
344
344
  type: ContentChild,
345
345
  args: [GridListItemComponent]
346
346
  }] } });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctbm9kZS9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1ub2RlL2FwcHJvdmFsLWZsb3ctbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3ZCLE1BQU0sNEJBQTRCLENBQUM7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LGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyw4Q0FBOEM7Z0JBT3ZELGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsNENBQTRDO2dCQU9yRCxrQkFBa0I7c0JBRHJCLFdBQVc7dUJBQUMsaURBQWlEO2dCQU8xRCxpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsZ0RBQWdEO2dCQU96RCxVQUFVO3NCQURiLFdBQVc7dUJBQUMsMENBQTBDOztRQXFCdkQsK0RBQStEO1FBQy9ELEtBQUs7c0JBRkosTUFBTTs7UUFNUCwrREFBK0Q7UUFDL0QsTUFBTTtzQkFGTCxNQUFNOztRQU1QLCtEQUErRDtRQUMvRCxRQUFRO3NCQUZQLE1BQU07Z0JBTVAsS0FBSztzQkFESixTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBSy9CLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxhQUFhO2dCQUt4QixVQUFVO3NCQURULFlBQVk7dUJBQUMsNkJBQTZCO2dCQUszQyxhQUFhO3NCQURaLFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2dyaWQtbGlzdCc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL29iamVjdC1zdGF0dXMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7XG4gICAgTWVudUludGVyYWN0aXZlQ29tcG9uZW50LFxuICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVUaXRsZURpcmVjdGl2ZSxcbiAgICBNZW51VHJpZ2dlckRpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0aW9uUmVzb2x2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50LCBQbGF0Zm9ybU9iamVjdFN0YXR1c1RleHREaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL29iamVjdC1zdGF0dXMnO1xuaW1wb3J0IHsgQXBwcm92YWxGbG93Tm9kZVRhcmdldCB9IGZyb20gJy4uL2FwcHJvdmFsLWZsb3ctYWRkLW5vZGUvYXBwcm92YWwtZmxvdy1hZGQtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNOb2RlQXBwcm92ZWQsIGlzTm9kZVN0YXJ0ZWQgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IEFwcHJvdmFsR3JhcGhOb2RlLCBBcHByb3ZhbEdyYXBoTm9kZU1ldGFkYXRhLCBBcHByb3ZhbFN0YXR1cyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmUgfSBmcm9tICcuL2FwcHJvdmFsLWZsb3ctZHJvcC16b25lLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IE5PREVfU1RBVFVTX0NMQVNTX01BUCA9IHtcbiAgICBhcHByb3ZlZDogJ3Bvc2l0aXZlJyxcbiAgICByZWplY3RlZDogJ25lZ2F0aXZlJyxcbiAgICAnaW4gcHJvZ3Jlc3MnOiAnaW5mb3JtYXRpdmUnLFxuICAgICdub3Qgc3RhcnRlZCc6ICcnXG59O1xuXG5jb25zdCBEQVlfSU5fTUlMTElTRUNPTkRTID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxubGV0IGRlZmF1bHRJZCA9IDA7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEFwcHJvdmFsRmxvd05vZGUgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYXBwcm92YWwtZmxvdy1ub2RlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtYXBwcm92YWwtZmxvdy1ub2RlJyxcbiAgICAgICAgJ1tjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maXJzdC1yb290XSc6ICdtZXRhPy5maXJzdE9mTXVsdGlwbGVSb290Tm9kZXMnLFxuICAgICAgICAnW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWZpcnN0LWZpbmFsXSc6ICdtZXRhPy5maXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ29udGVudERlbnNpdHlEaXJlY3RpdmUsXG4gICAgICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICBPYmplY3RTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIFBsYXRmb3JtT2JqZWN0U3RhdHVzVGV4dERpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmUsXG4gICAgICAgIE1lbnVDb21wb25lbnQsXG4gICAgICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgICAgICBNZW51SW50ZXJhY3RpdmVDb21wb25lbnQsXG4gICAgICAgIE1lbnVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgZ3JhcGggbm9kZSAqL1xuICAgIEBJbnB1dCgpIG5vZGU6IEFwcHJvdmFsR3JhcGhOb2RlO1xuXG4gICAgLyoqIE5vZGUgbWV0YWRhdGEgKi9cbiAgICBASW5wdXQoKSBtZXRhOiBBcHByb3ZhbEdyYXBoTm9kZU1ldGFkYXRhO1xuXG4gICAgLyoqIFdoZXRoZXIgbm9kZSBlbGVtZW50IGhhcyBhcnJvdyBvbiB0aGUgbGVmdCBzaWRlIHBvaW50aW5nIHRvIHRoZSBub2RlICovXG4gICAgQElucHV0KCkgcmVuZGVyQXJyb3cgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgZHVlIGRhdGUgd2FybmluZyBpbiBzdGF0dXMgKi9cbiAgICBASW5wdXQoKSBjaGVja0R1ZURhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBOdW1iZXIgb2YgZGF5cyBiZWZvcmUgZHVlIGRhdGUgd2hlbiBzdGF0dXMgY2hhbmdlcyB0byBgd2FybmluZ2Agd2l0aCB0ZXh0ICdEdWUgaW4gWCBkYXlzJy5cbiAgICAgKiAgTm90IHVzZWQgaWYgJ2NoZWNrRHVlRGF0ZScgZXF1YWxzIGZhbHNlICovXG4gICAgQElucHV0KCkgZHVlRGF0ZVRocmVzaG9sZCA9IDc7XG5cbiAgICAvKiogV2hldGhlciBub2RlcyBpbiBjb2x1bW4gaW4gd2hpY2ggY3VycmVudCBub2RlIHBsYWNlZCBhcmUgYXBwcm92ZWRcbiAgICAgKiAgVXNlZCB0byByZW5kZXIgYXBwcm9wcmlhdGUgdmVydGljYWwgbGluZSBhZnRlciAoZGFzaGVkL3NvbGlkKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGFsbE5vZGVzSW5Db2x1bW5BcHByb3ZlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoZSBhcHAgY3VzdG9tIHN0YXR1c2VzICovXG4gICAgQElucHV0KClcbiAgICBhcHByb3ZhbFN0YXR1c1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEN1c3RvbSBzdGF0dXMgdG8gY29sb3IgbWFwcGluZyAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXR1c0NvbG9yTWFwcGluZzogUmVjb3JkPEFwcHJvdmFsU3RhdHVzLCBPYmplY3RTdGF0dXM+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG5vZGUgaXMgaW4gZWRpdCBtb2RlICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWVkaXQtbW9kZScpXG4gICAgaXNFZGl0OiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG5vZGUgYWZ0ZXIgaXMgYmxhbmsgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tbmV4dC1ibGFuaycpXG4gICAgaXNOZXh0Tm9kZUJsYW5rOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWJsYW5rJylcbiAgICBnZXQgX2JsYW5rKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5vZGU/LmJsYW5rO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1zcGFjZScpXG4gICAgZ2V0IF9zcGFjZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ub2RlPy5zcGFjZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tcm9vdCcpXG4gICAgZ2V0IF9pc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ldGE/LmlzUm9vdDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZmluYWwnKVxuICAgIGdldCBfaXNGaW5hbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0YT8uaXNGaW5hbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tbGluZS1iZWZvcmUnKVxuICAgIGdldCBfcmVuZGVyTGluZUJlZm9yZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm5vZGU/LmJsYW5rO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1saW5lLWFmdGVyJylcbiAgICBnZXQgX3JlbmRlckxpbmVBZnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm5vZGU/LmJsYW5rIHx8IHRoaXMuX2lzRmluYWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWFwcHJvdmVkJylcbiAgICBnZXQgX2lzQXBwcm92ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGUgJiYgaXNOb2RlQXBwcm92ZWQodGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tcGFyZW50LWFwcHJvdmVkJylcbiAgICBnZXQgX2lzUGFyZW50QXBwcm92ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5tZXRhPy5wYXJlbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMubWV0YT8ucm9vdE5vZGVzQXBwcm92ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXRhLnBhcmVudHMuZXZlcnkoKG5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKG5vZGUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tc2VsZWN0ZWQnKVxuICAgIGdldCBfaXNOb2RlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiB0aGlzLl9pc1NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1wYXJhbGxlbC1zdGFydCcpXG4gICAgZ2V0IF9pc1BhcmFsbGVsU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8ucGFyYWxsZWxTdGFydCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXBhcmFsbGVsLWVuZCcpXG4gICAgZ2V0IF9pc1BhcmFsbGVsRW5kKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLm1ldGE/LnBhcmFsbGVsRW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZmlyc3QtaW4tcGFyYWxsZWwnKVxuICAgIGdldCBfaXNGaXJzdEluUGFyYWxsZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8uaXNGaXJzdEluUGFyYWxsZWwpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1sYXN0LWluLXBhcmFsbGVsJylcbiAgICBnZXQgX2lzTGFzdEluUGFyYWxsZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8uaXNMYXN0SW5QYXJhbGxlbCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG5vZGUgaXMgYmxhbmsgYW5kIHRoZSBmaW5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tbGFzdC1ibGFuaycpXG4gICAgZ2V0IF9sYXN0QmxhbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibGFuayAmJiB0aGlzLm5vZGUudGFyZ2V0cy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubm9kZS5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vYmplY3RTdGF0dXM6IE9iamVjdFN0YXR1cztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dEdWVEYXRlV2FybmluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZHVlSW4gPSAwO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gYWRkIG5vZGUgYnV0dG9uIGNsaWNrZWQsIHZhbHVlIGlzIHRoZSBwbGFjZW1lbnQgZm9yIHRoZSBuZXcgbm9kZSAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uQWRkID0gbmV3IEV2ZW50RW1pdHRlcjxBcHByb3ZhbEZsb3dOb2RlVGFyZ2V0PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gZWRpdCBub2RlIGJ1dHRvbiBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25FZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gZGVsZXRlIG5vZGUgYnV0dG9uIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChNZW51Q29tcG9uZW50KVxuICAgIF9tZW51OiBNZW51Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdvdmVyZmxvd01lbnVCdXR0b24nKVxuICAgIF9vdmVyZmxvd01lbnVCdXR0b246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ25vZGVDb250ZW50JylcbiAgICBfbm9kZUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmUpXG4gICAgX2Ryb3Bab25lczogUXVlcnlMaXN0PEFwcHJvdmFsRmxvd0Ryb3Bab25lRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChHcmlkTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgX2dyaWRMaXN0SXRlbTogR3JpZExpc3RJdGVtQ29tcG9uZW50PEFwcHJvdmFsR3JhcGhOb2RlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgYXBwcm92YWxGbG93Tm9kZUlkID0gJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUtJyArIGRlZmF1bHRJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc2xhdGlvblJlc29sdmVyID0gbmV3IFRyYW5zbGF0aW9uUmVzb2x2ZXIoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX25hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNOb3RTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIWlzTm9kZVN0YXJ0ZWQodGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNFZGl0QWN0aW9uc0F2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5zdGF0dXMgPT09ICdhcHByb3ZlZCcgfHwgdGhpcy5ub2RlLnN0YXR1cyA9PT0gJ3JlamVjdGVkJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfYWN0aXZlRHJvcFpvbmVzKCk6IEFwcHJvdmFsRmxvd0Ryb3Bab25lRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcFpvbmVzLmZpbHRlcigoeikgPT4gei5hY3RpdmUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc0FueURyb3Bab25lQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRHJvcFpvbmVzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzVmVydGljYWxMaW5lQmVmb3JlU29saWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5tZXRhPy5wYXJlbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5tZXRhPy5pc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWV0YS5wYXJlbnRzLmV2ZXJ5KChwYXJlbnROb2RlKSA9PiBpc05vZGVBcHByb3ZlZChwYXJlbnROb2RlKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzVmVydGljYWxMaW5lQWZ0ZXJTb2xpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm5vZGU/LnRhcmdldHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLm1ldGE/LmlzVmVydGljYWxMaW5lQWZ0ZXJTb2xpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkICYmIHRoaXMuYWxsTm9kZXNJbkNvbHVtbkFwcHJvdmVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93QWRkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0VkaXQgJiYgIXRoaXMuX2JsYW5rICYmICF0aGlzLl9zcGFjZSAmJiAhdGhpcy5ub2RlPy5kaXNhYmxlQWN0aW9ucztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2hvd0FmdGVyQWxsQWRkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0VkaXQgJiYgIXRoaXMuX3NwYWNlICYmICF0aGlzLm5vZGU/LmRpc2FibGVBY3Rpb25zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Ryb3Bab25lUGFydGlhbChwbGFjZW1lbnQ6IEFwcHJvdmFsRmxvd05vZGVUYXJnZXQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghdGhpcy5fYmxhbmsgJiYgKCF0aGlzLmlzTmV4dE5vZGVCbGFuayB8fCBwbGFjZW1lbnQgPT09ICdiZWZvcmUnKSkgfHxcbiAgICAgICAgICAgICh0aGlzLl9sYXN0QmxhbmsgJiYgcGxhY2VtZW50ID09PSAnYWZ0ZXItYWxsJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGVja05vZGVTdGF0dXMoKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrTm9kZVN0YXR1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbk1lbnVPcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZW51LnJlZnJlc2hQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZExpc3RJdGVtPy5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWFjdGl2YXRlRHJvcFpvbmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcm9wWm9uZXMuZm9yRWFjaCgoZHJvcFpvbmUpID0+IChkcm9wWm9uZS5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NoZWNrSWZOb2RlRHJhZ2dlZEluRHJvcFpvbmUobm9kZVJlY3Q6IERPTVJlY3QpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJvcFpvbmVzLmZvckVhY2goKGRyb3Bab25lKSA9PiBkcm9wWm9uZS5fY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdCkpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tOb2RlU3RhdHVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2hlY2tEdWVEYXRlICYmIHRoaXMubm9kZS5kdWVEYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBkdWVUaHJlc2hvbGQgPSBOdW1iZXIobmV3IERhdGUodGhpcy5ub2RlLmR1ZURhdGUpKSAtIHRoaXMuZHVlRGF0ZVRocmVzaG9sZCAqIERBWV9JTl9NSUxMSVNFQ09ORFM7XG4gICAgICAgICAgICBjb25zdCBub3dBbmREdWVEaWZmID0gRGF0ZS5ub3coKSAtIGR1ZVRocmVzaG9sZDtcblxuICAgICAgICAgICAgdGhpcy5fZHVlSW4gPSBNYXRoLnJvdW5kKG5vd0FuZER1ZURpZmYgLyBEQVlfSU5fTUlMTElTRUNPTkRTKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dEdWVEYXRlV2FybmluZyA9ICFpc05vZGVBcHByb3ZlZCh0aGlzLm5vZGUpICYmIGR1ZVRocmVzaG9sZCA8IERhdGUubm93KCk7XG4gICAgICAgICAgICB0aGlzLl9vYmplY3RTdGF0dXMgPSB0aGlzLl9zaG93RHVlRGF0ZVdhcm5pbmcgPyAnY3JpdGljYWwnIDogdGhpcy5fZ2V0Tm9kZVN0YXR1c0NsYXNzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29iamVjdFN0YXR1cyA9IHRoaXMuX2dldE5vZGVTdGF0dXNDbGFzcygpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Tm9kZVN0YXR1c0NsYXNzKCk6IE9iamVjdFN0YXR1cyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnN0YXR1c0NvbG9yTWFwcGluZ1xuICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0dXNDb2xvck1hcHBpbmdbdGhpcy5ub2RlLnN0YXR1c11cbiAgICAgICAgICAgICAgICA6IE5PREVfU1RBVFVTX0NMQVNTX01BUFt0aGlzLm5vZGUuc3RhdHVzXVxuICAgICAgICApIGFzIE9iamVjdFN0YXR1cztcbiAgICB9XG59XG4iLCJAaWYgKG1ldGE/LnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZSkge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX192ZXJ0aWNhbC1saW5lLWJlZm9yZVwiXG4gICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX192ZXJ0aWNhbC1saW5lLWJlZm9yZS1zb2xpZF09XCJfaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZFwiXG4gICAgPjwvZGl2PlxufVxuQGlmIChtZXRhPy5yZW5kZXJWZXJ0aWNhbExpbmVBZnRlcikge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX192ZXJ0aWNhbC1saW5lLWFmdGVyXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYWZ0ZXItc29saWRdPVwiX2lzVmVydGljYWxMaW5lQWZ0ZXJTb2xpZFwiXG4gICAgPjwvZGl2PlxufVxuQGlmICghX2JsYW5rICYmICFfc3BhY2UpIHtcbiAgICBAaWYgKHJlbmRlckFycm93KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hcnJvd1wiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKF9pc1Jvb3QgJiYgbWV0YT8ubm9kZUluZGV4ID09PSAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19jYXJvdXNlbC1zdGFydC1tYXJrZXJcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChfaXNGaW5hbCAmJiBtZXRhPy5ub2RlSW5kZXggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Nhcm91c2VsLWVuZC1tYXJrZXJcIj48L2Rpdj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxufVxuPG5nLXRlbXBsYXRlICNvdmVyZmxvd01lbnVCdXR0b24+XG4gICAgPCEtLSBBY3R1YWxseSBqdXN0IHRoZSBmZC1ncmlkLWl0ZW0gYWN0aW9uIGJ1dHRvbiBidXQgd2l0aCBzb21lIGhhcmRjb2RlIHRvIGJlIHVzZWQgYXMgbWVudSB0cmlnZ2VyIC0tPlxuICAgIEBpZiAoIW5vZGU/LmRpc2FibGVBY3Rpb25zKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fbWVudS1idXR0b25cIlxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgZ2x5cGg9XCJvdmVyZmxvd1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVNZW51QnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgZmRDb21wYWN0XG4gICAgICAgICAgICBbZmRNZW51VHJpZ2dlcl09XCJtZW51XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfaXNFZGl0QWN0aW9uc0F2YWlsYWJsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI25vZGVDb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19pbmZvXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fbmFtZVwiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fbmFtZS0tbWVtYmVycy1jb3VudF09XCJub2RlLmFwcHJvdmVycy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIFtpZF09XCJhcHByb3ZhbEZsb3dOb2RlSWRcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKG5vZGUuYXBwcm92ZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHt7IG5vZGUuYXBwcm92ZXJzWzBdLm5hbWUgfX1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlTWVtYmVyc0NvdW50JyB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBub2RlLmFwcHJvdmVycy5sZW5ndGggfSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICBAaWYgKCFub2RlLnZhcmlvdXNUZWFtcykge1xuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYXBwcm92ZXJzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbm9kZS5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgOiBub2RlLmFwcHJvdmVycy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub2RlLmFwcHJvdmVyc1swXS5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlVmFyaW91c1RlYW1zJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhcmlvdXNUZWFtcz4ge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVWYXJpb3VzVGVhbXMnIHwgZmRUcmFuc2xhdGUgfX0gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxmZHAtb2JqZWN0LXN0YXR1cyBbc3RhdHVzXT1cIl9vYmplY3RTdGF0dXNcIiBbaW52ZXJ0ZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkcE9iamVjdFN0YXR1c1RleHQ+XG4gICAgICAgICAgICAgICAgQGlmIChhcHByb3ZhbFN0YXR1c1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWNoZWNrRHVlRGF0ZSB8fCAhX3Nob3dEdWVEYXRlV2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhcHByb3ZhbFN0YXR1c1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFwcHJvdmFsU3RhdHVzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBub2RlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWNoZWNrRHVlRGF0ZSB8fCAhX3Nob3dEdWVEYXRlV2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAobm9kZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2FwcHJvdmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc3RhdHVzQXBwcm92ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdyZWplY3RlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c1JlamVjdGVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW4gcHJvZ3Jlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zdGF0dXNJblByb2dyZXNzJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnbm90IHN0YXJ0ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zdGF0dXNOb3RTdGFydGVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoY2hlY2tEdWVEYXRlICYmIF9zaG93RHVlRGF0ZVdhcm5pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChfZHVlSW4gPT09IGR1ZURhdGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlU3RhdHVzRHVlVG9kYXknIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA8IGR1ZURhdGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNEdWVJblhEYXlzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBkdWVEYXRlVGhyZXNob2xkIC0gX2R1ZUluIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChfZHVlSW4gPiBkdWVEYXRlVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlU3RhdHVzWERheXNPdmVyZHVlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBfZHVlSW4gLSBkdWVEYXRlVGhyZXNob2xkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkcC1vYmplY3Qtc3RhdHVzPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbkBpZiAoX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUJlZm9yZUFsbCAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEJlZm9yZSkge1xuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYmVmb3JlLWFsbCcgfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG59XG5AaWYgKF9zaG93QWRkQnV0dG9uICYmIG1ldGE/LmNhbkFkZE5vZGVCZWZvcmUgJiYgIW5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVBZGRCZWZvcmUpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkTm9kZUJ1dHRvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBsYWNlbWVudDogJ2JlZm9yZScgfVwiPjwvbmctdGVtcGxhdGU+XG59XG5AaWYgKFxuICAgIF9zaG93QWRkQnV0dG9uICYmIG1ldGE/LmNhbkFkZE5vZGVBZnRlciAmJiBtZXRhPy5yZW5kZXJBZGROb2RlQWZ0ZXJCdXR0b24gJiYgIW5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVBZGRBZnRlclxuKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZE5vZGVCdXR0b25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwbGFjZW1lbnQ6ICdhZnRlcicgfVwiPjwvbmctdGVtcGxhdGU+XG59XG5AaWYgKFxuICAgIF9zaG93QWZ0ZXJBbGxBZGRCdXR0b24gJiZcbiAgICBtZXRhPy5jYW5BZGROb2RlQWZ0ZXJBbGwgJiZcbiAgICBtZXRhPy5yZW5kZXJBZGROb2RlQWZ0ZXJCdXR0b24gJiZcbiAgICAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEFmdGVyXG4pIHtcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkTm9kZUJ1dHRvblwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBsYWNlbWVudDogJ2FmdGVyLWFsbCcgfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG59XG48bmctdGVtcGxhdGUgI2FkZE5vZGVCdXR0b24gbGV0LXBsYWNlbWVudD1cInBsYWNlbWVudFwiPlxuICAgIEBpZiAobm9kZS5zdGF0dXMgIT09ICdhcHByb3ZlZCcpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBnbHlwaD1cImFkZFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtQXBwcm92YWxGbG93LmFkZE5vZGVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGQtLWJsYW5rXT1cInRoaXMuX2JsYW5rXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGQtLWJlZm9yZV09XCJcbiAgICAgICAgICAgICAgICAhdGhpcy5fYmxhbmsgJiYgKHBsYWNlbWVudCA9PT0gJ2JlZm9yZScgfHwgcGxhY2VtZW50ID09PSAnYmVmb3JlLWFsbCcpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmVmb3JlLWFsbF09XCIhdGhpcy5fYmxhbmsgJiYgcGxhY2VtZW50ID09PSAnYmVmb3JlLWFsbCdcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYWZ0ZXJdPVwiXG4gICAgICAgICAgICAgICAgIXRoaXMuX2JsYW5rICYmIChwbGFjZW1lbnQgPT09ICdhZnRlcicgfHwgcGxhY2VtZW50ID09PSAnYWZ0ZXItYWxsJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1hZnRlci1hbGxdPVwicGxhY2VtZW50ID09PSAnYWZ0ZXItYWxsJ1wiXG4gICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJkcm9wWm9uZS5hY3RpdmUgPyAnaGlkZGVuJyA6ICcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFkZC5lbWl0KHBsYWNlbWVudClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgICAgI2Ryb3Bab25lPVwiZmRwLWFwcHJvdmFsLWZsb3ctZHJvcC16b25lXCJcbiAgICAgICAgZmRwLWFwcHJvdmFsLWZsb3ctZHJvcC16b25lXG4gICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19kcm9wLXpvbmVcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1hY3RpdmVdPVwiZHJvcFpvbmUuYWN0aXZlXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Ryb3Atem9uZS0tYmxhbmtdPVwiaXNOZXh0Tm9kZUJsYW5rXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Ryb3Atem9uZS0tcGFydGlhbF09XCJfZHJvcFpvbmVQYXJ0aWFsKHBsYWNlbWVudClcIlxuICAgID48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48ZmQtbWVudSAjbWVudSBmZENvbnRlbnREZW5zaXR5IHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIiAoaXNPcGVuQ2hhbmdlKT1cIl9vbk1lbnVPcGVuKClcIj5cbiAgICBAaWYgKG1ldGE/LmNhbkFkZE5vZGVCZWZvcmUgJiYgIXRoaXMubm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEJlZm9yZSkge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uQWRkLmVtaXQoJ2JlZm9yZScpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkFkZEFwcHJvdmVyc0JlZm9yZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKG1ldGE/LmNhbkFkZE5vZGVBZnRlciAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQWZ0ZXIpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkFkZC5lbWl0KCdhZnRlcicpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkFkZEFwcHJvdmVyc0FmdGVyJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAobWV0YT8uY2FuQWRkUGFyYWxsZWwgJiYgIXRoaXMubm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZFBhcmFsbGVsKSB7XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnUuY2xvc2UoKTsgb25BZGQuZW1pdCgncGFyYWxsZWwnKVwiPlxuICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVBY3Rpb25BZGRBcHByb3ZlcnNQYXJhbGxlbCcgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKF9pc05vdFN0YXJ0ZWQgJiYgIXRoaXMubm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUVkaXQpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkVkaXQuZW1pdCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT4ge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVBY3Rpb25FZGl0QXBwcm92ZXInIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmICghdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlUmVtb3ZlKSB7XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnUuY2xvc2UoKTsgb25EZWxldGUuZW1pdCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT4ge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVBY3Rpb25SZW1vdmUnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICB9XG48L2ZkLW1lbnU+XG4iXX0=
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUs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QUFXO3VCQUFDLDhDQUE4QztnQkFPdkQsY0FBYztzQkFEakIsV0FBVzt1QkFBQyw0Q0FBNEM7Z0JBT3JELGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxpREFBaUQ7Z0JBTzFELGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxnREFBZ0Q7Z0JBT3pELFVBQVU7c0JBRGIsV0FBVzt1QkFBQywwQ0FBMEM7O1FBcUJ2RCwrREFBK0Q7UUFDL0QsS0FBSztzQkFGSixNQUFNOztRQU1QLCtEQUErRDtRQUMvRCxNQUFNO3NCQUZMLE1BQU07O1FBTVAsK0RBQStEO1FBQy9ELFFBQVE7c0JBRlAsTUFBTTtnQkFNUCxLQUFLO3NCQURKLFNBQVM7dUJBQUMsYUFBYTtnQkFLeEIsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG9CQUFvQjtnQkFLL0IsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBSzNDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBHcmlkTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZ3JpZC1saXN0JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHtcbiAgICBNZW51SW50ZXJhY3RpdmVDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXNDb21wb25lbnQsIFBsYXRmb3JtT2JqZWN0U3RhdHVzVGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dOb2RlVGFyZ2V0IH0gZnJvbSAnLi4vYXBwcm92YWwtZmxvdy1hZGQtbm9kZS9hcHByb3ZhbC1mbG93LWFkZC1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc05vZGVBcHByb3ZlZCwgaXNOb2RlU3RhcnRlZCB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQXBwcm92YWxHcmFwaE5vZGUsIEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGEsIEFwcHJvdmFsU3RhdHVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSB9IGZyb20gJy4vYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcblxuY29uc3QgTk9ERV9TVEFUVVNfQ0xBU1NfTUFQID0ge1xuICAgIGFwcHJvdmVkOiAncG9zaXRpdmUnLFxuICAgIHJlamVjdGVkOiAnbmVnYXRpdmUnLFxuICAgICdpbiBwcm9ncmVzcyc6ICdpbmZvcm1hdGl2ZScsXG4gICAgJ25vdCBzdGFydGVkJzogJydcbn07XG5cbmNvbnN0IERBWV9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuXG5sZXQgZGVmYXVsdElkID0gMDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93Tm9kZSBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgICAgICAnW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWZpcnN0LXJvb3RdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcycsXG4gICAgICAgICdbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZmlyc3QtZmluYWxdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTWVudVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgICAgIE9iamVjdFN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgUGxhdGZvcm1PYmplY3RTdGF0dXNUZXh0RGlyZWN0aXZlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICAgICAgTWVudUNvbXBvbmVudCxcbiAgICAgICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIE1lbnVJbnRlcmFjdGl2ZUNvbXBvbmVudCxcbiAgICAgICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd05vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKiogQXBwcm92YWwgZmxvdyBncmFwaCBub2RlICovXG4gICAgQElucHV0KCkgbm9kZTogQXBwcm92YWxHcmFwaE5vZGU7XG5cbiAgICAvKiogTm9kZSBtZXRhZGF0YSAqL1xuICAgIEBJbnB1dCgpIG1ldGE6IEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGE7XG5cbiAgICAvKiogV2hldGhlciBub2RlIGVsZW1lbnQgaGFzIGFycm93IG9uIHRoZSBsZWZ0IHNpZGUgcG9pbnRpbmcgdG8gdGhlIG5vZGUgKi9cbiAgICBASW5wdXQoKSByZW5kZXJBcnJvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBkdWUgZGF0ZSB3YXJuaW5nIGluIHN0YXR1cyAqL1xuICAgIEBJbnB1dCgpIGNoZWNrRHVlRGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIE51bWJlciBvZiBkYXlzIGJlZm9yZSBkdWUgZGF0ZSB3aGVuIHN0YXR1cyBjaGFuZ2VzIHRvIGB3YXJuaW5nYCB3aXRoIHRleHQgJ0R1ZSBpbiBYIGRheXMnLlxuICAgICAqICBOb3QgdXNlZCBpZiAnY2hlY2tEdWVEYXRlJyBlcXVhbHMgZmFsc2UgKi9cbiAgICBASW5wdXQoKSBkdWVEYXRlVGhyZXNob2xkID0gNztcblxuICAgIC8qKiBXaGV0aGVyIG5vZGVzIGluIGNvbHVtbiBpbiB3aGljaCBjdXJyZW50IG5vZGUgcGxhY2VkIGFyZSBhcHByb3ZlZFxuICAgICAqICBVc2VkIHRvIHJlbmRlciBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBsaW5lIGFmdGVyIChkYXNoZWQvc29saWQpXG4gICAgICovXG4gICAgQElucHV0KCkgYWxsTm9kZXNJbkNvbHVtbkFwcHJvdmVkID0gZmFsc2U7XG5cbiAgICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGFwcCBjdXN0b20gc3RhdHVzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcHJvdmFsU3RhdHVzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VzdG9tIHN0YXR1cyB0byBjb2xvciBtYXBwaW5nICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzQ29sb3JNYXBwaW5nOiBSZWNvcmQ8QXBwcm92YWxTdGF0dXMsIE9iamVjdFN0YXR1cz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBpbiBlZGl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZWRpdC1tb2RlJylcbiAgICBpc0VkaXQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBhZnRlciBpcyBibGFuayAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1uZXh0LWJsYW5rJylcbiAgICBpc05leHROb2RlQmxhbms6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYmxhbmsnKVxuICAgIGdldCBfYmxhbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXNwYWNlJylcbiAgICBnZXQgX3NwYWNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5vZGU/LnNwYWNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1yb290JylcbiAgICBnZXQgX2lzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0YT8uaXNSb290O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maW5hbCcpXG4gICAgZ2V0IF9pc0ZpbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRhPy5pc0ZpbmFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1saW5lLWJlZm9yZScpXG4gICAgZ2V0IF9yZW5kZXJMaW5lQmVmb3JlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxpbmUtYWZ0ZXInKVxuICAgIGdldCBfcmVuZGVyTGluZUFmdGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbmsgfHwgdGhpcy5faXNGaW5hbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYXBwcm92ZWQnKVxuICAgIGdldCBfaXNBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZSAmJiBpc05vZGVBcHByb3ZlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1wYXJlbnQtYXBwcm92ZWQnKVxuICAgIGdldCBfaXNQYXJlbnRBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5tZXRhPy5yb290Tm9kZXNBcHByb3ZlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1ldGEucGFyZW50cy5ldmVyeSgobm9kZSkgPT4gaXNOb2RlQXBwcm92ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1zZWxlY3RlZCcpXG4gICAgZ2V0IF9pc05vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFZGl0ICYmIHRoaXMuX2lzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXBhcmFsbGVsLXN0YXJ0JylcbiAgICBnZXQgX2lzUGFyYWxsZWxTdGFydCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5wYXJhbGxlbFN0YXJ0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tcGFyYWxsZWwtZW5kJylcbiAgICBnZXQgX2lzUGFyYWxsZWxFbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8ucGFyYWxsZWxFbmQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maXJzdC1pbi1wYXJhbGxlbCcpXG4gICAgZ2V0IF9pc0ZpcnN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0ZpcnN0SW5QYXJhbGxlbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxhc3QtaW4tcGFyYWxsZWwnKVxuICAgIGdldCBfaXNMYXN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0xhc3RJblBhcmFsbGVsKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBibGFuayBhbmQgdGhlIGZpbmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1sYXN0LWJsYW5rJylcbiAgICBnZXQgX2xhc3RCbGFuaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JsYW5rICYmIHRoaXMubm9kZS50YXJnZXRzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ub2RlLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29iamVjdFN0YXR1czogT2JqZWN0U3RhdHVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0R1ZURhdGVXYXJuaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kdWVJbiA9IDA7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBhZGQgbm9kZSBidXR0b24gY2xpY2tlZCwgdmFsdWUgaXMgdGhlIHBsYWNlbWVudCBmb3IgdGhlIG5ldyBub2RlICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsRmxvd05vZGVUYXJnZXQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBlZGl0IG5vZGUgYnV0dG9uIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkZWxldGUgbm9kZSBidXR0b24gY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgX21lbnU6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJmbG93TWVudUJ1dHRvbicpXG4gICAgX292ZXJmbG93TWVudUJ1dHRvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbm9kZUNvbnRlbnQnKVxuICAgIF9ub2RlQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSlcbiAgICBfZHJvcFpvbmVzOiBRdWVyeUxpc3Q8QXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUNvbXBvbmVudClcbiAgICBfZ3JpZExpc3RJdGVtOiBHcmlkTGlzdEl0ZW1Db21wb25lbnQ8QXBwcm92YWxHcmFwaE5vZGU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBhcHByb3ZhbEZsb3dOb2RlSWQgPSAnZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0nICsgZGVmYXVsdElkKys7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBuZXcgVHJhbnNsYXRpb25SZXNvbHZlcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc05vdFN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhaXNOb2RlU3RhcnRlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyB8fCB0aGlzLm5vZGUuc3RhdHVzID09PSAncmVqZWN0ZWQnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9hY3RpdmVEcm9wWm9uZXMoKTogQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wWm9uZXMuZmlsdGVyKCh6KSA9PiB6LmFjdGl2ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzQW55RHJvcFpvbmVBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVEcm9wWm9uZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLm1ldGE/LmlzVmVydGljYWxMaW5lQmVmb3JlU29saWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXRhLnBhcmVudHMuZXZlcnkoKHBhcmVudE5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKHBhcmVudE5vZGUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubm9kZT8udGFyZ2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMubWV0YT8uaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxMaW5lQmVmb3JlU29saWQgJiYgdGhpcy5hbGxOb2Rlc0luQ29sdW1uQXBwcm92ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX3Nob3dBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fYmxhbmsgJiYgIXRoaXMuX3NwYWNlICYmICF0aGlzLm5vZGU/LmRpc2FibGVBY3Rpb25zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93QWZ0ZXJBbGxBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fc3BhY2UgJiYgIXRoaXMubm9kZT8uZGlzYWJsZUFjdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZHJvcFpvbmVQYXJ0aWFsKHBsYWNlbWVudDogQXBwcm92YWxGbG93Tm9kZVRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKCF0aGlzLl9ibGFuayAmJiAoIXRoaXMuaXNOZXh0Tm9kZUJsYW5rIHx8IHBsYWNlbWVudCA9PT0gJ2JlZm9yZScpKSB8fFxuICAgICAgICAgICAgKHRoaXMuX2xhc3RCbGFuayAmJiBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrTm9kZVN0YXR1cygpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tOb2RlU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTWVudU9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21lbnUucmVmcmVzaFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncmlkTGlzdEl0ZW0/LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RlYWN0aXZhdGVEcm9wWm9uZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Ryb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZSkgPT4gKGRyb3Bab25lLmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdDogRE9NUmVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcm9wWm9uZXMuZm9yRWFjaCgoZHJvcFpvbmUpID0+IGRyb3Bab25lLl9jaGVja0lmTm9kZURyYWdnZWRJbkRyb3Bab25lKG5vZGVSZWN0KSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja05vZGVTdGF0dXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGVja0R1ZURhdGUgJiYgdGhpcy5ub2RlLmR1ZURhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGR1ZVRocmVzaG9sZCA9IE51bWJlcihuZXcgRGF0ZSh0aGlzLm5vZGUuZHVlRGF0ZSkpIC0gdGhpcy5kdWVEYXRlVGhyZXNob2xkICogREFZX0lOX01JTExJU0VDT05EUztcbiAgICAgICAgICAgIGNvbnN0IG5vd0FuZER1ZURpZmYgPSBEYXRlLm5vdygpIC0gZHVlVGhyZXNob2xkO1xuXG4gICAgICAgICAgICB0aGlzLl9kdWVJbiA9IE1hdGgucm91bmQobm93QW5kRHVlRGlmZiAvIERBWV9JTl9NSUxMSVNFQ09ORFMpO1xuICAgICAgICAgICAgdGhpcy5fc2hvd0R1ZURhdGVXYXJuaW5nID0gIWlzTm9kZUFwcHJvdmVkKHRoaXMubm9kZSkgJiYgZHVlVGhyZXNob2xkIDwgRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuX29iamVjdFN0YXR1cyA9IHRoaXMuX3Nob3dEdWVEYXRlV2FybmluZyA/ICdjcml0aWNhbCcgOiB0aGlzLl9nZXROb2RlU3RhdHVzQ2xhc3MoKTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0U3RhdHVzID0gdGhpcy5fZ2V0Tm9kZVN0YXR1c0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXROb2RlU3RhdHVzQ2xhc3MoKTogT2JqZWN0U3RhdHVzIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzQ29sb3JNYXBwaW5nXG4gICAgICAgICAgICAgICAgPyB0aGlzLnN0YXR1c0NvbG9yTWFwcGluZ1t0aGlzLm5vZGUuc3RhdHVzXVxuICAgICAgICAgICAgICAgIDogTk9ERV9TVEFUVVNfQ0xBU1NfTUFQW3RoaXMubm9kZS5zdGF0dXNdXG4gICAgICAgICkgYXMgT2JqZWN0U3RhdHVzO1xuICAgIH1cbn1cbiIsIkBpZiAobWV0YT8ucmVuZGVyVmVydGljYWxMaW5lQmVmb3JlKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlLXNvbGlkXT1cIl9pc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKG1ldGE/LnJlbmRlclZlcnRpY2FsTGluZUFmdGVyKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYWZ0ZXJcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fdmVydGljYWwtbGluZS1hZnRlci1zb2xpZF09XCJfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKCFfYmxhbmsgJiYgIV9zcGFjZSkge1xuICAgIEBpZiAocmVuZGVyQXJyb3cpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Fycm93XCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoX2lzUm9vdCAmJiBtZXRhPy5ub2RlSW5kZXggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Nhcm91c2VsLXN0YXJ0LW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKF9pc0ZpbmFsICYmIG1ldGE/Lm5vZGVJbmRleCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fY2Fyb3VzZWwtZW5kLW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG59XG48bmctdGVtcGxhdGUgI292ZXJmbG93TWVudUJ1dHRvbj5cbiAgICA8IS0tIEFjdHVhbGx5IGp1c3QgdGhlIGZkLWdyaWQtaXRlbSBhY3Rpb24gYnV0dG9uIGJ1dCB3aXRoIHNvbWUgaGFyZGNvZGUgdG8gYmUgdXNlZCBhcyBtZW51IHRyaWdnZXIgLS0+XG4gICAgQGlmICghbm9kZT8uZGlzYWJsZUFjdGlvbnMpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19tZW51LWJ1dHRvblwiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBnbHlwaD1cIm92ZXJmbG93XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZU1lbnVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9kZUNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2luZm9cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lLS1tZW1iZXJzLWNvdW50XT1cIm5vZGUuYXBwcm92ZXJzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgW2lkXT1cImFwcHJvdmFsRmxvd05vZGVJZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobm9kZS5hcHByb3ZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAge3sgbm9kZS5hcHByb3ZlcnNbMF0ubmFtZSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVNZW1iZXJzQ291bnQnIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aCB9IH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIEBpZiAoIW5vZGUudmFyaW91c1RlYW1zKSB7XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcHByb3ZlcnMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBub2RlLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vZGUuYXBwcm92ZXJzWzBdLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVWYXJpb3VzVGVhbXMnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFyaW91c1RlYW1zPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVZhcmlvdXNUZWFtcycgfCBmZFRyYW5zbGF0ZSB9fSA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZkcC1vYmplY3Qtc3RhdHVzIFtzdGF0dXNdPVwiX29iamVjdFN0YXR1c1wiIFtpbnZlcnRlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRwT2JqZWN0U3RhdHVzVGV4dD5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXBwcm92YWxTdGF0dXNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IG5vZGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChub2RlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYXBwcm92ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zdGF0dXNBcHByb3ZlZCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ3JlamVjdGVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc3RhdHVzUmVqZWN0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbiBwcm9ncmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c0luUHJvZ3Jlc3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub3Qgc3RhcnRlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c05vdFN0YXJ0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChjaGVja0R1ZURhdGUgJiYgX3Nob3dEdWVEYXRlV2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA9PT0gZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNEdWVUb2RheScgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoX2R1ZUluIDwgZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVN0YXR1c0R1ZUluWERheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IGR1ZURhdGVUaHJlc2hvbGQgLSBfZHVlSW4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA+IGR1ZURhdGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNYRGF5c092ZXJkdWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IF9kdWVJbiAtIGR1ZURhdGVUaHJlc2hvbGQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuQGlmIChfc2hvd0FkZEJ1dHRvbiAmJiBtZXRhPy5jYW5BZGROb2RlQmVmb3JlQWxsICYmICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZE5vZGVCdXR0b25cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwbGFjZW1lbnQ6ICdiZWZvcmUtYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEJlZm9yZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYmVmb3JlJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEFmdGVyXG4pIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkTm9kZUJ1dHRvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBsYWNlbWVudDogJ2FmdGVyJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZnRlckFsbEFkZEJ1dHRvbiAmJlxuICAgIG1ldGE/LmNhbkFkZE5vZGVBZnRlckFsbCAmJlxuICAgIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJlxuICAgICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQWZ0ZXJcbikge1xuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYWZ0ZXItYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbjxuZy10ZW1wbGF0ZSAjYWRkTm9kZUJ1dHRvbiBsZXQtcGxhY2VtZW50PVwicGxhY2VtZW50XCI+XG4gICAgQGlmIChub2RlLnN0YXR1cyAhPT0gJ2FwcHJvdmVkJykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cuYWRkTm9kZUJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmxhbmtdPVwidGhpcy5fYmxhbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmVmb3JlXT1cIlxuICAgICAgICAgICAgICAgICF0aGlzLl9ibGFuayAmJiAocGxhY2VtZW50ID09PSAnYmVmb3JlJyB8fCBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1iZWZvcmUtYWxsXT1cIiF0aGlzLl9ibGFuayAmJiBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1hZnRlcl09XCJcbiAgICAgICAgICAgICAgICAhdGhpcy5fYmxhbmsgJiYgKHBsYWNlbWVudCA9PT0gJ2FmdGVyJyB8fCBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGQtLWFmdGVyLWFsbF09XCJwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImRyb3Bab25lLmFjdGl2ZSA/ICdoaWRkZW4nIDogJydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkLmVtaXQocGxhY2VtZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgICAjZHJvcFpvbmU9XCJmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcIlxuICAgICAgICBmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcbiAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Ryb3Atem9uZVwiXG4gICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19kcm9wLXpvbmUtLWFjdGl2ZV09XCJkcm9wWm9uZS5hY3RpdmVcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1ibGFua109XCJpc05leHROb2RlQmxhbmtcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1wYXJ0aWFsXT1cIl9kcm9wWm9uZVBhcnRpYWwocGxhY2VtZW50KVwiXG4gICAgPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxmZC1tZW51ICNtZW51IGZkQ29udGVudERlbnNpdHkgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIChpc09wZW5DaGFuZ2UpPVwiX29uTWVudU9wZW4oKVwiPlxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnUuY2xvc2UoKTsgb25BZGQuZW1pdCgnYmVmb3JlJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQmVmb3JlJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmICF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVBZGRBZnRlcikge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uQWRkLmVtaXQoJ2FmdGVyJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQWZ0ZXInIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmIChtZXRhPy5jYW5BZGRQYXJhbGxlbCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkUGFyYWxsZWwpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkFkZC5lbWl0KCdwYXJhbGxlbCcpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkFkZEFwcHJvdmVyc1BhcmFsbGVsJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2lzTm90U3RhcnRlZCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlRWRpdCkge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uRWRpdC5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkVkaXRBcHByb3ZlcicgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKCF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVSZW1vdmUpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkRlbGV0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvblJlbW92ZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvZmQtbWVudT5cbiJdfQ==
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
59
59
  FdTranslatePipe
60
60
  ], template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <p>{{ 'platformApprovalFlow.selectTypeDialogMoveApproverAs' | fdTranslate }}</p>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body fdCompact>\n <span class=\"fd-form-label\">\n {{ 'platformApprovalFlow.selectTypeDialogParallelOrSerial' | fdTranslate }}\n </span>\n <fd-form-group class=\"fdp-approval-flow-select-type__form\">\n <div fd-form-item>\n <fd-radio-button\n [value]=\"_nodeTypes.PARALLEL\"\n [(ngModel)]=\"_nodeType\"\n id=\"select-type-parallel\"\n name=\"select-type-parallel\"\n >\n {{ 'platformApprovalFlow.selectTypeDialogNodeTypeParallel' | fdTranslate }}\n </fd-radio-button>\n </div>\n <div fd-form-item>\n <fd-radio-button\n [value]=\"_nodeTypes.SERIAL\"\n [(ngModel)]=\"_nodeType\"\n id=\"select-type-serial\"\n name=\"select-type-serial\"\n >\n {{ 'platformApprovalFlow.selectTypeDialogNodeTypeSerial' | fdTranslate }}\n </fd-radio-button>\n </div>\n @if (_nodeType === _nodeTypes.PARALLEL) {\n <div fd-form-item>\n <fd-checkbox [(ngModel)]=\"_toNextSerial\">\n {{ 'platformApprovalFlow.addNodeDialogAddToNext' | fdTranslate }}\n </fd-checkbox>\n </div>\n }\n </fd-form-group>\n </fd-dialog-body>\n <fd-dialog-footer fdCompact>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformApprovalFlow.selectTypeDialogConfirmButton' | fdTranslate\"\n (click)=\"_submit()\"\n ></fd-button-bar>\n <fd-button-bar\n fdkInitialFocus\n fdType=\"transparent\"\n [label]=\"'platformApprovalFlow.selectTypeDialogCancelButton' | fdTranslate\"\n (click)=\"_dialogRef.close()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-approval-flow-dialog a{color:#0a6ed1;color:var(--sapLinkColor, #0a6ed1)}.fdp-approval-flow-dialog .fd-list--byline .fd-list__byline-left{width:100%}.fdp-approval-flow-dialog fd-popover{width:100%}.fdp-approval-flow-dialog fd-dialog fd-dialog-header{margin-bottom:1rem}.fdp-approval-flow-dialog fd-dialog fd-dialog-header .fd-bar--header{flex-direction:column;padding-bottom:1rem}.fdp-approval-flow-dialog fd-dialog fd-dialog-header p{font-size:1rem;margin:.65rem 0}.fdp-approval-flow-dialog fd-dialog fd-dialog-header p fd-icon{font-size:.875rem;color:#0854a0;color:var(--sapButton_IconColor, #0854a0);position:relative;cursor:pointer;margin-right:.75rem}.fdp-approval-flow-dialog fd-dialog fd-dialog-header.show-search{margin-bottom:0}.fdp-approval-flow-dialog fd-dialog fd-dialog-header.show-search .fd-bar--header{min-height:2.5rem;height:auto}.fdp-approval-flow-dialog fd-dialog fd-avatar{margin-right:.652rem}.fdp-approval-flow-dialog fd-dialog fd-dialog-body{padding:1rem}.fdp-approval-flow-dialog fd-dialog fd-dialog-body fdp-list{display:block;margin-left:-1rem;margin-right:-1rem}.fdp-approval-flow-dialog fd-dialog fdp-standard-list-item .fd-checkbox__label{position:relative;left:.3125rem}.fdp-approval-flow-dialog fd-dialog fdp-standard-list-item fd-avatar{margin-left:.1875rem}.fdp-approval-flow-dialog .fd-form-item{margin-bottom:1rem}[dir=rtl] .fdp-approval-flow-dialog fd-dialog-header p fd-icon,.fdp-approval-flow-dialog[dir=rtl] fd-dialog-header p fd-icon{margin-right:0;margin-left:.75rem}[dir=rtl] .fdp-approval-flow-dialog fd-avatar,.fdp-approval-flow-dialog[dir=rtl] fd-avatar{margin-right:0;margin-left:.652rem}[dir=rtl] .fdp-approval-flow-dialog fdp-standard-list-item .fd-checkbox__label,.fdp-approval-flow-dialog[dir=rtl] fdp-standard-list-item .fd-checkbox__label{left:auto;right:.3125rem}\n", ".fdp-approval-flow-select-type .fd-dialog__body{width:24rem}.fdp-approval-flow-select-type .fd-dialog__body .fd-form-item{margin-bottom:0}\n"] }]
61
61
  }], ctorParameters: () => [{ type: i1.DialogRef }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlL2FwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZS9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUNILG1CQUFtQixFQUNuQixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7OztBQU90Rzs7O0dBR0c7QUE2QkgsTUFBTSxPQUFPLCtCQUErQjtJQVV4QyxjQUFjO0lBQ2QsWUFBNEIsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQVZqRCxjQUFjO1FBQ2QsY0FBUyxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztRQUU1QyxjQUFjO1FBQ2QsZUFBVSxHQUFHLHdCQUF3QixDQUFDO1FBRXRDLGNBQWM7UUFDZCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUc4QixDQUFDO0lBRXJELGNBQWM7SUFDZCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBOEIsQ0FBQyxDQUFDO0lBQ2xILENBQUM7OEdBaEJRLCtCQUErQjtrR0FBL0IsK0JBQStCLDZLQzVENUMsNnNFQXNEQSx5K0REWFEsZUFBZSxzR0FDZixxQkFBcUIsNkRBQ3JCLGlCQUFpQixtRkFHakIsbUJBQW1CLDJEQUNuQix1QkFBdUIsb2RBQ3ZCLGtCQUFrQixnRkFDbEIsaUJBQWlCLCtGQUNqQixvQkFBb0IsbU9BQ3BCLFdBQVcsK1ZBQ1gsaUJBQWlCLGdWQUNqQixxQkFBcUIsNkRBQ3JCLGtCQUFrQixvSUFDbEIsZUFBZTs7MkZBR1YsK0JBQStCO2tCQTVCM0MsU0FBUzsrQkFDSSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLHdEQUF3RDtxQkFDbEUsY0FDVyxJQUFJLFdBQ1A7d0JBQ0wsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGVBQWU7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25CYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQge1xuICAgIERpYWxvZ0JvZHlDb21wb25lbnQsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBEaWFsb2dIZWFkZXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQsIEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQVBQUk9WQUxfRkxPV19OT0RFX1RZUEVTIH0gZnJvbSAnLi4vYXBwcm92YWwtZmxvdy1hZGQtbm9kZS9hcHByb3ZhbC1mbG93LWFkZC1ub2RlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0VHlwZURpYWxvZ0Zvcm1EYXRhIHtcbiAgICB0eXBlOiBBUFBST1ZBTF9GTE9XX05PREVfVFlQRVM7XG4gICAgdG9OZXh0U2VyaWFsOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBBcHByb3ZhbEZsb3dTZWxlY3RUeXBlIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC40MC4wXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWFwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vc3R5bGVzL2FwcHJvdmFsLWZsb3ctZGlhbG9nLnNjc3MnLCAnLi9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmRwLWFwcHJvdmFsLWZsb3ctZGlhbG9nIGZkcC1hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUdyb3VwQ29tcG9uZW50LFxuICAgICAgICBGb3JtSXRlbUNvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93U2VsZWN0VHlwZUNvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbm9kZVR5cGUgPSBBUFBST1ZBTF9GTE9XX05PREVfVFlQRVMuU0VSSUFMO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbm9kZVR5cGVzID0gQVBQUk9WQUxfRkxPV19OT0RFX1RZUEVTO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdG9OZXh0U2VyaWFsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7IHR5cGU6IHRoaXMuX25vZGVUeXBlLCB0b05leHRTZXJpYWw6IHRoaXMuX3RvTmV4dFNlcmlhbCB9IGFzIFNlbGVjdFR5cGVEaWFsb2dGb3JtRGF0YSk7XG4gICAgfVxufVxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8cD57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc2VsZWN0VHlwZURpYWxvZ01vdmVBcHByb3ZlckFzJyB8IGZkVHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHkgZmRDb21wYWN0PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWZvcm0tbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zZWxlY3RUeXBlRGlhbG9nUGFyYWxsZWxPclNlcmlhbCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxmZC1mb3JtLWdyb3VwIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGVfX2Zvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtPlxuICAgICAgICAgICAgICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIl9ub2RlVHlwZXMuUEFSQUxMRUxcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9ub2RlVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0LXR5cGUtcGFyYWxsZWxcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0LXR5cGUtcGFyYWxsZWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnNlbGVjdFR5cGVEaWFsb2dOb2RlVHlwZVBhcmFsbGVsJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9mZC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtPlxuICAgICAgICAgICAgICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIl9ub2RlVHlwZXMuU0VSSUFMXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJfbm9kZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdC10eXBlLXNlcmlhbFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3QtdHlwZS1zZXJpYWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnNlbGVjdFR5cGVEaWFsb2dOb2RlVHlwZVNlcmlhbCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvZmQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKF9ub2RlVHlwZSA9PT0gX25vZGVUeXBlcy5QQVJBTExFTCkge1xuICAgICAgICAgICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJfdG9OZXh0U2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuYWRkTm9kZURpYWxvZ0FkZFRvTmV4dCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWZvcm0tZ3JvdXA+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8ZmQtZGlhbG9nLWZvb3RlciBmZENvbXBhY3Q+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cuc2VsZWN0VHlwZURpYWxvZ0NvbmZpcm1CdXR0b24nIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zdWJtaXQoKVwiXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cuc2VsZWN0VHlwZURpYWxvZ0NhbmNlbEJ1dHRvbicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2RpYWxvZ1JlZi5jbG9zZSgpXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZS9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LXNlbGVjdC10eXBlL2FwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7O0FBT3RHOzs7R0FHRztBQTZCSCxNQUFNLE9BQU8sK0JBQStCO0lBVXhDLGNBQWM7SUFDZCxZQUE0QixVQUFxQjtRQUFyQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBVmpELGNBQWM7UUFDZCxjQUFTLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDO1FBRTVDLGNBQWM7UUFDZCxlQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFFdEMsY0FBYztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRzhCLENBQUM7SUFFckQsY0FBYztJQUNkLE9BQU87UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUE4QixDQUFDLENBQUM7SUFDbEgsQ0FBQzs4R0FoQlEsK0JBQStCO2tHQUEvQiwrQkFBK0IsNktDNUQ1Qyw2c0VBc0RBLHkrRERYUSxlQUFlLHNHQUNmLHFCQUFxQiw2REFDckIsaUJBQWlCLG1GQUdqQixtQkFBbUIsMkRBQ25CLHVCQUF1QixvZEFDdkIsa0JBQWtCLGdGQUNsQixpQkFBaUIsK0ZBQ2pCLG9CQUFvQixtT0FDcEIsV0FBVywrVkFDWCxpQkFBaUIsZ1ZBQ2pCLHFCQUFxQiw2REFDckIsa0JBQWtCLG9JQUNsQixlQUFlOzsyRkFHViwrQkFBK0I7a0JBNUIzQyxTQUFTOytCQUNJLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsd0RBQXdEO3FCQUNsRSxjQUNXLElBQUksV0FDUDt3QkFDTCxlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkJhckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2hlY2tib3gnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCwgRm9ybUl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBBUFBST1ZBTF9GTE9XX05PREVfVFlQRVMgfSBmcm9tICcuLi9hcHByb3ZhbC1mbG93LWFkZC1ub2RlL2FwcHJvdmFsLWZsb3ctYWRkLW5vZGUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RUeXBlRGlhbG9nRm9ybURhdGEge1xuICAgIHR5cGU6IEFQUFJPVkFMX0ZMT1dfTk9ERV9UWVBFUztcbiAgICB0b05leHRTZXJpYWw6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEFwcHJvdmFsRmxvd1NlbGVjdFR5cGUgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9zdHlsZXMvYXBwcm92YWwtZmxvdy1kaWFsb2cuc2NzcycsICcuL2FwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtYXBwcm92YWwtZmxvdy1kaWFsb2cgZmRwLWFwcHJvdmFsLWZsb3ctc2VsZWN0LXR5cGUnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIERpYWxvZ0JvZHlDb21wb25lbnQsXG4gICAgICAgIENvbnRlbnREZW5zaXR5RGlyZWN0aXZlLFxuICAgICAgICBGb3JtR3JvdXBDb21wb25lbnQsXG4gICAgICAgIEZvcm1JdGVtQ29tcG9uZW50LFxuICAgICAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dTZWxlY3RUeXBlQ29tcG9uZW50IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ub2RlVHlwZSA9IEFQUFJPVkFMX0ZMT1dfTk9ERV9UWVBFUy5TRVJJQUw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ub2RlVHlwZXMgPSBBUFBST1ZBTF9GTE9XX05PREVfVFlQRVM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90b05leHRTZXJpYWwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IF9kaWFsb2dSZWY6IERpYWxvZ1JlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3N1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHsgdHlwZTogdGhpcy5fbm9kZVR5cGUsIHRvTmV4dFNlcmlhbDogdGhpcy5fdG9OZXh0U2VyaWFsIH0gYXMgU2VsZWN0VHlwZURpYWxvZ0Zvcm1EYXRhKTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxwPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zZWxlY3RUeXBlRGlhbG9nTW92ZUFwcHJvdmVyQXMnIHwgZmRUcmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgIDxmZC1kaWFsb2ctYm9keSBmZENvbXBhY3Q+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtZm9ybS1sYWJlbFwiPlxuICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnNlbGVjdFR5cGVEaWFsb2dQYXJhbGxlbE9yU2VyaWFsJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGZkLWZvcm0tZ3JvdXAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1zZWxlY3QtdHlwZV9fZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGZkLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiX25vZGVUeXBlcy5QQVJBTExFTFwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiX25vZGVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3QtdHlwZS1wYXJhbGxlbFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3QtdHlwZS1wYXJhbGxlbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc2VsZWN0VHlwZURpYWxvZ05vZGVUeXBlUGFyYWxsZWwnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGZkLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiX25vZGVUeXBlcy5TRVJJQUxcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9ub2RlVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0LXR5cGUtc2VyaWFsXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNlbGVjdC10eXBlLXNlcmlhbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc2VsZWN0VHlwZURpYWxvZ05vZGVUeXBlU2VyaWFsJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9mZC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoX25vZGVUeXBlID09PSBfbm9kZVR5cGVzLlBBUkFMTEVMKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIl90b05leHRTZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5hZGROb2RlRGlhbG9nQWRkVG9OZXh0JyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtZm9ybS1ncm91cD5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuICAgIDxmZC1kaWFsb2ctZm9vdGVyIGZkQ29tcGFjdD5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zZWxlY3RUeXBlRGlhbG9nQ29uZmlybUJ1dHRvbicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3N1Ym1pdCgpXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zZWxlY3RUeXBlRGlhbG9nQ2FuY2VsQnV0dG9uJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfZGlhbG9nUmVmLmNsb3NlKClcIlxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbjwvZmQtZGlhbG9nPlxuIl19
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
61
61
  onTeamRadioClick: [{
62
62
  type: Output
63
63
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QvYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QvYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHdkM7OztHQUdHO0FBc0JILE1BQU0sT0FBTyw2QkFBNkI7SUFyQjFDO1FBc0JJLDBCQUEwQjtRQUUxQixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUUzQiwwQkFBMEI7UUFFMUIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQU1kLGtDQUFrQztRQUdsQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRS9DLDZDQUE2QztRQUc3QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVwRCxjQUFjO1FBQ2QsZUFBVSxHQUFHLFNBQVMsQ0FBQztLQU0xQjtJQUpHLGNBQWM7SUFDZCxnQkFBZ0IsQ0FBQyxJQUFrQjtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQTdCUSw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2U0NyQzFDLHdsQ0F5QkEsKzNCREVRLGFBQWEseWRBQ2IsdUJBQXVCLG9kQUN2QixrQkFBa0IsZ0ZBQ2xCLGlCQUFpQiwrRkFDakIsb0JBQW9CLG1PQUNwQixXQUFXLCtWQUNYLHlCQUF5QixtRUFDekIsYUFBYTs7MkZBR1IsNkJBQTZCO2tCQXJCekMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLDZCQUE2QjtxQkFDdkMsY0FDVyxJQUFJLFdBQ1A7d0JBQ0wsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gseUJBQXlCO3dCQUN6QixhQUFhO3FCQUNoQjs4QkFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSzs7UUFLTiwrREFBK0Q7UUFDL0QsV0FBVztzQkFGVixNQUFNOztRQU1QLCtEQUErRDtRQUMvRCxnQkFBZ0I7c0JBRmYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQsIEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2xpc3QnO1xuaW1wb3J0IHsgdHJhY2tCeUZuIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBBcHByb3ZhbFRlYW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93VGVhbUxpc3QgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LXRlYW0tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2FwcHJvdmFsLWZsb3ctdGVhbS1saXN0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTGlzdENvbXBvbmVudCxcbiAgICAgICAgQ29udGVudERlbnNpdHlEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1Hcm91cENvbXBvbmVudCxcbiAgICAgICAgRm9ybUl0ZW1Db21wb25lbnQsXG4gICAgICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgSWNvbkNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93VGVhbUxpc3RDb21wb25lbnQge1xuICAgIC8qKiBBcHByb3ZhbCBmbG93IHRlYW1zICovXG4gICAgQElucHV0KClcbiAgICB0ZWFtczogQXBwcm92YWxUZWFtW10gPSBbXTtcblxuICAgIC8qKiBXaGV0aGVyIGluIFJUTCBtb2RlICovXG4gICAgQElucHV0KClcbiAgICBpc1J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIFNlbGVjdGVkIHRlYW0gSUQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkVGVhbUlkOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gdGVhbSBjbGljayAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uVGVhbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcHByb3ZhbFRlYW0+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiB0ZWFtIHNlbGVjdGlvbiBjaGFuZ2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvblRlYW1SYWRpb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcHByb3ZhbFRlYW0+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Rm4gPSB0cmFja0J5Rm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93VGVhbURldGFpbHModGVhbTogQXBwcm92YWxUZWFtKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25UZWFtQ2xpY2suZW1pdCh0ZWFtKTtcbiAgICB9XG59XG4iLCI8ZmRwLWxpc3QgW2hhc0J5TGluZV09XCJ0cnVlXCIgZmRDb21wYWN0PlxuICAgIDxmZC1mb3JtLWdyb3VwPlxuICAgICAgICBAZm9yICh0ZWFtIG9mIHRlYW1zOyB0cmFjayBfdHJhY2tCeUZuKGksIHRlYW0pOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGZkLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGVhbS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIid0ZWFtLXJhZGlvJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIndGVhbS1yYWRpbycgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRlYW1JZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRlYW1SYWRpb0NsaWNrLmVtaXQodGVhbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZmRwLXN0YW5kYXJkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCInYXBwcm92YWwtdGVhbS0nICsgdGVhbS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdmF0YXJdPVwieyBpbWFnZTogJycsIGFyaWFMYWJlbDogdGVhbS5uYW1lIH1cIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwidGVhbS5kZXNjcmlwdGlvbiB8fCB0ZWFtLm1lbWJlcnMubGVuZ3RoICsgJyBtZW1iZXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJ0ZWFtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3Nob3dUZWFtRGV0YWlscyh0ZWFtKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmRwLXN0YW5kYXJkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiJ25hdmlnYXRpb24tJyArIChpc1J0bCA/ICdsZWZ0JyA6ICdyaWdodCcpICsgJy1hcnJvdydcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZmQtZm9ybS1ncm91cD5cbjwvZmRwLWxpc3Q+XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctdGVhbS1saXN0L2FwcHJvdmFsLWZsb3ctdGVhbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LXRlYW0tbGlzdC9hcHByb3ZhbC1mbG93LXRlYW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUd2Qzs7O0dBR0c7QUFzQkgsTUFBTSxPQUFPLDZCQUE2QjtJQXJCMUM7UUFzQkksMEJBQTBCO1FBRTFCLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBRTNCLDBCQUEwQjtRQUUxQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBTWQsa0NBQWtDO1FBR2xDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFL0MsNkNBQTZDO1FBRzdDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRXBELGNBQWM7UUFDZCxlQUFVLEdBQUcsU0FBUyxDQUFDO0tBTTFCO0lBSkcsY0FBYztJQUNkLGdCQUFnQixDQUFDLElBQWtCO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBN0JRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDZTQ3JDMUMsd2xDQXlCQSwrM0JERVEsYUFBYSx5ZEFDYix1QkFBdUIsb2RBQ3ZCLGtCQUFrQixnRkFDbEIsaUJBQWlCLCtGQUNqQixvQkFBb0IsbU9BQ3BCLFdBQVcsK1ZBQ1gseUJBQXlCLG1FQUN6QixhQUFhOzsyRkFHUiw2QkFBNkI7a0JBckJ6QyxTQUFTOytCQUNJLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsNkJBQTZCO3FCQUN2QyxjQUNXLElBQUksV0FDUDt3QkFDTCxhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCx5QkFBeUI7d0JBQ3pCLGFBQWE7cUJBQ2hCOzhCQUtELEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLOztRQUtOLCtEQUErRDtRQUMvRCxXQUFXO3NCQUZWLE1BQU07O1FBTVAsK0RBQStEO1FBQy9ELGdCQUFnQjtzQkFGZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCwgRm9ybUl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCwgU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGlzdCc7XG5pbXBvcnQgeyB0cmFja0J5Rm4gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IEFwcHJvdmFsVGVhbSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBBcHByb3ZhbEZsb3dUZWFtTGlzdCBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1hcHByb3ZhbC1mbG93LXRlYW0tbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcHJvdmFsLWZsb3ctdGVhbS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYXBwcm92YWwtZmxvdy10ZWFtLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1hcHByb3ZhbC1mbG93LXRlYW0tbGlzdCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBMaXN0Q29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUdyb3VwQ29tcG9uZW50LFxuICAgICAgICBGb3JtSXRlbUNvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTdGFuZGFyZExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBJY29uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dUZWFtTGlzdENvbXBvbmVudCB7XG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgdGVhbXMgKi9cbiAgICBASW5wdXQoKVxuICAgIHRlYW1zOiBBcHByb3ZhbFRlYW1bXSA9IFtdO1xuXG4gICAgLyoqIFdoZXRoZXIgaW4gUlRMIG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsID0gZmFsc2U7XG5cbiAgICAvKiogU2VsZWN0ZWQgdGVhbSBJRCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRUZWFtSWQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiB0ZWFtIGNsaWNrICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25UZWFtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsVGVhbT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIG9uIHRlYW0gc2VsZWN0aW9uIGNoYW5nZSAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uVGVhbVJhZGlvQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsVGVhbT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RyYWNrQnlGbiA9IHRyYWNrQnlGbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dUZWFtRGV0YWlscyh0ZWFtOiBBcHByb3ZhbFRlYW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRlYW1DbGljay5lbWl0KHRlYW0pO1xuICAgIH1cbn1cbiIsIjxmZHAtbGlzdCBbaGFzQnlMaW5lXT1cInRydWVcIiBmZENvbXBhY3Q+XG4gICAgPGZkLWZvcm0tZ3JvdXA+XG4gICAgICAgIEBmb3IgKHRlYW0gb2YgdGVhbXM7IHRyYWNrIF90cmFja0J5Rm4oaSwgdGVhbSk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbT5cbiAgICAgICAgICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0ZWFtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3RlYW0tcmFkaW8nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIid0ZWFtLXJhZGlvJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGVhbUlkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGVhbVJhZGlvQ2xpY2suZW1pdCh0ZWFtKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxmZHAtc3RhbmRhcmQtbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIidhcHByb3ZhbC10ZWFtLScgKyB0ZWFtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F2YXRhcl09XCJ7IGltYWdlOiAnJywgYXJpYUxhYmVsOiB0ZWFtLm5hbWUgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJ0ZWFtLmRlc2NyaXB0aW9uIHx8IHRlYW0ubWVtYmVycy5sZW5ndGggKyAnIG1lbWJlcnMnXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInRlYW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfc2hvd1RlYW1EZXRhaWxzKHRlYW0pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZHAtc3RhbmRhcmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCInbmF2aWdhdGlvbi0nICsgKGlzUnRsID8gJ2xlZnQnIDogJ3JpZ2h0JykgKyAnLWFycm93J1wiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9mZC1mb3JtLWdyb3VwPlxuPC9mZHAtbGlzdD5cbiJdfQ==