@eui/components 17.0.0-next.7 → 17.0.0-next.8

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 (390) hide show
  1. package/directives/eui-clearable.directive.d.ts.map +1 -1
  2. package/esm2022/directives/eui-clearable.directive.mjs +10 -9
  3. package/esm2022/directives/eui-has-permission.directive.mjs +9 -9
  4. package/esm2022/directives/eui-loading.directive.mjs +5 -5
  5. package/esm2022/directives/eui-maxlength.directive.mjs +10 -10
  6. package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
  7. package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +6 -6
  8. package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
  9. package/esm2022/directives/eui-scroll-handler.directive.mjs +15 -15
  10. package/esm2022/directives/eui-smooth-scroll.directive.mjs +13 -13
  11. package/esm2022/directives/eui-template.directive.mjs +9 -9
  12. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +6 -6
  13. package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +5 -5
  14. package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
  15. package/esm2022/eui-alert/eui-alert.component.mjs +9 -9
  16. package/esm2022/eui-all/eui-all.module.mjs +10 -9
  17. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +11 -9
  18. package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
  19. package/esm2022/eui-badge/eui-badge.component.mjs +9 -9
  20. package/esm2022/eui-block-content/eui-block-content.component.mjs +5 -5
  21. package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
  22. package/esm2022/eui-block-document/eui-block-document.component.mjs +5 -5
  23. package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
  24. package/esm2022/eui-button/eui-button.component.mjs +9 -9
  25. package/esm2022/eui-button-group/eui-button-group.component.mjs +9 -9
  26. package/esm2022/eui-buttons/eui-buttons.component.mjs +15 -15
  27. package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
  28. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
  29. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
  30. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
  31. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +4 -4
  32. package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
  33. package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
  34. package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
  35. package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
  36. package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +5 -5
  37. package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
  38. package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
  39. package/esm2022/eui-card/eui-card.component.mjs +5 -5
  40. package/esm2022/eui-card/eui-card.module.mjs +4 -4
  41. package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
  42. package/esm2022/eui-chip/eui-chip.component.mjs +5 -5
  43. package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
  44. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +8 -8
  45. package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
  46. package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
  47. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +15 -15
  48. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +9 -9
  49. package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +7 -7
  50. package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
  51. package/esm2022/eui-datepicker/eui-datepicker.component.mjs +19 -19
  52. package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
  53. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +21 -7
  54. package/esm2022/eui-dialog/eui-dialog.component.mjs +11 -11
  55. package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
  56. package/esm2022/eui-dialog/services/eui-dialog.service.mjs +4 -4
  57. package/esm2022/eui-dimmer/dimmer.component.mjs +5 -5
  58. package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
  59. package/esm2022/eui-disable-content/eui-disable-content.component.mjs +9 -9
  60. package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +3 -3
  61. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
  62. package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
  63. package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
  64. package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +6 -6
  65. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +7 -7
  66. package/esm2022/eui-dropdown/eui-dropdown.module.mjs +8 -8
  67. package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
  68. package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +5 -5
  69. package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
  70. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +11 -11
  71. package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
  72. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +3 -3
  73. package/esm2022/eui-file-upload/eui-file-upload.module.mjs +4 -4
  74. package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +5 -5
  75. package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
  76. package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
  77. package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +4 -4
  78. package/esm2022/eui-growl/eui-growl.component.mjs +5 -5
  79. package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
  80. package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
  81. package/esm2022/eui-icon/eui-icon-svg.component.mjs +6 -6
  82. package/esm2022/eui-icon/eui-icon.component.mjs +5 -5
  83. package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
  84. package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
  85. package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
  86. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +6 -6
  87. package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
  88. package/esm2022/eui-input-group/eui-input-group.component.mjs +4 -4
  89. package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
  90. package/esm2022/eui-input-number/eui-input-number.component.mjs +7 -7
  91. package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
  92. package/esm2022/eui-input-number/eui-number-control.directive.mjs +5 -5
  93. package/esm2022/eui-input-radio/eui-input-radio.component.mjs +6 -6
  94. package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
  95. package/esm2022/eui-input-text/eui-input-text.component.mjs +7 -7
  96. package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
  97. package/esm2022/eui-label/eui-label.component.mjs +5 -5
  98. package/esm2022/eui-label/eui-label.module.mjs +4 -4
  99. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +5 -5
  100. package/esm2022/eui-list/eui-list.component.mjs +5 -5
  101. package/esm2022/eui-list/eui-list.module.mjs +4 -4
  102. package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
  103. package/esm2022/eui-menu/eui-menu-item.component.mjs +5 -5
  104. package/esm2022/eui-menu/eui-menu.component.mjs +5 -5
  105. package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
  106. package/esm2022/eui-message-box/eui-message-box.component.mjs +18 -9
  107. package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
  108. package/esm2022/eui-message-box/services/eui-message-box.service.mjs +6 -6
  109. package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +5 -5
  110. package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +5 -5
  111. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +5 -5
  112. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +5 -5
  113. package/esm2022/eui-overlay/eui-overlay.component.mjs +31 -16
  114. package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
  115. package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +23 -23
  116. package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
  117. package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
  118. package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +5 -5
  119. package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +10 -10
  120. package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
  121. package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +5 -5
  122. package/esm2022/eui-page/eui-page.component.mjs +4 -4
  123. package/esm2022/eui-page/eui-page.module.mjs +4 -4
  124. package/esm2022/eui-paginator/eui-paginator.component.mjs +5 -5
  125. package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
  126. package/esm2022/eui-picker/eui-picker.component.mjs +5 -5
  127. package/esm2022/eui-picker/eui-picker.module.mjs +4 -4
  128. package/esm2022/eui-picker/modal-picker/eui-modal-picker.component.mjs +5 -5
  129. package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +6 -6
  130. package/esm2022/eui-popover/eui-popover.component.mjs +5 -5
  131. package/esm2022/eui-popover/eui-popover.module.mjs +4 -4
  132. package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +5 -5
  133. package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
  134. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +9 -9
  135. package/esm2022/eui-select/eui-select-control.directive.mjs +6 -6
  136. package/esm2022/eui-select/eui-select-multiple.directive.mjs +6 -6
  137. package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +6 -6
  138. package/esm2022/eui-select/eui-select-option.directive.mjs +6 -6
  139. package/esm2022/eui-select/eui-select.component.mjs +6 -6
  140. package/esm2022/eui-select/eui-select.module.mjs +4 -4
  141. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
  142. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
  143. package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +6 -6
  144. package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
  145. package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
  146. package/esm2022/eui-table/eui-table.component.mjs +39 -9
  147. package/esm2022/eui-table/eui-table.module.mjs +4 -4
  148. package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
  149. package/esm2022/eui-table/filter/eui-table-filter.component.mjs +5 -5
  150. package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
  151. package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +5 -5
  152. package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +5 -5
  153. package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
  154. package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
  155. package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +5 -5
  156. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +5 -5
  157. package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +5 -5
  158. package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +8 -8
  159. package/esm2022/eui-tabs/eui-tabs.component.mjs +8 -8
  160. package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
  161. package/esm2022/eui-textarea/auto-resize.directive.mjs +6 -6
  162. package/esm2022/eui-textarea/eui-textarea.component.mjs +6 -6
  163. package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
  164. package/esm2022/eui-timebar/eui-timebar.component.mjs +9 -9
  165. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +6 -6
  166. package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
  167. package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
  168. package/esm2022/eui-timepicker/eui-timepicker.component.mjs +6 -6
  169. package/esm2022/eui-timepicker/eui-timepicker.module.mjs +4 -4
  170. package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +10 -10
  171. package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +10 -10
  172. package/esm2022/eui-tree/eui-tree.component.mjs +9 -9
  173. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
  174. package/esm2022/eui-wizard/eui-wizard.component.mjs +3 -3
  175. package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
  176. package/esm2022/eui-wizard/services/eui-wizard.service.mjs +4 -4
  177. package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
  178. package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
  179. package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
  180. package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +6 -6
  181. package/esm2022/externals/eui-editor/eui-editor.component.mjs +10 -10
  182. package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
  183. package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +5 -5
  184. package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +5 -5
  185. package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +6 -6
  186. package/esm2022/externals/quill/quill-editor.component.mjs +6 -6
  187. package/esm2022/externals/quill/quill.module.mjs +4 -4
  188. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +5 -5
  189. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
  190. package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
  191. package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
  192. package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +5 -5
  193. package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
  194. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
  195. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
  196. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +5 -5
  197. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +5 -5
  198. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +5 -5
  199. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +5 -5
  200. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +6 -6
  201. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
  202. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +5 -5
  203. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
  204. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +5 -5
  205. package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
  206. package/esm2022/layout/eui-app/eui-app.component.mjs +9 -9
  207. package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
  208. package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +5 -5
  209. package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
  210. package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +4 -4
  211. package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +8 -8
  212. package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +6 -6
  213. package/esm2022/layout/eui-footer/footer.component.mjs +5 -5
  214. package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
  215. package/esm2022/layout/eui-header/header-app/header-app.component.mjs +15 -15
  216. package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +6 -6
  217. package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +6 -6
  218. package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +6 -6
  219. package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +6 -6
  220. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +6 -6
  221. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +4 -4
  222. package/esm2022/layout/eui-header/header.component.mjs +3 -3
  223. package/esm2022/layout/eui-header/header.module.mjs +4 -4
  224. package/esm2022/layout/eui-language-selector/language-selector.component.mjs +5 -5
  225. package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
  226. package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +5 -5
  227. package/esm2022/layout/eui-layout.module.mjs +4 -4
  228. package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +3 -3
  229. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
  230. package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
  231. package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
  232. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
  233. package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +4 -4
  234. package/esm2022/layout/eui-search/search.component.mjs +5 -5
  235. package/esm2022/layout/eui-search/search.module.mjs +4 -4
  236. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +5 -5
  237. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
  238. package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
  239. package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
  240. package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
  241. package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
  242. package/esm2022/layout/eui-toolbar/toolbar-item-notifications/toolbar-item-notifications.component.mjs +3 -3
  243. package/esm2022/layout/eui-toolbar/toolbar-item-search/toolbar-item-search.component.mjs +3 -3
  244. package/esm2022/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.mjs +4 -4
  245. package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +5 -5
  246. package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +5 -5
  247. package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +5 -5
  248. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +5 -5
  249. package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
  250. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +5 -5
  251. package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +5 -5
  252. package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +5 -5
  253. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +5 -5
  254. package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
  255. package/esm2022/pipes/eui-is-empty.pipe.mjs +7 -7
  256. package/esm2022/pipes/eui-truncate.pipe.mjs +7 -7
  257. package/esm2022/shared/base/base-states.directive.mjs +3 -3
  258. package/esm2022/shared/base/base.directive.mjs +3 -3
  259. package/esm2022/shared/eui-common-header/common-header.component.mjs +7 -7
  260. package/esm2022/shared/eui-expand-content/eui-expand-content.component.mjs +7 -7
  261. package/esm2022/shared/input.directive.mjs +5 -5
  262. package/eui-all/eui-all.module.d.ts +20 -19
  263. package/eui-all/eui-all.module.d.ts.map +1 -1
  264. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  265. package/eui-dialog/container/eui-dialog-container.component.d.ts +4 -0
  266. package/eui-dialog/container/eui-dialog-container.component.d.ts.map +1 -1
  267. package/eui-message-box/eui-message-box.component.d.ts +4 -1
  268. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  269. package/eui-overlay/eui-overlay.component.d.ts +5 -2
  270. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  271. package/eui-table/eui-table.component.d.ts +1 -0
  272. package/eui-table/eui-table.component.d.ts.map +1 -1
  273. package/fesm2022/eui-components-directives.mjs +89 -88
  274. package/fesm2022/eui-components-directives.mjs.map +1 -1
  275. package/fesm2022/eui-components-eui-alert.mjs +8 -8
  276. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  277. package/fesm2022/eui-components-eui-all.mjs +9 -8
  278. package/fesm2022/eui-components-eui-all.mjs.map +1 -1
  279. package/fesm2022/eui-components-eui-autocomplete.mjs +14 -12
  280. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  281. package/fesm2022/eui-components-eui-badge.mjs +8 -8
  282. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  283. package/fesm2022/eui-components-eui-block-content.mjs +8 -8
  284. package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
  285. package/fesm2022/eui-components-eui-block-document.mjs +8 -8
  286. package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
  287. package/fesm2022/eui-components-eui-button-group.mjs +8 -8
  288. package/fesm2022/eui-components-eui-button-group.mjs.map +1 -1
  289. package/fesm2022/eui-components-eui-button.mjs +8 -8
  290. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  291. package/fesm2022/eui-components-eui-buttons.mjs +14 -14
  292. package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
  293. package/fesm2022/eui-components-eui-card.mjs +48 -48
  294. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  295. package/fesm2022/eui-components-eui-chip-list.mjs +14 -14
  296. package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
  297. package/fesm2022/eui-components-eui-chip.mjs +8 -8
  298. package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
  299. package/fesm2022/eui-components-eui-dashboard-button.mjs +14 -14
  300. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  301. package/fesm2022/eui-components-eui-dashboard-card.mjs +8 -8
  302. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  303. package/fesm2022/eui-components-eui-date-range-selector.mjs +10 -10
  304. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  305. package/fesm2022/eui-components-eui-datepicker.mjs +22 -22
  306. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  307. package/fesm2022/eui-components-eui-dialog.mjs +38 -24
  308. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  309. package/fesm2022/eui-components-eui-dimmer.mjs +8 -8
  310. package/fesm2022/eui-components-eui-dimmer.mjs.map +1 -1
  311. package/fesm2022/eui-components-eui-disable-content.mjs +8 -8
  312. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  313. package/fesm2022/eui-components-eui-discussion-thread.mjs +10 -10
  314. package/fesm2022/eui-components-eui-dropdown.mjs +25 -25
  315. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  316. package/fesm2022/eui-components-eui-feedback-message.mjs +8 -8
  317. package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
  318. package/fesm2022/eui-components-eui-fieldset.mjs +14 -14
  319. package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
  320. package/fesm2022/eui-components-eui-file-upload.mjs +21 -21
  321. package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
  322. package/fesm2022/eui-components-eui-growl.mjs +8 -8
  323. package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
  324. package/fesm2022/eui-components-eui-icon-toggle.mjs +7 -7
  325. package/fesm2022/eui-components-eui-icon.mjs +16 -16
  326. package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
  327. package/fesm2022/eui-components-eui-input-checkbox.mjs +9 -9
  328. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  329. package/fesm2022/eui-components-eui-input-group.mjs +8 -8
  330. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  331. package/fesm2022/eui-components-eui-input-number.mjs +15 -15
  332. package/fesm2022/eui-components-eui-input-number.mjs.map +1 -1
  333. package/fesm2022/eui-components-eui-input-radio.mjs +9 -9
  334. package/fesm2022/eui-components-eui-input-radio.mjs.map +1 -1
  335. package/fesm2022/eui-components-eui-input-text.mjs +10 -10
  336. package/fesm2022/eui-components-eui-input-text.mjs.map +1 -1
  337. package/fesm2022/eui-components-eui-label.mjs +8 -8
  338. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  339. package/fesm2022/eui-components-eui-list.mjs +15 -15
  340. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  341. package/fesm2022/eui-components-eui-menu.mjs +12 -12
  342. package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
  343. package/fesm2022/eui-components-eui-message-box.mjs +26 -17
  344. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  345. package/fesm2022/eui-components-eui-overlay.mjs +46 -31
  346. package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
  347. package/fesm2022/eui-components-eui-page.mjs +59 -59
  348. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  349. package/fesm2022/eui-components-eui-paginator.mjs +8 -8
  350. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  351. package/fesm2022/eui-components-eui-picker.mjs +13 -13
  352. package/fesm2022/eui-components-eui-picker.mjs.map +1 -1
  353. package/fesm2022/eui-components-eui-popover.mjs +13 -13
  354. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  355. package/fesm2022/eui-components-eui-progress-bar.mjs +8 -8
  356. package/fesm2022/eui-components-eui-progress-bar.mjs.map +1 -1
  357. package/fesm2022/eui-components-eui-progress-circle.mjs +8 -8
  358. package/fesm2022/eui-components-eui-progress-circle.mjs.map +1 -1
  359. package/fesm2022/eui-components-eui-select.mjs +29 -29
  360. package/fesm2022/eui-components-eui-select.mjs.map +1 -1
  361. package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
  362. package/fesm2022/eui-components-eui-slide-toggle.mjs +9 -9
  363. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  364. package/fesm2022/eui-components-eui-table.mjs +73 -43
  365. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  366. package/fesm2022/eui-components-eui-tabs.mjs +26 -26
  367. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  368. package/fesm2022/eui-components-eui-textarea.mjs +14 -14
  369. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  370. package/fesm2022/eui-components-eui-timebar.mjs +8 -8
  371. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  372. package/fesm2022/eui-components-eui-timeline.mjs +12 -12
  373. package/fesm2022/eui-components-eui-timeline.mjs.map +1 -1
  374. package/fesm2022/eui-components-eui-timepicker.mjs +9 -9
  375. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  376. package/fesm2022/eui-components-eui-tree.mjs +26 -26
  377. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  378. package/fesm2022/eui-components-eui-wizard.mjs +14 -14
  379. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  380. package/fesm2022/eui-components-externals-eui-editor.mjs +35 -35
  381. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  382. package/fesm2022/eui-components-externals-quill.mjs +9 -9
  383. package/fesm2022/eui-components-externals-quill.mjs.map +1 -1
  384. package/fesm2022/eui-components-layout.mjs +277 -277
  385. package/fesm2022/eui-components-layout.mjs.map +1 -1
  386. package/fesm2022/eui-components-pipes.mjs +14 -14
  387. package/fesm2022/eui-components-shared-base.mjs +6 -6
  388. package/fesm2022/eui-components-shared.mjs +18 -18
  389. package/fesm2022/eui-components-shared.mjs.map +1 -1
  390. package/package.json +1 -1
@@ -185,13 +185,13 @@ export class EuiTextareaComponent extends BaseDirective {
185
185
  this.hostWrapperEl.appendChild(this.valueContainerEl);
186
186
  }
187
187
  }
188
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextareaComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
189
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiTextareaComponent, selector: "textarea[euiTextArea]", inputs: { class: "class", disabled: "disabled", readonly: "readonly", id: "id", isInvalid: "isInvalid", e2eAttr: "e2eAttr" }, host: { listeners: { "input": "onInputChange($event.target.value)", "blur": "onBlur($event.target.value)" }, properties: { "class": "this.class", "attr.disabled": "this.disabled", "attr.readonly": "this.readonly", "attr.id": "this.id", "attr.data-e2e": "this.e2eAttr" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => EuiTextareaComponent)), multi: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-textarea__wrapper{display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);display:block;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));padding:calc(var(--eui-base-spacing-s) - 1px);width:100%;height:auto;resize:vertical}.eui-textarea__wrapper .eui-textarea:active:not([readonly]),.eui-textarea__wrapper .eui-textarea:focus:not([readonly]){z-index:auto;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper{align-items:center;display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible;z-index:var(--eui-base-z-index-clearable-icon)}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon:focus{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-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea::placeholder{color:var(--eui-base-color-grey-50)!important;opacity:1}.eui-textarea__wrapper .eui-textarea[readonly]{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-textarea__wrapper .eui-textarea[readonly]+.eui-feedback-message,.eui-textarea__wrapper .eui-textarea[readonly]+.eui-input-maxlength{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea[disabled]:not([readonly]),.eui-textarea__wrapper .eui-textarea--disabled:not([readonly]){background-color:var(--eui-base-color-grey-5)!important;border:1px solid var(--eui-base-color-grey-25)!important;color:var(--eui-base-color-grey-75);pointer-events:none}.eui-textarea__wrapper .eui-textarea--invalid,.eui-textarea__wrapper .eui-textarea--danger{border:1px solid var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--clearable{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-textarea__wrapper .eui-textarea--clearable-icon:focus{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-textarea__wrapper .eui-textarea--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--loading{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--loading-icon{align-items:center;display:flex}.eui-textarea__wrapper .eui-textarea--loading-icon:after,.eui-textarea__wrapper .eui-textarea--loading-icon:before{content:\"\";height:var(--eui-base-spacing-l);position:absolute;right:var(--eui-base-spacing-s);width:var(--eui-base-spacing-l)}.eui-textarea__wrapper .eui-textarea--loading-icon:before{border:var(--eui-base-spacing-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-textarea__wrapper .eui-textarea--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-base-color-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-base-spacing-2xs);box-shadow:0 0 0 1px transparent}.eui-textarea__wrapper .eui-textarea--loading-icon--sm:after,.eui-textarea__wrapper .eui-textarea--loading-icon--sm:before{height:var(--eui-base-spacing-m);width:var(--eui-base-spacing-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-textarea__wrapper .eui-textarea--disabled,.eui-textarea__wrapper .eui-textarea[disabled]{pointer-events:auto}.eui-textarea__wrapper .eui-textarea__value-container{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly{padding:var(--eui-base-spacing-2xs) 0}.eui-textarea__wrapper--readonly .eui-input-maxlength-wrapper{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly .eui-textarea__value-container{-webkit-appearance:initial;appearance:initial;color:var(--eui-base-color-grey-100);display:inline-block;word-break:break-word}.eui-textarea__wrapper .eui-textarea--readonly{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea--invalid{border:1px solid var(--eui-base-color-danger-100)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
188
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextareaComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
189
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EuiTextareaComponent, selector: "textarea[euiTextArea]", inputs: { class: "class", disabled: "disabled", readonly: "readonly", id: "id", isInvalid: "isInvalid", e2eAttr: "e2eAttr" }, host: { listeners: { "input": "onInputChange($event.target.value)", "blur": "onBlur($event.target.value)" }, properties: { "class": "this.class", "attr.disabled": "this.disabled", "attr.readonly": "this.readonly", "attr.id": "this.id", "attr.data-e2e": "this.e2eAttr" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => EuiTextareaComponent)), multi: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-textarea__wrapper{display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);display:block;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));padding:calc(var(--eui-base-spacing-s) - 1px);width:100%;height:auto;resize:vertical}.eui-textarea__wrapper .eui-textarea:active:not([readonly]),.eui-textarea__wrapper .eui-textarea:focus:not([readonly]){z-index:auto;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-textarea__wrapper .eui-textarea::placeholder{color:var(--eui-base-color-grey-50)!important;opacity:1}.eui-textarea__wrapper .eui-textarea[readonly]{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-textarea__wrapper .eui-textarea[readonly]+.eui-feedback-message,.eui-textarea__wrapper .eui-textarea[readonly]+.eui-input-maxlength{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea[disabled]:not([readonly]),.eui-textarea__wrapper .eui-textarea--disabled:not([readonly]){background-color:var(--eui-base-color-grey-5)!important;border:1px solid var(--eui-base-color-grey-25)!important;color:var(--eui-base-color-grey-75);pointer-events:none}.eui-textarea__wrapper .eui-textarea--invalid,.eui-textarea__wrapper .eui-textarea--danger{border:1px solid var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--clearable{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-textarea__wrapper .eui-textarea--clearable-icon:focus{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-textarea__wrapper .eui-textarea--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--loading{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--loading-icon{align-items:center;display:flex}.eui-textarea__wrapper .eui-textarea--loading-icon:after,.eui-textarea__wrapper .eui-textarea--loading-icon:before{content:\"\";height:var(--eui-base-spacing-l);position:absolute;right:var(--eui-base-spacing-s);width:var(--eui-base-spacing-l)}.eui-textarea__wrapper .eui-textarea--loading-icon:before{border:var(--eui-base-spacing-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-textarea__wrapper .eui-textarea--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-base-color-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-base-spacing-2xs);box-shadow:0 0 0 1px transparent}.eui-textarea__wrapper .eui-textarea--loading-icon--sm:after,.eui-textarea__wrapper .eui-textarea--loading-icon--sm:before{height:var(--eui-base-spacing-m);width:var(--eui-base-spacing-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-textarea__wrapper .eui-textarea--disabled,.eui-textarea__wrapper .eui-textarea[disabled]{pointer-events:auto}.eui-textarea__wrapper .eui-textarea__value-container{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly{padding:var(--eui-base-spacing-2xs) 0}.eui-textarea__wrapper--readonly .eui-input-maxlength-wrapper{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly .eui-textarea__value-container{-webkit-appearance:initial;appearance:initial;color:var(--eui-base-color-grey-100);display:inline-block;word-break:break-word}.eui-textarea__wrapper .eui-textarea--readonly{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea--invalid{border:1px solid var(--eui-base-color-danger-100)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextareaComponent, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextareaComponent, decorators: [{
192
192
  type: Component,
193
- args: [{ selector: 'textarea[euiTextArea]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => EuiTextareaComponent)), multi: true }], styles: [".eui-textarea__wrapper{display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);display:block;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));padding:calc(var(--eui-base-spacing-s) - 1px);width:100%;height:auto;resize:vertical}.eui-textarea__wrapper .eui-textarea:active:not([readonly]),.eui-textarea__wrapper .eui-textarea:focus:not([readonly]){z-index:auto;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper{align-items:center;display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible;z-index:var(--eui-base-z-index-clearable-icon)}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon:focus{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-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea .eui-clearable-wrapper .eui-input-text--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea::placeholder{color:var(--eui-base-color-grey-50)!important;opacity:1}.eui-textarea__wrapper .eui-textarea[readonly]{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-textarea__wrapper .eui-textarea[readonly]+.eui-feedback-message,.eui-textarea__wrapper .eui-textarea[readonly]+.eui-input-maxlength{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea[disabled]:not([readonly]),.eui-textarea__wrapper .eui-textarea--disabled:not([readonly]){background-color:var(--eui-base-color-grey-5)!important;border:1px solid var(--eui-base-color-grey-25)!important;color:var(--eui-base-color-grey-75);pointer-events:none}.eui-textarea__wrapper .eui-textarea--invalid,.eui-textarea__wrapper .eui-textarea--danger{border:1px solid var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--clearable{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-textarea__wrapper .eui-textarea--clearable-icon:focus{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-textarea__wrapper .eui-textarea--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--loading{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--loading-icon{align-items:center;display:flex}.eui-textarea__wrapper .eui-textarea--loading-icon:after,.eui-textarea__wrapper .eui-textarea--loading-icon:before{content:\"\";height:var(--eui-base-spacing-l);position:absolute;right:var(--eui-base-spacing-s);width:var(--eui-base-spacing-l)}.eui-textarea__wrapper .eui-textarea--loading-icon:before{border:var(--eui-base-spacing-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-textarea__wrapper .eui-textarea--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-base-color-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-base-spacing-2xs);box-shadow:0 0 0 1px transparent}.eui-textarea__wrapper .eui-textarea--loading-icon--sm:after,.eui-textarea__wrapper .eui-textarea--loading-icon--sm:before{height:var(--eui-base-spacing-m);width:var(--eui-base-spacing-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-textarea__wrapper .eui-textarea--disabled,.eui-textarea__wrapper .eui-textarea[disabled]{pointer-events:auto}.eui-textarea__wrapper .eui-textarea__value-container{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly{padding:var(--eui-base-spacing-2xs) 0}.eui-textarea__wrapper--readonly .eui-input-maxlength-wrapper{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly .eui-textarea__value-container{-webkit-appearance:initial;appearance:initial;color:var(--eui-base-color-grey-100);display:inline-block;word-break:break-word}.eui-textarea__wrapper .eui-textarea--readonly{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea--invalid{border:1px solid var(--eui-base-color-danger-100)}\n"] }]
194
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { class: [{
193
+ args: [{ selector: 'textarea[euiTextArea]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => EuiTextareaComponent)), multi: true }], styles: [".eui-textarea__wrapper{display:flex;position:relative;width:100%}.eui-textarea__wrapper .eui-textarea{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);display:block;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));padding:calc(var(--eui-base-spacing-s) - 1px);width:100%;height:auto;resize:vertical}.eui-textarea__wrapper .eui-textarea:active:not([readonly]),.eui-textarea__wrapper .eui-textarea:focus:not([readonly]){z-index:auto;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-textarea__wrapper .eui-textarea::placeholder{color:var(--eui-base-color-grey-50)!important;opacity:1}.eui-textarea__wrapper .eui-textarea[readonly]{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-textarea__wrapper .eui-textarea[readonly]+.eui-feedback-message,.eui-textarea__wrapper .eui-textarea[readonly]+.eui-input-maxlength{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea[disabled]:not([readonly]),.eui-textarea__wrapper .eui-textarea--disabled:not([readonly]){background-color:var(--eui-base-color-grey-5)!important;border:1px solid var(--eui-base-color-grey-25)!important;color:var(--eui-base-color-grey-75);pointer-events:none}.eui-textarea__wrapper .eui-textarea--invalid,.eui-textarea__wrapper .eui-textarea--danger{border:1px solid var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--clearable{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--clearable-icon{bottom:calc(var(--eui-base-spacing-s) - 2px);cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-textarea__wrapper .eui-textarea--clearable-icon:focus{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-textarea__wrapper .eui-textarea--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-textarea__wrapper .eui-textarea--loading{padding-right:var(--eui-base-spacing-2xl)}.eui-textarea__wrapper .eui-textarea--loading-icon{align-items:center;display:flex}.eui-textarea__wrapper .eui-textarea--loading-icon:after,.eui-textarea__wrapper .eui-textarea--loading-icon:before{content:\"\";height:var(--eui-base-spacing-l);position:absolute;right:var(--eui-base-spacing-s);width:var(--eui-base-spacing-l)}.eui-textarea__wrapper .eui-textarea--loading-icon:before{border:var(--eui-base-spacing-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-textarea__wrapper .eui-textarea--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-base-color-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-base-spacing-2xs);box-shadow:0 0 0 1px transparent}.eui-textarea__wrapper .eui-textarea--loading-icon--sm:after,.eui-textarea__wrapper .eui-textarea--loading-icon--sm:before{height:var(--eui-base-spacing-m);width:var(--eui-base-spacing-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-35)}.eui-textarea__wrapper .eui-textarea::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-textarea__wrapper .eui-textarea--disabled,.eui-textarea__wrapper .eui-textarea[disabled]{pointer-events:auto}.eui-textarea__wrapper .eui-textarea__value-container{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly{padding:var(--eui-base-spacing-2xs) 0}.eui-textarea__wrapper--readonly .eui-input-maxlength-wrapper{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper--readonly .eui-textarea__value-container{-webkit-appearance:initial;appearance:initial;color:var(--eui-base-color-grey-100);display:inline-block;word-break:break-word}.eui-textarea__wrapper .eui-textarea--readonly{-webkit-appearance:none;appearance:none;display:none}.eui-textarea__wrapper .eui-textarea--invalid{border:1px solid var(--eui-base-color-danger-100)}\n"] }]
194
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { class: [{
195
195
  type: HostBinding,
196
196
  args: ['class']
197
197
  }, {
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
225
225
  type: HostListener,
226
226
  args: ['blur', ['$event.target.value']]
227
227
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10ZXh0YXJlYS9ldWktdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBS0wsaUJBQWlCLEVBSWpCLFVBQVUsRUFDVixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGlCQUFpQixFQUVqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTNDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO2FBQzVDLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQUVyQixJQUVXLEtBQUssQ0FBQyxRQUFnQjtRQUM3QixLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqSCxDQUFDO0lBRUQsSUFFVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMs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QUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQzt3SUE1TlEsb0JBQW9COzRIQUFwQixvQkFBb0IsK2JBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxzRUFGbkcsMkJBQTJCOztrR0FJNUIsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUVJLHVCQUF1QixZQUV2QiwyQkFBMkIsaUJBQ3RCLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxxQkFBcUIsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztnSkFPbEcsS0FBSztzQkFGZixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLO2dCQVVLLFFBQVE7c0JBRmxCLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBWUssUUFBUTtzQkFGbEIsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSztnQkFVTixFQUFFO3NCQUZELFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBSUssU0FBUztzQkFEbkIsS0FBSztnQkFTaUMsT0FBTztzQkFBN0MsV0FBVzt1QkFBQyxlQUFlOztzQkFBRyxLQUFLO2dCQXNCN0IsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFNdkMsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPbkRlc3Ryb3ksXG4gICAgRG9DaGVjayxcbiAgICBJbmplY3RvcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdEZsYWdzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgTmdDb250cm9sLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3RleHRhcmVhW2V1aVRleHRBcmVhXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV1aVRleHRhcmVhQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjbGFzcyhjc3NDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyLnN0eWxlQ2xhc3MgPSBjc3NDbGFzcztcbiAgICB9XG4gICAgcHVibGljIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3RoaXMuaXNJbnZhbGlkID8gYGV1aS10ZXh0YXJlYS0taW52YWxpZGAgOiBgYCwgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLXRleHRhcmVhJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgPyB0cnVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIHNldCBkaXNhYmxlZChzdGF0ZTogYW55KSB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG4gICAgICAgIC8vIHNldCBCYXNlRGlyZWN0aXZlIEF0dHJpYnV0ZVxuICAgICAgICBzdXBlci5ldWlEaXNhYmxlZCA9IHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucmVhZG9ubHknKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5IHx8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlYWRvbmx5KHN0YXRlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoc3RhdGUpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZXVpLXRleHRhcmVhXyR7RXVpVGV4dGFyZWFDb21wb25lbnQuaWRDb3VudGVyKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBzdXBlci5ldWlEYW5nZXIgPSB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRleHRhcmVhJztcbiAgICBwcm90ZWN0ZWQgX3JlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIGhvc3RFbDogSFRNTFRleHRBcmVhRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBob3N0V3JhcHBlckVsOiBIVE1MRGl2RWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgdmFsdWVDb250YWluZXJFbDogSFRNTERpdkVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGNvbnRyb2w6IEZvcm1Db250cm9sIHwgTmdDb250cm9sO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBwdWJsaWMgb25CbHVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwgPSB0aGlzLmNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMudmFsdWVDb250YWluZXJFbCA9IHRoaXMuY3JlYXRlVmFsdWVDb250YWluZXIoKTtcblxuICAgICAgICB0aGlzLmhhbmRsZU1hcmt1cCgpO1xuICAgICAgICAvLyBleHRyYWN0IHRoZSBGb3JtQ29udHJvbCBvciBOZ0NvbnRyb2xcbiAgICAgICAgdGhpcy5jb250cm9sID0gKHRoaXMuaW5qZWN0b3IgYXMgSW5qZWN0b3IpLmdldChOZ0NvbnRyb2wsIG51bGwsIEluamVjdEZsYWdzLk9wdGlvbmFsKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gKHRoaXMuaW5qZWN0b3IgYXMgSW5qZWN0b3IpLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpLmdldENvbnRyb2wodGhpcy5jb250cm9sKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5jb250cm9sLmZvcm0gYXMgRm9ybUNvbnRyb2w7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2V0cyBpbnZhbGlkIHN0YXRlIGlmIGNvbnRyb2wgaXMgcHJlc2VudFxuICAgICAgICBpZiAodGhpcy5jb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgfHwgdGhpcy5jb250cm9sIGluc3RhbmNlb2YgTmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5jb250cm9sLmRpc2FibGVkO1xuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wuZGlydHkgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgPT09ICdJTlZBTElEJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHN0YXR1cyA9PT0gJ0RJU0FCTEVEJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIE5nQ29udHJvbCB8fCB0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgLy8gVE9ETzogRGVsZXRlIHdoZW4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMzAyNzUgaXMgcmVzb2x2ZWRcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IGNoYW5nZXNbJ3JlYWRvbmx5J10uY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ob3N0V3JhcHBlckVsICYmIHRoaXMudmFsdWVDb250YWluZXJFbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5jbGFzc0xpc3QudG9nZ2xlKCdldWktdGV4dGFyZWFfX3dyYXBwZXItLXJlYWRvbmx5JywgISFyZWFkb25seSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5ob3N0RWwgJiYgdGhpcy52YWx1ZUNvbnRhaW5lckVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RWwuY2xhc3NMaXN0LnRvZ2dsZSgnZXVpLXRleHRhcmVhLS1yZWFkb25seScsICEhcmVhZG9ubHkpO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDb250YWluZXJFbC5pbm5lclRleHQgPSB0aGlzLmhvc3RFbC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1snZXVpRGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlc1snZXVpRGlzYWJsZWQnXS5jdXJyZW50VmFsdWUgPyB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoY2hhbmdlc1snZXVpRGlzYWJsZWQnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICAvLyBjbGVhbnVwIERPTSBsZWZ0b3ZlcnNcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDb250YWluZXJFbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmhvc3RFbC5wYXJlbnRFbGVtZW50LCB0aGlzLnZhbHVlQ29udGFpbmVyRWwpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaG9zdFdyYXBwZXJFbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmhvc3RQYXJlbnRFbCwgdGhpcy5ob3N0V3JhcHBlckVsKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZUNvbnRhaW5lckVsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLnZhbHVlQ29udGFpbmVyRWwsICdpbm5lclRleHQnLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgb2JqKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdEVsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmhvc3RFbCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UoXyk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoXyk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQoXyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlcicpO1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlci0tcmVhZG9ubHknKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsLCAnZXVpLXRleHRhcmVhLS1yZWFkb25seScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlci0tcmVhZG9ubHknKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsLCAnZXVpLXRleHRhcmVhLS1yZWFkb25seScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgRGl2IGVsZW1lbnQgd2hpY2ggd2lsbCBob2xkIHRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gcmVhZG9ubHlcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVWYWx1ZUNvbnRhaW5lcigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHZhbHVlQ29udGFpbmVyID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHZhbHVlQ29udGFpbmVyLCAnZXVpLXRleHRhcmVhX192YWx1ZS1jb250YWluZXInKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodmFsdWVDb250YWluZXIsICdpbm5lclRleHQnLCB0aGlzLmhvc3RFbC52YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZUNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBtYXJrdXAgYXJvdW5kIHRoZSB0ZXh0YXJlYS4gQXBwZW5kIHRleHRhcmVhIG9udG8gYSBjb250YWluZXIgd2l0aCBkaXZcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXJrdXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvc3RQYXJlbnRFbCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5yZXBsYWNlQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5ob3N0RWwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMudmFsdWVDb250YWluZXJFbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10ZXh0YXJlYS9ldWktdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBS0wsaUJBQWlCLEVBSWpCLFVBQVUsRUFDVixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGlCQUFpQixFQUVqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTNDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO2FBQzVDLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQUVyQixJQUVXLEtBQUssQ0FBQyxRQUFnQjtRQUM3QixLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqSCxDQUFDO0lBRUQsSUFFVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMs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QUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQzt3SUE1TlEsb0JBQW9COzRIQUFwQixvQkFBb0IsK2JBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxzRUFGbkcsMkJBQTJCOztrR0FJNUIsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUVJLHVCQUF1QixZQUV2QiwyQkFBMkIsaUJBQ3RCLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxxQkFBcUIsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzs4SEFPbEcsS0FBSztzQkFGZixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLO2dCQVVLLFFBQVE7c0JBRmxCLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBWUssUUFBUTtzQkFGbEIsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSztnQkFVTixFQUFFO3NCQUZELFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBSUssU0FBUztzQkFEbkIsS0FBSztnQkFTaUMsT0FBTztzQkFBN0MsV0FBVzt1QkFBQyxlQUFlOztzQkFBRyxLQUFLO2dCQXNCN0IsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFNdkMsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPbkRlc3Ryb3ksXG4gICAgRG9DaGVjayxcbiAgICBJbmplY3RvcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdEZsYWdzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgTmdDb250cm9sLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3RleHRhcmVhW2V1aVRleHRBcmVhXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV1aVRleHRhcmVhQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjbGFzcyhjc3NDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyLnN0eWxlQ2xhc3MgPSBjc3NDbGFzcztcbiAgICB9XG4gICAgcHVibGljIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3RoaXMuaXNJbnZhbGlkID8gYGV1aS10ZXh0YXJlYS0taW52YWxpZGAgOiBgYCwgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLXRleHRhcmVhJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgPyB0cnVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIHNldCBkaXNhYmxlZChzdGF0ZTogYW55KSB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG4gICAgICAgIC8vIHNldCBCYXNlRGlyZWN0aXZlIEF0dHJpYnV0ZVxuICAgICAgICBzdXBlci5ldWlEaXNhYmxlZCA9IHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucmVhZG9ubHknKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5IHx8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlYWRvbmx5KHN0YXRlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoc3RhdGUpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZXVpLXRleHRhcmVhXyR7RXVpVGV4dGFyZWFDb21wb25lbnQuaWRDb3VudGVyKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBzdXBlci5ldWlEYW5nZXIgPSB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRleHRhcmVhJztcbiAgICBwcm90ZWN0ZWQgX3JlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIGhvc3RFbDogSFRNTFRleHRBcmVhRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBob3N0V3JhcHBlckVsOiBIVE1MRGl2RWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgdmFsdWVDb250YWluZXJFbDogSFRNTERpdkVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGNvbnRyb2w6IEZvcm1Db250cm9sIHwgTmdDb250cm9sO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBwdWJsaWMgb25CbHVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwgPSB0aGlzLmNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMudmFsdWVDb250YWluZXJFbCA9IHRoaXMuY3JlYXRlVmFsdWVDb250YWluZXIoKTtcblxuICAgICAgICB0aGlzLmhhbmRsZU1hcmt1cCgpO1xuICAgICAgICAvLyBleHRyYWN0IHRoZSBGb3JtQ29udHJvbCBvciBOZ0NvbnRyb2xcbiAgICAgICAgdGhpcy5jb250cm9sID0gKHRoaXMuaW5qZWN0b3IgYXMgSW5qZWN0b3IpLmdldChOZ0NvbnRyb2wsIG51bGwsIEluamVjdEZsYWdzLk9wdGlvbmFsKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gKHRoaXMuaW5qZWN0b3IgYXMgSW5qZWN0b3IpLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpLmdldENvbnRyb2wodGhpcy5jb250cm9sKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5jb250cm9sLmZvcm0gYXMgRm9ybUNvbnRyb2w7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2V0cyBpbnZhbGlkIHN0YXRlIGlmIGNvbnRyb2wgaXMgcHJlc2VudFxuICAgICAgICBpZiAodGhpcy5jb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgfHwgdGhpcy5jb250cm9sIGluc3RhbmNlb2YgTmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5jb250cm9sLmRpc2FibGVkO1xuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wuZGlydHkgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgPT09ICdJTlZBTElEJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHN0YXR1cyA9PT0gJ0RJU0FCTEVEJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIE5nQ29udHJvbCB8fCB0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgLy8gVE9ETzogRGVsZXRlIHdoZW4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMzAyNzUgaXMgcmVzb2x2ZWRcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IGNoYW5nZXNbJ3JlYWRvbmx5J10uY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ob3N0V3JhcHBlckVsICYmIHRoaXMudmFsdWVDb250YWluZXJFbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5jbGFzc0xpc3QudG9nZ2xlKCdldWktdGV4dGFyZWFfX3dyYXBwZXItLXJlYWRvbmx5JywgISFyZWFkb25seSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5ob3N0RWwgJiYgdGhpcy52YWx1ZUNvbnRhaW5lckVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RWwuY2xhc3NMaXN0LnRvZ2dsZSgnZXVpLXRleHRhcmVhLS1yZWFkb25seScsICEhcmVhZG9ubHkpO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDb250YWluZXJFbC5pbm5lclRleHQgPSB0aGlzLmhvc3RFbC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1snZXVpRGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlc1snZXVpRGlzYWJsZWQnXS5jdXJyZW50VmFsdWUgPyB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoY2hhbmdlc1snZXVpRGlzYWJsZWQnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICAvLyBjbGVhbnVwIERPTSBsZWZ0b3ZlcnNcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDb250YWluZXJFbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmhvc3RFbC5wYXJlbnRFbGVtZW50LCB0aGlzLnZhbHVlQ29udGFpbmVyRWwpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaG9zdFdyYXBwZXJFbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmhvc3RQYXJlbnRFbCwgdGhpcy5ob3N0V3JhcHBlckVsKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZUNvbnRhaW5lckVsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLnZhbHVlQ29udGFpbmVyRWwsICdpbm5lclRleHQnLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgb2JqKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdEVsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmhvc3RFbCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UoXyk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoXyk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQoXyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlcicpO1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlci0tcmVhZG9ubHknKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsLCAnZXVpLXRleHRhcmVhLS1yZWFkb25seScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3Mod3JhcHBlciwgJ2V1aS10ZXh0YXJlYV9fd3JhcHBlci0tcmVhZG9ubHknKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsLCAnZXVpLXRleHRhcmVhLS1yZWFkb25seScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgRGl2IGVsZW1lbnQgd2hpY2ggd2lsbCBob2xkIHRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gcmVhZG9ubHlcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVWYWx1ZUNvbnRhaW5lcigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHZhbHVlQ29udGFpbmVyID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHZhbHVlQ29udGFpbmVyLCAnZXVpLXRleHRhcmVhX192YWx1ZS1jb250YWluZXInKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodmFsdWVDb250YWluZXIsICdpbm5lclRleHQnLCB0aGlzLmhvc3RFbC52YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZUNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBtYXJrdXAgYXJvdW5kIHRoZSB0ZXh0YXJlYS4gQXBwZW5kIHRleHRhcmVhIG9udG8gYSBjb250YWluZXIgd2l0aCBkaXZcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXJrdXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvc3RQYXJlbnRFbCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5yZXBsYWNlQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5ob3N0RWwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMudmFsdWVDb250YWluZXJFbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -4,11 +4,11 @@ import { EuiTextareaComponent } from './eui-textarea.component';
4
4
  import { AutoResizeDirective } from './auto-resize.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  export class EuiTextAreaModule {
7
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextAreaModule, declarations: [EuiTextareaComponent, AutoResizeDirective], imports: [CommonModule], exports: [EuiTextareaComponent, AutoResizeDirective] }); }
9
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextAreaModule, imports: [CommonModule] }); }
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextAreaModule, declarations: [EuiTextareaComponent, AutoResizeDirective], imports: [CommonModule], exports: [EuiTextareaComponent, AutoResizeDirective] }); }
9
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextAreaModule, imports: [CommonModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTextAreaModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTextAreaModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [CommonModule],
@@ -274,13 +274,13 @@ export class EuiTimebarComponent {
274
274
  return 0;
275
275
  }
276
276
  }
277
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.EuiAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
278
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);font-size:var(--eui-base-font-size-s);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{font-size:var(--eui-base-font-size-s);font-weight:700;margin-top:6.5rem}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
277
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.EuiAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
278
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);font-size:var(--eui-base-font-size-s);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{font-size:var(--eui-base-font-size-s);font-weight:700;margin-top:6.5rem}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
279
279
  }
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarComponent, decorators: [{
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarComponent, decorators: [{
281
281
  type: Component,
282
282
  args: [{ selector: 'eui-timebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);font-size:var(--eui-base-font-size-s);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{font-size:var(--eui-base-font-size-s);font-weight:700;margin-top:6.5rem}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"] }]
283
- }], ctorParameters: function () { return [{ type: i1.EuiAppShellService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { container: [{
283
+ }], ctorParameters: () => [{ type: i1.EuiAppShellService }, { type: i0.ChangeDetectorRef }], propDecorators: { container: [{
284
284
  type: ViewChild,
285
285
  args: ['container']
286
286
  }], e2eAttr: [{
@@ -307,11 +307,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
307
307
  type: Input
308
308
  }] } });
309
309
  export class EuiTimebarModule {
310
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
311
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarModule, declarations: [EuiTimebarComponent], imports: [CommonModule], exports: [EuiTimebarComponent] }); }
312
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarModule, imports: [CommonModule] }); }
310
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
311
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarModule, declarations: [EuiTimebarComponent], imports: [CommonModule], exports: [EuiTimebarComponent] }); }
312
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarModule, imports: [CommonModule] }); }
313
313
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarModule, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EuiTimebarModule, decorators: [{
315
315
  type: NgModule,
316
316
  args: [{
317
317
  imports: [CommonModule],
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
319
319
  declarations: [EuiTimebarComponent],
320
320
  }]
321
321
  }] });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0NBUzVCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQXFCNUIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFL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Z0NBQWdDLEVBQUU7d0JBQ3ZDLFVBQVUsR0FBRyxDQUFDLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNILFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDbkI7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQzt3SUE5U1EsbUJBQW1COzRIQUFuQixtQkFBbUIsOGpCQ3hDaEMsdWxSQXNKQTs7a0dEOUdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7eUlBZ0JiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUYsWUFBWTtzQkFEZixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0NBQWdDO3NCQURuQyxLQUFLO2dCQVNGLHdCQUF3QjtzQkFEM0IsS0FBSzs7QUFpUVYsTUFBTSxPQUFPLGdCQUFnQjt3SUFBaEIsZ0JBQWdCO3lJQUFoQixnQkFBZ0IsaUJBdFRoQixtQkFBbUIsYUFrVGxCLFlBQVksYUFsVGIsbUJBQW1CO3lJQXNUbkIsZ0JBQWdCLFlBSmYsWUFBWTs7a0dBSWIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSwgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdZWVlZLU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyQuc3Vic2NyaWJlKChia3BzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQnJlYWtwb2ludENoYW5nZShia3BzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZU51bGxJdGVtcygpO1xuICAgICAgICB0aGlzLnNvcnRJdGVtcygpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCBzdGVwVHlwZUNsYXNzID0gJyc7XG4gICAgICAgICAgICBsZXQgdG9vbHRpcENvbG9yID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoaXRlbS5zdGVwVHlwZSkge1xuICAgICAgICAgICAgICAgIHN0ZXBUeXBlQ2xhc3MgPSAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvciA9IGl0ZW0uc3RlcFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gL15cXGQrXFwuXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCkgfHwgL15cXGQrJC8udGVzdChpdGVtLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5sYWJlbCA9IGZvcm1hdE51bWJlcihpdGVtLmxhYmVsLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtc1VJLnB1c2goe1xuICAgICAgICAgICAgICAgIHBlcmM6IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShpdGVtLmRhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSksXG4gICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuY3VycmVudERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLm1hcmtlZERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtOCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGFydExhYmVsIHx8IHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICAgICAgdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQgPSB0aGlzLmlzR3JvdXBPdmVybGFwcGluZ0xhYmVscztcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlc1snbWFya2VkRGF0ZSddO1xuICAgICAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBEYXRlID0gdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdLmRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrZWRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKGNoYW5nZS5jdXJyZW50VmFsdWUgYXMgRGF0ZSwgc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQnJlYWtwb2ludENoYW5nZShia3BzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJrcHMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogRXVpVGltZWJhckl0ZW1VSSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLml0ZW0ubGFiZWw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZU51bGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pdGVtc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICAvLyBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlOlxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuc29ydCgoYTogRXVpVGltZWJhckl0ZW0sIGI6IEV1aVRpbWViYXJJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEgJiYgYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBmbGV4LWNvbnRhaW5lclwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19zdGFydC1sYWJlbFwiPlxuICAgICAgICB7eyBzdGFydExhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJcIiBbc3R5bGUubWFyZ2luQm90dG9tLnB4XT1cImV4dHJhVGltZWxpbmVMYWJlbFNwYWNlXCIgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJjdXJyZW50UGVyYyA+PSAxMDAgPyAxMDAgOiBjdXJyZW50UGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hcmtlZERhdGVcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCIgW3N0eWxlLndpZHRoLiVdPVwibWFya2VkUGVyYyA+PSAxMDAgPyAxMDAgOiBtYXJrZWRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtXCIgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbS0td2l0aC1lbmQtZGF0ZV09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmdyb3VwRW5kRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZWJhcl9fZ3JvdXBlZF9fc3RlcF09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVwiPnt7IGl0ZW0uZ3JvdXBMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIiB0aXRsZT1cInt7IGl0ZW0uaXRlbS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1jaXJjbGVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1hcmtlZERhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrZWREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX2VuZC1sYWJlbFwiPlxuICAgICAgICB7eyBlbmRMYWJlbCB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGZsZXgtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tZncgdXgtaWNvbi1jaXJjbGUgZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWljb24tLXt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93TGVnZW5kR2VuZXJhdGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbCB8fCBpdGVtLmlzR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwSW5kZXggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVuZExhYmVsXCIgY2xhc3M9XCJjb2wtMlwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0NBUzVCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQXFCNUIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFL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Z0NBQWdDLEVBQUU7d0JBQ3ZDLFVBQVUsR0FBRyxDQUFDLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNILFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDbkI7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQzt3SUE5U1EsbUJBQW1COzRIQUFuQixtQkFBbUIsOGpCQ3hDaEMsdWxSQXNKQTs7a0dEOUdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7dUhBZ0JiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUYsWUFBWTtzQkFEZixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0NBQWdDO3NCQURuQyxLQUFLO2dCQVNGLHdCQUF3QjtzQkFEM0IsS0FBSzs7QUFpUVYsTUFBTSxPQUFPLGdCQUFnQjt3SUFBaEIsZ0JBQWdCO3lJQUFoQixnQkFBZ0IsaUJBdFRoQixtQkFBbUIsYUFrVGxCLFlBQVksYUFsVGIsbUJBQW1CO3lJQXNUbkIsZ0JBQWdCLFlBSmYsWUFBWTs7a0dBSWIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSwgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdZWVlZLU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyQuc3Vic2NyaWJlKChia3BzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQnJlYWtwb2ludENoYW5nZShia3BzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZU51bGxJdGVtcygpO1xuICAgICAgICB0aGlzLnNvcnRJdGVtcygpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCBzdGVwVHlwZUNsYXNzID0gJyc7XG4gICAgICAgICAgICBsZXQgdG9vbHRpcENvbG9yID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoaXRlbS5zdGVwVHlwZSkge1xuICAgICAgICAgICAgICAgIHN0ZXBUeXBlQ2xhc3MgPSAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvciA9IGl0ZW0uc3RlcFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gL15cXGQrXFwuXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCkgfHwgL15cXGQrJC8udGVzdChpdGVtLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5sYWJlbCA9IGZvcm1hdE51bWJlcihpdGVtLmxhYmVsLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtc1VJLnB1c2goe1xuICAgICAgICAgICAgICAgIHBlcmM6IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShpdGVtLmRhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSksXG4gICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuY3VycmVudERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLm1hcmtlZERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtOCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGFydExhYmVsIHx8IHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICAgICAgdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQgPSB0aGlzLmlzR3JvdXBPdmVybGFwcGluZ0xhYmVscztcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlc1snbWFya2VkRGF0ZSddO1xuICAgICAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBEYXRlID0gdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdLmRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrZWRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKGNoYW5nZS5jdXJyZW50VmFsdWUgYXMgRGF0ZSwgc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQnJlYWtwb2ludENoYW5nZShia3BzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJrcHMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogRXVpVGltZWJhckl0ZW1VSSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLml0ZW0ubGFiZWw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZU51bGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pdGVtc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICAvLyBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlOlxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuc29ydCgoYTogRXVpVGltZWJhckl0ZW0sIGI6IEV1aVRpbWViYXJJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEgJiYgYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBmbGV4LWNvbnRhaW5lclwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19zdGFydC1sYWJlbFwiPlxuICAgICAgICB7eyBzdGFydExhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJcIiBbc3R5bGUubWFyZ2luQm90dG9tLnB4XT1cImV4dHJhVGltZWxpbmVMYWJlbFNwYWNlXCIgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJjdXJyZW50UGVyYyA+PSAxMDAgPyAxMDAgOiBjdXJyZW50UGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hcmtlZERhdGVcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCIgW3N0eWxlLndpZHRoLiVdPVwibWFya2VkUGVyYyA+PSAxMDAgPyAxMDAgOiBtYXJrZWRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtXCIgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbS0td2l0aC1lbmQtZGF0ZV09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmdyb3VwRW5kRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZWJhcl9fZ3JvdXBlZF9fc3RlcF09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVwiPnt7IGl0ZW0uZ3JvdXBMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIiB0aXRsZT1cInt7IGl0ZW0uaXRlbS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1jaXJjbGVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1hcmtlZERhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrZWREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX2VuZC1sYWJlbFwiPlxuICAgICAgICB7eyBlbmRMYWJlbCB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGZsZXgtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tZncgdXgtaWNvbi1jaXJjbGUgZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWljb24tLXt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93TGVnZW5kR2VuZXJhdGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbCB8fCBpdGVtLmlzR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwSW5kZXggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVuZExhYmVsXCIgY2xhc3M9XCJjb2wtMlwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=