@ethlete/cdk 4.1.0 → 4.2.1

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 (213) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +6 -7
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +4 -4
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +4 -4
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +5 -5
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +4 -4
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +5 -5
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +9 -18
  9. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +4 -4
  10. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +4 -4
  11. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +7 -7
  12. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +7 -7
  13. package/esm2022/lib/components/button/components/button/button.component.mjs +5 -5
  14. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +7 -7
  15. package/esm2022/lib/components/button/directives/button/button.directive.mjs +4 -4
  16. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +5 -5
  17. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +12 -12
  18. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +4 -4
  19. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +4 -4
  20. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +4 -4
  21. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +4 -4
  22. package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +4 -4
  23. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +5 -5
  24. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +4 -4
  25. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +4 -4
  26. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +4 -4
  27. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +4 -4
  28. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +4 -4
  29. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +4 -4
  30. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +4 -4
  31. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +4 -4
  32. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +4 -4
  33. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +4 -4
  34. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +4 -4
  35. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +6 -6
  36. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +4 -4
  37. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +4 -4
  38. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +6 -6
  39. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +4 -4
  40. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +4 -4
  41. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +4 -4
  42. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +4 -4
  43. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +4 -4
  44. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +4 -4
  45. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +4 -4
  46. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +4 -4
  47. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +4 -4
  48. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +4 -4
  49. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +4 -4
  50. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +4 -4
  51. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +4 -4
  52. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +4 -4
  53. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +4 -4
  54. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +4 -4
  55. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +4 -4
  56. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +4 -4
  57. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +4 -4
  58. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +4 -4
  59. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +4 -4
  60. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +4 -4
  61. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +4 -4
  62. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +4 -4
  63. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +5 -5
  64. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +4 -4
  65. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +4 -4
  66. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +4 -4
  67. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +4 -4
  68. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +7 -9
  69. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +5 -5
  70. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +4 -4
  71. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +4 -4
  72. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +4 -4
  73. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +4 -4
  74. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +4 -4
  75. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +4 -4
  76. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +7 -9
  77. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +8 -8
  78. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +6 -6
  79. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +4 -4
  80. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +4 -4
  81. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +4 -4
  82. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +6 -6
  83. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +5 -5
  84. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +4 -4
  85. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +4 -4
  86. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +4 -4
  87. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +4 -4
  88. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +6 -6
  89. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +4 -4
  90. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +4 -5
  91. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +5 -5
  92. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +4 -4
  93. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +4 -4
  94. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +4 -4
  95. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +4 -4
  96. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +4 -4
  97. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +6 -6
  98. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +6 -6
  99. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +4 -4
  100. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +4 -4
  101. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +5 -5
  102. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +4 -4
  103. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +4 -4
  104. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +5 -5
  105. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +4 -4
  106. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +4 -4
  107. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +4 -4
  108. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +5 -5
  109. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +4 -4
  110. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +4 -4
  111. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +4 -4
  112. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +4 -4
  113. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +4 -4
  114. package/esm2022/lib/components/forms/services/input-state.service.mjs +4 -4
  115. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +4 -4
  116. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +5 -5
  117. package/esm2022/lib/components/forms/utils/input.base.mjs +4 -4
  118. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +4 -4
  119. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +4 -4
  120. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +4 -4
  121. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +7 -7
  122. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +6 -6
  123. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +4 -4
  124. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +4 -4
  125. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +5 -5
  126. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +4 -4
  127. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +6 -6
  128. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +7 -7
  129. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +4 -4
  130. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +6 -6
  131. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +4 -4
  132. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +5 -5
  133. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +6 -6
  134. package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +8 -8
  135. package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +7 -7
  136. package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +4 -4
  137. package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +4 -4
  138. package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +4 -4
  139. package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +4 -4
  140. package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +5 -5
  141. package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +4 -4
  142. package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +5 -5
  143. package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +5 -5
  144. package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +4 -4
  145. package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +4 -4
  146. package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +5 -5
  147. package/esm2022/lib/components/overlay/components/menu/menu.mjs +5 -5
  148. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +6 -6
  149. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +4 -4
  150. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +4 -4
  151. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
  152. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +8 -8
  153. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -5
  154. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +8 -8
  155. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -5
  156. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +4 -4
  157. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +5 -5
  158. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +4 -4
  159. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +7 -7
  160. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +4 -4
  161. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +4 -4
  162. package/esm2022/lib/components/pagination/utils/pagination.util.mjs +1 -1
  163. package/esm2022/lib/components/picture/picture-data.directive.mjs +4 -4
  164. package/esm2022/lib/components/picture/picture.component.mjs +8 -8
  165. package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +4 -4
  166. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +7 -7
  167. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +5 -6
  168. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +4 -4
  169. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +241 -140
  170. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +4 -4
  171. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +4 -4
  172. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +6 -7
  173. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +4 -4
  174. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +4 -4
  175. package/esm2022/lib/components/table/components/table/table.component.mjs +6 -6
  176. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +4 -4
  177. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +4 -4
  178. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +6 -6
  179. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +4 -4
  180. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +4 -4
  181. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +4 -4
  182. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +4 -4
  183. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +6 -6
  184. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +4 -4
  185. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +6 -6
  186. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +4 -4
  187. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +6 -6
  188. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +4 -4
  189. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +4 -4
  190. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +4 -4
  191. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +6 -6
  192. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +4 -4
  193. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +4 -4
  194. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +7 -9
  195. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +4 -4
  196. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +6 -6
  197. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +5 -5
  198. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +6 -6
  199. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +4 -4
  200. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +4 -4
  201. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +6 -6
  202. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +4 -4
  203. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +6 -6
  204. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +4 -4
  205. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +4 -4
  206. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +22 -14
  207. package/esm2022/lib/services/swipe-handler.service.mjs +4 -4
  208. package/fesm2022/ethlete-cdk.mjs +988 -896
  209. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  210. package/lib/components/picture/picture.component.d.ts +1 -1
  211. package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +73 -33
  212. package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +1 -1
  213. package/package.json +8 -8
@@ -261,12 +261,12 @@ export class OverlayContainerComponent extends CdkDialogContainer {
261
261
  }
262
262
  }
263
263
  }
264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1.RootBoundaryDirective }, { directive: i1.AnimatedLifecycleDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet></ng-template>`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
264
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
265
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1.RootBoundaryDirective }, { directive: i1.AnimatedLifecycleDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet />`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
266
266
  }
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayContainerComponent, decorators: [{
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayContainerComponent, decorators: [{
268
268
  type: Component,
269
- args: [{ selector: 'et-overlay-container', template: `<ng-template cdkPortalOutlet></ng-template>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
269
+ args: [{ selector: 'et-overlay-container', template: `<ng-template cdkPortalOutlet />`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
270
270
  class: 'et-overlay',
271
271
  tabindex: '-1',
272
272
  '[attr.aria-modal]': '_config.ariaModal',
@@ -277,5 +277,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
277
277
  '[attr.aria-describedby]': '_config.ariaDescribedBy || null',
278
278
  '[class.et-with-default-animation]': '!_config.customAnimated',
279
279
  }, standalone: true, imports: [PortalModule], hostDirectives: [RootBoundaryDirective, AnimatedLifecycleDirective, ProvideThemeDirective], styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"] }]
280
- }], ctorParameters: function () { return []; } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS1jb250YWluZXIvb3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUlqRCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVksRUFBdUIsRUFBRTtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQXVCRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWlDO0lBYzlFO1FBQ0UsS0FBSyxDQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFDbEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDaEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUN0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUNkLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUNyQixDQUFDO1FBdkJhLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUYsa0JBQWEsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU5Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUvQyxlQUFVLEdBQXNCLElBQUksQ0FBQztRQUU1QixlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQWNyQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVrQixnQkFBZ0I7UUFDakMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFFcEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFa0Isb0JBQW9CO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWtDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFFN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRWhDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBNEIsQ0FBQztRQUN6RCxJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDO1FBQ2xDLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUN0QixFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztZQUN4RSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ2hCLE1BQU0sQ0FBQyxTQUFTLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUN4RyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRWYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdEMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDO1FBRUYsS0FBSyxDQUFDLFNBQVMsQ0FBYSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsU0FBUyxDQUFhLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUNuRixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUN4QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksaUJBQWlCO2dCQUFFLE9BQU87WUFFOUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFDM0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUV6QyxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksR0FBRyxLQUFLLFVBQVUsSUFBSSxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLEdBQUc7Z0JBQUUsT0FBTztZQUV6RyxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsU0FBUyxDQUFRLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQzthQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDbkYsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUxQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRTtnQkFDOUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixPQUFPO2FBQ1I7WUFFRCxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFFekIsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUVMLEtBQUssQ0FBQyxTQUFTLENBQWEsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBYSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDbEYsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDeEMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksaUJBQWlCO2dCQUFFLE9BQU87WUFFbEQsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO2dCQUUzQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsRUFBZSxFQUFzQixFQUFFO29CQUM1RSxJQUFJLENBQUMsRUFBRTt3QkFBRSxPQUFPLElBQUksQ0FBQztvQkFFckIsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTt3QkFDckUsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7NEJBQzdCLE9BQU8sRUFBRSxDQUFDO3lCQUNYO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUM3QixPQUFPLEVBQUUsQ0FBQzt5QkFDWDtxQkFDRjtvQkFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLHNCQUFzQjt3QkFBRSxPQUFPLElBQUksQ0FBQztvQkFFMUYsT0FBTyw2QkFBNkIsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixNQUFNLGlCQUFpQixHQUFHLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVoRSxJQUFJLGlCQUFpQixFQUFFO29CQUNyQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7d0JBQ3BDLElBQUksaUJBQWlCLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTs0QkFDckMsTUFBTSxHQUFHLElBQUksQ0FBQzt5QkFDZjtxQkFDRjt5QkFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFO3dCQUN4QyxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDOzRCQUN2QyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxFQUMvRDs0QkFDQSxNQUFNLEdBQUcsSUFBSSxDQUFDO3lCQUNmO3FCQUNGO3lCQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7d0JBQzFDLElBQUksaUJBQWlCLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTs0QkFDdEMsTUFBTSxHQUFHLElBQUksQ0FBQzt5QkFDZjtxQkFDRjt5QkFBTTt3QkFDTCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDOzRCQUN4QyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUM3RDs0QkFDQSxNQUFNLEdBQUcsSUFBSSxDQUFDO3lCQUNmO3FCQUNGO29CQUVELElBQUksTUFBTSxFQUFFO3dCQUNWLFVBQVUsRUFBRSxDQUFDO3dCQUViLE9BQU87cUJBQ1I7aUJBQ0Y7YUFDRjtZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFFdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV2RSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixLQUFLLENBQUMsU0FBUyxDQUFhLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxTQUFTLENBQWEsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQy9FLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksaUJBQWlCO2dCQUFFLE9BQU87WUFFbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRWYsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsT0FBTztZQUV2QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXRFLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0MsT0FBTzthQUNSO1lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7b0JBQ3JCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSzt3QkFBRSxPQUFPO29CQUVoRCxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2YsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFaEIsT0FBTztpQkFDUjtnQkFFRCxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBZSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxLQUF1QixFQUFFLE1BQWtDO1FBQ3BHLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFdkMsSUFBSSxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQzdCLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLGNBQWMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUs7YUFDNUQsQ0FBQztTQUNIO2FBQU0sSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQ2pDLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLGNBQWMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUs7YUFDNUQsQ0FBQztTQUNIO2FBQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLGNBQWMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUs7YUFDNUQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPO2dCQUNMLFNBQVMsRUFBRSxjQUFjLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLO2FBQzVELENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxLQUFvQixFQUFFLE1BQWtDO1FBQ2hHLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEdBQUcsR0FBRyxFQUFFLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNyRixNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXpFLE1BQU0sT0FBTyxHQUFHO1lBQ2QsS0FBSyxFQUFFLEdBQUc7WUFDVixFQUFFLEVBQUUsQ0FBQyxFQUFlLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztTQUMvRCxDQUFDO1FBRUYsSUFBSSxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQzdCLElBQUksU0FBUyxHQUFHLG9CQUFvQixJQUFJLGVBQWUsR0FBRyxvQkFBb0IsRUFBRTtnQkFDOUUsT0FBTztvQkFDTCxTQUFTLEVBQUUsZUFBZTtvQkFDMUIsVUFBVSxFQUFFLG1DQUFtQztvQkFDL0MsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN6QyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQzFCLElBQUksU0FBUyxHQUFHLENBQUMsb0JBQW9CLElBQUksZUFBZSxHQUFHLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ2hGLE9BQU87b0JBQ0wsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLFVBQVUsRUFBRSxtQ0FBbUM7b0JBQy9DLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDekMsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjthQUFNLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUNsQyxJQUFJLFNBQVMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLGVBQWUsR0FBRyxDQUFDLG9CQUFvQixFQUFFO2dCQUNoRixPQUFPO29CQUNMLFNBQVMsRUFBRSxlQUFlO29CQUMxQixVQUFVLEVBQUUsbUNBQW1DO29CQUMvQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQ3pDLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7YUFBTTtZQUNMLElBQUksU0FBUyxHQUFHLG9CQUFvQixJQUFJLGVBQWUsR0FBRyxvQkFBb0IsRUFBRTtnQkFDOUUsT0FBTztvQkFDTCxTQUFTLEVBQUUsZUFBZTtvQkFDMUIsVUFBVSxFQUFFLG1DQUFtQztvQkFDL0MsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN6QyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO0lBQ0gsQ0FBQzsrR0ExU1UseUJBQXlCO21HQUF6Qix5QkFBeUIsb3BCQWxCMUIsNkNBQTZDLDRzSkFlN0MsWUFBWTs7NEZBR1gseUJBQXlCO2tCQXJCckMsU0FBUzsrQkFDRSxzQkFBc0IsWUFFdEIsNkNBQTZDLGlCQUN4QyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxZQUFZO3dCQUNuQixRQUFRLEVBQUUsSUFBSTt3QkFDZCxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLE1BQU0sRUFBRSxZQUFZO3dCQUNwQixhQUFhLEVBQUUsY0FBYzt3QkFDN0Isd0JBQXdCLEVBQUUsNENBQTRDO3dCQUN0RSxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLHlCQUF5QixFQUFFLGlDQUFpQzt3QkFDNUQsbUNBQW1DLEVBQUUseUJBQXlCO3FCQUMvRCxjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxrQkFDUCxDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c1RyYXBGYWN0b3J5LCBJbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0RpYWxvZ0NvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiBhcyBDZGtPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTixcbiAgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gIFJvb3RCb3VuZGFyeURpcmVjdGl2ZSxcbiAgZWxlbWVudENhblNjcm9sbCxcbiAgbmV4dEZyYW1lLFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTd2lwZUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3dpcGVFbmRFdmVudCwgU3dpcGVVcGRhdGVFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlDb25maWcsIE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtb3ZlcmxheS1jb250YWluZXInLFxuICBzdHlsZVVybHM6IFsnLi9vdmVybGF5LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5gLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtb3ZlcmxheScsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1thdHRyLmFyaWEtbW9kYWxdJzogJ19jb25maWcuYXJpYU1vZGFsJyxcbiAgICAnW2lkXSc6ICdfY29uZmlnLmlkJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnX2NvbmZpZy5yb2xlJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdfY29uZmlnLmFyaWFMYWJlbCA/IG51bGwgOiBfYXJpYUxhYmVsbGVkQnknLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdfY29uZmlnLmFyaWFMYWJlbCcsXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ19jb25maWcuYXJpYURlc2NyaWJlZEJ5IHx8IG51bGwnLFxuICAgICdbY2xhc3MuZXQtd2l0aC1kZWZhdWx0LWFuaW1hdGlvbl0nOiAnIV9jb25maWcuY3VzdG9tQW5pbWF0ZWQnLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSb290Qm91bmRhcnlEaXJlY3RpdmUsIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLCBQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPE92ZXJsYXlDb25maWc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3dpcGVIYW5kbGVyU2VydmljZSA9IGluamVjdChTd2lwZUhhbmRsZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ1RvRGlzbWlzc1N0b3AkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRUaGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgX3Jvb3RCb3VuZGFyeSA9IGluamVjdChSb290Qm91bmRhcnlEaXJlY3RpdmUpO1xuXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZSA9IGluamVjdChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4pO1xuICByZWFkb25seSBjZGtPdmVybGF5UmVmID0gaW5qZWN0KENka092ZXJsYXlSZWYpO1xuXG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBlbGVtZW50UmVmID0gdGhpcy5fZWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIGluamVjdChFbGVtZW50UmVmKSxcbiAgICAgIGluamVjdChGb2N1c1RyYXBGYWN0b3J5KSxcbiAgICAgIGluamVjdChET0NVTUVOVCksXG4gICAgICBpbmplY3QoT1ZFUkxBWV9DT05GSUcpLFxuICAgICAgaW5qZWN0KEludGVyYWN0aXZpdHlDaGVja2VyKSxcbiAgICAgIGluamVjdChOZ1pvbmUpLFxuICAgICAgaW5qZWN0KENka092ZXJsYXlSZWYpLFxuICAgICAgaW5qZWN0KEZvY3VzTW9uaXRvciksXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9wYXJlbnRUaGVtZVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLl90aGVtZVByb3ZpZGVyLnN5bmNXaXRoUHJvdmlkZXIodGhpcy5fcGFyZW50VGhlbWVQcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb250ZW50QXR0YWNoZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgdGhpcy5fcm9vdEJvdW5kYXJ5LmJvdW5kYXJ5RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIG5leHRGcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9hbmltYXRlZExpZmVjeWNsZS5lbnRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jYXB0dXJlSW5pdGlhbEZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29uZmlnLmRlbGF5Rm9jdXNUcmFwKSB7XG4gICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX29wZW5BbmltYXRpb25Eb25lKCkge1xuICAgIGlmICh0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuX3RyYXBGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIF9lbmFibGVEcmFnVG9EaXNtaXNzKGNvbmZpZzogT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG4gICAgdGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkLm5leHQoKTtcblxuICAgIGNvbnN0IGVsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGxldCBzd2lwZUlkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaXNTZWxlY3Rpb25BY3RpdmUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNhbmNlbERyYWcgPSAoKSA9PiB7XG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgndHJhbnNpdGlvbicsICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknKTtcbiAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9XG4gICAgICAgIGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nIHx8IGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnID8gJ3RyYW5zbGF0ZVkoMCknIDogJ3RyYW5zbGF0ZVgoMCknO1xuICAgICAgc3dpcGVJZCA9IG51bGw7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNpdGlvbicpO1xuICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNmb3JtJyk7XG4gICAgICB9LCAxMDApO1xuICAgIH07XG5cbiAgICBtZXJnZShmcm9tRXZlbnQ8VG91Y2hFdmVudD4oZWwsICd0b3VjaHN0YXJ0JyksIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbCwgJ21vdXNlZG93bicpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgdGFnID0gdGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgIGlmICh0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAndGV4dGFyZWEnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdhJykgcmV0dXJuO1xuXG4gICAgICAgICAgc3dpcGVJZCA9IHRoaXMuX3N3aXBlSGFuZGxlclNlcnZpY2Uuc3RhcnRTd2lwZShldmVudCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgZnJvbUV2ZW50PEV2ZW50Pihkb2N1bWVudCwgJ3NlbGVjdGlvbmNoYW5nZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSwgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcblxuICAgICAgICBpZiAoIXNlbGVjdGlvbiB8fCAhc2VsZWN0aW9uLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgaXNTZWxlY3Rpb25BY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpc1NlbGVjdGlvbkFjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgY2FuY2VsRHJhZygpO1xuICAgICAgfSk7XG5cbiAgICBtZXJnZShmcm9tRXZlbnQ8VG91Y2hFdmVudD4oZWwsICd0b3VjaG1vdmUnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2Vtb3ZlJykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuYWZ0ZXJDbG9zZWQoKSksXG4gICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoc3dpcGVJZCA9PT0gbnVsbCB8fCBpc1NlbGVjdGlvbkFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgaWYgKGlzVG91Y2hFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQgPSAoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFlbCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nIHx8IGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDYW5TY3JvbGwoZWwsICd5JykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDYW5TY3JvbGwoZWwsICd4JykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWVsLnBhcmVudEVsZW1lbnQgfHwgZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnZXQtb3ZlcmxheS1jb250YWluZXInKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQoZWwucGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlRWxlbWVudCA9IHJlY3Vyc2l2ZUZpbmRTY3JvbGxhYmxlUGFyZW50KHRhcmdldCk7XG5cbiAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgICAgICAgICAgIGlmIChjb25maWcuZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3AgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ApICE9PVxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsYWJsZUVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuZGlyZWN0aW9uID09PSAndG8tcmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCkgIT09XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxXaWR0aCAtIHNjcm9sbGFibGVFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjYW5jZWwpIHtcbiAgICAgICAgICAgICAgICBjYW5jZWxEcmFnKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzd2lwZURhdGEgPSB0aGlzLl9zd2lwZUhhbmRsZXJTZXJ2aWNlLnVwZGF0ZVN3aXBlKHN3aXBlSWQsIGV2ZW50KTtcblxuICAgICAgICAgIGlmICghc3dpcGVEYXRhKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjc3MgPSB0aGlzLl9kZWZhdWx0U3dpcGVNb3ZlU3R5bGVJbnRlcnBvbGF0b3Ioc3dpcGVEYXRhLCBjb25maWcpO1xuXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3NzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNoZW5kJyksIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbCwgJ21vdXNldXAnKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoc3dpcGVJZCA9PT0gbnVsbCB8fCBpc1NlbGVjdGlvbkFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3Qgc3dpcGVEYXRhID0gdGhpcy5fc3dpcGVIYW5kbGVyU2VydmljZS5lbmRTd2lwZShzd2lwZUlkKTtcbiAgICAgICAgICBzd2lwZUlkID0gbnVsbDtcblxuICAgICAgICAgIGlmICghc3dpcGVEYXRhKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjc3MgPSB0aGlzLl9kZWZhdWx0U3dpcGVFbmRTdHlsZUludGVycG9sYXRvcihzd2lwZURhdGEsIGNvbmZpZyk7XG5cbiAgICAgICAgICBpZiAoIWNzcykge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5fY2xvc2VPdmVybGF5VmlhKCd0b3VjaCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNzcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnY2xlYW5VcCcpIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFsdWUuZm4oZWwpO1xuICAgICAgICAgICAgICB9LCB2YWx1ZS5kZWxheSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgX2Rpc2FibGVEcmFnVG9EaXNtaXNzKCkge1xuICAgIHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9kZWZhdWx0U3dpcGVNb3ZlU3R5bGVJbnRlcnBvbGF0b3IoZXZlbnQ6IFN3aXBlVXBkYXRlRXZlbnQsIGNvbmZpZzogT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcpIHtcbiAgICBjb25zdCB7IGRpcmVjdGlvbiB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgbW92ZW1lbnRYLCBtb3ZlbWVudFkgfSA9IGV2ZW50O1xuXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHttb3ZlbWVudFkgPCAwID8gMCA6IG1vdmVtZW50WX1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHttb3ZlbWVudFkgPiAwID8gMCA6IG1vdmVtZW50WX1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWxlZnQnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVYKCR7bW92ZW1lbnRYID4gMCA/IDAgOiBtb3ZlbWVudFh9cHgpYCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHttb3ZlbWVudFggPCAwID8gMCA6IG1vdmVtZW50WH1weClgLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZWZhdWx0U3dpcGVFbmRTdHlsZUludGVycG9sYXRvcihldmVudDogU3dpcGVFbmRFdmVudCwgY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBtaW5EaXN0YW5jZVRvRGlzbWlzcyA9IDE1MCwgbWluVmVsb2NpdHlUb0Rpc21pc3MgPSAxNTAgfSA9IGNvbmZpZztcbiAgICBjb25zdCB7IG1vdmVtZW50WCwgbW92ZW1lbnRZLCBwaXhlbFBlclNlY29uZFgsIHBpeGVsUGVyU2Vjb25kWSB9ID0gZXZlbnQ7XG5cbiAgICBjb25zdCBjbGVhblVwID0ge1xuICAgICAgZGVsYXk6IDEwMCxcbiAgICAgIGZuOiAoZWw6IEhUTUxFbGVtZW50KSA9PiBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNpdGlvbicpLFxuICAgIH07XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgaWYgKG1vdmVtZW50WSA8IG1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWSA8IG1pblZlbG9jaXR5VG9EaXNtaXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgwKWAsXG4gICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScsXG4gICAgICAgICAgY2xlYW5VcDogbW92ZW1lbnRZID8gY2xlYW5VcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tdG9wJykge1xuICAgICAgaWYgKG1vdmVtZW50WSA+IC1taW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFkgPiAtbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFkgPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICd0by1sZWZ0Jykge1xuICAgICAgaWYgKG1vdmVtZW50WCA+IC1taW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFggPiAtbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVYKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFggPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb3ZlbWVudFggPCBtaW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFggPCBtaW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WCA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
280
+ }], ctorParameters: () => [] });
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS1jb250YWluZXIvb3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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O2tCQXJCckMsU0FBUzsrQkFDRSxzQkFBc0IsWUFFdEIsaUNBQWlDLGlCQUM1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxZQUFZO3dCQUNuQixRQUFRLEVBQUUsSUFBSTt3QkFDZCxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLE1BQU0sRUFBRSxZQUFZO3dCQUNwQixhQUFhLEVBQUUsY0FBYzt3QkFDN0Isd0JBQXdCLEVBQUUsNENBQTRDO3dCQUN0RSxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLHlCQUF5QixFQUFFLGlDQUFpQzt3QkFDNUQsbUNBQW1DLEVBQUUseUJBQXlCO3FCQUMvRCxjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxrQkFDUCxDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c1RyYXBGYWN0b3J5LCBJbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0RpYWxvZ0NvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiBhcyBDZGtPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTixcbiAgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gIFJvb3RCb3VuZGFyeURpcmVjdGl2ZSxcbiAgZWxlbWVudENhblNjcm9sbCxcbiAgbmV4dEZyYW1lLFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTd2lwZUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3dpcGVFbmRFdmVudCwgU3dpcGVVcGRhdGVFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlDb25maWcsIE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtb3ZlcmxheS1jb250YWluZXInLFxuICBzdHlsZVVybHM6IFsnLi9vdmVybGF5LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQgLz5gLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtb3ZlcmxheScsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1thdHRyLmFyaWEtbW9kYWxdJzogJ19jb25maWcuYXJpYU1vZGFsJyxcbiAgICAnW2lkXSc6ICdfY29uZmlnLmlkJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnX2NvbmZpZy5yb2xlJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdfY29uZmlnLmFyaWFMYWJlbCA/IG51bGwgOiBfYXJpYUxhYmVsbGVkQnknLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdfY29uZmlnLmFyaWFMYWJlbCcsXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ19jb25maWcuYXJpYURlc2NyaWJlZEJ5IHx8IG51bGwnLFxuICAgICdbY2xhc3MuZXQtd2l0aC1kZWZhdWx0LWFuaW1hdGlvbl0nOiAnIV9jb25maWcuY3VzdG9tQW5pbWF0ZWQnLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSb290Qm91bmRhcnlEaXJlY3RpdmUsIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLCBQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPE92ZXJsYXlDb25maWc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3dpcGVIYW5kbGVyU2VydmljZSA9IGluamVjdChTd2lwZUhhbmRsZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ1RvRGlzbWlzc1N0b3AkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRUaGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgX3Jvb3RCb3VuZGFyeSA9IGluamVjdChSb290Qm91bmRhcnlEaXJlY3RpdmUpO1xuXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZSA9IGluamVjdChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4pO1xuICByZWFkb25seSBjZGtPdmVybGF5UmVmID0gaW5qZWN0KENka092ZXJsYXlSZWYpO1xuXG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBlbGVtZW50UmVmID0gdGhpcy5fZWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIGluamVjdChFbGVtZW50UmVmKSxcbiAgICAgIGluamVjdChGb2N1c1RyYXBGYWN0b3J5KSxcbiAgICAgIGluamVjdChET0NVTUVOVCksXG4gICAgICBpbmplY3QoT1ZFUkxBWV9DT05GSUcpLFxuICAgICAgaW5qZWN0KEludGVyYWN0aXZpdHlDaGVja2VyKSxcbiAgICAgIGluamVjdChOZ1pvbmUpLFxuICAgICAgaW5qZWN0KENka092ZXJsYXlSZWYpLFxuICAgICAgaW5qZWN0KEZvY3VzTW9uaXRvciksXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9wYXJlbnRUaGVtZVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLl90aGVtZVByb3ZpZGVyLnN5bmNXaXRoUHJvdmlkZXIodGhpcy5fcGFyZW50VGhlbWVQcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb250ZW50QXR0YWNoZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgdGhpcy5fcm9vdEJvdW5kYXJ5LmJvdW5kYXJ5RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIG5leHRGcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9hbmltYXRlZExpZmVjeWNsZS5lbnRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jYXB0dXJlSW5pdGlhbEZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29uZmlnLmRlbGF5Rm9jdXNUcmFwKSB7XG4gICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX29wZW5BbmltYXRpb25Eb25lKCkge1xuICAgIGlmICh0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuX3RyYXBGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIF9lbmFibGVEcmFnVG9EaXNtaXNzKGNvbmZpZzogT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG4gICAgdGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkLm5leHQoKTtcblxuICAgIGNvbnN0IGVsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGxldCBzd2lwZUlkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaXNTZWxlY3Rpb25BY3RpdmUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNhbmNlbERyYWcgPSAoKSA9PiB7XG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgndHJhbnNpdGlvbicsICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknKTtcbiAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9XG4gICAgICAgIGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nIHx8IGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnID8gJ3RyYW5zbGF0ZVkoMCknIDogJ3RyYW5zbGF0ZVgoMCknO1xuICAgICAgc3dpcGVJZCA9IG51bGw7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNpdGlvbicpO1xuICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNmb3JtJyk7XG4gICAgICB9LCAxMDApO1xuICAgIH07XG5cbiAgICBtZXJnZShmcm9tRXZlbnQ8VG91Y2hFdmVudD4oZWwsICd0b3VjaHN0YXJ0JyksIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbCwgJ21vdXNlZG93bicpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgdGFnID0gdGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgIGlmICh0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAndGV4dGFyZWEnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdhJykgcmV0dXJuO1xuXG4gICAgICAgICAgc3dpcGVJZCA9IHRoaXMuX3N3aXBlSGFuZGxlclNlcnZpY2Uuc3RhcnRTd2lwZShldmVudCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgZnJvbUV2ZW50PEV2ZW50Pihkb2N1bWVudCwgJ3NlbGVjdGlvbmNoYW5nZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSwgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcblxuICAgICAgICBpZiAoIXNlbGVjdGlvbiB8fCAhc2VsZWN0aW9uLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgaXNTZWxlY3Rpb25BY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpc1NlbGVjdGlvbkFjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgY2FuY2VsRHJhZygpO1xuICAgICAgfSk7XG5cbiAgICBtZXJnZShmcm9tRXZlbnQ8VG91Y2hFdmVudD4oZWwsICd0b3VjaG1vdmUnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2Vtb3ZlJykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuYWZ0ZXJDbG9zZWQoKSksXG4gICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoc3dpcGVJZCA9PT0gbnVsbCB8fCBpc1NlbGVjdGlvbkFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgaWYgKGlzVG91Y2hFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQgPSAoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFlbCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nIHx8IGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDYW5TY3JvbGwoZWwsICd5JykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDYW5TY3JvbGwoZWwsICd4JykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWVsLnBhcmVudEVsZW1lbnQgfHwgZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnZXQtb3ZlcmxheS1jb250YWluZXInKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQoZWwucGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlRWxlbWVudCA9IHJlY3Vyc2l2ZUZpbmRTY3JvbGxhYmxlUGFyZW50KHRhcmdldCk7XG5cbiAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgICAgICAgICAgIGlmIChjb25maWcuZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3AgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ApICE9PVxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsYWJsZUVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuZGlyZWN0aW9uID09PSAndG8tcmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCkgIT09XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxXaWR0aCAtIHNjcm9sbGFibGVFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjYW5jZWwpIHtcbiAgICAgICAgICAgICAgICBjYW5jZWxEcmFnKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzd2lwZURhdGEgPSB0aGlzLl9zd2lwZUhhbmRsZXJTZXJ2aWNlLnVwZGF0ZVN3aXBlKHN3aXBlSWQsIGV2ZW50KTtcblxuICAgICAgICAgIGlmICghc3dpcGVEYXRhKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjc3MgPSB0aGlzLl9kZWZhdWx0U3dpcGVNb3ZlU3R5bGVJbnRlcnBvbGF0b3Ioc3dpcGVEYXRhLCBjb25maWcpO1xuXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3NzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNoZW5kJyksIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbCwgJ21vdXNldXAnKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoc3dpcGVJZCA9PT0gbnVsbCB8fCBpc1NlbGVjdGlvbkFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3Qgc3dpcGVEYXRhID0gdGhpcy5fc3dpcGVIYW5kbGVyU2VydmljZS5lbmRTd2lwZShzd2lwZUlkKTtcbiAgICAgICAgICBzd2lwZUlkID0gbnVsbDtcblxuICAgICAgICAgIGlmICghc3dpcGVEYXRhKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjc3MgPSB0aGlzLl9kZWZhdWx0U3dpcGVFbmRTdHlsZUludGVycG9sYXRvcihzd2lwZURhdGEsIGNvbmZpZyk7XG5cbiAgICAgICAgICBpZiAoIWNzcykge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5fY2xvc2VPdmVybGF5VmlhKCd0b3VjaCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNzcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnY2xlYW5VcCcpIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFsdWUuZm4oZWwpO1xuICAgICAgICAgICAgICB9LCB2YWx1ZS5kZWxheSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgX2Rpc2FibGVEcmFnVG9EaXNtaXNzKCkge1xuICAgIHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9kZWZhdWx0U3dpcGVNb3ZlU3R5bGVJbnRlcnBvbGF0b3IoZXZlbnQ6IFN3aXBlVXBkYXRlRXZlbnQsIGNvbmZpZzogT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcpIHtcbiAgICBjb25zdCB7IGRpcmVjdGlvbiB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgbW92ZW1lbnRYLCBtb3ZlbWVudFkgfSA9IGV2ZW50O1xuXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHttb3ZlbWVudFkgPCAwID8gMCA6IG1vdmVtZW50WX1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHttb3ZlbWVudFkgPiAwID8gMCA6IG1vdmVtZW50WX1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWxlZnQnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVYKCR7bW92ZW1lbnRYID4gMCA/IDAgOiBtb3ZlbWVudFh9cHgpYCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHttb3ZlbWVudFggPCAwID8gMCA6IG1vdmVtZW50WH1weClgLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZWZhdWx0U3dpcGVFbmRTdHlsZUludGVycG9sYXRvcihldmVudDogU3dpcGVFbmRFdmVudCwgY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBtaW5EaXN0YW5jZVRvRGlzbWlzcyA9IDE1MCwgbWluVmVsb2NpdHlUb0Rpc21pc3MgPSAxNTAgfSA9IGNvbmZpZztcbiAgICBjb25zdCB7IG1vdmVtZW50WCwgbW92ZW1lbnRZLCBwaXhlbFBlclNlY29uZFgsIHBpeGVsUGVyU2Vjb25kWSB9ID0gZXZlbnQ7XG5cbiAgICBjb25zdCBjbGVhblVwID0ge1xuICAgICAgZGVsYXk6IDEwMCxcbiAgICAgIGZuOiAoZWw6IEhUTUxFbGVtZW50KSA9PiBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNpdGlvbicpLFxuICAgIH07XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgaWYgKG1vdmVtZW50WSA8IG1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWSA8IG1pblZlbG9jaXR5VG9EaXNtaXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgwKWAsXG4gICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScsXG4gICAgICAgICAgY2xlYW5VcDogbW92ZW1lbnRZID8gY2xlYW5VcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tdG9wJykge1xuICAgICAgaWYgKG1vdmVtZW50WSA+IC1taW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFkgPiAtbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFkgPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICd0by1sZWZ0Jykge1xuICAgICAgaWYgKG1vdmVtZW50WCA+IC1taW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFggPiAtbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVYKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFggPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb3ZlbWVudFggPCBtaW5EaXN0YW5jZVRvRGlzbWlzcyAmJiBwaXhlbFBlclNlY29uZFggPCBtaW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WCA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -27,10 +27,10 @@ export class OverlayCloseDirective {
27
27
  }
28
28
  this._overlayRef._closeOverlayVia(event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.closeResult);
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: OverlayCloseDirective, isStandalone: true, selector: "[et-overlay-close], [etOverlayClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", closeResult: ["et-overlay-close", "closeResult"], _closeResult: ["etOverlayClose", "_closeResult"] }, host: { listeners: { "click": "_onButtonClick($event)" }, properties: { "attr.aria-label": "ariaLabel || null", "attr.type": "this.type" } }, exportAs: ["etOverlayClose"], ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: OverlayCloseDirective, isStandalone: true, selector: "[et-overlay-close], [etOverlayClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", closeResult: ["et-overlay-close", "closeResult"], _closeResult: ["etOverlayClose", "_closeResult"] }, host: { listeners: { "click": "_onButtonClick($event)" }, properties: { "attr.aria-label": "ariaLabel || null", "attr.type": "this.type" } }, exportAs: ["etOverlayClose"], ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayCloseDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayCloseDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[et-overlay-close], [etOverlayClose]',
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
58
  type: HostListener,
59
59
  args: ['click', ['$event']]
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jbG9zZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvcGFydGlhbHMvb3ZlcmxheS1jbG9zZS9vdmVybGF5LWNsb3NlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVTVELE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFPMUQsU0FBSSxHQUFrQyxRQUFRLENBQUM7S0FpQ2hEO0lBNUJDLElBQ0ksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFMUYsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDZixNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQ3JDO1lBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQy9CLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztJQUNKLENBQUM7K0dBMUNVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxtQkFBbUI7cUJBQ3pDO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFPQyxTQUFTO3NCQURSLEtBQUs7dUJBQUMsWUFBWTtnQkFLbkIsSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFdBQVc7Z0JBSXhCLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSXJCLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBa0J2QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiwgZ2V0Q2xvc2VzdE92ZXJsYXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldC1vdmVybGF5LWNsb3NlXSwgW2V0T3ZlcmxheUNsb3NlXScsXG4gIGV4cG9ydEFzOiAnZXRPdmVybGF5Q2xvc2UnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2FyaWFMYWJlbCB8fCBudWxsJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUNsb3NlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbD86IHN0cmluZztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpXG4gIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgQElucHV0KCdldC1vdmVybGF5LWNsb3NlJylcbiAgY2xvc2VSZXN1bHQ6IHVua25vd247XG5cbiAgQElucHV0KCdldE92ZXJsYXlDbG9zZScpXG4gIHNldCBfY2xvc2VSZXN1bHQodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLmNsb3NlUmVzdWx0ID0gdmFsdWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIGNvbnN0IGNsb3Nlc3RSZWYgPSBnZXRDbG9zZXN0T3ZlcmxheSh0aGlzLl9lbGVtZW50UmVmLCB0aGlzLl9vdmVybGF5U2VydmljZS5vcGVuT3ZlcmxheXMpO1xuXG4gICAgICBpZiAoIWNsb3Nlc3RSZWYpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ05vIGNsb3Nlc3QgcmVmIGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBjbG9zZXN0UmVmO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgX29uQnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLl9jbG9zZU92ZXJsYXlWaWEoXG4gICAgICBldmVudC5zY3JlZW5YID09PSAwICYmIGV2ZW50LnNjcmVlblkgPT09IDAgPyAna2V5Ym9hcmQnIDogJ21vdXNlJyxcbiAgICAgIHRoaXMuY2xvc2VSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jbG9zZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvcGFydGlhbHMvb3ZlcmxheS1jbG9zZS9vdmVybGF5LWNsb3NlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVTVELE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFPMUQsU0FBSSxHQUFrQyxRQUFRLENBQUM7S0FpQ2hEO0lBNUJDLElBQ0ksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFMUYsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDZixNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQ3JDO1lBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQy9CLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztJQUNKLENBQUM7OEdBMUNVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxtQkFBbUI7cUJBQ3pDO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFPQyxTQUFTO3NCQURSLEtBQUs7dUJBQUMsWUFBWTtnQkFLbkIsSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFdBQVc7Z0JBSXhCLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSXJCLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBa0J2QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiwgZ2V0Q2xvc2VzdE92ZXJsYXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldC1vdmVybGF5LWNsb3NlXSwgW2V0T3ZlcmxheUNsb3NlXScsXG4gIGV4cG9ydEFzOiAnZXRPdmVybGF5Q2xvc2UnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2FyaWFMYWJlbCB8fCBudWxsJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUNsb3NlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbD86IHN0cmluZztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpXG4gIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgQElucHV0KCdldC1vdmVybGF5LWNsb3NlJylcbiAgY2xvc2VSZXN1bHQ6IHVua25vd247XG5cbiAgQElucHV0KCdldE92ZXJsYXlDbG9zZScpXG4gIHNldCBfY2xvc2VSZXN1bHQodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLmNsb3NlUmVzdWx0ID0gdmFsdWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIGNvbnN0IGNsb3Nlc3RSZWYgPSBnZXRDbG9zZXN0T3ZlcmxheSh0aGlzLl9lbGVtZW50UmVmLCB0aGlzLl9vdmVybGF5U2VydmljZS5vcGVuT3ZlcmxheXMpO1xuXG4gICAgICBpZiAoIWNsb3Nlc3RSZWYpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ05vIGNsb3Nlc3QgcmVmIGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBjbG9zZXN0UmVmO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgX29uQnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLl9jbG9zZU92ZXJsYXlWaWEoXG4gICAgICBldmVudC5zY3JlZW5YID09PSAwICYmIGV2ZW50LnNjcmVlblkgPT09IDAgPyAna2V5Ym9hcmQnIDogJ21vdXNlJyxcbiAgICAgIHRoaXMuY2xvc2VSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -20,10 +20,10 @@ export class OverlayTitleDirective {
20
20
  }
21
21
  Promise.resolve().then(() => this._overlayRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: OverlayTitleDirective, isStandalone: true, selector: "[et-overlay-title], [etOverlayTitle]", inputs: { id: "id" }, host: { properties: { "attr.id": "this.id" } }, exportAs: ["etOverlayTitle"], ngImport: i0 }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: OverlayTitleDirective, isStandalone: true, selector: "[et-overlay-title], [etOverlayTitle]", inputs: { id: "id" }, host: { properties: { "attr.id": "this.id" } }, exportAs: ["etOverlayTitle"], ngImport: i0 }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayTitleDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayTitleDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  selector: '[et-overlay-title], [etOverlayTitle]',
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
36
  type: HostBinding,
37
37
  args: ['attr.id']
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10aXRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvcGFydGlhbHMvb3ZlcmxheS10aXRsZS9vdmVybGF5LXRpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFNUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBT2pCLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFJMUQsT0FBRSxHQUFHLG9CQUFvQixRQUFRLEVBQUUsRUFBRSxDQUFDO0tBZXZDO0lBYkMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUUxRixJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDckM7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztTQUMvQjtRQUVELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQzsrR0FyQlUscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFDLEVBQUU7c0JBRkQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGdldENsb3Nlc3RPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXQtb3ZlcmxheS10aXRsZV0sIFtldE92ZXJsYXlUaXRsZV0nLFxuICBleHBvcnRBczogJ2V0T3ZlcmxheVRpdGxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIGlkID0gYGV0LW92ZXJsYXktdGl0bGUtJHt1bmlxdWVJZCsrfWA7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCBjbG9zZXN0UmVmID0gZ2V0Q2xvc2VzdE92ZXJsYXkodGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fb3ZlcmxheVNlcnZpY2Uub3Blbk92ZXJsYXlzKTtcblxuICAgICAgaWYgKCFjbG9zZXN0UmVmKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdObyBjbG9zZXN0IHJlZiBmb3VuZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gY2xvc2VzdFJlZjtcbiAgICB9XG5cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX292ZXJsYXlSZWY/Ll9jb250YWluZXJJbnN0YW5jZT8uX2FyaWFMYWJlbGxlZEJ5UXVldWU/LnB1c2godGhpcy5pZCkpO1xuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10aXRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvcGFydGlhbHMvb3ZlcmxheS10aXRsZS9vdmVybGF5LXRpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFNUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBT2pCLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFJMUQsT0FBRSxHQUFHLG9CQUFvQixRQUFRLEVBQUUsRUFBRSxDQUFDO0tBZXZDO0lBYkMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUUxRixJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDckM7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztTQUMvQjtRQUVELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQzs4R0FyQlUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFDLEVBQUU7c0JBRkQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGdldENsb3Nlc3RPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXQtb3ZlcmxheS10aXRsZV0sIFtldE92ZXJsYXlUaXRsZV0nLFxuICBleHBvcnRBczogJ2V0T3ZlcmxheVRpdGxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIGlkID0gYGV0LW92ZXJsYXktdGl0bGUtJHt1bmlxdWVJZCsrfWA7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCBjbG9zZXN0UmVmID0gZ2V0Q2xvc2VzdE92ZXJsYXkodGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fb3ZlcmxheVNlcnZpY2Uub3Blbk92ZXJsYXlzKTtcblxuICAgICAgaWYgKCFjbG9zZXN0UmVmKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdObyBjbG9zZXN0IHJlZiBmb3VuZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gY2xvc2VzdFJlZjtcbiAgICB9XG5cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX292ZXJsYXlSZWY/Ll9jb250YWluZXJJbnN0YW5jZT8uX2FyaWFMYWJlbGxlZEJ5UXVldWU/LnB1c2godGhpcy5pZCkpO1xuICB9XG59XG4iXX0=
@@ -279,10 +279,10 @@ export class OverlayService {
279
279
  const parent = this._parentOverlayService;
280
280
  return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;
281
281
  }
282
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
283
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService }); }
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
283
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayService }); }
284
284
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: OverlayService, decorators: [{
286
286
  type: Injectable
287
287
  }] });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsSUFBSSxRQUFRLEdBQUcsQ0FB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QUM7Z0JBQUUsT0FBTztZQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFXLENBQUM7UUFFbkIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOytHQTlTVSxjQUFjO21IQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUk9PVF9CT1VOREFSWV9UT0tFTiwgUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCBWaWV3cG9ydFNlcnZpY2UsIGNyZWF0ZURlc3Ryb3ksIGVxdWFsIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgbWFwLCBvZiwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHLCBPVkVSTEFZX0RBVEEsIE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCBPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIGNyZWF0ZU92ZXJsYXlDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcbmNvbnN0IElEX1BSRUZJWCA9ICdldC1vdmVybGF5LSc7XG5cbmNvbnN0IHNldFN0eWxlID0gKGVsOiBIVE1MRWxlbWVudCwgc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGUsIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpKTtcbiAgfVxufTtcblxuY29uc3Qgc2V0Q2xhc3MgPSAoZWw6IEhUTUxFbGVtZW50LCBwcmV2Q2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSwgY3VyckNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgaWYgKCFlcXVhbChwcmV2Q2xhc3MsIGN1cnJDbGFzcykpIHtcbiAgICBpZiAocHJldkNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmV2Q2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ucHJldkNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUocHJldkNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VyckNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyQ2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoLi4uY3VyckNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY3VyckNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGlzSHRtbEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmtub3duKTogZWxlbWVudCBpcyBIVE1MRWxlbWVudCA9PiB7XG4gIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG59O1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5jb25zdCBpc1BvaW50ZXJFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBQb2ludGVyRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ2MnO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRPcHRpb25zID0gaW5qZWN0KE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxTdHJhdGVneSA9IGluamVjdChPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gaW5qZWN0KENka0RpYWxvZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wZW5PdmVybGF5c0F0VGhpc0xldmVsOiBPdmVybGF5UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPdmVybGF5UmVmPigpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9ucyA9IG5ldyBPdmVybGF5UG9zaXRpb25CdWlsZGVyKCk7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQgPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5PdmVybGF5cygpOiBPdmVybGF5UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLm9wZW5PdmVybGF5cyA6IHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8T3ZlcmxheVJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+IHtcbiAgICBsZXQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjxULCBSPjtcblxuICAgIGNvbnN0IGNvbXBvc2VkQ29uZmlnID0gY3JlYXRlT3ZlcmxheUNvbmZpZzxEPih0aGlzLl9kZWZhdWx0T3B0aW9ucyBhcyBPdmVybGF5Q29uZmlnPEQ+LCBjb25maWcpO1xuICAgIGNvbXBvc2VkQ29uZmlnLmlkID0gY29tcG9zZWRDb25maWcuaWQgfHwgYCR7SURfUFJFRklYfSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKTtcblxuICAgIGNvbnN0IGNka1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgIC4uLmNvbXBvc2VkQ29uZmlnLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogJ2V0LW92ZXJsYXktcGFuZScsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgcHJvdmlkZXJzOiAoKSA9PiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0NPTkZJRywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDZGtEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBvdmVybGF5UmVmIH0pLFxuICAgICAgcHJvdmlkZXJzOiAocmVmLCBjZGtDb25maWcsIG92ZXJsYXlDb250YWluZXIpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gb3ZlcmxheUNvbnRhaW5lciBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50O1xuICAgICAgICBvdmVybGF5UmVmID0gbmV3IE92ZXJsYXlSZWYocmVmLCBjb21wb3NlZENvbmZpZywgY29udGFpbmVyKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCwgdXNlVmFsdWU6IG92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFRIRU1FX1BST1ZJREVSLCB1c2VWYWx1ZTogY29udGFpbmVyLl90aGVtZVByb3ZpZGVyIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIHVzZVZhbHVlOiBjb250YWluZXIuX3RoZW1lUHJvdmlkZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFJPT1RfQk9VTkRBUllfVE9LRU4sIHVzZVZhbHVlOiBjb250YWluZXIuX3Jvb3RCb3VuZGFyeSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCB1c2VWYWx1ZTogY29udGFpbmVyLl9yb290Qm91bmRhcnkgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE9WRVJMQVlfREFUQSwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG92ZXJsYXlSZWYgfSxcbiAgICAgICAgICAuLi4oY29tcG9zZWRDb25maWcucHJvdmlkZXJzID8/IFtdKSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgICAob3ZlcmxheVJlZiEgYXMgeyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB9KS5jb21wb25lbnRSZWYgPSBjZGtSZWYuY29tcG9uZW50UmVmITtcbiAgICBvdmVybGF5UmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICAoY2RrUmVmLmNvbnRhaW5lckluc3RhbmNlIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmITtcblxuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gb3ZlcmxheVJlZiEuX2NvbnRhaW5lckluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5UGFuZUVsID0gY2RrUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgY29uc3QgYmFja2Ryb3BFbCA9IGNka1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5V3JhcHBlciA9IGNka1JlZi5vdmVybGF5UmVmLmhvc3RFbGVtZW50O1xuICAgIGNvbnN0IGRlZmF1bHRBbmltYXRpb25CdWZmZXIgPSA1MDsgLy8gNTBweCBzaW5jZSB0aGUgZGVmYXVsdCBhbmltYXRpb24gdXNlcyBzcHJpbmcgcGh5c2ljcyBhbmQgdGh1cyB3aWxsIG92ZXJzaG9vdC5cbiAgICBjb25zdCB1c2VEZWZhdWx0QW5pbWF0aW9uID0gY29tcG9zZWRDb25maWcuY3VzdG9tQW5pbWF0ZWQgIT09IHRydWU7XG4gICAgY29uc3Qgb3JpZ2luID0gY29tcG9zZWRDb25maWcub3JpZ2luO1xuXG4gICAgY29tYmluZUxhdGVzdChcbiAgICAgIGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKGJyZWFrcG9pbnQpID0+XG4gICAgICAgIChicmVha3BvaW50LmJyZWFrcG9pbnQgPyB0aGlzLl92aWV3cG9ydFNlcnZpY2Uub2JzZXJ2ZSh7IG1pbjogYnJlYWtwb2ludC5icmVha3BvaW50IH0pIDogb2YodHJ1ZSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChpc0FjdGl2ZSkgPT4gKHtcbiAgICAgICAgICAgIGlzQWN0aXZlLFxuICAgICAgICAgICAgY29uZmlnOiBicmVha3BvaW50LmNvbmZpZyxcbiAgICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICAgIHR5cGVvZiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBicmVha3BvaW50LmJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICA6IGJyZWFrcG9pbnQuYnJlYWtwb2ludCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiB0aGlzLl92aWV3cG9ydFNlcnZpY2UuZ2V0QnJlYWtwb2ludFNpemUoYnJlYWtwb2ludC5icmVha3BvaW50LCAnbWluJyksXG4gICAgICAgICAgfSkpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICBtYXAoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVCcmVha3BvaW50cyA9IGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuaXNBY3RpdmUpO1xuICAgICAgICAgIGNvbnN0IGhpZ2hlc3RCcmVha3BvaW50ID0gYWN0aXZlQnJlYWtwb2ludHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAocHJldi5zaXplID4gY3Vyci5zaXplID8gcHJldiA6IGN1cnIpKTtcblxuICAgICAgICAgIHJldHVybiBoaWdoZXN0QnJlYWtwb2ludC5jb25maWc7XG4gICAgICAgIH0pLFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHRhcCgoW3ByZXZDb25maWcsIGN1cnJDb25maWddKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyQ29uZmlnKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IGN1cnJDb25maWcuY29udGFpbmVyQ2xhc3M7XG5cbiAgICAgICAgICBjb25zdCBhcHBseURlZmF1bHRNYXhXaWR0aHMgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LWhlaWdodCcsIGN1cnJDb25maWcubWF4SGVpZ2h0KTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY29tYmluZU9yTWFrZUNhbGMgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGFwcGVuZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gYXBwZW5kO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICByZXR1cm4gYGNhbGMoJHt2YWx1ZX1weCArICR7YXBwZW5kfSlgO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdjYWxjKCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZS5zbGljZSgwLCB2YWx1ZS5sZW5ndGggLSAxKX0gKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IElmIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpcyB1c2VkIGl0IHNob3VsZCB1c2UgdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblggPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICA6IGlzVG91Y2hFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFhcbiAgICAgICAgICAgICAgOiBpc1BvaW50ZXJFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFggIT09IDBcbiAgICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYXG4gICAgICAgICAgICAgICAgOiAob3JpZ2luLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICA6IC0xO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luWSA9IGlzSHRtbEVsZW1lbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi50YXJnZXRUb3VjaGVzWzBdIS5jbGllbnRZXG4gICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRZICE9PSAwXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WVxuICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgICAgICAgICA6IC0xO1xuXG4gICAgICAgICAgICBpZiAob3JpZ2luWCAhPT0gLTEgJiYgb3JpZ2luWSAhPT0gLTEgJiYgY3VyckNvbmZpZy5hcHBseVRyYW5zZm9ybU9yaWdpbikge1xuICAgICAgICAgICAgICBzZXRTdHlsZShjb250YWluZXJFbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCBgJHtvcmlnaW5YfXB4ICR7b3JpZ2luWX1weGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHVzZURlZmF1bHRBbmltYXRpb24gJiYgY29udGFpbmVyQ2xhc3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9MRUZUX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVPck1ha2VDYWxjKGN1cnJDb25maWcubWF4V2lkdGgsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MpIHx8XG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heEhlaWdodCwgYCR7ZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlcn1weGApLFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtd2lkdGgnLCBjdXJyQ29uZmlnLm1heFdpZHRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFwcGx5RGVmYXVsdE1heFdpZHRocygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWluLXdpZHRoJywgY3VyckNvbmZpZy5taW5XaWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi1oZWlnaHQnLCBjdXJyQ29uZmlnLm1pbkhlaWdodCk7XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnd2lkdGgnLCBjdXJyQ29uZmlnLndpZHRoKTtcbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnaGVpZ2h0JywgY3VyckNvbmZpZy5oZWlnaHQpO1xuXG4gICAgICAgICAgc2V0Q2xhc3MoY29udGFpbmVyRWwsIHByZXZDb25maWc/LmNvbnRhaW5lckNsYXNzLCBjdXJyQ29uZmlnPy5jb250YWluZXJDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3Mob3ZlcmxheVBhbmVFbCwgcHJldkNvbmZpZz8ucGFuZUNsYXNzLCBjdXJyQ29uZmlnPy5wYW5lQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlXcmFwcGVyLCBwcmV2Q29uZmlnPy5vdmVybGF5Q2xhc3MsIGN1cnJDb25maWc/Lm92ZXJsYXlDbGFzcyk7XG5cbiAgICAgICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBwcmV2Q29uZmlnPy5kb2N1bWVudENsYXNzLCBjdXJyQ29uZmlnPy5kb2N1bWVudENsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhkb2N1bWVudC5ib2R5LCBwcmV2Q29uZmlnPy5ib2R5Q2xhc3MsIGN1cnJDb25maWc/LmJvZHlDbGFzcyk7XG5cbiAgICAgICAgICBpZiAoYmFja2Ryb3BFbCkge1xuICAgICAgICAgICAgc2V0Q2xhc3MoYmFja2Ryb3BFbCwgcHJldkNvbmZpZz8uYmFja2Ryb3BDbGFzcywgY3VyckNvbmZpZz8uYmFja2Ryb3BDbGFzcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFlcXVhbChwcmV2Q29uZmlnPy5wb3NpdGlvbiwgY3VyckNvbmZpZz8ucG9zaXRpb24pKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKGN1cnJDb25maWcucG9zaXRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyQ29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZW5hYmxlRHJhZ1RvRGlzbWlzcyhjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZGlzYWJsZURyYWdUb0Rpc21pc3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5vcGVuT3ZlcmxheXMucHVzaChvdmVybGF5UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KG92ZXJsYXlSZWYhKTtcblxuICAgIG92ZXJsYXlSZWYhLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICBjb25zdCBkb2N1bWVudENsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmRvY3VtZW50Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGRvY3VtZW50Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvZHlDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5ib2R5Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGJvZHlDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgb3ZlcmxheVJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5PdmVybGF5cy5pbmRleE9mKG92ZXJsYXlSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICAgIHRoaXMub3Blbk92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmICghdGhpcy5vcGVuT3ZlcmxheXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5vcGVuT3ZlcmxheXMpO1xuICB9XG5cbiAgZ2V0T3ZlcmxheUJ5SWQoaWQ6IHN0cmluZyk6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5PdmVybGF5cy5maW5kKChvdmVybGF5KSA9PiBvdmVybGF5LmlkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU92ZXJsYXlzKG92ZXJsYXlzOiBPdmVybGF5UmVmW10pIHtcbiAgICBsZXQgaSA9IG92ZXJsYXlzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIG92ZXJsYXlzW2ldPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEFmdGVyQWxsQ2xvc2VkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG59XG4iXX0=
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsSUFBSSxRQUFRLEdBQUcsQ0FB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QUM7Z0JBQUUsT0FBTztZQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFXLENBQUM7UUFFbkIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQTlTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUk9PVF9CT1VOREFSWV9UT0tFTiwgUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCBWaWV3cG9ydFNlcnZpY2UsIGNyZWF0ZURlc3Ryb3ksIGVxdWFsIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgbWFwLCBvZiwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHLCBPVkVSTEFZX0RBVEEsIE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCBPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIGNyZWF0ZU92ZXJsYXlDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcbmNvbnN0IElEX1BSRUZJWCA9ICdldC1vdmVybGF5LSc7XG5cbmNvbnN0IHNldFN0eWxlID0gKGVsOiBIVE1MRWxlbWVudCwgc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGUsIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpKTtcbiAgfVxufTtcblxuY29uc3Qgc2V0Q2xhc3MgPSAoZWw6IEhUTUxFbGVtZW50LCBwcmV2Q2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSwgY3VyckNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgaWYgKCFlcXVhbChwcmV2Q2xhc3MsIGN1cnJDbGFzcykpIHtcbiAgICBpZiAocHJldkNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmV2Q2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ucHJldkNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUocHJldkNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VyckNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyQ2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoLi4uY3VyckNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY3VyckNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGlzSHRtbEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmtub3duKTogZWxlbWVudCBpcyBIVE1MRWxlbWVudCA9PiB7XG4gIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG59O1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5jb25zdCBpc1BvaW50ZXJFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBQb2ludGVyRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ2MnO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRPcHRpb25zID0gaW5qZWN0KE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxTdHJhdGVneSA9IGluamVjdChPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gaW5qZWN0KENka0RpYWxvZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wZW5PdmVybGF5c0F0VGhpc0xldmVsOiBPdmVybGF5UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPdmVybGF5UmVmPigpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9ucyA9IG5ldyBPdmVybGF5UG9zaXRpb25CdWlsZGVyKCk7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQgPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5PdmVybGF5cygpOiBPdmVybGF5UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLm9wZW5PdmVybGF5cyA6IHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8T3ZlcmxheVJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+IHtcbiAgICBsZXQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjxULCBSPjtcblxuICAgIGNvbnN0IGNvbXBvc2VkQ29uZmlnID0gY3JlYXRlT3ZlcmxheUNvbmZpZzxEPih0aGlzLl9kZWZhdWx0T3B0aW9ucyBhcyBPdmVybGF5Q29uZmlnPEQ+LCBjb25maWcpO1xuICAgIGNvbXBvc2VkQ29uZmlnLmlkID0gY29tcG9zZWRDb25maWcuaWQgfHwgYCR7SURfUFJFRklYfSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKTtcblxuICAgIGNvbnN0IGNka1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgIC4uLmNvbXBvc2VkQ29uZmlnLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogJ2V0LW92ZXJsYXktcGFuZScsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgcHJvdmlkZXJzOiAoKSA9PiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0NPTkZJRywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDZGtEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBvdmVybGF5UmVmIH0pLFxuICAgICAgcHJvdmlkZXJzOiAocmVmLCBjZGtDb25maWcsIG92ZXJsYXlDb250YWluZXIpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gb3ZlcmxheUNvbnRhaW5lciBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50O1xuICAgICAgICBvdmVybGF5UmVmID0gbmV3IE92ZXJsYXlSZWYocmVmLCBjb21wb3NlZENvbmZpZywgY29udGFpbmVyKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCwgdXNlVmFsdWU6IG92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFRIRU1FX1BST1ZJREVSLCB1c2VWYWx1ZTogY29udGFpbmVyLl90aGVtZVByb3ZpZGVyIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIHVzZVZhbHVlOiBjb250YWluZXIuX3RoZW1lUHJvdmlkZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFJPT1RfQk9VTkRBUllfVE9LRU4sIHVzZVZhbHVlOiBjb250YWluZXIuX3Jvb3RCb3VuZGFyeSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCB1c2VWYWx1ZTogY29udGFpbmVyLl9yb290Qm91bmRhcnkgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE9WRVJMQVlfREFUQSwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG92ZXJsYXlSZWYgfSxcbiAgICAgICAgICAuLi4oY29tcG9zZWRDb25maWcucHJvdmlkZXJzID8/IFtdKSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgICAob3ZlcmxheVJlZiEgYXMgeyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB9KS5jb21wb25lbnRSZWYgPSBjZGtSZWYuY29tcG9uZW50UmVmITtcbiAgICBvdmVybGF5UmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICAoY2RrUmVmLmNvbnRhaW5lckluc3RhbmNlIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmITtcblxuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gb3ZlcmxheVJlZiEuX2NvbnRhaW5lckluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5UGFuZUVsID0gY2RrUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgY29uc3QgYmFja2Ryb3BFbCA9IGNka1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5V3JhcHBlciA9IGNka1JlZi5vdmVybGF5UmVmLmhvc3RFbGVtZW50O1xuICAgIGNvbnN0IGRlZmF1bHRBbmltYXRpb25CdWZmZXIgPSA1MDsgLy8gNTBweCBzaW5jZSB0aGUgZGVmYXVsdCBhbmltYXRpb24gdXNlcyBzcHJpbmcgcGh5c2ljcyBhbmQgdGh1cyB3aWxsIG92ZXJzaG9vdC5cbiAgICBjb25zdCB1c2VEZWZhdWx0QW5pbWF0aW9uID0gY29tcG9zZWRDb25maWcuY3VzdG9tQW5pbWF0ZWQgIT09IHRydWU7XG4gICAgY29uc3Qgb3JpZ2luID0gY29tcG9zZWRDb25maWcub3JpZ2luO1xuXG4gICAgY29tYmluZUxhdGVzdChcbiAgICAgIGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKGJyZWFrcG9pbnQpID0+XG4gICAgICAgIChicmVha3BvaW50LmJyZWFrcG9pbnQgPyB0aGlzLl92aWV3cG9ydFNlcnZpY2Uub2JzZXJ2ZSh7IG1pbjogYnJlYWtwb2ludC5icmVha3BvaW50IH0pIDogb2YodHJ1ZSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChpc0FjdGl2ZSkgPT4gKHtcbiAgICAgICAgICAgIGlzQWN0aXZlLFxuICAgICAgICAgICAgY29uZmlnOiBicmVha3BvaW50LmNvbmZpZyxcbiAgICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICAgIHR5cGVvZiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBicmVha3BvaW50LmJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICA6IGJyZWFrcG9pbnQuYnJlYWtwb2ludCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSBjdXJyQ29uZmlnLmNvbnRhaW5lckNsYXNzO1xuXG4gICAgICAgICAgY29uc3QgYXBwbHlEZWZhdWx0TWF4V2lkdGhzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVPck1ha2VDYWxjID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhcHBlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGFwcGVuZDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9cHggKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnY2FsYygnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSl9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJZiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgdXNlZCBpdCBzaG91bGQgdXNlIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5YID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFhcbiAgICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WFxuICAgICAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgICAgICAgICAgICAgICA6IC0xO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luWSA9IGlzSHRtbEVsZW1lbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFlcbiAgICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFkgIT09IDBcbiAgICAgICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WVxuICAgICAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgICAgIDogLTE7XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW5YICE9PSAtMSAmJiBvcmlnaW5ZICE9PSAtMSAmJiBjdXJyQ29uZmlnLmFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIGAke29yaWdpblh9cHggJHtvcmlnaW5ZfXB4YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZXRTdHlsZShjb250YWluZXJFbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXNlRGVmYXVsdEFuaW1hdGlvbiAmJiBjb250YWluZXJDbGFzcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MpIHx8XG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKFxuICAgICAgICAgICAgICAgIG92ZXJsYXlQYW5lRWwsXG4gICAgICAgICAgICAgICAgJ21heC13aWR0aCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhXaWR0aCwgYCR7ZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlcn1weGApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LWhlaWdodCcsIGN1cnJDb25maWcubWF4SGVpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKFxuICAgICAgICAgICAgICAgIG92ZXJsYXlQYW5lRWwsXG4gICAgICAgICAgICAgICAgJ21heC1oZWlnaHQnLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVPck1ha2VDYWxjKGN1cnJDb25maWcubWF4SGVpZ2h0LCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFwcGx5RGVmYXVsdE1heFdpZHRocygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4td2lkdGgnLCBjdXJyQ29uZmlnLm1pbldpZHRoKTtcbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWluLWhlaWdodCcsIGN1cnJDb25maWcubWluSGVpZ2h0KTtcblxuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICd3aWR0aCcsIGN1cnJDb25maWcud2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdoZWlnaHQnLCBjdXJyQ29uZmlnLmhlaWdodCk7XG5cbiAgICAgICAgICBzZXRDbGFzcyhjb250YWluZXJFbCwgcHJldkNvbmZpZz8uY29udGFpbmVyQ2xhc3MsIGN1cnJDb25maWc/LmNvbnRhaW5lckNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5UGFuZUVsLCBwcmV2Q29uZmlnPy5wYW5lQ2xhc3MsIGN1cnJDb25maWc/LnBhbmVDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3Mob3ZlcmxheVdyYXBwZXIsIHByZXZDb25maWc/Lm92ZXJsYXlDbGFzcywgY3VyckNvbmZpZz8ub3ZlcmxheUNsYXNzKTtcblxuICAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBjbGFzc2VzIHNob3VsZCBvbmx5IGJlIHJlbW92ZWQgaWYgbm8gb3BlbiBvdmVybGF5cyByZXF1aXJlIHRoZW0gaW5zaWRlIHRoZWlyIGNvbmZpZy5cbiAgICAgICAgICBzZXRDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHByZXZDb25maWc/LmRvY3VtZW50Q2xhc3MsIGN1cnJDb25maWc/LmRvY3VtZW50Q2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmJvZHksIHByZXZDb25maWc/LmJvZHlDbGFzcywgY3VyckNvbmZpZz8uYm9keUNsYXNzKTtcblxuICAgICAgICAgIGlmIChiYWNrZHJvcEVsKSB7XG4gICAgICAgICAgICBzZXRDbGFzcyhiYWNrZHJvcEVsLCBwcmV2Q29uZmlnPy5iYWNrZHJvcENsYXNzLCBjdXJyQ29uZmlnPy5iYWNrZHJvcENsYXNzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWVxdWFsKHByZXZDb25maWc/LnBvc2l0aW9uLCBjdXJyQ29uZmlnPy5wb3NpdGlvbikpIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oY3VyckNvbmZpZy5wb3NpdGlvbik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShjdXJyQ29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9lbmFibGVEcmFnVG9EaXNtaXNzKGN1cnJDb25maWcuZHJhZ1RvRGlzbWlzcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9kaXNhYmxlRHJhZ1RvRGlzbWlzcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLm9wZW5PdmVybGF5cy5wdXNoKG92ZXJsYXlSZWYhKTtcbiAgICB0aGlzLmFmdGVyT3BlbmVkLm5leHQob3ZlcmxheVJlZiEpO1xuXG4gICAgb3ZlcmxheVJlZiEuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIEZJWE1FOiBUaGVzZSBjbGFzc2VzIHNob3VsZCBvbmx5IGJlIHJlbW92ZWQgaWYgbm8gb3BlbiBvdmVybGF5cyByZXF1aXJlIHRoZW0gaW5zaWRlIHRoZWlyIGNvbmZpZy5cbiAgICAgIGNvbnN0IGRvY3VtZW50Q2xhc3NlcyA9IGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKHBvc2l0aW9uKSA9PiBwb3NpdGlvbi5jb25maWcuZG9jdW1lbnRDbGFzcyk7XG5cbiAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgZG9jdW1lbnRDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmtsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShrbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9keUNsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmJvZHlDbGFzcyk7XG5cbiAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgYm9keUNsYXNzZXMpIHtcbiAgICAgICAgaWYgKCFrbGFzcykgY29udGludWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2xhc3MpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKC4uLmtsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3Blbk92ZXJsYXlzLmluZGV4T2Yob3ZlcmxheVJlZik7XG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgICAgdGhpcy5vcGVuT3ZlcmxheXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgaWYgKCF0aGlzLm9wZW5PdmVybGF5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5uZXh0KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZiE7XG5cbiAgICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuICB9XG5cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VPdmVybGF5cyh0aGlzLm9wZW5PdmVybGF5cyk7XG4gIH1cblxuICBnZXRPdmVybGF5QnlJZChpZDogc3RyaW5nKTogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3Blbk92ZXJsYXlzLmZpbmQoKG92ZXJsYXkpID0+IG92ZXJsYXkuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlT3ZlcmxheXMob3ZlcmxheXM6IE92ZXJsYXlSZWZbXSkge1xuICAgIGxldCBpID0gb3ZlcmxheXMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgb3ZlcmxheXNbaV0/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2U7XG4gICAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWw7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { NgIf, NgTemplateOutlet } from '@angular/common';
1
+ import { NgTemplateOutlet } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, InjectionToken, Injector, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
3
3
  import { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';
4
4
  import { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';
@@ -35,24 +35,24 @@ export class ToggletipComponent {
35
35
  _setThemeFromProvider(provider) {
36
36
  this._themeProvider.syncWithProvider(provider);
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToggletipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToggletipComponent, isStandalone: true, selector: "et-toggletip", host: { properties: { "attr.aria-hidden": "this.attrAriaHidden", "class.et-with-default-animation": "this.usesDefaultAnimation", "class": "this.containerClass" }, classAttribute: "et-toggletip" }, providers: [
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ToggletipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: ToggletipComponent, isStandalone: true, selector: "et-toggletip", host: { properties: { "attr.aria-hidden": "this.attrAriaHidden", "class.et-with-default-animation": "this.usesDefaultAnimation", "class": "this.containerClass" }, classAttribute: "et-toggletip" }, providers: [
40
40
  {
41
41
  provide: TOGGLETIP,
42
42
  useExisting: ToggletipComponent,
43
43
  },
44
- ], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i1.ProvideThemeDirective }], ngImport: i0, template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
+ ], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i1.ProvideThemeDirective }], ngImport: i0, template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n @if (toggletipText) {\n {{ toggletipText }}\n }\n\n @if (toggletipTemplate) {\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n }\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToggletipComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ToggletipComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'et-toggletip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective], hostDirectives: [ProvideThemeDirective], host: {
48
+ args: [{ selector: 'et-toggletip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgTemplateOutlet, AnimatedLifecycleDirective], hostDirectives: [ProvideThemeDirective], host: {
49
49
  class: 'et-toggletip',
50
50
  }, providers: [
51
51
  {
52
52
  provide: TOGGLETIP,
53
53
  useExisting: ToggletipComponent,
54
54
  },
55
- ], template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"] }]
55
+ ], template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n @if (toggletipText) {\n {{ toggletipText }}\n }\n\n @if (toggletipTemplate) {\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n }\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"] }]
56
56
  }], propDecorators: { _animatedLifecycle: [{
57
57
  type: ViewChild,
58
58
  args: [ANIMATED_LIFECYCLE_TOKEN, { static: true }]
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
66
  type: HostBinding,
67
67
  args: ['class']
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xldGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvdG9nZ2xldGlwL2NvbXBvbmVudHMvdG9nZ2xldGlwL3RvZ2dsZXRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL3RvZ2dsZXRpcC9jb21wb25lbnRzL3RvZ2dsZXRpcC90b2dnbGV0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUV2RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQXFCLFdBQVcsQ0FBQyxDQUFDO0FBRTdFLGdFQUFnRTtBQUNoRSw4RkFBOEY7QUFvQjlGLE1BQU0sT0FBTyxrQkFBa0I7SUFuQi9CO1FBdUJtQixZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakMsa0JBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckUsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztLQXdCcEU7SUF0QkMsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQ0ksb0JBQW9CO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUErQjtRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBbENVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdRQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1NBQ0YsOEVBR1Usd0JBQXdCLHlIQzFDckMsOFdBV0Esb2pIRGtCWSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSwwQkFBMEI7OzRGQVlqRCxrQkFBa0I7a0JBbkI5QixTQUFTOytCQUNFLGNBQWMsY0FHWixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQTBCLENBQUMsa0JBQzdDLENBQUMscUJBQXFCLENBQUMsUUFDakM7d0JBQ0osS0FBSyxFQUFFLGNBQWM7cUJBQ3RCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFNBQVM7NEJBQ2xCLFdBQVcsb0JBQW9CO3lCQUNoQztxQkFDRjs4QkFJUSxrQkFBa0I7c0JBRDFCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWFqRCxjQUFjO3NCQURqQixXQUFXO3VCQUFDLGtCQUFrQjtnQkFNM0Isb0JBQW9CO3NCQUR2QixXQUFXO3VCQUFDLGlDQUFpQztnQkFNMUMsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTiwgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IFRPR0dMRVRJUF9DT05GSUcsIFRPR0dMRVRJUF9URU1QTEFURSwgVE9HR0xFVElQX1RFWFQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9HR0xFVElQX0RJUkVDVElWRSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5leHBvcnQgY29uc3QgVE9HR0xFVElQID0gbmV3IEluamVjdGlvblRva2VuPFRvZ2dsZXRpcENvbXBvbmVudD4oJ1RvZ2dsZXRpcCcpO1xuXG4vLyBUT0RPKFRSQik6IFRoZSBmb2N1cyBzaG91bGQgZ2V0IHRyYXBwZWQgaW5zaWRlIHRoZSB0b2dnbGV0aXAuXG4vLyBUaGUgdG9nZ2xldGlwIHRyaWdnZXIgc2hvdWxkIGdldCBhIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYW5kIGFyaWEtZXhwYW5kZWQ9XCJ0cnVlXCIgYXR0cmlidXRlLlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtdG9nZ2xldGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZXRpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvZ2dsZXRpcC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC10b2dnbGV0aXAnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUT0dHTEVUSVAsXG4gICAgICB1c2VFeGlzdGluZzogVG9nZ2xldGlwQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZXRpcENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByZWFkb25seSBfYW5pbWF0ZWRMaWZlY3ljbGU/OiBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBpbmplY3QoVE9HR0xFVElQX0NPTkZJRyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0b2dnbGV0aXBUZXh0ID0gaW5qZWN0KFRPR0dMRVRJUF9URVhULCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9nZ2xldGlwVGVtcGxhdGUgPSBpbmplY3QoVE9HR0xFVElQX1RFTVBMQVRFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgX3RyaWdnZXIgPSBpbmplY3QoVE9HR0xFVElQX0RJUkVDVElWRSk7XG4gIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oaWRkZW4nKVxuICBnZXQgYXR0ckFyaWFIaWRkZW4oKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV0LXdpdGgtZGVmYXVsdC1hbmltYXRpb24nKVxuICBnZXQgdXNlc0RlZmF1bHRBbmltYXRpb24oKSB7XG4gICAgcmV0dXJuICF0aGlzLl9jb25maWcuY3VzdG9tQW5pbWF0ZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuY29udGFpbmVyQ2xhc3M7XG4gIH1cblxuICBfbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIF9zZXRUaGVtZUZyb21Qcm92aWRlcihwcm92aWRlcjogUHJvdmlkZVRoZW1lRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fdGhlbWVQcm92aWRlci5zeW5jV2l0aFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV0LXRvZ2dsZXRpcC1jb250YWluZXJcIiBldEFuaW1hdGVkTGlmZWN5Y2xlPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9nZ2xldGlwVGV4dFwiPlxuICAgIHt7IHRvZ2dsZXRpcFRleHQgfX1cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvZ2dsZXRpcFRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvZ2dsZXRpcFRlbXBsYXRlOyBpbmplY3RvcjogaW5qZWN0b3JcIiAvPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwidG9nZ2xldGlwLWFycm93XCIgZXQtZmxvYXRpbmctYXJyb3c+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xldGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvdG9nZ2xldGlwL2NvbXBvbmVudHMvdG9nZ2xldGlwL3RvZ2dsZXRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL3RvZ2dsZXRpcC9jb21wb25lbnRzL3RvZ2dsZXRpcC90b2dnbGV0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsY0FBYyxFQUNkLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRXZELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsV0FBVyxDQUFDLENBQUM7QUFFN0UsZ0VBQWdFO0FBQ2hFLDhGQUE4RjtBQW9COUYsTUFBTSxPQUFPLGtCQUFrQjtJQW5CL0I7UUF1Qm1CLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRCxzQkFBaUIsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0tBd0JwRTtJQXRCQyxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFDSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHFCQUFxQixDQUFDLFFBQStCO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0FsQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsZ1FBUGxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLFdBQVcsRUFBRSxrQkFBa0I7YUFDaEM7U0FDRiw4RUFHVSx3QkFBd0IseUhDMUNyQyxnVEFXQSxvakhEa0JZLGdCQUFnQixvSkFBRSwwQkFBMEI7OzJGQVkzQyxrQkFBa0I7a0JBbkI5QixTQUFTOytCQUNFLGNBQWMsY0FHWixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxnQkFBZ0IsRUFBRSwwQkFBMEIsQ0FBQyxrQkFDdkMsQ0FBQyxxQkFBcUIsQ0FBQyxRQUNqQzt3QkFDSixLQUFLLEVBQUUsY0FBYztxQkFDdEIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsV0FBVyxvQkFBb0I7eUJBQ2hDO3FCQUNGOzhCQUlRLGtCQUFrQjtzQkFEMUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBYWpELGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU0zQixvQkFBb0I7c0JBRHZCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQU0xQyxjQUFjO3NCQURqQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZVRoZW1lRGlyZWN0aXZlLCBUSEVNRV9QUk9WSURFUiB9IGZyb20gJ0BldGhsZXRlL3RoZW1pbmcnO1xuaW1wb3J0IHsgVE9HR0xFVElQX0NPTkZJRywgVE9HR0xFVElQX1RFTVBMQVRFLCBUT0dHTEVUSVBfVEVYVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUT0dHTEVUSVBfRElSRUNUSVZFIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBUT0dHTEVUSVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9nZ2xldGlwQ29tcG9uZW50PignVG9nZ2xldGlwJyk7XG5cbi8vIFRPRE8oVFJCKTogVGhlIGZvY3VzIHNob3VsZCBnZXQgdHJhcHBlZCBpbnNpZGUgdGhlIHRvZ2dsZXRpcC5cbi8vIFRoZSB0b2dnbGV0aXAgdHJpZ2dlciBzaG91bGQgZ2V0IGEgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhbmQgYXJpYS1leHBhbmRlZD1cInRydWVcIiBhdHRyaWJ1dGUuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC10b2dnbGV0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xldGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xldGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmVdLFxuICBob3N0RGlyZWN0aXZlczogW1Byb3ZpZGVUaGVtZURpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXRvZ2dsZXRpcCcsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRPR0dMRVRJUCxcbiAgICAgIHVzZUV4aXN0aW5nOiBUb2dnbGV0aXBDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xldGlwQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZT86IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZyA9IGluamVjdChUT0dHTEVUSVBfQ09ORklHKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvZ2dsZXRpcFRleHQgPSBpbmplY3QoVE9HR0xFVElQX1RFWFQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0b2dnbGV0aXBUZW1wbGF0ZSA9IGluamVjdChUT0dHTEVUSVBfVEVNUExBVEUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSBfdHJpZ2dlciA9IGluamVjdChUT0dHTEVUSVBfRElSRUNUSVZFKTtcbiAgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gIGdldCBhdHRyQXJpYUhpZGRlbigpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXQtd2l0aC1kZWZhdWx0LWFuaW1hdGlvbicpXG4gIGdldCB1c2VzRGVmYXVsdEFuaW1hdGlvbigpIHtcbiAgICByZXR1cm4gIXRoaXMuX2NvbmZpZy5jdXN0b21BbmltYXRlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgY29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5jb250YWluZXJDbGFzcztcbiAgfVxuXG4gIF9tYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgX3NldFRoZW1lRnJvbVByb3ZpZGVyKHByb3ZpZGVyOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUpIHtcbiAgICB0aGlzLl90aGVtZVByb3ZpZGVyLnN5bmNXaXRoUHJvdmlkZXIocHJvdmlkZXIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXQtdG9nZ2xldGlwLWNvbnRhaW5lclwiIGV0QW5pbWF0ZWRMaWZlY3ljbGU+XG4gIEBpZiAodG9nZ2xldGlwVGV4dCkge1xuICAgIHt7IHRvZ2dsZXRpcFRleHQgfX1cbiAgfVxuXG4gIEBpZiAodG9nZ2xldGlwVGVtcGxhdGUpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xldGlwVGVtcGxhdGU7IGluamVjdG9yOiBpbmplY3RvclwiIC8+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwidG9nZ2xldGlwLWFycm93XCIgZXQtZmxvYXRpbmctYXJyb3c+PC9kaXY+XG48L2Rpdj5cbiJdfQ==