@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779349365 → 5.0.0-next.3-dev.1779440997

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 (873) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/accordion.js +1 -1
  3. package/accordion.pure.js +1 -1
  4. package/action-group/action-group.component.js +1 -1
  5. package/action-group.js +1 -1
  6. package/action-group.pure.js +1 -1
  7. package/alert/alert/alert.component.js +1 -1
  8. package/alert/alert-group/alert-group.component.js +1 -1
  9. package/alert.js +2 -2
  10. package/alert.pure.js +2 -2
  11. package/autocomplete/autocomplete-base-element.js +1 -1
  12. package/autocomplete/autocomplete.component.js +1 -1
  13. package/autocomplete.js +1 -1
  14. package/autocomplete.pure.js +1 -1
  15. package/{block-link-common-B1E38xKe.js → block-link-common-C_rUmc2u.js} +1 -1
  16. package/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  17. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  18. package/breadcrumb.js +2 -2
  19. package/breadcrumb.pure.js +2 -2
  20. package/button/common/button-common.js +1 -1
  21. package/button/mini-button-group/mini-button-group.component.js +1 -1
  22. package/button/mini-button-link/mini-button-link.component.js +1 -1
  23. package/button.js +3 -3
  24. package/button.pure.js +3 -3
  25. package/calendar/calendar/calendar.component.js +1 -1
  26. package/calendar/calendar-day/calendar-day.component.js +1 -1
  27. package/calendar/common/calendar-cell-base-element.js +1 -1
  28. package/{calendar.component-BhUyyFtR.js → calendar.component-DKKptbyy.js} +1 -1
  29. package/calendar.js +3 -3
  30. package/calendar.pure.js +3 -3
  31. package/card/card/card.component.js +1 -1
  32. package/card/card-badge/card-badge.component.js +1 -1
  33. package/card/common/card-action-common.js +1 -1
  34. package/card.js +3 -3
  35. package/card.pure.js +3 -3
  36. package/carousel/carousel/carousel.component.js +1 -1
  37. package/carousel/carousel-item/carousel-item.component.js +1 -1
  38. package/carousel/carousel-list/carousel-list.component.js +1 -1
  39. package/carousel.js +3 -3
  40. package/carousel.pure.js +3 -3
  41. package/checkbox/checkbox.component.js +1 -1
  42. package/checkbox/common/checkbox-common.js +1 -1
  43. package/{checkbox.component-PkHijotV.js → checkbox.component-DNVief0q.js} +1 -1
  44. package/checkbox.js +2 -2
  45. package/checkbox.pure.js +2 -2
  46. package/chip/chip/chip.component.js +1 -1
  47. package/chip/chip-group/chip-group.component.js +1 -1
  48. package/chip-label/chip-label.component.js +1 -1
  49. package/chip-label.js +1 -1
  50. package/chip-label.pure.js +1 -1
  51. package/chip.js +2 -2
  52. package/chip.pure.js +2 -2
  53. package/clock/clock.component.js +1 -1
  54. package/clock.js +1 -1
  55. package/clock.pure.js +1 -1
  56. package/container/container/container.component.js +1 -1
  57. package/container/sticky-bar/sticky-bar.component.js +1 -1
  58. package/container.js +2 -2
  59. package/container.pure.js +2 -2
  60. package/core/base-elements/action-base-element.js +1 -1
  61. package/core/base-elements/element.js +1 -1
  62. package/core/base-elements/open-close-base-element.js +1 -1
  63. package/core/base-elements/selection-group-base-element.js +1 -1
  64. package/core/controllers/media-matchers-controller.js +1 -1
  65. package/core/mixins/panel-mixin.js +1 -1
  66. package/core/styles/styles.js +1 -1
  67. package/core.js +4 -4
  68. package/date-input/date-input.component.js +1 -1
  69. package/date-input.js +1 -1
  70. package/date-input.pure.js +1 -1
  71. package/datepicker/common/datepicker-button.js +1 -1
  72. package/datepicker.js +1 -1
  73. package/datepicker.pure.js +1 -1
  74. package/development/accordion/accordion.component.js +1 -1
  75. package/development/{accordion.component-xx7XabDY.js → accordion.component-pI5XM-iT.js} +1 -1
  76. package/development/accordion.js +1 -1
  77. package/development/accordion.pure.js +1 -1
  78. package/development/action-group/action-group.component.js +1 -1
  79. package/development/{action-group.component-wgXPpkQe.js → action-group.component-pe0c2zni.js} +1 -1
  80. package/development/action-group.js +1 -1
  81. package/development/action-group.pure.js +1 -1
  82. package/development/alert/alert/alert.component.js +1 -1
  83. package/development/alert/alert-group/alert-group.component.js +1 -1
  84. package/development/{alert-group.component-w5PbU_4C.js → alert-group.component-DYmA3spO.js} +1 -1
  85. package/development/{alert.component-Dzm5z0jh.js → alert.component-Cq0IPcfk.js} +1 -1
  86. package/development/alert.js +2 -2
  87. package/development/alert.pure.js +2 -2
  88. package/development/autocomplete/autocomplete-base-element.js +1 -1
  89. package/development/autocomplete/autocomplete.component.js +1 -1
  90. package/development/{autocomplete-base-element-D1b0RA_u.js → autocomplete-base-element-DtwUdjCd.js} +1 -1
  91. package/development/autocomplete.js +1 -1
  92. package/development/autocomplete.pure.js +1 -1
  93. package/development/{block-link-common-DNvRfeay.js → block-link-common-C0XzZIvS.js} +2 -2
  94. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  95. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  96. package/development/{breadcrumb-group.component-DvY1hq51.js → breadcrumb-group.component-mofwnLS1.js} +1 -1
  97. package/development/{breadcrumb.component-D6Cd2FPo.js → breadcrumb.component-B3XsV_Aq.js} +1 -1
  98. package/development/breadcrumb.js +2 -2
  99. package/development/breadcrumb.pure.js +2 -2
  100. package/development/button/common/button-common.js +1 -1
  101. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  102. package/development/button/mini-button-link/mini-button-link.component.js +1 -1
  103. package/development/{button-common-C-A7Dulr.js → button-common-DvuYiiku.js} +1 -1
  104. package/development/button.js +3 -3
  105. package/development/button.pure.js +3 -3
  106. package/development/calendar/calendar/calendar.component.js +1 -1
  107. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  108. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  109. package/development/{calendar-cell-base-element-mWRSDeWc.js → calendar-cell-base-element-D_CTwDn9.js} +1 -1
  110. package/development/{calendar-day.component-BHvdRxll.js → calendar-day.component-Bux4ezpg.js} +1 -1
  111. package/development/{calendar.component-DnC8Zkdk.js → calendar.component-NvMN01yi.js} +2 -2
  112. package/development/calendar.js +3 -3
  113. package/development/calendar.pure.js +3 -3
  114. package/development/card/card/card.component.js +1 -1
  115. package/development/card/card-badge/card-badge.component.js +1 -1
  116. package/development/card/common/card-action-common.js +1 -1
  117. package/development/{card-action-common-zS5iNz23.js → card-action-common-Dr-EX0gr.js} +1 -1
  118. package/development/{card-badge.component-CEfJdJBs.js → card-badge.component-CENJTZ4g.js} +1 -1
  119. package/development/{card.component-CL2gHoyP.js → card.component-CVAgqDNK.js} +1 -1
  120. package/development/card.js +3 -3
  121. package/development/card.pure.js +3 -3
  122. package/development/carousel/carousel/carousel.component.js +1 -1
  123. package/development/carousel/carousel-item/carousel-item.component.js +1 -1
  124. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  125. package/development/{carousel-item.component-nuo7jAt3.js → carousel-item.component-DjDAg-DC.js} +1 -1
  126. package/development/{carousel-list.component-B8PUREwS.js → carousel-list.component-BLY3JfDq.js} +1 -1
  127. package/development/{carousel.component-D_KIJ9Bb.js → carousel.component-CD2_hauh.js} +1 -1
  128. package/development/carousel.js +3 -3
  129. package/development/carousel.pure.js +3 -3
  130. package/development/checkbox/checkbox.component.js +1 -1
  131. package/development/checkbox/common/checkbox-common.js +1 -1
  132. package/development/{checkbox-common-225vizTc.js → checkbox-common-o3Su1McS.js} +1 -1
  133. package/development/{checkbox.component-DiNnV2_Y.js → checkbox.component-6zr36eQq.js} +2 -2
  134. package/development/checkbox.js +2 -2
  135. package/development/checkbox.pure.js +2 -2
  136. package/development/chip/chip/chip.component.js +1 -1
  137. package/development/chip/chip-group/chip-group.component.js +1 -1
  138. package/development/{chip-group.component-CVizDsAz.js → chip-group.component-BY025VTb.js} +1 -1
  139. package/development/chip-label/chip-label.component.js +1 -1
  140. package/development/{chip-label.component-DHHNtvTt.js → chip-label.component-D8Il3pvk.js} +1 -1
  141. package/development/chip-label.js +1 -1
  142. package/development/chip-label.pure.js +1 -1
  143. package/development/{chip.component-Uuf3tGFz.js → chip.component-C2VmHfZa.js} +1 -1
  144. package/development/chip.js +2 -2
  145. package/development/chip.pure.js +2 -2
  146. package/development/clock/clock.component.js +1 -1
  147. package/development/{clock.component-DcM1WFTN.js → clock.component-CyCPrufS.js} +1 -1
  148. package/development/clock.js +1 -1
  149. package/development/clock.pure.js +1 -1
  150. package/development/{compact-paginator.component-m8MASSB7.js → compact-paginator.component-CKHS0U1v.js} +1 -1
  151. package/development/container/container/container.component.js +1 -1
  152. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  153. package/development/{container.component-D1Qgp4HW.js → container.component-Ctdd3D-A.js} +1 -1
  154. package/development/container.js +2 -2
  155. package/development/container.pure.js +2 -2
  156. package/development/core/base-elements/action-base-element.js +1 -1
  157. package/development/core/base-elements/element.js +1 -1
  158. package/development/core/base-elements/open-close-base-element.js +1 -1
  159. package/development/core/base-elements/selection-group-base-element.js +1 -1
  160. package/development/core/controllers/media-matchers-controller.js +1 -1
  161. package/development/core/mixins/panel-mixin.js +1 -1
  162. package/development/core/styles/styles.js +1 -1
  163. package/development/core.js +4 -4
  164. package/development/date-input/date-input.component.js +1 -1
  165. package/development/{date-input.component-HxRyCudr.js → date-input.component-Cy7m1ocL.js} +1 -1
  166. package/development/date-input.js +1 -1
  167. package/development/date-input.pure.js +1 -1
  168. package/development/datepicker/common/datepicker-button.js +1 -1
  169. package/development/{datepicker-button-Bb76EBYH.js → datepicker-button-BvBQB6Sv.js} +1 -1
  170. package/development/datepicker.js +1 -1
  171. package/development/datepicker.pure.js +1 -1
  172. package/development/dialog/dialog/dialog.component.js +1 -1
  173. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  174. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  175. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  176. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  177. package/development/{dialog-actions.component-e0ZTTUin.js → dialog-actions.component-Dyzg7z-B.js} +1 -1
  178. package/development/{dialog-close-button.component-Idc00dB9.js → dialog-close-button.component-dgLnsaLx.js} +1 -1
  179. package/development/{dialog-content.component-CThU7Z8A.js → dialog-content.component-DDtVV0Lh.js} +1 -1
  180. package/development/{dialog-title.component-0uNsUR2C.js → dialog-title.component-DyItyahT.js} +1 -1
  181. package/development/{dialog.component-cZ3SAujq.js → dialog.component-B1Tke2ym.js} +1 -1
  182. package/development/dialog.js +5 -5
  183. package/development/dialog.pure.js +5 -5
  184. package/development/divider/divider.component.js +1 -1
  185. package/development/{divider.component-Ck_0vISe.js → divider.component-CYP23U4q.js} +1 -1
  186. package/development/divider.js +1 -1
  187. package/development/divider.pure.js +1 -1
  188. package/development/{element-BAsBayf5.js → element-BS28ba7w.js} +1 -1
  189. package/development/{error.component-WCkiwM7_.js → error.component-Bp7ztvQB.js} +1 -1
  190. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  191. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  192. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  193. package/development/{expansion-panel-content.component-Bs0pYNJO.js → expansion-panel-content.component-CKhGtjji.js} +1 -1
  194. package/development/{expansion-panel-header.component-gg5A_7Pz.js → expansion-panel-header.component-Do3pLbzs.js} +1 -1
  195. package/development/{expansion-panel.component-DcFrWkIt.js → expansion-panel.component-BnbRiLrk.js} +1 -1
  196. package/development/expansion-panel.js +3 -3
  197. package/development/expansion-panel.pure.js +3 -3
  198. package/development/file-selector/common/file-selector-common.js +1 -1
  199. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  200. package/development/{file-selector-common-Dd0S0qE3.js → file-selector-common-CCvgN1G2.js} +1 -1
  201. package/development/{file-selector-dropzone.component-DWLdqMmI.js → file-selector-dropzone.component-BeqSG2IM.js} +1 -1
  202. package/development/file-selector.js +2 -2
  203. package/development/file-selector.pure.js +2 -2
  204. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  205. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  206. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  207. package/development/{flip-card-details.component-BYv_W66a.js → flip-card-details.component-RJ43uhma.js} +1 -1
  208. package/development/{flip-card-summary.component-jLNjJUNl.js → flip-card-summary.component-D9zMzU8m.js} +1 -1
  209. package/development/{flip-card.component-MmiS-x-W.js → flip-card.component-CAsfIcvt.js} +1 -1
  210. package/development/flip-card.js +3 -3
  211. package/development/flip-card.pure.js +3 -3
  212. package/development/footer/footer.component.js +1 -1
  213. package/development/{footer.component-K2bWizjw.js → footer.component-DJH7E5aO.js} +1 -1
  214. package/development/footer.js +1 -1
  215. package/development/footer.pure.js +1 -1
  216. package/development/form-field/error/error.component.js +1 -1
  217. package/development/form-field/form-field/form-field.component.js +1 -1
  218. package/development/form-field/hint/hint.component.js +1 -1
  219. package/development/{form-field.component-BzjbIwnz.js → form-field.component-YM-Z5aZf.js} +1 -1
  220. package/development/form-field.js +3 -3
  221. package/development/form-field.pure.js +3 -3
  222. package/development/header/common/header-action-common.js +1 -1
  223. package/development/header/header/header.component.js +1 -1
  224. package/development/header/header-environment/header-environment.component.js +1 -1
  225. package/development/{header-action-common-BYB-HYtn.js → header-action-common-CDiEhWa0.js} +1 -1
  226. package/development/{header-environment.component-CIyxQwkQ.js → header-environment.component--4YEZyKq.js} +1 -1
  227. package/development/{header.component-C4e7CNql.js → header.component-B43X03Jg.js} +1 -1
  228. package/development/header.js +3 -3
  229. package/development/header.pure.js +3 -3
  230. package/development/{hint.component-BB9QLGGx.js → hint.component-CdM71SNj.js} +1 -1
  231. package/development/icon/icon-base.js +1 -1
  232. package/development/icon/icon.component.js +1 -1
  233. package/development/{icon-base-DrBHy9BT.js → icon-base-Cz7F4MJ9.js} +1 -1
  234. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  235. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  236. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  237. package/development/{icon-sidebar-container.component-CM94Spwy.js → icon-sidebar-container.component-G8wyj1Sb.js} +1 -1
  238. package/development/{icon-sidebar-content.component-BP9W5ZxR.js → icon-sidebar-content.component-D1VPTNhO.js} +1 -1
  239. package/development/{icon-sidebar.component-B68P2aNh.js → icon-sidebar.component-DLlCKweu.js} +1 -1
  240. package/development/icon-sidebar.js +3 -3
  241. package/development/icon-sidebar.pure.js +3 -3
  242. package/development/icon.js +1 -1
  243. package/development/icon.pure.js +1 -1
  244. package/development/image/image.component.js +1 -1
  245. package/development/{image.component-EfSMgHI_.js → image.component-DoRIca5y.js} +5 -16
  246. package/development/image.js +1 -1
  247. package/development/image.pure.js +1 -1
  248. package/development/{inline-link-common-BV6oAtAA.js → inline-link-common-CXYyREBi.js} +2 -2
  249. package/development/journey-header/journey-header.component.js +1 -1
  250. package/development/{journey-header.component-CA4juz9x.js → journey-header.component-tBukBhVq.js} +1 -1
  251. package/development/journey-header.js +1 -1
  252. package/development/journey-header.pure.js +1 -1
  253. package/development/lead-container/lead-container.component.js +1 -1
  254. package/development/{lead-container.component-C_mFeq1B.js → lead-container.component-D93DLU_J.js} +1 -1
  255. package/development/lead-container.js +1 -1
  256. package/development/lead-container.pure.js +1 -1
  257. package/development/link/common/block-link-common.js +1 -1
  258. package/development/link/common/inline-link-common.js +1 -1
  259. package/development/link/common/link-common.js +1 -1
  260. package/development/{link-common-2RGn9Qz_.js → link-common-DWTP-lFX.js} +1 -1
  261. package/development/link-list/common/link-list-base.js +1 -1
  262. package/development/link-list/link-list.component.js +1 -1
  263. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  264. package/development/{link-list-anchor.component-BMtCbCRD.js → link-list-anchor.component-9C1H5KXX.js} +1 -1
  265. package/development/link-list-anchor.js +1 -1
  266. package/development/link-list-anchor.pure.js +1 -1
  267. package/development/{link-list-base-CKT3c8yW.js → link-list-base-CaPkNR_V.js} +1 -1
  268. package/development/{link-list.component-CLxhjWR7.js → link-list.component-By_lSSYE.js} +2 -2
  269. package/development/link-list.js +2 -2
  270. package/development/link-list.pure.js +2 -2
  271. package/development/link.js +3 -3
  272. package/development/link.pure.js +3 -3
  273. package/development/loading-indicator/loading-indicator.component.js +1 -1
  274. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  275. package/development/{loading-indicator-circle.component-Cfjw5vyz.js → loading-indicator-circle.component-CudNN1Z6.js} +1 -1
  276. package/development/loading-indicator-circle.js +1 -1
  277. package/development/loading-indicator-circle.pure.js +1 -1
  278. package/development/{loading-indicator.component-By2VaLCf.js → loading-indicator.component-sEdpEBpx.js} +1 -1
  279. package/development/loading-indicator.js +1 -1
  280. package/development/loading-indicator.pure.js +1 -1
  281. package/development/logo/logo.component.js +1 -1
  282. package/development/{logo.component-DYKgAgq0.js → logo.component-SqyPA1M-.js} +1 -1
  283. package/development/logo.js +1 -1
  284. package/development/logo.pure.js +1 -1
  285. package/development/map-container/map-container.component.js +1 -1
  286. package/development/{map-container.component-D0UVTolK.js → map-container.component-N-e2oBnd.js} +1 -1
  287. package/development/map-container.js +1 -1
  288. package/development/map-container.pure.js +1 -1
  289. package/development/menu/common/menu-action-common.js +1 -1
  290. package/development/menu/menu/menu.component.js +1 -1
  291. package/development/{menu-action-common-DL4t4_-J.js → menu-action-common-BUIJFq1R.js} +1 -1
  292. package/development/{menu.component-3qEIFutc.js → menu.component-B3uWxwbt.js} +1 -1
  293. package/development/menu.js +2 -2
  294. package/development/menu.pure.js +2 -2
  295. package/development/message/message.component.js +1 -1
  296. package/development/{message.component-BJ-84a0B.js → message.component-BrqWVCJV.js} +1 -1
  297. package/development/message.js +1 -1
  298. package/development/message.pure.js +1 -1
  299. package/development/{mini-button-group.component-C88pIaaL.js → mini-button-group.component-C2KcpK5c.js} +1 -1
  300. package/development/{mini-button-link.component-kpRsi8I2.js → mini-button-link.component-BHaNYXk0.js} +1 -1
  301. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  302. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  303. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  304. package/development/{mini-calendar-day.component-BLkJ12Bw.js → mini-calendar-day.component-UG6wpckK.js} +1 -1
  305. package/development/{mini-calendar-month.component-D8XjjLmN.js → mini-calendar-month.component-GE-cmXxP.js} +1 -1
  306. package/development/{mini-calendar.component-BOk8JovO.js → mini-calendar.component-DQ_zxELt.js} +1 -1
  307. package/development/mini-calendar.js +3 -3
  308. package/development/mini-calendar.pure.js +3 -3
  309. package/development/navigation/common/navigation-action-common.js +1 -1
  310. package/development/navigation/navigation/navigation.component.js +1 -1
  311. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  312. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  313. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  314. package/development/{navigation-action-common-wrzPCkMT.js → navigation-action-common-BdJOaItd.js} +1 -1
  315. package/development/{navigation-list.component-CU-SGC8c.js → navigation-list.component-CWOSnwgm.js} +1 -1
  316. package/development/{navigation-marker.component-CTk9U0kA.js → navigation-marker.component-D3Vbe1dH.js} +1 -1
  317. package/development/{navigation-section.component-iaypc6yQ.js → navigation-section.component-DhMQspKb.js} +1 -1
  318. package/development/{navigation.component-Bu1wVUNx.js → navigation.component-BOBqdfXo.js} +1 -1
  319. package/development/navigation.js +5 -5
  320. package/development/navigation.pure.js +5 -5
  321. package/development/notification/notification.component.js +1 -1
  322. package/development/{notification.component-BiJSo7Pl.js → notification.component-BlWGjgrP.js} +1 -1
  323. package/development/notification.js +1 -1
  324. package/development/notification.pure.js +1 -1
  325. package/development/{optgroup-base-element-BzfcJgxG.js → optgroup-base-element--G8myprb.js} +1 -1
  326. package/development/option/optgroup/optgroup-base-element.js +1 -1
  327. package/development/option/optgroup/optgroup.component.js +1 -1
  328. package/development/option/option/option.component.js +1 -1
  329. package/development/option/option-hint/option-hint.component.js +1 -1
  330. package/development/option/option-styles.js +1 -1
  331. package/development/{option-hint.component-DPfgcpVn.js → option-hint.component-DyCue4gx.js} +1 -1
  332. package/development/{option-styles-IEQgVpCe.js → option-styles-CTdAvJu3.js} +1 -1
  333. package/development/{option.component-ImZLdB0V.js → option.component-BSHq97Of.js} +1 -1
  334. package/development/option.js +4 -4
  335. package/development/option.pure.js +4 -4
  336. package/development/overlay/overlay.component.js +1 -1
  337. package/development/{overlay.component-DywhKxO1.js → overlay.component-D_BLhfdG.js} +1 -1
  338. package/development/overlay.js +1 -1
  339. package/development/overlay.pure.js +1 -1
  340. package/development/paginator/common/paginator-common.js +1 -1
  341. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  342. package/development/paginator/paginator/paginator.component.js +1 -1
  343. package/development/{paginator-common-CRchtcXc.js → paginator-common-B9EN1Fjx.js} +1 -1
  344. package/development/{paginator.component-B8y5tVCL.js → paginator.component-DisPJ2Qa.js} +4 -4
  345. package/development/paginator.js +3 -3
  346. package/development/paginator.pure.js +3 -3
  347. package/development/{panel-mixin-DPybe45K.js → panel-mixin-Da_cHQn-.js} +1 -1
  348. package/development/popover/popover.component.js +1 -1
  349. package/development/{popover.component-Ds4fNNsq.js → popover.component-DtIhw37L.js} +1 -1
  350. package/development/popover.js +1 -1
  351. package/development/popover.pure.js +1 -1
  352. package/development/radio-button/common/radio-button-common.js +1 -1
  353. package/development/radio-button/radio-button.component.js +1 -1
  354. package/development/{radio-button-common-BS05acqM.js → radio-button-common-BaGYHkpD.js} +1 -1
  355. package/development/{radio-button.component-BUSzf7Eq.js → radio-button.component-CmQGrMHr.js} +2 -2
  356. package/development/radio-button.js +2 -2
  357. package/development/radio-button.pure.js +2 -2
  358. package/development/{sbb-tokens-bg2elLoF.js → sbb-tokens-DGQJTWqa.js} +1 -1
  359. package/development/select/select.component.js +1 -1
  360. package/development/{select.component-o-3HlzOK.js → select.component-3S8E6UwN.js} +1 -1
  361. package/development/select.js +1 -1
  362. package/development/select.pure.js +1 -1
  363. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  364. package/development/{selection-action-panel.component-C3UlmLkJ.js → selection-action-panel.component-pd9B6lRD.js} +1 -1
  365. package/development/selection-action-panel.js +1 -1
  366. package/development/selection-action-panel.pure.js +1 -1
  367. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  368. package/development/{selection-expansion-panel.component-4Ron8XNy.js → selection-expansion-panel.component-Dtfnz1AE.js} +1 -1
  369. package/development/selection-expansion-panel.js +1 -1
  370. package/development/selection-expansion-panel.pure.js +1 -1
  371. package/development/{selection-group-base-element-B3vOsN1Q.js → selection-group-base-element-govDKjsE.js} +2 -2
  372. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  373. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  374. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  375. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  376. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  377. package/development/{sidebar-close-button.component-ByQtC65O.js → sidebar-close-button.component-tkbcoR-I.js} +1 -1
  378. package/development/{sidebar-container.component-BmavabUg.js → sidebar-container.component-CbE9878W.js} +1 -1
  379. package/development/{sidebar-content.component-DcsIIWpz.js → sidebar-content.component-CBfaiAsJ.js} +1 -1
  380. package/development/{sidebar-title.component-DgJdkoiE.js → sidebar-title.component-ZKarv4Mz.js} +1 -1
  381. package/development/{sidebar.component-BszwyJQa.js → sidebar.component-Cmkn9X-M.js} +1 -1
  382. package/development/sidebar.js +5 -5
  383. package/development/sidebar.pure.js +5 -5
  384. package/development/signet/signet.component.js +1 -1
  385. package/development/{signet.component-DXLTVjJS.js → signet.component--kuRWLGw.js} +1 -1
  386. package/development/signet.js +1 -1
  387. package/development/signet.pure.js +1 -1
  388. package/development/skiplink-list/skiplink-list.component.js +1 -1
  389. package/development/{skiplink-list.component-BC8rpyf9.js → skiplink-list.component-Cpyo7JAH.js} +1 -1
  390. package/development/skiplink-list.js +1 -1
  391. package/development/skiplink-list.pure.js +1 -1
  392. package/development/slider/slider.component.js +1 -1
  393. package/development/{slider.component-Dz4Nl2ZL.js → slider.component-C4SpkHDK.js} +1 -1
  394. package/development/slider.js +1 -1
  395. package/development/slider.pure.js +1 -1
  396. package/development/status/status.component.js +1 -1
  397. package/development/{status.component-thSGiOrl.js → status.component-DnnX98xP.js} +1 -1
  398. package/development/status.js +1 -1
  399. package/development/status.pure.js +1 -1
  400. package/development/{step-label.component-CpdXVv32.js → step-label.component-i13wQWJJ.js} +1 -1
  401. package/development/{step.component-CfA-kmt1.js → step.component-lTLpcOUh.js} +1 -1
  402. package/development/stepper/step/step.component.js +1 -1
  403. package/development/stepper/step-label/step-label.component.js +1 -1
  404. package/development/stepper/stepper/stepper.component.js +1 -1
  405. package/development/{stepper.component-2yRFnnju.js → stepper.component-DBE685VL.js} +1 -1
  406. package/development/stepper.js +3 -3
  407. package/development/stepper.pure.js +3 -3
  408. package/development/{sticky-bar.component-DZpy1gBU.js → sticky-bar.component-BEhV0azF.js} +1 -1
  409. package/development/{styles-D8h0fqb5.js → styles-AtR8n_N4.js} +1 -1
  410. package/development/{styles-BmvNZZle.js → styles-BTV2MyrZ.js} +1 -1
  411. package/development/{tab-group.component-DhcfjVxe.js → tab-group.component-DBg6I8W7.js} +1 -1
  412. package/development/{tab-label.component-B7YEhR1C.js → tab-label.component-QHzOZ28y.js} +1 -1
  413. package/development/{tab-nav-bar.component-DrZ1U7lM.js → tab-nav-bar.component-DC4Ba7w2.js} +1 -1
  414. package/development/{tab.component-COn1G0XA.js → tab.component-Bsdzs7P2.js} +1 -1
  415. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  416. package/development/{table-wrapper.component-9Lst6dT2.js → table-wrapper.component-Cqc9PHZl.js} +1 -1
  417. package/development/table.js +1 -1
  418. package/development/table.pure.js +1 -1
  419. package/development/tabs/common/styles.js +1 -1
  420. package/development/tabs/tab/tab.component.js +1 -1
  421. package/development/tabs/tab-group/tab-group.component.js +1 -1
  422. package/development/tabs/tab-label/tab-label.component.js +1 -1
  423. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  424. package/development/tabs.js +5 -5
  425. package/development/tabs.pure.js +5 -5
  426. package/development/tag/tag/tag.component.js +1 -1
  427. package/development/tag/tag-group/tag-group.component.js +1 -1
  428. package/development/{tag-group.component-OQ3sxhZI.js → tag-group.component-jSgluqL-.js} +1 -1
  429. package/development/{tag.component-DWOPDWwe.js → tag.component-D6YowucW.js} +1 -1
  430. package/development/tag.js +2 -2
  431. package/development/tag.pure.js +2 -2
  432. package/development/teaser/teaser.component.js +1 -1
  433. package/development/teaser-hero/teaser-hero.component.js +1 -1
  434. package/development/{teaser-hero.component-Cp42iJGt.js → teaser-hero.component-d0iLCgA7.js} +1 -1
  435. package/development/teaser-hero.js +1 -1
  436. package/development/teaser-hero.pure.js +1 -1
  437. package/development/teaser-panel/teaser-panel.component.js +1 -1
  438. package/development/{teaser-panel.component-ptDalUEe.js → teaser-panel.component-CXT3l9-M.js} +1 -1
  439. package/development/teaser-panel.js +1 -1
  440. package/development/teaser-panel.pure.js +1 -1
  441. package/development/teaser-product/common/teaser-product-common.js +1 -1
  442. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  443. package/development/{teaser-product-common-DxBw-__I.js → teaser-product-common-DfbpBlTk.js} +1 -1
  444. package/development/{teaser-product.component-CPj4vJ2V.js → teaser-product.component-Cv9PR0lo.js} +1 -1
  445. package/development/teaser-product.js +2 -2
  446. package/development/teaser-product.pure.js +2 -2
  447. package/development/{teaser.component-Dgrc2jh8.js → teaser.component-BGnmuXOI.js} +1 -1
  448. package/development/teaser.js +1 -1
  449. package/development/teaser.pure.js +1 -1
  450. package/development/time-input/time-input.component.js +1 -1
  451. package/development/{time-input.component-BFjDAfbv.js → time-input.component-CGPW3RCw.js} +1 -1
  452. package/development/time-input.js +1 -1
  453. package/development/time-input.pure.js +1 -1
  454. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  455. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  456. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  457. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  458. package/development/{timetable-form-details.component-BFmuJ8-6.js → timetable-form-details.component-HPb8xks3.js} +1 -1
  459. package/development/{timetable-form-field.component-DD04XyA0.js → timetable-form-field.component-DxUpCWe0.js} +1 -1
  460. package/development/{timetable-form-swap-button.component-DphGegO6.js → timetable-form-swap-button.component-BT63vkZr.js} +1 -1
  461. package/development/{timetable-form.component-EIr4B4mA.js → timetable-form.component-DcvKOLvm.js} +1 -1
  462. package/development/timetable-form.js +4 -4
  463. package/development/timetable-form.pure.js +4 -4
  464. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  465. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  466. package/development/{timetable-occupancy-icon.component-vsXoAiKz.js → timetable-occupancy-icon.component-Bsct9zga.js} +1 -1
  467. package/development/timetable-occupancy-icon.js +1 -1
  468. package/development/timetable-occupancy-icon.pure.js +1 -1
  469. package/development/{timetable-occupancy.component-B0zY0RnI.js → timetable-occupancy.component-62YNjs5z.js} +1 -1
  470. package/development/timetable-occupancy.js +1 -1
  471. package/development/timetable-occupancy.pure.js +1 -1
  472. package/development/title/title-base.js +1 -1
  473. package/development/title/title.component.js +1 -1
  474. package/development/{title-base-CPAVrsQ9.js → title-base-DPAFIjFK.js} +1 -1
  475. package/development/{title.component-DCg9U2CK.js → title.component-BSrkZhnI.js} +2 -2
  476. package/development/title.js +2 -2
  477. package/development/title.pure.js +2 -2
  478. package/development/toast/toast.component.js +1 -1
  479. package/development/{toast.component-TvSfu5nl.js → toast.component-DowxkGr4.js} +1 -1
  480. package/development/toast.js +1 -1
  481. package/development/toast.pure.js +1 -1
  482. package/development/toggle/toggle/toggle.component.js +1 -1
  483. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  484. package/development/toggle-check/toggle-check.component.js +1 -1
  485. package/development/{toggle-check.component-CbGa5-8I.js → toggle-check.component--On4AuVo.js} +1 -1
  486. package/development/toggle-check.js +1 -1
  487. package/development/toggle-check.pure.js +1 -1
  488. package/development/{toggle-option.component-BxGnhJFH.js → toggle-option.component-CZY7xnrX.js} +1 -1
  489. package/development/{toggle.component-Q68IDQWX.js → toggle.component-D3IbJqAH.js} +1 -1
  490. package/development/toggle.js +2 -2
  491. package/development/toggle.pure.js +2 -2
  492. package/development/tooltip/tooltip.component.js +1 -1
  493. package/development/{tooltip.component-Baoh6M8V.js → tooltip.component-BE8BlKzE.js} +1 -1
  494. package/development/tooltip.js +1 -1
  495. package/development/tooltip.pure.js +1 -1
  496. package/development/train/train/train.component.js +1 -1
  497. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  498. package/development/train/train-formation/train-formation.component.js +1 -1
  499. package/development/train/train-wagon-common.js +1 -1
  500. package/development/{train-blocked-passage.component-C7ve-a1E.js → train-blocked-passage.component-BGCuXvjt.js} +1 -1
  501. package/development/{train-formation.component-DQ_hLKNv.js → train-formation.component-XGatA4-S.js} +1 -1
  502. package/development/{train-wagon-common-CdckItEt.js → train-wagon-common-4dC995mT.js} +1 -1
  503. package/development/{train.component-Bi74L6C7.js → train.component-CX1HEDwX.js} +1 -1
  504. package/development/train.js +4 -4
  505. package/development/train.pure.js +4 -4
  506. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  507. package/development/{visual-checkbox.component-B4_iHcsX.js → visual-checkbox.component-EpRxoteZ.js} +1 -1
  508. package/development/visual-checkbox.js +1 -1
  509. package/development/visual-checkbox.pure.js +1 -1
  510. package/dialog/dialog/dialog.component.js +1 -1
  511. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  512. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  513. package/dialog/dialog-content/dialog-content.component.js +1 -1
  514. package/dialog/dialog-title/dialog-title.component.js +1 -1
  515. package/dialog.js +5 -5
  516. package/dialog.pure.js +5 -5
  517. package/divider/divider.component.js +1 -1
  518. package/divider.js +1 -1
  519. package/divider.pure.js +1 -1
  520. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  521. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  522. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  523. package/expansion-panel.js +3 -3
  524. package/expansion-panel.pure.js +3 -3
  525. package/file-selector/common/file-selector-common.js +1 -1
  526. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  527. package/file-selector.js +2 -2
  528. package/file-selector.pure.js +2 -2
  529. package/flip-card/flip-card/flip-card.component.js +1 -1
  530. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  531. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  532. package/flip-card.js +3 -3
  533. package/flip-card.pure.js +3 -3
  534. package/footer/footer.component.js +1 -1
  535. package/footer.js +1 -1
  536. package/footer.pure.js +1 -1
  537. package/form-field/error/error.component.js +1 -1
  538. package/form-field/form-field/form-field.component.js +1 -1
  539. package/form-field/hint/hint.component.js +1 -1
  540. package/form-field.js +3 -3
  541. package/form-field.pure.js +3 -3
  542. package/header/common/header-action-common.js +1 -1
  543. package/header/header/header.component.js +1 -1
  544. package/header/header-environment/header-environment.component.js +1 -1
  545. package/header.js +3 -3
  546. package/header.pure.js +3 -3
  547. package/icon/icon-base.js +1 -1
  548. package/icon/icon.component.js +1 -1
  549. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  550. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  551. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  552. package/icon-sidebar.js +3 -3
  553. package/icon-sidebar.pure.js +3 -3
  554. package/icon.js +1 -1
  555. package/icon.pure.js +1 -1
  556. package/image/image.component.js +1 -1
  557. package/{image.component-BSSyfPru.js → image.component-K7sre7oE.js} +1 -1
  558. package/image.js +1 -1
  559. package/image.pure.js +1 -1
  560. package/{inline-link-common-O650N_pm.js → inline-link-common-D0sat0cr.js} +1 -1
  561. package/journey-header/journey-header.component.js +1 -1
  562. package/journey-header.js +1 -1
  563. package/journey-header.pure.js +1 -1
  564. package/lead-container/lead-container.component.js +1 -1
  565. package/lead-container.js +1 -1
  566. package/lead-container.pure.js +1 -1
  567. package/link/common/block-link-common.js +1 -1
  568. package/link/common/inline-link-common.js +1 -1
  569. package/link/common/link-common.js +1 -1
  570. package/link-list/common/link-list-base.js +1 -1
  571. package/link-list/link-list.component.js +1 -1
  572. package/link-list-anchor/link-list-anchor.component.js +1 -1
  573. package/link-list-anchor.js +1 -1
  574. package/link-list-anchor.pure.js +1 -1
  575. package/{link-list.component-Dg-7TBPC.js → link-list.component-bTG45ml0.js} +1 -1
  576. package/link-list.js +2 -2
  577. package/link-list.pure.js +2 -2
  578. package/link.js +3 -3
  579. package/link.pure.js +3 -3
  580. package/loading-indicator/loading-indicator.component.js +1 -1
  581. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  582. package/loading-indicator-circle.js +1 -1
  583. package/loading-indicator-circle.pure.js +1 -1
  584. package/loading-indicator.js +1 -1
  585. package/loading-indicator.pure.js +1 -1
  586. package/logo/logo.component.js +1 -1
  587. package/logo.js +1 -1
  588. package/logo.pure.js +1 -1
  589. package/map-container/map-container.component.js +1 -1
  590. package/map-container.js +1 -1
  591. package/map-container.pure.js +1 -1
  592. package/menu/common/menu-action-common.js +1 -1
  593. package/menu/menu/menu.component.js +1 -1
  594. package/menu.js +2 -2
  595. package/menu.pure.js +2 -2
  596. package/message/message.component.js +1 -1
  597. package/message.js +1 -1
  598. package/message.pure.js +1 -1
  599. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  600. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  601. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  602. package/mini-calendar.js +3 -3
  603. package/mini-calendar.pure.js +3 -3
  604. package/navigation/common/navigation-action-common.js +1 -1
  605. package/navigation/navigation/navigation.component.js +1 -1
  606. package/navigation/navigation-list/navigation-list.component.js +1 -1
  607. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  608. package/navigation/navigation-section/navigation-section.component.js +1 -1
  609. package/navigation.js +5 -5
  610. package/navigation.pure.js +5 -5
  611. package/notification/notification.component.js +1 -1
  612. package/notification.js +1 -1
  613. package/notification.pure.js +1 -1
  614. package/option/optgroup/optgroup-base-element.js +1 -1
  615. package/option/optgroup/optgroup.component.js +1 -1
  616. package/option/option/option.component.js +1 -1
  617. package/option/option-hint/option-hint.component.js +1 -1
  618. package/option/option-styles.js +1 -1
  619. package/option.js +4 -4
  620. package/option.pure.js +4 -4
  621. package/overlay/overlay.component.js +1 -1
  622. package/overlay.js +1 -1
  623. package/overlay.pure.js +1 -1
  624. package/package.json +2 -2
  625. package/paginator/common/paginator-common.js +1 -1
  626. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  627. package/paginator/paginator/paginator.component.js +1 -1
  628. package/{paginator.component-Dk1xDHgW.js → paginator.component-buCkeyDv.js} +3 -3
  629. package/paginator.js +3 -3
  630. package/paginator.pure.js +3 -3
  631. package/popover/popover.component.js +1 -1
  632. package/popover.js +1 -1
  633. package/popover.pure.js +1 -1
  634. package/radio-button/common/radio-button-common.js +1 -1
  635. package/radio-button/radio-button.component.js +1 -1
  636. package/{radio-button.component-DXLKxjst.js → radio-button.component-DznnXJCN.js} +1 -1
  637. package/radio-button.js +2 -2
  638. package/radio-button.pure.js +2 -2
  639. package/select/select.component.js +1 -1
  640. package/select.js +1 -1
  641. package/select.pure.js +1 -1
  642. package/selection-action-panel/selection-action-panel.component.js +1 -1
  643. package/selection-action-panel.js +1 -1
  644. package/selection-action-panel.pure.js +1 -1
  645. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  646. package/selection-expansion-panel.js +1 -1
  647. package/selection-expansion-panel.pure.js +1 -1
  648. package/{selection-group-base-element-CehwzW8Y.js → selection-group-base-element-BcEQ5-ML.js} +1 -1
  649. package/sidebar/sidebar/sidebar.component.js +1 -1
  650. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  651. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  652. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  653. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  654. package/sidebar.js +5 -5
  655. package/sidebar.pure.js +5 -5
  656. package/signet/signet.component.js +1 -1
  657. package/signet.js +1 -1
  658. package/signet.pure.js +1 -1
  659. package/skiplink-list/skiplink-list.component.js +1 -1
  660. package/skiplink-list.js +1 -1
  661. package/skiplink-list.pure.js +1 -1
  662. package/slider/slider.component.js +1 -1
  663. package/slider.js +1 -1
  664. package/slider.pure.js +1 -1
  665. package/status/status.component.js +1 -1
  666. package/status.js +1 -1
  667. package/status.pure.js +1 -1
  668. package/stepper/step/step.component.js +1 -1
  669. package/stepper/step-label/step-label.component.js +1 -1
  670. package/stepper/stepper/stepper.component.js +1 -1
  671. package/stepper.js +3 -3
  672. package/stepper.pure.js +3 -3
  673. package/table/table-wrapper/table-wrapper.component.js +1 -1
  674. package/table.js +1 -1
  675. package/table.pure.js +1 -1
  676. package/tabs/common/styles.js +1 -1
  677. package/tabs/tab/tab.component.js +1 -1
  678. package/tabs/tab-group/tab-group.component.js +1 -1
  679. package/tabs/tab-label/tab-label.component.js +1 -1
  680. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  681. package/tabs.js +5 -5
  682. package/tabs.pure.js +5 -5
  683. package/tag/tag/tag.component.js +1 -1
  684. package/tag/tag-group/tag-group.component.js +1 -1
  685. package/tag.js +2 -2
  686. package/tag.pure.js +2 -2
  687. package/teaser/teaser.component.js +1 -1
  688. package/teaser-hero/teaser-hero.component.js +1 -1
  689. package/teaser-hero.js +1 -1
  690. package/teaser-hero.pure.js +1 -1
  691. package/teaser-panel/teaser-panel.component.js +1 -1
  692. package/teaser-panel.js +1 -1
  693. package/teaser-panel.pure.js +1 -1
  694. package/teaser-product/common/teaser-product-common.js +1 -1
  695. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  696. package/teaser-product.js +2 -2
  697. package/teaser-product.pure.js +2 -2
  698. package/teaser.js +1 -1
  699. package/teaser.pure.js +1 -1
  700. package/time-input/time-input.component.js +1 -1
  701. package/time-input.js +1 -1
  702. package/time-input.pure.js +1 -1
  703. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  704. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  705. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  706. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  707. package/timetable-form.js +4 -4
  708. package/timetable-form.pure.js +4 -4
  709. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  710. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  711. package/timetable-occupancy-icon.js +1 -1
  712. package/timetable-occupancy-icon.pure.js +1 -1
  713. package/timetable-occupancy.js +1 -1
  714. package/timetable-occupancy.pure.js +1 -1
  715. package/title/title-base.js +1 -1
  716. package/title/title.component.js +1 -1
  717. package/{title.component-DTnG8op9.js → title.component-BZ0nVpam.js} +1 -1
  718. package/title.js +2 -2
  719. package/title.pure.js +2 -2
  720. package/toast/toast.component.js +1 -1
  721. package/toast.js +1 -1
  722. package/toast.pure.js +1 -1
  723. package/toggle/toggle/toggle.component.js +1 -1
  724. package/toggle/toggle-option/toggle-option.component.js +1 -1
  725. package/toggle-check/toggle-check.component.js +1 -1
  726. package/toggle-check.js +1 -1
  727. package/toggle-check.pure.js +1 -1
  728. package/toggle.js +2 -2
  729. package/toggle.pure.js +2 -2
  730. package/tooltip/tooltip.component.js +1 -1
  731. package/tooltip.js +1 -1
  732. package/tooltip.pure.js +1 -1
  733. package/train/train/train.component.js +1 -1
  734. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  735. package/train/train-formation/train-formation.component.js +1 -1
  736. package/train/train-wagon-common.js +1 -1
  737. package/train.js +4 -4
  738. package/train.pure.js +4 -4
  739. package/visual-checkbox/visual-checkbox.component.js +1 -1
  740. package/visual-checkbox.js +1 -1
  741. package/visual-checkbox.pure.js +1 -1
  742. /package/{accordion.component-DbuSYzV1.js → accordion.component-ClJHZh_N.js} +0 -0
  743. /package/{action-group.component-BMYAFyHh.js → action-group.component-Dg11Ug4A.js} +0 -0
  744. /package/{alert-group.component-BqJ6B49z.js → alert-group.component-Ck1kYZb4.js} +0 -0
  745. /package/{alert.component-DN7sW2NC.js → alert.component-B8EGWmcc.js} +0 -0
  746. /package/{autocomplete-base-element-k9uIbFBu.js → autocomplete-base-element-CLMoJtJb.js} +0 -0
  747. /package/{breadcrumb-group.component-a49dItu9.js → breadcrumb-group.component-FLbOLqwi.js} +0 -0
  748. /package/{breadcrumb.component-Kk1U6Iju.js → breadcrumb.component-CC8MxtJj.js} +0 -0
  749. /package/{button-common-BQdNXKwl.js → button-common-Br6zOEgv.js} +0 -0
  750. /package/{calendar-cell-base-element-CUG1qYFb.js → calendar-cell-base-element-Dq7Ap5n-.js} +0 -0
  751. /package/{calendar-day.component-CcZymuSD.js → calendar-day.component-Caf2w9lS.js} +0 -0
  752. /package/{card-action-common-BNdGcJl-.js → card-action-common-DRSSDHqY.js} +0 -0
  753. /package/{card-badge.component-BLAK_y8x.js → card-badge.component-B-uJVrxT.js} +0 -0
  754. /package/{card.component-WUQRK9jT.js → card.component-Bwuv9ur1.js} +0 -0
  755. /package/{carousel-item.component-B6WmZPkW.js → carousel-item.component-DRfpza-9.js} +0 -0
  756. /package/{carousel-list.component-CnZehdy6.js → carousel-list.component-7mbfkw4K.js} +0 -0
  757. /package/{carousel.component-ZrkGeJgZ.js → carousel.component-B6XqR3Bc.js} +0 -0
  758. /package/{checkbox-common-gaaFKApr.js → checkbox-common-Dz5PUD9H.js} +0 -0
  759. /package/{chip-group.component-BIP7c2G0.js → chip-group.component-DKF_Z2QU.js} +0 -0
  760. /package/{chip-label.component-BLbhqUAp.js → chip-label.component-DVUxt7Sk.js} +0 -0
  761. /package/{chip.component-gcvF3pEX.js → chip.component-SLuNizyV.js} +0 -0
  762. /package/{clock.component-Cqrl999I.js → clock.component-gnEqkZ4T.js} +0 -0
  763. /package/{compact-paginator.component-B-8gf_qD.js → compact-paginator.component-CmPlZsd4.js} +0 -0
  764. /package/{container.component-sQtiqWxT.js → container.component-DJgFIJ0b.js} +0 -0
  765. /package/{date-input.component-aFuUH3N_.js → date-input.component-Cb3wWbFC.js} +0 -0
  766. /package/{datepicker-button-CuoZoC6e.js → datepicker-button-D8t6_DBS.js} +0 -0
  767. /package/{dialog-actions.component-DxmjSvd-.js → dialog-actions.component-CHFJ8HjT.js} +0 -0
  768. /package/{dialog-close-button.component-B8troaaQ.js → dialog-close-button.component-CV55ej8Q.js} +0 -0
  769. /package/{dialog-content.component-Chfg-IY1.js → dialog-content.component-D7SeDETW.js} +0 -0
  770. /package/{dialog-title.component-BbcbQXjp.js → dialog-title.component-DP7l1zQE.js} +0 -0
  771. /package/{dialog.component-D3G0AX4Y.js → dialog.component-Bs62s2eB.js} +0 -0
  772. /package/{divider.component-WsZcNUnN.js → divider.component-wL7Cw3YB.js} +0 -0
  773. /package/{element-C7t5_1gu.js → element-CvshSA3k.js} +0 -0
  774. /package/{error.component-D9Tu2YIl.js → error.component-D0rmgyFk.js} +0 -0
  775. /package/{expansion-panel-content.component-WG1cwhjd.js → expansion-panel-content.component-Dm761peO.js} +0 -0
  776. /package/{expansion-panel-header.component-CnUqRql_.js → expansion-panel-header.component-Cli4Qy1p.js} +0 -0
  777. /package/{expansion-panel.component-CRyZ5x6U.js → expansion-panel.component-kyVRxBRu.js} +0 -0
  778. /package/{file-selector-common-BNGnjK__.js → file-selector-common-Bk347JZN.js} +0 -0
  779. /package/{file-selector-dropzone.component-sE_fofSq.js → file-selector-dropzone.component-CywJG8KU.js} +0 -0
  780. /package/{flip-card-details.component-BgOeJ53R.js → flip-card-details.component-D4C0Fde7.js} +0 -0
  781. /package/{flip-card-summary.component-D5cKgj47.js → flip-card-summary.component-ZvTeHtPV.js} +0 -0
  782. /package/{flip-card.component-ZsA_kDPS.js → flip-card.component-CtUxr9yF.js} +0 -0
  783. /package/{footer.component-DsIoOLu-.js → footer.component-x4yuXpWV.js} +0 -0
  784. /package/{form-field.component-BKWzdNHT.js → form-field.component-eH2C_qPG.js} +0 -0
  785. /package/{header-action-common-B-eRBjSz.js → header-action-common-CWn80TJo.js} +0 -0
  786. /package/{header-environment.component-B0VYZh7C.js → header-environment.component-Diy44YpD.js} +0 -0
  787. /package/{header.component-TU3e89pY.js → header.component-DgWfgTse.js} +0 -0
  788. /package/{hint.component-DTKfI9tq.js → hint.component-BZZJXuHG.js} +0 -0
  789. /package/{icon-base-CCpB1w3b.js → icon-base-CK1oqnO4.js} +0 -0
  790. /package/{icon-sidebar-container.component-CDBkiGlz.js → icon-sidebar-container.component-CYVyqKnZ.js} +0 -0
  791. /package/{icon-sidebar-content.component-CN4Que2a.js → icon-sidebar-content.component-C5ZspZQk.js} +0 -0
  792. /package/{icon-sidebar.component-DA2cmcyy.js → icon-sidebar.component-BkqYbGHz.js} +0 -0
  793. /package/{journey-header.component-CXyULeHJ.js → journey-header.component-Ct9LmhWY.js} +0 -0
  794. /package/{lead-container.component-CdfHJFFN.js → lead-container.component-Fv9F5Yh4.js} +0 -0
  795. /package/{link-common-ezSu7e9c.js → link-common-C4Jbge1L.js} +0 -0
  796. /package/{link-list-anchor.component-Bjz_EKvE.js → link-list-anchor.component-as1bjNH1.js} +0 -0
  797. /package/{link-list-base-C12PTC8e.js → link-list-base-Dgu0yeTL.js} +0 -0
  798. /package/{loading-indicator-circle.component-CSU2Ludy.js → loading-indicator-circle.component-BSdKx0eK.js} +0 -0
  799. /package/{loading-indicator.component-DxyhIaFo.js → loading-indicator.component-B2cGE1Mj.js} +0 -0
  800. /package/{logo.component-DVMNS8Op.js → logo.component-BOxQbVu9.js} +0 -0
  801. /package/{map-container.component-DyJBA3qj.js → map-container.component-bI8Gb4I8.js} +0 -0
  802. /package/{menu-action-common-DakEXPg7.js → menu-action-common-_iII6n1T.js} +0 -0
  803. /package/{menu.component-CqXsI5Cg.js → menu.component-CqXIRQq2.js} +0 -0
  804. /package/{message.component-CORYX4KP.js → message.component-BpQ4ikV6.js} +0 -0
  805. /package/{mini-button-group.component-DWayyUpK.js → mini-button-group.component-C-pJ_J-1.js} +0 -0
  806. /package/{mini-button-link.component-B8HmvVCg.js → mini-button-link.component-MBesHG--.js} +0 -0
  807. /package/{mini-calendar-day.component-CVYqN3Yn.js → mini-calendar-day.component-UvIp06lc.js} +0 -0
  808. /package/{mini-calendar-month.component-DbiqMOH8.js → mini-calendar-month.component-BZV7QSlC.js} +0 -0
  809. /package/{mini-calendar.component-BKzbqHim.js → mini-calendar.component-B6EGO9bp.js} +0 -0
  810. /package/{navigation-action-common-CBlB5vk9.js → navigation-action-common-DSPULZFe.js} +0 -0
  811. /package/{navigation-list.component-C5y3ohH0.js → navigation-list.component-Bkmh_wqm.js} +0 -0
  812. /package/{navigation-marker.component-VbvKu1TR.js → navigation-marker.component-CCXJWsN1.js} +0 -0
  813. /package/{navigation-section.component-Bmh4Xtrm.js → navigation-section.component-c4XBLFsl.js} +0 -0
  814. /package/{navigation.component-DKJujMqj.js → navigation.component-pRBja4z3.js} +0 -0
  815. /package/{notification.component-CDGtGwRv.js → notification.component-IRuswhzC.js} +0 -0
  816. /package/{optgroup-base-element-CBxsRPUF.js → optgroup-base-element-BbxwRc0x.js} +0 -0
  817. /package/{option-hint.component-NSxCKXEy.js → option-hint.component-CUf2d2d5.js} +0 -0
  818. /package/{option-styles-DcD5grSB.js → option-styles-czjdmUjA.js} +0 -0
  819. /package/{option.component-BgcpoHWM.js → option.component-9AlEwsE3.js} +0 -0
  820. /package/{overlay.component-OSLtja0_.js → overlay.component-BvoOK_O-.js} +0 -0
  821. /package/{paginator-common-C0Kn9ibe.js → paginator-common-Xiv6UZlo.js} +0 -0
  822. /package/{panel-mixin-XQXElTGt.js → panel-mixin-CG-f0J6K.js} +0 -0
  823. /package/{popover.component-Bm-bx-Hs.js → popover.component-DrLx8J07.js} +0 -0
  824. /package/{radio-button-common-D7jL7eB3.js → radio-button-common-OaxGvaS9.js} +0 -0
  825. /package/{sbb-tokens-BBic3kP6.js → sbb-tokens-C-MoUcho.js} +0 -0
  826. /package/{select.component-CDv5tSW6.js → select.component-Drb7KsP3.js} +0 -0
  827. /package/{selection-action-panel.component-Ba7N1Hgt.js → selection-action-panel.component-m13MKp44.js} +0 -0
  828. /package/{selection-expansion-panel.component-BL1FPfPM.js → selection-expansion-panel.component-BMI-n5Xc.js} +0 -0
  829. /package/{sidebar-close-button.component-CLjOpBM2.js → sidebar-close-button.component-BoOFzuBn.js} +0 -0
  830. /package/{sidebar-container.component-8filIF5E.js → sidebar-container.component-BFm6HnIu.js} +0 -0
  831. /package/{sidebar-content.component-DMdjHDdq.js → sidebar-content.component-DFLqVK-O.js} +0 -0
  832. /package/{sidebar-title.component-DaIkBNY9.js → sidebar-title.component-4B18yGLO.js} +0 -0
  833. /package/{sidebar.component-D_HLDNnq.js → sidebar.component-VL6TFd9H.js} +0 -0
  834. /package/{signet.component-6q3GxORI.js → signet.component-DoXHpxDU.js} +0 -0
  835. /package/{skiplink-list.component-ClGb1J_H.js → skiplink-list.component-Cc6QNvVU.js} +0 -0
  836. /package/{slider.component-BMkoF1l1.js → slider.component-DANx27eH.js} +0 -0
  837. /package/{status.component-DMfZTgzz.js → status.component-Cg671ic2.js} +0 -0
  838. /package/{step-label.component-CjNZYk5b.js → step-label.component-olqRA-s7.js} +0 -0
  839. /package/{step.component-BCkwsZdk.js → step.component-CcjV_283.js} +0 -0
  840. /package/{stepper.component-mq66fR06.js → stepper.component-CqClDxL6.js} +0 -0
  841. /package/{sticky-bar.component-DtXeRUqi.js → sticky-bar.component-DBSVB1lE.js} +0 -0
  842. /package/{styles-DV41ClRb.js → styles-Cx8wGnh9.js} +0 -0
  843. /package/{styles-DWm_OYpV.js → styles-DGAxTLMz.js} +0 -0
  844. /package/{tab-group.component-MEm2W7QR.js → tab-group.component-Dx0xldWI.js} +0 -0
  845. /package/{tab-label.component-BqznCfW8.js → tab-label.component-BYssa8XI.js} +0 -0
  846. /package/{tab-nav-bar.component-CRC6xnaX.js → tab-nav-bar.component-7j-RCq7p.js} +0 -0
  847. /package/{tab.component-DPwbvqp4.js → tab.component-C5xxMwwX.js} +0 -0
  848. /package/{table-wrapper.component-LzYuAVPb.js → table-wrapper.component-BzmzJJim.js} +0 -0
  849. /package/{tag-group.component-wnzXwLPf.js → tag-group.component-ByRxy8UG.js} +0 -0
  850. /package/{tag.component-zGPaopTo.js → tag.component-BrKoQeIW.js} +0 -0
  851. /package/{teaser-hero.component-BlhffYux.js → teaser-hero.component-BNV8sgb6.js} +0 -0
  852. /package/{teaser-panel.component-BCbKgXVt.js → teaser-panel.component-Bfhra0zG.js} +0 -0
  853. /package/{teaser-product-common-C_lgMbyC.js → teaser-product-common-D7kWWxU-.js} +0 -0
  854. /package/{teaser-product.component-CQIXu7sq.js → teaser-product.component-DHu47PGd.js} +0 -0
  855. /package/{teaser.component-D9z78Eny.js → teaser.component-CkIii0_d.js} +0 -0
  856. /package/{time-input.component-CLHEoWze.js → time-input.component-DTMCclRN.js} +0 -0
  857. /package/{timetable-form-details.component-DJ3oPkQP.js → timetable-form-details.component-BTRh4w9g.js} +0 -0
  858. /package/{timetable-form-field.component-6s8_sz9h.js → timetable-form-field.component-BPKgSLQb.js} +0 -0
  859. /package/{timetable-form-swap-button.component-BY2m2_k9.js → timetable-form-swap-button.component-DgUiFKbA.js} +0 -0
  860. /package/{timetable-form.component-Swe8BX7g.js → timetable-form.component-Crq-rb5Z.js} +0 -0
  861. /package/{timetable-occupancy-icon.component-C44eSFOM.js → timetable-occupancy-icon.component-9RhBPwBN.js} +0 -0
  862. /package/{timetable-occupancy.component-CIkq1cT7.js → timetable-occupancy.component-B040dznI.js} +0 -0
  863. /package/{title-base-B1xzk7Zb.js → title-base-DWrwrsx4.js} +0 -0
  864. /package/{toast.component-Ew5vuGXf.js → toast.component-Lbh5sa_U.js} +0 -0
  865. /package/{toggle-check.component-Ce-klZJB.js → toggle-check.component-BNGDAvXJ.js} +0 -0
  866. /package/{toggle-option.component-BdMfGuA-.js → toggle-option.component-UXno4hFd.js} +0 -0
  867. /package/{toggle.component-ySmrXvjA.js → toggle.component-Cz3OnOMI.js} +0 -0
  868. /package/{tooltip.component-ihyNBI7f.js → tooltip.component-BLzyft0C.js} +0 -0
  869. /package/{train-blocked-passage.component-UnNCmspZ.js → train-blocked-passage.component-Bk_YvTRh.js} +0 -0
  870. /package/{train-formation.component-CYqdWnkL.js → train-formation.component-Di5d_G5x.js} +0 -0
  871. /package/{train-wagon-common-C1Py1D01.js → train-wagon-common-HuRuHdNZ.js} +0 -0
  872. /package/{train.component-DRLUjuXY.js → train.component-Dwp6ltDo.js} +0 -0
  873. /package/{visual-checkbox.component-JmGORoDU.js → visual-checkbox.component-CPIhZcmN.js} +0 -0
@@ -366,4 +366,4 @@ var SbbTooltipElement = (() => {
366
366
  //#endregion
367
367
  export { SbbTooltipElement as t };
368
368
 
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQmFvaDZNOFYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBwb2ludGVyLWV2ZW50czogdmFyKC0tc2JiLXRvb2x0aXAtcG9pbnRlci1ldmVudHMsIGFsbCk7XG4gIHotaW5kZXg6IHZhcigtLXNiYi10b29sdGlwLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xuICBhbmltYXRpb24tbmFtZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWUpO1xuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1lYXNpbmcpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi10b29sdGlwLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lOiBvcGVuO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIC0tc2JiLXRvb2x0aXAtcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbjpob3N0KDppcyhbZGF0YS1wb3NpdGlvbn49J2Jsb2NrLWVuZCddLCBbZGF0YS1wb3NpdGlvbn49J2JvdHRvbSddLCBbZGF0YS1wb3NpdGlvbl49J2VuZCddKSkge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1zdGFydCddLCBbZGF0YS1wb3NpdGlvbn49J3RvcCddLCBbZGF0YS1wb3NpdGlvbl49J3N0YXJ0J10pKSB7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG46aG9zdChcbiAgOmlzKFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLXN0YXJ0J10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdpbmxpbmUtZW5kJ10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdsZWZ0J10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdyaWdodCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIHN0YXJ0J10sXG4gICAgW2RhdGEtcG9zaXRpb24kPScgZW5kJ11cbiAgKVxuKSB7XG4gIC8vIEFkZCBhIGdhcCBvbiBib3RoIHNpZGVzIHRvIGRpc3RhbmNlIHRoZSB0b29sdGlwIGZyb20gdGhlIHRyaWdnZXIgYW5kIHRoZSBlZGdlIG9mIHRoZSB2aWV3cG9ydC5cbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b29sdGlwLWdhcCk7XG59XG5cbi5zYmItdG9vbHRpcCB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNiYi1ib3gtc2hhZG93LWxldmVsLTUtc29mdCk7XG4gIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgdmFyKC0tc2JiLXRvb2x0aXAtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi10b29sdGlwLXBhZGRpbmcpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi10b29sdGlwLW1heC13aWR0aCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi10cmFuc2xhdGUpO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYXBwZW5kQXJpYUVsZW1lbnRzLFxuICBpZFJlZmVyZW5jZSxcbiAgaXNBbmRyb2lkLFxuICBpc0lPUyxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIHBvcG92ZXJSZXNldFN0eWxlcyxcbiAgcXVldWVEb21Db250ZW50TG9hZGVkLFxuICByZWFkQ29uZmlnLFxuICByZW1vdmVBcmlhRWxlbWVudHMsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgc2JiT3ZlcmxheU91dHNpZGVQb2ludGVyRXZlbnRMaXN0ZW5lcixcbiAgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3Rvb2x0aXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGRlZmF1bHQgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwIGlmIHRoaXMgZWxlbWVudCBpcyB1c2VkIGFzIGEgdHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJUb29sdGlwRGVmYXVsdFBvc2l0aW9ucyB7XG4gIHJlYWRvbmx5IHRvb2x0aXBQb3NpdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRpbWUgYmV0d2VlbiB0aGUgdXNlciBwdXR0aW5nIHRoZSBwb2ludGVyIG9uIGEgdG9vbHRpcFxuICogdHJpZ2dlciBhbmQgdGhlIGxvbmcgcHJlc3MgZXZlbnQgYmVpbmcgZmlyZWQuXG4gKi9cbmNvbnN0IExPTkdQUkVTU19ERUxBWSA9IDUwMDtcblxuY29uc3QgaXNNb2JpbGUgPSBpc0FuZHJvaWQgfHwgaXNJT1M7XG5jb25zdCB0b29sdGlwVHJpZ2dlcnMgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgU2JiVG9vbHRpcEVsZW1lbnQ+KCk7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgdGV4dCBjb250ZW50IHdpdGhpbiBhIHRvb2x0aXAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgdGhlIHRleHQgaW50byB0aGUgdG9vbHRpcC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWE9YmxvY2stZW5kXSAtIFRoZSBwcmltYXJ5IHBvc2l0aW9uIGZvciB0aGUgdG9vbHRpcC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vdmVybGF5LXBvc2l0aW9uLXRyeS1mYWxsYmFja3M9YmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCwgYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0LCBibG9jay1zdGFydCwgYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1zdGFydCBzcGFuLWlubGluZS1zdGFydF0gLVxuICogVGhlIGxpc3Qgb2YgZmFsbGJhY2sgcG9zaXRpb25zLCBzZXBhcmF0ZWQgYnkgJywnLCBmb3IgdGhlIHRvb2x0aXBcbiAqIEBjc3Nwcm9wIFstLXNiYi10b29sdGlwLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvb2x0aXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvb2x0aXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtwb3BvdmVyUmVzZXRTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDeUNBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksUUFBTzs7Ozs7Ozs7Ozs7O0lBYXRCLDJCQUFpQjttQkFBUyxpQkFBaUIsdUJBQXVCOzs7Ozs7OztjQUFsRSwwQkFBMEIsWUFBeUM7OzswQkFvQjdFLFlBQVcsR0FDWCxTQUFRLENBQUU7Z0NBU1YsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0dBQU0sQ0FBRSxDQUFDO2lDQWVuRCxTQUFTO0lBQUUsV0FBVztJQUFlLE1BQU07R0FBTSxDQUFFLENBQUM7MENBZXBELFNBQVM7SUFBRSxXQUFXO0lBQTBCLE1BQU07R0FBTSxDQUFFLENBQUM7R0F0Q2hFLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO01B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
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQkU4QmxLekUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBwb2ludGVyLWV2ZW50czogdmFyKC0tc2JiLXRvb2x0aXAtcG9pbnRlci1ldmVudHMsIGFsbCk7XG4gIHotaW5kZXg6IHZhcigtLXNiYi10b29sdGlwLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xuICBhbmltYXRpb24tbmFtZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWUpO1xuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1lYXNpbmcpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi10b29sdGlwLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lOiBvcGVuO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIC0tc2JiLXRvb2x0aXAtcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbjpob3N0KDppcyhbZGF0YS1wb3NpdGlvbn49J2Jsb2NrLWVuZCddLCBbZGF0YS1wb3NpdGlvbn49J2JvdHRvbSddLCBbZGF0YS1wb3NpdGlvbl49J2VuZCddKSkge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1zdGFydCddLCBbZGF0YS1wb3NpdGlvbn49J3RvcCddLCBbZGF0YS1wb3NpdGlvbl49J3N0YXJ0J10pKSB7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG46aG9zdChcbiAgOmlzKFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLXN0YXJ0J10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdpbmxpbmUtZW5kJ10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdsZWZ0J10sXG4gICAgW2RhdGEtcG9zaXRpb25+PSdyaWdodCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIHN0YXJ0J10sXG4gICAgW2RhdGEtcG9zaXRpb24kPScgZW5kJ11cbiAgKVxuKSB7XG4gIC8vIEFkZCBhIGdhcCBvbiBib3RoIHNpZGVzIHRvIGRpc3RhbmNlIHRoZSB0b29sdGlwIGZyb20gdGhlIHRyaWdnZXIgYW5kIHRoZSBlZGdlIG9mIHRoZSB2aWV3cG9ydC5cbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b29sdGlwLWdhcCk7XG59XG5cbi5zYmItdG9vbHRpcCB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNiYi1ib3gtc2hhZG93LWxldmVsLTUtc29mdCk7XG4gIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgdmFyKC0tc2JiLXRvb2x0aXAtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi10b29sdGlwLXBhZGRpbmcpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi10b29sdGlwLW1heC13aWR0aCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi10cmFuc2xhdGUpO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYXBwZW5kQXJpYUVsZW1lbnRzLFxuICBpZFJlZmVyZW5jZSxcbiAgaXNBbmRyb2lkLFxuICBpc0lPUyxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIHBvcG92ZXJSZXNldFN0eWxlcyxcbiAgcXVldWVEb21Db250ZW50TG9hZGVkLFxuICByZWFkQ29uZmlnLFxuICByZW1vdmVBcmlhRWxlbWVudHMsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgc2JiT3ZlcmxheU91dHNpZGVQb2ludGVyRXZlbnRMaXN0ZW5lcixcbiAgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3Rvb2x0aXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGRlZmF1bHQgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwIGlmIHRoaXMgZWxlbWVudCBpcyB1c2VkIGFzIGEgdHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJUb29sdGlwRGVmYXVsdFBvc2l0aW9ucyB7XG4gIHJlYWRvbmx5IHRvb2x0aXBQb3NpdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRpbWUgYmV0d2VlbiB0aGUgdXNlciBwdXR0aW5nIHRoZSBwb2ludGVyIG9uIGEgdG9vbHRpcFxuICogdHJpZ2dlciBhbmQgdGhlIGxvbmcgcHJlc3MgZXZlbnQgYmVpbmcgZmlyZWQuXG4gKi9cbmNvbnN0IExPTkdQUkVTU19ERUxBWSA9IDUwMDtcblxuY29uc3QgaXNNb2JpbGUgPSBpc0FuZHJvaWQgfHwgaXNJT1M7XG5jb25zdCB0b29sdGlwVHJpZ2dlcnMgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgU2JiVG9vbHRpcEVsZW1lbnQ+KCk7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgdGV4dCBjb250ZW50IHdpdGhpbiBhIHRvb2x0aXAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgdGhlIHRleHQgaW50byB0aGUgdG9vbHRpcC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWE9YmxvY2stZW5kXSAtIFRoZSBwcmltYXJ5IHBvc2l0aW9uIGZvciB0aGUgdG9vbHRpcC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vdmVybGF5LXBvc2l0aW9uLXRyeS1mYWxsYmFja3M9YmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCwgYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0LCBibG9jay1zdGFydCwgYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1zdGFydCBzcGFuLWlubGluZS1zdGFydF0gLVxuICogVGhlIGxpc3Qgb2YgZmFsbGJhY2sgcG9zaXRpb25zLCBzZXBhcmF0ZWQgYnkgJywnLCBmb3IgdGhlIHRvb2x0aXBcbiAqIEBjc3Nwcm9wIFstLXNiYi10b29sdGlwLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvb2x0aXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvb2x0aXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtwb3BvdmVyUmVzZXRTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDeUNBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksUUFBTzs7Ozs7Ozs7Ozs7O0lBYXRCLDJCQUFpQjttQkFBUyxpQkFBaUIsdUJBQXVCOzs7Ozs7OztjQUFsRSwwQkFBMEIsWUFBeUM7OzswQkFvQjdFLFlBQVcsR0FDWCxTQUFRLENBQUU7Z0NBU1YsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0dBQU0sQ0FBRSxDQUFDO2lDQWVuRCxTQUFTO0lBQUUsV0FBVztJQUFlLE1BQU07R0FBTSxDQUFFLENBQUM7MENBZXBELFNBQVM7SUFBRSxXQUFXO0lBQTBCLE1BQU07R0FBTSxDQUFFLENBQUM7R0F0Q2hFLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO01B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
@@ -1,4 +1,4 @@
1
- import { t as SbbTooltipElement } from "./tooltip.component-Baoh6M8V.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-BE8BlKzE.js";
2
2
  import "./tooltip.pure.js";
3
3
  //#region src/elements/tooltip.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbTooltipElement } from "./tooltip.component-Baoh6M8V.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-BE8BlKzE.js";
2
2
  export { SbbTooltipElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainElement } from "../../train.component-Bi74L6C7.js";
1
+ import { t as SbbTrainElement } from "../../train.component-CX1HEDwX.js";
2
2
  export { SbbTrainElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainBlockedPassageElement } from "../../train-blocked-passage.component-C7ve-a1E.js";
1
+ import { t as SbbTrainBlockedPassageElement } from "../../train-blocked-passage.component-BGCuXvjt.js";
2
2
  export { SbbTrainBlockedPassageElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainFormationElement } from "../../train-formation.component-DQ_hLKNv.js";
1
+ import { t as SbbTrainFormationElement } from "../../train-formation.component-XGatA4-S.js";
2
2
  export { SbbTrainFormationElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainWagonMixin } from "../train-wagon-common-CdckItEt.js";
1
+ import { t as SbbTrainWagonMixin } from "../train-wagon-common-4dC995mT.js";
2
2
  export { SbbTrainWagonMixin };
@@ -19,4 +19,4 @@ var SbbTrainBlockedPassageElement = class extends SbbTrainFormationOrientationMi
19
19
  //#endregion
20
20
  export { SbbTrainBlockedPassageElement as t };
21
21
 
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC1DN3ZlLWExRS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxVQUFVLEVBQUM7O0VBQzlELEtBQUEsY0FBc0I7Q0FBNEI7O0VBQzNELEtBQUEsU0FBeUIsQ0FBQyxVQUFVLDZCQUFLLENBQUM7Q0FBRSJ9
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC1CR0N1WHZqdC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxVQUFVLEVBQUM7O0VBQzlELEtBQUEsY0FBc0I7Q0FBNEI7O0VBQzNELEtBQUEsU0FBeUIsQ0FBQyxVQUFVLDZCQUFLLENBQUM7Q0FBRSJ9
@@ -187,4 +187,4 @@ var SbbTrainFormationElement = (() => {
187
187
  //#endregion
188
188
  export { SbbTrainFormationElement as t };
189
189
 
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1EUV9oTEtOdi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID1cbiAgICAnaG9yaXpvbnRhbCc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfc2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdID0gW107XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0cmFpbnNsb3RjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoZSk7XG4gICAgICB0aGlzLl9yZWFkRGlyZWN0aW9uTGFiZWwoZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3NlY3RvcmNoYW5nZScsIChlKSA9PiB0aGlzLl9yZWFkU2VjdG9ycyhlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2RpcmVjdGlvbmxhYmVsY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdoZW4gaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXIgc3R5bGVzIG9uIHRoZSBob3N0LCB0aGVyZSBpcyBubyBob3ZlciBlZmZlY3Qgb2YgdGhlIHNjcm9sbGJhciBwb3NzaWJsZS5cbiAgICAvLyBJbiBtb3N0IGNhc2VzLCB0aGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBpbiBMaWdodCBET00uIFRvIGFsc28gc3VwcG9ydCB0aGUgaG92ZXIgZWZmZWN0LFxuICAgIC8vIHdlIGFkZGl0aW9uYWxseSBhZGQgdGhlIGBzYmItc2Nyb2xsYmFyYCBDU1MgY2xhc3MgdG8gdGhlIGhvc3QuXG4gICAgLy8gVGhpcyBpcyBhbiBleGNlcHRpb24gYXMgd2Ugbm9ybWFsbHkgZG9uJ3QgYWx0ZXIgdGhlIGNsYXNzTGlzdCBvZiB0aGUgaG9zdC5cbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWREaXJlY3Rpb25MYWJlbChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdoYXMtZGlyZWN0aW9uLWxhYmVsJyxcbiAgICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi10cmFpbicpID8/IFtdKS5zb21lKFxuICAgICAgICAodHJhaW4pID0+ICEhdHJhaW4uZGlyZWN0aW9uTGFiZWwsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkU2VjdG9ycyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5fc2VjdG9ycyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQ+KFxuICAgICAgICAnc2JiLXRyYWluLXdhZ29uLHNiYi10cmFpbi13YWdvbi1idXR0b24sc2JiLXRyYWluLXdhZ29uLWxpbmssc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScsXG4gICAgICApID8/IFtdLFxuICAgICkucmVkdWNlKFxuICAgICAgKFxuICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdLFxuICAgICAgICBpdGVtOiBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IgPSBhZ2dyZWdhdGVkU2VjdG9yc1thZ2dyZWdhdGVkU2VjdG9ycy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoaXRlbS5sb2NhbE5hbWUuc3RhcnRzV2l0aCgnc2JiLXRyYWluLXdhZ29uJykpIHtcbiAgICAgICAgICBjb25zdCBzZWN0b3JBdHRyaWJ1dGUgPVxuICAgICAgICAgICAgKGl0ZW0gYXMgU2JiVHJhaW5XYWdvbk1peGluVHlwZSkuc2VjdG9yID8/IGl0ZW0uZ2V0QXR0cmlidXRlKCdzZWN0b3InKTtcblxuICAgICAgICAgIGlmICghY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgJiYgc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9IHNlY3RvckF0dHJpYnV0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXNlY3RvckF0dHJpYnV0ZSB8fCBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9PT0gc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50Kys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogc2VjdG9yQXR0cmlidXRlLFxuICAgICAgICAgICAgICB3YWdvbkNvdW50OiAxLFxuICAgICAgICAgICAgICBibG9ja2VkUGFzc2FnZUNvdW50OiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ubG9jYWxOYW1lID09PSAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScpIHtcbiAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWdncmVnYXRlZFNlY3RvcnM7XG4gICAgICB9LFxuICAgICAgW3sgd2Fnb25Db3VudDogMCwgYmxvY2tlZFBhc3NhZ2VDb3VudDogMCB9IGFzIEFnZ3JlZ2F0ZWRTZWN0b3JdLFxuICAgICk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1zZWN0b3JzJyxcbiAgICAgIHRoaXMuX3NlY3RvcnMuc29tZSgocykgPT4gISFzLmxhYmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9zZWN0b3JzLmxlbmd0aCAmJiB0aGlzLl9zZWN0b3JzWzBdLmxhYmVsICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAke3RoaXMuX3NlY3RvcnMubWFwKFxuICAgICAgICAgICAgICAoYWdncmVnYXRlZFNlY3RvcikgPT5cbiAgICAgICAgICAgICAgICBodG1sYDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCc6IGFnZ3JlZ2F0ZWRTZWN0b3Iud2Fnb25Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3IuYmxvY2tlZFBhc3NhZ2VDb3VudCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yLXN0aWNreS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICR7YCR7XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50ID09PSAxICYmIGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaTE4blNlY3RvclNob3J0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGkxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgfSAke2FnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgPyBhZ2dyZWdhdGVkU2VjdG9yLmxhYmVsIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbnNcIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCcsXG4gICAgICAgICAgYXJpYUxhYmVsOiBpMThuVHJhaW5zW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi1mb3JtYXRpb24nOiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0lDdUNhLGtDQUF3QjttQkFBUyxzQkFH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
190
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1YR2F0QTQtUy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID1cbiAgICAnaG9yaXpvbnRhbCc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfc2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdID0gW107XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0cmFpbnNsb3RjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoZSk7XG4gICAgICB0aGlzLl9yZWFkRGlyZWN0aW9uTGFiZWwoZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3NlY3RvcmNoYW5nZScsIChlKSA9PiB0aGlzLl9yZWFkU2VjdG9ycyhlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2RpcmVjdGlvbmxhYmVsY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdoZW4gaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXIgc3R5bGVzIG9uIHRoZSBob3N0LCB0aGVyZSBpcyBubyBob3ZlciBlZmZlY3Qgb2YgdGhlIHNjcm9sbGJhciBwb3NzaWJsZS5cbiAgICAvLyBJbiBtb3N0IGNhc2VzLCB0aGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBpbiBMaWdodCBET00uIFRvIGFsc28gc3VwcG9ydCB0aGUgaG92ZXIgZWZmZWN0LFxuICAgIC8vIHdlIGFkZGl0aW9uYWxseSBhZGQgdGhlIGBzYmItc2Nyb2xsYmFyYCBDU1MgY2xhc3MgdG8gdGhlIGhvc3QuXG4gICAgLy8gVGhpcyBpcyBhbiBleGNlcHRpb24gYXMgd2Ugbm9ybWFsbHkgZG9uJ3QgYWx0ZXIgdGhlIGNsYXNzTGlzdCBvZiB0aGUgaG9zdC5cbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWREaXJlY3Rpb25MYWJlbChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdoYXMtZGlyZWN0aW9uLWxhYmVsJyxcbiAgICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi10cmFpbicpID8/IFtdKS5zb21lKFxuICAgICAgICAodHJhaW4pID0+ICEhdHJhaW4uZGlyZWN0aW9uTGFiZWwsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkU2VjdG9ycyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5fc2VjdG9ycyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQ+KFxuICAgICAgICAnc2JiLXRyYWluLXdhZ29uLHNiYi10cmFpbi13YWdvbi1idXR0b24sc2JiLXRyYWluLXdhZ29uLWxpbmssc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScsXG4gICAgICApID8/IFtdLFxuICAgICkucmVkdWNlKFxuICAgICAgKFxuICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdLFxuICAgICAgICBpdGVtOiBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IgPSBhZ2dyZWdhdGVkU2VjdG9yc1thZ2dyZWdhdGVkU2VjdG9ycy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoaXRlbS5sb2NhbE5hbWUuc3RhcnRzV2l0aCgnc2JiLXRyYWluLXdhZ29uJykpIHtcbiAgICAgICAgICBjb25zdCBzZWN0b3JBdHRyaWJ1dGUgPVxuICAgICAgICAgICAgKGl0ZW0gYXMgU2JiVHJhaW5XYWdvbk1peGluVHlwZSkuc2VjdG9yID8/IGl0ZW0uZ2V0QXR0cmlidXRlKCdzZWN0b3InKTtcblxuICAgICAgICAgIGlmICghY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgJiYgc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9IHNlY3RvckF0dHJpYnV0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXNlY3RvckF0dHJpYnV0ZSB8fCBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9PT0gc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50Kys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogc2VjdG9yQXR0cmlidXRlLFxuICAgICAgICAgICAgICB3YWdvbkNvdW50OiAxLFxuICAgICAgICAgICAgICBibG9ja2VkUGFzc2FnZUNvdW50OiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ubG9jYWxOYW1lID09PSAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScpIHtcbiAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWdncmVnYXRlZFNlY3RvcnM7XG4gICAgICB9LFxuICAgICAgW3sgd2Fnb25Db3VudDogMCwgYmxvY2tlZFBhc3NhZ2VDb3VudDogMCB9IGFzIEFnZ3JlZ2F0ZWRTZWN0b3JdLFxuICAgICk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1zZWN0b3JzJyxcbiAgICAgIHRoaXMuX3NlY3RvcnMuc29tZSgocykgPT4gISFzLmxhYmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9zZWN0b3JzLmxlbmd0aCAmJiB0aGlzLl9zZWN0b3JzWzBdLmxhYmVsICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAke3RoaXMuX3NlY3RvcnMubWFwKFxuICAgICAgICAgICAgICAoYWdncmVnYXRlZFNlY3RvcikgPT5cbiAgICAgICAgICAgICAgICBodG1sYDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCc6IGFnZ3JlZ2F0ZWRTZWN0b3Iud2Fnb25Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3IuYmxvY2tlZFBhc3NhZ2VDb3VudCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yLXN0aWNreS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICR7YCR7XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50ID09PSAxICYmIGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaTE4blNlY3RvclNob3J0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGkxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgfSAke2FnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgPyBhZ2dyZWdhdGVkU2VjdG9yLmxhYmVsIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbnNcIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCcsXG4gICAgICAgICAgYXJpYUxhYmVsOiBpMThuVHJhaW5zW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi1mb3JtYXRpb24nOiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0lDdUNhLGtDQUF3QjttQkFBUyxzQkFH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
@@ -438,4 +438,4 @@ var SbbTrainWagonMixin = (superClass) => {
438
438
  //#endregion
439
439
  export { SbbTrainWagonMixin as t };
440
440
 
441
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tY29tbW9uLUNkY2tJdEV0LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdHJhaW4td2Fnb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFt3YWdvbi10eXBlPSdjbG9zZWQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1jcm9zc2VkLXNoYXBlLWRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1sZWZ0J10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1yaWdodCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xufVxuXG46aG9zdCg6c3RhdGUodmlldy1zaWRlKVt3YWdvbi10eXBlPSdsb2NvbW90aXZlJ10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctdG9wKSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCk7XG59XG5cbjpob3N0KFtsYWJlbF0pIHtcbiAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtbWF4LXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xufVxuXG46aG9zdCg6bm90KFtsYWJlbF0pKSB7XG4gIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG46aG9zdCguc2JiLWFjdGl2ZSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtM3gpO1xufVxuXG46aG9zdCg6c3RhdGUoYWN0aW9uKSkge1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpzdGF0ZShsaW5rKSkge1xuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yOiBMaW5rVGV4dDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uLWxpbmsge1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tdmVydGljYWwtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzKTtcblxuICAgIDpob3N0KDpzdGF0ZShidXR0b24pOmZvY3VzLXZpc2libGUpICYsXG4gICAgLnNiYi10cmFpbi13YWdvbi1saW5rOmZvY3VzLXZpc2libGUgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZSk7XG4gIG1hc2staW1hZ2U6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZS1jb21wYXJ0bWVudCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tc2JiLXRyYWluLXdhZ29uLXRyYW5zaXRpb24tZHVyYXRpb24pXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gIDpob3N0KDpzdGF0ZShhY3Rpb24pOmhvdmVyKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGFjdGlvbik6aXMoOmFjdGl2ZSwgOnN0YXRlKGFjdGl2ZSkpKSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmUpO1xuICB9XG5cbiAgJjpoYXMoLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5KTpoYXMoLnNiYi10cmFpbi13YWdvbl9fY2xhc3MpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmUpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50LFxuLnNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uIHtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblxuICAvLyBOZWVkIGluIG9yZGVyIHRvIGNvcnJlY3RseSByZW5kZXIgaW4gU2FmYXJpXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgcm90YXRlOiAtOTBkZWc7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUge1xuICAvLyBXZSBoYXZlIHRvIGNsaXAgdGhlIHNoYXBlLCBiZWNhdXNlIHRoZSBwYXRoIGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgd2Fnb24gc2hhcGUgYW5kIHdvdWxkIG92ZXJmbG93IG90aGVyd2lzZS5cbiAgbWFzay1pbWFnZTogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yKTtcblxuICAvLyBXZSBoYXZlIHRvIG11bHRpcGx5IGJ5IGZhY3RvciAyIGJlY2F1c2UgdGhlIGJvcmRlciBncm93cyBmcm9tIHRoZSBib3VuZGluZyBib3ggbGluZXNcbiAgc3Ryb2tlLXdpZHRoOiBjYWxjKHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpICogMik7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX21haW4taWNvbiB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW1haW4taWNvbi1oZWlnaHQpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZS1jbG9zZWQge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY3Jvc3NlZC1zaGFwZS1kaXNwbGF5LCBub25lKTtcbiAgc3Ryb2tlLXdpZHRoOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5LFxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBoZWlnaHQ6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWhlaWdodCk7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW9jY3VwYW5jeS1oZWlnaHQpO1xuXG4gIGdyaWQtYXJlYTogb2NjdXBhbmN5O1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcyB7XG4gIGdhcDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfTtcbiAgb3JkZXI6IDE7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJhY2tncm91bmQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZm9udC13ZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWNvbG9yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIE5lZWRlZCB0byBmaXggU2FmYXJpIHZlcnRpY2FsIGNlbnRlcmluZ1xuICBsaW5lLWhlaWdodDogMTtcblxuICAmLmZpcnN0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtY29sb3IpO1xuICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgIDpob3N0KDpub3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkpICYge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC10aGlja25lc3MpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gICAgICAgIGluc2V0OiBjYWxjKFxuICAgICAgICAgICAgLTAuNSAqXG4gICAgICAgICAgICAgICh2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgIClcbiAgICAgICAgICAwIGF1dG8gY2FsYygtMSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtdGhpY2tuZXNzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgICAgICAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKSkgYXV0byAwXG4gICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgIC0wLjUgKlxuICAgICAgICAgICAgICAodmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgICk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2luZm9ybWF0aW9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLWdhcCk7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgbWluLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24taW5mb3JtYXRpb24tbWluLXdpZHRoKTtcbiAgfVxuXG4gICZbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aXMoLnNiYi10cmFpbi13YWdvbl9fbGFiZWwsIC5zYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXIpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpKVxuICApO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8vIEluIHZlcnRpY2FsIG9yaWVudGF0aW9uLCB0aGUgbGFiZWwgaXMgaG9yaXpvbnRhbGx5IGNlbnRlcmVkIGluIGEgZml4ZWQgd2lkdGggYm94IG9mIDMycHggYnkgZGVzaWduLlxuICAvLyBBcyB0aGUgYm94IGNhbiBncm93IHRvIHRoZSBzaWRlIGlmIHRoZXJlIGFyZSBtYW55IGF0dHJpYnV0ZSBpY29ucywgd2UgaGF2ZSB0byByZS1hcHBseSB0aGlzIHdpZHRoIGFzIG1heC13aWR0aCBoZXJlLlxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1taW4td2lkdGgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyIHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAwLjUgKiAodmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLW1pbi13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKSlcbiAgICApO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3Qge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24tY29sb3IpO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpKVxuICApO1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIGljb25zIHN0YXkgYXMgbG9uZyBhcyBwb3NzaWJsZSB0byB0aGUgc2lkZSBvZiB0aGUgc2hhcGUgYW5kIG9ubHkgdGhlbiB1c2UgYSBzZWNvbmQgY29sdW1uLlxuICAgIC8vIEhvd2V2ZXIsIHRoZSBvcmRlciBvZiB0aGUgaWNvbnMgc2hvdWxkIGJlIHJvdyB3aXNlLiBUbyBtaXRpZ2F0ZSB0aGlzIHByb2JsZW0sIHdlIHByb2dyYW1tYXRpY2FsbHkgZ2V0IHRoZSBhbW91bnQgb2ZcbiAgICAvLyBzbG90dGVkIGljb25zIGFuZCBjYW4gdGhlcmVmb3JlIGNhbGN1bGF0ZSwgaG93IG1hbnkgY29sdW1ucyBhcHByb3hpbWF0ZWx5IGFyZSBuZWVkZWQuXG4gICAgLy8gVG8gbW92ZSB0aGUgaWNvbnMgYWdhaW5zdCB0aGUgc2hhcGUsIHdlIGNvbnRyb2wgdGhlIG1heC13aWR0aC5cbiAgICAvLyBUaGUgbWF4LWhlaWdodCBpcyBnaXZlbiBieSB0aGUgZmFjdCwgdGhhdCAzIHJvd3MgZml0IGludG8gdGhlIGRlc2lnbi4gRm9yIHRoZSBjYWxjdWxhdGlvbixcbiAgICAvLyBhbHNvIHR3byB0aW1lcyB0aGUgZ2FwIGhhcyB0byBiZSBpbmNsdWRlZC5cbiAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zKSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLW1lYW4td2lkdGgpXG4gICAgKTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKFxuICAgICAgdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93cywgMykgKlxuICAgICAgICB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KSArXG4gICAgICAgICh2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzLCAzKSAtIDEpICpcbiAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcClcbiAgICApO1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gVXNpbmcgLi4uIGxpIHNlbGVjdG9yLCBiZWNhdXNlIHRoZSBsaSBnZW5lcmF0aW9uXG4vLyBpcyBoYW5kbGVkIGluIHRoZSBjb21wb25lbnQgYmFzZSBjbGFzcy5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHdoZW4gfSBmcm9tICdsaXQvZGlyZWN0aXZlcy93aGVuLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi9jb3JlL21peGlucy9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nLFxuICBpMThuQW5kLFxuICBpMThuQmxvY2tlZFBhc3NhZ2UsXG4gIGkxOG5DbGFzcyxcbiAgaTE4bkNsb3NlZENvbXBhcnRtZW50TGFiZWwsXG4gIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsLFxuICBpMThuTG9jb21vdGl2ZUxhYmVsLFxuICBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWwsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWwsXG4gIGkxOG5XYWdvbkxhYmVsLFxuICBpMThuV2Fnb25MYWJlbE51bWJlcixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmFtZWRTbG90TGlzdE1peGluLFxuICB0eXBlIFNiYk9jY3VwYW5jeSxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCB9IGZyb20gJy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLXdhZ29uLWNvbW1vbi5zY3NzP2lubGluZSc7XG5cbmNvbnN0IHdhZ29uVHlwZVRvSWNvbk1hcDogUGFydGlhbDxSZWNvcmQ8U2JiVHJhaW5XYWdvbk1peGluVHlwZVsnd2Fnb25UeXBlJ10sIHN0cmluZz4+ID0ge1xuICBjb3VjaGV0dGU6ICdzYS1jYycsXG4gIHNsZWVwaW5nOiAnc2Etd2wnLFxuICByZXN0YXVyYW50OiAnc2Etd3InLFxufTtcblxuY29uc3Qgc2hhcGVQYXRoczogUmVjb3JkPFxuICBFeGNsdWRlPFNiYlRyYWluV2Fnb25NaXhpblR5cGVbJ3dhZ29uVHlwZSddLCAnY291Y2hldHRlJyB8ICdzbGVlcGluZycgfCAncmVzdGF1cmFudCcgfCAnY2xvc2VkJz4sXG4gIHsgc2lkZTogc3RyaW5nOyB0b3A6IHN0cmluZyB9XG4+ID0ge1xuICB3YWdvbjoge1xuICAgIHNpZGU6ICdNMTIgMEg3MkExMiAxMiAwIDAxODQgMTJWMjRBMTIgMTIgMCAwMTcyIDM2SDEyQTEyIDEyIDAgMDEwIDI0VjEyQTEyIDEyIDAgMDExMiAwWicsXG4gICAgdG9wOiAnTTggMEE4IDggMCAwMDAgOFYyOGE4IDggMCAwMDggOEg3NmE4IDggMCAwMDgtOFY4QTggOCAwIDAwNzYgMEg4WicsXG4gIH0sXG4gIGxvY29tb3RpdmU6IHtcbiAgICBzaWRlOiAnTTcuNyA4LjZDMTAuNSAzLjYgMTYgMCAyMiAwSDYyYzYgMCAxMS41IDMuNiAxNC4zIDguNmw1LjEgOUM4NS45IDI1LjYgODAgMzYgNzEgMzZIMTNDNCAzNi0xLjkgMjUuNiAyLjYgMTcuNmw1LjEtOVonLFxuICAgIHRvcDogJ002NiAwSDE4QzggMCAwIDggMCAxOFM4IDM2IDE4IDM2SDY2YzEwIDAgMTgtOCAxOC0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1sZWZ0Jzoge1xuICAgIHNpZGU6ICdNNy43IDguNkExNiAxNiAwIDAxMjIgMEg3MmM2IDAgMTIgNiAxMiAxMlYyNGMwIDYtNiAxMi0xMiAxMkgxM0MzLjggMzYtMiAyNi4xIDIuNiAxOC4xWicsXG4gICAgdG9wOiAnTTc2IDBIMThDOC4yNSAwIC41IDguMjUuNSAxOFM4IDM2IDE4IDM2SDc2YzQgMCA4LTQgOC04VjhjMC00LTQtOC04LThaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1yaWdodCc6IHtcbiAgICBzaWRlOiAnTTc2LjMgOC42QTE2IDE2IDAgMDA2MiAwSDEyQzYgMCAwIDYgMCAxM3YxMWMwIDYgNiAxMiAxMiAxMmg1OC40YzguNiAwIDE1LTkuOSAxMC40LTE3Ljl6JyxcbiAgICB0b3A6ICdNNjYgMEg4QzQgMCAwIDQgMCA4VjI4YzAgNCA0IDggOCA4SDY2YzkuNzUgMCAxNy41LTguMjUgMTcuNS0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpblR5cGUgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICB8ICd3YWdvbidcbiAgICB8ICd3YWdvbi1lbmQtbGVmdCdcbiAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgfCAnY291Y2hldHRlJ1xuICAgIHwgJ3NsZWVwaW5nJ1xuICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgfCAnbG9jb21vdGl2ZSdcbiAgICB8ICdjbG9zZWQnO1xuICBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3Igc2VjdG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBibG9ja2VkUGFzc2FnZTogJ3ByZXZpb3VzJyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJztcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uQ2xhc3M6ICcxJyB8ICcyJyB8ICcxLTInIHwgJzItMScgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3IgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlRyYWluV2Fnb25NaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluV2Fnb25NaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJOYW1lZFNsb3RMaXN0TWl4aW48U2JiSWNvbkVsZW1lbnQsIFQ+KHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgICAgU2JiSWNvbkVsZW1lbnQsXG4gICAgICBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqXG4gICAgICogV2Fnb24gdHlwZS5cbiAgICAgKiBGb3IgYHdhZ29uLWVuZC1sZWZ0YCBhbmQgYHdhZ29uLWVuZC1yaWdodGAsIHBsZWFzZSBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2YgdGhlIGBibG9ja2VkUGFzc2FnZWAgcHJvcGVydHkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tdHlwZScsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICAgIHwgJ3dhZ29uJ1xuICAgICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgICB8ICdjb3VjaGV0dGUnXG4gICAgICB8ICdzbGVlcGluZydcbiAgICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgICB8ICdsb2NvbW90aXZlJ1xuICAgICAgfCAnY2xvc2VkJyA9ICd3YWdvbic7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWljb24nXTtcblxuICAgIC8qKiBPY2N1cGFuY3kgb2YgYSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBTZWN0b3IgaW4gd2hpY2ggdGhlIHdhZ29uIHN0b3BzLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiVHJhaW5XYWdvbk1peGluRWxlbWVudCkgPT4gZS5fc2VjdG9yQ2hhbmdlZCgpKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogQWNjZXNzaWJpbGl0eSB0ZXh0IGZvciBibG9ja2VkIHBhc3NhZ2VzIG9mIHRoZSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdibG9ja2VkLXBhc3NhZ2UnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGJsb2NrZWRQYXNzYWdlOiAncHJldmlvdXMnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gICAgLyoqIENsYXNzIGxhYmVsICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tY2xhc3MnIH0pIHB1YmxpYyBhY2Nlc3NvciB3YWdvbkNsYXNzOlxuICAgICAgfCAnMSdcbiAgICAgIHwgJzInXG4gICAgICB8ICcxLTInXG4gICAgICB8ICcyLTEnXG4gICAgICB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFdhZ29uIG51bWJlciAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBBZGRpdGlvbmFsIGFjY2Vzc2liaWxpdHkgdGV4dCB3aGljaCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWRkaXRpb25hbC1hY2Nlc3NpYmlsaXR5LXRleHQnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF92aWV3OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnRbJ3ZpZXcnXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByaXZhdGUgX2NsaXBTdHlsZVNoZWV0OiBDU1NTdHlsZVNoZWV0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIHZpZXc6ICh0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3ZpZXcgPSB0LnZpZXc7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZVJlbmRlclJvb3QoKTogSFRNTEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHtcbiAgICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG5cbiAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQgPSBuZXcgQ1NTU3R5bGVTaGVldCgpO1xuICAgICAgICAocmVuZGVyUm9vdCBhcyBTaGFkb3dSb290KS5hZG9wdGVkU3R5bGVTaGVldHMucHVzaCh0aGlzLl9jbGlwU3R5bGVTaGVldCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZW5kZXJSb290O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NlY3RvckNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzZWN0b3JjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF93YWdvblR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uVHlwZSkge1xuICAgICAgICBjYXNlICdjbG9zZWQnOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnbG9jb21vdGl2ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Mb2NvbW90aXZlTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ2NvdWNoZXR0ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdzbGVlcGluZyc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ3Jlc3RhdXJhbnQnOlxuICAgICAgICAgIHJldHVybiBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGkxOG5XYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3dhZ29uU2hhcGUoKTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3ID8/ICdzaWRlJztcbiAgICAgIGlmIChbJ3dhZ29uJywgJ2NvdWNoZXR0ZScsICdzbGVlcGluZycsICdyZXN0YXVyYW50JywgJ2Nsb3NlZCddLmluY2x1ZGVzKHRoaXMud2Fnb25UeXBlKSkge1xuICAgICAgICByZXR1cm4gc2hhcGVQYXRoc1snd2Fnb24nXVt2aWV3XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHNoYXBlUGF0aHNbdGhpcy53YWdvblR5cGUgYXMga2V5b2YgdHlwZW9mIHNoYXBlUGF0aHNdW3ZpZXddID8/IHNoYXBlUGF0aHNbJ3dhZ29uJ11bdmlld11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xhc3NMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uQ2xhc3MpIHtcbiAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJzEtMic6XG4gICAgICAgICAgcmV0dXJuIGAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19YDtcbiAgICAgICAgY2FzZSAnMi0xJzpcbiAgICAgICAgICByZXR1cm4gYCR7aTE4bkNsYXNzWydzZWNvbmQnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1gO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgYmxvY2tlZFBhc3NhZ2UgPVxuICAgICAgICB0aGlzLndhZ29uVHlwZSA9PT0gJ3dhZ29uLWVuZC1sZWZ0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICA/ICdwcmV2aW91cydcbiAgICAgICAgICA6IHRoaXMud2Fnb25UeXBlID09PSAnd2Fnb24tZW5kLXJpZ2h0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICAgID8gJ25leHQnXG4gICAgICAgICAgICA6ICh0aGlzLmJsb2NrZWRQYXNzYWdlID8/ICdub25lJyk7XG5cbiAgICAgIGNvbnN0IGhhc0Jsb2NrZWRQYXNzYWdlRW50cnkgPSBibG9ja2VkUGFzc2FnZSAhPT0gJ25vbmUnO1xuXG4gICAgICAvLyBGcm9tIGFjY2Vzc2liaWxpdHkgcGVyc3BlY3RpdmUgd2UgY2Fubm90IGNyZWF0ZSBhIGxpc3Qgd2l0aCBvbmx5IG9uZSBlbnRyeS5cbiAgICAgIC8vIFdlIG5lZWQgdG8ga25vdyB3aGF0IHdpbGwgYmUgcHJlc2VudGVkIGFuZCBzd2l0Y2ggc2VtYW50aWNzIGJhc2VkIG9uIGNvdW50LlxuICAgICAgY29uc3QgbGlzdEVudHJpZXNDb3VudCA9XG4gICAgICAgICshIXRoaXMuc2VjdG9yICtcbiAgICAgICAgKyEhdGhpcy5sYWJlbCArXG4gICAgICAgICsoISF0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAgICsoISF0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCcpICtcbiAgICAgICAgK2hhc0Jsb2NrZWRQYXNzYWdlRW50cnk7XG5cbiAgICAgIGNvbnN0IHNlY3RvclN0cmluZyA9IGAke2kxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCAke3RoaXMuc2VjdG9yfWA7XG4gICAgICBjb25zdCBsYWJlbFN0cmluZyA9IGAke2kxOG5XYWdvbkxhYmVsTnVtYmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLmxhYmVsfWA7XG5cbiAgICAgIGNvbnN0IHdhZ29uQ2xhc3NDb250ZW50ID0gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAke3RoaXMuX2NsYXNzTGFiZWwoKX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMud2Fnb25DbGFzc1xuICAgICAgICAgID8uc3BsaXQoJy0nKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAod2Fnb25DbGFzcykgPT5cbiAgICAgICAgICAgICAgaHRtbGA8c3BhblxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5ICR7d2Fnb25DbGFzcyA9PT0gJzEnID8gJ2ZpcnN0JyA6ICcnfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAke3dhZ29uQ2xhc3N9XG4gICAgICAgICAgICAgIDwvc3Bhbj5gLFxuICAgICAgICAgICl9IGA7XG5cbiAgICAgIGNvbnN0IHBhdGggPSB0aGlzLl93YWdvblNoYXBlKCk7XG5cbiAgICAgIGNvbnN0IGF2YWlsYWJsZUljb25Sb3dzID0gdGhpcy5sYWJlbCA/IDMgOiA0O1xuICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQ/LnJlcGxhY2VTeW5jKGA6aG9zdCB7XG4gICAgICAgICAgICAtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4NCAzNicgZmlsbD0nYmxhY2snJTNFJTNDcGF0aCBkPScke3BhdGh9JyAvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlLWNvbXBhcnRtZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDM2IDogODR9ICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDg0IDogMzZ9JyBmaWxsPSdibGFjayclM0UlM0NwYXRoIGQ9JyR7cGF0aH0nJHt0aGlzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gYCB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAsIDAsIDApIHNjYWxlKC0xLCAxKSdgIDogJyd9IC8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zOiAke01hdGguY2VpbCh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLyBhdmFpbGFibGVJY29uUm93cyl9O1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzOiAke2F2YWlsYWJsZUljb25Sb3dzfTtcbiAgICAgICAgICB9YCk7XG5cbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uXCI+XG4gICAgICAgICAgJHt3aGVuKFxuICAgICAgICAgICAgbGlzdEVudHJpZXNDb3VudCA+IDEsXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBodG1sYDx1bCBhcmlhLWxhYmVsPSR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0gY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50XCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnNlY3RvclxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxsaSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke3NlY3RvclN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtsYWJlbFN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMub2NjdXBhbmN5ICYmIHRoaXMud2Fnb25UeXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeVwiXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBvY2N1cGFuY3k9JHt0aGlzLm9jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5XG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgPC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvdWw+YCxcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgIGh0bWxgPGRpdiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICR7YCR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0ke3RoaXMuc2VjdG9yID8gYCwgJHtzZWN0b3JTdHJpbmd9YCA6ICcnfWB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5sYWJlbFxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWxTdHJpbmd9PC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY2xhc3NcIj4ke3dhZ29uQ2xhc3NDb250ZW50fTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgIG9jY3VwYW5jeT0ke3RoaXMub2NjdXBhbmN5fVxuICAgICAgICAgICAgICAgICAgICA+PC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke2hhc0Jsb2NrZWRQYXNzYWdlRW50cnlcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2kxOG5CbG9ja2VkUGFzc2FnZVtibG9ja2VkUGFzc2FnZV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvZGl2PiBgLFxuICAgICAgICAgICl9XG4gICAgICAgICAgJHt3YWdvblR5cGVUb0ljb25NYXBbdGhpcy53YWdvblR5cGVdXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT0ke3dhZ29uVHlwZVRvSWNvbk1hcFt0aGlzLndhZ29uVHlwZV0hfVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19tYWluLWljb25cIlxuICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGVcIiB2aWV3Qm94PVwiMCAwIDg0IDM2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8cGF0aCBkPSR7cGF0aH0+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlLWNsb3NlZFwiXG4gICAgICAgICAgICAgIGQ9JHt0aGlzLl92aWV3ID09PSAndG9wJyA/ICdNODEgM0wzIDM0JyA6ICdNODEgNEw0IDMyJ31cbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGUtY2xvc2VkXCJcbiAgICAgICAgICAgICAgZD0ke3RoaXMuX3ZpZXcgPT09ICd0b3AnID8gJ004MSAzNEwzIDMnIDogJ004MSAzMkw0IDQnfVxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0XG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgICAgICAgICAgICAgICA+LCAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0fTwvc3BhblxuICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9faW5mb3JtYXRpb24td3JhcHBlclwiXG4gICAgICAgICAgICA/aGlkZGVuPSR7IXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5sYWJlbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19sYWJlbFwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3RoaXMubGFiZWwgJiYgdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLWRpdmlkZXJcbiAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPSR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9XG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgID48L3NiYi1kaXZpZGVyPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgICAgICBjbGFzczogJ3NiYi10cmFpbi13YWdvbl9fYXR0cmlidXRlLWljb24tbGlzdCcsXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZ1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJUcmFpbldhZ29uTWl4aW5FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQ3FDQSxJQUFNLHFCQUFtRjtDQUN2RixXQUFXO0NBQ1gsVUFBVTtDQUNWLFlBQVk7O0FBR2QsSUFBTSxhQUdGO0NBQ0YsT0FBTztFQUNMLE1BQU07RUFDTixLQUFLOztDQUVQLFlBQVk7RUFDVixNQUFNO0VBQ04sS0FBSzs7Q0FFUCxrQkFBa0I7RUFDaEIsTUFBTTtFQUNOLEtBQUs7O0NBRVAsbUJBQW1CO0VBQ2pCLE1BQU07RUFDTixLQUFLOzs7QUF5QlQsSUFB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
441
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tY29tbW9uLTRkQzk5NW1ULmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdHJhaW4td2Fnb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFt3YWdvbi10eXBlPSdjbG9zZWQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1jcm9zc2VkLXNoYXBlLWRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1sZWZ0J10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1yaWdodCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xufVxuXG46aG9zdCg6c3RhdGUodmlldy1zaWRlKVt3YWdvbi10eXBlPSdsb2NvbW90aXZlJ10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctdG9wKSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCk7XG59XG5cbjpob3N0KFtsYWJlbF0pIHtcbiAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtbWF4LXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xufVxuXG46aG9zdCg6bm90KFtsYWJlbF0pKSB7XG4gIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG46aG9zdCguc2JiLWFjdGl2ZSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtM3gpO1xufVxuXG46aG9zdCg6c3RhdGUoYWN0aW9uKSkge1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpzdGF0ZShsaW5rKSkge1xuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yOiBMaW5rVGV4dDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uLWxpbmsge1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tdmVydGljYWwtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzKTtcblxuICAgIDpob3N0KDpzdGF0ZShidXR0b24pOmZvY3VzLXZpc2libGUpICYsXG4gICAgLnNiYi10cmFpbi13YWdvbi1saW5rOmZvY3VzLXZpc2libGUgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZSk7XG4gIG1hc2staW1hZ2U6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZS1jb21wYXJ0bWVudCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tc2JiLXRyYWluLXdhZ29uLXRyYW5zaXRpb24tZHVyYXRpb24pXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gIDpob3N0KDpzdGF0ZShhY3Rpb24pOmhvdmVyKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGFjdGlvbik6aXMoOmFjdGl2ZSwgOnN0YXRlKGFjdGl2ZSkpKSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmUpO1xuICB9XG5cbiAgJjpoYXMoLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5KTpoYXMoLnNiYi10cmFpbi13YWdvbl9fY2xhc3MpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmUpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50LFxuLnNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uIHtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblxuICAvLyBOZWVkIGluIG9yZGVyIHRvIGNvcnJlY3RseSByZW5kZXIgaW4gU2FmYXJpXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgcm90YXRlOiAtOTBkZWc7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUge1xuICAvLyBXZSBoYXZlIHRvIGNsaXAgdGhlIHNoYXBlLCBiZWNhdXNlIHRoZSBwYXRoIGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgd2Fnb24gc2hhcGUgYW5kIHdvdWxkIG92ZXJmbG93IG90aGVyd2lzZS5cbiAgbWFzay1pbWFnZTogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yKTtcblxuICAvLyBXZSBoYXZlIHRvIG11bHRpcGx5IGJ5IGZhY3RvciAyIGJlY2F1c2UgdGhlIGJvcmRlciBncm93cyBmcm9tIHRoZSBib3VuZGluZyBib3ggbGluZXNcbiAgc3Ryb2tlLXdpZHRoOiBjYWxjKHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpICogMik7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX21haW4taWNvbiB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW1haW4taWNvbi1oZWlnaHQpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZS1jbG9zZWQge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY3Jvc3NlZC1zaGFwZS1kaXNwbGF5LCBub25lKTtcbiAgc3Ryb2tlLXdpZHRoOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5LFxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBoZWlnaHQ6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWhlaWdodCk7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW9jY3VwYW5jeS1oZWlnaHQpO1xuXG4gIGdyaWQtYXJlYTogb2NjdXBhbmN5O1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcyB7XG4gIGdhcDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfTtcbiAgb3JkZXI6IDE7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJhY2tncm91bmQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZm9udC13ZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWNvbG9yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIE5lZWRlZCB0byBmaXggU2FmYXJpIHZlcnRpY2FsIGNlbnRlcmluZ1xuICBsaW5lLWhlaWdodDogMTtcblxuICAmLmZpcnN0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtY29sb3IpO1xuICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgIDpob3N0KDpub3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkpICYge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC10aGlja25lc3MpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gICAgICAgIGluc2V0OiBjYWxjKFxuICAgICAgICAgICAgLTAuNSAqXG4gICAgICAgICAgICAgICh2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgIClcbiAgICAgICAgICAwIGF1dG8gY2FsYygtMSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtdGhpY2tuZXNzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgICAgICAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKSkgYXV0byAwXG4gICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgIC0wLjUgKlxuICAgICAgICAgICAgICAodmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgICk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2luZm9ybWF0aW9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLWdhcCk7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgbWluLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24taW5mb3JtYXRpb24tbWluLXdpZHRoKTtcbiAgfVxuXG4gICZbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aXMoLnNiYi10cmFpbi13YWdvbl9fbGFiZWwsIC5zYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXIpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpKVxuICApO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8vIEluIHZlcnRpY2FsIG9yaWVudGF0aW9uLCB0aGUgbGFiZWwgaXMgaG9yaXpvbnRhbGx5IGNlbnRlcmVkIGluIGEgZml4ZWQgd2lkdGggYm94IG9mIDMycHggYnkgZGVzaWduLlxuICAvLyBBcyB0aGUgYm94IGNhbiBncm93IHRvIHRoZSBzaWRlIGlmIHRoZXJlIGFyZSBtYW55IGF0dHJpYnV0ZSBpY29ucywgd2UgaGF2ZSB0byByZS1hcHBseSB0aGlzIHdpZHRoIGFzIG1heC13aWR0aCBoZXJlLlxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1taW4td2lkdGgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyIHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAwLjUgKiAodmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLW1pbi13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKSlcbiAgICApO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3Qge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24tY29sb3IpO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpKVxuICApO1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIGljb25zIHN0YXkgYXMgbG9uZyBhcyBwb3NzaWJsZSB0byB0aGUgc2lkZSBvZiB0aGUgc2hhcGUgYW5kIG9ubHkgdGhlbiB1c2UgYSBzZWNvbmQgY29sdW1uLlxuICAgIC8vIEhvd2V2ZXIsIHRoZSBvcmRlciBvZiB0aGUgaWNvbnMgc2hvdWxkIGJlIHJvdyB3aXNlLiBUbyBtaXRpZ2F0ZSB0aGlzIHByb2JsZW0sIHdlIHByb2dyYW1tYXRpY2FsbHkgZ2V0IHRoZSBhbW91bnQgb2ZcbiAgICAvLyBzbG90dGVkIGljb25zIGFuZCBjYW4gdGhlcmVmb3JlIGNhbGN1bGF0ZSwgaG93IG1hbnkgY29sdW1ucyBhcHByb3hpbWF0ZWx5IGFyZSBuZWVkZWQuXG4gICAgLy8gVG8gbW92ZSB0aGUgaWNvbnMgYWdhaW5zdCB0aGUgc2hhcGUsIHdlIGNvbnRyb2wgdGhlIG1heC13aWR0aC5cbiAgICAvLyBUaGUgbWF4LWhlaWdodCBpcyBnaXZlbiBieSB0aGUgZmFjdCwgdGhhdCAzIHJvd3MgZml0IGludG8gdGhlIGRlc2lnbi4gRm9yIHRoZSBjYWxjdWxhdGlvbixcbiAgICAvLyBhbHNvIHR3byB0aW1lcyB0aGUgZ2FwIGhhcyB0byBiZSBpbmNsdWRlZC5cbiAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zKSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLW1lYW4td2lkdGgpXG4gICAgKTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKFxuICAgICAgdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93cywgMykgKlxuICAgICAgICB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KSArXG4gICAgICAgICh2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzLCAzKSAtIDEpICpcbiAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcClcbiAgICApO1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gVXNpbmcgLi4uIGxpIHNlbGVjdG9yLCBiZWNhdXNlIHRoZSBsaSBnZW5lcmF0aW9uXG4vLyBpcyBoYW5kbGVkIGluIHRoZSBjb21wb25lbnQgYmFzZSBjbGFzcy5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHdoZW4gfSBmcm9tICdsaXQvZGlyZWN0aXZlcy93aGVuLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi9jb3JlL21peGlucy9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nLFxuICBpMThuQW5kLFxuICBpMThuQmxvY2tlZFBhc3NhZ2UsXG4gIGkxOG5DbGFzcyxcbiAgaTE4bkNsb3NlZENvbXBhcnRtZW50TGFiZWwsXG4gIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsLFxuICBpMThuTG9jb21vdGl2ZUxhYmVsLFxuICBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWwsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWwsXG4gIGkxOG5XYWdvbkxhYmVsLFxuICBpMThuV2Fnb25MYWJlbE51bWJlcixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmFtZWRTbG90TGlzdE1peGluLFxuICB0eXBlIFNiYk9jY3VwYW5jeSxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCB9IGZyb20gJy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLXdhZ29uLWNvbW1vbi5zY3NzP2lubGluZSc7XG5cbmNvbnN0IHdhZ29uVHlwZVRvSWNvbk1hcDogUGFydGlhbDxSZWNvcmQ8U2JiVHJhaW5XYWdvbk1peGluVHlwZVsnd2Fnb25UeXBlJ10sIHN0cmluZz4+ID0ge1xuICBjb3VjaGV0dGU6ICdzYS1jYycsXG4gIHNsZWVwaW5nOiAnc2Etd2wnLFxuICByZXN0YXVyYW50OiAnc2Etd3InLFxufTtcblxuY29uc3Qgc2hhcGVQYXRoczogUmVjb3JkPFxuICBFeGNsdWRlPFNiYlRyYWluV2Fnb25NaXhpblR5cGVbJ3dhZ29uVHlwZSddLCAnY291Y2hldHRlJyB8ICdzbGVlcGluZycgfCAncmVzdGF1cmFudCcgfCAnY2xvc2VkJz4sXG4gIHsgc2lkZTogc3RyaW5nOyB0b3A6IHN0cmluZyB9XG4+ID0ge1xuICB3YWdvbjoge1xuICAgIHNpZGU6ICdNMTIgMEg3MkExMiAxMiAwIDAxODQgMTJWMjRBMTIgMTIgMCAwMTcyIDM2SDEyQTEyIDEyIDAgMDEwIDI0VjEyQTEyIDEyIDAgMDExMiAwWicsXG4gICAgdG9wOiAnTTggMEE4IDggMCAwMDAgOFYyOGE4IDggMCAwMDggOEg3NmE4IDggMCAwMDgtOFY4QTggOCAwIDAwNzYgMEg4WicsXG4gIH0sXG4gIGxvY29tb3RpdmU6IHtcbiAgICBzaWRlOiAnTTcuNyA4LjZDMTAuNSAzLjYgMTYgMCAyMiAwSDYyYzYgMCAxMS41IDMuNiAxNC4zIDguNmw1LjEgOUM4NS45IDI1LjYgODAgMzYgNzEgMzZIMTNDNCAzNi0xLjkgMjUuNiAyLjYgMTcuNmw1LjEtOVonLFxuICAgIHRvcDogJ002NiAwSDE4QzggMCAwIDggMCAxOFM4IDM2IDE4IDM2SDY2YzEwIDAgMTgtOCAxOC0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1sZWZ0Jzoge1xuICAgIHNpZGU6ICdNNy43IDguNkExNiAxNiAwIDAxMjIgMEg3MmM2IDAgMTIgNiAxMiAxMlYyNGMwIDYtNiAxMi0xMiAxMkgxM0MzLjggMzYtMiAyNi4xIDIuNiAxOC4xWicsXG4gICAgdG9wOiAnTTc2IDBIMThDOC4yNSAwIC41IDguMjUuNSAxOFM4IDM2IDE4IDM2SDc2YzQgMCA4LTQgOC04VjhjMC00LTQtOC04LThaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1yaWdodCc6IHtcbiAgICBzaWRlOiAnTTc2LjMgOC42QTE2IDE2IDAgMDA2MiAwSDEyQzYgMCAwIDYgMCAxM3YxMWMwIDYgNiAxMiAxMiAxMmg1OC40YzguNiAwIDE1LTkuOSAxMC40LTE3Ljl6JyxcbiAgICB0b3A6ICdNNjYgMEg4QzQgMCAwIDQgMCA4VjI4YzAgNCA0IDggOCA4SDY2YzkuNzUgMCAxNy41LTguMjUgMTcuNS0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpblR5cGUgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICB8ICd3YWdvbidcbiAgICB8ICd3YWdvbi1lbmQtbGVmdCdcbiAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgfCAnY291Y2hldHRlJ1xuICAgIHwgJ3NsZWVwaW5nJ1xuICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgfCAnbG9jb21vdGl2ZSdcbiAgICB8ICdjbG9zZWQnO1xuICBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3Igc2VjdG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBibG9ja2VkUGFzc2FnZTogJ3ByZXZpb3VzJyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJztcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uQ2xhc3M6ICcxJyB8ICcyJyB8ICcxLTInIHwgJzItMScgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3IgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlRyYWluV2Fnb25NaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluV2Fnb25NaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJOYW1lZFNsb3RMaXN0TWl4aW48U2JiSWNvbkVsZW1lbnQsIFQ+KHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgICAgU2JiSWNvbkVsZW1lbnQsXG4gICAgICBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqXG4gICAgICogV2Fnb24gdHlwZS5cbiAgICAgKiBGb3IgYHdhZ29uLWVuZC1sZWZ0YCBhbmQgYHdhZ29uLWVuZC1yaWdodGAsIHBsZWFzZSBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2YgdGhlIGBibG9ja2VkUGFzc2FnZWAgcHJvcGVydHkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tdHlwZScsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICAgIHwgJ3dhZ29uJ1xuICAgICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgICB8ICdjb3VjaGV0dGUnXG4gICAgICB8ICdzbGVlcGluZydcbiAgICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgICB8ICdsb2NvbW90aXZlJ1xuICAgICAgfCAnY2xvc2VkJyA9ICd3YWdvbic7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWljb24nXTtcblxuICAgIC8qKiBPY2N1cGFuY3kgb2YgYSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBTZWN0b3IgaW4gd2hpY2ggdGhlIHdhZ29uIHN0b3BzLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiVHJhaW5XYWdvbk1peGluRWxlbWVudCkgPT4gZS5fc2VjdG9yQ2hhbmdlZCgpKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogQWNjZXNzaWJpbGl0eSB0ZXh0IGZvciBibG9ja2VkIHBhc3NhZ2VzIG9mIHRoZSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdibG9ja2VkLXBhc3NhZ2UnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGJsb2NrZWRQYXNzYWdlOiAncHJldmlvdXMnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gICAgLyoqIENsYXNzIGxhYmVsICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tY2xhc3MnIH0pIHB1YmxpYyBhY2Nlc3NvciB3YWdvbkNsYXNzOlxuICAgICAgfCAnMSdcbiAgICAgIHwgJzInXG4gICAgICB8ICcxLTInXG4gICAgICB8ICcyLTEnXG4gICAgICB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFdhZ29uIG51bWJlciAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBBZGRpdGlvbmFsIGFjY2Vzc2liaWxpdHkgdGV4dCB3aGljaCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWRkaXRpb25hbC1hY2Nlc3NpYmlsaXR5LXRleHQnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF92aWV3OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnRbJ3ZpZXcnXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByaXZhdGUgX2NsaXBTdHlsZVNoZWV0OiBDU1NTdHlsZVNoZWV0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIHZpZXc6ICh0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3ZpZXcgPSB0LnZpZXc7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZVJlbmRlclJvb3QoKTogSFRNTEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHtcbiAgICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG5cbiAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQgPSBuZXcgQ1NTU3R5bGVTaGVldCgpO1xuICAgICAgICAocmVuZGVyUm9vdCBhcyBTaGFkb3dSb290KS5hZG9wdGVkU3R5bGVTaGVldHMucHVzaCh0aGlzLl9jbGlwU3R5bGVTaGVldCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZW5kZXJSb290O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NlY3RvckNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzZWN0b3JjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF93YWdvblR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uVHlwZSkge1xuICAgICAgICBjYXNlICdjbG9zZWQnOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnbG9jb21vdGl2ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Mb2NvbW90aXZlTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ2NvdWNoZXR0ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdzbGVlcGluZyc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ3Jlc3RhdXJhbnQnOlxuICAgICAgICAgIHJldHVybiBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGkxOG5XYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3dhZ29uU2hhcGUoKTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3ID8/ICdzaWRlJztcbiAgICAgIGlmIChbJ3dhZ29uJywgJ2NvdWNoZXR0ZScsICdzbGVlcGluZycsICdyZXN0YXVyYW50JywgJ2Nsb3NlZCddLmluY2x1ZGVzKHRoaXMud2Fnb25UeXBlKSkge1xuICAgICAgICByZXR1cm4gc2hhcGVQYXRoc1snd2Fnb24nXVt2aWV3XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHNoYXBlUGF0aHNbdGhpcy53YWdvblR5cGUgYXMga2V5b2YgdHlwZW9mIHNoYXBlUGF0aHNdW3ZpZXddID8/IHNoYXBlUGF0aHNbJ3dhZ29uJ11bdmlld11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xhc3NMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uQ2xhc3MpIHtcbiAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJzEtMic6XG4gICAgICAgICAgcmV0dXJuIGAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19YDtcbiAgICAgICAgY2FzZSAnMi0xJzpcbiAgICAgICAgICByZXR1cm4gYCR7aTE4bkNsYXNzWydzZWNvbmQnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1gO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgYmxvY2tlZFBhc3NhZ2UgPVxuICAgICAgICB0aGlzLndhZ29uVHlwZSA9PT0gJ3dhZ29uLWVuZC1sZWZ0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICA/ICdwcmV2aW91cydcbiAgICAgICAgICA6IHRoaXMud2Fnb25UeXBlID09PSAnd2Fnb24tZW5kLXJpZ2h0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICAgID8gJ25leHQnXG4gICAgICAgICAgICA6ICh0aGlzLmJsb2NrZWRQYXNzYWdlID8/ICdub25lJyk7XG5cbiAgICAgIGNvbnN0IGhhc0Jsb2NrZWRQYXNzYWdlRW50cnkgPSBibG9ja2VkUGFzc2FnZSAhPT0gJ25vbmUnO1xuXG4gICAgICAvLyBGcm9tIGFjY2Vzc2liaWxpdHkgcGVyc3BlY3RpdmUgd2UgY2Fubm90IGNyZWF0ZSBhIGxpc3Qgd2l0aCBvbmx5IG9uZSBlbnRyeS5cbiAgICAgIC8vIFdlIG5lZWQgdG8ga25vdyB3aGF0IHdpbGwgYmUgcHJlc2VudGVkIGFuZCBzd2l0Y2ggc2VtYW50aWNzIGJhc2VkIG9uIGNvdW50LlxuICAgICAgY29uc3QgbGlzdEVudHJpZXNDb3VudCA9XG4gICAgICAgICshIXRoaXMuc2VjdG9yICtcbiAgICAgICAgKyEhdGhpcy5sYWJlbCArXG4gICAgICAgICsoISF0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAgICsoISF0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCcpICtcbiAgICAgICAgK2hhc0Jsb2NrZWRQYXNzYWdlRW50cnk7XG5cbiAgICAgIGNvbnN0IHNlY3RvclN0cmluZyA9IGAke2kxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCAke3RoaXMuc2VjdG9yfWA7XG4gICAgICBjb25zdCBsYWJlbFN0cmluZyA9IGAke2kxOG5XYWdvbkxhYmVsTnVtYmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLmxhYmVsfWA7XG5cbiAgICAgIGNvbnN0IHdhZ29uQ2xhc3NDb250ZW50ID0gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAke3RoaXMuX2NsYXNzTGFiZWwoKX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMud2Fnb25DbGFzc1xuICAgICAgICAgID8uc3BsaXQoJy0nKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAod2Fnb25DbGFzcykgPT5cbiAgICAgICAgICAgICAgaHRtbGA8c3BhblxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5ICR7d2Fnb25DbGFzcyA9PT0gJzEnID8gJ2ZpcnN0JyA6ICcnfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAke3dhZ29uQ2xhc3N9XG4gICAgICAgICAgICAgIDwvc3Bhbj5gLFxuICAgICAgICAgICl9IGA7XG5cbiAgICAgIGNvbnN0IHBhdGggPSB0aGlzLl93YWdvblNoYXBlKCk7XG5cbiAgICAgIGNvbnN0IGF2YWlsYWJsZUljb25Sb3dzID0gdGhpcy5sYWJlbCA/IDMgOiA0O1xuICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQ/LnJlcGxhY2VTeW5jKGA6aG9zdCB7XG4gICAgICAgICAgICAtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4NCAzNicgZmlsbD0nYmxhY2snJTNFJTNDcGF0aCBkPScke3BhdGh9JyAvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlLWNvbXBhcnRtZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDM2IDogODR9ICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDg0IDogMzZ9JyBmaWxsPSdibGFjayclM0UlM0NwYXRoIGQ9JyR7cGF0aH0nJHt0aGlzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gYCB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAsIDAsIDApIHNjYWxlKC0xLCAxKSdgIDogJyd9IC8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zOiAke01hdGguY2VpbCh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLyBhdmFpbGFibGVJY29uUm93cyl9O1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzOiAke2F2YWlsYWJsZUljb25Sb3dzfTtcbiAgICAgICAgICB9YCk7XG5cbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uXCI+XG4gICAgICAgICAgJHt3aGVuKFxuICAgICAgICAgICAgbGlzdEVudHJpZXNDb3VudCA+IDEsXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBodG1sYDx1bCBhcmlhLWxhYmVsPSR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0gY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50XCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnNlY3RvclxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxsaSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke3NlY3RvclN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtsYWJlbFN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMub2NjdXBhbmN5ICYmIHRoaXMud2Fnb25UeXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeVwiXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBvY2N1cGFuY3k9JHt0aGlzLm9jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5XG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgPC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvdWw+YCxcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgIGh0bWxgPGRpdiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICR7YCR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0ke3RoaXMuc2VjdG9yID8gYCwgJHtzZWN0b3JTdHJpbmd9YCA6ICcnfWB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5sYWJlbFxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWxTdHJpbmd9PC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY2xhc3NcIj4ke3dhZ29uQ2xhc3NDb250ZW50fTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgIG9jY3VwYW5jeT0ke3RoaXMub2NjdXBhbmN5fVxuICAgICAgICAgICAgICAgICAgICA+PC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke2hhc0Jsb2NrZWRQYXNzYWdlRW50cnlcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2kxOG5CbG9ja2VkUGFzc2FnZVtibG9ja2VkUGFzc2FnZV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvZGl2PiBgLFxuICAgICAgICAgICl9XG4gICAgICAgICAgJHt3YWdvblR5cGVUb0ljb25NYXBbdGhpcy53YWdvblR5cGVdXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT0ke3dhZ29uVHlwZVRvSWNvbk1hcFt0aGlzLndhZ29uVHlwZV0hfVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19tYWluLWljb25cIlxuICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGVcIiB2aWV3Qm94PVwiMCAwIDg0IDM2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8cGF0aCBkPSR7cGF0aH0+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlLWNsb3NlZFwiXG4gICAgICAgICAgICAgIGQ9JHt0aGlzLl92aWV3ID09PSAndG9wJyA/ICdNODEgM0wzIDM0JyA6ICdNODEgNEw0IDMyJ31cbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGUtY2xvc2VkXCJcbiAgICAgICAgICAgICAgZD0ke3RoaXMuX3ZpZXcgPT09ICd0b3AnID8gJ004MSAzNEwzIDMnIDogJ004MSAzMkw0IDQnfVxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0XG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgICAgICAgICAgICAgICA+LCAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0fTwvc3BhblxuICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9faW5mb3JtYXRpb24td3JhcHBlclwiXG4gICAgICAgICAgICA/aGlkZGVuPSR7IXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5sYWJlbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19sYWJlbFwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3RoaXMubGFiZWwgJiYgdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLWRpdmlkZXJcbiAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPSR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9XG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgID48L3NiYi1kaXZpZGVyPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgICAgICBjbGFzczogJ3NiYi10cmFpbi13YWdvbl9fYXR0cmlidXRlLWljb24tbGlzdCcsXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZ1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJUcmFpbldhZ29uTWl4aW5FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQ3FDQSxJQUFNLHFCQUFtRjtDQUN2RixXQUFXO0NBQ1gsVUFBVTtDQUNWLFlBQVk7O0FBR2QsSUFBTSxhQUdGO0NBQ0YsT0FBTztFQUNMLE1BQU07RUFDTixLQUFLOztDQUVQLFlBQVk7RUFDVixNQUFNO0VBQ04sS0FBSzs7Q0FFUCxrQkFBa0I7RUFDaEIsTUFBTTtFQUNOLEtBQUs7O0NBRVAsbUJBQW1CO0VBQ2pCLE1BQU07RUFDTixLQUFLOzs7QUF5QlQsSUFB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
@@ -236,4 +236,4 @@ var SbbTrainElement = (() => {
236
236
  //#endregion
237
237
  export { SbbTrainElement as t };
238
238
 
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4uY29tcG9uZW50LUJpNzRMNkM3LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10cmFpbi1kaXJlY3Rpb24tbGFiZWwtc3BhY2luZzogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICAtLV9zYmItdHJhaW4tZGlyZWN0aW9uLXJvdy1kaW1lbnNpb246IGNhbGMoXG4gICAgbWF4KHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpLCAxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSlcbiAgKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS14cyk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBQbGFjZWhvbGRlciB0byByZXNlcnZlIHRoZSBoZWlnaHQgb2YgdGhlIGRpcmVjdGlvbiByb3dcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheSwgbm9uZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWRpcmVjdGlvbi1yb3ctZGltZW5zaW9uKTtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKTo6YmVmb3JlIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1kaXJlY3Rpb24tcm93LWRpbWVuc2lvbik7XG59XG5cbi5zYmItdHJhaW5fX3dhZ29ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4uc2JiLXRyYWluX19kaXJlY3Rpb24taGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLy8gV2UgaGF2ZSB0byBwb3NpdGlvbiBpdCBhYnNvbHV0ZSBpbiBvcmRlciBmb3IgdGhlIGVsbGlwc2lzIHRvIHdvcmtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLXN0aWNreS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZGlyZWN0aW9uLWxhYmVsLXNwYWNpbmcpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB1bnNldDtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLWFycm93IHtcbiAgOmhvc3QoW2RpcmVjdGlvbj0ncmlnaHQnXSkgJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICByb3RhdGU6IDkwZGVnO1xuICB9XG59XG5cbi5zYmItdHJhaW5fX2RpcmVjdGlvbi1sYWJlbCB7XG4gIEBpbmNsdWRlIHNiYi5lbGxpcHNpcztcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3cml0aW5nLW1vZGU6IHNpZGV3YXlzLWxyO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaGFuZGxlRGlzdGluY3RDaGFuZ2UsXG4gIGkxOG5UcmFpbixcbiAgaTE4bldhZ29uc0xhYmVsLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHR5cGUgU2JiSGVhZGluZ0xldmVsLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBXaXRoTGlzdENoaWxkcmVuLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQgfSBmcm9tICcuLi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gfSBmcm9tICcuLi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBgc2JiLXRyYWluLXdhZ29uYCBvciBgc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZWAgY29tcG9uZW50cy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluLXdhZ29uJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkVsZW1lbnQgZXh0ZW5kcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4oXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsIHR5cGVvZiBTYmJFbGVtZW50PihcbiAgICBTYmJFbGVtZW50LFxuICApLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiSWNvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbXG4gICAgJ3NiYi10cmFpbi13YWdvbicsXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nLFxuICAgICdzYmItdHJhaW4td2Fnb24tbGluaycsXG4gICAgJ3NiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UnLFxuICBdO1xuXG4gIC8qKiBHZW5lcmFsIGxhYmVsIGZvciBcImRyaXZpbmcgZGlyZWN0aW9uXCIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlRyYWluRWxlbWVudCkgPT4ge1xuICAgIGUuZGlzcGF0Y2hFdmVudChcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIG5ldyBFdmVudCgnZGlyZWN0aW9ubGFiZWxjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pLFxuICAgICk7XG4gIH0pXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RpcmVjdGlvbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXJlY3Rpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEhlYWRpbmcgbGV2ZWwgb2YgdGhlIGRpcmVjdGlvbiBsYWJlbCwgdXNlZCBmb3Igc2NyZWVuIHJlYWRlcnMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RpcmVjdGlvbi1sYWJlbC1sZXZlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpcmVjdGlvbkxhYmVsTGV2ZWw6IFNiYkhlYWRpbmdMZXZlbCA9ICc2JztcblxuICAvKiogTGFiZWwgZm9yIHRoZSBkZXN0aW5hdGlvbiBzdGF0aW9uIG9mIHRoZSB0cmFpbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0aW9uOiBzdHJpbmcgPSAnJztcblxuICAvKiogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGxlYXZpbmcgZGlyZWN0aW9uIG9mIHRoZSB0cmFpbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb250cm9scyB0aGUgZGlyZWN0aW9uIGluZGljYXRvciB0byBzaG93IHRoZSBhcnJvdyBsZWZ0IG9yIHJpZ2h0LiBEZWZhdWx0IGlzIGxlZnQuICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGFyaWEtbGFiZWwgdGV4dCBvdXQgb2YgdGhlIGRpcmVjdGlvbiBsYWJlbCwgc3RhdGlvbiBhbmQgdGhlIGFjY2Vzc2liaWxpdHkgbGFiZWwuXG4gICAqL1xuICBwcml2YXRlIF9nZXREaXJlY3Rpb25BcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0UGFydHM6IHN0cmluZ1tdID0gW2kxOG5UcmFpblt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XV07XG5cbiAgICBpZiAodGhpcy5kaXJlY3Rpb25MYWJlbCAmJiB0aGlzLnN0YXRpb24pIHtcbiAgICAgIHRleHRQYXJ0cy5wdXNoKGAke3RoaXMuZGlyZWN0aW9uTGFiZWx9ICR7dGhpcy5zdGF0aW9ufWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCkge1xuICAgICAgdGV4dFBhcnRzLnB1c2godGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0ZXh0UGFydHMuam9pbignLCAnKX0uYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RyYWluc2xvdGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVElUTEVfVEFHX05BTUUgPSBgaCR7dGhpcy5kaXJlY3Rpb25MYWJlbExldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgJHt0aGlzLl9nZXREaXJlY3Rpb25BcmlhTGFiZWwoKX1cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUSVRMRV9UQUdfTkFNRSl9PlxuICAgICAgICAke1xuICAgICAgICAgIHRoaXMuZGlyZWN0aW9uTGFiZWxcbiAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXRyYWluX19kaXJlY3Rpb24taGVhZGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluX19kaXJlY3Rpb24tc3RpY2t5LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxzYmItaWNvbiBjbGFzcz1cInNiYi10cmFpbl9fZGlyZWN0aW9uLWFycm93XCIgbmFtZT1cImFycm93LWxlZnQtc21hbGxcIj48L3NiYi1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW5fX2RpcmVjdGlvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlyZWN0aW9uTGFiZWx9ICR7dGhpcy5zdGF0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgOiBub3RoaW5nXG4gICAgICAgIH1cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluX193YWdvbnMnLFxuICAgICAgICAgIGFyaWFMYWJlbDogaTE4bldhZ29uc0xhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdHJhaW4nOiBTYmJUcmFpbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7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
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4uY29tcG9uZW50LUNYMUhFRHdYLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10cmFpbi1kaXJlY3Rpb24tbGFiZWwtc3BhY2luZzogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICAtLV9zYmItdHJhaW4tZGlyZWN0aW9uLXJvdy1kaW1lbnNpb246IGNhbGMoXG4gICAgbWF4KHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpLCAxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSlcbiAgKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS14cyk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBQbGFjZWhvbGRlciB0byByZXNlcnZlIHRoZSBoZWlnaHQgb2YgdGhlIGRpcmVjdGlvbiByb3dcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheSwgbm9uZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWRpcmVjdGlvbi1yb3ctZGltZW5zaW9uKTtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKTo6YmVmb3JlIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1kaXJlY3Rpb24tcm93LWRpbWVuc2lvbik7XG59XG5cbi5zYmItdHJhaW5fX3dhZ29ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4uc2JiLXRyYWluX19kaXJlY3Rpb24taGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLy8gV2UgaGF2ZSB0byBwb3NpdGlvbiBpdCBhYnNvbHV0ZSBpbiBvcmRlciBmb3IgdGhlIGVsbGlwc2lzIHRvIHdvcmtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLXN0aWNreS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZGlyZWN0aW9uLWxhYmVsLXNwYWNpbmcpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB1bnNldDtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLWFycm93IHtcbiAgOmhvc3QoW2RpcmVjdGlvbj0ncmlnaHQnXSkgJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICByb3RhdGU6IDkwZGVnO1xuICB9XG59XG5cbi5zYmItdHJhaW5fX2RpcmVjdGlvbi1sYWJlbCB7XG4gIEBpbmNsdWRlIHNiYi5lbGxpcHNpcztcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3cml0aW5nLW1vZGU6IHNpZGV3YXlzLWxyO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaGFuZGxlRGlzdGluY3RDaGFuZ2UsXG4gIGkxOG5UcmFpbixcbiAgaTE4bldhZ29uc0xhYmVsLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHR5cGUgU2JiSGVhZGluZ0xldmVsLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBXaXRoTGlzdENoaWxkcmVuLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQgfSBmcm9tICcuLi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gfSBmcm9tICcuLi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBgc2JiLXRyYWluLXdhZ29uYCBvciBgc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZWAgY29tcG9uZW50cy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluLXdhZ29uJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkVsZW1lbnQgZXh0ZW5kcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4oXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsIHR5cGVvZiBTYmJFbGVtZW50PihcbiAgICBTYmJFbGVtZW50LFxuICApLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiSWNvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbXG4gICAgJ3NiYi10cmFpbi13YWdvbicsXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nLFxuICAgICdzYmItdHJhaW4td2Fnb24tbGluaycsXG4gICAgJ3NiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UnLFxuICBdO1xuXG4gIC8qKiBHZW5lcmFsIGxhYmVsIGZvciBcImRyaXZpbmcgZGlyZWN0aW9uXCIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlRyYWluRWxlbWVudCkgPT4ge1xuICAgIGUuZGlzcGF0Y2hFdmVudChcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIG5ldyBFdmVudCgnZGlyZWN0aW9ubGFiZWxjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pLFxuICAgICk7XG4gIH0pXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RpcmVjdGlvbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXJlY3Rpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEhlYWRpbmcgbGV2ZWwgb2YgdGhlIGRpcmVjdGlvbiBsYWJlbCwgdXNlZCBmb3Igc2NyZWVuIHJlYWRlcnMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RpcmVjdGlvbi1sYWJlbC1sZXZlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpcmVjdGlvbkxhYmVsTGV2ZWw6IFNiYkhlYWRpbmdMZXZlbCA9ICc2JztcblxuICAvKiogTGFiZWwgZm9yIHRoZSBkZXN0aW5hdGlvbiBzdGF0aW9uIG9mIHRoZSB0cmFpbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0aW9uOiBzdHJpbmcgPSAnJztcblxuICAvKiogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGxlYXZpbmcgZGlyZWN0aW9uIG9mIHRoZSB0cmFpbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb250cm9scyB0aGUgZGlyZWN0aW9uIGluZGljYXRvciB0byBzaG93IHRoZSBhcnJvdyBsZWZ0IG9yIHJpZ2h0LiBEZWZhdWx0IGlzIGxlZnQuICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGFyaWEtbGFiZWwgdGV4dCBvdXQgb2YgdGhlIGRpcmVjdGlvbiBsYWJlbCwgc3RhdGlvbiBhbmQgdGhlIGFjY2Vzc2liaWxpdHkgbGFiZWwuXG4gICAqL1xuICBwcml2YXRlIF9nZXREaXJlY3Rpb25BcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0UGFydHM6IHN0cmluZ1tdID0gW2kxOG5UcmFpblt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XV07XG5cbiAgICBpZiAodGhpcy5kaXJlY3Rpb25MYWJlbCAmJiB0aGlzLnN0YXRpb24pIHtcbiAgICAgIHRleHRQYXJ0cy5wdXNoKGAke3RoaXMuZGlyZWN0aW9uTGFiZWx9ICR7dGhpcy5zdGF0aW9ufWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCkge1xuICAgICAgdGV4dFBhcnRzLnB1c2godGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0ZXh0UGFydHMuam9pbignLCAnKX0uYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RyYWluc2xvdGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVElUTEVfVEFHX05BTUUgPSBgaCR7dGhpcy5kaXJlY3Rpb25MYWJlbExldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgJHt0aGlzLl9nZXREaXJlY3Rpb25BcmlhTGFiZWwoKX1cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUSVRMRV9UQUdfTkFNRSl9PlxuICAgICAgICAke1xuICAgICAgICAgIHRoaXMuZGlyZWN0aW9uTGFiZWxcbiAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXRyYWluX19kaXJlY3Rpb24taGVhZGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluX19kaXJlY3Rpb24tc3RpY2t5LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxzYmItaWNvbiBjbGFzcz1cInNiYi10cmFpbl9fZGlyZWN0aW9uLWFycm93XCIgbmFtZT1cImFycm93LWxlZnQtc21hbGxcIj48L3NiYi1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW5fX2RpcmVjdGlvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlyZWN0aW9uTGFiZWx9ICR7dGhpcy5zdGF0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgOiBub3RoaW5nXG4gICAgICAgIH1cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluX193YWdvbnMnLFxuICAgICAgICAgIGFyaWFMYWJlbDogaTE4bldhZ29uc0xhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdHJhaW4nOiBTYmJUcmFpbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7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