@theseam/ui-common 0.4.0-beta.5 → 0.4.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/breadcrumbs/breadcrumb.d.ts +1 -1
  2. package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
  3. package/core/common-behaviors/active.d.ts +1 -1
  4. package/core/common-behaviors/constructor.d.ts +1 -1
  5. package/core/common-behaviors/disabled.d.ts +1 -1
  6. package/core/common-behaviors/initialized.d.ts +1 -1
  7. package/core/common-behaviors/size.d.ts +1 -1
  8. package/core/common-behaviors/tabindex.d.ts +1 -1
  9. package/core/common-behaviors/theme.d.ts +1 -1
  10. package/data-exporter/data-exporter.d.ts +1 -1
  11. package/data-filters/data-filter.d.ts +3 -3
  12. package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
  13. package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
  14. package/datatable/models/preferences.d.ts +1 -1
  15. package/datatable/models/table-column.d.ts +1 -1
  16. package/datatable/services/columns-manager.service.d.ts +1 -1
  17. package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
  18. package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
  19. package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
  20. package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
  21. package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
  22. package/dynamic/models/dynamic-value.d.ts +1 -1
  23. package/dynamic/tokens/api-config.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
  25. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
  31. package/esm2020/buttons/button/button.component.mjs +9 -9
  32. package/esm2020/buttons/buttons.module.mjs +4 -4
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
  35. package/esm2020/card/card-action/card-action.component.mjs +3 -3
  36. package/esm2020/card/card-body/card-body.component.mjs +3 -3
  37. package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
  38. package/esm2020/card/card-header/card-header.component.mjs +3 -3
  39. package/esm2020/card/card.component.mjs +3 -3
  40. package/esm2020/card/card.module.mjs +4 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +43 -43
  42. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  43. package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
  44. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  45. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  46. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  47. package/esm2020/core/common-behaviors/active.mjs +3 -3
  48. package/esm2020/core/common-behaviors/disabled.mjs +3 -3
  49. package/esm2020/core/common-behaviors/size.mjs +6 -6
  50. package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
  51. package/esm2020/core/common-behaviors/theme.mjs +6 -6
  52. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  53. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  54. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  55. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  56. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
  57. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
  58. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
  59. package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
  60. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  61. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
  62. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
  63. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  64. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
  65. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
  66. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  67. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
  68. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
  69. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
  70. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
  71. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
  72. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
  73. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
  74. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  75. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
  76. package/esm2020/datatable/datatable.module.mjs +4 -4
  77. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
  78. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
  79. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  80. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  81. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  82. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
  83. package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
  84. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  85. package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
  86. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
  87. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
  88. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
  89. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
  90. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
  91. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  92. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
  93. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
  94. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
  95. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
  96. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
  97. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
  98. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
  99. package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
  100. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
  101. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
  102. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  103. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
  104. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
  105. package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
  106. package/esm2020/form-field/form-field-error.directive.mjs +6 -6
  107. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  108. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  109. package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
  110. package/esm2020/form-field/form-field.component.mjs +48 -48
  111. package/esm2020/form-field/form-field.module.mjs +4 -4
  112. package/esm2020/form-field/input.directive.mjs +43 -43
  113. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
  114. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
  115. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  116. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
  117. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  118. package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
  119. package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
  120. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  121. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  122. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  123. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
  124. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  125. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  126. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  127. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
  128. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
  129. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
  130. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
  131. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
  132. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
  133. package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
  134. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  135. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
  136. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
  137. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
  138. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  139. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  140. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  141. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  142. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  143. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  144. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  145. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  146. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  147. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
  148. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
  149. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
  150. package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
  151. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  152. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  153. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  154. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  155. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
  156. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  157. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
  158. package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
  159. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  160. package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
  161. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +103 -0
  162. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +25 -0
  163. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  164. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +19 -19
  165. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
  166. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
  167. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
  168. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  169. package/esm2020/google-maps/google-maps.service.mjs +5 -5
  170. package/esm2020/google-maps/map-control.component.mjs +9 -9
  171. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
  172. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  173. package/esm2020/google-maps/public-api.mjs +4 -1
  174. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
  175. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
  176. package/esm2020/icon/icon/icon.component.mjs +3 -3
  177. package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
  178. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  179. package/esm2020/icon/icon.module.mjs +4 -4
  180. package/esm2020/layout/layout.module.mjs +4 -4
  181. package/esm2020/layout/layout.service.mjs +3 -3
  182. package/esm2020/loading/loading/loading.component.mjs +7 -7
  183. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  184. package/esm2020/loading/loading.module.mjs +4 -4
  185. package/esm2020/menu/menu-divider.component.mjs +3 -3
  186. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  187. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
  188. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  189. package/esm2020/menu/menu-item.component.mjs +3 -3
  190. package/esm2020/menu/menu-toggle.directive.mjs +42 -42
  191. package/esm2020/menu/menu.component.mjs +15 -15
  192. package/esm2020/menu/menu.module.mjs +4 -4
  193. package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
  194. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  195. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  196. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  197. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  198. package/esm2020/modal/directives/modal.directive.mjs +3 -3
  199. package/esm2020/modal/modal/modal.component.mjs +19 -19
  200. package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
  201. package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
  202. package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
  203. package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
  204. package/esm2020/modal/modal.module.mjs +4 -4
  205. package/esm2020/modal/modal.service.mjs +16 -16
  206. package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
  207. package/esm2020/popover/popover/popover.component.mjs +18 -18
  208. package/esm2020/popover/popover.directive.mjs +32 -32
  209. package/esm2020/popover/popover.module.mjs +4 -4
  210. package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
  211. package/esm2020/progress/progress.module.mjs +4 -4
  212. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
  213. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
  214. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  215. package/esm2020/services/asset-loader.service.mjs +3 -3
  216. package/esm2020/services/font-loader.service.mjs +3 -3
  217. package/esm2020/services/router-helpers.service.mjs +3 -3
  218. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  219. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  220. package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
  221. package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
  222. package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
  223. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
  224. package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
  225. package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
  226. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
  227. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  228. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  229. package/esm2020/shared/shared.module.mjs +4 -4
  230. package/esm2020/storage/local-storage.service.mjs +3 -3
  231. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  232. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  233. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  234. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  235. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  236. package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
  237. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  238. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
  239. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
  240. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
  241. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
  242. package/esm2020/tabbed/tabbed.component.mjs +13 -13
  243. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  244. package/esm2020/tabbed/tabbed.service.mjs +3 -3
  245. package/esm2020/table/table/table.component.mjs +11 -11
  246. package/esm2020/table/table.module.mjs +4 -4
  247. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
  248. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
  249. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  250. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
  251. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
  252. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
  253. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
  254. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
  255. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
  256. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
  257. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
  258. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
  259. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  260. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  261. package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
  262. package/esm2020/tel-input/tel-input.directive.mjs +18 -18
  263. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  264. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
  265. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
  266. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
  267. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  268. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  269. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  270. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  271. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
  272. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  273. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  274. package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
  275. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  276. package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
  277. package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
  278. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  279. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
  280. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
  281. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
  282. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  283. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
  284. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  285. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
  286. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
  287. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
  288. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  289. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
  290. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  291. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  292. package/esm2020/widget/widget/widget.component.mjs +3 -3
  293. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
  294. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  295. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
  296. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  297. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  298. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  299. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
  300. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  301. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
  302. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  303. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
  304. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  305. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
  306. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  307. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  308. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
  309. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
  310. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  311. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
  312. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  313. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
  314. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
  315. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
  316. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
  317. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
  318. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
  319. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
  320. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  321. package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
  322. package/esm2020/widget/widget-registry.service.mjs +3 -3
  323. package/esm2020/widget/widget.module.mjs +4 -4
  324. package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
  325. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  326. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
  327. package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
  328. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  329. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  330. package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
  331. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  332. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
  333. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  334. package/fesm2015/theseam-ui-common-core.mjs +18 -18
  335. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  336. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  337. package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
  338. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  339. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
  340. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  341. package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
  342. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  343. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  344. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  345. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  346. package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
  347. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  348. package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
  349. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  350. package/fesm2015/theseam-ui-common-framework.mjs +196 -196
  351. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  352. package/fesm2015/theseam-ui-common-google-maps.mjs +202 -80
  353. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  354. package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
  355. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  356. package/fesm2015/theseam-ui-common-icon.mjs +33 -33
  357. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  358. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  359. package/fesm2015/theseam-ui-common-loading.mjs +13 -13
  360. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  361. package/fesm2015/theseam-ui-common-menu.mjs +79 -79
  362. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  363. package/fesm2015/theseam-ui-common-modal.mjs +85 -85
  364. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  365. package/fesm2015/theseam-ui-common-popover.mjs +52 -52
  366. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  367. package/fesm2015/theseam-ui-common-progress.mjs +12 -12
  368. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  369. package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
  370. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  371. package/fesm2015/theseam-ui-common-services.mjs +9 -9
  372. package/fesm2015/theseam-ui-common-shared.mjs +84 -84
  373. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  374. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  375. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
  376. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  377. package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
  378. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  379. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  380. package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
  381. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  382. package/fesm2015/theseam-ui-common-table.mjs +14 -14
  383. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  384. package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
  385. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  386. package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
  387. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
  389. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  390. package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
  391. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  392. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  393. package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
  394. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  395. package/fesm2015/theseam-ui-common-widget.mjs +156 -156
  396. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  397. package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
  398. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  399. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
  400. package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
  401. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  402. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  403. package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
  404. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  405. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
  406. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  407. package/fesm2020/theseam-ui-common-core.mjs +18 -18
  408. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  409. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  410. package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
  411. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  412. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
  413. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  414. package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
  415. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  416. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  417. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  418. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  419. package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
  420. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  421. package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
  422. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  423. package/fesm2020/theseam-ui-common-framework.mjs +196 -196
  424. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  425. package/fesm2020/theseam-ui-common-google-maps.mjs +200 -80
  426. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  427. package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
  428. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  429. package/fesm2020/theseam-ui-common-icon.mjs +33 -33
  430. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  431. package/fesm2020/theseam-ui-common-layout.mjs +7 -7
  432. package/fesm2020/theseam-ui-common-loading.mjs +13 -13
  433. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  434. package/fesm2020/theseam-ui-common-menu.mjs +77 -77
  435. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  436. package/fesm2020/theseam-ui-common-modal.mjs +85 -85
  437. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  438. package/fesm2020/theseam-ui-common-popover.mjs +52 -52
  439. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  440. package/fesm2020/theseam-ui-common-progress.mjs +12 -12
  441. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  442. package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
  443. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  444. package/fesm2020/theseam-ui-common-services.mjs +9 -9
  445. package/fesm2020/theseam-ui-common-shared.mjs +84 -84
  446. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  447. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  448. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
  449. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  450. package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
  451. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  452. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  453. package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
  454. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  455. package/fesm2020/theseam-ui-common-table.mjs +14 -14
  456. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  457. package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
  458. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  459. package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
  460. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  461. package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
  462. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  463. package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
  464. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  465. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  466. package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
  467. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  468. package/fesm2020/theseam-ui-common-widget.mjs +156 -156
  469. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  470. package/framework/base-layout/base-layout-action.d.ts +1 -1
  471. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
  472. package/framework/side-nav/side-nav.models.d.ts +1 -1
  473. package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +73 -0
  474. package/google-maps/google-maps-api-loader/noop-google-maps-api-loader.d.ts +13 -0
  475. package/google-maps/map-value-manager.service.d.ts +1 -1
  476. package/google-maps/public-api.d.ts +3 -0
  477. package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
  478. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  479. package/graphql/datatable/datatable-helpers.d.ts +2 -2
  480. package/graphql/datatable/map-filter-states.d.ts +2 -2
  481. package/graphql/datatable/map-page-info.d.ts +1 -1
  482. package/graphql/datatable/mapper-context.d.ts +1 -1
  483. package/graphql/models/gql-datatable-accessor.d.ts +1 -1
  484. package/graphql/models/hint-transformer.d.ts +1 -1
  485. package/icon/icon/icon.component.d.ts +1 -1
  486. package/icon/icon.d.ts +1 -1
  487. package/layout/breakpoint-aliases.d.ts +1 -1
  488. package/loading/loading.models.d.ts +1 -1
  489. package/modal/modal-config.d.ts +1 -1
  490. package/models/component-type.d.ts +1 -1
  491. package/models/size-prefixes.d.ts +1 -1
  492. package/models/size-types.d.ts +1 -1
  493. package/models/theme-prefixes.d.ts +1 -1
  494. package/models/theme-types.d.ts +2 -2
  495. package/package.json +1 -1
  496. package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
  497. package/services/font-loader.service.d.ts +1 -1
  498. package/table/table/table.component.d.ts +1 -1
  499. package/table-cell-type/table-cell-type-models.d.ts +3 -3
  500. package/table-cell-type/table-cell-type-name.d.ts +1 -1
  501. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
  502. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
  503. package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
  504. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
  505. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
  506. package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
  507. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
  508. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
  509. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
  510. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
  511. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
  512. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
  513. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
  514. package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
  515. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
  516. package/tiled-select/tiled-select.models.d.ts +2 -2
  517. package/utils/polling-ticker.d.ts +1 -1
  518. package/utils/subscriber-count.d.ts +1 -1
  519. package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
@@ -48,6 +48,7 @@ const FEATURE_STYLE_OPTIONS_SELECTED = {
48
48
  strokeWeight: 2,
49
49
  };
50
50
  export class GoogleMapsService {
51
+ get mapReady() { return this._mapReadySubject.value; }
51
52
  constructor(_mapValueManager, _ngZone, _vcr) {
52
53
  this._mapValueManager = _mapValueManager;
53
54
  this._ngZone = _ngZone;
@@ -59,7 +60,6 @@ export class GoogleMapsService {
59
60
  this._allowDrawingHoleInPolygon = false;
60
61
  this.mapReady$ = this._mapReadySubject.asObservable();
61
62
  }
62
- get mapReady() { return this._mapReadySubject.value; }
63
63
  ngOnDestroy() {
64
64
  this._ngUnsubscribe.next();
65
65
  this._ngUnsubscribe.complete();
@@ -347,9 +347,9 @@ export class GoogleMapsService {
347
347
  }
348
348
  }
349
349
  }
350
- GoogleMapsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: GoogleMapsService, deps: [{ token: i1.MapValueManagerService }, { token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable });
351
- GoogleMapsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: GoogleMapsService });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: GoogleMapsService, decorators: [{
350
+ GoogleMapsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService, deps: [{ token: i1.MapValueManagerService }, { token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable });
351
+ GoogleMapsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService, decorators: [{
353
353
  type: Injectable
354
354
  }], ctorParameters: function () { return [{ type: i1.MapValueManagerService }, { type: i0.NgZone }, { type: i0.ViewContainerRef }]; } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLE1BQU0sZUFBZSxDQUFBO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUcxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQ0FBaUMsR0FDbEMsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7QUFJcEYsTUFBTSx1QkFBdUIsR0FBK0I7SUFDMUQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2Qsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFBO0FBRUQsTUFBTSwrQkFBK0IsR0FBc0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxjQUFjLEVBQUUsSUFBSTtJQUNwQixxQkFBcUIsRUFBRTtRQUNyQixZQUFZLEVBQUU7WUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTztTQUN4QztLQUNGO0lBQ0QsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxXQUFXLEVBQUUsSUFBSTtDQUNsQixDQUFDLENBQUE7QUFFRixNQUFNLDZCQUE2QixHQUFrQztJQUNuRSxTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsbUJBQW1CO0lBRW5CLG1CQUFtQjtJQUNuQixTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsS0FBSztJQUNmLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFlBQVksRUFBRSxDQUFDO0NBQ2hCLENBQUE7QUFFRCxNQUFNLDhCQUE4QixHQUFrQztJQUNwRSxHQUFHLDZCQUE2QjtJQUNoQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsU0FBUyxFQUFFLE9BQU87SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsYUFBYSxFQUFFLENBQUM7SUFDaEIsWUFBWSxFQUFFLENBQUM7Q0FDaEIsQ0FBQTtBQUtELE1BQU0sT0FBTyxpQkFBaUI7SUFxQjVCLFlBQ21CLGdCQUF3QyxFQUN4QyxPQUFlLEVBQ2YsSUFBc0I7UUFGdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUF2QnhCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtRQUVwQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQUcvRCx3QkFBbUIsR0FBeUIsSUFBSSxDQUFBO1FBQ2hELHVCQUFrQixHQUFpQyxJQUFJLENBQUE7UUFHdkQsK0JBQTBCLEdBQVksS0FBSyxDQUFBO1FBZ0JqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN2RCxDQUFDO0lBUkQsSUFBVyxRQUFRLEtBQWMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQVVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBb0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUE7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVELDRFQUE0RTtJQUNyRSxxQkFBcUIsQ0FBQyxJQUEwQjtRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO0lBQ2pDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBb0IsQ0FBQTtJQUNsRCxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWtFLEVBQUUsT0FBc0M7UUFDekgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUE7UUFDbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQixJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUM3RixPQUFNO2FBQ1A7WUFFRCwwRUFBMEU7WUFDMUUsd0VBQXdFO1lBQ3hFLHdFQUF3RTtZQUN4RSxhQUFhO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUM1QyxJQUFJLENBQUMsZUFBZSxFQUNwQixpQkFBaUIsRUFDakIsQ0FBQyxLQUErQyxFQUFFLEVBQUU7Z0JBQ2xELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMzQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDbkIsQ0FBQyxDQUNGLENBQUE7WUFFRCx1RUFBdUU7WUFDdkUsdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RSx5RUFBeUU7WUFDekUsdUVBQXVFO1lBQ3ZFLHFFQUFxRTtZQUNyRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRXpDLHNFQUFzRTtZQUN0RSwwRUFBMEU7WUFDMUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDbkIsQ0FBQyxDQUFDLENBQUE7UUFFSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtTQUN0RDtRQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBRXpCLE1BQU0sT0FBTyxHQUFHLCtCQUErQixFQUFFLENBQUE7UUFFakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUE7UUFFckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNyRSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN4QixrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7cUJBQzdCO2dCQUNILENBQUMsQ0FBQyxDQUFBO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBb0IsRUFBRSxRQUFxQztRQUMzRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBUztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELDRFQUE0RTtJQUNyRSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDekIsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsT0FBTTthQUNQO1lBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3RDLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV2RSwwRUFBMEU7UUFDMUUscUNBQXFDO1FBQ3JDLDRFQUE0RTtJQUM5RSxDQUFDO0lBRU0seUJBQXlCLENBQUMsS0FBYztRQUM3QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFrRDtRQUMzRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFBO0lBQ2xDLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUE7SUFDL0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUV6QiwrQ0FBK0M7UUFDL0MsRUFBRTtRQUNGLDRFQUE0RTtRQUM1RSxzRUFBc0U7UUFDdEUsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQTRELEVBQUUsRUFBRTtZQUNuRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDLENBQUMsQ0FBQTtRQUVGLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5QixPQUFPLDhCQUE4QixDQUFBO2FBQ3RDO1lBRUQsT0FBTyw2QkFBNkIsQ0FBQTtRQUN0QyxDQUFDLENBQUMsQ0FBQTtRQUVGLGlDQUFpQztRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQzlFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBRXpCLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUMvQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7aUJBQzdCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUVGLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDdEU7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVGLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ25DLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUV6Qiw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNuRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQ3RGLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUMvQixDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRWIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQWtDLEVBQUUsRUFBRTtZQUNwRixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNyQyxPQUFNO2FBQ1A7WUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFBO1FBQzNFLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxPQUE0QixFQUFFLEVBQUU7Z0JBQ3RHLHdFQUF3RTtnQkFDeEUsd0VBQXdFO2dCQUN4RSxxRUFBcUU7Z0JBQ3JFLHNFQUFzRTtnQkFDdEUsNENBQTRDO2dCQUM1QyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO29CQUN2QyxPQUFNO2lCQUNQO2dCQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO2dCQUV6QixxRUFBcUU7Z0JBQ3JFLHFFQUFxRTtnQkFDckUsZ0VBQWdFO2dCQUNoRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pDLDRCQUE0QjtvQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDcEIsZ0JBQWdCO29CQUNoQixJQUFJLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDMUMsT0FBTTtpQkFDUDtnQkFFRCw2Q0FBNkM7Z0JBQzdDLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUNyRCw0QkFBNEI7Z0JBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRXBCLGdCQUFnQjtnQkFDaEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRTFDLGlFQUFpRTtnQkFDakUsd0NBQXdDO2dCQUN4QyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQywwQkFBMEI7b0JBQzVELENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7b0JBQzFELENBQUMsQ0FBQyxTQUFTLENBQUE7Z0JBQ2IsSUFBSSxzQkFBc0IsRUFBRTtvQkFDMUIsc0NBQXNDLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUE7b0JBQ3ZFLGtCQUFrQixDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFBO2lCQUNqRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBQ2hDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtpQkFDbEM7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxLQUFLLElBQUksQ0FBQTtJQUN2RCxDQUFDO0lBRUQsNEVBQTRFO0lBQ3JFLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlCLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hCLFVBQVUsR0FBRyxJQUFJLENBQUE7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFRCw0RUFBNEU7SUFDckUsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQ3pCLElBQUksT0FBTyxHQUFvQyxJQUFJLENBQUE7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlCLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sR0FBRyxDQUFDLENBQUE7YUFDWjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELDRFQUE0RTtJQUNyRSxlQUFlO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQ3pDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELDRFQUE0RTtJQUNwRSwwQkFBMEIsQ0FBQyxPQUFpQyxFQUFFLFFBQTZCO1FBQ2pHLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1NBQy9CO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFFekIsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDdEM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxxQkFBcUIsQ0FDakQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLFNBQVMsRUFDVCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ25CLE9BQU8sQ0FDUixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLHNCQUErQixJQUFJO1FBQ25ELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLG1CQUFtQixFQUFFO29CQUN2QixpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDckM7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1osQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpREFBaUQ7SUFDekMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sS0FBSyxDQUNULDRFQUE0RTtnQkFDMUUsb0VBQW9FLENBQ3ZFLENBQUE7U0FDRjtJQUNILENBQUM7OzhHQWpZVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgR29vZ2xlTWFwc0NvbnRleHRNZW51IH0gZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmltcG9ydCB7XG4gIGFkZElubmVyRmVhdHVyZUN1dG91dFRvRXh0ZXJpb3JGZWF0dXJlLFxuICBjcmVhdGVEYXRhRmVhdHVyZUZyb21Qb2x5Z29uLFxuICBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZSxcbiAgZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzLFxuICBnZXRGZWF0dXJlQ2VudGVyLFxuICBnZXRGZWF0dXJlc0NvdW50LFxuICBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSxcbiAgaXNGZWF0dXJlU2VsZWN0ZWQsXG4gIHBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3RocyxcbiAgcmVtb3ZlQWxsRmVhdHVyZXMsXG4gIHNldEZlYXR1cmVTZWxlY3RlZCxcbiAgc3RyaXBBcHBGZWF0dXJlUHJvcGVydGllc0Zyb21Kc29uLFxufSBmcm9tICcuL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycydcbmltcG9ydCB7IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlJ1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5jb25zdCBERUZBVUxUX1BPTFlHT05fT1BUSU9OUzogZ29vZ2xlLm1hcHMuUG9seWdvbk9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgLy8gZmlsbENvbG9yOiAncmdiYSg2MCwxNTAsNjAsMSknLFxuICAvLyBzdHJva2VDb2xvcjogJ3JnYmEoMTU1LDI1NSwwLDEpJ1xufVxuXG5jb25zdCBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TOiAoKCkgPT4gZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlck9wdGlvbnMpID0gKCkgPT4gKHtcbiAgZHJhd2luZ0NvbnRyb2w6IHRydWUsXG4gIGRyYXdpbmdDb250cm9sT3B0aW9uczoge1xuICAgIGRyYXdpbmdNb2RlczogW1xuICAgICAgZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OXG4gICAgXVxuICB9LFxuICBwb2x5Z29uT3B0aW9uczogREVGQVVMVF9QT0xZR09OX09QVElPTlMsXG4gIGRyYXdpbmdNb2RlOiBudWxsXG59KVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVDogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgLy8gekluZGV4PzogbnVtYmVyO1xuXG4gIC8vIGN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgZWRpdGFibGU6IGZhbHNlLFxuICBmaWxsQ29sb3I6ICd0ZWFsJyxcbiAgZmlsbE9wYWNpdHk6IDAuMyxcbiAgc3Ryb2tlQ29sb3I6ICdibHVlJyxcbiAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgc3Ryb2tlV2VpZ2h0OiAyLFxufVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfU0VMRUNURUQ6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zID0ge1xuICAuLi5GRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVCxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgZmlsbENvbG9yOiAnZ3JlZW4nLFxuICBmaWxsT3BhY2l0eTogMC43LFxuICBzdHJva2VDb2xvcjogJ2xpbWVncmVlbicsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdlaWdodDogMixcbn1cblxudHlwZSBXaXRoUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gVCAmIHsgW1AgaW4gS10tPzogVFtQXSB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVNYXBzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwUmVhZHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwcml2YXRlIF9kcmF3aW5nTWFuYWdlcj86IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJcbiAgcHJpdmF0ZSBfZmVhdHVyZUNvbnRleHRNZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGV4dE1lbnU6IEdvb2dsZU1hcHNDb250ZXh0TWVudSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgX2Jhc2VMYXRMbmc/OiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsXG5cbiAgcHJpdmF0ZSBfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogTW92ZSB0byBhIGJldHRlciBwbGFjZSB0aGFuIHRoZSBtYXAgd3JhcHBlciBzZXJ2aWNlLlxuICBwcml2YXRlIF9maWxlSW5wdXRIYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIHB1YmxpYyBnb29nbGVNYXA/OiBnb29nbGUubWFwcy5NYXBcblxuICBwdWJsaWMgcmVhZG9ubHkgbWFwUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIGdldCBtYXBSZWFkeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21hcFJlYWR5U3ViamVjdC52YWx1ZSB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gICAgdGhpcy5tYXBSZWFkeSQgPSB0aGlzLl9tYXBSZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgdGhpcy5nb29nbGVNYXAgPSBtYXBcbiAgICB0aGlzLl9tYXBSZWFkeVN1YmplY3QubmV4dCh0cnVlKVxuICAgIHRoaXMuX2luaXREcmF3aW5nTWFuYWdlcigpXG4gICAgdGhpcy5faW5pdEZlYXR1cmVTdHlsaW5nKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpXG4gIH1cblxuICBwdWJsaWMgc2V0QmFzZUxhdExuZyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9iYXNlTGF0TG5nID0geyBsYXQsIGxuZyB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBzZXRGZWF0dXJlQ29udGV4dE1lbnUobWVudTogTWVudUNvbXBvbmVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUgPSBtZW51XG4gIH1cblxuICBwdWJsaWMgZ2V0RGl2KCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwLmdldERpdigpIGFzIEhUTUxEaXZFbGVtZW50XG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aGUgbWFwJ3MgZmVhdHVyZXMgYW5kIHJlbW92ZXMgYW55IHRoYXQgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgY29uc3QgbWFwRGF0YSA9IHRoaXMuZ29vZ2xlTWFwLmRhdGFcbiAgICBtYXBEYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgbWFwRGF0YS5yZW1vdmUoZilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjdXJyZW50IGRyYXdpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RvcERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikgfHwgdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTGlzdGVuaW5nIGZvciB0aGUgY29tcGxldGlvbiBldmVudCBvZiB0aGUgb3ZlcmxheSBjdXJyZW50bHkgYmVpbmcgZHJhd25cbiAgICAgIC8vIGFuZCByZW1vdmluZyBpdC4gSSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIGNhbmNlbCB0aGUgY3VycmVudCBkcmF3aW5nLFxuICAgICAgLy8gd2l0aG91dCB0aGlzIGhhY2sgdGhhdCBhc3N1bWVzIG91ciBsaXN0ZW5lcnMgd2lsbCBub3QgcnVuIGludG8gYSByYWNlXG4gICAgICAvLyBjb25kaXRpb24uXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKFxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcixcbiAgICAgICAgJ292ZXJsYXljb21wbGV0ZScsXG4gICAgICAgIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50Lm92ZXJsYXk/LnNldE1hcChudWxsKVxuICAgICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICAgIH1cbiAgICAgIClcblxuICAgICAgLy8gVG8gZmFrZSBjYW5jZWxpbmcgdGhlIGN1cnJlbnQgZHJhd2luZywgd2l0aG91dCBkaXNhYmxpbmcgdGhlIGRyYXdpbmdcbiAgICAgIC8vIG1vZGUsIHRoZSBkcmF3aW4gbW9kZSBpcyBiZWluZyB1bnNldCB0aGVuIGltbWVkaWF0ZWx5IHNldCBiYWNrLiBXaGVuXG4gICAgICAvLyB0aGUgbW9kZSBpcyB1bnNldCB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQgd2lsbCBmaXJlLCB3aGljaCB3aWxsXG4gICAgICAvLyBnaXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IG92ZXJsYXkgdG8gcmVtb3ZlLCB0aGVuIGl0IGlzIHNldCBiYWNrXG4gICAgICAvLyB0byB0aGUgbW9kZSB0aGUgdXNlciB3YXMgdXNpbmcuIFRvIHRoZSB1c2VyIGlzIHNob3VsZCBqdXN0IHNlZW0gbGlrZVxuICAgICAgLy8gdGhlIGN1cnJlbnQgZHJhd2luZyB3YXMgY2FuY2VsZWQgYW5kIHRoZXkgY2FuIHN0YXJ0IGRyYXdpbmcgYWdhaW4uXG4gICAgICBjb25zdCBtb2RlID0gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKVxuICAgICAgdGhpcy5fZHJhd2luZ01hbmFnZXIuc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG1vZGUpXG5cbiAgICAgIC8vICdvdmVybGF5Y29tcGxldGUnIHNob3VsZCBmaXJlIGltbWVkaWF0ZWx5LCB1bmxlc3MgYW4gb3ZlcmxheSBoYWRuJ3RcbiAgICAgIC8vIHN0YXJ0ZWQgZHJhd2luZy4gVGhpcyB0aW1lb3V0IHdpbGwgbWFrZSBzdXJlIHRoZSBsaXN0ZW5lciBnZXRzIHJlbW92ZWQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbGlzdGVuZXIucmVtb3ZlKClcbiAgICAgIH0pXG5cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyYXdpbmdNYW5hZ2VyKCk6IHZvaWQge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fZHJhd2luZ01hbmFnZXIpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgRHJhd2luZ01hbmFnZXIgaXMgYWxyZWFkeSBpbml0aWFsaXplZC5gKVxuICAgIH1cblxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TKClcblxuICAgIGNvbnN0IGRyYXdpbmdNYW5hZ2VyID0gbmV3IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXIob3B0aW9ucylcbiAgICBkcmF3aW5nTWFuYWdlci5zZXRNYXAodGhpcy5nb29nbGVNYXApXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlciA9IGRyYXdpbmdNYW5hZ2VyXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5hZGRMaXN0ZW5lcignZHJhd2luZ21vZGVfY2hhbmdlZCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5fZHJhd2luZ01hbmFnZXI/LmdldERyYXdpbmdNb2RlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYWRkQ29udHJvbChlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246IGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICB0aGlzLmdvb2dsZU1hcC5jb250cm9sc1twb3NpdGlvbl0ucHVzaChlbGVtZW50KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldERhdGEoZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJlbW92ZUFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRHZW9Kc29uKGRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIHJlQ2VudGVyT25GZWF0dXJlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgaWYgKGdldEZlYXR1cmVzQ291bnQodGhpcy5nb29nbGVNYXAuZGF0YSkgPT09IDApIHtcbiAgICAgIGlmICghdGhpcy5fYmFzZUxhdExuZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5nb29nbGVNYXAucGFuVG8odGhpcy5fYmFzZUxhdExuZylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuXG4gICAgLy8gVE9ETzogRml4IHRvIHBhbiB0byBjZW50ZXIuIEN1cnJlbnRseSBmaXRCb3VuZHMgcmVzdWx0cyBpbiB0aGUgZXhwZWN0ZWRcbiAgICAvLyByZXN1bHQsIGJ1dCBwYW50VG9Cb3VuZHMgYW5pbWF0ZXMuXG4gICAgLy8gdGhpcy5nb29nbGVNYXAucGFuVG9Cb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuICB9XG5cbiAgcHVibGljIGFsbG93RHJhd2luZ0hvbGVJblBvbHlnb24oYWxsb3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gYWxsb3dcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWxlSW5wdXRIYW5kbGVyKGhhbmRsZXI6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUlucHV0SGFuZGxlciA9IGhhbmRsZXJcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWxlSW5wdXRIYW5kbGVyKCk6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZUlucHV0SGFuZGxlclxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZlYXR1cmVTdHlsaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIC8vIERpc2FibGUgYW55IHNlbGVjdGlvbiB3aGVuIGNsaWNraW5nIHRoZSBtYXAuXG4gICAgLy9cbiAgICAvLyBUT0RPOiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMgdGhhdCB3b3VsZCBiZSBtb3JlIGFjY3VyYXRlIG9yXG4gICAgLy8gYWRkaXRpb25hbCBldmVudHMgdGhhdCBzaG91bGQgYmUgbGlzdGVuZWQgdG8sIHN1Y2ggYXMgdGhlIGRpc2FibGluZ1xuICAgIC8vIHNlbGVjdGlvbiB3aGVuIHRoZSBtYXAgbG9vc2VzIGZvY3VzLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVuOiBnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50IHwgZ29vZ2xlLm1hcHMuSWNvbk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSkpXG4gICAgfSlcblxuICAgIC8vIERldGVybWluZSB3aGF0IHRoZSBzdHlsZSBvZiB0aGUgZmVhdHVyZXMgYXJlLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuc2V0U3R5bGUoKGZlYXR1cmUpID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlKSkge1xuICAgICAgICByZXR1cm4gRkVBVFVSRV9TVFlMRV9PUFRJT05TX1NFTEVDVEVEXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVFxuICAgIH0pXG5cbiAgICAvLyBTZWxlY3QgYSBmZWF0dXJlIHdoZW4gY2xpY2tlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlLCB0cnVlKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBpZiAoZiAhPT0gZXZlbnQuZmVhdHVyZSAmJiBpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgLy8gU2V0IGEgc3R5bGUgb24gaG92ZXJlZCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgICBpZiAoIXRoaXMuaXNEcmF3aW5nKCkgJiYgIWlzRmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUpKSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEub3ZlcnJpZGVTdHlsZShldmVudC5mZWF0dXJlLCB7IHN0cm9rZVdlaWdodDogNCB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBSZW1vdmUgYW55IGhvdmVyIHN0eWxlcyB3aGVuIG1vdXNlIG1vdmVzIGF3YXkuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignbW91c2VvdXQnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGZWF0dXJlQ2hhbmdlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNyZWF0ZUZlYXR1cmVDaGFuZ2VPYnNlcnZhYmxlKHRoaXMuZ29vZ2xlTWFwLmRhdGEsIHRoaXMuX25nWm9uZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKHRoaXMuZ2V0R2VvSnNvbigpKS5waXBlKFxuICAgICAgICB0YXAoZ2VvSnNvbiA9PiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIuc2V0VmFsdWUoZ2VvSnNvbiwgTWFwVmFsdWVTb3VyY2UuRmVhdHVyZUNoYW5nZSkpLFxuICAgICAgKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0ZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShldmVudC5mZWF0dXJlLCBldmVudC5sYXRMbmcgPz8gdW5kZWZpbmVkKVxuICAgIH0pXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5fZHJhd2luZ01hbmFnZXIsICdwb2x5Z29uY29tcGxldGUnLCAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICAvLyBUaGUgRHJhd2luZ01hbmFnZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB3YXkgdG8gYWNjZXNzIHRoZSBvdmVybGF5cyxcbiAgICAgICAgLy8gc28gaWYgdGhlIG1hcCBpcyBub3Qgc2V0IHRoZW4gaXQgc2hvdWxkbid5IGJlIGNvbnNpZGVyZWQgYSBzdWNjZXNzZnVsXG4gICAgICAgIC8vIGNvbXBsZXRpb24uIEkgYW0gY2FuY2VsaW5nIHRoZSBhY3RpdmUgZHJhd2luZyBieSBkaXNhYmxpbmcgZHJhd2luZ1xuICAgICAgICAvLyBtb2RlIGFuZCBzZXR0aW5nIHRoZSBtYXAgbnVsbCBpbiB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQsIHdoaWNoXG4gICAgICAgIC8vIGZpcmVzIGJlZm9yZSB0aGUgJ3BvbHlnb25jb21wbGV0ZScgZXZlbnQuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwb2x5Z29uLmdldE1hcCgpKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICAgIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIHdheSB0byBwcmV2ZW50IHRoZSBwb2x5Z29uIGZyb20gY29tcGxldGluZ1xuICAgICAgICAvLyB3aXRob3V0IGVub3VnaCBwb2ludHMuIFRoaXMgaXMgdmVyeSBsb3cgcHJpb3JpdHksIGJlY2F1c2Ugc3RhcnRpbmdcbiAgICAgICAgLy8gb3ZlciBhZnRlciBhZGRpbmcgYSBzaW5nbGUgcG9pbnQgaXNuJ3QgYSBtYWpvciBpbmNvbnZlbmllbmNlLlxuICAgICAgICBpZiAoIXBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3Rocyhwb2x5Z29uKSkge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuICAgICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmZWF0dXJlIG9mIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBjb25zdCBmZWF0dXJlID0gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGRyYXduIHBvbHlnb24uXG4gICAgICAgIHBvbHlnb24uc2V0TWFwKG51bGwpXG5cbiAgICAgICAgLy8gU3RvcCBkcmF3aW5nLlxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmVhdHVyZSBzaG91bGQgYmUgdXNlZCBhcyBhIGN1dG91dCB0byBhbiBleGlzdGluZ1xuICAgICAgICAvLyBmZWF0dXJlIG9yIGFkZGVkIGFzIGl0J3Mgb3duIGZlYXR1cmUuXG4gICAgICAgIGNvbnN0IGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uXG4gICAgICAgICAgPyBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCBmZWF0dXJlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChleHRlcmlvclBvbHlnb25GZWF0dXJlKSB7XG4gICAgICAgICAgYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZChmZWF0dXJlKVxuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmZWF0dXJlLCB0cnVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RyYXdpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgaGFzU2VsZWN0ZWRGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaXNTZWxlY3RlZFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRGZWF0dXJlKCk6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgbnVsbCA9IG51bGxcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgZmVhdHVyZSA9IGZcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmZWF0dXJlXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBvcGVuQ29udGV4dE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZ2V0U2VsZWN0ZWRGZWF0dXJlKClcbiAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHJpdmF0ZSBfb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudS5jbG9zZSgpXG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBsZXQgX3Bvc2l0aW9uID0gcG9zaXRpb25cbiAgICBpZiAoIV9wb3NpdGlvbikge1xuICAgICAgX3Bvc2l0aW9uID0gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlKVxuICAgIH1cbiAgICBpZiAodGhpcy5fZmVhdHVyZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG5ldyBHb29nbGVNYXBzQ29udGV4dE1lbnUoXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLFxuICAgICAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUsXG4gICAgICAgIF9wb3NpdGlvbixcbiAgICAgICAgdGhpcy5fdmNyLFxuICAgICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEsXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEdlb0pzb24ocmVtb3ZlQXBwUHJvcGVydGllczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnRvR2VvSnNvbihmID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUFwcFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oZilcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGYpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8R29vZ2xlTWFwc1NlcnZpY2UsICdnb29nbGVNYXAnPiB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZU1hcCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICdQbGVhc2Ugd2FpdCBmb3IgdGhlIEFQSSB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLE1BQU0sZUFBZSxDQUFBO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUcxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQ0FBaUMsR0FDbEMsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7QUFJcEYsTUFBTSx1QkFBdUIsR0FBK0I7SUFDMUQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2Qsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFBO0FBRUQsTUFBTSwrQkFBK0IsR0FBc0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxjQUFjLEVBQUUsSUFBSTtJQUNwQixxQkFBcUIsRUFBRTtRQUNyQixZQUFZLEVBQUU7WUFDWixNQUFNLENBQUMs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QUE7U0FDdEM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxxQkFBcUIsQ0FDakQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLFNBQVMsRUFDVCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ25CLE9BQU8sQ0FDUixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLHNCQUErQixJQUFJO1FBQ25ELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLG1CQUFtQixFQUFFO29CQUN2QixpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDckM7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1osQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpREFBaUQ7SUFDekMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sS0FBSyxDQUNULDRFQUE0RTtnQkFDMUUsb0VBQW9FLENBQ3ZFLENBQUE7U0FDRjtJQUNILENBQUM7OzhHQWpZVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgR29vZ2xlTWFwc0NvbnRleHRNZW51IH0gZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmltcG9ydCB7XG4gIGFkZElubmVyRmVhdHVyZUN1dG91dFRvRXh0ZXJpb3JGZWF0dXJlLFxuICBjcmVhdGVEYXRhRmVhdHVyZUZyb21Qb2x5Z29uLFxuICBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZSxcbiAgZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzLFxuICBnZXRGZWF0dXJlQ2VudGVyLFxuICBnZXRGZWF0dXJlc0NvdW50LFxuICBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSxcbiAgaXNGZWF0dXJlU2VsZWN0ZWQsXG4gIHBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3RocyxcbiAgcmVtb3ZlQWxsRmVhdHVyZXMsXG4gIHNldEZlYXR1cmVTZWxlY3RlZCxcbiAgc3RyaXBBcHBGZWF0dXJlUHJvcGVydGllc0Zyb21Kc29uLFxufSBmcm9tICcuL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycydcbmltcG9ydCB7IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlJ1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5jb25zdCBERUZBVUxUX1BPTFlHT05fT1BUSU9OUzogZ29vZ2xlLm1hcHMuUG9seWdvbk9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgLy8gZmlsbENvbG9yOiAncmdiYSg2MCwxNTAsNjAsMSknLFxuICAvLyBzdHJva2VDb2xvcjogJ3JnYmEoMTU1LDI1NSwwLDEpJ1xufVxuXG5jb25zdCBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TOiAoKCkgPT4gZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlck9wdGlvbnMpID0gKCkgPT4gKHtcbiAgZHJhd2luZ0NvbnRyb2w6IHRydWUsXG4gIGRyYXdpbmdDb250cm9sT3B0aW9uczoge1xuICAgIGRyYXdpbmdNb2RlczogW1xuICAgICAgZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OXG4gICAgXVxuICB9LFxuICBwb2x5Z29uT3B0aW9uczogREVGQVVMVF9QT0xZR09OX09QVElPTlMsXG4gIGRyYXdpbmdNb2RlOiBudWxsXG59KVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVDogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgLy8gekluZGV4PzogbnVtYmVyO1xuXG4gIC8vIGN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgZWRpdGFibGU6IGZhbHNlLFxuICBmaWxsQ29sb3I6ICd0ZWFsJyxcbiAgZmlsbE9wYWNpdHk6IDAuMyxcbiAgc3Ryb2tlQ29sb3I6ICdibHVlJyxcbiAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgc3Ryb2tlV2VpZ2h0OiAyLFxufVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfU0VMRUNURUQ6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zID0ge1xuICAuLi5GRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVCxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgZmlsbENvbG9yOiAnZ3JlZW4nLFxuICBmaWxsT3BhY2l0eTogMC43LFxuICBzdHJva2VDb2xvcjogJ2xpbWVncmVlbicsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdlaWdodDogMixcbn1cblxudHlwZSBXaXRoUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gVCAmIHsgW1AgaW4gS10tPzogVFtQXSB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVNYXBzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwUmVhZHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwcml2YXRlIF9kcmF3aW5nTWFuYWdlcj86IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJcbiAgcHJpdmF0ZSBfZmVhdHVyZUNvbnRleHRNZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGV4dE1lbnU6IEdvb2dsZU1hcHNDb250ZXh0TWVudSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgX2Jhc2VMYXRMbmc/OiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsXG5cbiAgcHJpdmF0ZSBfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogTW92ZSB0byBhIGJldHRlciBwbGFjZSB0aGFuIHRoZSBtYXAgd3JhcHBlciBzZXJ2aWNlLlxuICBwcml2YXRlIF9maWxlSW5wdXRIYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIHB1YmxpYyBnb29nbGVNYXA/OiBnb29nbGUubWFwcy5NYXBcblxuICBwdWJsaWMgcmVhZG9ubHkgbWFwUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIGdldCBtYXBSZWFkeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21hcFJlYWR5U3ViamVjdC52YWx1ZSB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gICAgdGhpcy5tYXBSZWFkeSQgPSB0aGlzLl9tYXBSZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgdGhpcy5nb29nbGVNYXAgPSBtYXBcbiAgICB0aGlzLl9tYXBSZWFkeVN1YmplY3QubmV4dCh0cnVlKVxuICAgIHRoaXMuX2luaXREcmF3aW5nTWFuYWdlcigpXG4gICAgdGhpcy5faW5pdEZlYXR1cmVTdHlsaW5nKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpXG4gIH1cblxuICBwdWJsaWMgc2V0QmFzZUxhdExuZyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9iYXNlTGF0TG5nID0geyBsYXQsIGxuZyB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBzZXRGZWF0dXJlQ29udGV4dE1lbnUobWVudTogTWVudUNvbXBvbmVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUgPSBtZW51XG4gIH1cblxuICBwdWJsaWMgZ2V0RGl2KCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwLmdldERpdigpIGFzIEhUTUxEaXZFbGVtZW50XG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aGUgbWFwJ3MgZmVhdHVyZXMgYW5kIHJlbW92ZXMgYW55IHRoYXQgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgY29uc3QgbWFwRGF0YSA9IHRoaXMuZ29vZ2xlTWFwLmRhdGFcbiAgICBtYXBEYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgbWFwRGF0YS5yZW1vdmUoZilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjdXJyZW50IGRyYXdpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RvcERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikgfHwgdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTGlzdGVuaW5nIGZvciB0aGUgY29tcGxldGlvbiBldmVudCBvZiB0aGUgb3ZlcmxheSBjdXJyZW50bHkgYmVpbmcgZHJhd25cbiAgICAgIC8vIGFuZCByZW1vdmluZyBpdC4gSSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIGNhbmNlbCB0aGUgY3VycmVudCBkcmF3aW5nLFxuICAgICAgLy8gd2l0aG91dCB0aGlzIGhhY2sgdGhhdCBhc3N1bWVzIG91ciBsaXN0ZW5lcnMgd2lsbCBub3QgcnVuIGludG8gYSByYWNlXG4gICAgICAvLyBjb25kaXRpb24uXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKFxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcixcbiAgICAgICAgJ292ZXJsYXljb21wbGV0ZScsXG4gICAgICAgIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50Lm92ZXJsYXk/LnNldE1hcChudWxsKVxuICAgICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICAgIH1cbiAgICAgIClcblxuICAgICAgLy8gVG8gZmFrZSBjYW5jZWxpbmcgdGhlIGN1cnJlbnQgZHJhd2luZywgd2l0aG91dCBkaXNhYmxpbmcgdGhlIGRyYXdpbmdcbiAgICAgIC8vIG1vZGUsIHRoZSBkcmF3aW4gbW9kZSBpcyBiZWluZyB1bnNldCB0aGVuIGltbWVkaWF0ZWx5IHNldCBiYWNrLiBXaGVuXG4gICAgICAvLyB0aGUgbW9kZSBpcyB1bnNldCB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQgd2lsbCBmaXJlLCB3aGljaCB3aWxsXG4gICAgICAvLyBnaXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IG92ZXJsYXkgdG8gcmVtb3ZlLCB0aGVuIGl0IGlzIHNldCBiYWNrXG4gICAgICAvLyB0byB0aGUgbW9kZSB0aGUgdXNlciB3YXMgdXNpbmcuIFRvIHRoZSB1c2VyIGlzIHNob3VsZCBqdXN0IHNlZW0gbGlrZVxuICAgICAgLy8gdGhlIGN1cnJlbnQgZHJhd2luZyB3YXMgY2FuY2VsZWQgYW5kIHRoZXkgY2FuIHN0YXJ0IGRyYXdpbmcgYWdhaW4uXG4gICAgICBjb25zdCBtb2RlID0gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKVxuICAgICAgdGhpcy5fZHJhd2luZ01hbmFnZXIuc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG1vZGUpXG5cbiAgICAgIC8vICdvdmVybGF5Y29tcGxldGUnIHNob3VsZCBmaXJlIGltbWVkaWF0ZWx5LCB1bmxlc3MgYW4gb3ZlcmxheSBoYWRuJ3RcbiAgICAgIC8vIHN0YXJ0ZWQgZHJhd2luZy4gVGhpcyB0aW1lb3V0IHdpbGwgbWFrZSBzdXJlIHRoZSBsaXN0ZW5lciBnZXRzIHJlbW92ZWQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbGlzdGVuZXIucmVtb3ZlKClcbiAgICAgIH0pXG5cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyYXdpbmdNYW5hZ2VyKCk6IHZvaWQge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fZHJhd2luZ01hbmFnZXIpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgRHJhd2luZ01hbmFnZXIgaXMgYWxyZWFkeSBpbml0aWFsaXplZC5gKVxuICAgIH1cblxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TKClcblxuICAgIGNvbnN0IGRyYXdpbmdNYW5hZ2VyID0gbmV3IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXIob3B0aW9ucylcbiAgICBkcmF3aW5nTWFuYWdlci5zZXRNYXAodGhpcy5nb29nbGVNYXApXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlciA9IGRyYXdpbmdNYW5hZ2VyXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5hZGRMaXN0ZW5lcignZHJhd2luZ21vZGVfY2hhbmdlZCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5fZHJhd2luZ01hbmFnZXI/LmdldERyYXdpbmdNb2RlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYWRkQ29udHJvbChlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246IGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICB0aGlzLmdvb2dsZU1hcC5jb250cm9sc1twb3NpdGlvbl0ucHVzaChlbGVtZW50KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldERhdGEoZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJlbW92ZUFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRHZW9Kc29uKGRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIHJlQ2VudGVyT25GZWF0dXJlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgaWYgKGdldEZlYXR1cmVzQ291bnQodGhpcy5nb29nbGVNYXAuZGF0YSkgPT09IDApIHtcbiAgICAgIGlmICghdGhpcy5fYmFzZUxhdExuZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5nb29nbGVNYXAucGFuVG8odGhpcy5fYmFzZUxhdExuZylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuXG4gICAgLy8gVE9ETzogRml4IHRvIHBhbiB0byBjZW50ZXIuIEN1cnJlbnRseSBmaXRCb3VuZHMgcmVzdWx0cyBpbiB0aGUgZXhwZWN0ZWRcbiAgICAvLyByZXN1bHQsIGJ1dCBwYW50VG9Cb3VuZHMgYW5pbWF0ZXMuXG4gICAgLy8gdGhpcy5nb29nbGVNYXAucGFuVG9Cb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuICB9XG5cbiAgcHVibGljIGFsbG93RHJhd2luZ0hvbGVJblBvbHlnb24oYWxsb3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gYWxsb3dcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWxlSW5wdXRIYW5kbGVyKGhhbmRsZXI6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUlucHV0SGFuZGxlciA9IGhhbmRsZXJcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWxlSW5wdXRIYW5kbGVyKCk6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZUlucHV0SGFuZGxlclxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZlYXR1cmVTdHlsaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIC8vIERpc2FibGUgYW55IHNlbGVjdGlvbiB3aGVuIGNsaWNraW5nIHRoZSBtYXAuXG4gICAgLy9cbiAgICAvLyBUT0RPOiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMgdGhhdCB3b3VsZCBiZSBtb3JlIGFjY3VyYXRlIG9yXG4gICAgLy8gYWRkaXRpb25hbCBldmVudHMgdGhhdCBzaG91bGQgYmUgbGlzdGVuZWQgdG8sIHN1Y2ggYXMgdGhlIGRpc2FibGluZ1xuICAgIC8vIHNlbGVjdGlvbiB3aGVuIHRoZSBtYXAgbG9vc2VzIGZvY3VzLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVuOiBnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50IHwgZ29vZ2xlLm1hcHMuSWNvbk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSkpXG4gICAgfSlcblxuICAgIC8vIERldGVybWluZSB3aGF0IHRoZSBzdHlsZSBvZiB0aGUgZmVhdHVyZXMgYXJlLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuc2V0U3R5bGUoKGZlYXR1cmUpID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlKSkge1xuICAgICAgICByZXR1cm4gRkVBVFVSRV9TVFlMRV9PUFRJT05TX1NFTEVDVEVEXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVFxuICAgIH0pXG5cbiAgICAvLyBTZWxlY3QgYSBmZWF0dXJlIHdoZW4gY2xpY2tlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlLCB0cnVlKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBpZiAoZiAhPT0gZXZlbnQuZmVhdHVyZSAmJiBpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgLy8gU2V0IGEgc3R5bGUgb24gaG92ZXJlZCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgICBpZiAoIXRoaXMuaXNEcmF3aW5nKCkgJiYgIWlzRmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUpKSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEub3ZlcnJpZGVTdHlsZShldmVudC5mZWF0dXJlLCB7IHN0cm9rZVdlaWdodDogNCB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBSZW1vdmUgYW55IGhvdmVyIHN0eWxlcyB3aGVuIG1vdXNlIG1vdmVzIGF3YXkuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignbW91c2VvdXQnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGZWF0dXJlQ2hhbmdlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNyZWF0ZUZlYXR1cmVDaGFuZ2VPYnNlcnZhYmxlKHRoaXMuZ29vZ2xlTWFwLmRhdGEsIHRoaXMuX25nWm9uZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKHRoaXMuZ2V0R2VvSnNvbigpKS5waXBlKFxuICAgICAgICB0YXAoZ2VvSnNvbiA9PiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIuc2V0VmFsdWUoZ2VvSnNvbiwgTWFwVmFsdWVTb3VyY2UuRmVhdHVyZUNoYW5nZSkpLFxuICAgICAgKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0ZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShldmVudC5mZWF0dXJlLCBldmVudC5sYXRMbmcgPz8gdW5kZWZpbmVkKVxuICAgIH0pXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5fZHJhd2luZ01hbmFnZXIsICdwb2x5Z29uY29tcGxldGUnLCAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICAvLyBUaGUgRHJhd2luZ01hbmFnZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB3YXkgdG8gYWNjZXNzIHRoZSBvdmVybGF5cyxcbiAgICAgICAgLy8gc28gaWYgdGhlIG1hcCBpcyBub3Qgc2V0IHRoZW4gaXQgc2hvdWxkbid5IGJlIGNvbnNpZGVyZWQgYSBzdWNjZXNzZnVsXG4gICAgICAgIC8vIGNvbXBsZXRpb24uIEkgYW0gY2FuY2VsaW5nIHRoZSBhY3RpdmUgZHJhd2luZyBieSBkaXNhYmxpbmcgZHJhd2luZ1xuICAgICAgICAvLyBtb2RlIGFuZCBzZXR0aW5nIHRoZSBtYXAgbnVsbCBpbiB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQsIHdoaWNoXG4gICAgICAgIC8vIGZpcmVzIGJlZm9yZSB0aGUgJ3BvbHlnb25jb21wbGV0ZScgZXZlbnQuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwb2x5Z29uLmdldE1hcCgpKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICAgIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIHdheSB0byBwcmV2ZW50IHRoZSBwb2x5Z29uIGZyb20gY29tcGxldGluZ1xuICAgICAgICAvLyB3aXRob3V0IGVub3VnaCBwb2ludHMuIFRoaXMgaXMgdmVyeSBsb3cgcHJpb3JpdHksIGJlY2F1c2Ugc3RhcnRpbmdcbiAgICAgICAgLy8gb3ZlciBhZnRlciBhZGRpbmcgYSBzaW5nbGUgcG9pbnQgaXNuJ3QgYSBtYWpvciBpbmNvbnZlbmllbmNlLlxuICAgICAgICBpZiAoIXBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3Rocyhwb2x5Z29uKSkge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuICAgICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmZWF0dXJlIG9mIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBjb25zdCBmZWF0dXJlID0gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGRyYXduIHBvbHlnb24uXG4gICAgICAgIHBvbHlnb24uc2V0TWFwKG51bGwpXG5cbiAgICAgICAgLy8gU3RvcCBkcmF3aW5nLlxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmVhdHVyZSBzaG91bGQgYmUgdXNlZCBhcyBhIGN1dG91dCB0byBhbiBleGlzdGluZ1xuICAgICAgICAvLyBmZWF0dXJlIG9yIGFkZGVkIGFzIGl0J3Mgb3duIGZlYXR1cmUuXG4gICAgICAgIGNvbnN0IGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uXG4gICAgICAgICAgPyBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCBmZWF0dXJlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChleHRlcmlvclBvbHlnb25GZWF0dXJlKSB7XG4gICAgICAgICAgYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZChmZWF0dXJlKVxuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmZWF0dXJlLCB0cnVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RyYXdpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgaGFzU2VsZWN0ZWRGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaXNTZWxlY3RlZFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRGZWF0dXJlKCk6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgbnVsbCA9IG51bGxcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgZmVhdHVyZSA9IGZcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmZWF0dXJlXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBvcGVuQ29udGV4dE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZ2V0U2VsZWN0ZWRGZWF0dXJlKClcbiAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHJpdmF0ZSBfb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudS5jbG9zZSgpXG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBsZXQgX3Bvc2l0aW9uID0gcG9zaXRpb25cbiAgICBpZiAoIV9wb3NpdGlvbikge1xuICAgICAgX3Bvc2l0aW9uID0gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlKVxuICAgIH1cbiAgICBpZiAodGhpcy5fZmVhdHVyZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG5ldyBHb29nbGVNYXBzQ29udGV4dE1lbnUoXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLFxuICAgICAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUsXG4gICAgICAgIF9wb3NpdGlvbixcbiAgICAgICAgdGhpcy5fdmNyLFxuICAgICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEsXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEdlb0pzb24ocmVtb3ZlQXBwUHJvcGVydGllczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnRvR2VvSnNvbihmID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUFwcFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oZilcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGYpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8R29vZ2xlTWFwc1NlcnZpY2UsICdnb29nbGVNYXAnPiB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZU1hcCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICdQbGVhc2Ugd2FpdCBmb3IgdGhlIEFQSSB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -6,17 +6,17 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "./google-maps.service";
7
7
  import * as i2 from "./google-maps-controls.service";
8
8
  export class TheSeamMapsControlComponent {
9
- constructor(_googleMaps, _googleMapsControls) {
10
- this._googleMaps = _googleMaps;
11
- this._googleMapsControls = _googleMapsControls;
12
- this._ngUnsubscribe = new Subject();
13
- }
14
9
  set def(value) {
15
10
  if (value !== this._def) {
16
11
  this._remove();
17
12
  this._def = value;
18
13
  }
19
14
  }
15
+ constructor(_googleMaps, _googleMapsControls) {
16
+ this._googleMaps = _googleMaps;
17
+ this._googleMapsControls = _googleMapsControls;
18
+ this._ngUnsubscribe = new Subject();
19
+ }
20
20
  /** @ignore */
21
21
  ngOnInit() {
22
22
  this._googleMaps.mapReady$.pipe(tap(ready => {
@@ -48,9 +48,9 @@ export class TheSeamMapsControlComponent {
48
48
  this._controlRef = undefined;
49
49
  }
50
50
  }
51
- TheSeamMapsControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMapsControlComponent, deps: [{ token: i1.GoogleMapsService }, { token: MAP_CONTROLS_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
52
- TheSeamMapsControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: TheSeamMapsControlComponent, selector: "seam-map-control", inputs: { def: "def" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMapsControlComponent, decorators: [{
51
+ TheSeamMapsControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapsControlComponent, deps: [{ token: i1.GoogleMapsService }, { token: MAP_CONTROLS_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
52
+ TheSeamMapsControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamMapsControlComponent, selector: "seam-map-control", inputs: { def: "def" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapsControlComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{
56
56
  selector: 'seam-map-control',
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
63
63
  }] }]; }, propDecorators: { def: [{
64
64
  type: Input
65
65
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL21hcC1jb250cm9sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUkvQyxPQUFPLEVBQWMsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7OztBQU96RSxNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQ21CLFdBQThCLEVBQ0EsbUJBQThDO1FBRDVFLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUNBLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMkI7UUFmOUUsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO0lBZ0JqRCxDQUFDO0lBWkwsSUFDSSxHQUFHLENBQUMsS0FBb0M7UUFDMUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQTtTQUNsQjtJQUNILENBQUM7SUFRRCxjQUFjO0lBQ2QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO2FBQ1o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQ2Y7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUMvQixDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRWQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU07U0FDUDtRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakQsT0FBTTtTQUNQO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7SUFDOUIsQ0FBQzs7d0hBeERVLDJCQUEyQixtREFnQjVCLG9CQUFvQjs0R0FoQm5CLDJCQUEyQixnRkFINUIsRUFBRTsyRkFHRCwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFpQkksTUFBTTsyQkFBQyxvQkFBb0I7NENBVjFCLEdBQUc7c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEdvb2dsZU1hcHNDb250cm9sc1NlcnZpY2UsIE1hcENvbnRyb2xSZWYgfSBmcm9tICcuL2dvb2dsZS1tYXBzLWNvbnRyb2xzLnNlcnZpY2UnXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMuc2VydmljZSdcbmltcG9ydCB7IE1hcENvbnRyb2wsIE1BUF9DT05UUk9MU19TRVJWSUNFIH0gZnJvbSAnLi9tYXAtY29udHJvbHMtc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tYXAtY29udHJvbCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbU1hcHNDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHByaXZhdGUgX2NvbnRyb2xSZWY/OiBNYXBDb250cm9sUmVmXG5cbiAgQElucHV0KClcbiAgc2V0IGRlZih2YWx1ZTogTWFwQ29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2RlZikge1xuICAgICAgdGhpcy5fcmVtb3ZlKClcbiAgICAgIHRoaXMuX2RlZiA9IHZhbHVlXG4gICAgfVxuICB9XG4gIF9kZWY6IE1hcENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwczogR29vZ2xlTWFwc1NlcnZpY2UsXG4gICAgQEluamVjdChNQVBfQ09OVFJPTFNfU0VSVklDRSkgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwc0NvbnRyb2xzOiBHb29nbGVNYXBzQ29udHJvbHNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMubWFwUmVhZHkkLnBpcGUoXG4gICAgICB0YXAocmVhZHkgPT4ge1xuICAgICAgICBpZiAocmVhZHkpIHtcbiAgICAgICAgICB0aGlzLl9hZGQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3JlbW92ZSgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwcml2YXRlIF9hZGQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbnRyb2xSZWYpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWYgPT09IG51bGwgfHwgdGhpcy5fZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2NvbnRyb2xSZWYgPSB0aGlzLl9nb29nbGVNYXBzQ29udHJvbHMuYWRkKHRoaXMuX2RlZilcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sUmVmPy5kZXN0cm95KClcbiAgICB0aGlzLl9jb250cm9sUmVmID0gdW5kZWZpbmVkXG4gIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL21hcC1jb250cm9sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUkvQyxPQUFPLEVBQWMsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7OztBQU96RSxNQUFNLE9BQU8sMkJBQTJCO0lBS3RDLElBQ0ksR0FBRyxDQUFDLEtBQW9DO1FBQzFDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUE7U0FDbEI7SUFDSCxDQUFDO0lBR0QsWUFDbUIsV0FBOEIsRUFDQSxtQkFBOEM7UUFENUUsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQ0Esd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEyQjtRQWY5RSxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7SUFnQmpELENBQUM7SUFFTCxjQUFjO0lBQ2QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO2FBQ1o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQ2Y7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUMvQixDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRWQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU07U0FDUDtRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakQsT0FBTTtTQUNQO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7SUFDOUIsQ0FBQzs7d0hBeERVLDJCQUEyQixtREFnQjVCLG9CQUFvQjs0R0FoQm5CLDJCQUEyQixnRkFINUIsRUFBRTsyRkFHRCwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFpQkksTUFBTTsyQkFBQyxvQkFBb0I7NENBVjFCLEdBQUc7c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEdvb2dsZU1hcHNDb250cm9sc1NlcnZpY2UsIE1hcENvbnRyb2xSZWYgfSBmcm9tICcuL2dvb2dsZS1tYXBzLWNvbnRyb2xzLnNlcnZpY2UnXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMuc2VydmljZSdcbmltcG9ydCB7IE1hcENvbnRyb2wsIE1BUF9DT05UUk9MU19TRVJWSUNFIH0gZnJvbSAnLi9tYXAtY29udHJvbHMtc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tYXAtY29udHJvbCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbU1hcHNDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHByaXZhdGUgX2NvbnRyb2xSZWY/OiBNYXBDb250cm9sUmVmXG5cbiAgQElucHV0KClcbiAgc2V0IGRlZih2YWx1ZTogTWFwQ29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2RlZikge1xuICAgICAgdGhpcy5fcmVtb3ZlKClcbiAgICAgIHRoaXMuX2RlZiA9IHZhbHVlXG4gICAgfVxuICB9XG4gIF9kZWY6IE1hcENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwczogR29vZ2xlTWFwc1NlcnZpY2UsXG4gICAgQEluamVjdChNQVBfQ09OVFJPTFNfU0VSVklDRSkgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwc0NvbnRyb2xzOiBHb29nbGVNYXBzQ29udHJvbHNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMubWFwUmVhZHkkLnBpcGUoXG4gICAgICB0YXAocmVhZHkgPT4ge1xuICAgICAgICBpZiAocmVhZHkpIHtcbiAgICAgICAgICB0aGlzLl9hZGQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3JlbW92ZSgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwcml2YXRlIF9hZGQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbnRyb2xSZWYpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWYgPT09IG51bGwgfHwgdGhpcy5fZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2NvbnRyb2xSZWYgPSB0aGlzLl9nb29nbGVNYXBzQ29udHJvbHMuYWRkKHRoaXMuX2RlZilcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sUmVmPy5kZXN0cm95KClcbiAgICB0aGlzLl9jb250cm9sUmVmID0gdW5kZWZpbmVkXG4gIH1cbn1cbiJdfQ==
@@ -119,9 +119,9 @@ export class TheSeamMapFileDropComponent {
119
119
  return dataTransfer.types[0] === 'Files';
120
120
  }
121
121
  }
122
- TheSeamMapFileDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMapFileDropComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.GoogleMapsService }, { token: i2.MapValueManagerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
123
- TheSeamMapFileDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: TheSeamMapFileDropComponent, selector: "seam-map-file-drop", ngImport: i0, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMapFileDropComponent, decorators: [{
122
+ TheSeamMapFileDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapFileDropComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.GoogleMapsService }, { token: i2.MapValueManagerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
123
+ TheSeamMapFileDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamMapFileDropComponent, selector: "seam-map-file-drop", ngImport: i0, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapFileDropComponent, decorators: [{
125
125
  type: Component,
126
126
  args: [{ selector: 'seam-map-file-drop', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"] }]
127
127
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.GoogleMapsService }, { type: i2.MapValueManagerService }, { type: i0.Renderer2 }]; } });
@@ -40,9 +40,9 @@ export class MapValueManagerService {
40
40
  return this._value;
41
41
  }
42
42
  }
43
- MapValueManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MapValueManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
- MapValueManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MapValueManagerService });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MapValueManagerService, decorators: [{
43
+ MapValueManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ MapValueManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService, decorators: [{
46
46
  type: Injectable
47
47
  }], ctorParameters: function () { return []; } });
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZhbHVlLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFFMUMsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixpQ0FBZSxDQUFBO0lBQ2YsaURBQStCLENBQUE7QUFDakMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBVUQsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQztRQU5pQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQTtRQU9uRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUM5RCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWUsRUFBRSxNQUFzQjtRQUNyRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtZQUNuQixNQUFNLE9BQU8sR0FBbUI7Z0JBQzlCLE1BQU07Z0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ25CLENBQUE7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixNQUFNLE1BQU0sR0FBbUI7WUFDN0IsTUFBTTtZQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNuQixDQUFBO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDcEIsQ0FBQzs7bUhBM0NVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuXG5leHBvcnQgZW51bSBNYXBWYWx1ZVNvdXJjZSB7XG4gIElucHV0ID0gJ2lucHV0JyxcbiAgRmVhdHVyZUNoYW5nZSA9ICdmZWF0dXJlY2hhbmdlJ1xufVxuXG5leHBvcnQgdHlwZSBNYXBWYWx1ZSA9IG9iamVjdCB8IHVuZGVmaW5lZCB8IG51bGxcblxuZXhwb3J0IGludGVyZmFjZSBNYXBWYWx1ZUNoYW5nZSB7XG4gIHZhbHVlOiBNYXBWYWx1ZVxuICBzb3VyY2U6IE1hcFZhbHVlU291cmNlXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZUNoYW5nZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TWFwVmFsdWVDaGFuZ2U+KClcblxuICBwcml2YXRlIF92YWx1ZTogTWFwVmFsdWVcblxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VkOiBPYnNlcnZhYmxlPE1hcFZhbHVlQ2hhbmdlPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkID0gdGhpcy5fdmFsdWVDaGFuZ2VkU3ViamVjdC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBNYXBWYWx1ZSwgc291cmNlOiBNYXBWYWx1ZVNvdXJjZSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlXG4gICAgICBjb25zdCBfY2hhbmdlOiBNYXBWYWx1ZUNoYW5nZSA9IHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWUsXG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJqZWN0Lm5leHQoX2NoYW5nZSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkodGhpcy5fdmFsdWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIC8vIFRPRE86IFZhbGlkYXRlIG9iamVjdCBpcyB2YWxpZCBnZW9qc29uLlxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVcbiAgICBjb25zdCBjaGFuZ2U6IE1hcFZhbHVlQ2hhbmdlID0ge1xuICAgICAgc291cmNlLFxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxuICAgIH1cbiAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJqZWN0Lm5leHQoY2hhbmdlKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IE1hcFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuXG59XG4iXX0=
@@ -11,4 +11,7 @@ export * from './google-maps-upload-button-control/google-maps-upload-button-con
11
11
  export * from './google-maps-recenter-button-control/google-maps-recenter-button-control.component';
12
12
  export * from './google-maps-places-autocomplete/google-maps-places-autocomplete.directive';
13
13
  export * from './google-maps-places-autocomplete/google-maps-places-autocomplete.component';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQTtBQUVwQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsaUZBQWlGLENBQUE7QUFDL0YsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsNkVBQTZFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL21hcC12YWx1ZS1tYW5hZ2VyLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL21hcC1jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtZmVhdHVyZS1oZWxwZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1jb250cm9scy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmV4cG9ydCAqIGZyb20gJy4vbWFwLWZpbGUtZHJvcC9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtdXBsb2FkLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXVwbG9hZC1idXR0b24tY29udHJvbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCdcbiJdfQ==
14
+ export * from './google-maps-api-loader/google-maps-api-loader';
15
+ export * from './google-maps-api-loader/lazy-google-maps-api-loader';
16
+ export * from './google-maps-api-loader/noop-google-maps-api-loader';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQTtBQUVwQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsaUZBQWlGLENBQUE7QUFDL0YsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsNkVBQTZFLENBQUE7QUFFM0YsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLHNEQUFzRCxDQUFBO0FBQ3BFLGNBQWMsc0RBQXNELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL21hcC12YWx1ZS1tYW5hZ2VyLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL21hcC1jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtZmVhdHVyZS1oZWxwZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1jb250cm9scy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmV4cG9ydCAqIGZyb20gJy4vbWFwLWZpbGUtZHJvcC9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtdXBsb2FkLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXVwbG9hZC1idXR0b24tY29udHJvbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1hcGktbG9hZGVyL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXInXG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXIvbGF6eS1nb29nbGUtbWFwcy1hcGktbG9hZGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbWFwcy1hcGktbG9hZGVyL25vb3AtZ29vZ2xlLW1hcHMtYXBpLWxvYWRlcidcbiJdfQ==
@@ -9,6 +9,10 @@ import { DEFAULT_PAGE_SIZE } from './get-page-info';
9
9
  * TODO: Decide how to handle/display errors.
10
10
  */
11
11
  export class DatatableGraphQLQueryRef {
12
+ get _observingChanges() { return this._observingChangesSubject.value; }
13
+ set _observingChanges(value) { this._observingChangesSubject.next(value); }
14
+ get updatesPollDelay() { return this._updatesPollDelay; }
15
+ get variablesUpdatePending() { return this._variablesUpdatePending; }
12
16
  constructor(
13
17
  /** Original ApolloClient's QueryRef. */
14
18
  _queryRef,
@@ -64,10 +68,6 @@ export class DatatableGraphQLQueryRef {
64
68
  return this._valueChanges.pipe(map(result => result.loading), startWith(this._queryRef.getCurrentResult().loading), auditTime(0), shareReplay({ bufferSize: 1, refCount: true }));
65
69
  }));
66
70
  }
67
- get _observingChanges() { return this._observingChangesSubject.value; }
68
- set _observingChanges(value) { this._observingChangesSubject.next(value); }
69
- get updatesPollDelay() { return this._updatesPollDelay; }
70
- get variablesUpdatePending() { return this._variablesUpdatePending; }
71
71
  _logNetworkStatus(status) {
72
72
  switch (status) {
73
73
  case NetworkStatus.loading:
@@ -235,4 +235,4 @@ export class DatatableGraphQLQueryRef {
235
235
  return _vars;
236
236
  }
237
237
  }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dyYXBocWwvZGF0YXRhYmxlL2RhdGF0YWJsZS1ncmFwaHFsLXF1ZXJ5LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWlCLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFTLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUgsT0FBTyxFQUFtQyxhQUFhLEVBQXFCLE1BQU0scUJBQXFCLENBQUE7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUs3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DO0lBQ0Usd0NBQXdDO0lBQ3ZCLFNBQXNDO0lBQ3ZEOztPQUVHO0lBQ2Msb0JBQTRCLEdBQUc7UUFKL0IsY0FBUyxHQUFULFNBQVMsQ0FBNkI7UUFJdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFjO1FBMUJqQyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBYSxFQUFnQixDQUFDLENBQUE7UUFDckUsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUE7UUFFL0U7O1dBRUc7UUFDSyxnQkFBVyxHQUFXLGlCQUFpQixDQUFBO1FBS3ZDLDRCQUF1QixHQUFHLEtBQUssQ0FBQTtRQWlCckMsSUFB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VSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNsQix3RUFBd0U7WUFDeEUsb0VBQW9FO1lBQ3BFLCtDQUErQztZQUMvQyw4Q0FBOEM7WUFFOUMsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7U0FDdkM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQVEsSUFBSSxDQUFDLFNBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUNqRCxDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQTtJQUMxRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBc0I7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUN2RixPQUFPLFNBQVMsQ0FBQTtTQUNqQjtRQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBZ0IsQ0FBQTtRQUNwRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsRUFBRTtZQUNsRCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUE7U0FDOUI7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHNoYXJlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBcG9sbG9RdWVyeVJlc3VsdCwgRG9jdW1lbnROb2RlLCBOZXR3b3JrU3RhdHVzLCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSwgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcbmltcG9ydCB7IFF1ZXJ5UmVmIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInXG5pbXBvcnQgeyBFbXB0eU9iamVjdCwgV2F0Y2hRdWVyeU9wdGlvbnMgfSBmcm9tICdhcG9sbG8tYW5ndWxhci90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlQcm9jZXNzaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJ1xuaW1wb3J0IHsgREVGQVVMVF9QQUdFX1NJWkUgfSBmcm9tICcuL2dldC1wYWdlLWluZm8nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdyA9IEVtcHR5T2JqZWN0PiB7XG4gIHJvd3M6IFRSb3dbXVxuXG4gIC8qKlxuICAgKiBJZiBkYXRhIGlzIHBhZ2VkLCB0aGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgdW5wYWdlZCByb3dzLlxuICAgKi9cbiAgdG90YWxDb3VudD86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBEYXRhdGFibGVHcmFwaFFMRGF0YU1hcHBlcjxURGF0YSwgVFJvdyA9IEVtcHR5T2JqZWN0PiA9IChkYXRhOiBURGF0YSkgPT5cbiAgICAoRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4gfFxuICAgIFByb21pc2U8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4+IHxcbiAgICBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PilcblxuZXhwb3J0IHR5cGUgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyA9IHtcbiAgc2tpcD86IG51bWJlclxuICB0YWtlPzogbnVtYmVyXG59ICYgRW1wdHlPYmplY3RcblxuLyoqXG4gKiBQYXJ0aWFsbHkgd3JhcHMgQXBvbGxvQ2xpZW50J3MgUXVlcnlSZWYgd2l0aCBzb21lIG9mIG91ciBkYXRhdGFibGUgYm9pbGVycGxhdGUuXG4gKlxuICogVE9ETzogRGVjaWRlIGhvdyB0byBoYW5kbGUvZGlzcGxheSBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVHcmFwaFFMUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXMgZXh0ZW5kcyBEYXRhdGFibGVHcmFwaFFMVmFyaWFibGVzID0gRW1wdHlPYmplY3QsIFRSb3cgPSBFbXB0eU9iamVjdD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhcmlhYmxlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRWYXJpYWJsZXM+KHt9IGFzIFRWYXJpYWJsZXMpXG4gIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHdheSBvZiB0cmFja2luZyB0b3RhbCBjb3VudCB3aGVuIHBhZ2luZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHByaXZhdGUgX3RvdGFsQ291bnQ6IG51bWJlciA9IERFRkFVTFRfUEFHRV9TSVpFXG5cbiAgcHJpdmF0ZSBnZXQgX29ic2VydmluZ0NoYW5nZXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdC52YWx1ZSB9XG4gIHByaXZhdGUgc2V0IF9vYnNlcnZpbmdDaGFuZ2VzKHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0Lm5leHQodmFsdWUpIH1cblxuICBwcml2YXRlIF92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8VERhdGE+PlxuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHB1YmxpYyBnZXQgdXBkYXRlc1BvbGxEZWxheSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fdXBkYXRlc1BvbGxEZWxheSB9XG4gIHB1YmxpYyBnZXQgdmFyaWFibGVzVXBkYXRlUGVuZGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBPcmlnaW5hbCBBcG9sbG9DbGllbnQncyBRdWVyeVJlZi4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyeVJlZjogUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXM+LFxuICAgIC8qKlxuICAgICAqIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlZmV0Y2hpbmcgZnJvbSBhbiB1cGRhdGUgdG8gdGhlIHF1ZXJ5IG9yIHZhcmlhYmxlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVzUG9sbERlbGF5OiBudW1iZXIgPSA1MDBcbiAgKSB7XG4gICAgdGhpcy5fdmFyaWFibGVzU3ViamVjdC5uZXh0KCh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9KVxuICAgIC8vIHRoaXMuX2dldFZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2ID0+IHRoaXMuX2xvZ05ldHdvcmtTdGF0dXModi5uZXR3b3JrU3RhdHVzKSlcblxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IGRlZmVyKCgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdPYnNlcnZpbmcgdmFsdWUgY2hhbmdlcycpXG4gICAgICBjb25zdCB2YXJDaGFuZ2VzU3ViID0gdGhpcy5fdmFyaWFibGVzU3ViamVjdC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgPSB0cnVlXG4gICAgICAgIH0pLFxuICAgICAgICBhdWRpdFRpbWUodGhpcy5fdXBkYXRlc1BvbGxEZWxheSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgcXVlcnkgc3RvcHBlZCBiZWluZyBvYnNlcnZlZCBiZWZvcmUgc2V0dGluZyB0aGUgcGVuZGluZ1xuICAgICAgICAgIC8vIHZhcmlhYmxlcywgc2V0IHRoZW0gbm93LlxuICAgICAgICAgIGlmICh0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmV0Y2goKVxuICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzVXBkYXRlUGVuZGluZyA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUodmFyaWFibGVzID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldCB2YXJzJywgdmFyaWFibGVzKVxuICAgICAgICB0aGlzLl9zZXRWYXJpYWJsZXNJbW1lZGlhdGUodmFyaWFibGVzKVxuICAgICAgICAvLyB0aGlzLnJlZmV0Y2goKVxuICAgICAgICB0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcbiAgICAgIH0pXG4gICAgICB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIC8vIHRhcCh2ID0+IHtcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZygndicsIHYpXG4gICAgICAgIC8vIH0pLFxuICAgICAgICBmaWx0ZXIodiA9PiB2Lm5ldHdvcmtTdGF0dXMgPT09IE5ldHdvcmtTdGF0dXMucmVhZHkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0RvbmUgb2JzZXJ2aW5nIHZhbHVlIGNoYW5nZXMnKVxuICAgICAgICAgIHZhckNoYW5nZXNTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICAgIHRoaXMuX29ic2VydmluZ0NoYW5nZXMgPSBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0pLnBpcGUoXG4gICAgICAvLyBzaGFyZSgpXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAob2JzZXJ2aW5nQ2hhbmdlcyA9PiB7XG4gICAgICAgIGlmICghb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgICAgIHJldHVybiBvZihmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5sb2FkaW5nKSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5fcXVlcnlSZWYuZ2V0Q3VycmVudFJlc3VsdCgpLmxvYWRpbmcpLFxuICAgICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBfbG9nTmV0d29ya1N0YXR1cyhzdGF0dXM6IE5ldHdvcmtTdGF0dXMpIHtcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLmxvYWRpbmc6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnTG9hZGluZycpOyBicmVha1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLnNldFZhcmlhYmxlczogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdTZXRWYXJpYWJsZXMnKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5mZXRjaE1vcmU6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnRmV0Y2hNb3JlJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVmZXRjaDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdSZWZldGNoJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucG9sbDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdQb2xsJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVhZHk6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnUmVhZHknKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5lcnJvcjogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdFcnJvcicpOyBicmVha1xuICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOnJlZCcsICdVbmtub3duJylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcm93cyhtYXBwZXI6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyPFREYXRhLCBUUm93Pik6IE9ic2VydmFibGU8VFJvd1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcilcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcjogRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+KTogT2JzZXJ2YWJsZTxUUm93W10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VFJvd1tdPigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUUm93W10+KSA9PiB7XG4gICAgICAvLyBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFJvd1tdPihbXSlcblxuICAgICAgLy8gY29uc29sZS5sb2coJ29icyBfcm93c09ic2VydmFibGUnKVxuXG4gICAgICBsZXQgcm93c0J1ZmZlcjogVFJvd1tdID0gW11cbiAgICAgIC8vIGNvbnN0IHJvd3NCdWZmZXJTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8VFJvd1tdPigpXG4gICAgICBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRSb3dbXT4oKVxuXG4gICAgICBjb25zdCBxdWVyeVN1YiA9IHRoaXMuX3ZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvbHZlUm93TWFwcGVyKG1hcHBlcihyZXN1bHQuZGF0YSkpLnBpcGUoXG4gICAgICAgICAgICB0YXAobWFwcGVyUmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ21hcHBlclJlc3VsdCcsIG1hcHBlclJlc3VsdClcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX25lZWRzVG9SZXF1ZXJ5V2l0aEFsbFJlY29yZHMobWFwcGVyUmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hWYXJpYWJsZXMoeyB0YWtlOiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCB9IGFzIGFueSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eShtYXBwZXJSZXN1bHQsICd0b3RhbENvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnRcbiAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgLy8gbGV0IHJvd3MgPSByb3dzQnVmZmVyU3ViamVjdC52YWx1ZSB8fCBbXVxuICAgICAgICAgICAgICBsZXQgcm93cyA9IHJvd3NCdWZmZXIgfHwgW11cblxuICAgICAgICAgICAgICBjb25zdCBoYXNUb3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgIT09IHVuZGVmaW5lZCAmJiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gbnVsbFxuXG4gICAgICAgICAgICAgIC8vIElmIHRoZSByb3dzIGJ1ZmZlciBpcyBub3QgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdG90YWxDb3VudCwgY3JlYXRlIGFcbiAgICAgICAgICAgICAgLy8gbmV3IGJ1ZmZlci5cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgaWYgdGhpcyBpcyByZXNldHRpbmcgdGhlIGJ1ZmZlciB0b28gZWFnZXJseS5cbiAgICAgICAgICAgICAgLy8gQXBvbGxvQ2xpZW50IG1heSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uLlxuICAgICAgICAgICAgICBpZiAoaGFzVG90YWxDb3VudCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBuZXcgQXJyYXk8VFJvdz4obWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgfHwgMClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRoaXMuZ2V0VmFyaWFibGVzKCkuc2tpcCA/PyAwXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHJvd3MgaW50byBidWZmZXIgbG9jYXRpb24uXG4gICAgICAgICAgICAgICAgcm93cy5zcGxpY2Uoc3RhcnRJbmRleCwgbWFwcGVyUmVzdWx0LnJvd3MubGVuZ3RoLCAuLi5tYXBwZXJSZXN1bHQucm93cylcblxuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLnJvd3MgXVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLm1hcHBlclJlc3VsdC5yb3dzIF1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXIgPSByb3dzXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXJTdWJqZWN0Lm5leHQocm93cylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgICBjb25zdCByb3dzU3ViID0gcm93c0J1ZmZlclN1YmplY3Quc3Vic2NyaWJlKHN1YnNjcmliZXIpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1bnN1YicpXG4gICAgICAgIHF1ZXJ5U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgcm93c1N1Yi51bnN1YnNjcmliZSgpXG5cbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QubmV4dChbXSlcbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9uZWVkc1RvUmVxdWVyeVdpdGhBbGxSZWNvcmRzKGRhdGE6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+KTogYm9vbGVhbiB7XG4gICAgaWYgKCEodGhpcy5nZXRRdWVyeVByb2Nlc3NpbmdDb25maWcoKT8uZGlzYWJsZVBhZ2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiBoYXNQcm9wZXJ0eShkYXRhLCAndG90YWxDb3VudCcpICYmXG4gICAgICBoYXNQcm9wZXJ0eShkYXRhLCAncm93cycpICYmXG4gICAgICBBcnJheS5pc0FycmF5KGRhdGEucm93cykgJiZcbiAgICAgIGRhdGEudG90YWxDb3VudCA+IGRhdGEucm93cy5sZW5ndGggJiZcbiAgICAgIHRoaXMuX3RvdGFsQ291bnQgIT09IGRhdGEudG90YWxDb3VudFxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVJvd01hcHBlcihcbiAgICBtYXBwZXJSZXR1cm46IFJldHVyblR5cGU8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+PlxuICApOiBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShtYXBwZXJSZXR1cm4pKSB7XG4gICAgICByZXR1cm4gbWFwcGVyUmV0dXJuLnBpcGUodGFrZSgxKSlcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUobWFwcGVyUmV0dXJuKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYXJpYWJsZXMoKTogVFZhcmlhYmxlcyB7XG4gICAgLy8gVGhlIHR5cGVzIGFyZW4ndCBhY2N1cmF0ZSBvciBBcG9sbG8gaGFzIGEgYnVnLCBzbyBJIGhhZCB0byB1c2UgYGFueWAuXG4gICAgLy8gcmV0dXJuICh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9XG5cbiAgICAvLyBUT0RPOiBMb29rIGludG8gZGVib3VuY2luZyBvdXIgdmFyaWFibGUgc2V0dGluZywgd2hpbGUgc3RpbGwgZGVwZW5kaW5nIG9uIEFwb2xsbyBmb3IgbWFuYWdpbmcgdGhlbS5cbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzU3ViamVjdC52YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlczogVFZhcmlhYmxlcyk6IFByb21pc2U8dm9pZCB8IEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYuc2V0VmFyaWFibGVzKF92YXJzIHx8IHt9IGFzIFRWYXJpYWJsZXMpXG4gIH1cblxuICBwcml2YXRlIF9wYXRjaFZhcmlhYmxlc0ltbWVkaWF0ZSh2YXJpYWJsZXM6IFBhcnRpYWw8VFZhcmlhYmxlcz4pOiBQcm9taXNlPHZvaWQgfCBBcG9sbG9RdWVyeVJlc3VsdDxURGF0YT4+IHtcbiAgICBjb25zdCBfdmFyaWFibGVzID0ge1xuICAgICAgLi4udGhpcy5nZXRWYXJpYWJsZXMoKSxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIH1cblxuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKF92YXJpYWJsZXMpXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UmVmLnNldFZhcmlhYmxlcyhfdmFycyB8fCB7fSBhcyBUVmFyaWFibGVzKVxuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IFRWYXJpYWJsZXMpOiB2b2lkIHtcbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQodmFyaWFibGVzKVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgdGhpcy5fc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlcylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hWYXJpYWJsZXModmFyaWFibGVzOiBQYXJ0aWFsPFRWYXJpYWJsZXM+KTogdm9pZCB7XG4gICAgY29uc3QgX3ZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAuLi52YXJpYWJsZXNcbiAgICB9XG5cbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQoX3ZhcmlhYmxlcylcbiAgICBpZiAoIXRoaXMuX29ic2VydmluZ0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3NldFZhcmlhYmxlc0ltbWVkaWF0ZShfdmFyaWFibGVzKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZldGNoKHZhcmlhYmxlcz86IFRWYXJpYWJsZXMpOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYucmVmZXRjaChfdmFycylcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VERhdGEsIFRWYXJpYWJsZXM+LCB0cmlnZ2VyUmVmZXRjaDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlSZWYuc2V0T3B0aW9ucyh7IHF1ZXJ5IH0pXG4gICAgaWYgKHRyaWdnZXJSZWZldGNoKSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciByZWZhY3RvcmluZyB0aGUgcmVmZXRjaCBwcm9jZXNzLiBJIGNhbid0IGNhbGwgQXBvbGxvJ3NcbiAgICAgIC8vIHJlZmV0Y2ggZGlyZWN0bHksIGJlY2F1c2UgSSB3YW50IGl0IHRvIHNoYXJlIHRoZSB1cGRhdGUgdHJpZ2dlcmVkXG4gICAgICAvLyBwb2xsaW5nIGRlbGF5IHdpdGggdGhlIHNldHRpbmcgb2YgdmFyaWFibGVzLlxuICAgICAgLy8gdGhpcy5fcXVlcnlSZWYucmVmZXRjaCh0aGlzLmdldFZhcmlhYmxlcygpKVxuXG4gICAgICAvLyBGYWtlIHZhcmlhYmxlcyB1cGRhdGUgdG8gdHJpZ2dlciBhIHJlZmV0Y2ggdGhhdCBzaGFyZXMgaXQncyByZWZldGNoIGRlbGF5LlxuICAgICAgdGhpcy5zZXRWYXJpYWJsZXModGhpcy5nZXRWYXJpYWJsZXMoKSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBXYXRjaFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzLCBURGF0YT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fcXVlcnlSZWYgYXMgYW55KS5vYnNRdWVyeS5vcHRpb25zXG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk6IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpPy5jb250ZXh0Py5xdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgfVxuXG4gIHByaXZhdGUgX3dpdGhWYXJpYWJsZU92ZXJyaWRlcyh2YXJpYWJsZXM/OiBUVmFyaWFibGVzKTogVFZhcmlhYmxlcyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQodmFyaWFibGVzKSAmJiAhKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgX3ZhcnMgPSB7IC4uLih2YXJpYWJsZXMgfHwge30pIH0gYXMgVFZhcmlhYmxlc1xuICAgIGlmICh0aGlzLmdldFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZygpPy5kaXNhYmxlUGFnaW5nKSB7XG4gICAgICBfdmFycy50YWtlID0gdGhpcy5fdG90YWxDb3VudFxuICAgIH1cbiAgICByZXR1cm4gX3ZhcnNcbiAgfVxuXG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dyYXBocWwvZGF0YXRhYmxlL2RhdGF0YWJsZS1ncmFwaHFsLXF1ZXJ5LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWlCLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFTLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUgsT0FBTyxFQUFtQyxhQUFhLEVBQXFCLE1BQU0scUJBQXFCLENBQUE7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUs3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsSUFBWSxpQkFBaUIsS0FBYyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQ3ZGLElBQVksaUJBQWlCLENBQUMsS0FBYyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBUTNGLElBQVcsZ0JBQWdCLEtBQWEsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUEsQ0FBQyxDQUFDO0lBQ3ZFLElBQVcsc0JBQXNCLEtBQWMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXBGO0lBQ0Usd0NB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QUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNsQix3RUFBd0U7WUFDeEUsb0VBQW9FO1lBQ3BFLCtDQUErQztZQUMvQyw4Q0FBOEM7WUFFOUMsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7U0FDdkM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQVEsSUFBSSxDQUFDLFNBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUNqRCxDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQTtJQUMxRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBc0I7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUN2RixPQUFPLFNBQVMsQ0FBQTtTQUNqQjtRQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBZ0IsQ0FBQTtRQUNwRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsRUFBRTtZQUNsRCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUE7U0FDOUI7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHNoYXJlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBcG9sbG9RdWVyeVJlc3VsdCwgRG9jdW1lbnROb2RlLCBOZXR3b3JrU3RhdHVzLCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSwgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcbmltcG9ydCB7IFF1ZXJ5UmVmIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInXG5pbXBvcnQgeyBFbXB0eU9iamVjdCwgV2F0Y2hRdWVyeU9wdGlvbnMgfSBmcm9tICdhcG9sbG8tYW5ndWxhci90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlQcm9jZXNzaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJ1xuaW1wb3J0IHsgREVGQVVMVF9QQUdFX1NJWkUgfSBmcm9tICcuL2dldC1wYWdlLWluZm8nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdyA9IEVtcHR5T2JqZWN0PiB7XG4gIHJvd3M6IFRSb3dbXVxuXG4gIC8qKlxuICAgKiBJZiBkYXRhIGlzIHBhZ2VkLCB0aGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgdW5wYWdlZCByb3dzLlxuICAgKi9cbiAgdG90YWxDb3VudD86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBEYXRhdGFibGVHcmFwaFFMRGF0YU1hcHBlcjxURGF0YSwgVFJvdyA9IEVtcHR5T2JqZWN0PiA9IChkYXRhOiBURGF0YSkgPT5cbiAgICAoRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4gfFxuICAgIFByb21pc2U8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4+IHxcbiAgICBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PilcblxuZXhwb3J0IHR5cGUgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyA9IHtcbiAgc2tpcD86IG51bWJlclxuICB0YWtlPzogbnVtYmVyXG59ICYgRW1wdHlPYmplY3RcblxuLyoqXG4gKiBQYXJ0aWFsbHkgd3JhcHMgQXBvbGxvQ2xpZW50J3MgUXVlcnlSZWYgd2l0aCBzb21lIG9mIG91ciBkYXRhdGFibGUgYm9pbGVycGxhdGUuXG4gKlxuICogVE9ETzogRGVjaWRlIGhvdyB0byBoYW5kbGUvZGlzcGxheSBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVHcmFwaFFMUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXMgZXh0ZW5kcyBEYXRhdGFibGVHcmFwaFFMVmFyaWFibGVzID0gRW1wdHlPYmplY3QsIFRSb3cgPSBFbXB0eU9iamVjdD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhcmlhYmxlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRWYXJpYWJsZXM+KHt9IGFzIFRWYXJpYWJsZXMpXG4gIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHdheSBvZiB0cmFja2luZyB0b3RhbCBjb3VudCB3aGVuIHBhZ2luZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHByaXZhdGUgX3RvdGFsQ291bnQ6IG51bWJlciA9IERFRkFVTFRfUEFHRV9TSVpFXG5cbiAgcHJpdmF0ZSBnZXQgX29ic2VydmluZ0NoYW5nZXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdC52YWx1ZSB9XG4gIHByaXZhdGUgc2V0IF9vYnNlcnZpbmdDaGFuZ2VzKHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0Lm5leHQodmFsdWUpIH1cblxuICBwcml2YXRlIF92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8VERhdGE+PlxuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHB1YmxpYyBnZXQgdXBkYXRlc1BvbGxEZWxheSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fdXBkYXRlc1BvbGxEZWxheSB9XG4gIHB1YmxpYyBnZXQgdmFyaWFibGVzVXBkYXRlUGVuZGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBPcmlnaW5hbCBBcG9sbG9DbGllbnQncyBRdWVyeVJlZi4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyeVJlZjogUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXM+LFxuICAgIC8qKlxuICAgICAqIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlZmV0Y2hpbmcgZnJvbSBhbiB1cGRhdGUgdG8gdGhlIHF1ZXJ5IG9yIHZhcmlhYmxlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVzUG9sbERlbGF5OiBudW1iZXIgPSA1MDBcbiAgKSB7XG4gICAgdGhpcy5fdmFyaWFibGVzU3ViamVjdC5uZXh0KCh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9KVxuICAgIC8vIHRoaXMuX2dldFZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2ID0+IHRoaXMuX2xvZ05ldHdvcmtTdGF0dXModi5uZXR3b3JrU3RhdHVzKSlcblxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IGRlZmVyKCgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdPYnNlcnZpbmcgdmFsdWUgY2hhbmdlcycpXG4gICAgICBjb25zdCB2YXJDaGFuZ2VzU3ViID0gdGhpcy5fdmFyaWFibGVzU3ViamVjdC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgPSB0cnVlXG4gICAgICAgIH0pLFxuICAgICAgICBhdWRpdFRpbWUodGhpcy5fdXBkYXRlc1BvbGxEZWxheSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgcXVlcnkgc3RvcHBlZCBiZWluZyBvYnNlcnZlZCBiZWZvcmUgc2V0dGluZyB0aGUgcGVuZGluZ1xuICAgICAgICAgIC8vIHZhcmlhYmxlcywgc2V0IHRoZW0gbm93LlxuICAgICAgICAgIGlmICh0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmV0Y2goKVxuICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzVXBkYXRlUGVuZGluZyA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUodmFyaWFibGVzID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldCB2YXJzJywgdmFyaWFibGVzKVxuICAgICAgICB0aGlzLl9zZXRWYXJpYWJsZXNJbW1lZGlhdGUodmFyaWFibGVzKVxuICAgICAgICAvLyB0aGlzLnJlZmV0Y2goKVxuICAgICAgICB0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcbiAgICAgIH0pXG4gICAgICB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIC8vIHRhcCh2ID0+IHtcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZygndicsIHYpXG4gICAgICAgIC8vIH0pLFxuICAgICAgICBmaWx0ZXIodiA9PiB2Lm5ldHdvcmtTdGF0dXMgPT09IE5ldHdvcmtTdGF0dXMucmVhZHkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0RvbmUgb2JzZXJ2aW5nIHZhbHVlIGNoYW5nZXMnKVxuICAgICAgICAgIHZhckNoYW5nZXNTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICAgIHRoaXMuX29ic2VydmluZ0NoYW5nZXMgPSBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0pLnBpcGUoXG4gICAgICAvLyBzaGFyZSgpXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAob2JzZXJ2aW5nQ2hhbmdlcyA9PiB7XG4gICAgICAgIGlmICghb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgICAgIHJldHVybiBvZihmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5sb2FkaW5nKSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5fcXVlcnlSZWYuZ2V0Q3VycmVudFJlc3VsdCgpLmxvYWRpbmcpLFxuICAgICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBfbG9nTmV0d29ya1N0YXR1cyhzdGF0dXM6IE5ldHdvcmtTdGF0dXMpIHtcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLmxvYWRpbmc6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnTG9hZGluZycpOyBicmVha1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLnNldFZhcmlhYmxlczogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdTZXRWYXJpYWJsZXMnKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5mZXRjaE1vcmU6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnRmV0Y2hNb3JlJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVmZXRjaDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdSZWZldGNoJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucG9sbDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdQb2xsJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVhZHk6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnUmVhZHknKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5lcnJvcjogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdFcnJvcicpOyBicmVha1xuICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOnJlZCcsICdVbmtub3duJylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcm93cyhtYXBwZXI6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyPFREYXRhLCBUUm93Pik6IE9ic2VydmFibGU8VFJvd1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcilcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcjogRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+KTogT2JzZXJ2YWJsZTxUUm93W10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VFJvd1tdPigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUUm93W10+KSA9PiB7XG4gICAgICAvLyBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFJvd1tdPihbXSlcblxuICAgICAgLy8gY29uc29sZS5sb2coJ29icyBfcm93c09ic2VydmFibGUnKVxuXG4gICAgICBsZXQgcm93c0J1ZmZlcjogVFJvd1tdID0gW11cbiAgICAgIC8vIGNvbnN0IHJvd3NCdWZmZXJTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8VFJvd1tdPigpXG4gICAgICBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRSb3dbXT4oKVxuXG4gICAgICBjb25zdCBxdWVyeVN1YiA9IHRoaXMuX3ZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvbHZlUm93TWFwcGVyKG1hcHBlcihyZXN1bHQuZGF0YSkpLnBpcGUoXG4gICAgICAgICAgICB0YXAobWFwcGVyUmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ21hcHBlclJlc3VsdCcsIG1hcHBlclJlc3VsdClcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX25lZWRzVG9SZXF1ZXJ5V2l0aEFsbFJlY29yZHMobWFwcGVyUmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hWYXJpYWJsZXMoeyB0YWtlOiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCB9IGFzIGFueSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eShtYXBwZXJSZXN1bHQsICd0b3RhbENvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnRcbiAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgLy8gbGV0IHJvd3MgPSByb3dzQnVmZmVyU3ViamVjdC52YWx1ZSB8fCBbXVxuICAgICAgICAgICAgICBsZXQgcm93cyA9IHJvd3NCdWZmZXIgfHwgW11cblxuICAgICAgICAgICAgICBjb25zdCBoYXNUb3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgIT09IHVuZGVmaW5lZCAmJiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gbnVsbFxuXG4gICAgICAgICAgICAgIC8vIElmIHRoZSByb3dzIGJ1ZmZlciBpcyBub3QgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdG90YWxDb3VudCwgY3JlYXRlIGFcbiAgICAgICAgICAgICAgLy8gbmV3IGJ1ZmZlci5cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgaWYgdGhpcyBpcyByZXNldHRpbmcgdGhlIGJ1ZmZlciB0b28gZWFnZXJseS5cbiAgICAgICAgICAgICAgLy8gQXBvbGxvQ2xpZW50IG1heSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uLlxuICAgICAgICAgICAgICBpZiAoaGFzVG90YWxDb3VudCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBuZXcgQXJyYXk8VFJvdz4obWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgfHwgMClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRoaXMuZ2V0VmFyaWFibGVzKCkuc2tpcCA/PyAwXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHJvd3MgaW50byBidWZmZXIgbG9jYXRpb24uXG4gICAgICAgICAgICAgICAgcm93cy5zcGxpY2Uoc3RhcnRJbmRleCwgbWFwcGVyUmVzdWx0LnJvd3MubGVuZ3RoLCAuLi5tYXBwZXJSZXN1bHQucm93cylcblxuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLnJvd3MgXVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLm1hcHBlclJlc3VsdC5yb3dzIF1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXIgPSByb3dzXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXJTdWJqZWN0Lm5leHQocm93cylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgICBjb25zdCByb3dzU3ViID0gcm93c0J1ZmZlclN1YmplY3Quc3Vic2NyaWJlKHN1YnNjcmliZXIpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1bnN1YicpXG4gICAgICAgIHF1ZXJ5U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgcm93c1N1Yi51bnN1YnNjcmliZSgpXG5cbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QubmV4dChbXSlcbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9uZWVkc1RvUmVxdWVyeVdpdGhBbGxSZWNvcmRzKGRhdGE6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+KTogYm9vbGVhbiB7XG4gICAgaWYgKCEodGhpcy5nZXRRdWVyeVByb2Nlc3NpbmdDb25maWcoKT8uZGlzYWJsZVBhZ2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiBoYXNQcm9wZXJ0eShkYXRhLCAndG90YWxDb3VudCcpICYmXG4gICAgICBoYXNQcm9wZXJ0eShkYXRhLCAncm93cycpICYmXG4gICAgICBBcnJheS5pc0FycmF5KGRhdGEucm93cykgJiZcbiAgICAgIGRhdGEudG90YWxDb3VudCA+IGRhdGEucm93cy5sZW5ndGggJiZcbiAgICAgIHRoaXMuX3RvdGFsQ291bnQgIT09IGRhdGEudG90YWxDb3VudFxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVJvd01hcHBlcihcbiAgICBtYXBwZXJSZXR1cm46IFJldHVyblR5cGU8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+PlxuICApOiBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShtYXBwZXJSZXR1cm4pKSB7XG4gICAgICByZXR1cm4gbWFwcGVyUmV0dXJuLnBpcGUodGFrZSgxKSlcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUobWFwcGVyUmV0dXJuKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYXJpYWJsZXMoKTogVFZhcmlhYmxlcyB7XG4gICAgLy8gVGhlIHR5cGVzIGFyZW4ndCBhY2N1cmF0ZSBvciBBcG9sbG8gaGFzIGEgYnVnLCBzbyBJIGhhZCB0byB1c2UgYGFueWAuXG4gICAgLy8gcmV0dXJuICh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9XG5cbiAgICAvLyBUT0RPOiBMb29rIGludG8gZGVib3VuY2luZyBvdXIgdmFyaWFibGUgc2V0dGluZywgd2hpbGUgc3RpbGwgZGVwZW5kaW5nIG9uIEFwb2xsbyBmb3IgbWFuYWdpbmcgdGhlbS5cbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzU3ViamVjdC52YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlczogVFZhcmlhYmxlcyk6IFByb21pc2U8dm9pZCB8IEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYuc2V0VmFyaWFibGVzKF92YXJzIHx8IHt9IGFzIFRWYXJpYWJsZXMpXG4gIH1cblxuICBwcml2YXRlIF9wYXRjaFZhcmlhYmxlc0ltbWVkaWF0ZSh2YXJpYWJsZXM6IFBhcnRpYWw8VFZhcmlhYmxlcz4pOiBQcm9taXNlPHZvaWQgfCBBcG9sbG9RdWVyeVJlc3VsdDxURGF0YT4+IHtcbiAgICBjb25zdCBfdmFyaWFibGVzID0ge1xuICAgICAgLi4udGhpcy5nZXRWYXJpYWJsZXMoKSxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIH1cblxuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKF92YXJpYWJsZXMpXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UmVmLnNldFZhcmlhYmxlcyhfdmFycyB8fCB7fSBhcyBUVmFyaWFibGVzKVxuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IFRWYXJpYWJsZXMpOiB2b2lkIHtcbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQodmFyaWFibGVzKVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgdGhpcy5fc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlcylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hWYXJpYWJsZXModmFyaWFibGVzOiBQYXJ0aWFsPFRWYXJpYWJsZXM+KTogdm9pZCB7XG4gICAgY29uc3QgX3ZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAuLi52YXJpYWJsZXNcbiAgICB9XG5cbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQoX3ZhcmlhYmxlcylcbiAgICBpZiAoIXRoaXMuX29ic2VydmluZ0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3NldFZhcmlhYmxlc0ltbWVkaWF0ZShfdmFyaWFibGVzKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZldGNoKHZhcmlhYmxlcz86IFRWYXJpYWJsZXMpOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYucmVmZXRjaChfdmFycylcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VERhdGEsIFRWYXJpYWJsZXM+LCB0cmlnZ2VyUmVmZXRjaDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlSZWYuc2V0T3B0aW9ucyh7IHF1ZXJ5IH0pXG4gICAgaWYgKHRyaWdnZXJSZWZldGNoKSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciByZWZhY3RvcmluZyB0aGUgcmVmZXRjaCBwcm9jZXNzLiBJIGNhbid0IGNhbGwgQXBvbGxvJ3NcbiAgICAgIC8vIHJlZmV0Y2ggZGlyZWN0bHksIGJlY2F1c2UgSSB3YW50IGl0IHRvIHNoYXJlIHRoZSB1cGRhdGUgdHJpZ2dlcmVkXG4gICAgICAvLyBwb2xsaW5nIGRlbGF5IHdpdGggdGhlIHNldHRpbmcgb2YgdmFyaWFibGVzLlxuICAgICAgLy8gdGhpcy5fcXVlcnlSZWYucmVmZXRjaCh0aGlzLmdldFZhcmlhYmxlcygpKVxuXG4gICAgICAvLyBGYWtlIHZhcmlhYmxlcyB1cGRhdGUgdG8gdHJpZ2dlciBhIHJlZmV0Y2ggdGhhdCBzaGFyZXMgaXQncyByZWZldGNoIGRlbGF5LlxuICAgICAgdGhpcy5zZXRWYXJpYWJsZXModGhpcy5nZXRWYXJpYWJsZXMoKSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBXYXRjaFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzLCBURGF0YT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fcXVlcnlSZWYgYXMgYW55KS5vYnNRdWVyeS5vcHRpb25zXG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk6IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpPy5jb250ZXh0Py5xdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgfVxuXG4gIHByaXZhdGUgX3dpdGhWYXJpYWJsZU92ZXJyaWRlcyh2YXJpYWJsZXM/OiBUVmFyaWFibGVzKTogVFZhcmlhYmxlcyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQodmFyaWFibGVzKSAmJiAhKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgX3ZhcnMgPSB7IC4uLih2YXJpYWJsZXMgfHwge30pIH0gYXMgVFZhcmlhYmxlc1xuICAgIGlmICh0aGlzLmdldFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZygpPy5kaXNhYmxlUGFnaW5nKSB7XG4gICAgICBfdmFycy50YWtlID0gdGhpcy5fdG90YWxDb3VudFxuICAgIH1cbiAgICByZXR1cm4gX3ZhcnNcbiAgfVxuXG59XG4iXX0=
@@ -34,9 +34,9 @@ export class DatatableGraphqlService {
34
34
  return new DatatableGraphQLQueryRef(queryRef);
35
35
  }
36
36
  }
37
- DatatableGraphqlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DatatableGraphqlService, deps: [{ token: i1.Apollo }, { token: DATATABLE_GRAPHQL_SERVICE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
- DatatableGraphqlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DatatableGraphqlService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DatatableGraphqlService, decorators: [{
37
+ DatatableGraphqlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, deps: [{ token: i1.Apollo }, { token: DATATABLE_GRAPHQL_SERVICE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ DatatableGraphqlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -99,15 +99,15 @@ export class IconComponent {
99
99
  get _cssDisabled() { return this.disabled || null; }
100
100
  get _cssNoGreyscale() { return !this.grayscaleOnDisable; }
101
101
  }
102
- IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: IconComponent, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
102
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: IconComponent, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
104
104
  __decorate([
105
105
  InputBoolean()
106
106
  ], IconComponent.prototype, "grayscaleOnDisable", void 0);
107
107
  __decorate([
108
108
  InputBoolean()
109
109
  ], IconComponent.prototype, "disabled", void 0);
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: IconComponent, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: IconComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'seam-icon', template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"] }]
113
113
  }], propDecorators: { grayscaleOnDisable: [{