@design-system-rte/angular 1.2.1-rc.1 → 1.2.1-rc3

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 (492) hide show
  1. package/esm2022/lib/components/dropdown/dropdown.directive.mjs +9 -1
  2. package/esm2022/lib/components/icon/icon-map.mjs +112 -112
  3. package/esm2022/lib/components/loader/loader.component.mjs +22 -0
  4. package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +3 -3
  5. package/esm2022/lib/components/tooltip/tooltip.component.mjs +1 -1
  6. package/esm2022/lib/components/tooltip/tooltip.directive.mjs +1 -1
  7. package/esm2022/public-api.mjs +2 -1
  8. package/fesm2022/design-system-rte-angular.mjs +140 -115
  9. package/fesm2022/design-system-rte-angular.mjs.map +1 -1
  10. package/lib/components/chip/chip.component.d.ts +1 -1
  11. package/lib/components/dropdown/dropdown.directive.d.ts +1 -2
  12. package/lib/components/icon-button/icon-button.component.d.ts +1 -1
  13. package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +1 -1
  14. package/lib/components/loader/loader.component.d.ts +11 -0
  15. package/lib/components/popover/popover.component.d.ts +1 -1
  16. package/lib/components/tooltip/tooltip.component.d.ts +2 -2
  17. package/lib/components/tooltip/tooltip.directive.d.ts +1 -1
  18. package/package.json +2 -2
  19. package/public-api.d.ts +1 -0
  20. package/lib/assets/icons/add.svg +0 -3
  21. package/lib/assets/icons/add_circle_filled.svg +0 -3
  22. package/lib/assets/icons/add_circle_outlined.svg +0 -3
  23. package/lib/assets/icons/admin_panel_settings_filled.svg +0 -3
  24. package/lib/assets/icons/admin_panel_settings_outlined.svg +0 -3
  25. package/lib/assets/icons/alt_route.svg +0 -3
  26. package/lib/assets/icons/analytics_filled.svg +0 -3
  27. package/lib/assets/icons/analytics_outlined.svg +0 -3
  28. package/lib/assets/icons/apps.svg +0 -3
  29. package/lib/assets/icons/archive_filled.svg +0 -3
  30. package/lib/assets/icons/archive_outlined.svg +0 -3
  31. package/lib/assets/icons/arrow_alt_down.svg +0 -3
  32. package/lib/assets/icons/arrow_alt_down_left.svg +0 -3
  33. package/lib/assets/icons/arrow_alt_down_right.svg +0 -3
  34. package/lib/assets/icons/arrow_alt_left.svg +0 -3
  35. package/lib/assets/icons/arrow_alt_right.svg +0 -3
  36. package/lib/assets/icons/arrow_alt_up.svg +0 -3
  37. package/lib/assets/icons/arrow_alt_up_left.svg +0 -3
  38. package/lib/assets/icons/arrow_alt_up_right.svg +0 -3
  39. package/lib/assets/icons/arrow_angle_down_left.svg +0 -3
  40. package/lib/assets/icons/arrow_angle_down_right.svg +0 -3
  41. package/lib/assets/icons/arrow_angle_up_left.svg +0 -3
  42. package/lib/assets/icons/arrow_angle_up_right.svg +0 -3
  43. package/lib/assets/icons/arrow_chevron_down.svg +0 -3
  44. package/lib/assets/icons/arrow_chevron_left.svg +0 -3
  45. package/lib/assets/icons/arrow_chevron_right.svg +0 -3
  46. package/lib/assets/icons/arrow_chevron_up.svg +0 -3
  47. package/lib/assets/icons/arrow_circle_chevron_down_filled.svg +0 -3
  48. package/lib/assets/icons/arrow_circle_chevron_down_outlined.svg +0 -3
  49. package/lib/assets/icons/arrow_circle_chevron_left_filled.svg +0 -3
  50. package/lib/assets/icons/arrow_circle_chevron_left_outlined.svg +0 -3
  51. package/lib/assets/icons/arrow_circle_chevron_right_filled.svg +0 -3
  52. package/lib/assets/icons/arrow_circle_chevron_right_outlined.svg +0 -3
  53. package/lib/assets/icons/arrow_circle_chevron_up_filled.svg +0 -3
  54. package/lib/assets/icons/arrow_circle_chevron_up_outlined.svg +0 -3
  55. package/lib/assets/icons/arrow_circle_down_filled.svg +0 -3
  56. package/lib/assets/icons/arrow_circle_down_outlined.svg +0 -3
  57. package/lib/assets/icons/arrow_circle_left_filled.svg +0 -3
  58. package/lib/assets/icons/arrow_circle_left_outlined.svg +0 -3
  59. package/lib/assets/icons/arrow_circle_right_filled.svg +0 -3
  60. package/lib/assets/icons/arrow_circle_right_outlined.svg +0 -3
  61. package/lib/assets/icons/arrow_circle_up_filled.svg +0 -3
  62. package/lib/assets/icons/arrow_circle_up_outlined.svg +0 -3
  63. package/lib/assets/icons/arrow_double_down.svg +0 -3
  64. package/lib/assets/icons/arrow_double_left.svg +0 -3
  65. package/lib/assets/icons/arrow_double_right.svg +0 -3
  66. package/lib/assets/icons/arrow_double_up.svg +0 -3
  67. package/lib/assets/icons/arrow_down.svg +0 -3
  68. package/lib/assets/icons/arrow_down_left.svg +0 -3
  69. package/lib/assets/icons/arrow_down_right.svg +0 -3
  70. package/lib/assets/icons/arrow_drop_down.svg +0 -3
  71. package/lib/assets/icons/arrow_drop_up.svg +0 -3
  72. package/lib/assets/icons/arrow_left.svg +0 -3
  73. package/lib/assets/icons/arrow_right.svg +0 -3
  74. package/lib/assets/icons/arrow_up.svg +0 -3
  75. package/lib/assets/icons/arrow_up_left.svg +0 -3
  76. package/lib/assets/icons/arrow_up_right.svg +0 -3
  77. package/lib/assets/icons/article_filled.svg +0 -3
  78. package/lib/assets/icons/article_outlined.svg +0 -3
  79. package/lib/assets/icons/assignment_complete_filled.svg +0 -3
  80. package/lib/assets/icons/assignment_complete_outlined.svg +0 -3
  81. package/lib/assets/icons/assignment_filled.svg +0 -3
  82. package/lib/assets/icons/assignment_outlined.svg +0 -3
  83. package/lib/assets/icons/asterisk.svg +0 -3
  84. package/lib/assets/icons/attach_file.svg +0 -3
  85. package/lib/assets/icons/battery_alert_filled.svg +0 -3
  86. package/lib/assets/icons/battery_alert_outlined.svg +0 -3
  87. package/lib/assets/icons/battery_alt_empty.svg +0 -3
  88. package/lib/assets/icons/battery_alt_full.svg +0 -3
  89. package/lib/assets/icons/battery_charging.svg +0 -3
  90. package/lib/assets/icons/battery_charging_full_filled.svg +0 -3
  91. package/lib/assets/icons/battery_charging_full_outlined.svg +0 -3
  92. package/lib/assets/icons/battery_empty.svg +0 -3
  93. package/lib/assets/icons/battery_full.svg +0 -3
  94. package/lib/assets/icons/bluetooth.svg +0 -3
  95. package/lib/assets/icons/bluetooth_off.svg +0 -3
  96. package/lib/assets/icons/bolt_alt_circle_filled.svg +0 -3
  97. package/lib/assets/icons/bolt_alt_circle_outlined.svg +0 -3
  98. package/lib/assets/icons/bolt_alt_filled.svg +0 -3
  99. package/lib/assets/icons/bolt_alt_outlined.svg +0 -3
  100. package/lib/assets/icons/bolt_circle_filled.svg +0 -3
  101. package/lib/assets/icons/bolt_circle_outlined.svg +0 -3
  102. package/lib/assets/icons/bolt_filled.svg +0 -3
  103. package/lib/assets/icons/bolt_outlined.svg +0 -3
  104. package/lib/assets/icons/bookmark_filled.svg +0 -3
  105. package/lib/assets/icons/bookmark_outlined.svg +0 -3
  106. package/lib/assets/icons/bookmarks_filled.svg +0 -3
  107. package/lib/assets/icons/bookmarks_outlined.svg +0 -3
  108. package/lib/assets/icons/build_filled.svg +0 -3
  109. package/lib/assets/icons/build_outlined.svg +0 -3
  110. package/lib/assets/icons/calendar_available_filled.svg +0 -3
  111. package/lib/assets/icons/calendar_available_outlined.svg +0 -3
  112. package/lib/assets/icons/calendar_busy_filled.svg +0 -3
  113. package/lib/assets/icons/calendar_busy_outlined.svg +0 -3
  114. package/lib/assets/icons/calendar_month_filled.svg +0 -3
  115. package/lib/assets/icons/calendar_month_outlined.svg +0 -3
  116. package/lib/assets/icons/calendar_today_filled.svg +0 -3
  117. package/lib/assets/icons/calendar_today_outlined.svg +0 -3
  118. package/lib/assets/icons/call_filled.svg +0 -3
  119. package/lib/assets/icons/call_outlined.svg +0 -3
  120. package/lib/assets/icons/cancel_filled.svg +0 -3
  121. package/lib/assets/icons/cancel_outlined.svg +0 -3
  122. package/lib/assets/icons/category_filled.svg +0 -3
  123. package/lib/assets/icons/category_outlined.svg +0 -3
  124. package/lib/assets/icons/chart_add_filled.svg +0 -3
  125. package/lib/assets/icons/chart_add_outlined.svg +0 -3
  126. package/lib/assets/icons/chart_area_filled.svg +0 -3
  127. package/lib/assets/icons/chart_area_outlined.svg +0 -3
  128. package/lib/assets/icons/chart_bar.svg +0 -3
  129. package/lib/assets/icons/chart_bar_stacked.svg +0 -3
  130. package/lib/assets/icons/chart_pie_filled.svg +0 -3
  131. package/lib/assets/icons/chart_pie_outlined.svg +0 -3
  132. package/lib/assets/icons/chart_table_filled.svg +0 -3
  133. package/lib/assets/icons/chart_table_outlined.svg +0 -3
  134. package/lib/assets/icons/chat_alt_filled.svg +0 -3
  135. package/lib/assets/icons/chat_alt_outlined.svg +0 -3
  136. package/lib/assets/icons/chat_alt_unread_filled.svg +0 -3
  137. package/lib/assets/icons/chat_alt_unread_outlined.svg +0 -3
  138. package/lib/assets/icons/chat_filled.svg +0 -3
  139. package/lib/assets/icons/chat_outlined.svg +0 -3
  140. package/lib/assets/icons/chat_unread_filled.svg +0 -3
  141. package/lib/assets/icons/chat_unread_outlined.svg +0 -3
  142. package/lib/assets/icons/check.svg +0 -3
  143. package/lib/assets/icons/check_circle_filled.svg +0 -3
  144. package/lib/assets/icons/check_circle_outlined.svg +0 -3
  145. package/lib/assets/icons/check_indeterminate.svg +0 -3
  146. package/lib/assets/icons/check_small.svg +0 -3
  147. package/lib/assets/icons/checkbox_empty.svg +0 -3
  148. package/lib/assets/icons/checkbox_filled.svg +0 -3
  149. package/lib/assets/icons/checkbox_indeterminate_filled.svg +0 -3
  150. package/lib/assets/icons/checkbox_indeterminate_outlined.svg +0 -3
  151. package/lib/assets/icons/checkbox_outlined.svg +0 -3
  152. package/lib/assets/icons/clock_filled.svg +0 -3
  153. package/lib/assets/icons/clock_outlined.svg +0 -3
  154. package/lib/assets/icons/close.svg +0 -3
  155. package/lib/assets/icons/cloud_download_filled.svg +0 -3
  156. package/lib/assets/icons/cloud_download_outlined.svg +0 -3
  157. package/lib/assets/icons/cloud_filled.svg +0 -3
  158. package/lib/assets/icons/cloud_off_filled.svg +0 -3
  159. package/lib/assets/icons/cloud_off_outlined.svg +0 -3
  160. package/lib/assets/icons/cloud_outlined.svg +0 -3
  161. package/lib/assets/icons/cloud_upload_filled.svg +0 -3
  162. package/lib/assets/icons/cloud_upload_outlined.svg +0 -3
  163. package/lib/assets/icons/comment_add_filled.svg +0 -3
  164. package/lib/assets/icons/comment_add_outlined.svg +0 -3
  165. package/lib/assets/icons/comment_filled.svg +0 -3
  166. package/lib/assets/icons/comment_outlined.svg +0 -3
  167. package/lib/assets/icons/compare.svg +0 -3
  168. package/lib/assets/icons/copy_all.svg +0 -3
  169. package/lib/assets/icons/copy_filled.svg +0 -3
  170. package/lib/assets/icons/copy_outlined.svg +0 -3
  171. package/lib/assets/icons/crisis_alert.svg +0 -3
  172. package/lib/assets/icons/cut.svg +0 -3
  173. package/lib/assets/icons/dangerous_filled.svg +0 -3
  174. package/lib/assets/icons/dangerous_outlined.svg +0 -3
  175. package/lib/assets/icons/dashboard_filled.svg +0 -3
  176. package/lib/assets/icons/dashboard_outlined.svg +0 -3
  177. package/lib/assets/icons/database_filled.svg +0 -3
  178. package/lib/assets/icons/database_outlined.svg +0 -3
  179. package/lib/assets/icons/delete_filled.svg +0 -3
  180. package/lib/assets/icons/delete_outlined.svg +0 -3
  181. package/lib/assets/icons/desktop_filled.svg +0 -3
  182. package/lib/assets/icons/desktop_outlined.svg +0 -3
  183. package/lib/assets/icons/devices_filled.svg +0 -3
  184. package/lib/assets/icons/devices_outlined.svg +0 -3
  185. package/lib/assets/icons/download.svg +0 -3
  186. package/lib/assets/icons/download_done.svg +0 -3
  187. package/lib/assets/icons/draft_filled.svg +0 -3
  188. package/lib/assets/icons/draft_outlined.svg +0 -3
  189. package/lib/assets/icons/drag_handle.svg +0 -3
  190. package/lib/assets/icons/drag_indicator.svg +0 -3
  191. package/lib/assets/icons/eco_filled.svg +0 -3
  192. package/lib/assets/icons/eco_outlined.svg +0 -3
  193. package/lib/assets/icons/edit_filled.svg +0 -3
  194. package/lib/assets/icons/edit_outlined.svg +0 -3
  195. package/lib/assets/icons/electric_meter_filled.svg +0 -3
  196. package/lib/assets/icons/electric_meter_outlined.svg +0 -3
  197. package/lib/assets/icons/error_filled.svg +0 -3
  198. package/lib/assets/icons/error_outlined.svg +0 -3
  199. package/lib/assets/icons/exclamation.svg +0 -3
  200. package/lib/assets/icons/explore_filled.svg +0 -3
  201. package/lib/assets/icons/explore_off_filled.svg +0 -3
  202. package/lib/assets/icons/explore_off_outlined.svg +0 -3
  203. package/lib/assets/icons/explore_outlined.svg +0 -3
  204. package/lib/assets/icons/explore_travel.svg +0 -3
  205. package/lib/assets/icons/external_link.svg +0 -3
  206. package/lib/assets/icons/fast_forward_filled.svg +0 -3
  207. package/lib/assets/icons/fast_forward_outlined.svg +0 -3
  208. package/lib/assets/icons/fast_rewind_filled.svg +0 -3
  209. package/lib/assets/icons/fast_rewind_outlined.svg +0 -3
  210. package/lib/assets/icons/feedback_filled.svg +0 -3
  211. package/lib/assets/icons/feedback_outlined.svg +0 -3
  212. package/lib/assets/icons/file_copy_filled.svg +0 -3
  213. package/lib/assets/icons/file_copy_outlined.svg +0 -3
  214. package/lib/assets/icons/file_download_filled.svg +0 -3
  215. package/lib/assets/icons/file_download_outlined.svg +0 -3
  216. package/lib/assets/icons/file_upload_filled.svg +0 -3
  217. package/lib/assets/icons/file_upload_outlined.svg +0 -3
  218. package/lib/assets/icons/filter.svg +0 -3
  219. package/lib/assets/icons/filter_alt_filled.svg +0 -3
  220. package/lib/assets/icons/filter_alt_off_filled.svg +0 -3
  221. package/lib/assets/icons/filter_alt_off_outlined.svg +0 -3
  222. package/lib/assets/icons/filter_alt_outlined.svg +0 -3
  223. package/lib/assets/icons/filter_off.svg +0 -3
  224. package/lib/assets/icons/fire_filled.svg +0 -3
  225. package/lib/assets/icons/fire_outlined.svg +0 -3
  226. package/lib/assets/icons/first_page.svg +0 -3
  227. package/lib/assets/icons/fit_screen_filled.svg +0 -3
  228. package/lib/assets/icons/fit_screen_outlined.svg +0 -3
  229. package/lib/assets/icons/flag_filled.svg +0 -3
  230. package/lib/assets/icons/flag_outlined.svg +0 -3
  231. package/lib/assets/icons/flash_filled.svg +0 -3
  232. package/lib/assets/icons/flash_off_filled.svg +0 -3
  233. package/lib/assets/icons/flash_off_outlined.svg +0 -3
  234. package/lib/assets/icons/flash_outlined.svg +0 -3
  235. package/lib/assets/icons/folder_add_filled.svg +0 -3
  236. package/lib/assets/icons/folder_add_outlined.svg +0 -3
  237. package/lib/assets/icons/folder_filled.svg +0 -3
  238. package/lib/assets/icons/folder_move_filled.svg +0 -3
  239. package/lib/assets/icons/folder_move_outlined.svg +0 -3
  240. package/lib/assets/icons/folder_open_filled.svg +0 -3
  241. package/lib/assets/icons/folder_open_outlined.svg +0 -3
  242. package/lib/assets/icons/folder_outlined.svg +0 -3
  243. package/lib/assets/icons/folder_shared_filled.svg +0 -3
  244. package/lib/assets/icons/folder_shared_outlined.svg +0 -3
  245. package/lib/assets/icons/forum_filled.svg +0 -3
  246. package/lib/assets/icons/forum_outlined.svg +0 -3
  247. package/lib/assets/icons/forward.svg +0 -3
  248. package/lib/assets/icons/fullscreen.svg +0 -3
  249. package/lib/assets/icons/fullscreen_exit.svg +0 -3
  250. package/lib/assets/icons/group_add_filled.svg +0 -3
  251. package/lib/assets/icons/group_add_outlined.svg +0 -3
  252. package/lib/assets/icons/group_filled.svg +0 -3
  253. package/lib/assets/icons/group_outlined.svg +0 -3
  254. package/lib/assets/icons/groups_filled.svg +0 -3
  255. package/lib/assets/icons/groups_outlined.svg +0 -3
  256. package/lib/assets/icons/headphones_filled.svg +0 -3
  257. package/lib/assets/icons/headphones_outlined.svg +0 -3
  258. package/lib/assets/icons/heart_filled.svg +0 -3
  259. package/lib/assets/icons/heart_outlined.svg +0 -3
  260. package/lib/assets/icons/help_filled.svg +0 -3
  261. package/lib/assets/icons/help_outlined.svg +0 -3
  262. package/lib/assets/icons/history.svg +0 -3
  263. package/lib/assets/icons/home_filled.svg +0 -3
  264. package/lib/assets/icons/home_outlined.svg +0 -3
  265. package/lib/assets/icons/hourglass_empty.svg +0 -3
  266. package/lib/assets/icons/hourglass_filled.svg +0 -3
  267. package/lib/assets/icons/hourglass_outlined.svg +0 -3
  268. package/lib/assets/icons/image_broken_filled.svg +0 -3
  269. package/lib/assets/icons/image_broken_outlined.svg +0 -3
  270. package/lib/assets/icons/image_filled.svg +0 -3
  271. package/lib/assets/icons/image_gallery_filled.svg +0 -3
  272. package/lib/assets/icons/image_gallery_outlined.svg +0 -3
  273. package/lib/assets/icons/image_outlined.svg +0 -3
  274. package/lib/assets/icons/inbox_filled.svg +0 -3
  275. package/lib/assets/icons/inbox_outlined.svg +0 -3
  276. package/lib/assets/icons/info_filled.svg +0 -3
  277. package/lib/assets/icons/info_i.svg +0 -3
  278. package/lib/assets/icons/info_outlined.svg +0 -3
  279. package/lib/assets/icons/keep_filled.svg +0 -3
  280. package/lib/assets/icons/keep_off_filled.svg +0 -3
  281. package/lib/assets/icons/keep_off_outlined.svg +0 -3
  282. package/lib/assets/icons/keep_outlined.svg +0 -3
  283. package/lib/assets/icons/label_filled.svg +0 -3
  284. package/lib/assets/icons/label_outlined.svg +0 -3
  285. package/lib/assets/icons/language.svg +0 -3
  286. package/lib/assets/icons/laptop_filled.svg +0 -3
  287. package/lib/assets/icons/laptop_outlined.svg +0 -3
  288. package/lib/assets/icons/last_page.svg +0 -3
  289. package/lib/assets/icons/left_panel_close_filled.svg +0 -3
  290. package/lib/assets/icons/left_panel_close_outlined.svg +0 -3
  291. package/lib/assets/icons/left_panel_open_filled.svg +0 -3
  292. package/lib/assets/icons/left_panel_open_outlined.svg +0 -3
  293. package/lib/assets/icons/light_off_filled.svg +0 -3
  294. package/lib/assets/icons/light_off_outlined.svg +0 -3
  295. package/lib/assets/icons/lightbulb_alt_filled.svg +0 -3
  296. package/lib/assets/icons/lightbulb_alt_outlined.svg +0 -3
  297. package/lib/assets/icons/lightbulb_circle_filled.svg +0 -3
  298. package/lib/assets/icons/lightbulb_circle_outlined.svg +0 -3
  299. package/lib/assets/icons/lightbulb_filled.svg +0 -3
  300. package/lib/assets/icons/lightbulb_outlined.svg +0 -3
  301. package/lib/assets/icons/link.svg +0 -3
  302. package/lib/assets/icons/link_off.svg +0 -3
  303. package/lib/assets/icons/list.svg +0 -3
  304. package/lib/assets/icons/list_alt_filled.svg +0 -3
  305. package/lib/assets/icons/list_alt_outlined.svg +0 -3
  306. package/lib/assets/icons/location_disabled.svg +0 -10
  307. package/lib/assets/icons/location_me_filled.svg +0 -3
  308. package/lib/assets/icons/location_me_outlined.svg +0 -3
  309. package/lib/assets/icons/location_off_filled.svg +0 -3
  310. package/lib/assets/icons/location_off_outlined.svg +0 -3
  311. package/lib/assets/icons/location_on_filled.svg +0 -3
  312. package/lib/assets/icons/location_on_outlined.svg +0 -3
  313. package/lib/assets/icons/lock_filled.svg +0 -3
  314. package/lib/assets/icons/lock_open_filled.svg +0 -3
  315. package/lib/assets/icons/lock_open_outlined.svg +0 -3
  316. package/lib/assets/icons/lock_open_right_filled.svg +0 -3
  317. package/lib/assets/icons/lock_open_right_outlined.svg +0 -3
  318. package/lib/assets/icons/lock_outlined.svg +0 -3
  319. package/lib/assets/icons/login.svg +0 -3
  320. package/lib/assets/icons/logout.svg +0 -3
  321. package/lib/assets/icons/mail_filled.svg +0 -3
  322. package/lib/assets/icons/mail_outlined.svg +0 -3
  323. package/lib/assets/icons/mail_unread_filled.svg +0 -3
  324. package/lib/assets/icons/mail_unread_outlined.svg +0 -3
  325. package/lib/assets/icons/map_filled.svg +0 -3
  326. package/lib/assets/icons/map_outlined.svg +0 -3
  327. package/lib/assets/icons/menu.svg +0 -3
  328. package/lib/assets/icons/menu_open.svg +0 -3
  329. package/lib/assets/icons/mic_filled.svg +0 -3
  330. package/lib/assets/icons/mic_off_filled.svg +0 -3
  331. package/lib/assets/icons/mic_off_outlined.svg +0 -3
  332. package/lib/assets/icons/mic_outlined.svg +0 -3
  333. package/lib/assets/icons/mode_dark_filled.svg +0 -3
  334. package/lib/assets/icons/mode_dark_outlined.svg +0 -3
  335. package/lib/assets/icons/mode_light_filled.svg +0 -10
  336. package/lib/assets/icons/mode_light_outlined.svg +0 -10
  337. package/lib/assets/icons/monitoring.svg +0 -3
  338. package/lib/assets/icons/more_down.svg +0 -3
  339. package/lib/assets/icons/more_horiz.svg +0 -3
  340. package/lib/assets/icons/more_up.svg +0 -3
  341. package/lib/assets/icons/more_vert.svg +0 -3
  342. package/lib/assets/icons/notification_filled.svg +0 -3
  343. package/lib/assets/icons/notification_important_filled.svg +0 -3
  344. package/lib/assets/icons/notification_important_outlined.svg +0 -3
  345. package/lib/assets/icons/notification_off_filled.svg +0 -3
  346. package/lib/assets/icons/notification_off_outlined.svg +0 -3
  347. package/lib/assets/icons/notification_outlined.svg +0 -3
  348. package/lib/assets/icons/notification_unread_filled.svg +0 -3
  349. package/lib/assets/icons/notification_unread_outlined.svg +0 -3
  350. package/lib/assets/icons/ohm.svg +0 -3
  351. package/lib/assets/icons/open_in_full.svg +0 -3
  352. package/lib/assets/icons/palette_filled.svg +0 -3
  353. package/lib/assets/icons/palette_outlined.svg +0 -3
  354. package/lib/assets/icons/paste.svg +0 -3
  355. package/lib/assets/icons/pause_circle_filled.svg +0 -3
  356. package/lib/assets/icons/pause_circle_outlined.svg +0 -3
  357. package/lib/assets/icons/pause_filled.svg +0 -3
  358. package/lib/assets/icons/pause_outlined.svg +0 -3
  359. package/lib/assets/icons/photo_camera_filled.svg +0 -3
  360. package/lib/assets/icons/photo_camera_outlined.svg +0 -3
  361. package/lib/assets/icons/play_circle_filled.svg +0 -3
  362. package/lib/assets/icons/play_circle_outlined.svg +0 -3
  363. package/lib/assets/icons/play_filled.svg +0 -3
  364. package/lib/assets/icons/play_outlined.svg +0 -3
  365. package/lib/assets/icons/play_pause.svg +0 -3
  366. package/lib/assets/icons/power_filled.svg +0 -3
  367. package/lib/assets/icons/power_input.svg +0 -3
  368. package/lib/assets/icons/power_off_filled.svg +0 -3
  369. package/lib/assets/icons/power_off_outlined.svg +0 -3
  370. package/lib/assets/icons/power_outlined.svg +0 -3
  371. package/lib/assets/icons/power_plug.svg +0 -3
  372. package/lib/assets/icons/power_plug_connect_filled.svg +0 -3
  373. package/lib/assets/icons/power_plug_connect_outlined.svg +0 -3
  374. package/lib/assets/icons/power_settings.svg +0 -3
  375. package/lib/assets/icons/power_settings_circle_filled.svg +0 -3
  376. package/lib/assets/icons/power_settings_circle_outlined.svg +0 -3
  377. package/lib/assets/icons/power_solar_filled.svg +0 -3
  378. package/lib/assets/icons/power_solar_outlined.svg +0 -3
  379. package/lib/assets/icons/power_switch_filled.svg +0 -3
  380. package/lib/assets/icons/power_switch_outlined.svg +0 -3
  381. package/lib/assets/icons/power_wind_filled.svg +0 -3
  382. package/lib/assets/icons/power_wind_outlined.svg +0 -3
  383. package/lib/assets/icons/print_filled.svg +0 -3
  384. package/lib/assets/icons/print_outlined.svg +0 -3
  385. package/lib/assets/icons/priority_high.svg +0 -3
  386. package/lib/assets/icons/public.svg +0 -3
  387. package/lib/assets/icons/publish.svg +0 -3
  388. package/lib/assets/icons/question_mark.svg +0 -3
  389. package/lib/assets/icons/radar.svg +0 -3
  390. package/lib/assets/icons/radio_button_empty.svg +0 -3
  391. package/lib/assets/icons/redo.svg +0 -3
  392. package/lib/assets/icons/reload.svg +0 -3
  393. package/lib/assets/icons/remove.svg +0 -3
  394. package/lib/assets/icons/reply.svg +0 -3
  395. package/lib/assets/icons/reply_all.svg +0 -3
  396. package/lib/assets/icons/right_panel_close_filled.svg +0 -3
  397. package/lib/assets/icons/right_panel_close_outlined.svg +0 -3
  398. package/lib/assets/icons/right_panel_open_filled.svg +0 -3
  399. package/lib/assets/icons/right_panel_open_outlined.svg +0 -3
  400. package/lib/assets/icons/route.svg +0 -3
  401. package/lib/assets/icons/save_filled.svg +0 -3
  402. package/lib/assets/icons/save_outlined.svg +0 -3
  403. package/lib/assets/icons/search.svg +0 -3
  404. package/lib/assets/icons/send_filled.svg +0 -3
  405. package/lib/assets/icons/send_outlined.svg +0 -3
  406. package/lib/assets/icons/settings_filled.svg +0 -3
  407. package/lib/assets/icons/settings_outlined.svg +0 -3
  408. package/lib/assets/icons/share_filled.svg +0 -3
  409. package/lib/assets/icons/share_outlined.svg +0 -3
  410. package/lib/assets/icons/side_navigation.svg +0 -3
  411. package/lib/assets/icons/skip_next_filled.svg +0 -3
  412. package/lib/assets/icons/skip_next_outlined.svg +0 -3
  413. package/lib/assets/icons/skip_previous_filled.svg +0 -3
  414. package/lib/assets/icons/skip_previous_outlined.svg +0 -3
  415. package/lib/assets/icons/smartphone_filled.svg +0 -3
  416. package/lib/assets/icons/smartphone_outlined.svg +0 -3
  417. package/lib/assets/icons/sort.svg +0 -3
  418. package/lib/assets/icons/star_filled.svg +0 -3
  419. package/lib/assets/icons/star_outlined.svg +0 -3
  420. package/lib/assets/icons/sticky_note_filled.svg +0 -3
  421. package/lib/assets/icons/sticky_note_outlined.svg +0 -3
  422. package/lib/assets/icons/stop_circle_filled.svg +0 -3
  423. package/lib/assets/icons/stop_circle_outlined.svg +0 -3
  424. package/lib/assets/icons/stop_filled.svg +0 -3
  425. package/lib/assets/icons/stop_outlined.svg +0 -3
  426. package/lib/assets/icons/subtitles_filled.svg +0 -3
  427. package/lib/assets/icons/subtitles_outlined.svg +0 -3
  428. package/lib/assets/icons/support_agent.svg +0 -3
  429. package/lib/assets/icons/text_snippet_filled.svg +0 -3
  430. package/lib/assets/icons/text_snippet_outlined.svg +0 -3
  431. package/lib/assets/icons/timeline.svg +0 -3
  432. package/lib/assets/icons/trash_restore_filled.svg +0 -3
  433. package/lib/assets/icons/trash_restore_outlined.svg +0 -3
  434. package/lib/assets/icons/trending_down.svg +0 -3
  435. package/lib/assets/icons/trending_flat.svg +0 -3
  436. package/lib/assets/icons/trending_up.svg +0 -3
  437. package/lib/assets/icons/tune.svg +0 -3
  438. package/lib/assets/icons/unarchive_filled.svg +0 -3
  439. package/lib/assets/icons/unarchive_outlined.svg +0 -3
  440. package/lib/assets/icons/undo.svg +0 -3
  441. package/lib/assets/icons/upload.svg +0 -3
  442. package/lib/assets/icons/user_add_filled.svg +0 -3
  443. package/lib/assets/icons/user_add_outlined.svg +0 -3
  444. package/lib/assets/icons/user_circle_filled.svg +0 -3
  445. package/lib/assets/icons/user_circle_outlined.svg +0 -3
  446. package/lib/assets/icons/user_filled.svg +0 -3
  447. package/lib/assets/icons/user_outlined.svg +0 -3
  448. package/lib/assets/icons/user_settings_filled.svg +0 -3
  449. package/lib/assets/icons/user_settings_outlined.svg +0 -3
  450. package/lib/assets/icons/verified_filled.svg +0 -3
  451. package/lib/assets/icons/verified_outlined.svg +0 -3
  452. package/lib/assets/icons/video_camera_filled.svg +0 -3
  453. package/lib/assets/icons/video_camera_off_filled.svg +0 -3
  454. package/lib/assets/icons/video_camera_off_outlined.svg +0 -3
  455. package/lib/assets/icons/video_camera_outlined.svg +0 -3
  456. package/lib/assets/icons/video_gallery_filled.svg +0 -3
  457. package/lib/assets/icons/video_gallery_outlined.svg +0 -3
  458. package/lib/assets/icons/view_agenda_filled.svg +0 -3
  459. package/lib/assets/icons/view_agenda_outlined.svg +0 -3
  460. package/lib/assets/icons/view_column_filled.svg +0 -3
  461. package/lib/assets/icons/view_column_outlined.svg +0 -3
  462. package/lib/assets/icons/view_grid_filled.svg +0 -3
  463. package/lib/assets/icons/view_grid_outlined.svg +0 -3
  464. package/lib/assets/icons/view_kanban_filled.svg +0 -3
  465. package/lib/assets/icons/view_kanban_outlined.svg +0 -3
  466. package/lib/assets/icons/view_module_filled.svg +0 -3
  467. package/lib/assets/icons/view_module_outlined.svg +0 -3
  468. package/lib/assets/icons/view_timeline_filled.svg +0 -3
  469. package/lib/assets/icons/view_timeline_outlined.svg +0 -3
  470. package/lib/assets/icons/visibility_hide_filled.svg +0 -3
  471. package/lib/assets/icons/visibility_hide_outlined.svg +0 -3
  472. package/lib/assets/icons/visibility_show_filled.svg +0 -3
  473. package/lib/assets/icons/visibility_show_outlined.svg +0 -3
  474. package/lib/assets/icons/volume_down_filled.svg +0 -3
  475. package/lib/assets/icons/volume_down_outlined.svg +0 -3
  476. package/lib/assets/icons/volume_mute_filled.svg +0 -3
  477. package/lib/assets/icons/volume_mute_outlined.svg +0 -3
  478. package/lib/assets/icons/volume_off_filled.svg +0 -3
  479. package/lib/assets/icons/volume_off_outlined.svg +0 -3
  480. package/lib/assets/icons/volume_up_filled.svg +0 -3
  481. package/lib/assets/icons/volume_up_outlined.svg +0 -3
  482. package/lib/assets/icons/warning_filled.svg +0 -3
  483. package/lib/assets/icons/warning_outlined.svg +0 -3
  484. package/lib/assets/icons/water.svg +0 -3
  485. package/lib/assets/icons/water_alt.svg +0 -3
  486. package/lib/assets/icons/waterdrop_filled.svg +0 -3
  487. package/lib/assets/icons/waterdrop_outlined.svg +0 -3
  488. package/lib/assets/icons/wifi.svg +0 -3
  489. package/lib/assets/icons/wifi_off.svg +0 -3
  490. package/lib/assets/icons/windmill.svg +0 -3
  491. package/lib/assets/icons/zoom_in.svg +0 -3
  492. package/lib/assets/icons/zoom_out.svg +0 -3
@@ -2,6 +2,7 @@ import { ChangeDetectorRef, computed, contentChild, DestroyRef, Directive, effec
2
2
  import { waitForNextFrame } from "@design-system-rte/core/common/animation";
3
3
  import { DROPDOWN_ANIMATION_DURATION } from "@design-system-rte/core/components/dropdown/dropdown.constants";
4
4
  import { getAutoAlignment, getAutoPlacementDropdown, getCoordinates, } from "@design-system-rte/core/components/utils/auto-placement";
5
+ import { FOCUSABLE_BUTTONS_QUERY } from "@design-system-rte/core/constants/dom/dom.constants";
5
6
  import { ARROW_DOWN_KEY, ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
6
7
  import { DropdownService } from "../../services/dropdown.service";
7
8
  import { OverlayService } from "../../services/overlay.service";
@@ -145,6 +146,13 @@ export class DropdownDirective {
145
146
  this.dropdownMenuRef = null;
146
147
  this.removeClickOutsideListener();
147
148
  dropdownStateSubscription.unsubscribe();
149
+ const buttonTrigger = this.trigger()?.elementRef.nativeElement.querySelectorAll(FOCUSABLE_BUTTONS_QUERY)[0];
150
+ if (buttonTrigger) {
151
+ buttonTrigger.focus();
152
+ }
153
+ else {
154
+ this.trigger()?.elementRef.nativeElement.focus();
155
+ }
148
156
  }
149
157
  }
150
158
  });
@@ -221,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
221
229
  standalone: true,
222
230
  }]
223
231
  }], ctorParameters: () => [] });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7UUExQ1MsWUFBTyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FB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Q25CLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQTFQVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBBbGlnbm1lbnQgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tbW9uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9jb21tb24vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQgeyBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICByZWFkb25seSB0cmlnZ2VyID0gY29udGVudENoaWxkKERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IG1lbnUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51Q29tcG9uZW50KTtcblxuICByZWFkb25seSBydGVEcm9wZG93bklkID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBydGVEcm9wZG93blBvc2l0aW9uID0gaW5wdXQ8UG9zaXRpb24+KFwiYm90dG9tXCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bkFsaWdubWVudCA9IGlucHV0PEFsaWdubWVudD4oXCJzdGFydFwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Jc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvZm9jdXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bldpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duSWQgPSBgZHJvcGRvd25fJHsrK0Ryb3Bkb3duRGlyZWN0aXZlLmlkQ291bnRlcn1gO1xuXG4gIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duU2VydmljZSk7XG4gIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHJlYWRvbmx5IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSBjbGlja2VkT3V0c2lkZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBjbG9zZWREcm9wZG93biA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBtZW51SW5wdXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1lbnUoKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IG1lbnUuaXRlbXMoKSxcbiAgICAgIGhlYWRlclRlbXBsYXRlOiBtZW51LmhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIGZvb3RlclRlbXBsYXRlOiBtZW51LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIHdpZHRoOiBtZW51LndpZHRoKCksXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMucnRlRHJvcGRvd25Jc09wZW4oKTtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMubWVudUlucHV0cygpO1xuICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIGlucHV0cykge1xuICAgICAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZHJvcGRvd25NZW51UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25NZW51Q29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIG9uVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9PcGVuKCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgfVxuICB9XG5cbiAgb25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fFxuICAgICAgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkgfHxcbiAgICAgIChldmVudC5rZXkgPT09IEFSUk9XX0RPV05fS0VZICYmIHRoaXMudHJpZ2dlcigpPy5ydGVEcm9wZG93blRyaWdnZXJBY3RpdmF0ZVdpdGhBcnJvd0Rvd24oKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25NZW51RXZlbnQoZXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlcmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbG9zZURyb3Bkb3duLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMucnRlRHJvcGRvd25JZCgpIHx8IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JbnB1dHMoKTtcbiAgICB0aGlzLnBvc2l0aW9uRHJvcGRvd25NZW51KHRoaXMucnRlRHJvcGRvd25Qb3NpdGlvbigpKTtcbiAgICB0aGlzLmFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5pbnN0YW5jZS5pdGVtRXZlbnQuc3Vic2NyaWJlKChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgdGhpcy5vbk1lbnVFdmVudChldmVudCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kcm9wZG93blNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYgPSBudWxsO1xuXG4gICAgICAgICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgICAgICAgIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25JbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubWVudSgpPy5pdGVtcygpID8/IFtdO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJpdGVtc1wiLCBpdGVtcyk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImhlYWRlclRlbXBsYXRlXCIsIHRoaXMubWVudSgpPy5oZWFkZXJEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJmb290ZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2lnbldpZHRoKCk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbldpZHRoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMubWVudUlucHV0cygpPy53aWR0aCA/PyB0aGlzLnJ0ZURyb3Bkb3duV2lkdGgoKTtcbiAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiB3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXNPcGVuXCIsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ecm9wZG93bk1lbnUocG9zaXRpb246IFBvc2l0aW9uID0gXCJib3R0b21cIik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZiAmJiB0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuZHJvcGRvd25NZW51UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmICh0cmlnZ2VyRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImJsb2NrXCIpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb246IEV4Y2x1ZGU8UG9zaXRpb24sIFwiYXV0b1wiPiA9XG4gICAgICAgICAgcG9zaXRpb24gPT09IFwiYXV0b1wiID8gZ2V0QXV0b1BsYWNlbWVudERyb3Bkb3duKHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBcImJvdHRvbVwiKSA6IHBvc2l0aW9uO1xuICAgICAgICBjb25zdCBhdXRvQWxpZ25tZW50ID1cbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duQWxpZ25tZW50KCkgPz8gZ2V0QXV0b0FsaWdubWVudCh0cmlnZ2VyRWxlbWVudCwgZHJvcGRvd25NZW51RWxlbWVudCwgY29tcHV0ZWRQb3NpdGlvbik7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29vcmRpbmF0ZXMgPSBnZXRDb29yZGluYXRlcyhcbiAgICAgICAgICBjb21wdXRlZFBvc2l0aW9uLFxuICAgICAgICAgIHRyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIGRyb3Bkb3duTWVudUVsZW1lbnQuY2hpbGRyZW5bMF0sXG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bk9mZnNldCgpLFxuICAgICAgICAgIGF1dG9BbGlnbm1lbnQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcInRvcFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLnRvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwibGVmdFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLmxlZnR9cHhgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwib3BhY2l0eVwiLCBcIjFcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICBjb25zdCBpc01lbnVJdGVtQ2xpY2sgPSB0YXJnZXQuY2xvc2VzdChcIi5ydGUtZHJvcGRvd24taXRlbVwiKSAhPT0gbnVsbDtcbiAgICBpZiAoaXNNZW51SXRlbUNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xpY2tlZEluVHJpZ2dlciA9IHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcbiAgICBjb25zdCBjbGlja2VkSW5NZW51ID0gdGhpcy5kcm9wZG93bk1lbnVSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcblxuICAgIGlmICghY2xpY2tlZEluVHJpZ2dlciAmJiAhY2xpY2tlZEluTWVudSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB0aGlzLmNsaWNrZWRPdXRzaWRlLmVtaXQoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBhZGRDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWY/LnNldElucHV0KFwiaXNPcGVuXCIsIGZhbHNlKTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9LCBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG59XG4iXX0=
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7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QUNULElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFtQk8sdUJBQXVCO1FBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQWxRVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIFBvc2l0aW9uIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvY29tbW9uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHsgRFJPUERPV05fQU5JTUFUSU9OX0RVUkFUSU9OIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBnZXRBdXRvQWxpZ25tZW50LFxuICBnZXRBdXRvUGxhY2VtZW50RHJvcGRvd24sXG4gIGdldENvb3JkaW5hdGVzLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy91dGlscy9hdXRvLXBsYWNlbWVudFwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0JVVFRPTlNfUVVFUlkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2RvbS9kb20uY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICByZWFkb25seSB0cmlnZ2VyID0gY29udGVudENoaWxkKERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IG1lbnUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51Q29tcG9uZW50KTtcblxuICByZWFkb25seSBydGVEcm9wZG93bklkID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBydGVEcm9wZG93blBvc2l0aW9uID0gaW5wdXQ8UG9zaXRpb24+KFwiYm90dG9tXCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bkFsaWdubWVudCA9IGlucHV0PEFsaWdubWVudD4oXCJzdGFydFwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Jc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvZm9jdXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bldpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duSWQgPSBgZHJvcGRvd25fJHsrK0Ryb3Bkb3duRGlyZWN0aXZlLmlkQ291bnRlcn1gO1xuXG4gIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duU2VydmljZSk7XG4gIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHJlYWRvbmx5IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSBjbGlja2VkT3V0c2lkZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBjbG9zZWREcm9wZG93biA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBtZW51SW5wdXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1lbnUoKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IG1lbnUuaXRlbXMoKSxcbiAgICAgIGhlYWRlclRlbXBsYXRlOiBtZW51LmhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIGZvb3RlclRlbXBsYXRlOiBtZW51LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIHdpZHRoOiBtZW51LndpZHRoKCksXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMucnRlRHJvcGRvd25Jc09wZW4oKTtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMubWVudUlucHV0cygpO1xuICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIGlucHV0cykge1xuICAgICAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZHJvcGRvd25NZW51UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25NZW51Q29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIG9uVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9PcGVuKCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgfVxuICB9XG5cbiAgb25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fFxuICAgICAgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkgfHxcbiAgICAgIChldmVudC5rZXkgPT09IEFSUk9XX0RPV05fS0VZICYmIHRoaXMudHJpZ2dlcigpPy5ydGVEcm9wZG93blRyaWdnZXJBY3RpdmF0ZVdpdGhBcnJvd0Rvd24oKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25NZW51RXZlbnQoZXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlcmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbG9zZURyb3Bkb3duLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMucnRlRHJvcGRvd25JZCgpIHx8IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JbnB1dHMoKTtcbiAgICB0aGlzLnBvc2l0aW9uRHJvcGRvd25NZW51KHRoaXMucnRlRHJvcGRvd25Qb3NpdGlvbigpKTtcbiAgICB0aGlzLmFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5pbnN0YW5jZS5pdGVtRXZlbnQuc3Vic2NyaWJlKChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgdGhpcy5vbk1lbnVFdmVudChldmVudCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kcm9wZG93blNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYgPSBudWxsO1xuXG4gICAgICAgICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgICAgICAgIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBjb25zdCBidXR0b25UcmlnZ2VyID0gdGhpcy50cmlnZ2VyKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgRk9DVVNBQkxFX0JVVFRPTlNfUVVFUlksXG4gICAgICAgICAgKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBpZiAoYnV0dG9uVHJpZ2dlcikge1xuICAgICAgICAgICAgYnV0dG9uVHJpZ2dlci5mb2N1cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbklucHV0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5tZW51KCk/Lml0ZW1zKCkgPz8gW107XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcIml0ZW1zXCIsIGl0ZW1zKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaGVhZGVyVGVtcGxhdGVcIiwgdGhpcy5tZW51KCk/LmhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZik7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImZvb3RlclRlbXBsYXRlXCIsIHRoaXMubWVudSgpPy5mb290ZXJEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuYXNzaWduV2lkdGgoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5tZW51SW5wdXRzKCk/LndpZHRoID8/IHRoaXMucnRlRHJvcGRvd25XaWR0aCgpO1xuICAgIGlmICh3aWR0aCAhPT0gdW5kZWZpbmVkICYmIHdpZHRoICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcIndpZHRoXCIsIHdpZHRoKTtcbiAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gdGhpcy5kcm9wZG93bk1lbnVSZWY/LnNldElucHV0KFwiaXNPcGVuXCIsIHRydWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJpc09wZW5cIiwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwb3NpdGlvbkRyb3Bkb3duTWVudShwb3NpdGlvbjogUG9zaXRpb24gPSBcImJvdHRvbVwiKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIHRoaXMudHJpZ2dlcigpKSB7XG4gICAgICBjb25zdCBkcm9wZG93bk1lbnVFbGVtZW50ID0gdGhpcy5kcm9wZG93bk1lbnVSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKHRyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJkaXNwbGF5XCIsIFwiYmxvY2tcIik7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRQb3NpdGlvbjogRXhjbHVkZTxQb3NpdGlvbiwgXCJhdXRvXCI+ID1cbiAgICAgICAgICBwb3NpdGlvbiA9PT0gXCJhdXRvXCIgPyBnZXRBdXRvUGxhY2VtZW50RHJvcGRvd24odHJpZ2dlckVsZW1lbnQsIGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiYm90dG9tXCIpIDogcG9zaXRpb247XG4gICAgICAgIGNvbnN0IGF1dG9BbGlnbm1lbnQgPVxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25BbGlnbm1lbnQoKSA/PyBnZXRBdXRvQWxpZ25tZW50KHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBjb21wdXRlZFBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRDb29yZGluYXRlcyA9IGdldENvb3JkaW5hdGVzKFxuICAgICAgICAgIGNvbXB1dGVkUG9zaXRpb24sXG4gICAgICAgICAgdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgZHJvcGRvd25NZW51RWxlbWVudC5jaGlsZHJlblswXSxcbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duT2Zmc2V0KCksXG4gICAgICAgICAgYXV0b0FsaWdubWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwidG9wXCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMudG9wfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJsZWZ0XCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMubGVmdH1weGApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJvcGFjaXR5XCIsIFwiMVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgIGNvbnN0IGlzTWVudUl0ZW1DbGljayA9IHRhcmdldC5jbG9zZXN0KFwiLnJ0ZS1kcm9wZG93bi1pdGVtXCIpICE9PSBudWxsO1xuICAgIGlmIChpc01lbnVJdGVtQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGlja2VkSW5UcmlnZ2VyID0gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuICAgIGNvbnN0IGNsaWNrZWRJbk1lbnUgPSB0aGlzLmRyb3Bkb3duTWVudVJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuXG4gICAgaWYgKCFjbGlja2VkSW5UcmlnZ2VyICYmICFjbGlja2VkSW5NZW51KSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIHRoaXMuY2xpY2tlZE91dHNpZGUuZW1pdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZj8uc2V0SW5wdXQoXCJpc09wZW5cIiwgZmFsc2UpO1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgIH0sIERST1BET1dOX0FOSU1BVElPTl9EVVJBVElPTik7XG4gIH1cbn1cbiJdfQ==