@elderbyte/ngx-starter 14.10.0 → 14.12.0-beta

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 (303) hide show
  1. package/_index.scss +2 -0
  2. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  3. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  4. package/esm2020/lib/common/forms/elder-from-field-base.mjs +4 -4
  5. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  6. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  7. package/esm2020/lib/common/forms/form-field-base.component.mjs +4 -4
  8. package/esm2020/lib/common/forms/multi-model-base.component.mjs +4 -4
  9. package/esm2020/lib/common/forms/template-composite-control.mjs +4 -4
  10. package/esm2020/lib/common/forms/value-accessor-base.mjs +4 -4
  11. package/esm2020/lib/common/http/http-client-builder.service.mjs +4 -4
  12. package/esm2020/lib/common/http/http-client-pristine.mjs +4 -4
  13. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  14. package/esm2020/lib/common/url/elder-router.service.mjs +4 -4
  15. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  16. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +5 -6
  17. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +8 -12
  18. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +11 -15
  19. package/esm2020/lib/components/auditing/elder-audit.module.mjs +5 -9
  20. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +5 -6
  21. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +8 -12
  22. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +6 -7
  23. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  24. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +7 -8
  25. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +8 -9
  26. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +5 -7
  27. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +20 -22
  28. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +8 -9
  29. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +8 -9
  30. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  31. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  32. package/esm2020/lib/components/containers/elder-containers.module.mjs +6 -10
  33. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +5 -6
  34. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  35. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  36. package/esm2020/lib/components/csv/elder-csv.module.mjs +5 -5
  37. package/esm2020/lib/components/currency/elder-currency.module.mjs +5 -5
  38. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +4 -4
  39. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +8 -9
  40. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  41. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +5 -6
  42. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +6 -7
  43. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +8 -9
  44. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +7 -8
  45. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  46. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +6 -7
  47. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +8 -9
  48. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +8 -9
  49. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +6 -7
  50. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  51. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +5 -6
  52. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +47 -34
  53. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +5 -9
  54. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  55. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +8 -9
  56. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  57. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  58. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  59. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  60. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +11 -12
  61. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  62. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  63. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  64. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  65. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  66. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +8 -9
  67. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  68. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +6 -7
  69. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +11 -12
  70. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  71. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +6 -7
  72. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +6 -7
  73. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  74. package/esm2020/lib/components/errors/elder-error.module.mjs +8 -12
  75. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +5 -6
  76. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +6 -7
  77. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +6 -7
  78. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +5 -6
  79. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  80. package/esm2020/lib/components/files/elder-file-select.directive.mjs +4 -4
  81. package/esm2020/lib/components/files/elder-file.module.mjs +8 -9
  82. package/esm2020/lib/components/files/file-select/file-select.component.mjs +4 -4
  83. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +13 -14
  84. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  85. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  86. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  87. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  88. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  89. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  90. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  91. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  92. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +14 -14
  93. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  94. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  95. package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +4 -4
  96. package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +4 -4
  97. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  98. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  99. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  100. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  101. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  102. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  103. package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +4 -4
  104. package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +4 -4
  105. package/esm2020/lib/components/forms/elder-forms.module.mjs +5 -5
  106. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +4 -4
  107. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +4 -4
  108. package/esm2020/lib/components/forms/search/elder-search.module.mjs +8 -9
  109. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +7 -8
  110. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  111. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +6 -7
  112. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +6 -7
  113. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +4 -4
  114. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +5 -13
  115. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +6 -10
  116. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +6 -7
  117. package/esm2020/lib/components/headers/elder-header.module.mjs +8 -9
  118. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +4 -4
  119. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -9
  120. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +12 -13
  121. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +10 -11
  122. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  123. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +16 -17
  124. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  125. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  126. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  127. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  128. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  129. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  130. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +5 -9
  131. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +4 -4
  132. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +7 -8
  133. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  134. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +6 -7
  135. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  136. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +5 -9
  137. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +4 -4
  138. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +6 -7
  139. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +8 -9
  140. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +6 -7
  141. package/esm2020/lib/components/iframes/iframe.service.mjs +4 -4
  142. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  143. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  144. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +8 -8
  145. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +6 -7
  146. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  147. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +4 -4
  148. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +5 -9
  149. package/esm2020/lib/components/labels/elder-labels.module.mjs +5 -5
  150. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  151. package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +7 -18
  152. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  153. package/esm2020/lib/components/measures/elder-measures.module.mjs +9 -13
  154. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
  155. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  156. package/esm2020/lib/components/measures/elder-unit.service.mjs +4 -4
  157. package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +14 -15
  158. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  159. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +14 -15
  160. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +8 -9
  161. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +8 -9
  162. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +5 -6
  163. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +6 -7
  164. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +5 -7
  165. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
  166. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +8 -9
  167. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  168. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +8 -9
  169. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  170. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  171. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +5 -5
  172. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +5 -5
  173. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +5 -5
  174. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +5 -5
  175. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +5 -6
  176. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +5 -6
  177. package/esm2020/lib/components/panels/elder-panel.module.mjs +6 -10
  178. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  179. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +4 -4
  180. package/esm2020/lib/components/select/elder-select-base.mjs +4 -4
  181. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +10 -10
  182. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  183. package/esm2020/lib/components/select/elder-select-value.directive.mjs +4 -4
  184. package/esm2020/lib/components/select/elder-select.module.mjs +8 -9
  185. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  186. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +14 -15
  187. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  188. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  189. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  190. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +7 -8
  191. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  192. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +11 -12
  193. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +4 -4
  194. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +7 -9
  195. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +8 -9
  196. package/esm2020/lib/components/select-list/elder-select-list.module.mjs +8 -9
  197. package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +5 -6
  198. package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +5 -6
  199. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  200. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  201. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  202. package/esm2020/lib/components/shell/elder-shell.module.mjs +8 -9
  203. package/esm2020/lib/components/shell/elder-shell.service.mjs +4 -4
  204. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +6 -7
  205. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +15 -16
  206. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  207. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  208. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  209. package/esm2020/lib/components/tabs/elder-tab.module.mjs +7 -11
  210. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  211. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  212. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  213. package/esm2020/lib/components/theme/elder-theme.directive.mjs +4 -4
  214. package/esm2020/lib/components/theme/elder-theme.module.mjs +5 -5
  215. package/esm2020/lib/components/theme/elder-theme.service.mjs +4 -4
  216. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  217. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +9 -10
  218. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +11 -12
  219. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +9 -10
  220. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +9 -10
  221. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +14 -15
  222. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +11 -12
  223. package/esm2020/lib/components/time/elder-time.module.mjs +9 -19
  224. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +9 -10
  225. package/esm2020/lib/components/toasts/elder-toast.module.mjs +6 -7
  226. package/esm2020/lib/components/toasts/elder-toast.service.mjs +10 -10
  227. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +7 -8
  228. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -9
  229. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +6 -7
  230. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  231. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +5 -5
  232. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +4 -4
  233. package/esm2020/lib/features/kafent/access-token-provider.mjs +4 -4
  234. package/esm2020/lib/features/kafent/kafent-config.mjs +4 -4
  235. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +4 -4
  236. package/esm2020/lib/features/kafent/kafent-event.service.mjs +4 -4
  237. package/esm2020/lib/features/kafent/kafent.module.mjs +5 -5
  238. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  239. package/esm2020/lib/pipes/bytes.pipe.mjs +4 -4
  240. package/esm2020/lib/pipes/elder-pipes.module.mjs +11 -11
  241. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +4 -4
  242. package/esm2020/lib/pipes/elder-round.pipe.mjs +4 -4
  243. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  244. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +4 -4
  245. package/esm2020/lib/pipes/iso-duration.pipe.mjs +4 -4
  246. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  247. package/esm2020/lib/pipes/iso-interval.pipe.mjs +4 -4
  248. package/esm2020/lib/pipes/time-ago.pipe.mjs +4 -4
  249. package/esm2020/lib/pipes/time-duration.pipe.mjs +4 -4
  250. package/esm2020/lib/pipes/weight.pipe.mjs +4 -4
  251. package/fesm2015/elderbyte-ngx-starter.mjs +1126 -1190
  252. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  253. package/fesm2020/elderbyte-ngx-starter.mjs +1126 -1190
  254. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  255. package/lib/components/access-denied/elder-access-denied.module.d.ts +1 -2
  256. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -2
  257. package/lib/components/auditing/elder-audit.module.d.ts +5 -6
  258. package/lib/components/button-group/elder-button-group.module.d.ts +1 -2
  259. package/lib/components/card-organizer/elder-card-organizer.module.d.ts +3 -4
  260. package/lib/components/cards/elder-card/elder-card.module.d.ts +2 -3
  261. package/lib/components/connectivity/elder-connectivity.module.d.ts +6 -7
  262. package/lib/components/containers/elder-containers.module.d.ts +1 -2
  263. package/lib/components/data-transfer/elder-data-transfer.module.d.ts +4 -5
  264. package/lib/components/data-view/common/elder-data-common.module.d.ts +1 -2
  265. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +4 -3
  266. package/lib/components/data-view/grid/elder-grid.module.d.ts +6 -7
  267. package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.d.ts +4 -5
  268. package/lib/components/data-view/table/elder-table.module.d.ts +4 -5
  269. package/lib/components/dialogs/elder-dialog.module.d.ts +2 -3
  270. package/lib/components/errors/elder-error.module.d.ts +1 -2
  271. package/lib/components/expand-toggle-button/elder-expand-toggle-button.module.d.ts +1 -2
  272. package/lib/components/files/elder-file.module.d.ts +6 -7
  273. package/lib/components/forms/search/elder-search.module.d.ts +2 -3
  274. package/lib/components/global-search/elder-global-search.module.d.ts +2 -3
  275. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -8
  276. package/lib/components/graph/elder-progress-bar/elder-progress-bar.module.d.ts +1 -2
  277. package/lib/components/headers/elder-header.module.d.ts +2 -3
  278. package/lib/components/i18n/entities/elder-i18n-entities.module.d.ts +15 -16
  279. package/lib/components/i18n/language/elder-language.module.d.ts +2 -3
  280. package/lib/components/iframes/elder-iframe.module.d.ts +5 -6
  281. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +2 -3
  282. package/lib/components/measures/dimensions-input/elder-dimensions-input.component.d.ts +1 -3
  283. package/lib/components/measures/elder-measures.module.d.ts +5 -6
  284. package/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.d.ts +8 -9
  285. package/lib/components/navigation/nav/elder-nav.module.d.ts +1 -2
  286. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -3
  287. package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +8 -9
  288. package/lib/components/panels/elder-panel.module.d.ts +1 -2
  289. package/lib/components/select/elder-select.module.d.ts +10 -11
  290. package/lib/components/select-chip-list/elder-chip-list-select.module.d.ts +3 -4
  291. package/lib/components/select-list/elder-select-list.module.d.ts +1 -2
  292. package/lib/components/shell/elder-shell.module.d.ts +4 -5
  293. package/lib/components/tabs/elder-tab.module.d.ts +1 -2
  294. package/lib/components/time/elder-time.module.d.ts +9 -10
  295. package/lib/components/toasts/elder-toast.module.d.ts +3 -4
  296. package/lib/components/url-fragment/elder-url-fragment.module.d.ts +2 -3
  297. package/package.json +1 -2
  298. package/src/lib/components/graph/elder-progress-bar/elder-progress-bar.component.scss +5 -0
  299. package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +5 -6
  300. package/src/lib/components/select/single/elder-select/elder-select.component.scss +1 -4
  301. package/theming/_elder-common.scss +32 -0
  302. package/theming/_elder-flex-layout.scss +562 -0
  303. package/theming/_elder-style-fixes.scss +3 -0
@@ -5,8 +5,7 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../../theme/elder-theme.service";
6
6
  import * as i2 from "@angular/common";
7
7
  import * as i3 from "@angular/material/icon";
8
- import * as i4 from "@angular/flex-layout/flex";
9
- import * as i5 from "../../../panels/flat/elder-panel.component";
8
+ import * as i4 from "../../../panels/flat/elder-panel.component";
10
9
  export class ElderAppHeaderComponent {
11
10
  /***************************************************************************
12
11
  * *
@@ -51,11 +50,11 @@ export class ElderAppHeaderComponent {
51
50
  this.iconColor$.next(c);
52
51
  }
53
52
  }
54
- ElderAppHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderAppHeaderComponent, deps: [{ token: i1.ElderThemeService }], target: i0.ɵɵFactoryTarget.Component });
55
- ElderAppHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: ElderAppHeaderComponent, selector: "elder-app-header", inputs: { icon: "icon", title: "title", subTitle: "subTitle", subTitleLink: "subTitleLink", version: "version", color: "color", iconColor: "iconColor" }, ngImport: i0, template: "<mat-panel fxLayout=\"column\" [color]=\"color$ | async\" class=\"light\" fxFill>\n <div fxLayout=\"row\" style=\"padding: 20px\" fxFlex=\"none\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon class=\"noselect title-icon\" [color]=\"iconColor$ | async\">{{icon}}</mat-icon>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center start\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" style=\"width: 100%\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start end\" fxLayoutGap=\"5px\">\n <span id=\"title\" class=\"noselect\" style=\"font-size: 28px\">{{title}}</span>\n <span class=\"mat-caption noselect\"><small>{{version}}</small></span>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span class=\"mat-caption noselect\">\n <span *ngIf=\"!subTitleLink\">{{subTitle}}</span>\n <a *ngIf=\"subTitleLink\" [href]=\"subTitleLink\" target=\"_blank\" style=\"text-decoration:none; color: inherit\">{{subTitle}}</a>\n </span>\n </div>\n </div>\n </div>\n\n <!-- Project child content here -->\n <ng-content></ng-content>\n\n</mat-panel>\n", styles: [".title-icon{font-size:42px;width:42px;height:42px;padding:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.ElderPanelComponent, selector: "elder-panel, mat-panel", inputs: ["color"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderAppHeaderComponent, decorators: [{
53
+ ElderAppHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderAppHeaderComponent, deps: [{ token: i1.ElderThemeService }], target: i0.ɵɵFactoryTarget.Component });
54
+ ElderAppHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderAppHeaderComponent, selector: "elder-app-header", inputs: { icon: "icon", title: "title", subTitle: "subTitle", subTitleLink: "subTitleLink", version: "version", color: "color", iconColor: "iconColor" }, ngImport: i0, template: "<mat-panel [color]=\"color$ | async\" class=\"layout-col full light\">\n <div class=\"layout-row flex-none p-lg\">\n <div class=\"layout-row place-center-center\">\n <mat-icon class=\"noselect title-icon\" [color]=\"iconColor$ | async\">{{icon}}</mat-icon>\n </div>\n <div class=\"layout-col place-center-start\">\n <div class=\"layout-col place-center-center\" style=\"width: 100%\">\n <div class=\"layout-row place-start-end gap-xs\">\n <span id=\"title\" class=\"noselect\" style=\"font-size: 28px\">{{title}}</span>\n <span class=\"mat-caption noselect\"><small>{{version}}</small></span>\n </div>\n </div>\n <div class=\"layout-row place-start-center\">\n <span class=\"mat-caption noselect\">\n <span *ngIf=\"!subTitleLink\">{{subTitle}}</span>\n <a *ngIf=\"subTitleLink\" [href]=\"subTitleLink\" target=\"_blank\" style=\"text-decoration:none; color: inherit\">{{subTitle}}</a>\n </span>\n </div>\n </div>\n </div>\n\n <!-- Project child content here -->\n <ng-content></ng-content>\n\n</mat-panel>\n", styles: [".title-icon{font-size:42px;width:42px;height:42px;padding:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.ElderPanelComponent, selector: "elder-panel, mat-panel", inputs: ["color"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderAppHeaderComponent, decorators: [{
57
56
  type: Component,
58
- args: [{ selector: 'elder-app-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-panel fxLayout=\"column\" [color]=\"color$ | async\" class=\"light\" fxFill>\n <div fxLayout=\"row\" style=\"padding: 20px\" fxFlex=\"none\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon class=\"noselect title-icon\" [color]=\"iconColor$ | async\">{{icon}}</mat-icon>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center start\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" style=\"width: 100%\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start end\" fxLayoutGap=\"5px\">\n <span id=\"title\" class=\"noselect\" style=\"font-size: 28px\">{{title}}</span>\n <span class=\"mat-caption noselect\"><small>{{version}}</small></span>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span class=\"mat-caption noselect\">\n <span *ngIf=\"!subTitleLink\">{{subTitle}}</span>\n <a *ngIf=\"subTitleLink\" [href]=\"subTitleLink\" target=\"_blank\" style=\"text-decoration:none; color: inherit\">{{subTitle}}</a>\n </span>\n </div>\n </div>\n </div>\n\n <!-- Project child content here -->\n <ng-content></ng-content>\n\n</mat-panel>\n", styles: [".title-icon{font-size:42px;width:42px;height:42px;padding:20px}\n"] }]
57
+ args: [{ selector: 'elder-app-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-panel [color]=\"color$ | async\" class=\"layout-col full light\">\n <div class=\"layout-row flex-none p-lg\">\n <div class=\"layout-row place-center-center\">\n <mat-icon class=\"noselect title-icon\" [color]=\"iconColor$ | async\">{{icon}}</mat-icon>\n </div>\n <div class=\"layout-col place-center-start\">\n <div class=\"layout-col place-center-center\" style=\"width: 100%\">\n <div class=\"layout-row place-start-end gap-xs\">\n <span id=\"title\" class=\"noselect\" style=\"font-size: 28px\">{{title}}</span>\n <span class=\"mat-caption noselect\"><small>{{version}}</small></span>\n </div>\n </div>\n <div class=\"layout-row place-start-center\">\n <span class=\"mat-caption noselect\">\n <span *ngIf=\"!subTitleLink\">{{subTitle}}</span>\n <a *ngIf=\"subTitleLink\" [href]=\"subTitleLink\" target=\"_blank\" style=\"text-decoration:none; color: inherit\">{{subTitle}}</a>\n </span>\n </div>\n </div>\n </div>\n\n <!-- Project child content here -->\n <ng-content></ng-content>\n\n</mat-panel>\n", styles: [".title-icon{font-size:42px;width:42px;height:42px;padding:20px}\n"] }]
59
58
  }], ctorParameters: function () { return [{ type: i1.ElderThemeService }]; }, propDecorators: { icon: [{
60
59
  type: Input
61
60
  }], title: [{
@@ -71,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImpor
71
70
  }], iconColor: [{
72
71
  type: Input
73
72
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL2hlYWRlci9lbGRlci1hcHAtaGVhZGVyL2VsZGVyLWFwcC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9oZWFkZXIvZWxkZXItYXBwLWhlYWRlci9lbGRlci1hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFROUMsTUFBTSxPQUFPLHVCQUF1QjtJQTRCbEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFlBQStCO1FBQS9CLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQXBCM0MsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUcxQixpQkFBWSxHQUFHLHVCQUF1QixDQUFDO1FBSzlCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBZSxTQUFTLENBQUMsQ0FBQztRQUN0RCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQWUsUUFBUSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVNUMsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVk7YUFDZCxZQUFZO2FBQ1osSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyx1QkFBdUI7U0FDMUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csS0FBSyxDQUFDLENBQWU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQ1csU0FBUyxDQUFDLENBQWU7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7b0hBM0VVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGtOQ1pwQyxxckNBeUJBOzJGRGJhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTt3R0FXeEMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBZ0RLLEtBQUs7c0JBRGYsS0FBSztnQkFNSyxTQUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtFbGRlclRoZW1lU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdGhlbWUvZWxkZXItdGhlbWUuc2VydmljZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWFwcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWFwcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJBcHBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3ViVGl0bGUgPSAnYnkgRWxkZXJCeXRlJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3ViVGl0bGVMaW5rID0gJ2h0dHBzOi8vZWxkZXJieXRlLmNvbSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZlcnNpb246IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgY29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVtZVBhbGV0dGU+KCdwcmltYXJ5Jyk7XG4gIHB1YmxpYyByZWFkb25seSBpY29uQ29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVtZVBhbGV0dGU+KCdhY2NlbnQnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lU2VydmljZTogRWxkZXJUaGVtZVNlcnZpY2VcbiAgKSB7IH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aGVtZVNlcnZpY2VcbiAgICAgIC5hY3RpdmVUaGVtZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApIC8vIEZpeCBmb3IgTkcwMTAwIGVycm9yXG4gICAgICApLnN1YnNjcmliZSh0aGVtZSA9PiB7XG4gICAgICB0aGlzLmNvbG9yID0gdGhlbWUuaGVyb0JhY2tncm91bmQ7XG4gICAgICB0aGlzLmljb25Db2xvciA9IHRoZW1lLmhlcm9JY29uQ29sb3I7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2xvcihjOiBUaGVtZVBhbGV0dGUpe1xuICAgIHRoaXMuY29sb3IkLm5leHQoYyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGljb25Db2xvcihjOiBUaGVtZVBhbGV0dGUpe1xuICAgIHRoaXMuaWNvbkNvbG9yJC5uZXh0KGMpO1xuICB9XG59XG4iLCI8bWF0LXBhbmVsIGZ4TGF5b3V0PVwiY29sdW1uXCIgW2NvbG9yXT1cImNvbG9yJCB8IGFzeW5jXCIgY2xhc3M9XCJsaWdodFwiIGZ4RmlsbD5cbiAgPGRpdiBmeExheW91dD1cInJvd1wiIHN0eWxlPVwicGFkZGluZzogMjBweFwiIGZ4RmxleD1cIm5vbmVcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm5vc2VsZWN0IHRpdGxlLWljb25cIiBbY29sb3JdPVwiaWNvbkNvbG9yJCB8IGFzeW5jXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIHN0YXJ0XCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgZW5kXCIgZnhMYXlvdXRHYXA9XCI1cHhcIj5cbiAgICAgICAgICA8c3BhbiBpZD1cInRpdGxlXCIgY2xhc3M9XCJub3NlbGVjdFwiIHN0eWxlPVwiZm9udC1zaXplOiAyOHB4XCI+e3t0aXRsZX19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIj48c21hbGw+e3t2ZXJzaW9ufX08L3NtYWxsPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFzdWJUaXRsZUxpbmtcIj57e3N1YlRpdGxlfX08L3NwYW4+XG4gICAgICAgICAgPGEgKm5nSWY9XCJzdWJUaXRsZUxpbmtcIiBbaHJlZl09XCJzdWJUaXRsZUxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjogaW5oZXJpdFwiPnt7c3ViVGl0bGV9fTwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUHJvamVjdCBjaGlsZCBjb250ZW50IGhlcmUgLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPC9tYXQtcGFuZWw+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL2hlYWRlci9lbGRlci1hcHAtaGVhZGVyL2VsZGVyLWFwcC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9oZWFkZXIvZWxkZXItYXBwLWhlYWRlci9lbGRlci1hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVE5QyxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsWUFBK0I7UUFBL0IsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBcEIzQyxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBRzFCLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7UUFLOUIsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFlLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBZSxRQUFRLENBQUMsQ0FBQztRQUV4RCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVU1QyxDQUFDO0lBRUw7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWTthQUNkLFlBQVk7YUFDWixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLHVCQUF1QjtTQUMxQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxLQUFLLENBQUMsQ0FBZTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDVyxTQUFTLENBQUMsQ0FBZTtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOztxSEEzRVUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsa05DWnBDLDBsQ0F5QkE7NEZEYmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO3dHQVd4QyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFnREssS0FBSztzQkFEZixLQUFLO2dCQU1LLFNBQVM7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0VsZGVyVGhlbWVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90aGVtZS9lbGRlci10aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItYXBwLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYXBwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckFwcEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWJUaXRsZSA9ICdieSBFbGRlckJ5dGUnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWJUaXRsZUxpbmsgPSAnaHR0cHM6Ly9lbGRlcmJ5dGUuY29tJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ3ByaW1hcnknKTtcbiAgcHVibGljIHJlYWRvbmx5IGljb25Db2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ2FjY2VudCcpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhlbWVTZXJ2aWNlOiBFbGRlclRoZW1lU2VydmljZVxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lU2VydmljZVxuICAgICAgLmFjdGl2ZVRoZW1lJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCkgLy8gRml4IGZvciBORzAxMDAgZXJyb3JcbiAgICAgICkuc3Vic2NyaWJlKHRoZW1lID0+IHtcbiAgICAgIHRoaXMuY29sb3IgPSB0aGVtZS5oZXJvQmFja2dyb3VuZDtcbiAgICAgIHRoaXMuaWNvbkNvbG9yID0gdGhlbWUuaGVyb0ljb25Db2xvcjtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbG9yKGM6IFRoZW1lUGFsZXR0ZSl7XG4gICAgdGhpcy5jb2xvciQubmV4dChjKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWNvbkNvbG9yKGM6IFRoZW1lUGFsZXR0ZSl7XG4gICAgdGhpcy5pY29uQ29sb3IkLm5leHQoYyk7XG4gIH1cbn1cbiIsIjxtYXQtcGFuZWwgW2NvbG9yXT1cImNvbG9yJCB8IGFzeW5jXCIgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGwgbGlnaHRcIj5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgZmxleC1ub25lIHAtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1jZW50ZXItY2VudGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJub3NlbGVjdCB0aXRsZS1pY29uXCIgW2NvbG9yXT1cImljb25Db2xvciQgfCBhc3luY1wiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItc3RhcnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIHBsYWNlLWNlbnRlci1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWVuZCBnYXAteHNcIj5cbiAgICAgICAgICA8c3BhbiBpZD1cInRpdGxlXCIgY2xhc3M9XCJub3NlbGVjdFwiIHN0eWxlPVwiZm9udC1zaXplOiAyOHB4XCI+e3t0aXRsZX19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIj48c21hbGw+e3t2ZXJzaW9ufX08L3NtYWxsPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc3ViVGl0bGVMaW5rXCI+e3tzdWJUaXRsZX19PC9zcGFuPlxuICAgICAgICAgIDxhICpuZ0lmPVwic3ViVGl0bGVMaW5rXCIgW2hyZWZdPVwic3ViVGl0bGVMaW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6IGluaGVyaXRcIj57e3N1YlRpdGxlfX08L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFByb2plY3QgY2hpbGQgY29udGVudCBoZXJlIC0tPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjwvbWF0LXBhbmVsPlxuIl19
@@ -13,17 +13,16 @@ import * as i7 from "@angular/material/toolbar";
13
13
  import * as i8 from "@angular/material/icon";
14
14
  import * as i9 from "@angular/material/button";
15
15
  import * as i10 from "../../navigation/toolbar/toolbar/elder-toolbar.component";
16
- import * as i11 from "@angular/flex-layout/flex";
17
- import * as i12 from "../../theme/elder-theme-applier.directive";
16
+ import * as i11 from "../../theme/elder-theme-applier.directive";
18
17
  export class ElderShellSideLeftDirective {
19
18
  constructor(templateRef, viewContainer) {
20
19
  this.templateRef = templateRef;
21
20
  this.viewContainer = viewContainer;
22
21
  }
23
22
  }
24
- ElderShellSideLeftDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellSideLeftDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
25
- ElderShellSideLeftDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ElderShellSideLeftDirective, selector: "[elderShellSideLeft], [ebsShellSideLeft]", ngImport: i0 });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellSideLeftDirective, decorators: [{
23
+ ElderShellSideLeftDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellSideLeftDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ ElderShellSideLeftDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ElderShellSideLeftDirective, selector: "[elderShellSideLeft], [ebsShellSideLeft]", ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellSideLeftDirective, decorators: [{
27
26
  type: Directive,
28
27
  args: [{ selector: '[elderShellSideLeft], [ebsShellSideLeft]' }]
29
28
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -33,9 +32,9 @@ export class ElderShellSideRightDirective {
33
32
  this.viewContainer = viewContainer;
34
33
  }
35
34
  }
36
- ElderShellSideRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellSideRightDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
37
- ElderShellSideRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ElderShellSideRightDirective, selector: "[elderShellSideRight], [ebsShellSideRight]", ngImport: i0 });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellSideRightDirective, decorators: [{
35
+ ElderShellSideRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellSideRightDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
36
+ ElderShellSideRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ElderShellSideRightDirective, selector: "[elderShellSideRight], [ebsShellSideRight]", ngImport: i0 });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellSideRightDirective, decorators: [{
39
38
  type: Directive,
40
39
  args: [{ selector: '[elderShellSideRight], [ebsShellSideRight]' }]
41
40
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -45,9 +44,9 @@ export class ElderShellCenterDirective {
45
44
  this.viewContainer = viewContainer;
46
45
  }
47
46
  }
48
- ElderShellCenterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellCenterDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
49
- ElderShellCenterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ElderShellCenterDirective, selector: "[elderShellCenter], [ebsShellCenter]", ngImport: i0 });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellCenterDirective, decorators: [{
47
+ ElderShellCenterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellCenterDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ ElderShellCenterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ElderShellCenterDirective, selector: "[elderShellCenter], [ebsShellCenter]", ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellCenterDirective, decorators: [{
51
50
  type: Directive,
52
51
  args: [{ selector: '[elderShellCenter], [ebsShellCenter]' }]
53
52
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -174,11 +173,11 @@ export class ElderShellComponent {
174
173
  }, 5);
175
174
  }
176
175
  }
177
- ElderShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellComponent, deps: [{ token: i1.ElderShellService }, { token: i2.ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: i3.ElderThemeService }], target: i0.ɵɵFactoryTarget.Component });
178
- ElderShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: ElderShellComponent, selector: "elder-shell, ebs-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "\n<mat-sidenav-container\n elderThemeApplier\n style=\"height:100%; width: 100%\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div fxFill fxLayout=\"column\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div fxLayout=\"column\" fxFill>\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div fxFill fxLayout=\"column\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div fxLayout=\"column\" fxFlex>\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div fxLayout=\"column\" fxFill>\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\">\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\" fxFlex=\"0\"\n fxLayout=\"row\" fxLayoutAlign=\"center center\"\n [color]=\"menuColor$ | async\">\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.ElderToolbarComponent, selector: "elder-toolbar, ebs-toolbar", inputs: ["color"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i12.ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellComponent, decorators: [{
176
+ ElderShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellComponent, deps: [{ token: i1.ElderShellService }, { token: i2.ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: i3.ElderThemeService }], target: i0.ɵɵFactoryTarget.Component });
177
+ ElderShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderShellComponent, selector: "elder-shell, ebs-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.ElderToolbarComponent, selector: "elder-toolbar, ebs-toolbar", inputs: ["color"] }, { kind: "directive", type: i11.ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellComponent, decorators: [{
180
179
  type: Component,
181
- args: [{ selector: 'elder-shell, ebs-shell', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<mat-sidenav-container\n elderThemeApplier\n style=\"height:100%; width: 100%\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div fxFill fxLayout=\"column\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div fxLayout=\"column\" fxFill>\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div fxFill fxLayout=\"column\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div fxLayout=\"column\" fxFlex>\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div fxLayout=\"column\" fxFill>\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\">\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\" fxFlex=\"0\"\n fxLayout=\"row\" fxLayoutAlign=\"center center\"\n [color]=\"menuColor$ | async\">\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"] }]
180
+ args: [{ selector: 'elder-shell, ebs-shell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"] }]
182
181
  }], ctorParameters: function () { return [{ type: i1.ElderShellService }, { type: i2.ElderRouteOutletDrawerService }, { type: i0.ChangeDetectorRef }, { type: i3.ElderThemeService }]; }, propDecorators: { sideNavToggleEnabled: [{
183
182
  type: Input
184
183
  }], leftSideAutoFocus: [{
@@ -204,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImpor
204
203
  }], menuIconColor: [{
205
204
  type: Input
206
205
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBTzlDLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQzs7d0hBSGxDLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsMENBQTBDLEVBQUM7O0FBUWpFLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQzs7eUhBSGxDLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsNENBQTRDLEVBQUM7O0FBUW5FLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQzs7c0hBSGxDLHlCQUF5QjswR0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsc0NBQXNDLEVBQUM7O0FBYTdELE1BQU0sT0FBTyxtQkFBbUI7SUFpRDlCOzs7O2dGQUk0RTtJQUU1RSxZQUNVLFlBQStCLEVBQy9CLG1CQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsWUFBK0I7UUFIL0IsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBK0I7UUFDbEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUF6RHpDOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXpFLHdFQUF3RTtRQUVqRSx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFHNUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRzFCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQWMzQix3QkFBbUIsR0FBRyxNQUFNLENBQUM7UUFTbkIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHekMsVUFBSyxHQUFpQixTQUFTLENBQUM7UUFFdkIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFlLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWUsU0FBUyxDQUFDLENBQUM7UUFjNUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNuRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQzVCLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ25FLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDNUIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbkUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUMzQyxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7UUFFRixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLHNCQUFzQjthQUN0QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsb0JBQW9CLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztRQUVwRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxTQUFTLENBQUMsQ0FBZTtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxhQUFhLENBQUMsQ0FBZTtRQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFVO1FBQy9CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFZO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLHlCQUF5QixDQUFDLEVBQUU7WUFDakUsK0RBQStEO1lBQy9ELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDdEM7U0FDRjtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsb0JBQW9CLENBQUMsS0FBZ0I7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBa0IsRUFBRSxFQUFVO1FBRWhELElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsVUFBeUIsQ0FBQztRQUMzQyxPQUFPLElBQUksRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQXlCLENBQUM7WUFDdEMsSUFBSSxRQUFRLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQUUsTUFBTTthQUFFO1NBQ3BDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sU0FBUztRQUNmLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7Z0hBOUxVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLCtUQW9CaEIsMkJBQTJCLDJCQUFVLFdBQVcsOEVBR2hELDRCQUE0QiwyQkFBVSxXQUFXLDJFQUdqRCx5QkFBeUIsMkJBQVUsV0FBVyw2S0M3RTlELCsxRkFzRkE7MkZEbkNhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07b05BY3hDLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZFLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJeEUsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckUsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBZXZDLEtBQUs7c0JBRFgsS0FBSztnQkFtRUssU0FBUztzQkFEbkIsS0FBSztnQkFVSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2hlbGxTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci1zaGVsbC5zZXJ2aWNlJztcbmltcG9ydCB7TWF0U2lkZW5hdn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0VsZGVyUm91dGVPdXRsZXREcmF3ZXJTZXJ2aWNlfSBmcm9tICcuLi9kcmF3ZXJzL2VsZGVyLXJvdXRlLW91dGxldC1kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7RWxkZXJUaGVtZVNlcnZpY2V9IGZyb20gJy4uLy4uL3RoZW1lL2VsZGVyLXRoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHtUaGVtZVNwZWN9IGZyb20gJy4uLy4uL3RoZW1lL3RoZW1lLXNwZWMnO1xuXG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxTaWRlTGVmdF0sIFtlYnNTaGVsbFNpZGVMZWZ0XSd9KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxTaWRlUmlnaHRdLCBbZWJzU2hlbGxTaWRlUmlnaHRdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbFNpZGVSaWdodERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxDZW50ZXJdLCBbZWJzU2hlbGxDZW50ZXJdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsLCBlYnMtc2hlbGwnLCAvLyBlYnMtKiBwcmVmaXggaXMgZGVwcmVjYXRlZCFcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc2hlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdFbGRlclNoZWxsQ29tcG9uZW50Jyk7XG5cbiAgLyoqIENvbnRyb2xzIGlmIHRoZSBTaWRlTmF2IHRvZ2dsZSBzaG91bGQgYmUgZGlzcGxheWVkLiBEZWZhdWx0OiB0cnVlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlTmF2VG9nZ2xlRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlZnRTaWRlQXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJpZ2h0U2lkZUF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbFNpZGVMZWZ0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHNpZGVDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2lkZUNvbnRlbnRSaWdodDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxDZW50ZXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgY2VudGVyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdyaWdodFNpZGVEZXRhaWwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcmlnaHRTaWRlRHJhd2VyOiBNYXRTaWRlbmF2O1xuXG4gIHB1YmxpYyByaWdodFNpZGVPdXRsZXROYW1lID0gJ3NpZGUnO1xuXG4gIHB1YmxpYyBsZWZ0U2lkZUNvbnRlbnRPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBjZW50ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBmb290ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1lbnVDb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ2FjY2VudCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVudUljb25Db2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4odW5kZWZpbmVkKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNoZWxsU2VydmljZTogRWxkZXJTaGVsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdXRsZXREcmF3ZXJTZXJ2aWNlOiBFbGRlclJvdXRlT3V0bGV0RHJhd2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogRWxkZXJUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2UuYWN0aXZlU2xvdFRlbXBsYXRlKCdoZWFkZXInKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuY2hlY2tTb29uKCkpXG4gICAgKTtcbiAgICB0aGlzLmNlbnRlclRlbXBsYXRlJCA9IHNoZWxsU2VydmljZS5hY3RpdmVTbG90VGVtcGxhdGUoJ2NlbnRlcicpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSlcbiAgICApO1xuICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUkID0gc2hlbGxTZXJ2aWNlLmFjdGl2ZVNsb3RUZW1wbGF0ZSgnZm9vdGVyJykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmNoZWNrU29vbigpKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlLnJlZ2lzdGVyT3V0bGV0RHJhd2VyKFxuICAgICAgdGhpcy5yaWdodFNpZGVPdXRsZXROYW1lLFxuICAgICAgdGhpcy5yaWdodFNpZGVEcmF3ZXJcbiAgICApO1xuXG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlXG4gICAgICAuZHJhd2VyVmlzaWJpbGl0eUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkcmF3ZXIgPT4gIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgdGhpcy5sZWZ0U2lkZUNvbnRlbnRPcGVuJCA9ICB0aGlzLnNoZWxsU2VydmljZS5uYXZpZ2F0aW9uT3BlbkNoYW5nZTtcblxuICAgIHRoaXMudGhlbWVTZXJ2aWNlLmFjdGl2ZVRoZW1lJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUodGhlbWUgPT4gdGhpcy5hZGp1c3RDb2xvcnNGb3JUaGVtZSh0aGVtZSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUNvbG9yKGM6IFRoZW1lUGFsZXR0ZSkge1xuICAgIHRoaXMubWVudUNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29sb3IkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVJY29uQ29sb3IoYzogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5tZW51SWNvbkNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51SWNvbkNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUljb25Db2xvciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjbG9zZUxlZnRTaWRlQ29udGVudCgpIHtcbiAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVOYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTaWRlTmF2KCk6IHZvaWQge1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2tkcm9wQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc2hlbGxTZXJ2aWNlLmNsb3NlU2lkZUNvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVSaWdodFNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQgJiYgdGhpcy5pc0NvbnRhaW5lZCh0YXJnZXQsICdlbGRlci1yaWdodC1zaWRlLWRldGFpbCcpKSB7XG4gICAgICAvLyBFbnN1cmUgd2Ugb25seSByZWFjdCB0byBFc2MgRXZlbnRzIHRhcmdldGVkIGF0IG91ciBzaWRlIG5hdiFcbiAgICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zaGVsbFNlcnZpY2UuY2xvc2VTaWRlQ29udGVudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYWRqdXN0Q29sb3JzRm9yVGhlbWUodGhlbWU6IFRoZW1lU3BlYyk6IHZvaWQge1xuICAgIHRoaXMubWVudUNvbG9yID0gdGhlbWU/LmRhcmsgPyB1bmRlZmluZWQgOiAnYWNjZW50JztcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IgPSB0aGVtZT8uZGFyayA/ICdwcmltYXJ5JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250YWluZWQoY2hpbGQ6IEhUTUxFbGVtZW50LCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoY2hpbGQuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgbWF4RGVwdGggPSAxO1xuICAgIGxldCBkZXB0aCA9IDA7XG4gICAgbGV0IG5vZGUgPSBjaGlsZC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5pZCA9PT0gaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKG1heERlcHRoID49ICsrZGVwdGgpIHsgYnJlYWs7IH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1Nvb24oKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDUpO1xuICB9XG59XG4iLCJcbjxtYXQtc2lkZW5hdi1jb250YWluZXJcbiAgZWxkZXJUaGVtZUFwcGxpZXJcbiAgc3R5bGU9XCJoZWlnaHQ6MTAwJTsgd2lkdGg6IDEwMCVcIlxuICAoYmFja2Ryb3BDbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiXG4+XG5cbiAgPCEtLSBMZWZ0IFNpZGUgTmF2IC0tPlxuICA8bWF0LXNpZGVuYXYgcG9zaXRpb249XCJzdGFydFwiXG4gICAgICAgICAgICAgICBtb2RlPVwib3ZlclwiXG4gICAgICAgICAgICAgICBbZml4ZWRJblZpZXdwb3J0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2F1dG9Gb2N1c109XCJsZWZ0U2lkZUF1dG9Gb2N1c1wiXG4gICAgICAgICAgICAgICBbb3BlbmVkXT1cImxlZnRTaWRlQ29udGVudE9wZW4kIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJjbG9zZUxlZnRTaWRlQ29udGVudCgpXCI+XG4gICAgPGRpdiBmeEZpbGwgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlQ29udGVudExlZnQgfHwgZmFsbGJhY2tTaWRlQ29udGVudExlZnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbiAgPCEtLSBNYWluIENvbnRlbnQgLS0+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VudGVyQ29udGVudCB8fCBmYWxsYmFja0NlbnRlckNvbnRlbnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cblxuICA8IS0tIFJpZ2h0IFNpZGUgRGV0YWlsIC0tPlxuICA8bWF0LXNpZGVuYXYgbW9kZT1cIm92ZXJcIiAjcmlnaHRTaWRlRGV0YWlsIGlkPVwiZWxkZXItcmlnaHQtc2lkZS1kZXRhaWxcIlxuICAgICAgICAgICAgICAgcG9zaXRpb249XCJlbmRcIlxuICAgICAgICAgICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPVwicmlnaHRTaWRlQXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwidHJ1ZVwiIChrZXlkb3duLmVzY2FwZSk9XCJvbkVzY2FwZVJpZ2h0U2lkZSgkZXZlbnQpXCI+XG4gICAgPGRpdiBmeEZpbGwgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlQ29udGVudFJpZ2h0IHx8IGZhbGxiYWNrU2lkZUNvbnRlbnRSaWdodDtcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtc2lkZW5hdj5cblxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaWRlQ29udGVudExlZnQ+XG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXg+XG4gICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPk5vIExlZnQgU2lkZSBDb250ZW50IERlZmluZWQhPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0PlxuICA8cm91dGVyLW91dGxldCBuYW1lPVwic2lkZVwiIGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrQ2VudGVyQ29udGVudD5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cblxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoaGVhZGVyVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRIZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBDZW50ZXIgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihjZW50ZXJUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdENlbnRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEZvb3RlciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGZvb3RlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Rm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyVGVtcGxhdGU+XG4gIDxlbGRlci10b29sYmFyIFtjb2xvcl09XCJjb2xvclwiPlxuICAgIDwhLS0gVG9vbGJhciBQcmVmaXg6IFNpZGVuYXYgVG9nZ2xlIC0tPlxuICAgIDxtYXQtdG9vbGJhciAqbmdJZj1cInNpZGVOYXZUb2dnbGVFbmFibGVkXCIgZnhGbGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICBbY29sb3JdPVwibWVudUNvbG9yJCB8IGFzeW5jXCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwibWVudUljb25Db2xvciQgfCBhc3luY1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlU2lkZU5hdigpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LXRvb2xiYXI+XG4gIDwvZWxkZXItdG9vbGJhcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbnRlclRlbXBsYXRlPlxuICA8IS0tIFByaW1hcnkgUm91dGVyIE91dGxldCAtLT5cbiAgPHJvdXRlci1vdXRsZXQgY2xhc3M9XCJyb3V0ZXItZmxleFwiPjwvcm91dGVyLW91dGxldD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZvb3RlclRlbXBsYXRlPlxuICA8IS0tIERlZmF1bHQgRm9vdGVyIGlzIGVtcHR5IC0tPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBSSxDQUFDOzt5SEFIbEMsMkJBQTJCOzZHQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSwwQ0FBMEMsRUFBQzs7QUFRakUsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FB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LHlCQUF5QiwyQkFBVSxXQUFXLDZLQzdFOUQsNDNGQXNGQTs0RkRuQ2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTtvTkFjeEMsb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkUsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl4RSxhQUFhO3NCQURuQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyRSxlQUFlO3NCQURyQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFldkMsS0FBSztzQkFEWCxLQUFLO2dCQW1FSyxTQUFTO3NCQURuQixLQUFLO2dCQVVLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTaGVsbFNlcnZpY2V9IGZyb20gJy4uL2VsZGVyLXNoZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRTaWRlbmF2fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7RWxkZXJSb3V0ZU91dGxldERyYXdlclNlcnZpY2V9IGZyb20gJy4uL2RyYXdlcnMvZWxkZXItcm91dGUtb3V0bGV0LWRyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtFbGRlclRoZW1lU2VydmljZX0gZnJvbSAnLi4vLi4vdGhlbWUvZWxkZXItdGhlbWUuc2VydmljZSc7XG5pbXBvcnQge1RoZW1lU3BlY30gZnJvbSAnLi4vLi4vdGhlbWUvdGhlbWUtc3BlYyc7XG5cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbZWxkZXJTaGVsbFNpZGVMZWZ0XSwgW2Vic1NoZWxsU2lkZUxlZnRdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbFNpZGVMZWZ0RGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbZWxkZXJTaGVsbFNpZGVSaWdodF0sIFtlYnNTaGVsbFNpZGVSaWdodF0nfSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsU2lkZVJpZ2h0RGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbZWxkZXJTaGVsbENlbnRlcl0sIFtlYnNTaGVsbENlbnRlcl0nfSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsQ2VudGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc2hlbGwsIGVicy1zaGVsbCcsIC8vIGVicy0qIHByZWZpeCBpcyBkZXByZWNhdGVkIVxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1zaGVsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0VsZGVyU2hlbGxDb21wb25lbnQnKTtcblxuICAvKiogQ29udHJvbHMgaWYgdGhlIFNpZGVOYXYgdG9nZ2xlIHNob3VsZCBiZSBkaXNwbGF5ZWQuIERlZmF1bHQ6IHRydWUgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNpZGVOYXZUb2dnbGVFbmFibGVkID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGVmdFNpZGVBdXRvRm9jdXMgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmlnaHRTaWRlQXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNoZWxsU2lkZUxlZnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2lkZUNvbnRlbnRMZWZ0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbFNpZGVSaWdodERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBzaWRlQ29udGVudFJpZ2h0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBjZW50ZXJDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3JpZ2h0U2lkZURldGFpbCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyByaWdodFNpZGVEcmF3ZXI6IE1hdFNpZGVuYXY7XG5cbiAgcHVibGljIHJpZ2h0U2lkZU91dGxldE5hbWUgPSAnc2lkZSc7XG5cbiAgcHVibGljIGxlZnRTaWRlQ29udGVudE9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG5cbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgcHVibGljIHJlYWRvbmx5IGNlbnRlclRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgcHVibGljIHJlYWRvbmx5IGZvb3RlclRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcblxuICBwdWJsaWMgcmVhZG9ubHkgbWVudUNvbG9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlbWVQYWxldHRlPignYWNjZW50Jyk7XG4gIHB1YmxpYyByZWFkb25seSBtZW51SWNvbkNvbG9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlbWVQYWxldHRlPih1bmRlZmluZWQpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2hlbGxTZXJ2aWNlOiBFbGRlclNoZWxsU2VydmljZSxcbiAgICBwcml2YXRlIG91dGxldERyYXdlclNlcnZpY2U6IEVsZGVyUm91dGVPdXRsZXREcmF3ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBFbGRlclRoZW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLmhlYWRlclRlbXBsYXRlJCA9IHNoZWxsU2VydmljZS5hY3RpdmVTbG90VGVtcGxhdGUoJ2hlYWRlcicpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSlcbiAgICApO1xuICAgIHRoaXMuY2VudGVyVGVtcGxhdGUkID0gc2hlbGxTZXJ2aWNlLmFjdGl2ZVNsb3RUZW1wbGF0ZSgnY2VudGVyJykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmNoZWNrU29vbigpKVxuICAgICk7XG4gICAgdGhpcy5mb290ZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2UuYWN0aXZlU2xvdFRlbXBsYXRlKCdmb290ZXInKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuY2hlY2tTb29uKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dGxldERyYXdlclNlcnZpY2UucmVnaXN0ZXJPdXRsZXREcmF3ZXIoXG4gICAgICB0aGlzLnJpZ2h0U2lkZU91dGxldE5hbWUsXG4gICAgICB0aGlzLnJpZ2h0U2lkZURyYXdlclxuICAgICk7XG5cbiAgICB0aGlzLm91dGxldERyYXdlclNlcnZpY2VcbiAgICAgIC5kcmF3ZXJWaXNpYmlsaXR5Q2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGRyYXdlciA9PiAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG5cbiAgICB0aGlzLmxlZnRTaWRlQ29udGVudE9wZW4kID0gIHRoaXMuc2hlbGxTZXJ2aWNlLm5hdmlnYXRpb25PcGVuQ2hhbmdlO1xuXG4gICAgdGhpcy50aGVtZVNlcnZpY2UuYWN0aXZlVGhlbWUkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZSh0aGVtZSA9PiB0aGlzLmFkanVzdENvbG9yc0ZvclRoZW1lKHRoZW1lKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZW51Q29sb3IoYzogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5tZW51Q29sb3IkLm5leHQoYyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVDb2xvcigpOiBUaGVtZVBhbGV0dGUge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb2xvciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUljb25Db2xvcihjOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IkLm5leHQoYyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVJY29uQ29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SWNvbkNvbG9yJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNsb3NlTGVmdFNpZGVDb250ZW50KCkge1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLmNsb3NlU2lkZU5hdigpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNpZGVOYXYoKTogdm9pZCB7XG4gICAgdGhpcy5zaGVsbFNlcnZpY2UudG9nZ2xlU2lkZW5hdigpO1xuICB9XG5cbiAgcHVibGljIG9uQmFja2Ryb3BDbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hlbGxTZXJ2aWNlLmlzU2lkZUNvbnRlbnRBY3RpdmUoKSkge1xuICAgICAgdGhpcy5zaGVsbFNlcnZpY2UuY2xvc2VTaWRlQ29udGVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVzY2FwZVJpZ2h0U2lkZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldCAmJiB0aGlzLmlzQ29udGFpbmVkKHRhcmdldCwgJ2VsZGVyLXJpZ2h0LXNpZGUtZGV0YWlsJykpIHtcbiAgICAgIC8vIEVuc3VyZSB3ZSBvbmx5IHJlYWN0IHRvIEVzYyBFdmVudHMgdGFyZ2V0ZWQgYXQgb3VyIHNpZGUgbmF2IVxuICAgICAgaWYgKHRoaXMuc2hlbGxTZXJ2aWNlLmlzU2lkZUNvbnRlbnRBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVDb250ZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBhZGp1c3RDb2xvcnNGb3JUaGVtZSh0aGVtZTogVGhlbWVTcGVjKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Q29sb3IgPSB0aGVtZT8uZGFyayA/IHVuZGVmaW5lZCA6ICdhY2NlbnQnO1xuICAgIHRoaXMubWVudUljb25Db2xvciA9IHRoZW1lPy5kYXJrID8gJ3ByaW1hcnknIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRhaW5lZChjaGlsZDogSFRNTEVsZW1lbnQsIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcblxuICAgIGlmIChjaGlsZC5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBtYXhEZXB0aCA9IDE7XG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICBsZXQgbm9kZSA9IGNoaWxkLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAobWF4RGVwdGggPj0gKytkZXB0aCkgeyBicmVhazsgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU29vbigpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgNSk7XG4gIH1cbn1cbiIsIjxtYXQtc2lkZW5hdi1jb250YWluZXJcbiAgZWxkZXJUaGVtZUFwcGxpZXJcbiAgY2xhc3M9XCJmdWxsLXdpZHRoXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25CYWNrZHJvcENsaWNrKCRldmVudClcIlxuPlxuXG4gIDwhLS0gTGVmdCBTaWRlIE5hdiAtLT5cbiAgPG1hdC1zaWRlbmF2IHBvc2l0aW9uPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgbW9kZT1cIm92ZXJcIlxuICAgICAgICAgICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPVwibGVmdFNpZGVBdXRvRm9jdXNcIlxuICAgICAgICAgICAgICAgW29wZW5lZF09XCJsZWZ0U2lkZUNvbnRlbnRPcGVuJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgIChjbG9zZWQpPVwiY2xvc2VMZWZ0U2lkZUNvbnRlbnQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlQ29udGVudExlZnQgfHwgZmFsbGJhY2tTaWRlQ29udGVudExlZnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbiAgPCEtLSBNYWluIENvbnRlbnQgLS0+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZW50ZXJDb250ZW50IHx8IGZhbGxiYWNrQ2VudGVyQ29udGVudDtcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuXG4gIDwhLS0gUmlnaHQgU2lkZSBEZXRhaWwgLS0+XG4gIDxtYXQtc2lkZW5hdiBtb2RlPVwib3ZlclwiICNyaWdodFNpZGVEZXRhaWwgaWQ9XCJlbGRlci1yaWdodC1zaWRlLWRldGFpbFwiXG4gICAgICAgICAgICAgICBwb3NpdGlvbj1cImVuZFwiXG4gICAgICAgICAgICAgICBbZml4ZWRJblZpZXdwb3J0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2F1dG9Gb2N1c109XCJyaWdodFNpZGVBdXRvRm9jdXNcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVDbG9zZV09XCJ0cnVlXCIgKGtleWRvd24uZXNjYXBlKT1cIm9uRXNjYXBlUmlnaHRTaWRlKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRSaWdodCB8fCBmYWxsYmFja1NpZGVDb250ZW50UmlnaHQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0PlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4XCI+XG4gICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPk5vIExlZnQgU2lkZSBDb250ZW50IERlZmluZWQhPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0PlxuICA8cm91dGVyLW91dGxldCBuYW1lPVwic2lkZVwiIGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrQ2VudGVyQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuXG4gICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihoZWFkZXJUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdEhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIENlbnRlciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGNlbnRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Q2VudGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoZm9vdGVyVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXJUZW1wbGF0ZT5cbiAgPGVsZGVyLXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCIgY2xhc3M9XCJmbGV4LW5vbmVcIiBzdHlsZT1cIm1heC13aWR0aDogMTAwJTsgbWluLXdpZHRoOiAxMDAlXCIgPlxuICAgIDwhLS0gVG9vbGJhciBQcmVmaXg6IFNpZGVuYXYgVG9nZ2xlIC0tPlxuICAgIDxtYXQtdG9vbGJhciAqbmdJZj1cInNpZGVOYXZUb2dnbGVFbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIm1lbnVDb2xvciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCIgc3R5bGU9XCJ3aWR0aDogYXV0b1wiXG4gICAgPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2NvbG9yXT1cIm1lbnVJY29uQ29sb3IkIHwgYXN5bmNcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVOYXYoKVwiPlxuICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC10b29sYmFyPlxuICA8L2VsZGVyLXRvb2xiYXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDZW50ZXJUZW1wbGF0ZT5cbiAgPCEtLSBQcmltYXJ5IFJvdXRlciBPdXRsZXQgLS0+XG4gIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJUZW1wbGF0ZT5cbiAgPCEtLSBEZWZhdWx0IEZvb3RlciBpcyBlbXB0eSAtLT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -124,9 +124,9 @@ export class ElderShellNavigationToggleComponent {
124
124
  return parts.join('/');
125
125
  }
126
126
  }
127
- ElderShellNavigationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellNavigationToggleComponent, deps: [{ token: i1.Router }, { token: i2.ElderShellService }], target: i0.ɵɵFactoryTarget.Component });
128
- ElderShellNavigationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: ElderShellNavigationToggleComponent, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderShellNavigationToggleComponent, decorators: [{
127
+ ElderShellNavigationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellNavigationToggleComponent, deps: [{ token: i1.Router }, { token: i2.ElderShellService }], target: i0.ɵɵFactoryTarget.Component });
128
+ ElderShellNavigationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderShellNavigationToggleComponent, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderShellNavigationToggleComponent, decorators: [{
130
130
  type: Component,
131
131
  args: [{ selector: 'elder-shell-nav-toggle', template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n" }]
132
132
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ElderShellService }]; }, propDecorators: { roots: [{
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImpor
134
134
  }], hide: [{
135
135
  type: Input
136
136
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsLW5hdmlnYXRpb24tdG9nZ2xlL2VsZGVyLXNoZWxsLW5hdmlnYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTy9ELE1BQU0sT0FBTyxtQ0FBbUM7SUFvQjVDOzs7O2dGQUk0RTtJQUU1RSxZQUNZLE1BQWMsRUFDZCxrQkFBcUM7UUFEckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUExQmpEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUs3QyxVQUFLLEdBQWEsRUFBRSxDQUFDO1FBR3JCLFNBQUksR0FB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QyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPLEdBQUcsQ0FBQzthQUFFO1lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsbUJBQW1CO1FBQ25CLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7O2dJQTVJUSxtQ0FBbUM7b0hBQW5DLG1DQUFtQyx3R0NYaEQsa0pBSUE7MkZET2EsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLHdCQUF3Qjs2SEFtQjNCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFbGRlclNoZWxsU2VydmljZX0gZnJvbSAnLi4vZWxkZXItc2hlbGwuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsLW5hdi10b2dnbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsTmF2aWdhdGlvblRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgICBwcml2YXRlIF9pY29uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdtZW51Jyk7XG4gICAgcHJpdmF0ZSBzdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9jdXJyZW50VXJsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb290czogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZGU6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgc2lkZUNvbnRlbnRTZXJ2aWNlOiBFbGRlclNoZWxsU2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgICAgICB0aGlzLnN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmF2RW5kID0gZXZlbnQgYXMgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VXJsID0gbmF2RW5kLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd05hdmlnYXRlQmFjaykge1xuICAgICAgICAgICAgdGhpcy5nb0JhY2sodGhpcy5fY3VycmVudFVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGljb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50VXJsICYmIHRoaXMuaGlkZSAmJiB0aGlzLmhpZGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFydE9mSGlkZGVuUm91dGUodGhpcy5fY3VycmVudFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHByaXZhdGUgdXBkYXRlSWNvbigpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuc2hvd05hdmlnYXRlQmFjayA/ICdhcnJvd19iYWNrJyA6ICdtZW51JztcbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoJ3VwZGF0aW5nIGljb24gdG8gJyArIGljb24pO1xuICAgICAgICB0aGlzLl9pY29uLm5leHQoaWNvbik7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGdldCBzaG93TmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFVybCAmJiB0aGlzLnJvb3RzICYmIHRoaXMucm9vdHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzUm9vdFJvdXRlKHRoaXMuX2N1cnJlbnRVcmwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgdG9nZ2xlU2lkZUNvbnRlbnQoKSB7XG4gICAgICAgIHRoaXMuc2lkZUNvbnRlbnRTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvQmFjayh1cmw6IHN0cmluZykge1xuICAgICAgICBjb25zdCByb290VXJsID0gdGhpcy5maW5kUm9vdCh1cmwpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm9vdFVybF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSb290Um91dGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yb290cy5maW5kKHIgPT4gciA9PT0gdXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFydE9mSGlkZGVuUm91dGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaWRlLmZpbmQociA9PiB1cmwuaW5kZXhPZihyKSA+PSAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIHRoZSBwYXJlbnQgcm9vdCB1cmwgb2YgYSBnaXZlbiB1cmw6XG4gICAgICpcbiAgICAgKiAvYXBwL215L3N1Yi9yb3V0ZVxuICAgICAqXG4gICAgICogcm9vdHM6IFsnL2FwcC9teScsICcvYXBwL2ZvbyddXG4gICAgICpcbiAgICAgKiAtPiAvYXBwL215XG4gICAgICpcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRSb290KHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSb290Um91dGUodXJsKSkgeyByZXR1cm4gdXJsOyB9XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudCh1cmwpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFJvb3QocGFyZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnLyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcmVudCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgIC8vIFJlbW92ZSBsYXN0IHBhcnRcbiAgICAgICAgcGFydHMuc3BsaWNlKHBhcnRzLmxlbmd0aCAtIDEsIDEpO1xuICAgICAgICByZXR1cm4gcGFydHMuam9pbignLycpO1xuICAgIH1cbn1cbiIsIlxuPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrKClcIiAqbmdJZj1cInNob3dDb21wb25lbnQoKVwiPlxuICA8bWF0LWljb24+e3tpY29uIHwgYXN5bmN9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsLW5hdmlnYXRpb24tdG9nZ2xlL2VsZGVyLXNoZWxsLW5hdmlnYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTy9ELE1BQU0sT0FBTyxtQ0FBbUM7SUFvQjVDOzs7O2dGQUk0RTtJQUU1RSxZQUNZLE1BQWMsRUFDZCxrQkFBcUM7UUFEckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUExQmpEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUs3QyxVQUFLLEdBQWEsRUFBRSxDQUFDO1FBR3JCLFNBQUksR0FB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QyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPLEdBQUcsQ0FBQzthQUFFO1lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsbUJBQW1CO1FBQ25CLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7O2lJQTVJUSxtQ0FBbUM7cUhBQW5DLG1DQUFtQyx3R0NYaEQsa0pBSUE7NEZET2EsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLHdCQUF3Qjs2SEFtQjNCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFbGRlclNoZWxsU2VydmljZX0gZnJvbSAnLi4vZWxkZXItc2hlbGwuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsLW5hdi10b2dnbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsTmF2aWdhdGlvblRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgICBwcml2YXRlIF9pY29uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdtZW51Jyk7XG4gICAgcHJpdmF0ZSBzdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9jdXJyZW50VXJsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb290czogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZGU6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgc2lkZUNvbnRlbnRTZXJ2aWNlOiBFbGRlclNoZWxsU2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgICAgICB0aGlzLnN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmF2RW5kID0gZXZlbnQgYXMgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VXJsID0gbmF2RW5kLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd05hdmlnYXRlQmFjaykge1xuICAgICAgICAgICAgdGhpcy5nb0JhY2sodGhpcy5fY3VycmVudFVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGljb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50VXJsICYmIHRoaXMuaGlkZSAmJiB0aGlzLmhpZGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFydE9mSGlkZGVuUm91dGUodGhpcy5fY3VycmVudFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHByaXZhdGUgdXBkYXRlSWNvbigpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuc2hvd05hdmlnYXRlQmFjayA/ICdhcnJvd19iYWNrJyA6ICdtZW51JztcbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoJ3VwZGF0aW5nIGljb24gdG8gJyArIGljb24pO1xuICAgICAgICB0aGlzLl9pY29uLm5leHQoaWNvbik7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGdldCBzaG93TmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFVybCAmJiB0aGlzLnJvb3RzICYmIHRoaXMucm9vdHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzUm9vdFJvdXRlKHRoaXMuX2N1cnJlbnRVcmwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgdG9nZ2xlU2lkZUNvbnRlbnQoKSB7XG4gICAgICAgIHRoaXMuc2lkZUNvbnRlbnRTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvQmFjayh1cmw6IHN0cmluZykge1xuICAgICAgICBjb25zdCByb290VXJsID0gdGhpcy5maW5kUm9vdCh1cmwpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm9vdFVybF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSb290Um91dGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yb290cy5maW5kKHIgPT4gciA9PT0gdXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFydE9mSGlkZGVuUm91dGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaWRlLmZpbmQociA9PiB1cmwuaW5kZXhPZihyKSA+PSAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIHRoZSBwYXJlbnQgcm9vdCB1cmwgb2YgYSBnaXZlbiB1cmw6XG4gICAgICpcbiAgICAgKiAvYXBwL215L3N1Yi9yb3V0ZVxuICAgICAqXG4gICAgICogcm9vdHM6IFsnL2FwcC9teScsICcvYXBwL2ZvbyddXG4gICAgICpcbiAgICAgKiAtPiAvYXBwL215XG4gICAgICpcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRSb290KHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSb290Um91dGUodXJsKSkgeyByZXR1cm4gdXJsOyB9XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudCh1cmwpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFJvb3QocGFyZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnLyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcmVudCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgIC8vIFJlbW92ZSBsYXN0IHBhcnRcbiAgICAgICAgcGFydHMuc3BsaWNlKHBhcnRzLmxlbmd0aCAtIDEsIDEpO1xuICAgICAgICByZXR1cm4gcGFydHMuam9pbignLycpO1xuICAgIH1cbn1cbiIsIlxuPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrKClcIiAqbmdJZj1cInNob3dDb21wb25lbnQoKVwiPlxuICA8bWF0LWljb24+e3tpY29uIHwgYXN5bmN9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
@@ -11,9 +11,9 @@ export class ElderTabDirective {
11
11
  this.tab = tab;
12
12
  }
13
13
  }
14
- ElderTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderTabDirective, deps: [{ token: i1.MatTab }], target: i0.ɵɵFactoryTarget.Directive });
15
- ElderTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ElderTabDirective, selector: "[elderTab]", inputs: { id: ["elderTab", "id"] }, ngImport: i0 });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderTabDirective, decorators: [{
14
+ ElderTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderTabDirective, deps: [{ token: i1.MatTab }], target: i0.ɵɵFactoryTarget.Directive });
15
+ ElderTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ElderTabDirective, selector: "[elderTab]", inputs: { id: ["elderTab", "id"] }, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderTabDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  selector: '[elderTab]'
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImpor
22
22
  type: Input,
23
23
  args: ['elderTab']
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxpQkFBaUI7SUFXNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1MsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFDaEIsQ0FBQzs7OEdBbkJNLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCOzZGQVVRLEVBQUU7c0JBRFIsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0VGFifSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyVGFiXSdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJEaXJlY3RpdmUge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgnZWxkZXJUYWInKVxuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFiOiBNYXRUYWJcbiAgKSB7IH1cblxuXG5cblxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxpQkFBaUI7SUFXNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1MsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFDaEIsQ0FBQzs7K0dBbkJNLGlCQUFpQjttR0FBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCOzZGQVVRLEVBQUU7c0JBRFIsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0VGFifSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyVGFiXSdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJEaXJlY3RpdmUge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgnZWxkZXJUYWInKVxuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFiOiBNYXRUYWJcbiAgKSB7IH1cblxuXG5cblxufVxuIl19
@@ -235,9 +235,9 @@ export class ElderTabGroupRoutingDirective {
235
235
  * Prefix used to indicate and index-based tab marker.
236
236
  */
237
237
  ElderTabGroupRoutingDirective.TAB_INDEX_PREFIX = 'idx:';
238
- ElderTabGroupRoutingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderTabGroupRoutingDirective, deps: [{ token: i1.ElderUrlFragmentParamsService }, { token: i2.MatTabGroup }], target: i0.ɵɵFactoryTarget.Directive });
239
- ElderTabGroupRoutingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: ElderTabGroupRoutingDirective, selector: "[elderTabGroupRouting]", inputs: { tabGroupQueryParamKey: ["elderTabGroupRouting", "tabGroupQueryParamKey"] }, queries: [{ propertyName: "tabs", predicate: MatTab }, { propertyName: "elderTabs", predicate: ElderTabDirective }], exportAs: ["elderTabGroupRouting"], ngImport: i0 });
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: ElderTabGroupRoutingDirective, decorators: [{
238
+ ElderTabGroupRoutingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderTabGroupRoutingDirective, deps: [{ token: i1.ElderUrlFragmentParamsService }, { token: i2.MatTabGroup }], target: i0.ɵɵFactoryTarget.Directive });
239
+ ElderTabGroupRoutingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ElderTabGroupRoutingDirective, selector: "[elderTabGroupRouting]", inputs: { tabGroupQueryParamKey: ["elderTabGroupRouting", "tabGroupQueryParamKey"] }, queries: [{ propertyName: "tabs", predicate: MatTab }, { propertyName: "elderTabs", predicate: ElderTabDirective }], exportAs: ["elderTabGroupRouting"], ngImport: i0 });
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderTabGroupRoutingDirective, decorators: [{
241
241
  type: Directive,
242
242
  args: [{
243
243
  selector: '[elderTabGroupRouting]',
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImpor
253
253
  type: ContentChildren,
254
254
  args: [ElderTabDirective]
255
255
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQVEsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsTUFBTSxFQUFpQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUUxRTs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sNkJBQTZCO0lBaUR4Qzs7OztnRkFJNEU7SUFFNUUsWUFDVSxxQkFBb0QsRUFDcEQsUUFBcUI7UUFEckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUErQjtRQUNwRCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBbEQvQjs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTZDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7YUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPO2FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRWhFLGdCQUFnQjthQUNiLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2IsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0IsZ0JBQWdCO2FBQ2IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDbEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsMEJBQTBCLENBQUMsTUFBc0I7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxTQUFpQjtRQUUzQyxJQUFJLE9BQWdCLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxrRUFBa0U7WUFDbEUsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0M7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLGVBQXVCO1FBRWhELElBQUksZUFBZSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFN0QsbUdBQW1HO1lBQ25HLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUUzRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCw0RUFBNEU7Z0JBQzVFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUMvQztTQUNGO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBRUgsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTCw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsS0FBSyxHQUFHLDZEQUE2RCxDQUFDLENBQUM7WUFDdkgsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUEyQjtRQUVsRCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1lBQy9CLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQy9DO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBRUgsQ0FBQztJQUVPLG9CQUFvQixDQUFDLGNBQWlDO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUVqQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQ3BDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxHQUFHLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFXO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVztRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxtQkFBbUI7UUFFekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5RSx3RUFBd0U7UUFDeEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRW5ELElBQUksWUFBWSxLQUFLLGdCQUFnQixFQUFFO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhO1FBRXBDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sbUJBQW1CO1FBRXpCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxZQUFZLENBQUMsV0FBMkI7UUFDOUMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztZQUNoRCxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBYztRQUNsQyxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQWM7UUFFckMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEYsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsTUFBTSxHQUFHLG9DQUFvQyxDQUFDLENBQUM7U0FDdEc7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBYTtRQUN4QyxPQUFPLDZCQUE2QixDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDOztBQXZTRDs7R0FFRztBQUNxQiw4Q0FBZ0IsR0FBRyxNQUFPLENBQUE7MEhBTHZDLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLHlLQWdDdkIsTUFBTSw0Q0FPTixpQkFBaUI7MkZBdkN2Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7OElBNEJRLHFCQUFxQjtzQkFEM0IsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBT3RCLElBQUk7c0JBRFYsZUFBZTt1QkFBQyxNQUFNO2dCQVFoQixTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Zmlyc3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWF0VGFiLCBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFiR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFiRGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVXJsRnJhZ21lbnRQYXJhbXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsL2VsZGVyLXVybC1mcmFnbWVudC1wYXJhbXMuc2VydmljZSc7XG5pbXBvcnQge1VybFF1ZXJ5UGFyYW1zfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsL3VybC1xdWVyeS1wYXJhbXMnO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcblxuLyoqXG4gKiBBZGRzIG91dC1vZi10aGUtYm94IHVybC1mcmFnbWVudCBiYXNlZCB0YWIgbmF2aWdhdGlvblxuICogd2l0aGluIHRoZSBtYXQtdGFiLWdyb3VwIGl0IGlzIHBsYWNlZCB1cG9uLlxuICpcbiAqIEFkZCBlbGRlclRhYiBkaXJlY3RpdmUgdG8gZWFjaCB0YWIgb2YgdGhlIGdyb3VwIHRvXG4gKiBzdXBwb3J0IGlkLWJhc2VkIHRhYiBuYXZpZ2F0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJUYWJHcm91cFJvdXRpbmddJyxcbiAgZXhwb3J0QXM6ICdlbGRlclRhYkdyb3VwUm91dGluZydcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdXNlZCB0byBpbmRpY2F0ZSBhbmQgaW5kZXgtYmFzZWQgdGFiIG1hcmtlci5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRBQl9JTkRFWF9QUkVGSVggPSAnaWR4Oic7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIGxhc3QgdGFiIG1hcmtlciAoZWl0aGVyIElEIG9yIGluZGV4KVxuICAgKiB3aGljaCBjb3VsZCBub3QgYmUgYWN0aXZhdGVkLiBUaGlzIGlzIHVzZWQgdG8gcmV0cnlcbiAgICogYWN0aXZhdGlvbiBvbmNlIGNoYW5nZXMgb24gdGFiIHN0cnVjdHVyZSBvY2N1ci5cbiAgICovXG4gIHByaXZhdGUgbGFzdEZhaWxlZFRhYk1hcmtlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdHJpbmcgdG8gdXNlIGFzIHF1ZXJ5IHBhcmFtIGtleS5cbiAgICovXG4gIEBJbnB1dCgnZWxkZXJUYWJHcm91cFJvdXRpbmcnKVxuICBwdWJsaWMgdGFiR3JvdXBRdWVyeVBhcmFtS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YWJzIHdpdGhpbiB0aGlzIG5hdmlnYXRpb24gY29udGV4dC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0VGFiKVxuICBwdWJsaWMgdGFiczogUXVlcnlMaXN0PE1hdFRhYj47XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YWJzIHdpdGhpbiB0aGlzIG5hdmlnYXRpb24gY29udGV4dFxuICAgKiBtYXJrZWQgd2l0aCB0aGUgZWxkZXJUYWJzIGRpcmVjdGl2ZS5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJEaXJlY3RpdmUpXG4gIHB1YmxpYyBlbGRlclRhYnM6IFF1ZXJ5TGlzdDxFbGRlclRhYkRpcmVjdGl2ZT47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgbWFya2VkIHdpdGggZWxkZXJUYWIgZGlyZWN0aXZlIHdoaWNoXG4gICAqIGlzIGN1cnJlbnRseSBhY3RpdmUuIE1heSBiZSBudWxsIGlmXG4gICAqIGVsZGVyVGFiIG1hcmtlcnMgYXJlIG5vdCB1c2VkLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZUVsZGVyVGFiOiBFbGRlclRhYkRpcmVjdGl2ZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyYWdtZW50UGFyYW1zU2VydmljZTogRWxkZXJVcmxGcmFnbWVudFBhcmFtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWJHcm91cDogTWF0VGFiR3JvdXBcbiAgKSB7XG4gICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZFRhYkNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5oYW5kbGVUYWJDaGFuZ2VFdmVudChldmVudCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShwYXJhbXMgPT4gdGhpcy5oYW5kbGVGcmFnbWVudFBhcmFtc0NoYW5nZShwYXJhbXMpKTtcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYnMpXG4gICAgICAudXBkYXRlZCgoKSA9PiB0aGlzLnJldHJ5TGFzdEZhaWxlZEFjdGl2YXRpb24oKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5fZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMuZWxkZXJUYWJzKVxuICAgICAgLnVwZGF0ZWQoKCkgPT4gdGhpcy5yZXRyeUxhc3RGYWlsZWRBY3RpdmF0aW9uKCkpXG4gICAgICAuYmluZFVudGlsKHRoaXMuX2Rlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUZyYWdtZW50UGFyYW0oKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUVsZGVyVGFiPy5pZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBoYW5kbGVGcmFnbWVudFBhcmFtc0NoYW5nZShwYXJhbXM6IFVybFF1ZXJ5UGFyYW1zKTogdm9pZCB7XG4gICAgY29uc3QgdGFiTWFya2VyID0gdGhpcy5nZXRUYWJNYXJrZXIocGFyYW1zKTtcblxuICAgIGlmICh0YWJNYXJrZXIpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWJCeU1hcmtlcih0YWJNYXJrZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeU1hcmtlcih0YWJNYXJrZXI6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgaWYgKHRoaXMuaXNJbmRleE1hcmtlcih0YWJNYXJrZXIpKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMucGFyc2VJbmRleE1hcmtlcih0YWJNYXJrZXIpO1xuICAgICAgc3VjY2VzcyA9IHRoaXMuYWN0aXZhdGVUYWJCeUluZGV4KGluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgbm8gaW5kZXggaXMgZ2l2ZW4gd2UgYXNzdW1lIHRoZSBtYXJrZXIgaXMgdGhlIGlkIG9mIHRoZSB0YWIuXG4gICAgICBzdWNjZXNzID0gdGhpcy5hY3RpdmF0ZVRhYkJ5SWQodGFiTWFya2VyKTtcbiAgICB9XG5cbiAgICAvLyByZW1lbWJlciB0YWIgbWFya2VyIGluIGNhc2Ugb2YgZmFpbHVyZSB0byByZXRyeSBsYXRlci5cbiAgICB0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIgPSBzdWNjZXNzID8gbnVsbCA6IHRhYk1hcmtlcjtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeUluZGV4KGluZGV4VG9BY3RpdmF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoaW5kZXhUb0FjdGl2YXRlICE9PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICB0aGlzLl9sb2cudHJhY2UoJ0FjdGl2YXRpbmcgdGFiIGJ5IGluZGV4ICcsIGluZGV4VG9BY3RpdmF0ZSk7XG5cbiAgICAgIC8vIEZpcnN0IHRyeSB0byBpZGVudGlmeSBjb3JyZXNwb25kaW5nIGVsZGVyIHRhYiwgc28gdGhhdCB3ZSBtYXkgd29yayB3aXRoIGl0cyBJRCBpbnN0ZWFkIG9mIGluZGV4LlxuICAgICAgY29uc3QgZWxkZXJUYWIgPSB0aGlzLmZpbmRFbGRlclRhYkJ5SW5kZXgoaW5kZXhUb0FjdGl2YXRlKTtcblxuICAgICAgaWYgKGVsZGVyVGFiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgbm8gZWxkZXIgdGFiIGZvdW5kLCBjbGVhciBhY3RpdmUgZWxkZXIgdGFiIHRvIGVuc3VyZSBjb25zaXN0ZW50IHN0YXRlLlxuICAgICAgICB0aGlzLmFjdGl2ZUVsZGVyVGFiID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRJbmRleChpbmRleFRvQWN0aXZhdGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeUlkKHRhYklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGRlclRhYiA9IHRoaXMuZmluZEVsZGVyVGFiQnlJZCh0YWJJZCk7XG5cbiAgICBpZiAoZWxkZXJUYWIpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyBlbGRlciB0YWIgZm91bmQsIGNsZWFyIGFjdGl2ZSBlbGRlciB0YWIgdG8gZW5zdXJlIGNvbnNpc3RlbnQgc3RhdGUuXG4gICAgICB0aGlzLmFjdGl2ZUVsZGVyVGFiID0gbnVsbDtcbiAgICAgIHRoaXMuX2xvZy53YXJuKCdDb3VsZCBub3QgZmluZCB0YWIgd2l0aCBJRCBcIicgKyB0YWJJZCArICdcIi4gRW5zdXJlIGVsZGVyVGFiIGRpcmVjdGl2ZSBpcyBhZGRlZCB0byBjb3JyZXNwb25kaW5nIHRhYi4nKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWI6IEVsZGVyVGFiRGlyZWN0aXZlKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVFbGRlclRhYiAhPT0gZWxkZXJUYWIpIHtcbiAgICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSBlbGRlclRhYjtcbiAgICAgIGNvbnN0IGluZGV4VG9BY3RpdmF0ZSA9IHRoaXMuZ2V0SW5kZXhPZlRhYihlbGRlclRhYi50YWIpO1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRJbmRleChpbmRleFRvQWN0aXZhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVGFiQ2hhbmdlRXZlbnQodGFiQ2hhbmdlRXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fbG9nLnRyYWNlKCdIYW5kbGluZyB0YWJDaGFuZ2VFdmVudDogJywgdGFiQ2hhbmdlRXZlbnQpO1xuICAgIHRoaXMubGFzdEZhaWxlZFRhYk1hcmtlciA9IG51bGw7XG4gICAgdGhpcy5hY3RpdmVFbGRlclRhYiA9IHRoaXMuZmluZEVsZGVyVGFiQnlUYWIodGFiQ2hhbmdlRXZlbnQudGFiKTtcbiAgICB0aGlzLnVwZGF0ZUZyYWdtZW50UGFyYW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlMYXN0RmFpbGVkQWN0aXZhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKSB7XG4gICAgICB0aGlzLl9sb2cudHJhY2UoJ1JldHJ5aW5nIHRvIGFjdGl2YXRlIHRhYiBieSBtYXJrZXI6JywgdGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWJCeU1hcmtlcih0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG5cbiAgICAgIGlmICh0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcbiAgICAgICAgdGhpcy5fbG9nLnRyYWNlKCdBY3RpdmF0aW5nIHRhYiBieSBpbmRleCAnLCBpbmRleCk7XG4gICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xvZy53YXJuKCdDb3VsZCBub3QgZmluZCB0YWIgd2l0aCBpbmRleCBcIicgKyBpbmRleCArICdcIi4nKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5sZW5ndGggPiBpbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVsZGVyVGFiQnlJZCh0YWJJZDogc3RyaW5nKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGRlclRhYnMuZmluZCh0ID0+IHQuaWQgPT09IHRhYklkKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVsZGVyVGFiQnlJbmRleCh0YWJJbmRleDogbnVtYmVyKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLmZpbmRUYWJCeUluZGV4KHRhYkluZGV4KTtcbiAgICBpZiAodGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kRWxkZXJUYWJCeVRhYih0YWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbGRlclRhYkJ5VGFiKHRhYjogTWF0VGFiKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGRlclRhYnMuZmluZChlbGRlclRhYiA9PiBlbGRlclRhYi50YWIgPT09IHRhYik7XG4gIH1cblxuICBwcml2YXRlIGZpbmRUYWJCeUluZGV4KHRhYkluZGV4OiBudW1iZXIpOiBNYXRUYWIgfCBudWxsIHtcbiAgICBpZiAodGhpcy50YWJzLmxlbmd0aCA+IHRhYkluZGV4KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJzLmdldCh0YWJJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kZXhPZlRhYih0YWI6IE1hdFRhYik6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnRhYnMudG9BcnJheSgpLmluZGV4T2YodGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRnJhZ21lbnRQYXJhbSgpOiB2b2lkIHtcblxuICAgIGNvbnN0IGN1cnJlbnRUYWJNYXJrZXIgPSB0aGlzLmdldFRhYk1hcmtlcih0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXMpO1xuXG4gICAgLy8gSWYgcG9zc2libGUsIHVzZSB0YWIgSUQgYXMgbWFya2VyLiBJZiBub3QsIHVzZSB0YWIgaW5kZXggYXMgZmFsbGJhY2suXG4gICAgY29uc3QgbmV3VGFiTWFya2VyID0gdGhpcy5hY3RpdmVUYWJJZFxuICAgICAgPyB0aGlzLmFjdGl2ZVRhYklkXG4gICAgICA6IHRoaXMuc2VyaWFsaXplSW5kZXhNYXJrZXIodGhpcy5hY3RpdmVUYWJJbmRleCk7XG5cbiAgICBpZiAobmV3VGFiTWFya2VyICE9PSBjdXJyZW50VGFiTWFya2VyKSB7XG4gICAgICB0aGlzLnNldEZyYWdtZW50UGFyYW0obmV3VGFiTWFya2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZyYWdtZW50UGFyYW0odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zO1xuICAgIHBhcmFtcy5zZXQodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXksIHZhbHVlKTtcblxuICAgIHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnNldFBhcmFtcyhwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVGcmFnbWVudFBhcmFtKCk6IHZvaWQge1xuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zO1xuICAgIHBhcmFtcy5yZW1vdmUodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXkpO1xuXG4gICAgdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2Uuc2V0UGFyYW1zKHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYk1hcmtlcihxdWVyeVBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBxdWVyeVBhcmFtcy5oYXModGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXkpXG4gICAgICA/IHF1ZXJ5UGFyYW1zLmdldCh0aGlzLnRhYkdyb3VwUXVlcnlQYXJhbUtleSlcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbmRleE1hcmtlcihtYXJrZXI6IHN0cmluZykge1xuICAgIHJldHVybiBtYXJrZXIgJiYgbWFya2VyLnN0YXJ0c1dpdGgoRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUuVEFCX0lOREVYX1BSRUZJWCk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlSW5kZXhNYXJrZXIobWFya2VyOiBzdHJpbmcpOiBudW1iZXIge1xuXG4gICAgaWYgKHRoaXMuaXNJbmRleE1hcmtlcihtYXJrZXIpKSB7XG4gICAgICBjb25zdCBpbmRleFN0ciA9IG1hcmtlci5yZXBsYWNlKEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVgsICcnKTtcbiAgICAgIHJldHVybiBOdW1iZXIoaW5kZXhTdHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBpbmRleCBmcm9tIG1hcmtlciAgXCInICsgbWFya2VyICsgJ1wiLiBDaGVjayB3aXRoIGlzSW5kZXhNYXJrZXIgZmlyc3QhJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemVJbmRleE1hcmtlcihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUuVEFCX0lOREVYX1BSRUZJWCArIFN0cmluZyhpbmRleCk7XG4gIH1cbn1cbiJdfQ==
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQVEsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsTUFBTSxFQUFpQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUUxRTs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sNkJBQTZCO0lBaUR4Qzs7OztnRkFJNEU7SUFFNUUsWUFDVSxxQkFBb0QsRUFDcEQsUUFBcUI7UUFEckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUErQjtRQUNwRCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBbEQvQjs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTZDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7YUFDNUIsSUFBSSxDQUFDLFNBQVMs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QUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDOztBQXZTRDs7R0FFRztBQUNxQiw4Q0FBZ0IsR0FBRyxNQUFPLENBQUE7MkhBTHZDLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHlLQWdDdkIsTUFBTSw0Q0FPTixpQkFBaUI7NEZBdkN2Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7OElBNEJRLHFCQUFxQjtzQkFEM0IsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBT3RCLElBQUk7c0JBRFYsZUFBZTt1QkFBQyxNQUFNO2dCQVFoQixTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Zmlyc3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWF0VGFiLCBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFiR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFiRGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVXJsRnJhZ21lbnRQYXJhbXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsL2VsZGVyLXVybC1mcmFnbWVudC1wYXJhbXMuc2VydmljZSc7XG5pbXBvcnQge1VybFF1ZXJ5UGFyYW1zfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsL3VybC1xdWVyeS1wYXJhbXMnO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcblxuLyoqXG4gKiBBZGRzIG91dC1vZi10aGUtYm94IHVybC1mcmFnbWVudCBiYXNlZCB0YWIgbmF2aWdhdGlvblxuICogd2l0aGluIHRoZSBtYXQtdGFiLWdyb3VwIGl0IGlzIHBsYWNlZCB1cG9uLlxuICpcbiAqIEFkZCBlbGRlclRhYiBkaXJlY3RpdmUgdG8gZWFjaCB0YWIgb2YgdGhlIGdyb3VwIHRvXG4gKiBzdXBwb3J0IGlkLWJhc2VkIHRhYiBuYXZpZ2F0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJUYWJHcm91cFJvdXRpbmddJyxcbiAgZXhwb3J0QXM6ICdlbGRlclRhYkdyb3VwUm91dGluZydcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdXNlZCB0byBpbmRpY2F0ZSBhbmQgaW5kZXgtYmFzZWQgdGFiIG1hcmtlci5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRBQl9JTkRFWF9QUkVGSVggPSAnaWR4Oic7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIGxhc3QgdGFiIG1hcmtlciAoZWl0aGVyIElEIG9yIGluZGV4KVxuICAgKiB3aGljaCBjb3VsZCBub3QgYmUgYWN0aXZhdGVkLiBUaGlzIGlzIHVzZWQgdG8gcmV0cnlcbiAgICogYWN0aXZhdGlvbiBvbmNlIGNoYW5nZXMgb24gdGFiIHN0cnVjdHVyZSBvY2N1ci5cbiAgICovXG4gIHByaXZhdGUgbGFzdEZhaWxlZFRhYk1hcmtlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdHJpbmcgdG8gdXNlIGFzIHF1ZXJ5IHBhcmFtIGtleS5cbiAgICovXG4gIEBJbnB1dCgnZWxkZXJUYWJHcm91cFJvdXRpbmcnKVxuICBwdWJsaWMgdGFiR3JvdXBRdWVyeVBhcmFtS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YWJzIHdpdGhpbiB0aGlzIG5hdmlnYXRpb24gY29udGV4dC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0VGFiKVxuICBwdWJsaWMgdGFiczogUXVlcnlMaXN0PE1hdFRhYj47XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YWJzIHdpdGhpbiB0aGlzIG5hdmlnYXRpb24gY29udGV4dFxuICAgKiBtYXJrZWQgd2l0aCB0aGUgZWxkZXJUYWJzIGRpcmVjdGl2ZS5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJEaXJlY3RpdmUpXG4gIHB1YmxpYyBlbGRlclRhYnM6IFF1ZXJ5TGlzdDxFbGRlclRhYkRpcmVjdGl2ZT47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgbWFya2VkIHdpdGggZWxkZXJUYWIgZGlyZWN0aXZlIHdoaWNoXG4gICAqIGlzIGN1cnJlbnRseSBhY3RpdmUuIE1heSBiZSBudWxsIGlmXG4gICAqIGVsZGVyVGFiIG1hcmtlcnMgYXJlIG5vdCB1c2VkLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZUVsZGVyVGFiOiBFbGRlclRhYkRpcmVjdGl2ZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyYWdtZW50UGFyYW1zU2VydmljZTogRWxkZXJVcmxGcmFnbWVudFBhcmFtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWJHcm91cDogTWF0VGFiR3JvdXBcbiAgKSB7XG4gICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZFRhYkNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5oYW5kbGVUYWJDaGFuZ2VFdmVudChldmVudCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShwYXJhbXMgPT4gdGhpcy5oYW5kbGVGcmFnbWVudFBhcmFtc0NoYW5nZShwYXJhbXMpKTtcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYnMpXG4gICAgICAudXBkYXRlZCgoKSA9PiB0aGlzLnJldHJ5TGFzdEZhaWxlZEFjdGl2YXRpb24oKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5fZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMuZWxkZXJUYWJzKVxuICAgICAgLnVwZGF0ZWQoKCkgPT4gdGhpcy5yZXRyeUxhc3RGYWlsZWRBY3RpdmF0aW9uKCkpXG4gICAgICAuYmluZFVudGlsKHRoaXMuX2Rlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUZyYWdtZW50UGFyYW0oKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUVsZGVyVGFiPy5pZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBoYW5kbGVGcmFnbWVudFBhcmFtc0NoYW5nZShwYXJhbXM6IFVybFF1ZXJ5UGFyYW1zKTogdm9pZCB7XG4gICAgY29uc3QgdGFiTWFya2VyID0gdGhpcy5nZXRUYWJNYXJrZXIocGFyYW1zKTtcblxuICAgIGlmICh0YWJNYXJrZXIpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWJCeU1hcmtlcih0YWJNYXJrZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeU1hcmtlcih0YWJNYXJrZXI6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgaWYgKHRoaXMuaXNJbmRleE1hcmtlcih0YWJNYXJrZXIpKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMucGFyc2VJbmRleE1hcmtlcih0YWJNYXJrZXIpO1xuICAgICAgc3VjY2VzcyA9IHRoaXMuYWN0aXZhdGVUYWJCeUluZGV4KGluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgbm8gaW5kZXggaXMgZ2l2ZW4gd2UgYXNzdW1lIHRoZSBtYXJrZXIgaXMgdGhlIGlkIG9mIHRoZSB0YWIuXG4gICAgICBzdWNjZXNzID0gdGhpcy5hY3RpdmF0ZVRhYkJ5SWQodGFiTWFya2VyKTtcbiAgICB9XG5cbiAgICAvLyByZW1lbWJlciB0YWIgbWFya2VyIGluIGNhc2Ugb2YgZmFpbHVyZSB0byByZXRyeSBsYXRlci5cbiAgICB0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIgPSBzdWNjZXNzID8gbnVsbCA6IHRhYk1hcmtlcjtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeUluZGV4KGluZGV4VG9BY3RpdmF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoaW5kZXhUb0FjdGl2YXRlICE9PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICB0aGlzLl9sb2cudHJhY2UoJ0FjdGl2YXRpbmcgdGFiIGJ5IGluZGV4ICcsIGluZGV4VG9BY3RpdmF0ZSk7XG5cbiAgICAgIC8vIEZpcnN0IHRyeSB0byBpZGVudGlmeSBjb3JyZXNwb25kaW5nIGVsZGVyIHRhYiwgc28gdGhhdCB3ZSBtYXkgd29yayB3aXRoIGl0cyBJRCBpbnN0ZWFkIG9mIGluZGV4LlxuICAgICAgY29uc3QgZWxkZXJUYWIgPSB0aGlzLmZpbmRFbGRlclRhYkJ5SW5kZXgoaW5kZXhUb0FjdGl2YXRlKTtcblxuICAgICAgaWYgKGVsZGVyVGFiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgbm8gZWxkZXIgdGFiIGZvdW5kLCBjbGVhciBhY3RpdmUgZWxkZXIgdGFiIHRvIGVuc3VyZSBjb25zaXN0ZW50IHN0YXRlLlxuICAgICAgICB0aGlzLmFjdGl2ZUVsZGVyVGFiID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRJbmRleChpbmRleFRvQWN0aXZhdGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeUlkKHRhYklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGRlclRhYiA9IHRoaXMuZmluZEVsZGVyVGFiQnlJZCh0YWJJZCk7XG5cbiAgICBpZiAoZWxkZXJUYWIpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyBlbGRlciB0YWIgZm91bmQsIGNsZWFyIGFjdGl2ZSBlbGRlciB0YWIgdG8gZW5zdXJlIGNvbnNpc3RlbnQgc3RhdGUuXG4gICAgICB0aGlzLmFjdGl2ZUVsZGVyVGFiID0gbnVsbDtcbiAgICAgIHRoaXMuX2xvZy53YXJuKCdDb3VsZCBub3QgZmluZCB0YWIgd2l0aCBJRCBcIicgKyB0YWJJZCArICdcIi4gRW5zdXJlIGVsZGVyVGFiIGRpcmVjdGl2ZSBpcyBhZGRlZCB0byBjb3JyZXNwb25kaW5nIHRhYi4nKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWI6IEVsZGVyVGFiRGlyZWN0aXZlKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVFbGRlclRhYiAhPT0gZWxkZXJUYWIpIHtcbiAgICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSBlbGRlclRhYjtcbiAgICAgIGNvbnN0IGluZGV4VG9BY3RpdmF0ZSA9IHRoaXMuZ2V0SW5kZXhPZlRhYihlbGRlclRhYi50YWIpO1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRJbmRleChpbmRleFRvQWN0aXZhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVGFiQ2hhbmdlRXZlbnQodGFiQ2hhbmdlRXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fbG9nLnRyYWNlKCdIYW5kbGluZyB0YWJDaGFuZ2VFdmVudDogJywgdGFiQ2hhbmdlRXZlbnQpO1xuICAgIHRoaXMubGFzdEZhaWxlZFRhYk1hcmtlciA9IG51bGw7XG4gICAgdGhpcy5hY3RpdmVFbGRlclRhYiA9IHRoaXMuZmluZEVsZGVyVGFiQnlUYWIodGFiQ2hhbmdlRXZlbnQudGFiKTtcbiAgICB0aGlzLnVwZGF0ZUZyYWdtZW50UGFyYW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlMYXN0RmFpbGVkQWN0aXZhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKSB7XG4gICAgICB0aGlzLl9sb2cudHJhY2UoJ1JldHJ5aW5nIHRvIGFjdGl2YXRlIHRhYiBieSBtYXJrZXI6JywgdGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWJCeU1hcmtlcih0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG5cbiAgICAgIGlmICh0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcbiAgICAgICAgdGhpcy5fbG9nLnRyYWNlKCdBY3RpdmF0aW5nIHRhYiBieSBpbmRleCAnLCBpbmRleCk7XG4gICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xvZy53YXJuKCdDb3VsZCBub3QgZmluZCB0YWIgd2l0aCBpbmRleCBcIicgKyBpbmRleCArICdcIi4nKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5sZW5ndGggPiBpbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVsZGVyVGFiQnlJZCh0YWJJZDogc3RyaW5nKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGRlclRhYnMuZmluZCh0ID0+IHQuaWQgPT09IHRhYklkKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVsZGVyVGFiQnlJbmRleCh0YWJJbmRleDogbnVtYmVyKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLmZpbmRUYWJCeUluZGV4KHRhYkluZGV4KTtcbiAgICBpZiAodGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kRWxkZXJUYWJCeVRhYih0YWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbGRlclRhYkJ5VGFiKHRhYjogTWF0VGFiKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGRlclRhYnMuZmluZChlbGRlclRhYiA9PiBlbGRlclRhYi50YWIgPT09IHRhYik7XG4gIH1cblxuICBwcml2YXRlIGZpbmRUYWJCeUluZGV4KHRhYkluZGV4OiBudW1iZXIpOiBNYXRUYWIgfCBudWxsIHtcbiAgICBpZiAodGhpcy50YWJzLmxlbmd0aCA+IHRhYkluZGV4KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJzLmdldCh0YWJJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kZXhPZlRhYih0YWI6IE1hdFRhYik6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnRhYnMudG9BcnJheSgpLmluZGV4T2YodGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRnJhZ21lbnRQYXJhbSgpOiB2b2lkIHtcblxuICAgIGNvbnN0IGN1cnJlbnRUYWJNYXJrZXIgPSB0aGlzLmdldFRhYk1hcmtlcih0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXMpO1xuXG4gICAgLy8gSWYgcG9zc2libGUsIHVzZSB0YWIgSUQgYXMgbWFya2VyLiBJZiBub3QsIHVzZSB0YWIgaW5kZXggYXMgZmFsbGJhY2suXG4gICAgY29uc3QgbmV3VGFiTWFya2VyID0gdGhpcy5hY3RpdmVUYWJJZFxuICAgICAgPyB0aGlzLmFjdGl2ZVRhYklkXG4gICAgICA6IHRoaXMuc2VyaWFsaXplSW5kZXhNYXJrZXIodGhpcy5hY3RpdmVUYWJJbmRleCk7XG5cbiAgICBpZiAobmV3VGFiTWFya2VyICE9PSBjdXJyZW50VGFiTWFya2VyKSB7XG4gICAgICB0aGlzLnNldEZyYWdtZW50UGFyYW0obmV3VGFiTWFya2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZyYWdtZW50UGFyYW0odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zO1xuICAgIHBhcmFtcy5zZXQodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXksIHZhbHVlKTtcblxuICAgIHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnNldFBhcmFtcyhwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVGcmFnbWVudFBhcmFtKCk6IHZvaWQge1xuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zO1xuICAgIHBhcmFtcy5yZW1vdmUodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXkpO1xuXG4gICAgdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2Uuc2V0UGFyYW1zKHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYk1hcmtlcihxdWVyeVBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBxdWVyeVBhcmFtcy5oYXModGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXkpXG4gICAgICA/IHF1ZXJ5UGFyYW1zLmdldCh0aGlzLnRhYkdyb3VwUXVlcnlQYXJhbUtleSlcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbmRleE1hcmtlcihtYXJrZXI6IHN0cmluZykge1xuICAgIHJldHVybiBtYXJrZXIgJiYgbWFya2VyLnN0YXJ0c1dpdGgoRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUuVEFCX0lOREVYX1BSRUZJWCk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlSW5kZXhNYXJrZXIobWFya2VyOiBzdHJpbmcpOiBudW1iZXIge1xuXG4gICAgaWYgKHRoaXMuaXNJbmRleE1hcmtlcihtYXJrZXIpKSB7XG4gICAgICBjb25zdCBpbmRleFN0ciA9IG1hcmtlci5yZXBsYWNlKEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVgsICcnKTtcbiAgICAgIHJldHVybiBOdW1iZXIoaW5kZXhTdHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBpbmRleCBmcm9tIG1hcmtlciAgXCInICsgbWFya2VyICsgJ1wiLiBDaGVjayB3aXRoIGlzSW5kZXhNYXJrZXIgZmlyc3QhJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemVJbmRleE1hcmtlcihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUuVEFCX0lOREVYX1BSRUZJWCArIFN0cmluZyhpbmRleCk7XG4gIH1cbn1cbiJdfQ==