igniteui-angular 16.0.0-beta.2 → 16.0.0-beta.4

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 (349) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  2. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  3. package/esm2022/lib/action-strip/action-strip.component.mjs +7 -7
  4. package/esm2022/lib/action-strip/action-strip.module.mjs +5 -5
  5. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +4 -4
  7. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +4 -4
  8. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +4 -4
  9. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  10. package/esm2022/lib/avatar/avatar.module.mjs +5 -5
  11. package/esm2022/lib/badge/badge.component.mjs +4 -4
  12. package/esm2022/lib/badge/badge.module.mjs +5 -5
  13. package/esm2022/lib/banner/banner.component.mjs +4 -4
  14. package/esm2022/lib/banner/banner.directives.mjs +4 -4
  15. package/esm2022/lib/banner/banner.module.mjs +5 -5
  16. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +4 -4
  17. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +5 -5
  18. package/esm2022/lib/calendar/calendar-base.mjs +4 -4
  19. package/esm2022/lib/calendar/calendar.component.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar.directives.mjs +16 -16
  21. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  22. package/esm2022/lib/calendar/days-view/day-item.component.mjs +4 -4
  23. package/esm2022/lib/calendar/days-view/days-view.component.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +4 -4
  25. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +4 -4
  26. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +4 -4
  27. package/esm2022/lib/calendar/months-view/months-view.component.mjs +4 -4
  28. package/esm2022/lib/calendar/months-view.pipe.mjs +7 -7
  29. package/esm2022/lib/calendar/years-view/years-view.component.mjs +7 -7
  30. package/esm2022/lib/card/card.component.mjs +28 -28
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  33. package/esm2022/lib/carousel/carousel.directives.mjs +10 -10
  34. package/esm2022/lib/carousel/carousel.module.mjs +5 -5
  35. package/esm2022/lib/carousel/slide.component.mjs +4 -4
  36. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  37. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  38. package/esm2022/lib/chips/chip.component.mjs +4 -4
  39. package/esm2022/lib/chips/chips-area.component.mjs +4 -4
  40. package/esm2022/lib/chips/chips.module.mjs +5 -5
  41. package/esm2022/lib/combo/combo-add-item.component.mjs +4 -4
  42. package/esm2022/lib/combo/combo-dropdown.component.mjs +4 -4
  43. package/esm2022/lib/combo/combo-item.component.mjs +4 -4
  44. package/esm2022/lib/combo/combo.api.mjs +4 -4
  45. package/esm2022/lib/combo/combo.common.mjs +4 -4
  46. package/esm2022/lib/combo/combo.component.mjs +4 -4
  47. package/esm2022/lib/combo/combo.directives.mjs +25 -25
  48. package/esm2022/lib/combo/combo.module.mjs +5 -5
  49. package/esm2022/lib/combo/combo.pipes.mjs +7 -7
  50. package/esm2022/lib/core/density.mjs +4 -4
  51. package/esm2022/lib/core/navigation/directives.mjs +7 -7
  52. package/esm2022/lib/core/navigation/nav.service.mjs +4 -4
  53. package/esm2022/lib/core/selection.mjs +4 -4
  54. package/esm2022/lib/core/touch.mjs +4 -4
  55. package/esm2022/lib/core/utils.mjs +4 -4
  56. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +4 -4
  57. package/esm2022/lib/date-common/picker-base.directive.mjs +4 -4
  58. package/esm2022/lib/date-common/picker-icons.common.mjs +10 -10
  59. package/esm2022/lib/date-picker/date-picker.component.mjs +4 -4
  60. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  61. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +16 -16
  62. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  64. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  65. package/esm2022/lib/dialog/dialog.directives.mjs +7 -7
  66. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  67. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +5 -5
  69. package/esm2022/lib/directives/button/button.directive.mjs +4 -4
  70. package/esm2022/lib/directives/button/button.module.mjs +5 -5
  71. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +4 -4
  72. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +5 -5
  73. package/esm2022/lib/directives/divider/divider.directive.mjs +4 -4
  74. package/esm2022/lib/directives/divider/divider.module.mjs +5 -5
  75. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +13 -13
  76. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +5 -5
  77. package/esm2022/lib/directives/filter/filter.directive.mjs +7 -7
  78. package/esm2022/lib/directives/filter/filter.module.mjs +5 -5
  79. package/esm2022/lib/directives/focus/focus.directive.mjs +4 -4
  80. package/esm2022/lib/directives/focus/focus.module.mjs +5 -5
  81. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +4 -4
  82. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +5 -5
  83. package/esm2022/lib/directives/for-of/base.helper.component.mjs +4 -4
  84. package/esm2022/lib/directives/for-of/display.container.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -7
  86. package/esm2022/lib/directives/for-of/for_of.module.mjs +5 -5
  87. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +7 -7
  88. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +4 -4
  90. package/esm2022/lib/directives/form-control/form-control.directive.mjs +4 -4
  91. package/esm2022/lib/directives/form-control/form-control.module.mjs +5 -5
  92. package/esm2022/lib/directives/hint/hint.directive.mjs +4 -4
  93. package/esm2022/lib/directives/input/input.directive.mjs +14 -4
  94. package/esm2022/lib/directives/label/label.directive.mjs +4 -4
  95. package/esm2022/lib/directives/layout/layout.directive.mjs +7 -7
  96. package/esm2022/lib/directives/layout/layout.module.mjs +5 -5
  97. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +4 -4
  98. package/esm2022/lib/directives/mask/mask.directive.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask.module.mjs +5 -5
  100. package/esm2022/lib/directives/notification/notifications.directive.mjs +4 -4
  101. package/esm2022/lib/directives/prefix/prefix.directive.mjs +4 -4
  102. package/esm2022/lib/directives/radio/radio-group.directive.mjs +4 -4
  103. package/esm2022/lib/directives/radio/radio-group.module.mjs +5 -5
  104. package/esm2022/lib/directives/ripple/ripple.directive.mjs +4 -4
  105. package/esm2022/lib/directives/ripple/ripple.module.mjs +5 -5
  106. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +4 -4
  107. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +5 -5
  108. package/esm2022/lib/directives/suffix/suffix.directive.mjs +4 -4
  109. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +4 -4
  110. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +4 -4
  111. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +5 -5
  112. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +4 -4
  113. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +5 -5
  114. package/esm2022/lib/directives/toggle/toggle.directive.mjs +10 -10
  115. package/esm2022/lib/directives/toggle/toggle.module.mjs +5 -5
  116. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +4 -4
  117. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +4 -4
  119. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +5 -5
  120. package/esm2022/lib/drop-down/drop-down-group.component.mjs +4 -4
  121. package/esm2022/lib/drop-down/drop-down-item.base.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-item.component.mjs +4 -4
  123. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +4 -4
  124. package/esm2022/lib/drop-down/drop-down.base.mjs +4 -4
  125. package/esm2022/lib/drop-down/drop-down.component.mjs +4 -4
  126. package/esm2022/lib/drop-down/drop-down.module.mjs +5 -5
  127. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +4 -4
  128. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +4 -4
  130. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  131. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +10 -10
  132. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +5 -5
  133. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +4 -4
  134. package/esm2022/lib/grids/api.service.mjs +4 -4
  135. package/esm2022/lib/grids/cell.component.mjs +4 -4
  136. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +4 -4
  137. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +13 -13
  138. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +4 -4
  139. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +4 -4
  140. package/esm2022/lib/grids/column-actions/public_api.mjs +13 -0
  141. package/esm2022/lib/grids/columns/column-group.component.mjs +4 -4
  142. package/esm2022/lib/grids/columns/column-layout.component.mjs +4 -4
  143. package/esm2022/lib/grids/columns/column.component.mjs +4 -4
  144. package/esm2022/lib/grids/columns/templates.directive.mjs +25 -25
  145. package/esm2022/lib/grids/columns/validators.directive.mjs +22 -22
  146. package/esm2022/lib/grids/common/crud.service.mjs +4 -4
  147. package/esm2022/lib/grids/common/pipes.mjs +55 -55
  148. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +4 -4
  149. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +4 -4
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +4 -4
  151. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +4 -4
  152. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +4 -4
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +4 -4
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +4 -4
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +4 -4
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +4 -4
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +10 -10
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +4 -4
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +4 -4
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +4 -4
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +4 -4
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +7 -7
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +4 -4
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +4 -4
  165. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +4 -4
  166. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +4 -4
  167. package/esm2022/lib/grids/grid/grid-api.service.mjs +4 -4
  168. package/esm2022/lib/grids/grid/grid-row.component.mjs +4 -4
  169. package/esm2022/lib/grids/grid/grid-validation.service.mjs +4 -4
  170. package/esm2022/lib/grids/grid/grid.component.mjs +5 -6
  171. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +4 -4
  172. package/esm2022/lib/grids/grid/grid.directives.mjs +34 -34
  173. package/esm2022/lib/grids/grid/grid.module.mjs +27 -24
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +13 -13
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +4 -4
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +4 -4
  177. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  178. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +4 -4
  179. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +4 -4
  180. package/esm2022/lib/grids/grid-navigation.service.mjs +4 -4
  181. package/esm2022/lib/grids/grid.common.mjs +4 -4
  182. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +16 -16
  183. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +4 -4
  184. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +7 -7
  185. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +4 -4
  186. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +4 -4
  187. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +4 -4
  188. package/esm2022/lib/grids/headers/grid-header.component.mjs +4 -4
  189. package/esm2022/lib/grids/headers/pipes.mjs +10 -10
  190. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +4 -4
  191. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +4 -4
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +4 -4
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +4 -4
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +7 -7
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +27 -24
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +7 -7
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +4 -4
  199. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +4 -4
  200. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +4 -4
  201. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +4 -4
  202. package/esm2022/lib/grids/moving/moving.service.mjs +4 -4
  203. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +4 -4
  204. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +4 -4
  205. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +4 -4
  206. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +4 -4
  207. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +4 -4
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +27 -24
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +31 -31
  210. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +4 -4
  211. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +4 -4
  213. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +4 -4
  214. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +4 -4
  215. package/esm2022/lib/grids/public_api.mjs +5 -2
  216. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +4 -4
  217. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +4 -4
  218. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +4 -4
  219. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +4 -4
  220. package/esm2022/lib/grids/resizing/resizer.component.mjs +4 -4
  221. package/esm2022/lib/grids/resizing/resizer.directive.mjs +4 -4
  222. package/esm2022/lib/grids/resizing/resizing.service.mjs +4 -4
  223. package/esm2022/lib/grids/row-drag.directive.mjs +10 -10
  224. package/esm2022/lib/grids/row.directive.mjs +4 -4
  225. package/esm2022/lib/grids/selection/drag-select.directive.mjs +4 -4
  226. package/esm2022/lib/grids/selection/row-selectors.mjs +10 -10
  227. package/esm2022/lib/grids/selection/selection.service.mjs +4 -4
  228. package/esm2022/lib/grids/state.directive.mjs +4 -4
  229. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +4 -4
  230. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +4 -4
  231. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +4 -4
  232. package/esm2022/lib/grids/summaries/summary-row.component.mjs +4 -4
  233. package/esm2022/lib/grids/toolbar/common.mjs +16 -16
  234. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +4 -4
  235. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +4 -4
  236. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +4 -4
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +4 -4
  238. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +7 -7
  239. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +4 -4
  240. package/esm2022/lib/grids/tree-grid/public_api.mjs +7 -1
  241. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +4 -4
  242. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +4 -4
  243. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +4 -4
  244. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +4 -4
  245. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +4 -4
  246. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +4 -4
  247. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +4 -4
  248. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +4 -4
  249. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +44 -39
  250. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +22 -22
  251. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +4 -4
  252. package/esm2022/lib/icon/icon.component.mjs +4 -4
  253. package/esm2022/lib/icon/icon.module.mjs +5 -5
  254. package/esm2022/lib/icon/icon.service.mjs +4 -4
  255. package/esm2022/lib/input-group/input-group.component.mjs +4 -4
  256. package/esm2022/lib/input-group/input-group.module.mjs +5 -5
  257. package/esm2022/lib/list/list-item.component.mjs +4 -4
  258. package/esm2022/lib/list/list.common.mjs +16 -16
  259. package/esm2022/lib/list/list.component.mjs +19 -19
  260. package/esm2022/lib/list/list.module.mjs +5 -5
  261. package/esm2022/lib/navbar/navbar.component.mjs +10 -10
  262. package/esm2022/lib/navbar/navbar.module.mjs +5 -5
  263. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +4 -4
  264. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +10 -10
  265. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +5 -5
  266. package/esm2022/lib/paginator/paginator-interfaces.mjs +4 -4
  267. package/esm2022/lib/paginator/paginator.component.mjs +13 -13
  268. package/esm2022/lib/paginator/paginator.module.mjs +5 -5
  269. package/esm2022/lib/progressbar/progressbar.common.mjs +7 -7
  270. package/esm2022/lib/progressbar/progressbar.component.mjs +10 -10
  271. package/esm2022/lib/progressbar/progressbar.module.mjs +5 -5
  272. package/esm2022/lib/query-builder/query-builder-header.component.mjs +4 -4
  273. package/esm2022/lib/query-builder/query-builder.component.mjs +7 -7
  274. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  275. package/esm2022/lib/radio/radio.component.mjs +4 -4
  276. package/esm2022/lib/select/select-group.component.mjs +4 -4
  277. package/esm2022/lib/select/select-item.component.mjs +4 -4
  278. package/esm2022/lib/select/select-navigation.directive.mjs +4 -4
  279. package/esm2022/lib/select/select.component.mjs +13 -13
  280. package/esm2022/lib/select/select.module.mjs +5 -5
  281. package/esm2022/lib/services/animation/angular-animation-service.mjs +4 -4
  282. package/esm2022/lib/services/csv/csv-exporter.mjs +4 -4
  283. package/esm2022/lib/services/direction/directionality.mjs +4 -4
  284. package/esm2022/lib/services/excel/excel-exporter.mjs +4 -4
  285. package/esm2022/lib/services/overlay/overlay.mjs +4 -4
  286. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +7 -7
  287. package/esm2022/lib/simple-combo/simple-combo.component.mjs +4 -4
  288. package/esm2022/lib/simple-combo/simple-combo.module.mjs +5 -5
  289. package/esm2022/lib/slider/label/thumb-label.component.mjs +4 -4
  290. package/esm2022/lib/slider/slider.common.mjs +10 -10
  291. package/esm2022/lib/slider/slider.component.mjs +4 -4
  292. package/esm2022/lib/slider/slider.module.mjs +5 -5
  293. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +4 -4
  294. package/esm2022/lib/slider/ticks/tick.pipe.mjs +4 -4
  295. package/esm2022/lib/slider/ticks/ticks.component.mjs +4 -4
  296. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  297. package/esm2022/lib/snackbar/snackbar.module.mjs +5 -5
  298. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +4 -4
  299. package/esm2022/lib/splitter/splitter.component.mjs +7 -7
  300. package/esm2022/lib/splitter/splitter.module.mjs +5 -5
  301. package/esm2022/lib/stepper/step/step.component.mjs +4 -4
  302. package/esm2022/lib/stepper/stepper.component.mjs +4 -4
  303. package/esm2022/lib/stepper/stepper.directive.mjs +22 -22
  304. package/esm2022/lib/stepper/stepper.module.mjs +5 -5
  305. package/esm2022/lib/stepper/stepper.service.mjs +4 -4
  306. package/esm2022/lib/switch/switch.component.mjs +4 -4
  307. package/esm2022/lib/switch/switch.module.mjs +5 -5
  308. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +4 -4
  309. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +4 -4
  310. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +4 -4
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +7 -7
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +5 -5
  314. package/esm2022/lib/tabs/tab-content.directive.mjs +4 -4
  315. package/esm2022/lib/tabs/tab-header.directive.mjs +4 -4
  316. package/esm2022/lib/tabs/tab-item.directive.mjs +4 -4
  317. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +4 -4
  318. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +4 -4
  319. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +4 -4
  320. package/esm2022/lib/tabs/tabs/tabs.component.mjs +4 -4
  321. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +7 -7
  322. package/esm2022/lib/tabs/tabs/tabs.module.mjs +5 -5
  323. package/esm2022/lib/tabs/tabs.directive.mjs +4 -4
  324. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  325. package/esm2022/lib/time-picker/time-picker.directives.mjs +7 -7
  326. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  327. package/esm2022/lib/time-picker/time-picker.pipes.mjs +7 -7
  328. package/esm2022/lib/toast/toast.component.mjs +4 -4
  329. package/esm2022/lib/toast/toast.module.mjs +5 -5
  330. package/esm2022/lib/tree/tree-navigation.service.mjs +4 -4
  331. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +7 -7
  332. package/esm2022/lib/tree/tree-selection.service.mjs +4 -4
  333. package/esm2022/lib/tree/tree.component.mjs +10 -10
  334. package/esm2022/lib/tree/tree.module.mjs +5 -5
  335. package/esm2022/lib/tree/tree.service.mjs +4 -4
  336. package/fesm2022/igniteui-angular.mjs +3098 -3079
  337. package/fesm2022/igniteui-angular.mjs.map +1 -1
  338. package/lib/directives/input/input.directive.d.ts +3 -0
  339. package/lib/grids/column-actions/public_api.d.ts +7 -0
  340. package/lib/grids/grid/grid.module.d.ts +23 -20
  341. package/lib/grids/grid/public_api.d.ts +1 -1
  342. package/lib/grids/hierarchical-grid/hierarchical-grid.module.d.ts +23 -20
  343. package/lib/grids/hierarchical-grid/public_api.d.ts +1 -1
  344. package/lib/grids/pivot-grid/pivot-grid.module.d.ts +23 -20
  345. package/lib/grids/pivot-grid/public_api.d.ts +1 -1
  346. package/lib/grids/public_api.d.ts +2 -1
  347. package/lib/grids/tree-grid/public_api.d.ts +5 -1
  348. package/lib/grids/tree-grid/tree-grid.module.d.ts +40 -35
  349. package/package.json +6 -6
@@ -315,10 +315,10 @@ export class IgxMonthsViewComponent {
315
315
  initMonthFormatter() {
316
316
  this._formatterMonth = new Intl.DateTimeFormat(this._locale, { month: this.monthFormat });
317
317
  }
318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxMonthsViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
319
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxMonthsViewComponent, isStandalone: true, selector: "igx-months-view", inputs: { id: "id", date: "date", monthFormat: "monthFormat", locale: "locale", formatView: "formatView" }, outputs: { selected: "selected" }, host: { listeners: { "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)", "keydown.home": "onKeydownHome($event)", "keydown.end": "onKeydownEnd($event)", "keydown.enter": "onKeydownEnter($event)", "focusout": "resetActiveMonth()" }, properties: { "attr.id": "this.id", "class.igx-calendar": "this.styleClass" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMonthsViewComponent, multi: true }], viewQueries: [{ propertyName: "monthsRef", predicate: IgxCalendarMonthDirective, descendants: true, read: IgxCalendarMonthDirective }], ngImport: i0, template: "<div class=\"igx-calendar__body\">\n <div class=\"igx-calendar__body-row igx-calendar__body-row--wrap\">\n <span\n class=\"igx-calendar__month\"\n role=\"button\"\n [attr.aria-label]=\"month | date: 'LLLL'\"\n [igxCalendarMonth]=\"month\"\n [date]=\"date\"\n [attr.tabindex]=\"activeMonth === month.getMonth() ? 0 : -1\"\n (monthSelection)=\"selectMonth($event)\" [index]=\"i\"\n *ngFor=\"let month of months; index as i; trackBy: monthTracker\">\n {{ formattedMonth(month) | titlecase }}\n </span>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarMonthDirective, selector: "[igxCalendarMonth]", inputs: ["igxCalendarMonth", "date", "index"], outputs: ["monthSelection"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: DatePipe, name: "date" }] }); }
318
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxMonthsViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
319
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxMonthsViewComponent, isStandalone: true, selector: "igx-months-view", inputs: { id: "id", date: "date", monthFormat: "monthFormat", locale: "locale", formatView: "formatView" }, outputs: { selected: "selected" }, host: { listeners: { "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)", "keydown.home": "onKeydownHome($event)", "keydown.end": "onKeydownEnd($event)", "keydown.enter": "onKeydownEnter($event)", "focusout": "resetActiveMonth()" }, properties: { "attr.id": "this.id", "class.igx-calendar": "this.styleClass" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMonthsViewComponent, multi: true }], viewQueries: [{ propertyName: "monthsRef", predicate: IgxCalendarMonthDirective, descendants: true, read: IgxCalendarMonthDirective }], ngImport: i0, template: "<div class=\"igx-calendar__body\">\n <div class=\"igx-calendar__body-row igx-calendar__body-row--wrap\">\n <span\n class=\"igx-calendar__month\"\n role=\"button\"\n [attr.aria-label]=\"month | date: 'LLLL'\"\n [igxCalendarMonth]=\"month\"\n [date]=\"date\"\n [attr.tabindex]=\"activeMonth === month.getMonth() ? 0 : -1\"\n (monthSelection)=\"selectMonth($event)\" [index]=\"i\"\n *ngFor=\"let month of months; index as i; trackBy: monthTracker\">\n {{ formattedMonth(month) | titlecase }}\n </span>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarMonthDirective, selector: "[igxCalendarMonth]", inputs: ["igxCalendarMonth", "date", "index"], outputs: ["monthSelection"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: DatePipe, name: "date" }] }); }
320
320
  }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxMonthsViewComponent, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxMonthsViewComponent, decorators: [{
322
322
  type: Component,
323
323
  args: [{ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMonthsViewComponent, multi: true }], selector: 'igx-months-view', standalone: true, imports: [NgFor, IgxCalendarMonthDirective, TitleCasePipe, DatePipe], template: "<div class=\"igx-calendar__body\">\n <div class=\"igx-calendar__body-row igx-calendar__body-row--wrap\">\n <span\n class=\"igx-calendar__month\"\n role=\"button\"\n [attr.aria-label]=\"month | date: 'LLLL'\"\n [igxCalendarMonth]=\"month\"\n [date]=\"date\"\n [attr.tabindex]=\"activeMonth === month.getMonth() ? 0 : -1\"\n (monthSelection)=\"selectMonth($event)\" [index]=\"i\"\n *ngFor=\"let month of months; index as i; trackBy: monthTracker\">\n {{ formattedMonth(month) | titlecase }}\n </span>\n </div>\n</div>\n\n" }]
324
324
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { id: [{
@@ -367,4 +367,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
367
367
  type: HostListener,
368
368
  args: ['focusout']
369
369
  }] } });
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL21vbnRocy12aWV3L21vbnRocy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aHMtdmlldy9tb250aHMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ1osWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRWpFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQVNoQixNQUFNLE9BQU8sc0JBQXNCO0lBaUIvQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILElBQ1csSUFBSSxDQUFDLEtBQVc7UUFDdkIsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLFdBQVcsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQ1csTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFBVyxNQUFNLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBbUNEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLE1BQU07UUFDYixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQXNDRCxZQUFtQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXZMakM7Ozs7Ozs7Ozs7O1dBV0c7UUFHSSxPQUFFLEdBQUcsbUJBQW1CLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFnRjNDOzs7V0FHRztRQUVJLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFekI7Ozs7Ozs7O1dBUUc7UUFFSSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQzs7OztXQUlHO1FBRUksZUFBVSxHQUFHLElBQUksQ0FBQztRQWtDakIsVUFBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFNM0I7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXZCOztXQUVHO1FBQ0ssaUJBQVksR0FBRyxPQUFPLENBQUM7UUFPL0I7O1dBRUc7UUFDSyx1QkFBa0IsR0FBZSxJQUFJLENBQUM7UUFDOUM7O1dBRUc7UUFDSyxzQkFBaUIsR0FBc0IsSUFBSSxDQUFDO1FBR2hELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFFSSxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUN4QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFNUQsS0FBSyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6RSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUU7Z0JBQ3RGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLGtCQUFrQixDQUFDLEtBQW9CO1FBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU1RCxLQUFLLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6RSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxZQUFZLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUc7Z0JBQ3ZGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLG1CQUFtQixDQUFDLEtBQW9CO1FBQzNDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLGtCQUFrQixDQUFDLEtBQW9CO1FBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUksYUFBYSxDQUFDLEtBQW9CO1FBQ3JDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFFSSxZQUFZLENBQUMsS0FBb0I7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUVJLGNBQWMsQ0FBQyxLQUFLO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsS0FBVztRQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxFQUFxQjtRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEVBQWM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBVztRQUN6QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO21IQXJZUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw0cEJBTnBCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyx3REFtSS9FLHlCQUF5QiwyQkFBVSx5QkFBeUIsNkJDdko5RSxnb0JBZ0JBLDRDRFFjLEtBQUssbUhBQUUseUJBQXlCLHNJQUFFLGFBQWEsNkNBQUUsUUFBUTs7Z0dBRTFELHNCQUFzQjtrQkFQbEMsU0FBUztnQ0FDSyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFlBQ25GLGlCQUFpQixjQUVmLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lHQWlCN0QsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQWdCSyxJQUFJO3NCQURkLEtBQUs7Z0JBb0JLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBNEJLLE1BQU07c0JBRGhCLEtBQUs7Z0JBeUJDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBYUMsUUFBUTtzQkFEZCxNQUFNO2dCQVNBLFVBQVU7c0JBRGhCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU8xQixTQUFTO3NCQURmLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUU7Z0JBb0VyRSxnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJwQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJ0QyxtQkFBbUI7c0JBRHpCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0J2QyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0J0QyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjakMsWUFBWTtzQkFEbEIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZWhDLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVsQyxnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnLi4vY2FsZW5kYXInO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4Q2FsZW5kYXJNb250aERpcmVjdGl2ZSB9IGZyb20gJy4uL2NhbGVuZGFyLmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdGb3IsIFRpdGxlQ2FzZVBpcGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxubGV0IE5FWFRfSUQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogSWd4TW9udGhzVmlld0NvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgc2VsZWN0b3I6ICdpZ3gtbW9udGhzLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnbW9udGhzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBJZ3hDYWxlbmRhck1vbnRoRGlyZWN0aXZlLCBUaXRsZUNhc2VQaXBlLCBEYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4TW9udGhzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBpZGAgb2YgdGhlIG1vbnRocyB2aWV3LlxuICAgICAqIElmIG5vdCBzZXQsIHRoZSBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtbW9udGhzLXZpZXctMFwiYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1tb250aHMtdmlldyBpZD1cIm15LW1vbnRocy12aWV3XCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBtb250aHNWaWV3SWQgPSAgdGhpcy5tb250aHNWaWV3LmlkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneE1vbnRoc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1tb250aHMtdmlldy0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBzZWxlY3RlZCBkYXRlIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IGlzIHRoZSBjdXJyZW50IGRhdGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXcgW2RhdGVdPVwibXlEYXRlXCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBkYXRlID0gIHRoaXMubW9udGhzVmlldy5kYXRlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneE1vbnRoc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGF0ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtb250aCBmb3JtYXQgb3B0aW9uIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IG1vbnRoRm9ybWF0ID0gdGhpcy5tb250aHNWaWV3Lm1vbnRoRm9ybWF0LlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtb250aEZvcm1hdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhGb3JtYXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbW9udGggZm9ybWF0IG9wdGlvbiBvZiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXc+IFttb250aEZvcm1hdF0gPSBcInNob3J0J1wiPC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgbW9udGhGb3JtYXQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9tb250aEZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRNb250aEZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImVuXCJgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbG9jYWxlID0gIHRoaXMubW9udGhzVmlldy5sb2NhbGU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICogRXhwZWN0cyBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgXCJlblwiYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1tb250aHMtdmlldyBbbG9jYWxlXT1cImRlXCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgbG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbG9jYWxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdE1vbnRoRm9ybWF0dGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIG1vbnRoRm9ybWF0LCBpZiBhbnkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybWF0VmlldyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGEgc2VsZWN0aW9uIGlzIG1hZGUgaW4gdGhlIG1vbnRocyB2aWV3LlxuICAgICAqIFByb3ZpZGVzIHJlZmVyZW5jZSB0aGUgYGRhdGVgIHByb3BlcnR5IGluIHRoZSBgSWd4TW9udGhzVmlld0NvbXBvbmVudGAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXcgKHNlbGVjdGVkKT1cIm9uU2VsZWN0aW9uKCRldmVudClcIj48L2lneC1tb250aHMtdmlldz5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hNb250aHNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgY3NzIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYWxlbmRhcicpXG4gICAgcHVibGljIHN0eWxlQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oSWd4Q2FsZW5kYXJNb250aERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hDYWxlbmRhck1vbnRoRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIG1vbnRoc1JlZjogUXVlcnlMaXN0PElneENhbGVuZGFyTW9udGhEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBkYXRlIG9iamVjdHMgd2hpY2ggYXJlIHRoZW4gdXNlZCB0b1xuICAgICAqIHByb3Blcmx5IHJlbmRlciB0aGUgbW9udGggbmFtZXMuXG4gICAgICpcbiAgICAgKiBVc2VkIGluIHRoZSB0ZW1wbGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBtb250aHMoKTogRGF0ZVtdIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUodGhpcy5kYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHN0YXJ0KTtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY2FsZW5kYXJNb2RlbC50aW1lZGVsdGEoc3RhcnQsICdtb250aCcsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2ZU1vbnRoO1xuXG4gICAgcHJpdmF0ZSBfZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1hdHRlck1vbnRoOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlID0gJ2VuJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9tb250aEZvcm1hdCA9ICdzaG9ydCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY2FsZW5kYXJNb2RlbDogQ2FsZW5kYXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogRGF0ZSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5pbml0TW9udGhGb3JtYXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJNb2RlbCA9IG5ldyBDYWxlbmRhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9udGhzID0gdGhpcy5tb250aHNSZWYudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBub2RlUmVjdCA9IG5vZGUubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IG1vbnRocy5pbmRleE9mKG5vZGUpIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dE5vZGVSZWN0ID0gbW9udGhzW2luZGV4XS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdG9sZXJhbmNlID0gNjtcbiAgICAgICAgICAgIGlmIChub2RlUmVjdC50b3AgIT09IG5leHROb2RlUmVjdC50b3AgJiYgKG5leHROb2RlUmVjdC5sZWZ0IC0gbm9kZVJlY3QubGVmdCkgPCB0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1tpbmRleF07XG4gICAgICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duQXJyb3dEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9udGhzID0gdGhpcy5tb250aHNSZWYudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBub2RlUmVjdCA9IG5vZGUubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IG1vbnRocy5pbmRleE9mKG5vZGUpICsgMTsgaW5kZXggPCBtb250aHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0Tm9kZVJlY3QgPSBtb250aHNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0b2xlcmFuY2UgPSA2O1xuICAgICAgICAgICAgaWYgKG5leHROb2RlUmVjdC50b3AgIT09IG5vZGVSZWN0LnRvcCAmJiAobm9kZVJlY3QubGVmdCAtIG5leHROb2RlUmVjdC5sZWZ0KSA8IHRvbGVyYW5jZSApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1tpbmRleF07XG4gICAgICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9udGhzUmVmLmZpbmQoKGRhdGUpID0+IGRhdGUubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb250aHMgPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KCk7XG4gICAgICAgIGlmIChtb250aHMuaW5kZXhPZihub2RlKSArIDEgPCBtb250aHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1ttb250aHMuaW5kZXhPZihub2RlKSArIDFdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IG1vbnRoLnZhbHVlLmdldE1vbnRoKCk7XG4gICAgICAgICAgICBtb250aC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9udGhzUmVmLmZpbmQoKGRhdGUpID0+IGRhdGUubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb250aHMgPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KCk7XG4gICAgICAgIGlmIChtb250aHMuaW5kZXhPZihub2RlKSAtIDEgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgbW9udGggPSBtb250aHNbbW9udGhzLmluZGV4T2Yobm9kZSkgLSAxXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uaG9tZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkhvbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KClbMF07XG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICBtb250aC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW5kJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duRW5kKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG1vbnRocyA9IHRoaXMubW9udGhzUmVmLnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBtb250aHNbbW9udGhzLmxlbmd0aCAtIDFdO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gbW9udGgudmFsdWUuZ2V0TW9udGgoKTtcbiAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duRW50ZXIoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkudmFsdWU7XG4gICAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHRoaXMuZGF0ZS5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZGF0ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICAgIHB1YmxpYyByZXNldEFjdGl2ZU1vbnRoKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbG9jYWxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb250aCBpbiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdHRlZE1vbnRoKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0Vmlldykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlck1vbnRoLmZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLmdldE1vbnRoKCl9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdE1vbnRoKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5kYXRlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSB0aGlzLmRhdGUuZ2V0TW9udGgoKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLmRhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IERhdGUpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbW9udGhUcmFja2VyKGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2l0ZW0uZ2V0TW9udGgoKX19YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0TW9udGhGb3JtYXR0ZXIoKSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlck1vbnRoID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5fbG9jYWxlLCB7IG1vbnRoOiB0aGlzLm1vbnRoRm9ybWF0IH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2JvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWNhbGVuZGFyX19ib2R5LXJvdyBpZ3gtY2FsZW5kYXJfX2JvZHktcm93LS13cmFwXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImlneC1jYWxlbmRhcl9fbW9udGhcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vbnRoIHwgZGF0ZTogJ0xMTEwnXCJcbiAgICAgICAgICAgIFtpZ3hDYWxlbmRhck1vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiYWN0aXZlTW9udGggPT09IG1vbnRoLmdldE1vbnRoKCkgPyAwIDogLTFcIlxuICAgICAgICAgICAgKG1vbnRoU2VsZWN0aW9uKT1cInNlbGVjdE1vbnRoKCRldmVudClcIiBbaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzOyBpbmRleCBhcyBpOyB0cmFja0J5OiBtb250aFRyYWNrZXJcIj5cbiAgICAgICAgICAgIHt7IGZvcm1hdHRlZE1vbnRoKG1vbnRoKSB8IHRpdGxlY2FzZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuIl19
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL21vbnRocy12aWV3L21vbnRocy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aHMtdmlldy9tb250aHMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ1osWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRWpFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQVNoQixNQUFNLE9BQU8sc0JBQXNCO0lBaUIvQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILElBQ1csSUFBSSxDQUFDLEtBQVc7UUFDdkIsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLFdBQVcsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQ1csTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFBVyxNQUFNLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBbUNEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLE1BQU07UUFDYixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQXNDRCxZQUFtQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXZMakM7Ozs7Ozs7Ozs7O1dBV0c7UUFHSSxPQUFFLEdBQUcsbUJBQW1CLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFnRjNDOzs7V0FHRztRQUVJLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFekI7Ozs7Ozs7O1dBUUc7UUFFSSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQzs7OztXQUlHO1FBRUksZUFBVSxHQUFHLElBQUksQ0FBQztRQWtDakIsVUFBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFNM0I7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXZCOztXQUVHO1FBQ0ssaUJBQVksR0FBRyxPQUFPLENBQUM7UUFPL0I7O1dBRUc7UUFDSyx1QkFBa0IsR0FBZSxJQUFJLENBQUM7UUFDOUM7O1dBRUc7UUFDSyxzQkFBaUIsR0FBc0IsSUFBSSxDQUFDO1FBR2hELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFFSSxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUN4QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFNUQsS0FBSyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6RSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUU7Z0JBQ3RGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLGtCQUFrQixDQUFDLEtBQW9CO1FBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU1RCxLQUFLLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6RSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxZQUFZLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUc7Z0JBQ3ZGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLG1CQUFtQixDQUFDLEtBQW9CO1FBQzNDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLGtCQUFrQixDQUFDLEtBQW9CO1FBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUksYUFBYSxDQUFDLEtBQW9CO1FBQ3JDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFFSSxZQUFZLENBQUMsS0FBb0I7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUVJLGNBQWMsQ0FBQyxLQUFLO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsS0FBVztRQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxFQUFxQjtRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEVBQWM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBVztRQUN6QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQXJZUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw0cEJBTnBCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyx3REFtSS9FLHlCQUF5QiwyQkFBVSx5QkFBeUIsNkJDdko5RSxnb0JBZ0JBLDRDRFFjLEtBQUssbUhBQUUseUJBQXlCLHNJQUFFLGFBQWEsNkNBQUUsUUFBUTs7MkZBRTFELHNCQUFzQjtrQkFQbEMsU0FBUztnQ0FDSyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFlBQ25GLGlCQUFpQixjQUVmLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lHQWlCN0QsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQWdCSyxJQUFJO3NCQURkLEtBQUs7Z0JBb0JLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBNEJLLE1BQU07c0JBRGhCLEtBQUs7Z0JBeUJDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBYUMsUUFBUTtzQkFEZCxNQUFNO2dCQVNBLFVBQVU7c0JBRGhCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU8xQixTQUFTO3NCQURmLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUU7Z0JBb0VyRSxnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJwQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJ0QyxtQkFBbUI7c0JBRHpCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0J2QyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0J0QyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjakMsWUFBWTtzQkFEbEIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZWhDLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVsQyxnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnLi4vY2FsZW5kYXInO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4Q2FsZW5kYXJNb250aERpcmVjdGl2ZSB9IGZyb20gJy4uL2NhbGVuZGFyLmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdGb3IsIFRpdGxlQ2FzZVBpcGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxubGV0IE5FWFRfSUQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogSWd4TW9udGhzVmlld0NvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgc2VsZWN0b3I6ICdpZ3gtbW9udGhzLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnbW9udGhzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBJZ3hDYWxlbmRhck1vbnRoRGlyZWN0aXZlLCBUaXRsZUNhc2VQaXBlLCBEYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4TW9udGhzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBpZGAgb2YgdGhlIG1vbnRocyB2aWV3LlxuICAgICAqIElmIG5vdCBzZXQsIHRoZSBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtbW9udGhzLXZpZXctMFwiYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1tb250aHMtdmlldyBpZD1cIm15LW1vbnRocy12aWV3XCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBtb250aHNWaWV3SWQgPSAgdGhpcy5tb250aHNWaWV3LmlkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneE1vbnRoc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1tb250aHMtdmlldy0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBzZWxlY3RlZCBkYXRlIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IGlzIHRoZSBjdXJyZW50IGRhdGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXcgW2RhdGVdPVwibXlEYXRlXCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBkYXRlID0gIHRoaXMubW9udGhzVmlldy5kYXRlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneE1vbnRoc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGF0ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtb250aCBmb3JtYXQgb3B0aW9uIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IG1vbnRoRm9ybWF0ID0gdGhpcy5tb250aHNWaWV3Lm1vbnRoRm9ybWF0LlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtb250aEZvcm1hdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhGb3JtYXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbW9udGggZm9ybWF0IG9wdGlvbiBvZiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXc+IFttb250aEZvcm1hdF0gPSBcInNob3J0J1wiPC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgbW9udGhGb3JtYXQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9tb250aEZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRNb250aEZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSBtb250aHMgdmlldy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImVuXCJgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbG9jYWxlID0gIHRoaXMubW9udGhzVmlldy5sb2NhbGU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICogRXhwZWN0cyBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgXCJlblwiYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1tb250aHMtdmlldyBbbG9jYWxlXT1cImRlXCI+PC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4TW9udGhzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgbG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbG9jYWxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdE1vbnRoRm9ybWF0dGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIG1vbnRoRm9ybWF0LCBpZiBhbnkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybWF0VmlldyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGEgc2VsZWN0aW9uIGlzIG1hZGUgaW4gdGhlIG1vbnRocyB2aWV3LlxuICAgICAqIFByb3ZpZGVzIHJlZmVyZW5jZSB0aGUgYGRhdGVgIHByb3BlcnR5IGluIHRoZSBgSWd4TW9udGhzVmlld0NvbXBvbmVudGAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbW9udGhzLXZpZXcgKHNlbGVjdGVkKT1cIm9uU2VsZWN0aW9uKCRldmVudClcIj48L2lneC1tb250aHMtdmlldz5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hNb250aHNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgY3NzIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYWxlbmRhcicpXG4gICAgcHVibGljIHN0eWxlQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oSWd4Q2FsZW5kYXJNb250aERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hDYWxlbmRhck1vbnRoRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIG1vbnRoc1JlZjogUXVlcnlMaXN0PElneENhbGVuZGFyTW9udGhEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBkYXRlIG9iamVjdHMgd2hpY2ggYXJlIHRoZW4gdXNlZCB0b1xuICAgICAqIHByb3Blcmx5IHJlbmRlciB0aGUgbW9udGggbmFtZXMuXG4gICAgICpcbiAgICAgKiBVc2VkIGluIHRoZSB0ZW1wbGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBtb250aHMoKTogRGF0ZVtdIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUodGhpcy5kYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHN0YXJ0KTtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY2FsZW5kYXJNb2RlbC50aW1lZGVsdGEoc3RhcnQsICdtb250aCcsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2ZU1vbnRoO1xuXG4gICAgcHJpdmF0ZSBfZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1hdHRlck1vbnRoOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlID0gJ2VuJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9tb250aEZvcm1hdCA9ICdzaG9ydCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY2FsZW5kYXJNb2RlbDogQ2FsZW5kYXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogRGF0ZSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5pbml0TW9udGhGb3JtYXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJNb2RlbCA9IG5ldyBDYWxlbmRhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9udGhzID0gdGhpcy5tb250aHNSZWYudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBub2RlUmVjdCA9IG5vZGUubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IG1vbnRocy5pbmRleE9mKG5vZGUpIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dE5vZGVSZWN0ID0gbW9udGhzW2luZGV4XS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdG9sZXJhbmNlID0gNjtcbiAgICAgICAgICAgIGlmIChub2RlUmVjdC50b3AgIT09IG5leHROb2RlUmVjdC50b3AgJiYgKG5leHROb2RlUmVjdC5sZWZ0IC0gbm9kZVJlY3QubGVmdCkgPCB0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1tpbmRleF07XG4gICAgICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duQXJyb3dEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9udGhzID0gdGhpcy5tb250aHNSZWYudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBub2RlUmVjdCA9IG5vZGUubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IG1vbnRocy5pbmRleE9mKG5vZGUpICsgMTsgaW5kZXggPCBtb250aHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0Tm9kZVJlY3QgPSBtb250aHNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0b2xlcmFuY2UgPSA2O1xuICAgICAgICAgICAgaWYgKG5leHROb2RlUmVjdC50b3AgIT09IG5vZGVSZWN0LnRvcCAmJiAobm9kZVJlY3QubGVmdCAtIG5leHROb2RlUmVjdC5sZWZ0KSA8IHRvbGVyYW5jZSApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1tpbmRleF07XG4gICAgICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9udGhzUmVmLmZpbmQoKGRhdGUpID0+IGRhdGUubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb250aHMgPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KCk7XG4gICAgICAgIGlmIChtb250aHMuaW5kZXhPZihub2RlKSArIDEgPCBtb250aHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBtb250aCA9IG1vbnRoc1ttb250aHMuaW5kZXhPZihub2RlKSArIDFdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IG1vbnRoLnZhbHVlLmdldE1vbnRoKCk7XG4gICAgICAgICAgICBtb250aC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9udGhzUmVmLmZpbmQoKGRhdGUpID0+IGRhdGUubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb250aHMgPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KCk7XG4gICAgICAgIGlmIChtb250aHMuaW5kZXhPZihub2RlKSAtIDEgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgbW9udGggPSBtb250aHNbbW9udGhzLmluZGV4T2Yobm9kZSkgLSAxXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uaG9tZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkhvbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLm1vbnRoc1JlZi50b0FycmF5KClbMF07XG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aC52YWx1ZS5nZXRNb250aCgpO1xuICAgICAgICBtb250aC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW5kJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duRW5kKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG1vbnRocyA9IHRoaXMubW9udGhzUmVmLnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBtb250aHNbbW9udGhzLmxlbmd0aCAtIDFdO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gbW9udGgudmFsdWUuZ2V0TW9udGgoKTtcbiAgICAgICAgbW9udGgubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlkb3duRW50ZXIoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm1vbnRoc1JlZi5maW5kKChkYXRlKSA9PiBkYXRlLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkudmFsdWU7XG4gICAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHRoaXMuZGF0ZS5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZGF0ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICAgIHB1YmxpYyByZXNldEFjdGl2ZU1vbnRoKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbG9jYWxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb250aCBpbiB0aGUgbW9udGhzIHZpZXcuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdHRlZE1vbnRoKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0Vmlldykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlck1vbnRoLmZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLmdldE1vbnRoKCl9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdE1vbnRoKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5kYXRlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSB0aGlzLmRhdGUuZ2V0TW9udGgoKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLmRhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IERhdGUpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbW9udGhUcmFja2VyKGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2l0ZW0uZ2V0TW9udGgoKX19YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0TW9udGhGb3JtYXR0ZXIoKSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlck1vbnRoID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5fbG9jYWxlLCB7IG1vbnRoOiB0aGlzLm1vbnRoRm9ybWF0IH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2JvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWNhbGVuZGFyX19ib2R5LXJvdyBpZ3gtY2FsZW5kYXJfX2JvZHktcm93LS13cmFwXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImlneC1jYWxlbmRhcl9fbW9udGhcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vbnRoIHwgZGF0ZTogJ0xMTEwnXCJcbiAgICAgICAgICAgIFtpZ3hDYWxlbmRhck1vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiYWN0aXZlTW9udGggPT09IG1vbnRoLmdldE1vbnRoKCkgPyAwIDogLTFcIlxuICAgICAgICAgICAgKG1vbnRoU2VsZWN0aW9uKT1cInNlbGVjdE1vbnRoKCRldmVudClcIiBbaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzOyBpbmRleCBhcyBpOyB0cmFja0J5OiBtb250aFRyYWNrZXJcIj5cbiAgICAgICAgICAgIHt7IGZvcm1hdHRlZE1vbnRoKG1vbnRoKSB8IHRpdGxlY2FzZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuIl19
@@ -8,10 +8,10 @@ export class IgxMonthViewSlotsCalendar {
8
8
  transform(monthViews) {
9
9
  return new Array(monthViews);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxMonthViewSlotsCalendar, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxMonthViewSlotsCalendar, isStandalone: true, name: "IgxMonthViewSlots" }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxMonthViewSlotsCalendar, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: IgxMonthViewSlotsCalendar, isStandalone: true, name: "IgxMonthViewSlots" }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxMonthViewSlotsCalendar, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxMonthViewSlotsCalendar, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'IgxMonthViewSlots',
@@ -29,14 +29,14 @@ export class IgxGetViewDateCalendar {
29
29
  const date = this.calendar.timedelta(viewDate, 'month', index);
30
30
  return wholeDate ? date : date.getMonth();
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGetViewDateCalendar, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
33
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGetViewDateCalendar, isStandalone: true, name: "IgxGetViewDate" }); }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGetViewDateCalendar, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
33
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: IgxGetViewDateCalendar, isStandalone: true, name: "IgxGetViewDate" }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGetViewDateCalendar, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGetViewDateCalendar, decorators: [{
36
36
  type: Pipe,
37
37
  args: [{
38
38
  name: 'IgxGetViewDate',
39
39
  standalone: true
40
40
  }]
41
41
  }], ctorParameters: function () { return []; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhzLXZpZXcucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aHMtdmlldy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRXRDOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixTQUFTLENBQUMsVUFBa0I7UUFDL0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO21IQUhRLHlCQUF5QjtpSEFBekIseUJBQXlCOztnR0FBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFPRDs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFFL0I7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUlNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBYyxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7bUhBWFEsc0JBQXNCO2lIQUF0QixzQkFBc0I7O2dHQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICcuL2NhbGVuZGFyJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnSWd4TW9udGhWaWV3U2xvdHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4TW9udGhWaWV3U2xvdHNDYWxlbmRhciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0obW9udGhWaWV3czogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkobW9udGhWaWV3cyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdJZ3hHZXRWaWV3RGF0ZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHZXRWaWV3RGF0ZUNhbGVuZGFyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBjYWxlbmRhcjogQ2FsZW5kYXI7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHZpZXdEYXRlOiBEYXRlKTogRGF0ZTtcbiAgICBwdWJsaWMgdHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHZpZXdEYXRlOiBEYXRlLCB3aG9sZURhdGU6IGZhbHNlKTogbnVtYmVyO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0oaW5kZXg6IG51bWJlciwgdmlld0RhdGU6IERhdGUsIHdob2xlRGF0ZSA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY2FsZW5kYXIudGltZWRlbHRhKHZpZXdEYXRlLCAnbW9udGgnLCBpbmRleCk7XG4gICAgICAgIHJldHVybiB3aG9sZURhdGUgPyBkYXRlIDogZGF0ZS5nZXRNb250aCgpO1xuICAgIH1cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhzLXZpZXcucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aHMtdmlldy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRXRDOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixTQUFTLENBQUMsVUFBa0I7UUFDL0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQUhRLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFPRDs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFFL0I7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUlNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBYyxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBWFEsc0JBQXNCOzRHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICcuL2NhbGVuZGFyJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnSWd4TW9udGhWaWV3U2xvdHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4TW9udGhWaWV3U2xvdHNDYWxlbmRhciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0obW9udGhWaWV3czogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkobW9udGhWaWV3cyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdJZ3hHZXRWaWV3RGF0ZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHZXRWaWV3RGF0ZUNhbGVuZGFyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBjYWxlbmRhcjogQ2FsZW5kYXI7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHZpZXdEYXRlOiBEYXRlKTogRGF0ZTtcbiAgICBwdWJsaWMgdHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHZpZXdEYXRlOiBEYXRlLCB3aG9sZURhdGU6IGZhbHNlKTogbnVtYmVyO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0oaW5kZXg6IG51bWJlciwgdmlld0RhdGU6IERhdGUsIHdob2xlRGF0ZSA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY2FsZW5kYXIudGltZWRlbHRhKHZpZXdEYXRlLCAnbW9udGgnLCBpbmRleCk7XG4gICAgICAgIHJldHVybiB3aG9sZURhdGUgPyBkYXRlIDogZGF0ZS5nZXRNb250aCgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -13,10 +13,10 @@ export class CalendarHammerConfig extends HammerGestureConfig {
13
13
  pan: { direction: Hammer.DIRECTION_VERTICAL, threshold: 1 }
14
14
  };
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: CalendarHammerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
17
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: CalendarHammerConfig }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CalendarHammerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CalendarHammerConfig }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: CalendarHammerConfig, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CalendarHammerConfig, decorators: [{
20
20
  type: Injectable
21
21
  }] });
22
22
  export class IgxYearsViewComponent {
@@ -249,8 +249,8 @@ export class IgxYearsViewComponent {
249
249
  }
250
250
  this.date = this._calendarModel.timedelta(this.date, 'year', delta);
251
251
  }
252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxYearsViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
253
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxYearsViewComponent, isStandalone: true, selector: "igx-years-view", inputs: { formatView: "formatView", date: "date", yearFormat: "yearFormat", locale: "locale" }, outputs: { selected: "selected" }, host: { listeners: { "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.enter": "onKeydownEnter()" }, properties: { "class.igx-calendar": "this.styleClass" } }, providers: [
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxYearsViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxYearsViewComponent, isStandalone: true, selector: "igx-years-view", inputs: { formatView: "formatView", date: "date", yearFormat: "yearFormat", locale: "locale" }, outputs: { selected: "selected" }, host: { listeners: { "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.enter": "onKeydownEnter()" }, properties: { "class.igx-calendar": "this.styleClass" } }, providers: [
254
254
  {
255
255
  provide: NG_VALUE_ACCESSOR,
256
256
  useExisting: IgxYearsViewComponent,
@@ -262,7 +262,7 @@ export class IgxYearsViewComponent {
262
262
  }
263
263
  ], viewQueries: [{ propertyName: "calendarDir", predicate: IgxCalendarYearDirective, descendants: true, read: IgxCalendarYearDirective }], ngImport: i0, template: "<div class=\"igx-calendar__body\">\n <div class=\"igx-calendar__body-column\" (wheel)=\"scroll($event)\" (pan)=\"pan($event)\">\n <span class=\"igx-calendar__year\"\n [igxCalendarYear]=\"year\"\n [date]=\"date\"\n (yearSelection)=\"selectYear($event)\"\n *ngFor=\"let year of decade; trackBy: yearTracker\">\n\n {{ formattedYear(year) }}\n </span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarYearDirective, selector: "[igxCalendarYear]", inputs: ["igxCalendarYear", "date"], outputs: ["yearSelection"] }] }); }
264
264
  }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxYearsViewComponent, decorators: [{
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxYearsViewComponent, decorators: [{
266
266
  type: Component,
267
267
  args: [{ providers: [
268
268
  {
@@ -301,4 +301,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
301
301
  type: HostListener,
302
302
  args: ['keydown.enter']
303
303
  }] } });
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIveWVhcnMtdmlldy95ZWFycy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci95ZWFycy12aWV3L3llYXJzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLFVBQVUsRUFDVixZQUFZLEVBRWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUd4QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBRDdEOztRQUVvQixjQUFTLEdBQUc7WUFDeEIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1NBQzlELENBQUM7S0FDTDttSEFKWSxvQkFBb0I7dUhBQXBCLG9CQUFvQjs7Z0dBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7QUF3QlgsTUFB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ZCxLQUFLO2dCQW1CSyxVQUFVO3NCQURwQixLQUFLO2dCQTRCSyxNQUFNO3NCQURoQixLQUFLO2dCQWlEQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYXRDLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhcEMsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RhYmxlLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByYW5nZSwgQ2FsZW5kYXIgfSBmcm9tICcuLi9jYWxlbmRhcic7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIYW1tZXJHZXN0dXJlQ29uZmlnLCBIQU1NRVJfR0VTVFVSRV9DT05GSUcgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IElneENhbGVuZGFyWWVhckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NhbGVuZGFyLmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIYW1tZXJDb25maWcgZXh0ZW5kcyBIYW1tZXJHZXN0dXJlQ29uZmlnIHtcbiAgICBwdWJsaWMgb3ZlcnJpZGUgb3ZlcnJpZGVzID0ge1xuICAgICAgICBwYW46IHsgZGlyZWN0aW9uOiBIYW1tZXIuRElSRUNUSU9OX1ZFUlRJQ0FMLCB0aHJlc2hvbGQ6IDEgfVxuICAgIH07XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJZ3hZZWFyc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBIQU1NRVJfR0VTVFVSRV9DT05GSUcsXG4gICAgICAgICAgICB1c2VDbGFzczogQ2FsZW5kYXJIYW1tZXJDb25maWdcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc2VsZWN0b3I6ICdpZ3gteWVhcnMtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICd5ZWFycy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgSWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hZZWFyc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIHllYXJGb3JtYXQsIGlmIGFueS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtYXRWaWV3OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiBhIHNlbGVjdGlvbiBpcyBtYWRlIGluIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIFByb3ZpZGVzIHJlZmVyZW5jZSB0aGUgYGRhdGVgIHByb3BlcnR5IGluIHRoZSBgSWd4WWVhcnNWaWV3Q29tcG9uZW50YC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IChzZWxlY3RlZCk9XCJvblNlbGVjdGlvbigkZXZlbnQpXCI+PC9pZ3gteWVhcnMtdmlldz5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hZZWFyc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBjc3MgY2xhc3MgYXBwbGllZCB0byB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhbGVuZGFyJylcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hDYWxlbmRhclllYXJEaXJlY3RpdmUsIHsgcmVhZDogSWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIGNhbGVuZGFyRGlyOiBRdWVyeUxpc3Q8SWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtYXR0ZXJZZWFyOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlID0gJ2VuJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF95ZWFyRm9ybWF0ID0gJ251bWVyaWMnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NhbGVuZGFyTW9kZWw6IENhbGVuZGFyO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYXRlID0gbmV3IERhdGUoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKF86IERhdGUpID0+IHZvaWQgPSBub29wO1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBzZWxlY3RlZCBkYXRlIG9mIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgaXMgdGhlIGN1cnJlbnQgZGF0ZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IFtkYXRlXT1cIm15RGF0ZVwiPjwvaWd4LXllYXJzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBkYXRlID0gIHRoaXMueWVhcnNWaWV3LmRhdGU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4WWVhcnNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHllYXIgZm9ybWF0IG9wdGlvbiBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHllYXJGb3JtYXQgPSB0aGlzLnllYXJzVmlldy55ZWFyRm9ybWF0LlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB5ZWFyRm9ybWF0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl95ZWFyRm9ybWF0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHllYXIgZm9ybWF0IG9wdGlvbiBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IFt5ZWFyRm9ybWF0XT1cIm51bWVyaWNcIj48L2lneC15ZWFycy12aWV3PlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFllYXJzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgeWVhckZvcm1hdCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3llYXJGb3JtYXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0WWVhckZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwiZW5cImAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsb2NhbGUgPSAgdGhpcy55ZWFyc1ZpZXcubG9jYWxlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFllYXJzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBFeHBlY3RzIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImVuXCJgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXllYXJzLXZpZXcgW2xvY2FsZV09XCJkZVwiPjwvaWd4LXllYXJzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4WWVhcnNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0WWVhckZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgZGF0ZSBvYmplY3RzIHdoaWNoIGFyZSB0aGVuIHVzZWQgdG8gcHJvcGVybHlcbiAgICAgKiByZW5kZXIgdGhlIHllYXJzLlxuICAgICAqXG4gICAgICogVXNlZCBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRlY2FkZSgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBEYXRlW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSAtIDM7XG4gICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpICsgNDtcblxuICAgICAgICBmb3IgKGNvbnN0IHllYXIgb2YgcmFuZ2Uoc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBEYXRlKHllYXIsIHRoaXMuZGF0ZS5nZXRNb250aCgpLCB0aGlzLmRhdGUuZ2V0RGF0ZSgpKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLmluaXRZZWFyRm9ybWF0dGVyKCk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyTW9kZWwgPSBuZXcgQ2FsZW5kYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5nZW5lcmF0ZVllYXJSYW5nZSgxKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRpci5maW5kKGRhdGUgPT4gZGF0ZS5pc0N1cnJlbnRZZWFyKS5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVZZWFyUmFuZ2UoLTEpO1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGlyLmZpbmQoZGF0ZSA9PiBkYXRlLmlzQ3VycmVudFllYXIpLm5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcbiAgICBwdWJsaWMgb25LZXlkb3duRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbG9jYWxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB5ZWFyIGluIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZWRZZWFyKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0Vmlldykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlclllYXIuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7dmFsdWUuZ2V0RnVsbFllYXIoKX1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0WWVhcihldmVudCkge1xuICAgICAgICB0aGlzLmRhdGUgPSBldmVudDtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy5kYXRlKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLmRhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZXZlbnQuZGVsdGFZIDwgMCA/IC0xIDogMTtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVllYXJSYW5nZShkZWx0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBwYW4oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBldmVudC5kZWx0YVkgPCAwID8gMSA6IC0xO1xuICAgICAgICB0aGlzLmdlbmVyYXRlWWVhclJhbmdlKGRlbHRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBEYXRlKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB5ZWFyVHJhY2tlcihpbmRleCwgaXRlbSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtpdGVtLmdldEZ1bGxZZWFyKCl9fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0WWVhckZvcm1hdHRlcigpIHtcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyWWVhciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyB5ZWFyOiB0aGlzLnllYXJGb3JtYXQgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZ2VuZXJhdGVZZWFyUmFuZ2UoZGVsdGE6IG51bWJlcikge1xuICAgICAgICBjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICBpZiAoKGRlbHRhID4gMCAmJiB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSAtIGN1cnJlbnRZZWFyID49IDk1KSB8fFxuICAgICAgICAgICAgKGRlbHRhIDwgMCAmJiBjdXJyZW50WWVhciAtIHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpID49IDk1KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuX2NhbGVuZGFyTW9kZWwudGltZWRlbHRhKHRoaXMuZGF0ZSwgJ3llYXInLCBkZWx0YSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1jYWxlbmRhcl9fYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2JvZHktY29sdW1uXCIgKHdoZWVsKT1cInNjcm9sbCgkZXZlbnQpXCIgKHBhbik9XCJwYW4oJGV2ZW50KVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1jYWxlbmRhcl9feWVhclwiXG4gICAgICAgICAgICBbaWd4Q2FsZW5kYXJZZWFyXT1cInllYXJcIlxuICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZVwiXG4gICAgICAgICAgICAoeWVhclNlbGVjdGlvbik9XCJzZWxlY3RZZWFyKCRldmVudClcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgZGVjYWRlOyB0cmFja0J5OiB5ZWFyVHJhY2tlclwiPlxuXG4gICAgICAgICAgICB7eyBmb3JtYXR0ZWRZZWFyKHllYXIpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIveWVhcnMtdmlldy95ZWFycy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci95ZWFycy12aWV3L3llYXJzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLFVBQVUsRUFDVixZQUFZLEVBRWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUd4QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBRDdEOztRQUVvQixjQUFTLEdBQUc7WUFDeEIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1NBQzlELENBQUM7S0FDTDs4R0FKWSxvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7QUF3QlgsTUFB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ZCxLQUFLO2dCQW1CSyxVQUFVO3NCQURwQixLQUFLO2dCQTRCSyxNQUFNO3NCQURoQixLQUFLO2dCQWlEQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYXRDLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhcEMsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RhYmxlLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByYW5nZSwgQ2FsZW5kYXIgfSBmcm9tICcuLi9jYWxlbmRhcic7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIYW1tZXJHZXN0dXJlQ29uZmlnLCBIQU1NRVJfR0VTVFVSRV9DT05GSUcgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IElneENhbGVuZGFyWWVhckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NhbGVuZGFyLmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIYW1tZXJDb25maWcgZXh0ZW5kcyBIYW1tZXJHZXN0dXJlQ29uZmlnIHtcbiAgICBwdWJsaWMgb3ZlcnJpZGUgb3ZlcnJpZGVzID0ge1xuICAgICAgICBwYW46IHsgZGlyZWN0aW9uOiBIYW1tZXIuRElSRUNUSU9OX1ZFUlRJQ0FMLCB0aHJlc2hvbGQ6IDEgfVxuICAgIH07XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJZ3hZZWFyc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBIQU1NRVJfR0VTVFVSRV9DT05GSUcsXG4gICAgICAgICAgICB1c2VDbGFzczogQ2FsZW5kYXJIYW1tZXJDb25maWdcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc2VsZWN0b3I6ICdpZ3gteWVhcnMtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICd5ZWFycy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgSWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hZZWFyc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIHllYXJGb3JtYXQsIGlmIGFueS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtYXRWaWV3OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiBhIHNlbGVjdGlvbiBpcyBtYWRlIGluIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIFByb3ZpZGVzIHJlZmVyZW5jZSB0aGUgYGRhdGVgIHByb3BlcnR5IGluIHRoZSBgSWd4WWVhcnNWaWV3Q29tcG9uZW50YC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IChzZWxlY3RlZCk9XCJvblNlbGVjdGlvbigkZXZlbnQpXCI+PC9pZ3gteWVhcnMtdmlldz5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hZZWFyc1ZpZXdDb21wb25lbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBjc3MgY2xhc3MgYXBwbGllZCB0byB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhbGVuZGFyJylcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hDYWxlbmRhclllYXJEaXJlY3RpdmUsIHsgcmVhZDogSWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIGNhbGVuZGFyRGlyOiBRdWVyeUxpc3Q8SWd4Q2FsZW5kYXJZZWFyRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtYXR0ZXJZZWFyOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlID0gJ2VuJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF95ZWFyRm9ybWF0ID0gJ251bWVyaWMnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NhbGVuZGFyTW9kZWw6IENhbGVuZGFyO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYXRlID0gbmV3IERhdGUoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKF86IERhdGUpID0+IHZvaWQgPSBub29wO1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBzZWxlY3RlZCBkYXRlIG9mIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgaXMgdGhlIGN1cnJlbnQgZGF0ZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IFtkYXRlXT1cIm15RGF0ZVwiPjwvaWd4LXllYXJzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBkYXRlID0gIHRoaXMueWVhcnNWaWV3LmRhdGU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4WWVhcnNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHllYXIgZm9ybWF0IG9wdGlvbiBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHllYXJGb3JtYXQgPSB0aGlzLnllYXJzVmlldy55ZWFyRm9ybWF0LlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB5ZWFyRm9ybWF0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl95ZWFyRm9ybWF0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHllYXIgZm9ybWF0IG9wdGlvbiBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC15ZWFycy12aWV3IFt5ZWFyRm9ybWF0XT1cIm51bWVyaWNcIj48L2lneC15ZWFycy12aWV3PlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFllYXJzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgeWVhckZvcm1hdCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3llYXJGb3JtYXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0WWVhckZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwiZW5cImAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsb2NhbGUgPSAgdGhpcy55ZWFyc1ZpZXcubG9jYWxlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFllYXJzVmlld0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgeWVhcnMgdmlldy5cbiAgICAgKiBFeHBlY3RzIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImVuXCJgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXllYXJzLXZpZXcgW2xvY2FsZV09XCJkZVwiPjwvaWd4LXllYXJzLXZpZXc+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4WWVhcnNWaWV3Q29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0WWVhckZvcm1hdHRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgZGF0ZSBvYmplY3RzIHdoaWNoIGFyZSB0aGVuIHVzZWQgdG8gcHJvcGVybHlcbiAgICAgKiByZW5kZXIgdGhlIHllYXJzLlxuICAgICAqXG4gICAgICogVXNlZCBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRlY2FkZSgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBEYXRlW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSAtIDM7XG4gICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpICsgNDtcblxuICAgICAgICBmb3IgKGNvbnN0IHllYXIgb2YgcmFuZ2Uoc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBEYXRlKHllYXIsIHRoaXMuZGF0ZS5nZXRNb250aCgpLCB0aGlzLmRhdGUuZ2V0RGF0ZSgpKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLmluaXRZZWFyRm9ybWF0dGVyKCk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyTW9kZWwgPSBuZXcgQ2FsZW5kYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5nZW5lcmF0ZVllYXJSYW5nZSgxKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRpci5maW5kKGRhdGUgPT4gZGF0ZS5pc0N1cnJlbnRZZWFyKS5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleWRvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVZZWFyUmFuZ2UoLTEpO1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGlyLmZpbmQoZGF0ZSA9PiBkYXRlLmlzQ3VycmVudFllYXIpLm5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcbiAgICBwdWJsaWMgb25LZXlkb3duRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbG9jYWxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB5ZWFyIGluIHRoZSB5ZWFycyB2aWV3LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZWRZZWFyKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0Vmlldykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlclllYXIuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7dmFsdWUuZ2V0RnVsbFllYXIoKX1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0WWVhcihldmVudCkge1xuICAgICAgICB0aGlzLmRhdGUgPSBldmVudDtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy5kYXRlKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLmRhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZXZlbnQuZGVsdGFZIDwgMCA/IC0xIDogMTtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVllYXJSYW5nZShkZWx0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBwYW4oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBldmVudC5kZWx0YVkgPCAwID8gMSA6IC0xO1xuICAgICAgICB0aGlzLmdlbmVyYXRlWWVhclJhbmdlKGRlbHRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBEYXRlKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB5ZWFyVHJhY2tlcihpbmRleCwgaXRlbSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtpdGVtLmdldEZ1bGxZZWFyKCl9fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0WWVhckZvcm1hdHRlcigpIHtcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyWWVhciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyB5ZWFyOiB0aGlzLnllYXJGb3JtYXQgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZ2VuZXJhdGVZZWFyUmFuZ2UoZGVsdGE6IG51bWJlcikge1xuICAgICAgICBjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICBpZiAoKGRlbHRhID4gMCAmJiB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSAtIGN1cnJlbnRZZWFyID49IDk1KSB8fFxuICAgICAgICAgICAgKGRlbHRhIDwgMCAmJiBjdXJyZW50WWVhciAtIHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpID49IDk1KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuX2NhbGVuZGFyTW9kZWwudGltZWRlbHRhKHRoaXMuZGF0ZSwgJ3llYXInLCBkZWx0YSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1jYWxlbmRhcl9fYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2JvZHktY29sdW1uXCIgKHdoZWVsKT1cInNjcm9sbCgkZXZlbnQpXCIgKHBhbik9XCJwYW4oJGV2ZW50KVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1jYWxlbmRhcl9feWVhclwiXG4gICAgICAgICAgICBbaWd4Q2FsZW5kYXJZZWFyXT1cInllYXJcIlxuICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZVwiXG4gICAgICAgICAgICAoeWVhclNlbGVjdGlvbik9XCJzZWxlY3RZZWFyKCRldmVudClcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgZGVjYWRlOyB0cmFja0J5OiB5ZWFyVHJhY2tlclwiPlxuXG4gICAgICAgICAgICB7eyBmb3JtYXR0ZWRZZWFyKHllYXIpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -35,10 +35,10 @@ export class IgxCardMediaDirective {
35
35
  */
36
36
  this.role = 'img';
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardMediaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardMediaDirective, isStandalone: true, selector: "igx-card-media", inputs: { width: "width", height: "height", role: "role" }, host: { properties: { "class.igx-card__media": "this.cssClass", "style.width": "this.width", "style.min-width": "this.width", "style.height": "this.height", "attr.role": "this.role" } }, ngImport: i0 }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardMediaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardMediaDirective, isStandalone: true, selector: "igx-card-media", inputs: { width: "width", height: "height", role: "role" }, host: { properties: { "class.igx-card__media": "this.cssClass", "style.width": "this.width", "style.min-width": "this.width", "style.height": "this.height", "attr.role": "this.role" } }, ngImport: i0 }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardMediaDirective, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardMediaDirective, decorators: [{
42
42
  type: Directive,
43
43
  args: [{
44
44
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -85,10 +85,10 @@ export class IgxCardHeaderComponent {
85
85
  */
86
86
  this.vertical = false;
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardHeaderComponent, isStandalone: true, selector: "igx-card-header", inputs: { vertical: "vertical" }, host: { properties: { "class.igx-card-header": "this.cssClass", "class.igx-card-header--vertical": "this.vertical" } }, ngImport: i0, template: "<div class=\"igx-card-header__thumbnail\">\n <ng-content select=\"igx-avatar, igx-card-media, [igxCardThumbnail]\"></ng-content>\n</div>\n\n<div class=\"igx-card-header__titles\">\n <ng-content select=\"\n [igxCardHeaderTitle],\n [igxCardHeaderSubtitle],\n .igx-card-header__title,\n .igx-card-header__subtitle\">\n </ng-content>\n</div>\n\n<ng-content></ng-content>\n" }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardHeaderComponent, isStandalone: true, selector: "igx-card-header", inputs: { vertical: "vertical" }, host: { properties: { "class.igx-card-header": "this.cssClass", "class.igx-card-header--vertical": "this.vertical" } }, ngImport: i0, template: "<div class=\"igx-card-header__thumbnail\">\n <ng-content select=\"igx-avatar, igx-card-media, [igxCardThumbnail]\"></ng-content>\n</div>\n\n<div class=\"igx-card-header__titles\">\n <ng-content select=\"\n [igxCardHeaderTitle],\n [igxCardHeaderSubtitle],\n .igx-card-header__title,\n .igx-card-header__subtitle\">\n </ng-content>\n</div>\n\n<ng-content></ng-content>\n" }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{ selector: 'igx-card-header', standalone: true, template: "<div class=\"igx-card-header__thumbnail\">\n <ng-content select=\"igx-avatar, igx-card-media, [igxCardThumbnail]\"></ng-content>\n</div>\n\n<div class=\"igx-card-header__titles\">\n <ng-content select=\"\n [igxCardHeaderTitle],\n [igxCardHeaderSubtitle],\n .igx-card-header__title,\n .igx-card-header__subtitle\">\n </ng-content>\n</div>\n\n<ng-content></ng-content>\n" }]
94
94
  }], propDecorators: { cssClass: [{
@@ -105,10 +105,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
105
105
  * Use it to wrap anything you want to be used as a thumbnail.
106
106
  */
107
107
  export class IgxCardThumbnailDirective {
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardThumbnailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardThumbnailDirective, isStandalone: true, selector: "[igxCardThumbnail]", ngImport: i0 }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardThumbnailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardThumbnailDirective, isStandalone: true, selector: "[igxCardThumbnail]", ngImport: i0 }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardThumbnailDirective, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardThumbnailDirective, decorators: [{
112
112
  type: Directive,
113
113
  args: [{
114
114
  selector: '[igxCardThumbnail]',
@@ -124,10 +124,10 @@ export class IgxCardHeaderTitleDirective {
124
124
  /** @hidden @internal */
125
125
  this.cssClass = 'igx-card__header__title';
126
126
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
128
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardHeaderTitleDirective, isStandalone: true, selector: "[igxCardHeaderTitle]", host: { properties: { "class.igx-card-header__title": "this.cssClass" } }, ngImport: i0 }); }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
128
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardHeaderTitleDirective, isStandalone: true, selector: "[igxCardHeaderTitle]", host: { properties: { "class.igx-card-header__title": "this.cssClass" } }, ngImport: i0 }); }
129
129
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderTitleDirective, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderTitleDirective, decorators: [{
131
131
  type: Directive,
132
132
  args: [{
133
133
  selector: '[igxCardHeaderTitle]',
@@ -146,10 +146,10 @@ export class IgxCardHeaderSubtitleDirective {
146
146
  /** @hidden @internal */
147
147
  this.cssClass = 'igx-card-header__subtitle';
148
148
  }
149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderSubtitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
150
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardHeaderSubtitleDirective, isStandalone: true, selector: "[igxCardHeaderSubtitle]", host: { properties: { "class.igx-card-header__subtitle": "this.cssClass" } }, ngImport: i0 }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderSubtitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardHeaderSubtitleDirective, isStandalone: true, selector: "[igxCardHeaderSubtitle]", host: { properties: { "class.igx-card-header__subtitle": "this.cssClass" } }, ngImport: i0 }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardHeaderSubtitleDirective, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardHeaderSubtitleDirective, decorators: [{
153
153
  type: Directive,
154
154
  args: [{
155
155
  selector: '[igxCardHeaderSubtitle]',
@@ -167,10 +167,10 @@ export class IgxCardContentDirective {
167
167
  /** @hidden @internal */
168
168
  this.cssClass = 'igx-card-content';
169
169
  }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
171
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardContentDirective, isStandalone: true, selector: "igx-card-content", host: { properties: { "class.igx-card-content": "this.cssClass" } }, ngImport: i0 }); }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
171
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardContentDirective, isStandalone: true, selector: "igx-card-content", host: { properties: { "class.igx-card-content": "this.cssClass" } }, ngImport: i0 }); }
172
172
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardContentDirective, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardContentDirective, decorators: [{
174
174
  type: Directive,
175
175
  args: [{
176
176
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -197,10 +197,10 @@ export class IgxCardFooterDirective {
197
197
  */
198
198
  this.role = 'footer';
199
199
  }
200
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
201
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardFooterDirective, isStandalone: true, selector: "igx-card-footer", inputs: { role: "role" }, host: { properties: { "attr.role": "this.role" } }, ngImport: i0 }); }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
201
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardFooterDirective, isStandalone: true, selector: "igx-card-footer", inputs: { role: "role" }, host: { properties: { "attr.role": "this.role" } }, ngImport: i0 }); }
202
202
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardFooterDirective, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardFooterDirective, decorators: [{
204
204
  type: Directive,
205
205
  args: [{
206
206
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -300,10 +300,10 @@ export class IgxCardComponent {
300
300
  get isOutlinedCard() {
301
301
  return this.type === IgxCardType.OUTLINED;
302
302
  }
303
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
304
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardComponent, isStandalone: true, selector: "igx-card", inputs: { id: "id", role: "role", type: "type", horizontal: "horizontal" }, host: { properties: { "attr.id": "this.id", "attr.role": "this.role", "class.igx-card": "this.type", "class.igx-card--outlined": "this.isOutlinedCard", "class.igx-card--horizontal": "this.horizontal" } }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardComponent, isStandalone: true, selector: "igx-card", inputs: { id: "id", role: "role", type: "type", horizontal: "horizontal" }, host: { properties: { "attr.id": "this.id", "attr.role": "this.role", "class.igx-card": "this.type", "class.igx-card--outlined": "this.isOutlinedCard", "class.igx-card--horizontal": "this.horizontal" } }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
305
305
  }
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardComponent, decorators: [{
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardComponent, decorators: [{
307
307
  type: Component,
308
308
  args: [{ selector: 'igx-card', standalone: true, template: "<ng-content></ng-content>\n" }]
309
309
  }], propDecorators: { id: [{
@@ -397,10 +397,10 @@ export class IgxCardActionsComponent {
397
397
  this.vertical = true;
398
398
  }
399
399
  }
400
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardActionsComponent, deps: [{ token: IgxCardComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
401
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxCardActionsComponent, isStandalone: true, selector: "igx-card-actions", inputs: { layout: "layout", vertical: "vertical", reverse: "reverse" }, host: { properties: { "class.igx-card-actions": "this.layout", "class.igx-card-actions--vertical": "this.vertical", "class.igx-card-actions--justify": "this.isJustifyLayout", "class.igx-card-actions--reverse": "this.reverse" } }, usesOnChanges: true, ngImport: i0, template: "<div #buttons class=\"igx-card-actions__start\">\n <ng-content select=\"[igxStart], [igxButton]:not([igxButton='icon']):not([igxEnd])\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n\n<div class=\"igx-card-actions__end\">\n <ng-content select=\"[igxEnd], [igxButton='icon']:not([igxStart]), igx-icon:not([igxStart])\"></ng-content>\n</div>\n" }); }
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardActionsComponent, deps: [{ token: IgxCardComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxCardActionsComponent, isStandalone: true, selector: "igx-card-actions", inputs: { layout: "layout", vertical: "vertical", reverse: "reverse" }, host: { properties: { "class.igx-card-actions": "this.layout", "class.igx-card-actions--vertical": "this.vertical", "class.igx-card-actions--justify": "this.isJustifyLayout", "class.igx-card-actions--reverse": "this.reverse" } }, usesOnChanges: true, ngImport: i0, template: "<div #buttons class=\"igx-card-actions__start\">\n <ng-content select=\"[igxStart], [igxButton]:not([igxButton='icon']):not([igxEnd])\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n\n<div class=\"igx-card-actions__end\">\n <ng-content select=\"[igxEnd], [igxButton='icon']:not([igxStart]), igx-icon:not([igxStart])\"></ng-content>\n</div>\n" }); }
402
402
  }
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxCardActionsComponent, decorators: [{
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCardActionsComponent, decorators: [{
404
404
  type: Component,
405
405
  args: [{ selector: 'igx-card-actions', standalone: true, template: "<div #buttons class=\"igx-card-actions__start\">\n <ng-content select=\"[igxStart], [igxButton]:not([igxButton='icon']):not([igxEnd])\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n\n<div class=\"igx-card-actions__end\">\n <ng-content select=\"[igxEnd], [igxButton='icon']:not([igxStart]), igx-icon:not([igxStart])\"></ng-content>\n</div>\n" }]
406
406
  }], ctorParameters: function () { return [{ type: IgxCardComponent, decorators: [{
@@ -427,4 +427,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
427
427
  }, {
428
428
  type: Input
429
429
  }] } });
430
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJkL2NhcmQtaGVhZGVyLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJkL2NhcmQtYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNSSx3QkFBd0I7UUFFakIsYUFBUSxHQUFHLGlCQUFpQixDQUFDO1FBRXBDOzs7Ozs7OztXQVFHO1FBSUksVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUV0Qjs7Ozs7Ozs7V0FRRztRQUdJLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFFdkI7O1dBRUc7UUFHSSxTQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ3ZCO21IQXRDWSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs7Z0dBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJ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Ozs7Ozs7V0FVRztRQUdJLFdBQU0sR0FBa0Msb0JBQW9CLENBQUMsS0FBSyxDQUFDO1FBRTFFOzs7V0FHRztRQUdJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFXeEI7Ozs7Ozs7OztXQVNHO1FBR0ksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXFELENBQUM7SUFFcEY7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxFQUFFO1lBQ3hCLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDN0I7U0FDSjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDTCxDQUFDO21IQXZFUSx1QkFBdUIsa0JBaURBLGdCQUFnQjt1R0FqRHZDLHVCQUF1QiwrWUdqU3BDLG1XQVNBOztnR0h3UmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUVJLGtCQUFrQixjQUVoQixJQUFJOzswQkFtREgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBbkN6QyxNQUFNO3NCQUZaLFdBQVc7dUJBQUMsd0JBQXdCOztzQkFDcEMsS0FBSztnQkFTQyxRQUFRO3NCQUZkLFdBQVc7dUJBQUMsa0NBQWtDOztzQkFDOUMsS0FBSztnQkFRSyxlQUFlO3NCQUR6QixXQUFXO3VCQUFDLGlDQUFpQztnQkFpQnZDLE9BQU87c0JBRmIsV0FBVzt1QkFBQyxpQ0FBaUM7O3NCQUM3QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSWd4Q2FyZE1lZGlhIGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgbWVkaWEgc2VjdGlvbi5cbiAqIFVzZSBpdCB0byB3cmFwIGltYWdlcyBhbmQgdmlkZW9zLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaWd4LWNhcmQtbWVkaWEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZE1lZGlhRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkX19tZWRpYScpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1jYXJkX19tZWRpYSc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBgd2lkdGhgIGFuZCBgbWluLXdpZHRoYCBzdHlsZSBwcm9wZXJ0eVxuICAgICAqIG9mIHRoZSBtZWRpYSBjb250YWluZXIuIElmIG5vdCBwcm92aWRlZCBpdCB3aWxsIGJlIHNldCB0byBgYXV0b2AuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNhcmQtbWVkaWEgd2lkdGg9XCIzMDBweFwiPjwvaWd4LWNhcmQtbWVkaWE+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoID0gJ2F1dG8nO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgYGhlaWdodGAgc3R5bGUgcHJvcGVydHkgb2YgdGhlIG1lZGlhIGNvbnRhaW5lci5cbiAgICAgKiBJZiBub3QgcHJvdmlkZWQgaXQgd2lsbCBiZSBzZXQgdG8gYGF1dG9gLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkLW1lZGlhIGhlaWdodD1cIjUwJVwiPjwvaWd4LWNhcmQtbWVkaWE+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodCA9ICdhdXRvJztcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIG1lZGlhIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9sZSA9ICdpbWcnO1xufVxuXG4vKipcbiAqIElneENhcmRIZWFkZXIgaXMgY29udGFpbmVyIGZvciB0aGUgY2FyZCBoZWFkZXJcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtY2FyZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FyZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZEhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1oZWFkZXInKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtY2FyZC1oZWFkZXInO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgbGF5b3V0IHN0eWxlIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgaGVhZGVyIGVsZW1lbnRzKHRodW1ibmFpbCBhbmQgdGl0bGUvc3VidGl0bGUpIGFyZSBhbGlnbmVkIGhvcml6b250YWxseS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1oZWFkZXIgW3ZlcnRpY2FsXT1cInRydWVcIj48L2lneC1jYXJkLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWhlYWRlci0tdmVydGljYWwnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZlcnRpY2FsID0gZmFsc2U7XG59XG5cbi8qKlxuICogSWd4Q2FyZFRodW1ibmFpbCBpcyBjb250YWluZXIgZm9yIHRoZSBjYXJkIHRodW1ibmFpbCBzZWN0aW9uLlxuICogVXNlIGl0IHRvIHdyYXAgYW55dGhpbmcgeW91IHdhbnQgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2FyZFRodW1ibmFpbF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZFRodW1ibmFpbERpcmVjdGl2ZSB7IH1cblxuLyoqXG4gKiBpZ3hDYXJkSGVhZGVyVGl0bGUgaXMgdXNlZCB0byBkZW5vdGUgdGhlIGhlYWRlciB0aXRsZSBpbiBhIGNhcmQuXG4gKiBVc2UgaXQgdG8gdGFnIHRleHQgbm9kZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneENhcmRIZWFkZXJUaXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZEhlYWRlclRpdGxlRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWhlYWRlcl9fdGl0bGUnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtY2FyZF9faGVhZGVyX190aXRsZSc7XG59XG5cbi8qKlxuICogaWd4Q2FyZEhlYWRlclN1YnRpdGxlIGlzIHVzZWQgdG8gZGVub3RlIHRoZSBoZWFkZXIgc3VidGl0bGUgaW4gYSBjYXJkLlxuICogVXNlIGl0IHRvIHRhZyB0ZXh0IG5vZGVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDYXJkSGVhZGVyU3VidGl0bGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRIZWFkZXJTdWJ0aXRsZURpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1oZWFkZXJfX3N1YnRpdGxlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWNhcmQtaGVhZGVyX19zdWJ0aXRsZSc7XG59XG4vKipcbiAqIElneENhcmRDb250ZW50IGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgY29udGVudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZENvbnRlbnREaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtY29udGVudCcpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1jYXJkLWNvbnRlbnQnO1xufVxuXG4vKipcbiAqIElneENhcmRGb290ZXIgaXMgY29udGFpbmVyIGZvciB0aGUgY2FyZCBmb290ZXJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWZvb3RlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hDYXJkRm9vdGVyRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYHJvbGVgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZCBmb290ZXIuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgc2V0IHRvIGBmb290ZXJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkLWZvb3RlciByb2xlPVwiZm9vdGVyXCI+PC9pZ3gtY2FyZC1mb290ZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvbGUgPSAnZm9vdGVyJztcbn1cblxuLyoqXG4gKiBDYXJkIHByb3ZpZGVzIGEgd2F5IHRvIGRpc3BsYXkgb3JnYW5pemVkIGNvbnRlbnQgaW4gYXBwZWFsaW5nIHdheS5cbiAqXG4gKiBAaWd4TW9kdWxlIElneENhcmRNb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LWNhcmQtdGhlbWUsIGlneC1pY29uLXRoZW1lLCBpZ3gtYnV0dG9uLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGNhcmQsIGJ1dHRvbiwgYXZhdGFyLCBpY29uXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIElnbml0ZSBVSSBDYXJkIHNlcnZlcyBhcyBhIGNvbnRhaW5lciB0aGF0IGFsbG93cyBjdXN0b20gY29udGVudCB0byBiZSBvcmdhbml6ZWQgaW4gYW4gYXBwZWFsaW5nIHdheS4gVGhlcmUgYXJlXG4gKiBmaXZlIHNlY3Rpb25zIGluIGEgY2FyZCB0aGF0IHlvdSBjYW4gdXNlIHRvIG9yZ2FuaXplIHlvdXIgY29udGVudC4gVGhlc2UgYXJlIGhlYWRlciwgbWVkaWEsIGNvbnRlbnQsIGFjdGlvbnMsIGFuZCBmb290ZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtY2FyZD5cbiAqICAgPGlneC1jYXJkLWhlYWRlcj5cbiAqICAgICA8aDMgaWd4Q2FyZEhlYWRlclRpdGxlPnt7dGl0bGV9fTwvaDM+XG4gKiAgICAgPGg1IGlneENhcmRIZWFkZXJTdWJ0aXRsZT57e3N1YnRpdGxlfX08L2g1PlxuICogICA8L2lneC1jYXJkLWhlYWRlcj5cbiAqICAgPGlneC1jYXJkLWFjdGlvbnM+XG4gKiAgICAgICA8YnV0dG9uIGlneEJ1dHRvbiBpZ3hSaXBwbGU+U2hhcmU8L2J1dHRvbj5cbiAqICAgICAgIDxidXR0b24gaWd4QnV0dG9uIGlneFJpcHBsZT5QbGF5IEFsYnVtPC9idXR0b24+XG4gKiAgIDwvaWd4LWNhcmQtYWN0aW9ucz5cbiAqIDwvaWd4LWNhcmQ+XG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgY29uc3QgSWd4Q2FyZFR5cGUgPSBta2VudW0oe1xuICAgIEVMRVZBVEVEOiAnZWxldmF0ZWQnLFxuICAgIE9VVExJTkVEOiAnb3V0bGluZWQnXG59KTtcbmV4cG9ydCB0eXBlIElneENhcmRUeXBlID0gKHR5cGVvZiBJZ3hDYXJkVHlwZSlba2V5b2YgdHlwZW9mIElneENhcmRUeXBlXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdjYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgY2FyZC5cbiAgICAgKiBJZiBub3Qgc2V0LCBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtY2FyZC0wXCJgO1xuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIGlkID0gXCJteS1maXJzdC1jYXJkXCI+PC9pZ3gtY2FyZD5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGNhcmRJZCA9ICB0aGlzLmNhcmQuaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtY2FyZC0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGNhcmQuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgc2V0IHRvIGBncm91cGAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNhcmQgcm9sZT1cImdyb3VwXCI+PC9pZ3gtY2FyZD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9sZSA9ICdncm91cCc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYHR5cGVgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZC5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSB2YWx1ZSBpcyBzZXQgdG8gYGVsZXZhdGVkYC4gWW91IGNhbiBtYWtlIHRoZSBjYXJkIHVzZSB0aGVcbiAgICAgKiBvdXRsaW5lZCBzdHlsZSBieSBzZXR0aW5nIHRoZSB2YWx1ZSB0byBgb3V0bGluZWRgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIHR5cGU9XCJvdXRsaW5lZFwiPjwvaWd4LWNhcmQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogSWd4Q2FyZFR5cGUgfCBzdHJpbmcgPSBJZ3hDYXJkVHlwZS5FTEVWQVRFRDtcblxuICAgIC8qKlxuICAgICAqIEEgZ2V0dGVyIHdoaWNoIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIGNhcmQgdHlwZSBpcyBgb3V0bGluZWRgLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtLW91dGxpbmVkJylcbiAgICBwdWJsaWMgZ2V0IGlzT3V0bGluZWRDYXJkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hDYXJkVHlwZS5PVVRMSU5FRDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYGhvcml6b250YWxgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZC5cbiAgICAgKiBTZXR0aW5nIHRoaXMgdG8gYHRydWVgIHdpbGwgbWFrZSB0aGUgZGlmZmVyZW50IGNhcmQgc2VjdGlvbnMgYWxpZ24gaG9yaXpvbnRhbGx5LFxuICAgICAqIGVzc2VudGlhbGx5IGZsaXBwaW5nIHRoZSBjYXJkIHRvIHRoZSBzaWRlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIFtob3Jpem9udGFsXT1cInRydWVcIj48L2lneC1jYXJkPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtLWhvcml6b250YWwnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvcml6b250YWwgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IElneENhcmRBY3Rpb25zTGF5b3V0ID0gbWtlbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBKVVNUSUZZOiAnanVzdGlmeSdcbn0pO1xuZXhwb3J0IHR5cGUgSWd4Q2FyZEFjdGlvbnNMYXlvdXQgPSAodHlwZW9mIElneENhcmRBY3Rpb25zTGF5b3V0KVtrZXlvZiB0eXBlb2YgSWd4Q2FyZEFjdGlvbnNMYXlvdXRdO1xuXG4vKipcbiAqIElneENhcmRBY3Rpb25zIGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FyZC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRBY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGxheW91dCBzdHlsZSBvZiB0aGUgYWN0aW9ucy5cbiAgICAgKiBZb3UgY2FuIGp1c3RpZnkgdGhlIGVsZW1lbnRzIHNsb3R0ZWQgaW4gdGhlIGlneC1jYXJkLWFjdGlvbiBjb250YWluZXJcbiAgICAgKiBzbyB0aGF0IHRoZXkgYXJlIHBvc2l0aW9uZWQgZXF1YWxseSBmcm9tIG9uZSBhbm90aGVyIHRha2luZyB1cCBhbGwgdGhlXG4gICAgICogc3BhY2UgYXZhaWxhYmxlIGFsb25nIHRoZSBjYXJkIGFjdGlvbnMgYXhpcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1hY3Rpb25zIGxheW91dD1cImp1c3RpZnlcIj48L2lneC1jYXJkLWFjdGlvbnM+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYXlvdXQ6IElneENhcmRBY3Rpb25zTGF5b3V0IHwgc3RyaW5nID0gSWd4Q2FyZEFjdGlvbnNMYXlvdXQuU1RBUlQ7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2ZXJ0aWNhbCBhdHRyaWJ1dGUgb2YgdGhlIGFjdGlvbnMuXG4gICAgICogV2hlbiBzZXQgdG8gYHRydWVgIHRoZSBhY3Rpb25zIHdpbGwgYmUgbGF5ZWQgb3V0IHZlcnRpY2FsbHkuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zLS12ZXJ0aWNhbCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmVydGljYWwgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEEgZ2V0dGVyIHRoYXQgcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgbGF5b3V0IGhhcyBiZWVuXG4gICAgICogc2V0IHRvIGBqdXN0aWZ5YC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWFjdGlvbnMtLWp1c3RpZnknKVxuICAgIHB1YmxpYyBnZXQgaXNKdXN0aWZ5TGF5b3V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXQgPT09IElneENhcmRBY3Rpb25zTGF5b3V0LkpVU1RJRlk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxNS4xLjAuXG4gICAgICpcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCByZXZlcnNlcyB0aGUgb3JkZXIgb2YgdGhlIGJ1dHRvbnMgaW4gdGhlIGFjdGlvbnMgYXJlYS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1hY3Rpb25zIFtyZXZlcnNlXT1cInRydWVcIj48L2lneC1jYXJkLWFjdGlvbnM+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zLS1yZXZlcnNlJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXZlcnNlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlzVmVydGljYWxTZXQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoSWd4Q2FyZENvbXBvbmVudCkgcHVibGljIGNhcmQ6IElneENhcmRDb21wb25lbnQpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNWZXJ0aWNhbFNldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWZXJ0aWNhbFNldCAmJiB0aGlzLmNhcmQuaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtY2FyZC1oZWFkZXJfX3RodW1ibmFpbFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1hdmF0YXIsIGlneC1jYXJkLW1lZGlhLCBbaWd4Q2FyZFRodW1ibmFpbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImlneC1jYXJkLWhlYWRlcl9fdGl0bGVzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiXG4gICAgICAgIFtpZ3hDYXJkSGVhZGVyVGl0bGVdLFxuICAgICAgICBbaWd4Q2FyZEhlYWRlclN1YnRpdGxlXSxcbiAgICAgICAgLmlneC1jYXJkLWhlYWRlcl9fdGl0bGUsXG4gICAgICAgIC5pZ3gtY2FyZC1oZWFkZXJfX3N1YnRpdGxlXCI+XG4gICAgPC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiIsIjxkaXYgI2J1dHRvbnMgY2xhc3M9XCJpZ3gtY2FyZC1hY3Rpb25zX19zdGFydFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hTdGFydF0sIFtpZ3hCdXR0b25dOm5vdChbaWd4QnV0dG9uPSdpY29uJ10pOm5vdChbaWd4RW5kXSlcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwiaWd4LWNhcmQtYWN0aW9uc19fZW5kXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2lneEVuZF0sIFtpZ3hCdXR0b249J2ljb24nXTpub3QoW2lneFN0YXJ0XSksIGlneC1pY29uOm5vdChbaWd4U3RhcnRdKVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJkL2NhcmQtaGVhZGVyLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJkL2NhcmQtYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNSSx3QkFBd0I7UUFFakIsYUFBUSxHQUFHLGlCQUFpQixDQUFDO1FBRXBDOzs7Ozs7OztXQVFHO1FBSUksVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUV0Qjs7Ozs7Ozs7V0FRRztRQUdJLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFFdkI7O1dBRUc7UUFHSSxTQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ3ZCOzhHQXRDWSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJ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Ozs7Ozs7V0FVRztRQUdJLFdBQU0sR0FBa0Msb0JBQW9CLENBQUMsS0FBSyxDQUFDO1FBRTFFOzs7V0FHRztRQUdJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFXeEI7Ozs7Ozs7OztXQVNHO1FBR0ksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXFELENBQUM7SUFFcEY7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxFQUFFO1lBQ3hCLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDN0I7U0FDSjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDTCxDQUFDOzhHQXZFUSx1QkFBdUIsa0JBaURBLGdCQUFnQjtrR0FqRHZDLHVCQUF1QiwrWUdqU3BDLG1XQVNBOzsyRkh3UmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUVJLGtCQUFrQixjQUVoQixJQUFJOzswQkFtREgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBbkN6QyxNQUFNO3NCQUZaLFdBQVc7dUJBQUMsd0JBQXdCOztzQkFDcEMsS0FBSztnQkFTQyxRQUFRO3NCQUZkLFdBQVc7dUJBQUMsa0NBQWtDOztzQkFDOUMsS0FBSztnQkFRSyxlQUFlO3NCQUR6QixXQUFXO3VCQUFDLGlDQUFpQztnQkFpQnZDLE9BQU87c0JBRmIsV0FBVzt1QkFBQyxpQ0FBaUM7O3NCQUM3QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSWd4Q2FyZE1lZGlhIGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgbWVkaWEgc2VjdGlvbi5cbiAqIFVzZSBpdCB0byB3cmFwIGltYWdlcyBhbmQgdmlkZW9zLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaWd4LWNhcmQtbWVkaWEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZE1lZGlhRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkX19tZWRpYScpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1jYXJkX19tZWRpYSc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBgd2lkdGhgIGFuZCBgbWluLXdpZHRoYCBzdHlsZSBwcm9wZXJ0eVxuICAgICAqIG9mIHRoZSBtZWRpYSBjb250YWluZXIuIElmIG5vdCBwcm92aWRlZCBpdCB3aWxsIGJlIHNldCB0byBgYXV0b2AuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNhcmQtbWVkaWEgd2lkdGg9XCIzMDBweFwiPjwvaWd4LWNhcmQtbWVkaWE+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoID0gJ2F1dG8nO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgYGhlaWdodGAgc3R5bGUgcHJvcGVydHkgb2YgdGhlIG1lZGlhIGNvbnRhaW5lci5cbiAgICAgKiBJZiBub3QgcHJvdmlkZWQgaXQgd2lsbCBiZSBzZXQgdG8gYGF1dG9gLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkLW1lZGlhIGhlaWdodD1cIjUwJVwiPjwvaWd4LWNhcmQtbWVkaWE+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodCA9ICdhdXRvJztcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIG1lZGlhIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9sZSA9ICdpbWcnO1xufVxuXG4vKipcbiAqIElneENhcmRIZWFkZXIgaXMgY29udGFpbmVyIGZvciB0aGUgY2FyZCBoZWFkZXJcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtY2FyZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FyZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZEhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1oZWFkZXInKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtY2FyZC1oZWFkZXInO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgbGF5b3V0IHN0eWxlIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgaGVhZGVyIGVsZW1lbnRzKHRodW1ibmFpbCBhbmQgdGl0bGUvc3VidGl0bGUpIGFyZSBhbGlnbmVkIGhvcml6b250YWxseS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1oZWFkZXIgW3ZlcnRpY2FsXT1cInRydWVcIj48L2lneC1jYXJkLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWhlYWRlci0tdmVydGljYWwnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZlcnRpY2FsID0gZmFsc2U7XG59XG5cbi8qKlxuICogSWd4Q2FyZFRodW1ibmFpbCBpcyBjb250YWluZXIgZm9yIHRoZSBjYXJkIHRodW1ibmFpbCBzZWN0aW9uLlxuICogVXNlIGl0IHRvIHdyYXAgYW55dGhpbmcgeW91IHdhbnQgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2FyZFRodW1ibmFpbF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZFRodW1ibmFpbERpcmVjdGl2ZSB7IH1cblxuLyoqXG4gKiBpZ3hDYXJkSGVhZGVyVGl0bGUgaXMgdXNlZCB0byBkZW5vdGUgdGhlIGhlYWRlciB0aXRsZSBpbiBhIGNhcmQuXG4gKiBVc2UgaXQgdG8gdGFnIHRleHQgbm9kZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneENhcmRIZWFkZXJUaXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZEhlYWRlclRpdGxlRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWhlYWRlcl9fdGl0bGUnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtY2FyZF9faGVhZGVyX190aXRsZSc7XG59XG5cbi8qKlxuICogaWd4Q2FyZEhlYWRlclN1YnRpdGxlIGlzIHVzZWQgdG8gZGVub3RlIHRoZSBoZWFkZXIgc3VidGl0bGUgaW4gYSBjYXJkLlxuICogVXNlIGl0IHRvIHRhZyB0ZXh0IG5vZGVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDYXJkSGVhZGVyU3VidGl0bGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRIZWFkZXJTdWJ0aXRsZURpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1oZWFkZXJfX3N1YnRpdGxlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWNhcmQtaGVhZGVyX19zdWJ0aXRsZSc7XG59XG4vKipcbiAqIElneENhcmRDb250ZW50IGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgY29udGVudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FyZENvbnRlbnREaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtY29udGVudCcpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1jYXJkLWNvbnRlbnQnO1xufVxuXG4vKipcbiAqIElneENhcmRGb290ZXIgaXMgY29udGFpbmVyIGZvciB0aGUgY2FyZCBmb290ZXJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWZvb3RlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hDYXJkRm9vdGVyRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYHJvbGVgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZCBmb290ZXIuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgc2V0IHRvIGBmb290ZXJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkLWZvb3RlciByb2xlPVwiZm9vdGVyXCI+PC9pZ3gtY2FyZC1mb290ZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvbGUgPSAnZm9vdGVyJztcbn1cblxuLyoqXG4gKiBDYXJkIHByb3ZpZGVzIGEgd2F5IHRvIGRpc3BsYXkgb3JnYW5pemVkIGNvbnRlbnQgaW4gYXBwZWFsaW5nIHdheS5cbiAqXG4gKiBAaWd4TW9kdWxlIElneENhcmRNb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LWNhcmQtdGhlbWUsIGlneC1pY29uLXRoZW1lLCBpZ3gtYnV0dG9uLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGNhcmQsIGJ1dHRvbiwgYXZhdGFyLCBpY29uXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIElnbml0ZSBVSSBDYXJkIHNlcnZlcyBhcyBhIGNvbnRhaW5lciB0aGF0IGFsbG93cyBjdXN0b20gY29udGVudCB0byBiZSBvcmdhbml6ZWQgaW4gYW4gYXBwZWFsaW5nIHdheS4gVGhlcmUgYXJlXG4gKiBmaXZlIHNlY3Rpb25zIGluIGEgY2FyZCB0aGF0IHlvdSBjYW4gdXNlIHRvIG9yZ2FuaXplIHlvdXIgY29udGVudC4gVGhlc2UgYXJlIGhlYWRlciwgbWVkaWEsIGNvbnRlbnQsIGFjdGlvbnMsIGFuZCBmb290ZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtY2FyZD5cbiAqICAgPGlneC1jYXJkLWhlYWRlcj5cbiAqICAgICA8aDMgaWd4Q2FyZEhlYWRlclRpdGxlPnt7dGl0bGV9fTwvaDM+XG4gKiAgICAgPGg1IGlneENhcmRIZWFkZXJTdWJ0aXRsZT57e3N1YnRpdGxlfX08L2g1PlxuICogICA8L2lneC1jYXJkLWhlYWRlcj5cbiAqICAgPGlneC1jYXJkLWFjdGlvbnM+XG4gKiAgICAgICA8YnV0dG9uIGlneEJ1dHRvbiBpZ3hSaXBwbGU+U2hhcmU8L2J1dHRvbj5cbiAqICAgICAgIDxidXR0b24gaWd4QnV0dG9uIGlneFJpcHBsZT5QbGF5IEFsYnVtPC9idXR0b24+XG4gKiAgIDwvaWd4LWNhcmQtYWN0aW9ucz5cbiAqIDwvaWd4LWNhcmQ+XG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgY29uc3QgSWd4Q2FyZFR5cGUgPSBta2VudW0oe1xuICAgIEVMRVZBVEVEOiAnZWxldmF0ZWQnLFxuICAgIE9VVExJTkVEOiAnb3V0bGluZWQnXG59KTtcbmV4cG9ydCB0eXBlIElneENhcmRUeXBlID0gKHR5cGVvZiBJZ3hDYXJkVHlwZSlba2V5b2YgdHlwZW9mIElneENhcmRUeXBlXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdjYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgY2FyZC5cbiAgICAgKiBJZiBub3Qgc2V0LCBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtY2FyZC0wXCJgO1xuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIGlkID0gXCJteS1maXJzdC1jYXJkXCI+PC9pZ3gtY2FyZD5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGNhcmRJZCA9ICB0aGlzLmNhcmQuaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtY2FyZC0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGNhcmQuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgc2V0IHRvIGBncm91cGAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNhcmQgcm9sZT1cImdyb3VwXCI+PC9pZ3gtY2FyZD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9sZSA9ICdncm91cCc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYHR5cGVgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZC5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSB2YWx1ZSBpcyBzZXQgdG8gYGVsZXZhdGVkYC4gWW91IGNhbiBtYWtlIHRoZSBjYXJkIHVzZSB0aGVcbiAgICAgKiBvdXRsaW5lZCBzdHlsZSBieSBzZXR0aW5nIHRoZSB2YWx1ZSB0byBgb3V0bGluZWRgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIHR5cGU9XCJvdXRsaW5lZFwiPjwvaWd4LWNhcmQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogSWd4Q2FyZFR5cGUgfCBzdHJpbmcgPSBJZ3hDYXJkVHlwZS5FTEVWQVRFRDtcblxuICAgIC8qKlxuICAgICAqIEEgZ2V0dGVyIHdoaWNoIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIGNhcmQgdHlwZSBpcyBgb3V0bGluZWRgLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtLW91dGxpbmVkJylcbiAgICBwdWJsaWMgZ2V0IGlzT3V0bGluZWRDYXJkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hDYXJkVHlwZS5PVVRMSU5FRDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYGhvcml6b250YWxgIGF0dHJpYnV0ZSBvZiB0aGUgY2FyZC5cbiAgICAgKiBTZXR0aW5nIHRoaXMgdG8gYHRydWVgIHdpbGwgbWFrZSB0aGUgZGlmZmVyZW50IGNhcmQgc2VjdGlvbnMgYWxpZ24gaG9yaXpvbnRhbGx5LFxuICAgICAqIGVzc2VudGlhbGx5IGZsaXBwaW5nIHRoZSBjYXJkIHRvIHRoZSBzaWRlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYXJkIFtob3Jpem9udGFsXT1cInRydWVcIj48L2lneC1jYXJkPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWNhcmQtLWhvcml6b250YWwnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvcml6b250YWwgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IElneENhcmRBY3Rpb25zTGF5b3V0ID0gbWtlbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBKVVNUSUZZOiAnanVzdGlmeSdcbn0pO1xuZXhwb3J0IHR5cGUgSWd4Q2FyZEFjdGlvbnNMYXlvdXQgPSAodHlwZW9mIElneENhcmRBY3Rpb25zTGF5b3V0KVtrZXlvZiB0eXBlb2YgSWd4Q2FyZEFjdGlvbnNMYXlvdXRdO1xuXG4vKipcbiAqIElneENhcmRBY3Rpb25zIGlzIGNvbnRhaW5lciBmb3IgdGhlIGNhcmQgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lneC1jYXJkLWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FyZC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhcmRBY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGxheW91dCBzdHlsZSBvZiB0aGUgYWN0aW9ucy5cbiAgICAgKiBZb3UgY2FuIGp1c3RpZnkgdGhlIGVsZW1lbnRzIHNsb3R0ZWQgaW4gdGhlIGlneC1jYXJkLWFjdGlvbiBjb250YWluZXJcbiAgICAgKiBzbyB0aGF0IHRoZXkgYXJlIHBvc2l0aW9uZWQgZXF1YWxseSBmcm9tIG9uZSBhbm90aGVyIHRha2luZyB1cCBhbGwgdGhlXG4gICAgICogc3BhY2UgYXZhaWxhYmxlIGFsb25nIHRoZSBjYXJkIGFjdGlvbnMgYXhpcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1hY3Rpb25zIGxheW91dD1cImp1c3RpZnlcIj48L2lneC1jYXJkLWFjdGlvbnM+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYXlvdXQ6IElneENhcmRBY3Rpb25zTGF5b3V0IHwgc3RyaW5nID0gSWd4Q2FyZEFjdGlvbnNMYXlvdXQuU1RBUlQ7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2ZXJ0aWNhbCBhdHRyaWJ1dGUgb2YgdGhlIGFjdGlvbnMuXG4gICAgICogV2hlbiBzZXQgdG8gYHRydWVgIHRoZSBhY3Rpb25zIHdpbGwgYmUgbGF5ZWQgb3V0IHZlcnRpY2FsbHkuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zLS12ZXJ0aWNhbCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmVydGljYWwgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEEgZ2V0dGVyIHRoYXQgcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgbGF5b3V0IGhhcyBiZWVuXG4gICAgICogc2V0IHRvIGBqdXN0aWZ5YC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1jYXJkLWFjdGlvbnMtLWp1c3RpZnknKVxuICAgIHB1YmxpYyBnZXQgaXNKdXN0aWZ5TGF5b3V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXQgPT09IElneENhcmRBY3Rpb25zTGF5b3V0LkpVU1RJRlk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxNS4xLjAuXG4gICAgICpcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCByZXZlcnNlcyB0aGUgb3JkZXIgb2YgdGhlIGJ1dHRvbnMgaW4gdGhlIGFjdGlvbnMgYXJlYS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FyZC1hY3Rpb25zIFtyZXZlcnNlXT1cInRydWVcIj48L2lneC1jYXJkLWFjdGlvbnM+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtY2FyZC1hY3Rpb25zLS1yZXZlcnNlJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXZlcnNlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlzVmVydGljYWxTZXQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoSWd4Q2FyZENvbXBvbmVudCkgcHVibGljIGNhcmQ6IElneENhcmRDb21wb25lbnQpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNWZXJ0aWNhbFNldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWZXJ0aWNhbFNldCAmJiB0aGlzLmNhcmQuaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtY2FyZC1oZWFkZXJfX3RodW1ibmFpbFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1hdmF0YXIsIGlneC1jYXJkLW1lZGlhLCBbaWd4Q2FyZFRodW1ibmFpbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImlneC1jYXJkLWhlYWRlcl9fdGl0bGVzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiXG4gICAgICAgIFtpZ3hDYXJkSGVhZGVyVGl0bGVdLFxuICAgICAgICBbaWd4Q2FyZEhlYWRlclN1YnRpdGxlXSxcbiAgICAgICAgLmlneC1jYXJkLWhlYWRlcl9fdGl0bGUsXG4gICAgICAgIC5pZ3gtY2FyZC1oZWFkZXJfX3N1YnRpdGxlXCI+XG4gICAgPC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiIsIjxkaXYgI2J1dHRvbnMgY2xhc3M9XCJpZ3gtY2FyZC1hY3Rpb25zX19zdGFydFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hTdGFydF0sIFtpZ3hCdXR0b25dOm5vdChbaWd4QnV0dG9uPSdpY29uJ10pOm5vdChbaWd4RW5kXSlcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwiaWd4LWNhcmQtYWN0aW9uc19fZW5kXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2lneEVuZF0sIFtpZ3hCdXR0b249J2ljb24nXTpub3QoW2lneFN0YXJ0XSksIGlneC1pY29uOm5vdChbaWd4U3RhcnRdKVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19