@fundamental-ngx/core 0.44.1-rc.3 → 0.45.0

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 (500) hide show
  1. package/action-sheet/action-sheet.module.d.ts +5 -6
  2. package/action-sheet/index.d.ts +0 -1
  3. package/avatar/avatar.component.d.ts +1 -6
  4. package/bar/bar.module.d.ts +4 -6
  5. package/bar/directives/bar-element.directive.d.ts +1 -6
  6. package/bar/index.d.ts +0 -2
  7. package/breadcrumb/breadcrumb.component.d.ts +1 -9
  8. package/breadcrumb/breadcrumb.module.d.ts +12 -13
  9. package/breadcrumb/index.d.ts +0 -1
  10. package/button/button.module.d.ts +4 -5
  11. package/button/index.d.ts +0 -1
  12. package/calendar/calendar.module.d.ts +5 -6
  13. package/calendar/index.d.ts +0 -1
  14. package/card/card.module.d.ts +6 -7
  15. package/card/index.d.ts +0 -1
  16. package/carousel/carousel.component.d.ts +1 -13
  17. package/checkbox/checkbox.module.d.ts +4 -5
  18. package/checkbox/index.d.ts +0 -1
  19. package/combobox/combobox.module.d.ts +12 -13
  20. package/combobox/index.d.ts +0 -1
  21. package/content-density/index.d.ts +0 -4
  22. package/date-picker/date-picker.component.d.ts +1 -62
  23. package/date-picker/date-picker.module.d.ts +12 -13
  24. package/date-picker/index.d.ts +0 -1
  25. package/datetime-picker/datetime-picker.component.d.ts +1 -49
  26. package/datetime-picker/datetime-picker.module.d.ts +14 -15
  27. package/datetime-picker/index.d.ts +0 -1
  28. package/dialog/dialog.module.d.ts +14 -16
  29. package/dialog/index.d.ts +0 -2
  30. package/dialog/utils/dialog-config.class.d.ts +0 -2
  31. package/dynamic-page/dynamic-page.module.d.ts +10 -11
  32. package/dynamic-page/index.d.ts +0 -1
  33. package/esm2022/action-sheet/action-sheet.module.mjs +3 -8
  34. package/esm2022/action-sheet/index.mjs +1 -2
  35. package/esm2022/avatar/avatar.component.mjs +3 -13
  36. package/esm2022/bar/bar.module.mjs +3 -13
  37. package/esm2022/bar/directives/bar-element.directive.mjs +3 -16
  38. package/esm2022/bar/index.mjs +1 -3
  39. package/esm2022/breadcrumb/breadcrumb.component.mjs +5 -19
  40. package/esm2022/breadcrumb/breadcrumb.module.mjs +6 -18
  41. package/esm2022/breadcrumb/index.mjs +1 -2
  42. package/esm2022/button/button.module.mjs +4 -5
  43. package/esm2022/button/index.mjs +1 -2
  44. package/esm2022/calendar/calendar.module.mjs +3 -8
  45. package/esm2022/calendar/index.mjs +1 -2
  46. package/esm2022/card/card.module.mjs +4 -8
  47. package/esm2022/card/index.mjs +1 -2
  48. package/esm2022/carousel/carousel.component.mjs +4 -30
  49. package/esm2022/checkbox/checkbox.module.mjs +4 -5
  50. package/esm2022/checkbox/index.mjs +1 -2
  51. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +1 -1
  52. package/esm2022/combobox/combobox.component.mjs +1 -1
  53. package/esm2022/combobox/combobox.module.mjs +6 -8
  54. package/esm2022/combobox/index.mjs +1 -2
  55. package/esm2022/content-density/index.mjs +1 -5
  56. package/esm2022/date-picker/date-picker.component.mjs +4 -104
  57. package/esm2022/date-picker/date-picker.module.mjs +5 -6
  58. package/esm2022/date-picker/index.mjs +1 -2
  59. package/esm2022/datetime-picker/datetime-picker.component.mjs +4 -83
  60. package/esm2022/datetime-picker/datetime-picker.module.mjs +5 -6
  61. package/esm2022/datetime-picker/index.mjs +1 -2
  62. package/esm2022/dialog/dialog-default/dialog-default.component.mjs +1 -1
  63. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +1 -1
  64. package/esm2022/dialog/dialog.component.mjs +3 -3
  65. package/esm2022/dialog/dialog.module.mjs +1 -9
  66. package/esm2022/dialog/index.mjs +1 -3
  67. package/esm2022/dialog/utils/dialog-config.class.mjs +1 -1
  68. package/esm2022/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +1 -1
  69. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  70. package/esm2022/dynamic-page/dynamic-page.module.mjs +3 -8
  71. package/esm2022/dynamic-page/index.mjs +1 -2
  72. package/esm2022/facets/facet/facet.component.mjs +1 -1
  73. package/esm2022/feed-list-item/components/item/feed-list-item.component.mjs +14 -40
  74. package/esm2022/file-uploader/file-uploader.module.mjs +4 -23
  75. package/esm2022/file-uploader/index.mjs +1 -2
  76. package/esm2022/form/form-control/form-control.module.mjs +4 -23
  77. package/esm2022/form/form-label/form-label.component.mjs +3 -40
  78. package/esm2022/form/form-message/form-message.component.mjs +1 -1
  79. package/esm2022/form/form-message/popover-form-message.service.mjs +1 -1
  80. package/esm2022/form/index.mjs +1 -2
  81. package/esm2022/fundamental-ngx.module.mjs +1 -5
  82. package/esm2022/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +1 -1
  83. package/esm2022/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +1 -1
  84. package/esm2022/index.mjs +1 -2
  85. package/esm2022/inline-help/inline-help.directive.mjs +3 -18
  86. package/esm2022/input-group/index.mjs +1 -2
  87. package/esm2022/input-group/input-group.component.mjs +6 -28
  88. package/esm2022/input-group/input-group.module.mjs +1 -6
  89. package/esm2022/link/link.component.mjs +5 -8
  90. package/esm2022/list/index.mjs +1 -2
  91. package/esm2022/list/list-item/list-item.component.mjs +3 -46
  92. package/esm2022/list/list-message.directive.mjs +1 -1
  93. package/esm2022/list/list.module.mjs +3 -8
  94. package/esm2022/menu/index.mjs +1 -2
  95. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +1 -1
  96. package/esm2022/menu/menu.module.mjs +3 -8
  97. package/esm2022/message-box/index.mjs +1 -3
  98. package/esm2022/message-box/message-box-default/message-box-default.component.mjs +1 -1
  99. package/esm2022/message-box/message-box-header/message-box-header.component.mjs +1 -1
  100. package/esm2022/message-box/message-box.module.mjs +3 -11
  101. package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +3 -3
  102. package/esm2022/message-strip/alert/message-strip-alert.service.mjs +8 -2
  103. package/esm2022/message-strip/message-strip.component.mjs +3 -16
  104. package/esm2022/micro-process-flow/index.mjs +1 -2
  105. package/esm2022/micro-process-flow/micro-process-flow.module.mjs +5 -10
  106. package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +1 -1
  107. package/esm2022/multi-combobox/multi-combobox.component.mjs +1 -1
  108. package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +1 -1
  109. package/esm2022/multi-input/index.mjs +1 -2
  110. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  111. package/esm2022/multi-input/multi-input.component.mjs +1 -1
  112. package/esm2022/multi-input/multi-input.module.mjs +6 -8
  113. package/esm2022/nested-list/index.mjs +1 -2
  114. package/esm2022/nested-list/nested-list.module.mjs +3 -8
  115. package/esm2022/object-number/object-number.component.mjs +3 -3
  116. package/esm2022/overflow-layout/overflow-layout.component.mjs +3 -3
  117. package/esm2022/pagination/index.mjs +1 -2
  118. package/esm2022/pagination/pagination.component.mjs +8 -186
  119. package/esm2022/pagination/pagination.module.mjs +6 -7
  120. package/esm2022/panel/index.mjs +1 -2
  121. package/esm2022/panel/panel.module.mjs +4 -15
  122. package/esm2022/popover/base/base-popover.class.mjs +2 -33
  123. package/esm2022/popover/popover.component.mjs +1 -19
  124. package/esm2022/product-switch/product-switch/product-switch.component.mjs +4 -17
  125. package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
  126. package/esm2022/product-switch/product-switch-body/product-switch.item.mjs +1 -1
  127. package/esm2022/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
  128. package/esm2022/quick-view/quick-view-title/quick-view-title.component.mjs +1 -1
  129. package/esm2022/radio/index.mjs +1 -2
  130. package/esm2022/radio/radio.module.mjs +4 -5
  131. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +3 -3
  132. package/esm2022/select/index.mjs +1 -2
  133. package/esm2022/select/select.component.mjs +1 -1
  134. package/esm2022/select/select.module.mjs +5 -6
  135. package/esm2022/shellbar/index.mjs +1 -2
  136. package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -17
  137. package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -5
  138. package/esm2022/shellbar/shellbar.module.mjs +3 -8
  139. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +1 -1
  140. package/esm2022/slider/index.mjs +1 -2
  141. package/esm2022/slider/slider.component.mjs +3 -49
  142. package/esm2022/slider/slider.module.mjs +4 -5
  143. package/esm2022/split-button/index.mjs +1 -2
  144. package/esm2022/split-button/split-button.component.mjs +3 -27
  145. package/esm2022/split-button/split-button.module.mjs +4 -5
  146. package/esm2022/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -10
  147. package/esm2022/splitter/splitter.component.mjs +2 -16
  148. package/esm2022/step-input/index.mjs +1 -2
  149. package/esm2022/step-input/step-input.component.mjs +5 -31
  150. package/esm2022/step-input/step-input.module.mjs +5 -6
  151. package/esm2022/switch/index.mjs +1 -2
  152. package/esm2022/switch/switch.component.mjs +5 -43
  153. package/esm2022/switch/switch.module.mjs +4 -5
  154. package/esm2022/table/index.mjs +1 -3
  155. package/esm2022/table/table.module.mjs +3 -13
  156. package/esm2022/tabs/index.mjs +1 -2
  157. package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +8 -22
  158. package/esm2022/tabs/tab-list.component.mjs +5 -18
  159. package/esm2022/tabs/tabs.module.mjs +3 -8
  160. package/esm2022/text/text.component.mjs +3 -29
  161. package/esm2022/time/index.mjs +1 -3
  162. package/esm2022/time/time.component.mjs +8 -65
  163. package/esm2022/time/time.module.mjs +5 -6
  164. package/esm2022/time-picker/index.mjs +1 -2
  165. package/esm2022/time-picker/time-picker.component.mjs +1 -1
  166. package/esm2022/time-picker/time-picker.module.mjs +6 -22
  167. package/esm2022/timeline/components/timeline-node-body/timeline-node-body.component.mjs +1 -1
  168. package/esm2022/timeline/timeline.component.mjs +1 -1
  169. package/esm2022/token/index.mjs +1 -2
  170. package/esm2022/token/token.component.mjs +4 -30
  171. package/esm2022/token/token.module.mjs +5 -24
  172. package/esm2022/token/tokenizer.component.mjs +3 -3
  173. package/esm2022/toolbar/toolbar.component.mjs +8 -24
  174. package/esm2022/tree/tree.component.mjs +1 -1
  175. package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +9 -87
  176. package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +9 -21
  177. package/esm2022/upload-collection/upload-collection-item.directive.mjs +4 -3
  178. package/esm2022/upload-collection/upload-collection-simple.directives.mjs +22 -15
  179. package/esm2022/upload-collection/upload-collection.component.mjs +5 -4
  180. package/esm2022/upload-collection/upload-collection.module.mjs +7 -13
  181. package/esm2022/wizard/index.mjs +1 -2
  182. package/esm2022/wizard/wizard.module.mjs +3 -8
  183. package/feed-list-item/components/item/feed-list-item.component.d.ts +9 -25
  184. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +5 -36
  185. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  186. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -12
  187. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  188. package/fesm2022/fundamental-ngx-core-bar.mjs +7 -81
  189. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  190. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +11 -63
  191. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  192. package/fesm2022/fundamental-ngx-core-button.mjs +6 -33
  193. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  194. package/fesm2022/fundamental-ngx-core-calendar.mjs +4 -35
  195. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-core-card.mjs +6 -36
  197. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  198. package/fesm2022/fundamental-ngx-core-carousel.mjs +3 -29
  199. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  200. package/fesm2022/fundamental-ngx-core-checkbox.mjs +6 -33
  201. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  202. package/fesm2022/fundamental-ngx-core-combobox.mjs +9 -37
  203. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  204. package/fesm2022/fundamental-ngx-core-content-density.mjs +1 -148
  205. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  206. package/fesm2022/fundamental-ngx-core-date-picker.mjs +10 -137
  207. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  208. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +10 -116
  209. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  210. package/fesm2022/fundamental-ngx-core-dialog.mjs +6 -57
  211. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  212. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +7 -38
  213. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  214. package/fesm2022/fundamental-ngx-core-facets.mjs +1 -1
  215. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  216. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +13 -39
  217. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  218. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +5 -50
  219. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  220. package/fesm2022/fundamental-ngx-core-form.mjs +7 -88
  221. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  222. package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
  223. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  224. package/fesm2022/fundamental-ngx-core-inline-help.mjs +2 -17
  225. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  226. package/fesm2022/fundamental-ngx-core-input-group.mjs +8 -60
  227. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  228. package/fesm2022/fundamental-ngx-core-link.mjs +4 -7
  229. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  230. package/fesm2022/fundamental-ngx-core-list.mjs +6 -80
  231. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  232. package/fesm2022/fundamental-ngx-core-menu.mjs +7 -38
  233. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  234. package/fesm2022/fundamental-ngx-core-message-box.mjs +7 -59
  235. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  236. package/fesm2022/fundamental-ngx-core-message-strip.mjs +11 -19
  237. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  238. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +7 -38
  239. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  240. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +3 -3
  241. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  242. package/fesm2022/fundamental-ngx-core-multi-input.mjs +9 -36
  243. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  244. package/fesm2022/fundamental-ngx-core-nested-list.mjs +4 -34
  245. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  246. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  247. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  248. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  249. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  250. package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -219
  251. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  252. package/fesm2022/fundamental-ngx-core-panel.mjs +6 -43
  253. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  254. package/fesm2022/fundamental-ngx-core-popover.mjs +2 -50
  255. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  256. package/fesm2022/fundamental-ngx-core-product-switch.mjs +6 -18
  257. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  258. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  259. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  260. package/fesm2022/fundamental-ngx-core-radio.mjs +6 -33
  261. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  262. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
  263. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  264. package/fesm2022/fundamental-ngx-core-select.mjs +7 -34
  265. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  266. package/fesm2022/fundamental-ngx-core-shellbar.mjs +11 -57
  267. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  268. package/fesm2022/fundamental-ngx-core-slider.mjs +8 -70
  269. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  270. package/fesm2022/fundamental-ngx-core-split-button.mjs +8 -59
  271. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  272. package/fesm2022/fundamental-ngx-core-splitter.mjs +4 -24
  273. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  274. package/fesm2022/fundamental-ngx-core-step-input.mjs +11 -64
  275. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  276. package/fesm2022/fundamental-ngx-core-switch.mjs +9 -74
  277. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  278. package/fesm2022/fundamental-ngx-core-table.mjs +5 -65
  279. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  280. package/fesm2022/fundamental-ngx-core-tabs.mjs +14 -69
  281. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  282. package/fesm2022/fundamental-ngx-core-text.mjs +2 -28
  283. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  284. package/fesm2022/fundamental-ngx-core-time-picker.mjs +9 -51
  285. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  286. package/fesm2022/fundamental-ngx-core-time.mjs +12 -143
  287. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  288. package/fesm2022/fundamental-ngx-core-timeline.mjs +2 -2
  289. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  290. package/fesm2022/fundamental-ngx-core-token.mjs +11 -82
  291. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  292. package/fesm2022/fundamental-ngx-core-toolbar.mjs +6 -22
  293. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  294. package/fesm2022/fundamental-ngx-core-tree.mjs +1 -1
  295. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  296. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +46 -131
  297. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  298. package/fesm2022/fundamental-ngx-core-wizard.mjs +5 -36
  299. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  300. package/fesm2022/fundamental-ngx-core.mjs +0 -5
  301. package/fesm2022/fundamental-ngx-core.mjs.map +1 -1
  302. package/file-uploader/file-uploader.module.d.ts +6 -7
  303. package/file-uploader/index.d.ts +0 -1
  304. package/form/form-control/form-control.module.d.ts +3 -4
  305. package/form/form-label/form-label.component.d.ts +1 -16
  306. package/form/form-message/form-message.component.d.ts +0 -2
  307. package/form/form-message/popover-form-message.service.d.ts +2 -2
  308. package/form/index.d.ts +0 -1
  309. package/fundamental-ngx-core-v0.45.0.tgz +0 -0
  310. package/fundamental-ngx.module.d.ts +89 -90
  311. package/index.d.ts +0 -1
  312. package/inline-help/inline-help.directive.d.ts +1 -7
  313. package/input-group/index.d.ts +0 -1
  314. package/input-group/input-group.component.d.ts +6 -13
  315. package/input-group/input-group.module.d.ts +6 -7
  316. package/link/link.component.d.ts +1 -1
  317. package/list/index.d.ts +0 -1
  318. package/list/list-item/list-item.component.d.ts +1 -25
  319. package/list/list-message.directive.d.ts +2 -2
  320. package/list/list.module.d.ts +5 -6
  321. package/menu/index.d.ts +0 -1
  322. package/menu/menu.module.d.ts +6 -7
  323. package/message-box/index.d.ts +0 -2
  324. package/message-box/message-box.module.d.ts +15 -17
  325. package/message-strip/message-strip.component.d.ts +1 -9
  326. package/micro-process-flow/index.d.ts +0 -1
  327. package/micro-process-flow/micro-process-flow.module.d.ts +4 -5
  328. package/multi-input/index.d.ts +0 -1
  329. package/multi-input/multi-input.module.d.ts +12 -13
  330. package/nested-list/index.d.ts +0 -1
  331. package/nested-list/nested-list.module.d.ts +6 -7
  332. package/package.json +3 -9
  333. package/pagination/index.d.ts +0 -1
  334. package/pagination/pagination.component.d.ts +2 -111
  335. package/pagination/pagination.module.d.ts +10 -11
  336. package/panel/index.d.ts +0 -1
  337. package/panel/panel.module.d.ts +4 -5
  338. package/popover/base/base-popover.class.d.ts +1 -16
  339. package/popover/popover.component.d.ts +0 -11
  340. package/product-switch/product-switch/product-switch.component.d.ts +1 -8
  341. package/product-switch/product-switch-body/product-switch.item.d.ts +0 -4
  342. package/radio/index.d.ts +0 -1
  343. package/radio/radio.module.d.ts +4 -5
  344. package/schematics/add-dependencies/index.js +4 -4
  345. package/select/index.d.ts +0 -1
  346. package/select/select.component.d.ts +0 -2
  347. package/select/select.module.d.ts +9 -10
  348. package/shellbar/index.d.ts +0 -1
  349. package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -9
  350. package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +3 -5
  351. package/shellbar/shellbar.module.d.ts +14 -15
  352. package/slider/index.d.ts +0 -1
  353. package/slider/slider.component.d.ts +1 -31
  354. package/slider/slider.module.d.ts +7 -8
  355. package/split-button/index.d.ts +0 -1
  356. package/split-button/split-button.component.d.ts +3 -12
  357. package/split-button/split-button.module.d.ts +6 -7
  358. package/splitter/splitter-pagination/splitter-pagination.component.d.ts +0 -5
  359. package/splitter/splitter.component.d.ts +1 -9
  360. package/step-input/index.d.ts +0 -1
  361. package/step-input/step-input.component.d.ts +1 -17
  362. package/step-input/step-input.module.d.ts +7 -8
  363. package/switch/index.d.ts +0 -1
  364. package/switch/switch.component.d.ts +1 -19
  365. package/switch/switch.module.d.ts +5 -6
  366. package/table/index.d.ts +0 -2
  367. package/table/table.module.d.ts +4 -6
  368. package/tabs/index.d.ts +0 -1
  369. package/tabs/tab-item-expand/tab-item-expand.component.d.ts +1 -8
  370. package/tabs/tab-list.component.d.ts +1 -9
  371. package/tabs/tabs.module.d.ts +12 -13
  372. package/text/text.component.d.ts +1 -17
  373. package/time/index.d.ts +0 -2
  374. package/time/time.component.d.ts +2 -15
  375. package/time/time.module.d.ts +9 -10
  376. package/time-picker/index.d.ts +0 -1
  377. package/time-picker/time-picker.module.d.ts +9 -10
  378. package/token/index.d.ts +0 -1
  379. package/token/token.component.d.ts +1 -17
  380. package/token/token.module.d.ts +8 -9
  381. package/toolbar/toolbar.component.d.ts +4 -12
  382. package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +2 -50
  383. package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +1 -9
  384. package/upload-collection/upload-collection-item.directive.d.ts +1 -1
  385. package/upload-collection/upload-collection-simple.directives.d.ts +7 -7
  386. package/upload-collection/upload-collection.component.d.ts +1 -1
  387. package/upload-collection/upload-collection.module.d.ts +1 -8
  388. package/wizard/index.d.ts +0 -1
  389. package/wizard/wizard.module.d.ts +8 -9
  390. package/action-sheet/deprecated-action-sheet-compact.directive.d.ts +0 -8
  391. package/alert/README.md +0 -25
  392. package/alert/alert-service/alert.service.d.ts +0 -41
  393. package/alert/alert-utils/alert-animations.d.ts +0 -8
  394. package/alert/alert-utils/alert-config.d.ts +0 -34
  395. package/alert/alert-utils/alert-container.component.d.ts +0 -14
  396. package/alert/alert-utils/alert-ref.d.ts +0 -26
  397. package/alert/alert.component.d.ts +0 -87
  398. package/alert/alert.module.d.ts +0 -18
  399. package/alert/index.d.ts +0 -7
  400. package/bar/deprecated-bar-button-content-density.directive.d.ts +0 -8
  401. package/bar/deprecated-bar-content-density.directive.d.ts +0 -8
  402. package/breadcrumb/deprecated-breadcrumbs-compact.directive.d.ts +0 -8
  403. package/button/deprecated-button-content-density.directive.d.ts +0 -8
  404. package/calendar/deprecated-calendar-content-density.directive.d.ts +0 -8
  405. package/card/deprecated-card-content-density.directive.d.ts +0 -8
  406. package/checkbox/deprecated-checkbox-content-density.directive.d.ts +0 -8
  407. package/combobox/deprecated-combobox-content-density.directive.d.ts +0 -10
  408. package/content-density/classes/deprecated-compact.directive.d.ts +0 -26
  409. package/content-density/classes/deprecated-condensed.directive.d.ts +0 -26
  410. package/content-density/classes/deprecated-content-density.directive.d.ts +0 -26
  411. package/content-density/classes/deprecated-cozy.directive.d.ts +0 -26
  412. package/date-picker/deprecated-date-picker-compact.directive.d.ts +0 -8
  413. package/datetime-picker/deprecated-date-time-picker-content-density.directive.d.ts +0 -8
  414. package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +0 -12
  415. package/dialog/directives/dialog-decisive-button.directive.d.ts +0 -11
  416. package/dynamic-page/deprecated-dynamic-page-compact.directive.d.ts +0 -8
  417. package/esm2022/action-sheet/deprecated-action-sheet-compact.directive.mjs +0 -30
  418. package/esm2022/alert/alert-service/alert.service.mjs +0 -85
  419. package/esm2022/alert/alert-utils/alert-animations.mjs +0 -38
  420. package/esm2022/alert/alert-utils/alert-config.mjs +0 -27
  421. package/esm2022/alert/alert-utils/alert-container.component.mjs +0 -29
  422. package/esm2022/alert/alert-utils/alert-ref.mjs +0 -29
  423. package/esm2022/alert/alert.component.mjs +0 -212
  424. package/esm2022/alert/alert.module.mjs +0 -33
  425. package/esm2022/alert/fundamental-ngx-core-alert.mjs +0 -5
  426. package/esm2022/alert/index.mjs +0 -8
  427. package/esm2022/bar/deprecated-bar-button-content-density.directive.mjs +0 -30
  428. package/esm2022/bar/deprecated-bar-content-density.directive.mjs +0 -29
  429. package/esm2022/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +0 -30
  430. package/esm2022/button/deprecated-button-content-density.directive.mjs +0 -30
  431. package/esm2022/calendar/deprecated-calendar-content-density.directive.mjs +0 -30
  432. package/esm2022/card/deprecated-card-content-density.directive.mjs +0 -30
  433. package/esm2022/checkbox/deprecated-checkbox-content-density.directive.mjs +0 -30
  434. package/esm2022/combobox/deprecated-combobox-content-density.directive.mjs +0 -31
  435. package/esm2022/content-density/classes/deprecated-compact.directive.mjs +0 -39
  436. package/esm2022/content-density/classes/deprecated-condensed.directive.mjs +0 -39
  437. package/esm2022/content-density/classes/deprecated-content-density.directive.mjs +0 -49
  438. package/esm2022/content-density/classes/deprecated-cozy.directive.mjs +0 -39
  439. package/esm2022/date-picker/deprecated-date-picker-compact.directive.mjs +0 -30
  440. package/esm2022/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +0 -30
  441. package/esm2022/dialog/dialog-footer-button/dialog-footer-button.component.mjs +0 -25
  442. package/esm2022/dialog/directives/dialog-decisive-button.directive.mjs +0 -26
  443. package/esm2022/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +0 -30
  444. package/esm2022/file-uploader/deprecated-file-uploader-content-density.directive.mjs +0 -30
  445. package/esm2022/form/form-control/deprecated-form-control-content-density.directive.mjs +0 -29
  446. package/esm2022/input-group/deprecated-input-group-compact.directive.mjs +0 -30
  447. package/esm2022/list/deprecated-list-content-density,directive.mjs +0 -30
  448. package/esm2022/menu/directives/deprecated-menu-compact.directive.mjs +0 -30
  449. package/esm2022/message-box/directives/message-box-decisive-button.directive.mjs +0 -27
  450. package/esm2022/message-box/message-box-footer-button/message-box-footer-button.component.mjs +0 -25
  451. package/esm2022/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +0 -30
  452. package/esm2022/multi-input/deprecated-multi-input-compact.directive.mjs +0 -30
  453. package/esm2022/nested-list/deprecated-nested-list-compact.directive.mjs +0 -29
  454. package/esm2022/pagination/deprecated-pagination-compact.directive.mjs +0 -30
  455. package/esm2022/panel/deprecated-panel-compact.directive.mjs +0 -30
  456. package/esm2022/radio/deprecated-radio-button-compact.directive.mjs +0 -30
  457. package/esm2022/select/deprecated-select-compact.directive.mjs +0 -30
  458. package/esm2022/shellbar/deprecated-shellbar-compact.directive.mjs +0 -30
  459. package/esm2022/slider/deprecated-slider-cozy.directive.mjs +0 -20
  460. package/esm2022/split-button/deprecated-split-button-compact.directive.mjs +0 -30
  461. package/esm2022/step-input/deprecated-step-input-compact.directive.mjs +0 -30
  462. package/esm2022/switch/deprecated-switch-compact.directive.mjs +0 -30
  463. package/esm2022/table/deprecated-table-compact.directive.mjs +0 -29
  464. package/esm2022/table/deprecated-table-condensed.directive.mjs +0 -29
  465. package/esm2022/tabs/deprecated-tabs-compact.directive.mjs +0 -29
  466. package/esm2022/time/deprecated-time-content-density.directive.mjs +0 -30
  467. package/esm2022/time/i18n/time-i18n.mjs +0 -52
  468. package/esm2022/time-picker/deprecated-timepicker-compact.directive.mjs +0 -30
  469. package/esm2022/token/deprecated-tokenizer-content-density.directive.mjs +0 -30
  470. package/esm2022/wizard/deprecated-wizard-compact.directive.mjs +0 -30
  471. package/fesm2022/fundamental-ngx-core-alert.mjs +0 -437
  472. package/fesm2022/fundamental-ngx-core-alert.mjs.map +0 -1
  473. package/file-uploader/deprecated-file-uploader-content-density.directive.d.ts +0 -8
  474. package/form/form-control/deprecated-form-control-content-density.directive.d.ts +0 -8
  475. package/fundamental-ngx-core-v0.44.1-rc.3.tgz +0 -0
  476. package/input-group/deprecated-input-group-compact.directive.d.ts +0 -8
  477. package/list/deprecated-list-content-density,directive.d.ts +0 -8
  478. package/menu/directives/deprecated-menu-compact.directive.d.ts +0 -8
  479. package/message-box/directives/message-box-decisive-button.directive.d.ts +0 -11
  480. package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +0 -12
  481. package/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.d.ts +0 -8
  482. package/multi-input/deprecated-multi-input-compact.directive.d.ts +0 -8
  483. package/nested-list/deprecated-nested-list-compact.directive.d.ts +0 -8
  484. package/pagination/deprecated-pagination-compact.directive.d.ts +0 -8
  485. package/panel/deprecated-panel-compact.directive.d.ts +0 -8
  486. package/radio/deprecated-radio-button-compact.directive.d.ts +0 -8
  487. package/select/deprecated-select-compact.directive.d.ts +0 -8
  488. package/shellbar/deprecated-shellbar-compact.directive.d.ts +0 -8
  489. package/slider/deprecated-slider-cozy.directive.d.ts +0 -8
  490. package/split-button/deprecated-split-button-compact.directive.d.ts +0 -8
  491. package/step-input/deprecated-step-input-compact.directive.d.ts +0 -8
  492. package/switch/deprecated-switch-compact.directive.d.ts +0 -8
  493. package/table/deprecated-table-compact.directive.d.ts +0 -8
  494. package/table/deprecated-table-condensed.directive.d.ts +0 -8
  495. package/tabs/deprecated-tabs-compact.directive.d.ts +0 -8
  496. package/time/deprecated-time-content-density.directive.d.ts +0 -8
  497. package/time/i18n/time-i18n.d.ts +0 -42
  498. package/time-picker/deprecated-timepicker-compact.directive.d.ts +0 -8
  499. package/token/deprecated-tokenizer-content-density.directive.d.ts +0 -8
  500. package/wizard/deprecated-wizard-compact.directive.d.ts +0 -8
@@ -222,7 +222,7 @@ export class OverflowLayoutComponent {
222
222
  useExisting: OverflowLayoutComponent
223
223
  },
224
224
  OverflowLayoutService
225
- ], queries: [{ propertyName: "_moreButton", first: true, predicate: FD_OVERFLOW_EXPAND, descendants: true }, { propertyName: "_items", predicate: FD_OVERFLOW_ITEM_REF, descendants: true }, { propertyName: "_focusableOverflowItems", predicate: FD_OVERFLOW_FOCUSABLE_ITEM, descendants: true }], viewQueries: [{ propertyName: "_itemsWrapper", first: true, predicate: ["itemsWrapper"], descendants: true }, { propertyName: "_layoutContainer", first: true, predicate: ["layoutContainer"], descendants: true }, { propertyName: "_showMoreContainer", first: true, predicate: ["showMoreContainer"], descendants: true }, { propertyName: "_visibleItems", predicate: OverflowLayoutItemContainerDirective, descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"showMorePosition === 'left'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items-wrapper\">\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div\n fdOverflowLayoutItemContainer\n [first]=\"item.first\"\n [last]=\"item.last\"\n [softHidden]=\"item.softHidden\"\n >\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template [ngIf]=\"showMorePosition === 'right'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<ng-template #showMore>\n <div class=\"fd-overflow-layout__more\" [style.display]=\"_showMore ? 'block' : 'none'\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\">\n {{ 'coreOverflowLayout.moreItemsButton' | fdTranslate: { count: _hiddenItems.length } }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".fd-overflow-layout{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;width:100%;justify-content:space-between}.fd-overflow-layout:before,.fd-overflow-layout:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;display:inline-flex}.fd-overflow-layout__items:before,.fd-overflow-layout__items:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__more{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;flex-shrink:0}.fd-overflow-layout__more:before,.fd-overflow-layout__more:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;position:relative}.fd-overflow-layout__items-container:before,.fd-overflow-layout__items-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-wrapper{display:inline-flex}.fd-overflow-layout__popover-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:block;white-space:normal}.fd-overflow-layout__popover-container:before,.fd-overflow-layout__popover-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__item--soft-hidden{opacity:0!important;position:absolute!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i6.OverflowItemContainerRefDirective, selector: "[fdOverflowItemContainerRef]" }, { kind: "directive", type: i7.OverflowLayoutPopoverContentDirective, selector: "[fdOverflowLayoutPopoverContent]", inputs: ["items"] }, { kind: "directive", type: i8.OverflowLayoutItemContainerDirective, selector: "[fdOverflowLayoutItemContainer]", inputs: ["last", "first", "softHidden"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
225
+ ], queries: [{ propertyName: "_moreButton", first: true, predicate: FD_OVERFLOW_EXPAND, descendants: true }, { propertyName: "_items", predicate: FD_OVERFLOW_ITEM_REF, descendants: true }, { propertyName: "_focusableOverflowItems", predicate: FD_OVERFLOW_FOCUSABLE_ITEM, descendants: true }], viewQueries: [{ propertyName: "_itemsWrapper", first: true, predicate: ["itemsWrapper"], descendants: true }, { propertyName: "_layoutContainer", first: true, predicate: ["layoutContainer"], descendants: true }, { propertyName: "_showMoreContainer", first: true, predicate: ["showMoreContainer"], descendants: true }, { propertyName: "_visibleItems", predicate: OverflowLayoutItemContainerDirective, descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"showMorePosition === 'left'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items-wrapper\">\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div\n fdOverflowLayoutItemContainer\n [first]=\"item.first\"\n [last]=\"item.last\"\n [softHidden]=\"item.softHidden\"\n >\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template [ngIf]=\"showMorePosition === 'right'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<ng-template #showMore>\n <div class=\"fd-overflow-layout__more\" [style.display]=\"_showMore ? 'block' : 'none'\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\">\n {{ 'coreOverflowLayout.moreItemsButton' | fdTranslate : { count: _hiddenItems.length } }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".fd-overflow-layout{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;width:100%;justify-content:space-between}.fd-overflow-layout:before,.fd-overflow-layout:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;display:inline-flex}.fd-overflow-layout__items:before,.fd-overflow-layout__items:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__more{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;flex-shrink:0}.fd-overflow-layout__more:before,.fd-overflow-layout__more:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;position:relative}.fd-overflow-layout__items-container:before,.fd-overflow-layout__items-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-wrapper{display:inline-flex}.fd-overflow-layout__popover-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:block;white-space:normal}.fd-overflow-layout__popover-container:before,.fd-overflow-layout__popover-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__item--soft-hidden{opacity:0!important;position:absolute!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i6.OverflowItemContainerRefDirective, selector: "[fdOverflowItemContainerRef]" }, { kind: "directive", type: i7.OverflowLayoutPopoverContentDirective, selector: "[fdOverflowLayoutPopoverContent]", inputs: ["items"] }, { kind: "directive", type: i8.OverflowLayoutItemContainerDirective, selector: "[fdOverflowLayoutItemContainer]", inputs: ["last", "first", "softHidden"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
226
226
  }
227
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: OverflowLayoutComponent, decorators: [{
228
228
  type: Component,
@@ -232,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
232
232
  useExisting: OverflowLayoutComponent
233
233
  },
234
234
  OverflowLayoutService
235
- ], template: "<ng-template [ngIf]=\"showMorePosition === 'left'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items-wrapper\">\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div\n fdOverflowLayoutItemContainer\n [first]=\"item.first\"\n [last]=\"item.last\"\n [softHidden]=\"item.softHidden\"\n >\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template [ngIf]=\"showMorePosition === 'right'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<ng-template #showMore>\n <div class=\"fd-overflow-layout__more\" [style.display]=\"_showMore ? 'block' : 'none'\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\">\n {{ 'coreOverflowLayout.moreItemsButton' | fdTranslate: { count: _hiddenItems.length } }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".fd-overflow-layout{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;width:100%;justify-content:space-between}.fd-overflow-layout:before,.fd-overflow-layout:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;display:inline-flex}.fd-overflow-layout__items:before,.fd-overflow-layout__items:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__more{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;flex-shrink:0}.fd-overflow-layout__more:before,.fd-overflow-layout__more:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;position:relative}.fd-overflow-layout__items-container:before,.fd-overflow-layout__items-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-wrapper{display:inline-flex}.fd-overflow-layout__popover-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:block;white-space:normal}.fd-overflow-layout__popover-container:before,.fd-overflow-layout__popover-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__item--soft-hidden{opacity:0!important;position:absolute!important}\n"] }]
235
+ ], template: "<ng-template [ngIf]=\"showMorePosition === 'left'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items-wrapper\">\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div\n fdOverflowLayoutItemContainer\n [first]=\"item.first\"\n [last]=\"item.last\"\n [softHidden]=\"item.softHidden\"\n >\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template [ngIf]=\"showMorePosition === 'right'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<ng-template #showMore>\n <div class=\"fd-overflow-layout__more\" [style.display]=\"_showMore ? 'block' : 'none'\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\">\n {{ 'coreOverflowLayout.moreItemsButton' | fdTranslate : { count: _hiddenItems.length } }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last,\n globalIndex: item.globalIndex\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".fd-overflow-layout{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;width:100%;justify-content:space-between}.fd-overflow-layout:before,.fd-overflow-layout:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;display:inline-flex}.fd-overflow-layout__items:before,.fd-overflow-layout__items:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__more{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;flex-shrink:0}.fd-overflow-layout__more:before,.fd-overflow-layout__more:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;position:relative}.fd-overflow-layout__items-container:before,.fd-overflow-layout__items-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__items-wrapper{display:inline-flex}.fd-overflow-layout__popover-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:block;white-space:normal}.fd-overflow-layout__popover-container:before,.fd-overflow-layout__popover-container:after{box-sizing:inherit;font-size:inherit}.fd-overflow-layout__item--soft-hidden{opacity:0!important;position:absolute!important}\n"] }]
236
236
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.OverflowLayoutService }, { type: i2.RtlService, decorators: [{
237
237
  type: Optional
238
238
  }] }]; }, propDecorators: { maxVisibleItems: [{
@@ -276,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
276
276
  }], moreItemsButtonText: [{
277
277
  type: Input
278
278
  }] } });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL292ZXJmbG93LWxheW91dC9vdmVyZmxvdy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvb3ZlcmZsb3ctbGF5b3V0L292ZXJmbG93LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFDSCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFFWixZQUFZLEVBR1osS0FBSyxFQUVMLE1BQU0sRUFDTixRQUFRLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBTTdHLE9BQU8sRUFBd0IscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBZ0JwRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDOztPQUVHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDakMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQXVIRCxjQUFjO0lBQ2QsSUFBWSxPQUFPO1FBQ2YsT0FBTztZQUNILFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDNUIsY0FBYyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUU7WUFDdEQsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYTtZQUM5QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYTtZQUN4RCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtZQUMzRCxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDaEMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtZQUN2RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQzlDLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQ3FCLFdBQW9DLEVBQ3BDLE9BQWUsRUFDdEIsSUFBdUIsRUFDdkIsc0JBQTZDLEVBQzFCLElBQWdCO1FBSjVCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQTNJakQ7O1dBRUc7UUFFSCxzQkFBaUIsR0FBd0IsT0FBTyxDQUFDO1FBRWpELGtEQUFrRDtRQUVsRCxxQkFBZ0IsR0FBcUIsT0FBTyxDQUFDO1FBRTdDLHVEQUF1RDtRQUV2RCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0IsNkNBQTZDO1FBRTdDLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUVoQzs7V0FFRztRQUVILHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFL0M7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBbUQ5QyxjQUFjO1FBQ2QsY0FBUyxHQUFzQixFQUFFLENBQUM7UUFFbEMsY0FBYztRQUNkLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztRQUVyQyxjQUFjO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixjQUFjO1FBRUwsa0JBQWEsR0FBRyxvQkFBb0IsQ0FBQztRQUU5QyxjQUFjO1FBQ0csa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3BELGNBQWM7UUFDTixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFNUMsY0FBYztRQUNOLHFCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUVwQyxjQUFjO1FBQ04sdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLGNBQWM7UUFDTixTQUFJLEdBQWtCLEtBQUssQ0FBQztRQUtwQyx1Q0FBdUM7UUFFdkMsd0JBQW1CLEdBQXlDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDO1FBMEJuRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUVqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2Qix5R0FBeUc7UUFDekcsMkdBQTJHO1FBQzNHLGtHQUFrRztRQUNsRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLE9BQW9DO1FBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztRQUUzRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsc0JBQXNCLENBQUMsT0FBK0I7UUFDbEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYztJQUNkLGFBQWEsQ0FBQyxDQUFTLEVBQUUsSUFBcUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO0lBQ2QscUJBQXFCLENBQUMsTUFBZTtRQUNqQyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxDQUFDO1NBQzdEO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ2xCLFNBQVMsQ0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7YUFDakQsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QjtxQkFDckMsT0FBTyxFQUFFO3FCQUNULFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3JEO2FBQ0o7WUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsRUFBRTtnQkFDM0UsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUV2Qiw2REFBNkQ7Z0JBQzdELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDTixtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7YUFDMUUsUUFBUSxFQUFFO2FBQ1YseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNwQyx1QkFBdUIsRUFBRTthQUN6QixhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELHNDQUFzQztJQUM5QixlQUFlO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzlDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFFbEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OEdBN1RRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDJjQVJyQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSx1QkFBdUI7YUFDdkM7WUFDRCxxQkFBcUI7U0FDeEIsbUVBNERhLGtCQUFrQiw0REFQZixvQkFBb0IsNkVBY3BCLDBCQUEwQixrWUFPN0Isb0NBQW9DLGdEQzVIdEQsd3lHQTJFQTs7MkZEdkJhLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDSSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHlCQUF5Qjt5QkFDdkM7d0JBQ0QscUJBQXFCO3FCQUN4Qjs7MEJBOEpJLFFBQVE7NENBdkpULGVBQWU7c0JBRGxCLEtBQUs7Z0JBaUJOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFPUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFRUCxNQUFNO3NCQURMLGVBQWU7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVE1RCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCO2dCQVFoQyx1QkFBdUI7c0JBRHRCLGVBQWU7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVFsRSxhQUFhO3NCQURaLFlBQVk7dUJBQUMsb0NBQW9DO2dCQVFsRCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsY0FBYztnQkFRekIsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCO2dCQVE1QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQWNyQixhQUFhO3NCQURyQixXQUFXO3VCQUFDLE9BQU87Z0JBMEJwQixtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVEFCLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0LCBmcm9tRXZlbnQsIHN0YXJ0V2l0aCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1sYXlvdXQtaXRlbS1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJmbG93Q29udGFpbmVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWNvbnRhaW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmZsb3dFeHBhbmQgfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctZXhwYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctZm9jdXNhYmxlLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJmbG93SXRlbVJlZiB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1pdGVtLXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmZsb3dQb3BvdmVyQ29udGVudCB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1wb3BvdmVyLWNvbnRlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0Q29uZmlnLCBPdmVyZmxvd0xheW91dFNlcnZpY2UgfSBmcm9tICcuL292ZXJmbG93LWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEZEX09WRVJGTE9XX0NPTlRBSU5FUiB9IGZyb20gJy4vdG9rZW5zL292ZXJmbG93LWNvbnRhaW5lci50b2tlbic7XG5pbXBvcnQgeyBGRF9PVkVSRkxPV19FWFBBTkQgfSBmcm9tICcuL3Rva2Vucy9vdmVyZmxvdy1leHBhbmQudG9rZW4nO1xuaW1wb3J0IHsgRkRfT1ZFUkZMT1dfRk9DVVNBQkxFX0lURU0gfSBmcm9tICcuL3Rva2Vucy9vdmVyZmxvdy1mb2N1c2FibGUtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBGRF9PVkVSRkxPV19JVEVNX1JFRiB9IGZyb20gJy4vdG9rZW5zL292ZXJmbG93LWl0ZW0tcmVmLnRva2VuJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1vdmVyZmxvdy1sYXlvdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vdmVyZmxvdy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL292ZXJmbG93LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX09WRVJGTE9XX0NPTlRBSU5FUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBPdmVyZmxvd0xheW91dENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBPdmVyZmxvd0xheW91dFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE92ZXJmbG93Q29udGFpbmVyIHtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGFtb3VudCBvZiB2aXNpYmxlIGl0ZW1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1heFZpc2libGVJdGVtcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbWF4VmlzaWJsZUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWF4VmlzaWJsZUl0ZW1zID0gdmFsdWU7XG4gICAgICAgIHRoaXMudHJpZ2dlclJlY2FsY3VsYXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VmlzaWJsZUl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhWaXNpYmxlSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgZXZlbnQgdG8gbGlzdGVuIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHRocm91Z2ggaXRlbXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uVHJpZ2dlcjogJ2tleXVwJyB8ICdrZXlkb3duJyA9ICdrZXl1cCc7XG5cbiAgICAvKiogRGlyZWN0aW9uIG9mIHRoZSBmaXR0aW5nIGl0ZW1zIGNhbGN1bGF0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd01vcmVQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgICAvKiogV2hldGhlciB0byByZW5kZXIgaGlkZGVuIGl0ZW1zIGluIHJldmVyc2Ugb3JkZXIuICovXG4gICAgQElucHV0KClcbiAgICByZXZlcnNlSGlkZGVuSXRlbXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGVuYWJsZSBrZXlib2FyZCBuYXZpZ2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50LCB0cmlnZ2VyZWQgd2hlbiBhbW91bnQgb2YgdmlzaWJsZSBpdGVtcyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHZpc2libGVJdGVtc0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCwgdHJpZ2dlcmVkIHdoZW4gYW1vdW50IG9mIGhpZGRlbiBpdGVtcyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGhpZGRlbkl0ZW1zQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBMaXN0IG9mIGl0ZW1zIHRvIGRpc3BsYXkuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9PVkVSRkxPV19JVEVNX1JFRiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9pdGVtczogUXVlcnlMaXN0PE92ZXJmbG93SXRlbVJlZj47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVGVtcGxhdGUgZm9yIHRoZSBjdXN0b20gXCJNb3JlXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoRkRfT1ZFUkZMT1dfRVhQQU5EKVxuICAgIF9tb3JlQnV0dG9uOiBOdWxsYWJsZTxPdmVyZmxvd0V4cGFuZD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdCBvZiBpdGVtcyB0aGF0IGNhbiBiZSBmb2N1c2VkXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9PVkVSRkxPV19GT0NVU0FCTEVfSVRFTSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zOiBRdWVyeUxpc3Q8T3ZlcmZsb3dMYXlvdXRGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBMaXN0IG9mIHJlbmRlcmVkIGl0ZW1zLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlKVxuICAgIF92aXNpYmxlSXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0xheW91dEl0ZW1Db250YWluZXJEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEl0ZW1zIHdyYXBwZXIgZGlyZWN0aXZlLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zV3JhcHBlcicpXG4gICAgX2l0ZW1zV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGF5b3V0IGNvbnRhaW5lciBlbGVtZW50LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dENvbnRhaW5lcicpXG4gICAgX2xheW91dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogXCJNb3JlXCIgYnV0dG9uIGNvbnRhaW5lciBlbGVtZW50LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3Nob3dNb3JlQ29udGFpbmVyJylcbiAgICBfc2hvd01vcmVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWxsSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dNb3JlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHJlYWRvbmx5IF9pbml0aWFsQ2xhc3MgPSAnZmQtb3ZlcmZsb3ctbGF5b3V0JztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vdmVyZmxvd1BvcG92ZXJDb250ZW50OiBPdmVyZmxvd1BvcG92ZXJDb250ZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWxsVHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXhWaXNpYmxlSXRlbXMgPSBJbmZpbml0eTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2FuTGlzdGVuVG9SZXNpemUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyOiAncnRsJyB8ICdsdHInID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2tleWJvYXJkRXZlbnRzTWFuYWdlcjogTnVsbGFibGU8Rm9jdXNLZXlNYW5hZ2VyPE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbT4+O1xuXG4gICAgLyoqIE92ZXJmbG93IExheW91dCBtb3JlIGJ1dHRvbiB0ZXh0ICovXG4gICAgQElucHV0KClcbiAgICBtb3JlSXRlbXNCdXR0b25UZXh0OiAoaGlkZGVuSXRlbXNDb3VudDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoY291bnQpID0+IGAke2NvdW50fSBtb3JlYDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2NvbmZpZygpOiBPdmVyZmxvd0xheW91dENvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2aXNpYmxlSXRlbXM6IHRoaXMuX3Zpc2libGVJdGVtcy50b0FycmF5KCksXG4gICAgICAgICAgICBpdGVtczogdGhpcy5faXRlbXMudG9BcnJheSgpLFxuICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXM6IHRoaXMuX2ZvY3VzYWJsZU92ZXJmbG93SXRlbXMudG9BcnJheSgpLFxuICAgICAgICAgICAgaXRlbXNXcmFwcGVyOiB0aGlzLl9pdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHNob3dNb3JlQ29udGFpbmVyOiB0aGlzLl9zaG93TW9yZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgbGF5b3V0Q29udGFpbmVyRWxlbWVudDogdGhpcy5fbGF5b3V0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBtYXhWaXNpYmxlSXRlbXM6IHRoaXMubWF4VmlzaWJsZUl0ZW1zLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnNob3dNb3JlUG9zaXRpb24sXG4gICAgICAgICAgICBlbmFibGVLZXlib2FyZE5hdmlnYXRpb246IHRoaXMuZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uLFxuICAgICAgICAgICAgcmV2ZXJzZUhpZGRlbkl0ZW1zOiB0aGlzLnJldmVyc2VIaWRkZW5JdGVtc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX292ZXJmbG93TGF5b3V0U2VydmljZTogT3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGw6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2ZpbGxUcmlnZ2VyJC5waXBlKGRlYm91bmNlVGltZSgzMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLnNldENvbmZpZyh0aGlzLl9jb25maWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93TGF5b3V0U2VydmljZS5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0dXBLZXlib2FyZExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2UuZGV0ZWN0Q2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2Uub25SZXN1bHQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IHJlc3VsdC5oaWRkZW5JdGVtcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TW9yZSA9IHJlc3VsdC5zaG93TW9yZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuSXRlbXNDb3VudC5lbWl0KHJlc3VsdC5oaWRkZW5JdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zQ291bnQuZW1pdCh0aGlzLl9hbGxJdGVtcy5maWx0ZXIoKGkpID0+ICFpLmhpZGRlbikubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9pdGVtcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCgpID0+IHRoaXMuX2l0ZW1zKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbGxJdGVtcyA9IHRoaXMuX2l0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zZXRGb2N1c0tleU1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9SdGwoKTtcblxuICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBjYXNlcyB3aGVuIHRoZSBlbGVtZW50cyBhcmUgbm90IHJlbmRlcmVkIHlldCwgYnV0IHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQgYWxyZWFkeS5cbiAgICAgICAgLy8gSXQgbWF5IGhhcHBlbiB3aGVuIGl0J3MgaW5zaWRlIHRoZSBjb21wb25lbnRzIHRoYXQgYXJlIHdyYXBwaW5nIG5nLWNvbnRlbnQgd2l0aCBuZy1jb250YWluZXJzIGFuZCBzbyBvbi5cbiAgICAgICAgLy8gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgYSBnb29kIHNvbHV0aW9uIGZvciB0aGlzIGNhc2UsIGJ1dCBpdCdzIGhhcmRseSBtYW5hZ2VhYmxlIHdoZW4gdGVzdGluZy5cbiAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93TGF5b3V0U2VydmljZS5zdGFydExpc3RlbmluZyh0aGlzLl9jb25maWcpO1xuXG4gICAgICAgICAgICB0aGlzLl9jYW5MaXN0ZW5Ub1Jlc2l6ZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBsYXlvdXQgcmVjYWxjdWxhdGlvbiBvZiB0aGUgaXRlbXMuXG4gICAgICovXG4gICAgdHJpZ2dlclJlY2FsY3VsYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY2FuTGlzdGVuVG9SZXNpemUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2ZpbGxUcmlnZ2VyJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBjdXJyZW50IGZvY3VzZWQgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRoYXQgbmVlZHMgdG8gYmUgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBzZXRGb2N1c2VkRWxlbWVudChlbGVtZW50OiBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgcG9wb3ZlciBjb250ZW50IGRpcmVjdGl2ZSBmb3IgbWFpbiBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbnRlbnQge092ZXJmbG93UG9wb3ZlckNvbnRlbnR9IGRpcmVjdGl2ZVxuICAgICAqL1xuICAgIHJlZ2lzdGVyUG9wb3ZlckNvbnRlbnQoY29udGVudDogT3ZlcmZsb3dQb3BvdmVyQ29udGVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vdmVyZmxvd1BvcG92ZXJDb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pdGVtc1RyYWNrRm4oXzogbnVtYmVyLCBpdGVtOiBPdmVyZmxvd0l0ZW1SZWYpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Qb3BvdmVyU3RhdGVDaGFuZ2Uob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93UG9wb3ZlckNvbnRlbnQ/LmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBLZXlib2FyZExpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcilcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5lbmFibGVLZXlib2FyZE5hdmlnYXRpb24pKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uZm9jdXNhYmxlICYmIGl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1ddKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFzc2luZyB0aGUgZXZlbnQgdG8ga2V5IG1hbmFnZXIgc28sIHdlIGdldCBhIGNoYW5nZSBmaXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEZvY3VzS2V5TWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpciA9IHRoaXMuX3J0bD8ucnRsLnZhbHVlID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5fZm9jdXNhYmxlT3ZlcmZsb3dJdGVtcylcbiAgICAgICAgICAgIC53aXRoV3JhcCgpXG4gICAgICAgICAgICAud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpXG4gICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKVxuICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICFpdGVtLm5hdmlnYWJsZSB8fCBpdGVtLmhpZGRlbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUnRsIGNoYW5nZSBzdWJzY3JpcHRpb24gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1J0bCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydGwgfHwgIXRoaXMuZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5fcnRsLnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyID0gaXNSdGwgPyAncnRsJyA6ICdsdHInO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2Rpcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzaG93TW9yZVBvc2l0aW9uID09PSAnbGVmdCdcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hvd01vcmVcIj48L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdiBjbGFzcz1cImZkLW92ZXJmbG93LWxheW91dF9faXRlbXMtY29udGFpbmVyXCIgI2xheW91dENvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtb3ZlcmZsb3ctbGF5b3V0X19pdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1vdmVyZmxvdy1sYXlvdXRfX2l0ZW1zXCIgI2l0ZW1zV3JhcHBlcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2FsbEl0ZW1zOyB0cmFja0J5OiBfaXRlbXNUcmFja0ZuXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbZmlyc3RdPVwiaXRlbS5maXJzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYXN0XT1cIml0ZW0ubGFzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtzb2Z0SGlkZGVuXT1cIml0ZW0uc29mdEhpZGRlblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpmZE92ZXJmbG93SXRlbUNvbnRhaW5lclJlZj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbS5oaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdDogaXRlbS5maXJzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDogaXRlbS5sYXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxJbmRleDogaXRlbS5nbG9iYWxJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzaG93TW9yZVBvc2l0aW9uID09PSAncmlnaHQnXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNob3dNb3JlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd01vcmU+XG4gICAgPGRpdiBjbGFzcz1cImZkLW92ZXJmbG93LWxheW91dF9fbW9yZVwiIFtzdHlsZS5kaXNwbGF5XT1cIl9zaG93TW9yZSA/ICdibG9jaycgOiAnbm9uZSdcIiAjc2hvd01vcmVDb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNob3dNb3JlPlxuICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9vblBvcG92ZXJTdGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21heFdpZHRoXT1cIjMxMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2ZkTWVudV09XCJ0cnVlXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb3JlT3ZlcmZsb3dMYXlvdXQubW9yZUl0ZW1zQnV0dG9uJyB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBfaGlkZGVuSXRlbXMubGVuZ3RoIH0gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZE92ZXJmbG93TGF5b3V0UG9wb3ZlckNvbnRlbnQgW2l0ZW1zXT1cIl9oaWRkZW5JdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaGlkZGVuSXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uaGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGl0ZW0uaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdDogaXRlbS5maXJzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IGl0ZW0ubGFzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbEluZGV4OiBpdGVtLmdsb2JhbEluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9tb3JlQnV0dG9uPy50ZW1wbGF0ZVJlZiB8fCBkZWZhdWx0U2hvd01vcmVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfaGlkZGVuSXRlbXMgfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL292ZXJmbG93LWxheW91dC9vdmVyZmxvdy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvb3ZlcmZsb3ctbGF5b3V0L292ZXJmbG93LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFDSCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFFWixZQUFZLEVBR1osS0FBSyxFQUVMLE1BQU0sRUFDTixRQUFRLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBTTdHLE9BQU8sRUFBd0IscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJB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aEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFPUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFRUCxNQUFNO3NCQURMLGVBQWU7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVE1RCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCO2dCQVFoQyx1QkFBdUI7c0JBRHRCLGVBQWU7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVFsRSxhQUFhO3NCQURaLFlBQVk7dUJBQUMsb0NBQW9DO2dCQVFsRCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsY0FBYztnQkFRekIsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCO2dCQVE1QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQWNyQixhQUFhO3NCQURyQixXQUFXO3VCQUFDLE9BQU87Z0JBMEJwQixtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVEFCLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0LCBmcm9tRXZlbnQsIHN0YXJ0V2l0aCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1sYXlvdXQtaXRlbS1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJmbG93Q29udGFpbmVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWNvbnRhaW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmZsb3dFeHBhbmQgfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctZXhwYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctZm9jdXNhYmxlLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJmbG93SXRlbVJlZiB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1pdGVtLXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmZsb3dQb3BvdmVyQ29udGVudCB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1wb3BvdmVyLWNvbnRlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0Q29uZmlnLCBPdmVyZmxvd0xheW91dFNlcnZpY2UgfSBmcm9tICcuL292ZXJmbG93LWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEZEX09WRVJGTE9XX0NPTlRBSU5FUiB9IGZyb20gJy4vdG9rZW5zL292ZXJmbG93LWNvbnRhaW5lci50b2tlbic7XG5pbXBvcnQgeyBGRF9PVkVSRkxPV19FWFBBTkQgfSBmcm9tICcuL3Rva2Vucy9vdmVyZmxvdy1leHBhbmQudG9rZW4nO1xuaW1wb3J0IHsgRkRfT1ZFUkZMT1dfRk9DVVNBQkxFX0lURU0gfSBmcm9tICcuL3Rva2Vucy9vdmVyZmxvdy1mb2N1c2FibGUtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBGRF9PVkVSRkxPV19JVEVNX1JFRiB9IGZyb20gJy4vdG9rZW5zL292ZXJmbG93LWl0ZW0tcmVmLnRva2VuJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1vdmVyZmxvdy1sYXlvdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vdmVyZmxvdy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL292ZXJmbG93LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX09WRVJGTE9XX0NPTlRBSU5FUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBPdmVyZmxvd0xheW91dENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBPdmVyZmxvd0xheW91dFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE92ZXJmbG93Q29udGFpbmVyIHtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGFtb3VudCBvZiB2aXNpYmxlIGl0ZW1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1heFZpc2libGVJdGVtcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbWF4VmlzaWJsZUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWF4VmlzaWJsZUl0ZW1zID0gdmFsdWU7XG4gICAgICAgIHRoaXMudHJpZ2dlclJlY2FsY3VsYXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VmlzaWJsZUl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhWaXNpYmxlSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgZXZlbnQgdG8gbGlzdGVuIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHRocm91Z2ggaXRlbXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uVHJpZ2dlcjogJ2tleXVwJyB8ICdrZXlkb3duJyA9ICdrZXl1cCc7XG5cbiAgICAvKiogRGlyZWN0aW9uIG9mIHRoZSBmaXR0aW5nIGl0ZW1zIGNhbGN1bGF0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd01vcmVQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgICAvKiogV2hldGhlciB0byByZW5kZXIgaGlkZGVuIGl0ZW1zIGluIHJldmVyc2Ugb3JkZXIuICovXG4gICAgQElucHV0KClcbiAgICByZXZlcnNlSGlkZGVuSXRlbXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGVuYWJsZSBrZXlib2FyZCBuYXZpZ2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50LCB0cmlnZ2VyZWQgd2hlbiBhbW91bnQgb2YgdmlzaWJsZSBpdGVtcyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHZpc2libGVJdGVtc0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCwgdHJpZ2dlcmVkIHdoZW4gYW1vdW50IG9mIGhpZGRlbiBpdGVtcyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGhpZGRlbkl0ZW1zQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBMaXN0IG9mIGl0ZW1zIHRvIGRpc3BsYXkuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9PVkVSRkxPV19JVEVNX1JFRiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9pdGVtczogUXVlcnlMaXN0PE92ZXJmbG93SXRlbVJlZj47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVGVtcGxhdGUgZm9yIHRoZSBjdXN0b20gXCJNb3JlXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoRkRfT1ZFUkZMT1dfRVhQQU5EKVxuICAgIF9tb3JlQnV0dG9uOiBOdWxsYWJsZTxPdmVyZmxvd0V4cGFuZD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdCBvZiBpdGVtcyB0aGF0IGNhbiBiZSBmb2N1c2VkXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9PVkVSRkxPV19GT0NVU0FCTEVfSVRFTSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zOiBRdWVyeUxpc3Q8T3ZlcmZsb3dMYXlvdXRGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBMaXN0IG9mIHJlbmRlcmVkIGl0ZW1zLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlKVxuICAgIF92aXNpYmxlSXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0xheW91dEl0ZW1Db250YWluZXJEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEl0ZW1zIHdyYXBwZXIgZGlyZWN0aXZlLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zV3JhcHBlcicpXG4gICAgX2l0ZW1zV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGF5b3V0IGNvbnRhaW5lciBlbGVtZW50LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dENvbnRhaW5lcicpXG4gICAgX2xheW91dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogXCJNb3JlXCIgYnV0dG9uIGNvbnRhaW5lciBlbGVtZW50LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3Nob3dNb3JlQ29udGFpbmVyJylcbiAgICBfc2hvd01vcmVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWxsSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dNb3JlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHJlYWRvbmx5IF9pbml0aWFsQ2xhc3MgPSAnZmQtb3ZlcmZsb3ctbGF5b3V0JztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vdmVyZmxvd1BvcG92ZXJDb250ZW50OiBPdmVyZmxvd1BvcG92ZXJDb250ZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWxsVHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXhWaXNpYmxlSXRlbXMgPSBJbmZpbml0eTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2FuTGlzdGVuVG9SZXNpemUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyOiAncnRsJyB8ICdsdHInID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2tleWJvYXJkRXZlbnRzTWFuYWdlcjogTnVsbGFibGU8Rm9jdXNLZXlNYW5hZ2VyPE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbT4+O1xuXG4gICAgLyoqIE92ZXJmbG93IExheW91dCBtb3JlIGJ1dHRvbiB0ZXh0ICovXG4gICAgQElucHV0KClcbiAgICBtb3JlSXRlbXNCdXR0b25UZXh0OiAoaGlkZGVuSXRlbXNDb3VudDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoY291bnQpID0+IGAke2NvdW50fSBtb3JlYDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2NvbmZpZygpOiBPdmVyZmxvd0xheW91dENvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2aXNpYmxlSXRlbXM6IHRoaXMuX3Zpc2libGVJdGVtcy50b0FycmF5KCksXG4gICAgICAgICAgICBpdGVtczogdGhpcy5faXRlbXMudG9BcnJheSgpLFxuICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXM6IHRoaXMuX2ZvY3VzYWJsZU92ZXJmbG93SXRlbXMudG9BcnJheSgpLFxuICAgICAgICAgICAgaXRlbXNXcmFwcGVyOiB0aGlzLl9pdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHNob3dNb3JlQ29udGFpbmVyOiB0aGlzLl9zaG93TW9yZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgbGF5b3V0Q29udGFpbmVyRWxlbWVudDogdGhpcy5fbGF5b3V0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBtYXhWaXNpYmxlSXRlbXM6IHRoaXMubWF4VmlzaWJsZUl0ZW1zLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnNob3dNb3JlUG9zaXRpb24sXG4gICAgICAgICAgICBlbmFibGVLZXlib2FyZE5hdmlnYXRpb246IHRoaXMuZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uLFxuICAgICAgICAgICAgcmV2ZXJzZUhpZGRlbkl0ZW1zOiB0aGlzLnJldmVyc2VIaWRkZW5JdGVtc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX292ZXJmbG93TGF5b3V0U2VydmljZTogT3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGw6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2ZpbGxUcmlnZ2VyJC5waXBlKGRlYm91bmNlVGltZSgzMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLnNldENvbmZpZyh0aGlzLl9jb25maWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93TGF5b3V0U2VydmljZS5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0dXBLZXlib2FyZExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2UuZGV0ZWN0Q2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2Uub25SZXN1bHQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IHJlc3VsdC5oaWRkZW5JdGVtcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TW9yZSA9IHJlc3VsdC5zaG93TW9yZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuSXRlbXNDb3VudC5lbWl0KHJlc3VsdC5oaWRkZW5JdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zQ291bnQuZW1pdCh0aGlzLl9hbGxJdGVtcy5maWx0ZXIoKGkpID0+ICFpLmhpZGRlbikubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9pdGVtcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCgpID0+IHRoaXMuX2l0ZW1zKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbGxJdGVtcyA9IHRoaXMuX2l0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0xheW91dFNlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dMYXlvdXRTZXJ2aWNlLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zZXRGb2N1c0tleU1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9SdGwoKTtcblxuICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBjYXNlcyB3aGVuIHRoZSBlbGVtZW50cyBhcmUgbm90IHJlbmRlcmVkIHlldCwgYnV0IHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQgYWxyZWFkeS5cbiAgICAgICAgLy8gSXQgbWF5IGhhcHBlbiB3aGVuIGl0J3MgaW5zaWRlIHRoZSBjb21wb25lbnRzIHRoYXQgYXJlIHdyYXBwaW5nIG5nLWNvbnRlbnQgd2l0aCBuZy1jb250YWluZXJzIGFuZCBzbyBvbi5cbiAgICAgICAgLy8gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgYSBnb29kIHNvbHV0aW9uIGZvciB0aGlzIGNhc2UsIGJ1dCBpdCdzIGhhcmRseSBtYW5hZ2VhYmxlIHdoZW4gdGVzdGluZy5cbiAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93TGF5b3V0U2VydmljZS5zdGFydExpc3RlbmluZyh0aGlzLl9jb25maWcpO1xuXG4gICAgICAgICAgICB0aGlzLl9jYW5MaXN0ZW5Ub1Jlc2l6ZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBsYXlvdXQgcmVjYWxjdWxhdGlvbiBvZiB0aGUgaXRlbXMuXG4gICAgICovXG4gICAgdHJpZ2dlclJlY2FsY3VsYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY2FuTGlzdGVuVG9SZXNpemUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2ZpbGxUcmlnZ2VyJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBjdXJyZW50IGZvY3VzZWQgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRoYXQgbmVlZHMgdG8gYmUgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBzZXRGb2N1c2VkRWxlbWVudChlbGVtZW50OiBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgcG9wb3ZlciBjb250ZW50IGRpcmVjdGl2ZSBmb3IgbWFpbiBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbnRlbnQge092ZXJmbG93UG9wb3ZlckNvbnRlbnR9IGRpcmVjdGl2ZVxuICAgICAqL1xuICAgIHJlZ2lzdGVyUG9wb3ZlckNvbnRlbnQoY29udGVudDogT3ZlcmZsb3dQb3BvdmVyQ29udGVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vdmVyZmxvd1BvcG92ZXJDb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pdGVtc1RyYWNrRm4oXzogbnVtYmVyLCBpdGVtOiBPdmVyZmxvd0l0ZW1SZWYpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Qb3BvdmVyU3RhdGVDaGFuZ2Uob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93UG9wb3ZlckNvbnRlbnQ/LmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBLZXlib2FyZExpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcilcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5lbmFibGVLZXlib2FyZE5hdmlnYXRpb24pKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9mb2N1c2FibGVPdmVyZmxvd0l0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uZm9jdXNhYmxlICYmIGl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1ddKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFzc2luZyB0aGUgZXZlbnQgdG8ga2V5IG1hbmFnZXIgc28sIHdlIGdldCBhIGNoYW5nZSBmaXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEZvY3VzS2V5TWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpciA9IHRoaXMuX3J0bD8ucnRsLnZhbHVlID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5fZm9jdXNhYmxlT3ZlcmZsb3dJdGVtcylcbiAgICAgICAgICAgIC53aXRoV3JhcCgpXG4gICAgICAgICAgICAud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpXG4gICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKVxuICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICFpdGVtLm5hdmlnYWJsZSB8fCBpdGVtLmhpZGRlbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUnRsIGNoYW5nZSBzdWJzY3JpcHRpb24gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1J0bCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydGwgfHwgIXRoaXMuZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5fcnRsLnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyID0gaXNSdGwgPyAncnRsJyA6ICdsdHInO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2Rpcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzaG93TW9yZVBvc2l0aW9uID09PSAnbGVmdCdcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hvd01vcmVcIj48L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdiBjbGFzcz1cImZkLW92ZXJmbG93LWxheW91dF9faXRlbXMtY29udGFpbmVyXCIgI2xheW91dENvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtb3ZlcmZsb3ctbGF5b3V0X19pdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1vdmVyZmxvdy1sYXlvdXRfX2l0ZW1zXCIgI2l0ZW1zV3JhcHBlcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2FsbEl0ZW1zOyB0cmFja0J5OiBfaXRlbXNUcmFja0ZuXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbZmlyc3RdPVwiaXRlbS5maXJzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYXN0XT1cIml0ZW0ubGFzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtzb2Z0SGlkZGVuXT1cIml0ZW0uc29mdEhpZGRlblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpmZE92ZXJmbG93SXRlbUNvbnRhaW5lclJlZj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbS5oaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdDogaXRlbS5maXJzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDogaXRlbS5sYXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxJbmRleDogaXRlbS5nbG9iYWxJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzaG93TW9yZVBvc2l0aW9uID09PSAncmlnaHQnXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNob3dNb3JlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd01vcmU+XG4gICAgPGRpdiBjbGFzcz1cImZkLW92ZXJmbG93LWxheW91dF9fbW9yZVwiIFtzdHlsZS5kaXNwbGF5XT1cIl9zaG93TW9yZSA/ICdibG9jaycgOiAnbm9uZSdcIiAjc2hvd01vcmVDb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNob3dNb3JlPlxuICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9vblBvcG92ZXJTdGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21heFdpZHRoXT1cIjMxMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2ZkTWVudV09XCJ0cnVlXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb3JlT3ZlcmZsb3dMYXlvdXQubW9yZUl0ZW1zQnV0dG9uJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogX2hpZGRlbkl0ZW1zLmxlbmd0aCB9IH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmRPdmVyZmxvd0xheW91dFBvcG92ZXJDb250ZW50IFtpdGVtc109XCJfaGlkZGVuSXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2hpZGRlbkl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLmhpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Q6IGl0ZW0uZmlyc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0OiBpdGVtLmxhc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxJbmRleDogaXRlbS5nbG9iYWxJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfbW9yZUJ1dHRvbj8udGVtcGxhdGVSZWYgfHwgZGVmYXVsdFNob3dNb3JlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogX2hpZGRlbkl0ZW1zIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -2,5 +2,4 @@ export * from './pagination.module';
2
2
  export * from './pagination.component';
3
3
  export * from './pagination.model';
4
4
  export * from './pagination.service';
5
- export * from './deprecated-pagination-compact.directive';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9wYWdpbmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXByZWNhdGVkLXBhZ2luYXRpb24tY29tcGFjdC5kaXJlY3RpdmUnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9wYWdpbmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcbiJdfQ==