@eui/components 17.0.0-next.4 → 17.0.0-next.6

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 (557) hide show
  1. package/directives/eui-clearable.directive.d.ts.map +1 -1
  2. package/directives/eui-tooltip/eui-tooltip.directive.d.ts.map +1 -1
  3. package/esm2022/directives/eui-clearable.directive.mjs +8 -9
  4. package/esm2022/directives/eui-has-permission.directive.mjs +7 -7
  5. package/esm2022/directives/eui-loading.directive.mjs +3 -3
  6. package/esm2022/directives/eui-maxlength.directive.mjs +7 -7
  7. package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
  8. package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +4 -5
  9. package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
  10. package/esm2022/directives/eui-scroll-handler.directive.mjs +10 -10
  11. package/esm2022/directives/eui-smooth-scroll.directive.mjs +10 -10
  12. package/esm2022/directives/eui-template.directive.mjs +7 -7
  13. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
  14. package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +58 -26
  15. package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
  16. package/esm2022/eui-alert/eui-alert.component.mjs +9 -8
  17. package/esm2022/eui-all/eui-all.module.mjs +9 -10
  18. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +31 -15
  19. package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
  20. package/esm2022/eui-autocomplete/models/eui-autocomplete-item.model.mjs +2 -1
  21. package/esm2022/eui-badge/eui-badge.component.mjs +8 -8
  22. package/esm2022/eui-block-content/eui-block-content.component.mjs +5 -5
  23. package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
  24. package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
  25. package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
  26. package/esm2022/eui-button/eui-button.component.mjs +10 -10
  27. package/esm2022/eui-button-group/eui-button-group.component.mjs +7 -7
  28. package/esm2022/eui-buttons/eui-buttons.component.mjs +18 -18
  29. package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
  30. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
  31. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
  32. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
  33. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
  34. package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
  35. package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
  36. package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
  37. package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
  38. package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
  39. package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
  40. package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
  41. package/esm2022/eui-card/eui-card.component.mjs +3 -3
  42. package/esm2022/eui-card/eui-card.module.mjs +4 -4
  43. package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
  44. package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
  45. package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
  46. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +9 -9
  47. package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
  48. package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
  49. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +15 -15
  50. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +9 -8
  51. package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +19 -6
  52. package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
  53. package/esm2022/eui-datepicker/eui-datepicker.component.mjs +25 -25
  54. package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
  55. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
  56. package/esm2022/eui-dialog/eui-dialog.component.mjs +10 -10
  57. package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
  58. package/esm2022/eui-dialog/services/eui-dialog.service.mjs +5 -5
  59. package/esm2022/eui-dimmer/dimmer.component.mjs +5 -5
  60. package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
  61. package/esm2022/eui-disable-content/eui-disable-content.component.mjs +11 -11
  62. package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +5 -5
  63. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
  64. package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
  65. package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
  66. package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +10 -8
  67. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
  68. package/esm2022/eui-dropdown/eui-dropdown.module.mjs +8 -8
  69. package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
  70. package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
  71. package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
  72. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +9 -9
  73. package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
  74. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +32 -18
  75. package/esm2022/eui-file-upload/eui-file-upload.module.mjs +6 -17
  76. package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +6 -4
  77. package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
  78. package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
  79. package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +4 -4
  80. package/esm2022/eui-file-upload/utils/eui-file-upload.validators.mjs +1 -1
  81. package/esm2022/eui-file-upload/utils/mime-types.mjs +3 -1
  82. package/esm2022/eui-growl/eui-growl.component.mjs +4 -4
  83. package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
  84. package/esm2022/eui-growl/index.mjs +1 -3
  85. package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
  86. package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
  87. package/esm2022/eui-icon/eui-icon.component.mjs +3 -3
  88. package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
  89. package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
  90. package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
  91. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +4 -4
  92. package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
  93. package/esm2022/eui-input-group/eui-input-group.component.mjs +4 -4
  94. package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
  95. package/esm2022/eui-input-number/eui-input-number.component.mjs +4 -4
  96. package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
  97. package/esm2022/eui-input-number/eui-number-control.directive.mjs +4 -4
  98. package/esm2022/eui-input-radio/eui-input-radio.component.mjs +9 -11
  99. package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
  100. package/esm2022/eui-input-text/eui-input-text.component.mjs +5 -5
  101. package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
  102. package/esm2022/eui-label/eui-label.component.mjs +4 -4
  103. package/esm2022/eui-label/eui-label.module.mjs +4 -4
  104. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +4 -4
  105. package/esm2022/eui-list/eui-list.component.mjs +3 -3
  106. package/esm2022/eui-list/eui-list.module.mjs +4 -4
  107. package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
  108. package/esm2022/eui-menu/eui-menu-item.component.mjs +4 -4
  109. package/esm2022/eui-menu/eui-menu.component.mjs +5 -5
  110. package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
  111. package/esm2022/eui-message-box/eui-message-box.component.mjs +9 -7
  112. package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
  113. package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
  114. package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +5 -5
  115. package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +5 -5
  116. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +38 -0
  117. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +5 -5
  118. package/esm2022/eui-overlay/eui-overlay.component.mjs +30 -12
  119. package/esm2022/eui-overlay/index.mjs +2 -1
  120. package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
  121. package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +23 -23
  122. package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
  123. package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
  124. package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
  125. package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +9 -9
  126. package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
  127. package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
  128. package/esm2022/eui-page/eui-page.component.mjs +3 -3
  129. package/esm2022/eui-page/eui-page.module.mjs +4 -4
  130. package/esm2022/eui-paginator/eui-paginator.component.mjs +11 -9
  131. package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
  132. package/esm2022/eui-picker/eui-picker.component.mjs +8 -6
  133. package/esm2022/eui-picker/eui-picker.module.mjs +4 -4
  134. package/esm2022/eui-picker/modal-picker/eui-modal-picker.component.mjs +5 -5
  135. package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +58 -0
  136. package/esm2022/eui-popover/eui-popover.component.mjs +25 -19
  137. package/esm2022/eui-popover/eui-popover.module.mjs +7 -6
  138. package/esm2022/eui-popover/models/eui-popover-position.model.mjs +18 -0
  139. package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
  140. package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
  141. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +7 -7
  142. package/esm2022/eui-select/eui-select-control.directive.mjs +4 -4
  143. package/esm2022/eui-select/eui-select-multiple.directive.mjs +10 -5
  144. package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +4 -4
  145. package/esm2022/eui-select/eui-select-option.directive.mjs +5 -4
  146. package/esm2022/eui-select/eui-select.component.mjs +5 -5
  147. package/esm2022/eui-select/eui-select.module.mjs +4 -4
  148. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +6 -4
  149. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
  150. package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +4 -4
  151. package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
  152. package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
  153. package/esm2022/eui-table/eui-table.component.mjs +76 -29
  154. package/esm2022/eui-table/eui-table.module.mjs +4 -4
  155. package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
  156. package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
  157. package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
  158. package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
  159. package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
  160. package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
  161. package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
  162. package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +4 -4
  163. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
  164. package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
  165. package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +6 -6
  166. package/esm2022/eui-tabs/eui-tabs.component.mjs +7 -7
  167. package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
  168. package/esm2022/eui-textarea/auto-resize.directive.mjs +4 -4
  169. package/esm2022/eui-textarea/eui-textarea.component.mjs +5 -5
  170. package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
  171. package/esm2022/eui-timebar/eui-timebar-item.model.mjs +3 -1
  172. package/esm2022/eui-timebar/eui-timebar.component.mjs +10 -10
  173. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
  174. package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
  175. package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
  176. package/esm2022/eui-timepicker/eui-timepicker.component.mjs +3 -3
  177. package/esm2022/eui-timepicker/eui-timepicker.module.mjs +11 -11
  178. package/esm2022/eui-timepicker/models/eui-date-time-picker.config.model.mjs +1 -1
  179. package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +8 -8
  180. package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +8 -8
  181. package/esm2022/eui-tree/eui-tree-helper.mjs +1 -1
  182. package/esm2022/eui-tree/eui-tree.component.mjs +29 -11
  183. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
  184. package/esm2022/eui-wizard/eui-wizard.component.mjs +16 -14
  185. package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
  186. package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
  187. package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
  188. package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
  189. package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
  190. package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
  191. package/esm2022/externals/eui-editor/eui-editor.component.mjs +8 -8
  192. package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
  193. package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
  194. package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
  195. package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
  196. package/esm2022/externals/quill/quill-editor.component.mjs +3 -3
  197. package/esm2022/externals/quill/quill.module.mjs +4 -4
  198. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +5 -5
  199. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
  200. package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
  201. package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
  202. package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +5 -5
  203. package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
  204. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
  205. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
  206. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +5 -5
  207. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +5 -5
  208. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +5 -5
  209. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +6 -5
  210. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +5 -5
  211. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
  212. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +5 -5
  213. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
  214. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +6 -5
  215. package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
  216. package/esm2022/layout/eui-app/eui-app.component.mjs +18 -18
  217. package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
  218. package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +11 -5
  219. package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
  220. package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
  221. package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +8 -8
  222. package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +6 -6
  223. package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
  224. package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
  225. package/esm2022/layout/eui-header/header-app/header-app.component.mjs +14 -14
  226. package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +5 -5
  227. package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +7 -11
  228. package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +5 -5
  229. package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +5 -5
  230. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +5 -5
  231. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
  232. package/esm2022/layout/eui-header/header.component.mjs +3 -3
  233. package/esm2022/layout/eui-header/header.module.mjs +4 -4
  234. package/esm2022/layout/eui-language-selector/language-selector.component.mjs +5 -5
  235. package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
  236. package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +3 -3
  237. package/esm2022/layout/eui-layout.module.mjs +10 -5
  238. package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +5 -5
  239. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
  240. package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
  241. package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +57 -0
  242. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +244 -0
  243. package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +25 -0
  244. package/esm2022/layout/eui-notifications-v2/index.mjs +4 -0
  245. package/esm2022/layout/eui-search/search.component.mjs +3 -3
  246. package/esm2022/layout/eui-search/search.module.mjs +4 -4
  247. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +5 -5
  248. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
  249. package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
  250. package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
  251. package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
  252. package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
  253. package/esm2022/layout/eui-toolbar/toolbar-item-notifications/toolbar-item-notifications.component.mjs +3 -3
  254. package/esm2022/layout/eui-toolbar/toolbar-item-search/toolbar-item-search.component.mjs +3 -3
  255. package/esm2022/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.mjs +3 -3
  256. package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
  257. package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
  258. package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +5 -5
  259. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +6 -6
  260. package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
  261. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +7 -6
  262. package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
  263. package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
  264. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +15 -6
  265. package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
  266. package/esm2022/layout/index.mjs +2 -1
  267. package/esm2022/pipes/eui-is-empty.pipe.mjs +7 -7
  268. package/esm2022/pipes/eui-truncate.pipe.mjs +7 -7
  269. package/esm2022/shared/base/base-states.directive.mjs +3 -3
  270. package/esm2022/shared/base/base.directive.mjs +3 -3
  271. package/esm2022/shared/base/mixins/index.mjs +1 -1
  272. package/esm2022/shared/eui-common-header/common-header.component.mjs +7 -7
  273. package/esm2022/shared/eui-expand-content/eui-expand-content.component.mjs +7 -7
  274. package/esm2022/shared/input.directive.mjs +4 -4
  275. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  276. package/eui-all/eui-all.module.d.ts +19 -20
  277. package/eui-all/eui-all.module.d.ts.map +1 -1
  278. package/eui-autocomplete/eui-autocomplete.component.d.ts +12 -3
  279. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  280. package/eui-autocomplete/models/eui-autocomplete-item.model.d.ts +1 -0
  281. package/eui-autocomplete/models/eui-autocomplete-item.model.d.ts.map +1 -1
  282. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  283. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  284. package/eui-button/eui-button.component.d.ts +1 -1
  285. package/eui-button/eui-button.component.d.ts.map +1 -1
  286. package/eui-buttons/eui-buttons.component.d.ts +5 -5
  287. package/eui-buttons/eui-buttons.component.d.ts.map +1 -1
  288. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  289. package/eui-dashboard-button/eui-dashboard-button.component.d.ts.map +1 -1
  290. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  291. package/eui-date-range-selector/eui-date-range-selector.component.d.ts +5 -1
  292. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  293. package/eui-datepicker/eui-datepicker.component.d.ts +3 -3
  294. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  295. package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
  296. package/eui-dialog/services/eui-dialog.service.d.ts.map +1 -1
  297. package/eui-dimmer/dimmer.component.d.ts +3 -3
  298. package/eui-dimmer/dimmer.component.d.ts.map +1 -1
  299. package/eui-disable-content/eui-disable-content.component.d.ts +2 -2
  300. package/eui-disable-content/eui-disable-content.component.d.ts.map +1 -1
  301. package/eui-dropdown/dropdown-item/eui-dropdown-item.component.d.ts.map +1 -1
  302. package/eui-file-upload/eui-file-upload.component.d.ts +8 -5
  303. package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
  304. package/eui-file-upload/eui-file-upload.module.d.ts +5 -6
  305. package/eui-file-upload/eui-file-upload.module.d.ts.map +1 -1
  306. package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
  307. package/eui-file-upload/utils/eui-file-upload.validators.d.ts.map +1 -1
  308. package/eui-file-upload/utils/mime-types.d.ts.map +1 -1
  309. package/eui-growl/eui-growl.component.d.ts +1 -1
  310. package/eui-growl/eui-growl.component.d.ts.map +1 -1
  311. package/eui-growl/index.d.ts +0 -2
  312. package/eui-growl/index.d.ts.map +1 -1
  313. package/eui-input-checkbox/eui-input-checkbox.component.d.ts +1 -1
  314. package/eui-input-checkbox/eui-input-checkbox.component.d.ts.map +1 -1
  315. package/eui-input-number/eui-number-control.directive.d.ts.map +1 -1
  316. package/eui-input-radio/eui-input-radio.component.d.ts +2 -1
  317. package/eui-input-radio/eui-input-radio.component.d.ts.map +1 -1
  318. package/eui-input-text/eui-input-text.component.d.ts +1 -1
  319. package/eui-input-text/eui-input-text.component.d.ts.map +1 -1
  320. package/eui-label/eui-label.component.d.ts.map +1 -1
  321. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  322. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  323. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  324. package/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.d.ts.map +1 -1
  325. package/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.d.ts.map +1 -1
  326. package/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.d.ts +15 -0
  327. package/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.d.ts.map +1 -0
  328. package/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.d.ts +1 -1
  329. package/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.d.ts.map +1 -1
  330. package/eui-overlay/eui-overlay.component.d.ts +4 -2
  331. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  332. package/eui-overlay/index.d.ts +1 -0
  333. package/eui-overlay/index.d.ts.map +1 -1
  334. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts +3 -3
  335. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
  336. package/eui-paginator/eui-paginator.component.d.ts +5 -3
  337. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  338. package/eui-picker/eui-picker.component.d.ts.map +1 -1
  339. package/eui-picker/modal-picker/eui-modal-picker.component.d.ts.map +1 -1
  340. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts +18 -0
  341. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts.map +1 -0
  342. package/eui-popover/eui-popover.component.d.ts +7 -5
  343. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  344. package/eui-popover/eui-popover.module.d.ts +8 -7
  345. package/eui-popover/eui-popover.module.d.ts.map +1 -1
  346. package/eui-popover/models/eui-popover-position.model.d.ts +8 -0
  347. package/eui-popover/models/eui-popover-position.model.d.ts.map +1 -0
  348. package/eui-select/eui-select-multiple.directive.d.ts +1 -1
  349. package/eui-select/eui-select-multiple.directive.d.ts.map +1 -1
  350. package/eui-select/eui-select-mutli-option.directive.d.ts.map +1 -1
  351. package/eui-select/eui-select-option.directive.d.ts.map +1 -1
  352. package/eui-select/eui-select.component.d.ts +1 -1
  353. package/eui-select/eui-select.component.d.ts.map +1 -1
  354. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  355. package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
  356. package/eui-table/eui-table.component.d.ts.map +1 -1
  357. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
  358. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  359. package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
  360. package/eui-textarea/eui-textarea.component.d.ts +3 -3
  361. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  362. package/eui-timebar/eui-timebar-item.model.d.ts +2 -2
  363. package/eui-timebar/eui-timebar-item.model.d.ts.map +1 -1
  364. package/eui-timebar/eui-timebar.component.d.ts +2 -2
  365. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  366. package/eui-timepicker/eui-timepicker.module.d.ts +1 -1
  367. package/eui-timepicker/eui-timepicker.module.d.ts.map +1 -1
  368. package/eui-timepicker/models/eui-date-time-picker.config.model.d.ts +1 -10
  369. package/eui-timepicker/models/eui-date-time-picker.config.model.d.ts.map +1 -1
  370. package/eui-tree/eui-dropdown-tree.directive.d.ts.map +1 -1
  371. package/eui-tree/eui-tree-form-control.directive.d.ts.map +1 -1
  372. package/eui-tree/eui-tree.component.d.ts +4 -1
  373. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  374. package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
  375. package/fesm2022/eui-components-directives.mjs +125 -95
  376. package/fesm2022/eui-components-directives.mjs.map +1 -1
  377. package/fesm2022/eui-components-eui-alert.mjs +8 -7
  378. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  379. package/fesm2022/eui-components-eui-all.mjs +8 -9
  380. package/fesm2022/eui-components-eui-all.mjs.map +1 -1
  381. package/fesm2022/eui-components-eui-autocomplete.mjs +35 -18
  382. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  383. package/fesm2022/eui-components-eui-badge.mjs +7 -7
  384. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  385. package/fesm2022/eui-components-eui-block-content.mjs +8 -8
  386. package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
  387. package/fesm2022/eui-components-eui-block-document.mjs +7 -7
  388. package/fesm2022/eui-components-eui-button-group.mjs +7 -7
  389. package/fesm2022/eui-components-eui-button.mjs +9 -9
  390. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  391. package/fesm2022/eui-components-eui-buttons.mjs +17 -17
  392. package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
  393. package/fesm2022/eui-components-eui-card.mjs +46 -46
  394. package/fesm2022/eui-components-eui-chip-list.mjs +15 -15
  395. package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
  396. package/fesm2022/eui-components-eui-chip.mjs +7 -7
  397. package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
  398. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  399. package/fesm2022/eui-components-eui-dashboard-card.mjs +8 -7
  400. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  401. package/fesm2022/eui-components-eui-date-range-selector.mjs +22 -9
  402. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  403. package/fesm2022/eui-components-eui-datepicker.mjs +28 -28
  404. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  405. package/fesm2022/eui-components-eui-dialog.mjs +20 -20
  406. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  407. package/fesm2022/eui-components-eui-dimmer.mjs +8 -8
  408. package/fesm2022/eui-components-eui-dimmer.mjs.map +1 -1
  409. package/fesm2022/eui-components-eui-disable-content.mjs +10 -10
  410. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  411. package/fesm2022/eui-components-eui-discussion-thread.mjs +11 -11
  412. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  413. package/fesm2022/eui-components-eui-dropdown.mjs +26 -24
  414. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  415. package/fesm2022/eui-components-eui-feedback-message.mjs +7 -7
  416. package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
  417. package/fesm2022/eui-components-eui-file-upload.mjs +52 -153
  418. package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
  419. package/fesm2022/eui-components-eui-growl.mjs +9 -86
  420. package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
  421. package/fesm2022/eui-components-eui-icon-toggle.mjs +7 -7
  422. package/fesm2022/eui-components-eui-icon.mjs +13 -13
  423. package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
  424. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  425. package/fesm2022/eui-components-eui-input-group.mjs +8 -8
  426. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  427. package/fesm2022/eui-components-eui-input-number.mjs +11 -11
  428. package/fesm2022/eui-components-eui-input-number.mjs.map +1 -1
  429. package/fesm2022/eui-components-eui-input-radio.mjs +12 -14
  430. package/fesm2022/eui-components-eui-input-radio.mjs.map +1 -1
  431. package/fesm2022/eui-components-eui-input-text.mjs +8 -8
  432. package/fesm2022/eui-components-eui-input-text.mjs.map +1 -1
  433. package/fesm2022/eui-components-eui-label.mjs +7 -7
  434. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  435. package/fesm2022/eui-components-eui-list.mjs +13 -13
  436. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  437. package/fesm2022/eui-components-eui-menu.mjs +12 -12
  438. package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
  439. package/fesm2022/eui-components-eui-message-box.mjs +15 -13
  440. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  441. package/fesm2022/eui-components-eui-overlay.mjs +76 -25
  442. package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
  443. package/fesm2022/eui-components-eui-page.mjs +56 -56
  444. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  445. package/fesm2022/eui-components-eui-paginator.mjs +15 -14
  446. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  447. package/fesm2022/eui-components-eui-picker.mjs +15 -13
  448. package/fesm2022/eui-components-eui-picker.mjs.map +1 -1
  449. package/fesm2022/eui-components-eui-popover.mjs +104 -28
  450. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  451. package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
  452. package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
  453. package/fesm2022/eui-components-eui-select.mjs +27 -21
  454. package/fesm2022/eui-components-eui-select.mjs.map +1 -1
  455. package/fesm2022/eui-components-eui-sidebar-menu.mjs +9 -7
  456. package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
  457. package/fesm2022/eui-components-eui-slide-toggle.mjs +7 -7
  458. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  459. package/fesm2022/eui-components-eui-table.mjs +106 -59
  460. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  461. package/fesm2022/eui-components-eui-tabs.mjs +22 -22
  462. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  463. package/fesm2022/eui-components-eui-textarea.mjs +11 -11
  464. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  465. package/fesm2022/eui-components-eui-timebar.mjs +11 -9
  466. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  467. package/fesm2022/eui-components-eui-timeline.mjs +10 -10
  468. package/fesm2022/eui-components-eui-timepicker.mjs +13 -12
  469. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  470. package/fesm2022/eui-components-eui-tree.mjs +42 -24
  471. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  472. package/fesm2022/eui-components-eui-wizard.mjs +25 -23
  473. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  474. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  475. package/fesm2022/eui-components-externals-eui-editor.mjs +27 -27
  476. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  477. package/fesm2022/eui-components-externals-quill.mjs +7 -7
  478. package/fesm2022/eui-components-layout.mjs +579 -263
  479. package/fesm2022/eui-components-layout.mjs.map +1 -1
  480. package/fesm2022/eui-components-pipes.mjs +14 -14
  481. package/fesm2022/eui-components-shared-base.mjs +6 -6
  482. package/fesm2022/eui-components-shared-base.mjs.map +1 -1
  483. package/fesm2022/eui-components-shared.mjs +17 -17
  484. package/fesm2022/eui-components-shared.mjs.map +1 -1
  485. package/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.d.ts +2 -2
  486. package/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.d.ts.map +1 -1
  487. package/layout/eui-app/eui-app-header/header.component.d.ts +3 -3
  488. package/layout/eui-app/eui-app-header/header.component.d.ts.map +1 -1
  489. package/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.d.ts +2 -2
  490. package/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.d.ts.map +1 -1
  491. package/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.d.ts +2 -2
  492. package/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.d.ts.map +1 -1
  493. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts +3 -3
  494. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
  495. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts +3 -3
  496. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  497. package/layout/eui-app/eui-app-sidebar/sidebar.component.d.ts +3 -3
  498. package/layout/eui-app/eui-app-sidebar/sidebar.component.d.ts.map +1 -1
  499. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts +3 -3
  500. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts.map +1 -1
  501. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts +3 -3
  502. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
  503. package/layout/eui-app/eui-app.component.d.ts +4 -4
  504. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  505. package/layout/eui-breadcrumb/breadcrumb.component.d.ts +2 -2
  506. package/layout/eui-breadcrumb/breadcrumb.component.d.ts.map +1 -1
  507. package/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.d.ts.map +1 -1
  508. package/layout/eui-breadcrumb/item/breadcrumb-item.component.d.ts +1 -1
  509. package/layout/eui-breadcrumb/item/breadcrumb-item.component.d.ts.map +1 -1
  510. package/layout/eui-header/header-app/header-app.component.d.ts +3 -3
  511. package/layout/eui-header/header-app/header-app.component.d.ts.map +1 -1
  512. package/layout/eui-header/header-app-name/header-app-name.component.d.ts +3 -3
  513. package/layout/eui-header/header-app-name/header-app-name.component.d.ts.map +1 -1
  514. package/layout/eui-header/header-app-name-logo/header-app-name-logo.component.d.ts +2 -4
  515. package/layout/eui-header/header-app-name-logo/header-app-name-logo.component.d.ts.map +1 -1
  516. package/layout/eui-header/header-app-subtitle/header-app-subtitle.component.d.ts +3 -3
  517. package/layout/eui-header/header-app-subtitle/header-app-subtitle.component.d.ts.map +1 -1
  518. package/layout/eui-header/header-environment/header-environment.component.d.ts +2 -2
  519. package/layout/eui-header/header-environment/header-environment.component.d.ts.map +1 -1
  520. package/layout/eui-header/header-logo/header-logo.component.d.ts +2 -2
  521. package/layout/eui-header/header-logo/header-logo.component.d.ts.map +1 -1
  522. package/layout/eui-language-selector/language-selector.component.d.ts +3 -3
  523. package/layout/eui-language-selector/language-selector.component.d.ts.map +1 -1
  524. package/layout/eui-layout.module.d.ts +10 -9
  525. package/layout/eui-layout.module.d.ts.map +1 -1
  526. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts +21 -0
  527. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts.map +1 -0
  528. package/layout/eui-notifications-v2/eui-notifications.component.d.ts +78 -0
  529. package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -0
  530. package/layout/eui-notifications-v2/eui-notifications.module.d.ts +16 -0
  531. package/layout/eui-notifications-v2/eui-notifications.module.d.ts.map +1 -0
  532. package/layout/eui-notifications-v2/index.d.ts +4 -0
  533. package/layout/eui-notifications-v2/index.d.ts.map +1 -0
  534. package/layout/eui-sidebar-toggle/sidebar-toggle.component.d.ts +3 -3
  535. package/layout/eui-sidebar-toggle/sidebar-toggle.component.d.ts.map +1 -1
  536. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts +3 -3
  537. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts.map +1 -1
  538. package/layout/eui-toolbar/toolbar.component.d.ts +3 -3
  539. package/layout/eui-toolbar/toolbar.component.d.ts.map +1 -1
  540. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts +3 -3
  541. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  542. package/layout/eui-user-profile/user-profile.component.d.ts +8 -5
  543. package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
  544. package/layout/index.d.ts +1 -0
  545. package/layout/index.d.ts.map +1 -1
  546. package/package.json +2 -2
  547. package/shared/base/mixins/index.d.ts.map +1 -1
  548. package/shared/input.directive.d.ts.map +1 -1
  549. package/esm2022/eui-file-upload/uploaded-file/uploaded-file.component.mjs +0 -116
  550. package/esm2022/eui-growl/models/eui-growl-message.model.mjs +0 -2
  551. package/esm2022/eui-growl/services/eui-growl.service.mjs +0 -79
  552. package/eui-file-upload/uploaded-file/uploaded-file.component.d.ts +0 -51
  553. package/eui-file-upload/uploaded-file/uploaded-file.component.d.ts.map +0 -1
  554. package/eui-growl/models/eui-growl-message.model.d.ts +0 -9
  555. package/eui-growl/models/eui-growl-message.model.d.ts.map +0 -1
  556. package/eui-growl/services/eui-growl.service.d.ts +0 -22
  557. package/eui-growl/services/eui-growl.service.d.ts.map +0 -1
@@ -325,10 +325,10 @@ export class EuiTabsComponent {
325
325
  }
326
326
  this.cd.detectChanges();
327
327
  }
328
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
329
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.3", type: EuiTabsComponent, selector: "eui-tabs", inputs: { styleClass: "styleClass", tabs: "tabs", activeTabIndex: "activeTabIndex", e2eAttr: "e2eAttr", pathMatch: "pathMatch", isMainNavigation: "isMainNavigation", isHandleChangeTab: "isHandleChangeTab", isSubTabs: "isSubTabs", isVerticalTabs: "isVerticalTabs" }, outputs: { tabClosed: "tabClosed", tabSelected: "tabSelected", tabClose: "tabClose", tabSelect: "tabSelect" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(function () { return EuiTabComponent; }) }], viewQueries: [{ propertyName: "euiTabsItems", first: true, predicate: ["euiTabsItems"], descendants: true }, { propertyName: "euiTabsItemsWrapper", first: true, predicate: ["euiTabsItemsWrapper"], descendants: true }, { propertyName: "host", first: true, predicate: ["host"], descendants: true }, { propertyName: "euiTabLabelItems", predicate: ["euiTabLabelItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "content", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "directive", type: i8.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
328
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
329
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiTabsComponent, selector: "eui-tabs", inputs: { styleClass: "styleClass", tabs: "tabs", activeTabIndex: "activeTabIndex", e2eAttr: "e2eAttr", pathMatch: "pathMatch", isMainNavigation: "isMainNavigation", isHandleChangeTab: "isHandleChangeTab", isSubTabs: "isSubTabs", isVerticalTabs: "isVerticalTabs" }, outputs: { tabClosed: "tabClosed", tabSelected: "tabSelected", tabClose: "tabClose", tabSelect: "tabSelect" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(function () { return EuiTabComponent; }) }], viewQueries: [{ propertyName: "euiTabsItems", first: true, predicate: ["euiTabsItems"], descendants: true }, { propertyName: "euiTabsItemsWrapper", first: true, predicate: ["euiTabsItemsWrapper"], descendants: true }, { propertyName: "host", first: true, predicate: ["host"], descendants: true }, { propertyName: "euiTabLabelItems", predicate: ["euiTabLabelItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "content", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "directive", type: i8.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
330
330
  }
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsComponent, decorators: [{
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsComponent, decorators: [{
332
332
  type: Component,
333
333
  args: [{ selector: 'eui-tabs', encapsulation: ViewEncapsulation.None, template: "<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n", styles: [".eui-tabs__items{display:flex!important;flex-direction:row;position:relative;width:100%}.eui-tabs .eui-tabs__wrapper--vertical{flex:1 1 25%;flex-direction:column}.eui-tabs .eui-tabs__items-wrapper{display:flex;flex-shrink:0}.eui-tabs .eui-tabs__items{justify-content:space-between;overflow:hidden}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item{background-color:var(--eui-base-color-grey-5);box-shadow:3px 0 6px 1px #00000040;display:none;height:100%;left:0;position:absolute;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__left-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item{background-color:var(--eui-base-color-grey-5);box-shadow:-3px 0 6px 1px #00000040;display:none;height:100%;position:absolute;right:0;top:0}.eui-tabs .eui-tabs__items .eui-tabs__navigation .eui-tabs__navigation__right-item .eui-button.eui-button--icon-only{height:100%}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__items-wrapper{padding-left:var(--eui-base-spacing-3xl);padding-right:var(--eui-base-spacing-m)}.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__left-item,.eui-tabs .eui-tabs__items--scrolling .eui-tabs__navigation__right-item{display:block!important;padding:0 2px 2px}.eui-tabs__right-content{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-tabs__right-content .eui-tabs__right-content-wrapper{display:flex;align-items:center}.eui-tabs .eui-tabs__wrapper--vertical .eui-tab-item__label{align-items:center;display:flex}.eui-tabs .eui-tab-item{align-items:center;background-color:inherit;border:none;border-bottom:3px solid transparent;box-shadow:0 2px 1px #00000080,inset 0 1px 0 var(--eui-base-color-white);color:var(--eui-base-color-grey-90);cursor:pointer;display:flex;font-weight:600;padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m) var(--eui-base-spacing-xs) var(--eui-base-spacing-m);position:relative;text-align:center;transition:.5s cubic-bezier(.35,0,.25,1)}.eui-tabs .eui-tab-item__label{font-weight:600}.eui-tabs .eui-tab-item__label .eui-tab-item__sublabel{align-items:center;display:flex;font-size:var(--eui-base-font-size-s);font-weight:500}.eui-tabs .eui-tab-item:focus{border-bottom:3px solid var(--eui-base-color-accent-100);background:var(--eui-base-color-grey-10);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--active{background-color:var(--eui-base-color-grey-10);border-bottom:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-text)}.eui-tabs .eui-tab-item--hidden{display:none}.eui-tabs .eui-tab-item .eui-tab__close-icon{cursor:pointer;color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75);opacity:.7}.eui-tabs .eui-tab-item .eui-tab__close-icon:hover>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100);opacity:1}.eui-tabs .eui-tab-item.eui-tab-item--disabled{color:var(--eui-base-color-grey-25);cursor:not-allowed;pointer-events:none}.eui-tabs .eui-tab-item.eui-tab-item--disabled:hover{border-bottom:3px solid transparent;color:var(--eui-base-color-grey-20)}.eui-tabs .eui-tab-content-wrapper{border-top:1px solid var(--eui-base-color-grey-15)}subtabs .eui-tabs .eui-tab-content-wrapper{padding:0}subtabs .eui-tabs .eui-tab-content-wrapper .eui-tab-content-wrapper{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s) 0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs.eui-tabs--vertical{display:flex;flex-direction:row}.eui-tabs.eui-tabs--vertical .eui-tabs__items .eui-tabs__items-wrapper{display:flex;flex-direction:column;height:100%}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal){border-bottom:0;flex:1 1 25%;flex-direction:column;position:relative}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item{border-bottom-color:transparent;border-left:3px solid transparent;box-shadow:0 0 1px #000000a6,inset 0 1px 0 var(--eui-base-color-white)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item--active,.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:active{border-left:3px solid var(--eui-base-color-primary-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:hover:not(.eui-tab-item--active){background:var(--eui-base-color-grey-5);border-left:3px solid var(--eui-base-color-primary-100);color:var(--eui-base-color-grey-100)}.eui-tabs.eui-tabs--vertical .eui-tabs__items:not(.eui-tabs__items--horizontal) .eui-tab-item:focus{border-left:3px solid transparent;outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper{border-top:none;flex:1 1 75%;flex-direction:column}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-s);position:relative}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tabs.eui-tabs--vertical .eui-tab-content-wrapper .eui-tab-content.eui-tab-content--no-padding{padding:0}.eui-tabs--main-navigation .eui-tabs__items,.eui-tabs--main-navigation .eui-tabs__items-wrapper{width:100%}.eui-tabs--main-navigation .eui-tab-item{flex-grow:1;justify-content:center}.eui-tabs--main-navigation .eui-tab-item--active,.eui-tabs--main-navigation .eui-tab-item :active{background-color:var(--eui-base-color-primary-10)}.eui-tabs .eui-tab-item:hover,.eui-tabs .eui-tab-item.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary{color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--primary.eui-tab-item--active,.eui-tabs .eui-tab-item--primary:hover{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item--secondary{color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item--secondary.eui-tab-item--active,.eui-tabs .eui-tab-item--secondary:hover{border-bottom-color:var(--eui-base-color-grey-80)}.eui-tabs .eui-tab-item--info{color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--info.eui-tab-item--active,.eui-tabs .eui-tab-item--info:hover{border-bottom-color:var(--eui-base-color-info-100)}.eui-tabs .eui-tab-item--success{color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--success.eui-tab-item--active,.eui-tabs .eui-tab-item--success:hover{border-bottom-color:var(--eui-base-color-success-100)}.eui-tabs .eui-tab-item--warning{color:var(--eui-base-color-warning-140)}.eui-tabs .eui-tab-item--warning.eui-tab-item--active,.eui-tabs .eui-tab-item--warning:hover{border-bottom-color:var(--eui-base-color-warning-100)}.eui-tabs .eui-tab-item--danger{color:var(--eui-base-color-danger-110)}.eui-tabs .eui-tab-item--danger.eui-tab-item--active,.eui-tabs .eui-tab-item--danger:hover{border-bottom-color:var(--eui-base-color-danger-100)}.eui-tabs .eui-tab-item--accent{color:var(--eui-base-color-grey-100)}.eui-tabs .eui-tab-item--accent.eui-tab-item--active,.eui-tabs .eui-tab-item--accent:hover{border-bottom-color:var(--eui-base-color-accent-110)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled{background:none}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary{background-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--primary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary{background-color:var(--eui-base-color-grey-5);color:var(--eui-base-color-grey-90)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--secondary.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info{background-color:var(--eui-base-color-info-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--info.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success{background-color:var(--eui-base-color-success-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--success.eui-tab-item--active{border-bottom-color:var(--eui-base-color-accent-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--warning.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger{background-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-white)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--danger.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent{background-color:var(--eui-base-color-accent-100);color:var(--eui-base-color-black)}.eui-tabs .eui-tab-item.eui-tab-item--background-filled.eui-tab-item--accent.eui-tab-item--active{border-bottom-color:var(--eui-base-color-primary-100)}\n"] }]
334
334
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.AnimationBuilder }]; }, propDecorators: { styleClass: [{
@@ -381,14 +381,14 @@ export class EuiTabsRightContentTagDirective {
381
381
  constructor() {
382
382
  this.elementClass = 'eui-tabs__right-content-wrapper';
383
383
  }
384
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsRightContentTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
385
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.3", type: EuiTabsRightContentTagDirective, selector: "euiTabsRightContent", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
384
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsRightContentTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
385
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiTabsRightContentTagDirective, selector: "euiTabsRightContent", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
386
386
  }
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsRightContentTagDirective, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsRightContentTagDirective, decorators: [{
388
388
  type: Directive,
389
389
  args: [{ selector: 'euiTabsRightContent' }]
390
390
  }], propDecorators: { elementClass: [{
391
391
  type: HostBinding,
392
392
  args: ['class']
393
393
  }] } });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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bEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFcUUsS0FBSztzQkFBaEYsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUNiLGdCQUFnQjtzQkFBNUUsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDaEMsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNTLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBQ2IsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQVFiLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQVNGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBK0hOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBZ043QyxvQkFBb0I7QUFFcEIsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUUwQixpQkFBWSxHQUFHLGlDQUFpQyxDQUFDO0tBQzFFO3dJQUZZLCtCQUErQjs0SEFBL0IsK0JBQStCOztrR0FBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFOzhCQUVwQixZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbkZhY3RvcnksIEFuaW1hdGlvblBsYXllciwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEV1aVRhYkNvbXBvbmVudCB9IGZyb20gJy4vZXVpLXRhYi9ldWktdGFiLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXRhYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGFiczogRXVpVGFiQ29tcG9uZW50W10gPSBbXTtcbiAgICBASW5wdXQoKSBhY3RpdmVUYWJJbmRleCA9IG51bGw7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktdGFicyc7XG4gICAgQElucHV0KCkgcGF0aE1hdGNoOiAncHJlZml4JyB8ICdmdWxsJyA9ICdwcmVmaXgnO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgKi9cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgKi9cbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBPdXRwdXQoKSB0YWJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIEBPdXRwdXQoKSB0YWJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFdWlUYWJDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBfdGFiczogUXVlcnlMaXN0PEV1aVRhYkNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZHJlbignZXVpVGFiTGFiZWxJdGVtJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGV1aVRhYkxhYmVsSXRlbXM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcbiAgICBAVmlld0NoaWxkKCdldWlUYWJzSXRlbXMnKSBldWlUYWJzSXRlbXM6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zV3JhcHBlcicpIGV1aVRhYnNJdGVtc1dyYXBwZXI6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaG9zdCcpIGhvc3Q6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgcHVibGljIG5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjdXJyZW50T2Zmc2V0ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTWFpbk5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01haW5OYXZpZ2F0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNNYWluTmF2aWdhdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzTWFpbk5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc01haW5OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIYW5kbGVDaGFuZ2VUYWIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hhbmRsZUNoYW5nZVRhYjtcbiAgICB9XG4gICAgc2V0IGlzSGFuZGxlQ2hhbmdlVGFiKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hhbmRsZUNoYW5nZVRhYiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU3ViVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU3ViVGFicztcbiAgICB9XG4gICAgc2V0IGlzU3ViVGFicyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU3ViVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU3ViVGFicyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzVmVydGljYWxUYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWZXJ0aWNhbFRhYnM7XG4gICAgfVxuICAgIHNldCBpc1ZlcnRpY2FsVGFicyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzVmVydGljYWxUYWJzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNWZXJ0aWNhbFRhYnMgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcbiAgICBwcml2YXRlIG9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIHN0ZXBNb3ZlID0gNDAwO1xuICAgIC8qKlxuICAgICAqIEZvciByYWNlIGNvbmRpdGlvbiByZWFzb24sIHRoZSB3cmFwcGVyIHdpZHRoIGlzIG5vdCBjb3JyZWN0bHkgY2FsY3VsYXRlZCB3aGVuIHRoZSBjb21wb25lbnQgcGFzc2VzIGZyb20gbm8tc2Nyb2xsIHN0YXRlIHRvIHNjcm9sbFxuICAgICAqIHN0YXRlLiBUbyBmaXggdGhpcyBpc3N1ZSwgd2UgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZ2V0U2Nyb2xsaW5nU3RhdHVzIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAxOiBUaGUgbnVtYmVyIG9mIHRhYnMgZG9lcyBub3QgcmVxdWlyZSBhbnkgc2Nyb2xsOlxuICAgICAqIC0gV2l0aG91dCBhbnkgZml4IHRoZSBzY3JvbGwgd2lsbCBoYXZlIGEgZGVsdGEgb2YgNjQgYXQgdGhlIGZpcnN0IGFjdGl2YXRpb24sIHRoZW4gb24gdGhlIGZpcnN0IG5vLXNjcm9sbCB0byBzY3JvbGwgc3RhdGUsXG4gICAgICogLSB3ZSBoYWQgNjQgdG8gdGhlIG1vdmVcbiAgICAgKlxuICAgICAqIFNjZW5hcmlvIDI6IFRoZSBudW1iZXIgb2YgdGFicyByZXF1aXJlcyBhIHNjcm9sbDpcbiAgICAgKiAtIEluIHRoaXMgY2FzZSB0aGUgd3JhcHBlciB3aWR0aCBpcyBjb3JyZWN0bHkgY2FsY3VsYXRlZCwgc28gd2UgZG9uJ3QgbmVlZCB0byBhZGQgdGhlIGRlbHRhXG4gICAgICovXG4gICAgcHJpdmF0ZSBzY3JvbGxpbmdDb3VudCA9IDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBidWlsZGVyOiBBbmltYXRpb25CdWlsZGVyKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHsgdXJsOiB0aGlzLnJvdXRlci51cmwgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJzV2l0aFVybCA9IHRoaXMudGFicy5maWx0ZXIoKHQpID0+IHQudXJsICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhYnNXaXRoVXJsLmxlbmd0aCA9PT0gdGhpcy50YWJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXRoTWF0Y2ggPT09ICdmdWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID0gdGFic1dpdGhVcmwuZmluZEluZGV4KCh0KSA9PiBlLnVybCA9PT0gdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAodC51cmwgKyAnKC8/KScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZXgudGVzdChlLnVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5tYXAoKHQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPT09IGkgPyBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IHRydWUgfSkgOiBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IGZhbHNlIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSkgIT09IC0xID8gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSkgOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9MZWZ0KCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgKyB0aGlzLnN0ZXBNb3ZlO1xuICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub1JpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCAtIHRoaXMuc3RlcE1vdmU7XG5cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIYW5kbGVDaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudGFic1tpbmRleF0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYiAmJiAhdGhpcy5pc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWIpICYmICF0aGlzLmlzVmVydGljYWxUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNldFdpZHRoICs9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IGNvbnRhaW5lcldpZHRoIC8gMiAtIHN1YnNldFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3RlZC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25LZXlVcChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09ICdFbnRlcicgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLm1hcCgodCwgaSkgPT4gKGkgPT09IGluZGV4ID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWQuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlVGFiKGluZGV4OiBudW1iZXIsIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbaW5kZXhdO1xuICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0uaXNIYW5kbGVDbG9zZU9uQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZS5pbmRleCk7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYkNsb3NlZC5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgdGhpcy50YWJDbG9zZS5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHRhYiBwYXNzIGluIHBhcmFtZXRlci5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktdGFicyAjdGFicz5cbiAgICAgKiAgICAgPGV1aS10YWIgaXNDbG9zYWJsZSBpc0hhbmRsZUNsb3NlT25DbG9zZT5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWxhYmVsPlRhYiBsYWJlbDwvZXVpLXRhYi1sYWJlbD5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWNvbnRlbnQ+VGFiIGNvbnRlbnQ8L2V1aS10YWItY29udGVudD5cbiAgICAgKiAgICAgPC9ldWktdGFiPlxuICAgICAqIDwvZXVpLXRhYnM+XG4gICAgICogYGBgXG4gICAgICogLi4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudGFicy5jbG9zZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBjbG9zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaXNpYmxlSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnRhYnNbaW5kZXggLSAxXSk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1Zpc2libGVJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYigwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIocHJldmlvdXNWaXNpYmxlSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLmFjdGl2ZVRhYkluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYjogSFRNTERpdkVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICByZXR1cm4gYWN0aXZlVGFiLm9mZnNldExlZnQgLSA0OCA+IDAgJiYgYWN0aXZlVGFiLm9mZnNldExlZnQgKyBhY3RpdmVUYWIuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCAtIDQ4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2Nyb2xsVG8oc2Nyb2xsVG86IG51bWJlciwgaXNBbmltYXRlZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICBjb25zdCB0aW1pbmdzID0gaXNBbmltYXRlZCA/ICc1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknIDogMDtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uOiBBbmltYXRpb25GYWN0b3J5ID0gdGhpcy5idWlsZGVyLmJ1aWxkKFthbmltYXRlKHRpbWluZ3MsIHN0eWxlKHsgJ21hcmdpbi1sZWZ0JzogK3Njcm9sbFRvICsgJ3B4JyB9KSldKTtcblxuICAgICAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbi5jcmVhdGUodGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnBsYXllci5wbGF5KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG5cbiAgICAgICAgaWYgKHNjcm9sbFRvID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID09PSB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsaW5nU3RhdHVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gY29udGFpbmVyV2lkdGggPCB3cmFwcGVyV2lkdGg7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGluZykge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoIDw9IE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgKyAzMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhRml4ID0gdGhpcy5zY3JvbGxpbmdDb3VudCA9PT0gMCA/IDY0IDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzIgLSBkZWx0YUZpeDtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpVGFic1JpZ2h0Q29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS10YWJzX19yaWdodC1jb250ZW50LXdyYXBwZXInO1xufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPGRpdlxuICAgICNob3N0XG4gICAgY2xhc3M9XCJldWktdGFicyB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbl09XCJpc01haW5OYXZpZ2F0aW9uXCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCJcbiAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCIgW2NsYXNzLmV1aS10YWJzX193cmFwcGVyLS1ob3Jpem9udGFsXT1cIiFpc1ZlcnRpY2FsVGFic1wiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0tdmVydGljYWxdPVwiaXNWZXJ0aWNhbFRhYnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2V1aVRhYnNJdGVtc1xuICAgICAgICAgICAgY2xhc3M9XCJldWktdGFic19faXRlbXNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0tc2Nyb2xsaW5nXT1cInNjcm9sbGluZ1wiXG4gICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8ZGl2ICNldWlUYWJzSXRlbXNXcmFwcGVyIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zLXdyYXBwZXJcIiBbYXR0ci5kYXRhLW9mZnNldF09XCJjdXJyZW50T2Zmc2V0XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmlzVmlzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWNsb3NhYmxlXT1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1zZWNvbmRhcnldPVwidGFiLmV1aVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tcHJpbWFyeV09XCJ0YWIuZXVpUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0taW5mb109XCJ0YWIuZXVpSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc3VjY2Vzc109XCJ0YWIuZXVpU3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0td2FybmluZ109XCJ0YWIuZXVpV2FybmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tZGFuZ2VyXT1cInRhYi5ldWlEYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWFjY2VudF09XCJ0YWIuZXVpQWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1iYWNrZ3JvdW5kLWZpbGxlZF09XCJ0YWIuaGFzQmFja2dyb3VuZEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1pdGVtX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVMYWJlbC50ZW1wbGF0ZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aVNpemVYU1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cIm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHRhYiBidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LW1sLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1lY2wtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWJfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19sZWZ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MZWZ0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIGxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLWJhY2tcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19yaWdodC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1mb3J3YXJkXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fcmlnaHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpVGFic1JpZ2h0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1jb250ZW50LXdyYXBwZXJcIiB0YWJpbmRleD1cIjBcIiAqbmdJZj1cImkgPT09IGFjdGl2ZVRhYkluZGV4ICYmIHRhYi50ZW1wbGF0ZUNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi50ZW1wbGF0ZUNvbnRlbnQudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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bEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFcUUsS0FBSztzQkFBaEYsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUNiLGdCQUFnQjtzQkFBNUUsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDaEMsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNTLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBQ2IsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQVFiLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixLQUFLO2dCQVNGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBbUlOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBZ043QyxvQkFBb0I7QUFFcEIsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUUwQixpQkFBWSxHQUFHLGlDQUFpQyxDQUFDO0tBQzFFO3dJQUZZLCtCQUErQjs0SEFBL0IsK0JBQStCOztrR0FBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFOzhCQUVwQixZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbkZhY3RvcnksIEFuaW1hdGlvblBsYXllciwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEV1aVRhYkNvbXBvbmVudCB9IGZyb20gJy4vZXVpLXRhYi9ldWktdGFiLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXRhYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGFiczogRXVpVGFiQ29tcG9uZW50W10gPSBbXTtcbiAgICBASW5wdXQoKSBhY3RpdmVUYWJJbmRleCA9IG51bGw7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktdGFicyc7XG4gICAgQElucHV0KCkgcGF0aE1hdGNoOiAncHJlZml4JyB8ICdmdWxsJyA9ICdwcmVmaXgnO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgKi9cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgKi9cbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBPdXRwdXQoKSB0YWJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIEBPdXRwdXQoKSB0YWJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFdWlUYWJDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBfdGFiczogUXVlcnlMaXN0PEV1aVRhYkNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZHJlbignZXVpVGFiTGFiZWxJdGVtJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGV1aVRhYkxhYmVsSXRlbXM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcbiAgICBAVmlld0NoaWxkKCdldWlUYWJzSXRlbXMnKSBldWlUYWJzSXRlbXM6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zV3JhcHBlcicpIGV1aVRhYnNJdGVtc1dyYXBwZXI6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaG9zdCcpIGhvc3Q6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgcHVibGljIG5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjdXJyZW50T2Zmc2V0ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTWFpbk5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01haW5OYXZpZ2F0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNNYWluTmF2aWdhdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzTWFpbk5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc01haW5OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIYW5kbGVDaGFuZ2VUYWIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hhbmRsZUNoYW5nZVRhYjtcbiAgICB9XG4gICAgc2V0IGlzSGFuZGxlQ2hhbmdlVGFiKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hhbmRsZUNoYW5nZVRhYiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU3ViVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU3ViVGFicztcbiAgICB9XG4gICAgc2V0IGlzU3ViVGFicyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU3ViVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU3ViVGFicyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzVmVydGljYWxUYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWZXJ0aWNhbFRhYnM7XG4gICAgfVxuICAgIHNldCBpc1ZlcnRpY2FsVGFicyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzVmVydGljYWxUYWJzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNWZXJ0aWNhbFRhYnMgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcbiAgICBwcml2YXRlIG9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIHN0ZXBNb3ZlID0gNDAwO1xuICAgIC8qKlxuICAgICAqIEZvciByYWNlIGNvbmRpdGlvbiByZWFzb24sIHRoZSB3cmFwcGVyIHdpZHRoIGlzIG5vdCBjb3JyZWN0bHkgY2FsY3VsYXRlZCB3aGVuIHRoZSBjb21wb25lbnQgcGFzc2VzIGZyb20gbm8tc2Nyb2xsIHN0YXRlIHRvIHNjcm9sbFxuICAgICAqIHN0YXRlLiBUbyBmaXggdGhpcyBpc3N1ZSwgd2UgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZ2V0U2Nyb2xsaW5nU3RhdHVzIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAxOiBUaGUgbnVtYmVyIG9mIHRhYnMgZG9lcyBub3QgcmVxdWlyZSBhbnkgc2Nyb2xsOlxuICAgICAqIC0gV2l0aG91dCBhbnkgZml4IHRoZSBzY3JvbGwgd2lsbCBoYXZlIGEgZGVsdGEgb2YgNjQgYXQgdGhlIGZpcnN0IGFjdGl2YXRpb24sIHRoZW4gb24gdGhlIGZpcnN0IG5vLXNjcm9sbCB0byBzY3JvbGwgc3RhdGUsXG4gICAgICogLSB3ZSBoYWQgNjQgdG8gdGhlIG1vdmVcbiAgICAgKlxuICAgICAqIFNjZW5hcmlvIDI6IFRoZSBudW1iZXIgb2YgdGFicyByZXF1aXJlcyBhIHNjcm9sbDpcbiAgICAgKiAtIEluIHRoaXMgY2FzZSB0aGUgd3JhcHBlciB3aWR0aCBpcyBjb3JyZWN0bHkgY2FsY3VsYXRlZCwgc28gd2UgZG9uJ3QgbmVlZCB0byBhZGQgdGhlIGRlbHRhXG4gICAgICovXG4gICAgcHJpdmF0ZSBzY3JvbGxpbmdDb3VudCA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgYnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlclxuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKGMuYWN0aXZlVGFiSW5kZXguY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGFiICYmICF0aGlzLmlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic2V0V2lkdGggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWU7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNldFdpZHRoICs9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gY29udGFpbmVyV2lkdGggLyAyIC0gc3Vic2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleC5pc0ZpcnN0Q2hhbmdlKCkgJiYgYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYy5hY3RpdmVUYWJJbmRleC5pc0ZpcnN0Q2hhbmdlKCkgJiYgYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUgPiAwID8gNTAwIDogMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyAod2luZG93IGFzIGFueSkuUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRTY3JvbGxpbmdTdGF0dXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMuX3RhYnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50YWJzID0gdGhpcy5fdGFicy50b0FycmF5KCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh7IHVybDogdGhpcy5yb3V0ZXIudXJsIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFic1dpdGhVcmwgPSB0aGlzLnRhYnMuZmlsdGVyKCh0KSA9PiB0LnVybCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YWJzV2l0aFVybC5sZW5ndGggPT09IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4gZS51cmwgPT09IHQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJzV2l0aFVybC5maW5kSW5kZXgoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHQudXJsICsgJygvPyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZS51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID09PSBpID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSA/IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci51bm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IHNjcm9sbFRvID0gdGhpcy5jdXJyZW50T2Zmc2V0ICsgdGhpcy5zdGVwTW92ZTtcbiAgICAgICAgaWYgKHNjcm9sbFRvID4gMCkge1xuICAgICAgICAgICAgc2Nyb2xsVG8gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9SaWdodCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgLSB0aGlzLnN0ZXBNb3ZlO1xuXG4gICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSAtIDMyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVRhYihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSGFuZGxlQ2hhbmdlVGFiKSB7XG4gICAgICAgICAgICB0aGlzLnRhYlNlbGVjdC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbaW5kZXhdICYmICF0aGlzLnRhYnNbaW5kZXhdLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFic1t0aGlzLmFjdGl2ZVRhYkluZGV4XS5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNbaW5kZXhdLmlzQWN0aXZlID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSAmJiAhdGhpcy5pc1ZlcnRpY2FsVGFicykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsVG8gPSAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic2V0V2lkdGggPSAwO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBpbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzZXRXaWR0aCArPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKGkpLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID4gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbFRvID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWQuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uS2V5VXAoZTogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFicy5tYXAoKHQsIGkpID0+IChpID09PSBpbmRleCA/IE9iamVjdC5hc3NpZ24odCwgeyBpc0FjdGl2ZTogdHJ1ZSB9KSA6IE9iamVjdC5hc3NpZ24odCwgeyBpc0FjdGl2ZTogZmFsc2UgfSkpKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdGVkLmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy50YWJzW2luZGV4XS51cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVRhYihpbmRleDogbnVtYmVyLCBlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFiID0gdGhpcy50YWJzW2luZGV4XTtcbiAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLmlzSGFuZGxlQ2xvc2VPbkNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKGUuaW5kZXgpO1xuICAgICAgICAgICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcigodCwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJDbG9zZWQuZW1pdCh7IHRhYiwgaW5kZXggfSk7XG4gICAgICAgIHRoaXMudGFiQ2xvc2UuZW1pdCh7IHRhYiwgaW5kZXggfSk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgYSB0YWIgcGFzcyBpbiBwYXJhbWV0ZXIuXG4gICAgICpcbiAgICAgKiBAdXNhZ2VOb3Rlc1xuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZXVpLXRhYnMgI3RhYnM+XG4gICAgICogICAgIDxldWktdGFiIGlzQ2xvc2FibGUgaXNIYW5kbGVDbG9zZU9uQ2xvc2U+XG4gICAgICogICAgICAgICA8ZXVpLXRhYi1sYWJlbD5UYWIgbGFiZWw8L2V1aS10YWItbGFiZWw+XG4gICAgICogICAgICAgICA8ZXVpLXRhYi1jb250ZW50PlRhYiBjb250ZW50PC9ldWktdGFiLWNvbnRlbnQ+XG4gICAgICogICAgIDwvZXVpLXRhYj5cbiAgICAgKiA8L2V1aS10YWJzPlxuICAgICAqIGBgYFxuICAgICAqIC4uLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnRhYnMuY2xvc2UoMSk7XG4gICAgICogYGBgXG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSB0YWIgdG8gY2xvc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmlzaWJsZUluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGhpcy50YWJzW2luZGV4IC0gMV0pO1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNWaXNpYmxlSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIoMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVGFiKHByZXZpb3VzVmlzaWJsZUluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy5hY3RpdmVUYWJJbmRleCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWI6IEhUTUxEaXZFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYi5vZmZzZXRMZWZ0IC0gNDggPiAwICYmIGFjdGl2ZVRhYi5vZmZzZXRMZWZ0ICsgYWN0aXZlVGFiLmNsaWVudFdpZHRoIDwgY29udGFpbmVyV2lkdGggLSA0ODtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcm9sbFRvKHNjcm9sbFRvOiBudW1iZXIsIGlzQW5pbWF0ZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgY29uc3QgdGltaW5ncyA9IGlzQW5pbWF0ZWQgPyAnNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyA6IDA7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbjogQW5pbWF0aW9uRmFjdG9yeSA9IHRoaXMuYnVpbGRlci5idWlsZChbYW5pbWF0ZSh0aW1pbmdzLCBzdHlsZSh7ICdtYXJnaW4tbGVmdCc6ICtzY3JvbGxUbyArICdweCcgfSkpXSk7XG5cbiAgICAgICAgdGhpcy5wbGF5ZXIgPSBhbmltYXRpb24uY3JlYXRlKHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5wbGF5ZXIucGxheSgpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudE9mZnNldCA9IHNjcm9sbFRvO1xuXG4gICAgICAgIGlmIChzY3JvbGxUbyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSA8IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50T2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA9PT0gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGluZ1N0YXR1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICB0aGlzLnNjcm9sbGluZyA9IGNvbnRhaW5lcldpZHRoIDwgd3JhcHBlcldpZHRoO1xuXG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbygwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCA8PSBNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpICsgMzIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YUZpeCA9IHRoaXMuc2Nyb2xsaW5nQ291bnQgPT09IDAgPyA2NCA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSAtIDMyIC0gZGVsdGFGaXg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE9mZnNldCA9IHNjcm9sbFRvO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSA8IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50T2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nQ291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aVRhYnNSaWdodENvbnRlbnQnIH0pXG5leHBvcnQgY2xhc3MgRXVpVGFic1JpZ2h0Q29udGVudFRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktdGFic19fcmlnaHQtY29udGVudC13cmFwcGVyJztcbn1cbi8qIGVzbGludC1lbmFibGUgKi9cbiIsIjxkaXZcbiAgICAjaG9zdFxuICAgIGNsYXNzPVwiZXVpLXRhYnMge3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgW2NsYXNzLmV1aS10YWJzLS1tYWluLW5hdmlnYXRpb25dPVwiaXNNYWluTmF2aWdhdGlvblwiXG4gICAgW2NsYXNzLmV1aS10YWJzLS12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsVGFic1wiXG4gICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIiBbY2xhc3MuZXVpLXRhYnNfX3dyYXBwZXItLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNldWlUYWJzSXRlbXNcbiAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zXCJcbiAgICAgICAgICAgIFtjbGFzcy5ldWktdGFic19faXRlbXMtLWhvcml6b250YWxdPVwiIWlzVmVydGljYWxUYWJzXCJcbiAgICAgICAgICAgIFtjbGFzcy5ldWktdGFic19faXRlbXMtLXNjcm9sbGluZ109XCJzY3JvbGxpbmdcIlxuICAgICAgICAgICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZXMoKVwiPlxuICAgICAgICAgICAgPGRpdiAjZXVpVGFic0l0ZW1zV3JhcHBlciBjbGFzcz1cImV1aS10YWJzX19pdGVtcy13cmFwcGVyXCIgW2F0dHIuZGF0YS1vZmZzZXRdPVwiY3VycmVudE9mZnNldFwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5pc1Zpc2libGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRhYi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1jbG9zYWJsZV09XCJ0YWIuaXNDbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tYWN0aXZlXT1cImFjdGl2ZVRhYkluZGV4ID09PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc2Vjb25kYXJ5XT1cInRhYi5ldWlTZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXByaW1hcnldPVwidGFiLmV1aVByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWluZm9dPVwidGFiLmV1aUluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXN1Y2Nlc3NdPVwidGFiLmV1aVN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXdhcm5pbmddPVwidGFiLmV1aVdhcm5pbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRhbmdlcl09XCJ0YWIuZXVpRGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY2NlbnRdPVwidGFiLmV1aUFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tYmFja2dyb3VuZC1maWxsZWRdPVwidGFiLmhhc0JhY2tncm91bmRGaWxsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidGFiLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWIoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtldWlUb29sdGlwXT1cInRhYi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWItaXRlbV9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlTGFiZWwudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YWIuaXNDbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRhYihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplWFNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSB0YWIgYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdS1tbC1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJldWktZWNsLWNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcj1cImdyZXktNzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvbl9fbGVmdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTGVmdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cIm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCBsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1iYWNrXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvbl9fcmlnaHQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1JpZ2h0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCByaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNoZXZyb24tZm9yd2FyZFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYnNfX3JpZ2h0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aVRhYnNSaWdodENvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWItY29udGVudC13cmFwcGVyXCIgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJpID09PSBhY3RpdmVUYWJJbmRleCAmJiB0YWIudGVtcGxhdGVDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVDb250ZW50LnRlbXBsYXRlUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -11,8 +11,8 @@ import { EuiTabLabelComponent, EuiTabSubLabelDirective } from './eui-tab-label/e
11
11
  import { EuiTabContentComponent } from './eui-tab-content/eui-tab-content.component';
12
12
  import * as i0 from "@angular/core";
13
13
  export class EuiTabsModule {
14
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsModule, declarations: [EuiTabsComponent,
14
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsModule, declarations: [EuiTabsComponent,
16
16
  EuiTabComponent,
17
17
  EuiTabsRightContentTagDirective,
18
18
  EuiTabLabelComponent,
@@ -23,9 +23,9 @@ export class EuiTabsModule {
23
23
  EuiTabLabelComponent,
24
24
  EuiTabSubLabelDirective,
25
25
  EuiTabContentComponent] }); }
26
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsModule, imports: [CommonModule, PortalModule, EuiIconModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule] }); }
26
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsModule, imports: [CommonModule, PortalModule, EuiIconModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: EuiTabsModule, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTabsModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  imports: [CommonModule, PortalModule, EuiIconModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule],
@@ -105,10 +105,10 @@ export class AutoResizeDirective {
105
105
  }
106
106
  }
107
107
  }
108
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: AutoResizeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
109
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.3", type: AutoResizeDirective, selector: "textarea[autoResize]", inputs: { autoResize: "autoResize", minRows: "minRows" }, host: { listeners: { "input": "onInput($event.target)" } }, usesOnChanges: true, ngImport: i0 }); }
108
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: AutoResizeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.4", type: AutoResizeDirective, selector: "textarea[autoResize]", inputs: { autoResize: "autoResize", minRows: "minRows" }, host: { listeners: { "input": "onInput($event.target)" } }, usesOnChanges: true, ngImport: i0 }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3", ngImport: i0, type: AutoResizeDirective, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: AutoResizeDirective, decorators: [{
112
112
  type: Directive,
113
113
  args: [{
114
114
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.3",
124
124
  type: HostListener,
125
125
  args: ['input', ['$event.target']]
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZXNpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRleHRhcmVhL2F1dG8tcmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFFTCxZQUFZLEVBRVosUUFBUSxHQUlYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT3BFLE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBbUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsSUFDSSxPQUFPLENBQUMsT0FBd0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBc0IsRUFBYyxFQUFZLFFBQW1CLEVBQXdCLE9BQWtCO1FBQXZGLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQXdCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFsQnJHLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVVwRCxnQkFBVyxHQUFHLElBQUksQ0FBQztJQU9xRixDQUFDO0lBR2pILE9BQU87UUFDSCxJQUFJLENBQUMsTUFB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SSxhQUFhLEVBQUU7WUFDbEMsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLFVBQVUsRUFBRTtnQkFDekUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2pCO1NBQ0o7SUFDTCxDQUFDO3dJQWpIUSxtQkFBbUI7NEhBQW5CLG1CQUFtQjs7a0dBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DOzswQkFvQnlFLFFBQVE7NENBYm5FLFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLO2dCQVFOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICd0ZXh0YXJlYVthdXRvUmVzaXplXScsXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9SZXNpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGRlZmF1bHRSb3dzID0gMTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGF1dG9SZXNpemUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvUmVzaXplO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGF1dG9SZXNpemUoc3RhdGU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9hdXRvUmVzaXplID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYXV0b1Jlc2l6ZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBtaW5Sb3dzKG1pblJvd3M6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICB0aGlzLmRlZmF1bHRSb3dzID0gY29lcmNlTnVtYmVyUHJvcGVydHkobWluUm93cyk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGNvbnRyb2w6IE5nQ29udHJvbCkge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgb25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2l6ZSgpKTtcblxuICAgICAgICAvLyBDcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UgbGlua2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5yZWFkb25seU11dGF0aW9uT2JzZXJ2ZXIuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSB0YXJnZXQgbm9kZSBmb3IgY29uZmlndXJlZCBtdXRhdGlvbnNcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2F1dG9SZXNpemUnXSkge1xuICAgICAgICAgICAgY29uc3QgZW5hYmxlID0gY2hhbmdlc1snYXV0b1Jlc2l6ZSddLmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmF1dG9SZXNpemU7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3Jvd3MnLCB0aGlzLmRlZmF1bHRSb3dzKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnLCBlbmFibGUgPyAnaGlkZGVuJyA6ICcnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncmVzaXplJywgZW5hYmxlID8gJ25vbmUnIDogJycpO1xuICAgICAgICAgICAgaWYgKGVuYWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZvcm1Db250cm9sQ2hhbmdlcygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYW5kIHNldCBpdCwgY2F1c2luZyB0aGUgdGV4dGFyZWEgdG8gcmVzaXplLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgICAgICAgIC8vIGNsb25lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGNsb25lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUud2lkdGggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgY2xvbmUudGV4dENvbnRlbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoY2xvbmUpO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGVbJ292ZXJmbG93LXknXSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgY29uc3QgY2xvbmVIZWlnaHQgPSBjbG9uZS5zY3JvbGxIZWlnaHQ7XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2xvbmUsICdoZWlnaHQnLCBjbG9uZUhlaWdodCk7XG4gICAgICAgICAgICAvLyBjYWxjdWxhdGUgaGVpZ2h0XG4gICAgICAgICAgICBjb25zdCB7IG9mZnNldEhlaWdodCwgc2Nyb2xsSGVpZ2h0IH0gPSBjbG9uZTtcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPSBvZmZzZXRIZWlnaHQgPiBzY3JvbGxIZWlnaHQgPyBvZmZzZXRIZWlnaHQgOiBzY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgPD0gMCA/ICdhdXRvJyA6IGAke2hlaWdodH1weGA7XG4gICAgICAgICAgICAvLyByZW1vdmUgY2xvbmVcbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChjbG9uZSk7XG4gICAgICAgICAgICAvLyBzZXQgaGVpZ2h0XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBoYW5kbGVzIHZhbHVlIGNoYW5nZXMgdGhyb3VnaCBGb3JtQ29udHJvbFxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVGb3JtQ29udHJvbENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgdmFsdWUgY2hhbmdlZCBtYW51YWxseSB0aHJvdWdoIGNvbnRyb2wsIGNhbGwgcmVzaXplKClcbiAgICAgICAgLy8gc3RhcnRXaXRoIGlzIGJlaW5nIHVzZWQgdG8gY2F1c2UgcmVzaXplIHRvIGJlIGNhbGxlZCBpbiBjYXNlIG9mIGxhdGUgc3Vic2NyaXB0aW9uIGFmdGVyIHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIHN0YXJ0V2l0aCgnJykpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2l6ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgICAgIC8vIFVzZSB0cmFkaXRpb25hbCAnZm9yIGxvb3BzJyBmb3IgSUUgMTFcbiAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZXNpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRleHRhcmVhL2F1dG8tcmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFFTCxZQUFZLEVBRVosUUFBUSxHQUlYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT3BFLE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBbUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsSUFDSSxPQUFPLENBQUMsT0FBd0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFDYyxFQUFjLEVBQ2QsUUFBbUIsRUFDUCxPQUFrQjtRQUY5QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNQLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFyQnBDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVVwRCxnQkFBVyxHQUFHLElBQUksQ0FBQztJQVd4QixDQUFDO0lBR0osT0FBTztRQUNILElBQUksQ0FBQyxNQUFNLEVB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QWEsRUFBRTtZQUNsQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFO2dCQUN6RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDakI7U0FDSjtJQUNMLENBQUM7d0lBckhRLG1CQUFtQjs0SEFBbkIsbUJBQW1COztrR0FBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHNCQUFzQjtpQkFDbkM7OzBCQXVCUSxRQUFROzRDQWhCRixVQUFVO3NCQURwQixLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFZTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAndGV4dGFyZWFbYXV0b1Jlc2l6ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvUmVzaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBkZWZhdWx0Um93cyA9IDE7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBhdXRvUmVzaXplKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b1Jlc2l6ZTtcbiAgICB9XG4gICAgcHVibGljIHNldCBhdXRvUmVzaXplKHN0YXRlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fYXV0b1Jlc2l6ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2F1dG9SZXNpemUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgbWluUm93cyhtaW5Sb3dzOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0Um93cyA9IGNvZXJjZU51bWJlclByb3BlcnR5KG1pblJvd3MpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgY29udHJvbDogTmdDb250cm9sXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBvbklucHV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzaXplKCkpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZSBsaW5rZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlYWRvbmx5TXV0YXRpb25PYnNlcnZlci5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgdGhlIHRhcmdldCBub2RlIGZvciBjb25maWd1cmVkIG11dGF0aW9uc1xuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB7IGF0dHJpYnV0ZXM6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snYXV0b1Jlc2l6ZSddKSB7XG4gICAgICAgICAgICBjb25zdCBlbmFibGUgPSBjaGFuZ2VzWydhdXRvUmVzaXplJ10uY3VycmVudFZhbHVlIHx8IHRoaXMuYXV0b1Jlc2l6ZTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncm93cycsIHRoaXMuZGVmYXVsdFJvd3MpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdycsIGVuYWJsZSA/ICdoaWRkZW4nIDogJycpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdyZXNpemUnLCBlbmFibGUgPyAnbm9uZScgOiAnJyk7XG4gICAgICAgICAgICBpZiAoZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUNvbnRyb2xDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhbmQgc2V0IGl0LCBjYXVzaW5nIHRoZSB0ZXh0YXJlYSB0byByZXNpemUuXG4gICAgICovXG4gICAgcHVibGljIHJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgICAgICAgLy8gY2xvbmUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgICAgICBjbG9uZS5zdHlsZS53aWR0aCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICAgICAgICBjbG9uZS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICBjbG9uZS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICBjbG9uZS50ZXh0Q29udGVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICAgICAgICBjbG9uZS5zdHlsZVsnb3ZlcmZsb3cteSddID0gJ2hpZGRlbic7XG4gICAgICAgICAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICBjb25zdCBjbG9uZUhlaWdodCA9IGNsb25lLnNjcm9sbEhlaWdodDtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjbG9uZSwgJ2hlaWdodCcsIGNsb25lSGVpZ2h0KTtcbiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBoZWlnaHRcbiAgICAgICAgICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNsb25lO1xuICAgICAgICAgICAgbGV0IGhlaWdodCA9IG9mZnNldEhlaWdodCA+IHNjcm9sbEhlaWdodCA/IG9mZnNldEhlaWdodCA6IHNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCA8PSAwID8gJ2F1dG8nIDogYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIC8vIHJlbW92ZSBjbG9uZVxuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGNsb25lKTtcbiAgICAgICAgICAgIC8vIHNldCBoZWlnaHRcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGhhbmRsZXMgdmFsdWUgY2hhbmdlcyB0aHJvdWdoIEZvcm1Db250cm9sXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhbmRsZUZvcm1Db250cm9sQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSB2YWx1ZSBjaGFuZ2VkIG1hbnVhbGx5IHRocm91Z2ggY29udHJvbCwgY2FsbCByZXNpemUoKVxuICAgICAgICAvLyBzdGFydFdpdGggaXMgYmVpbmcgdXNlZCB0byBjYXVzZSByZXNpemUgdG8gYmUgY2FsbGVkIGluIGNhc2Ugb2YgbGF0ZSBzdWJzY3JpcHRpb24gYWZ0ZXIgdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgc3RhcnRXaXRoKCcnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzaXplKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHlNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICAgICAgLy8gVXNlIHRyYWRpdGlvbmFsICdmb3IgbG9vcHMnIGZvciBJRSAxMVxuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycgJiYgbXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ3JlYWRvbmx5Jykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=