aril 1.2.36 → 1.2.37

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 (387) hide show
  1. package/esm2022/boot/config/apps/src/apps.service.mjs +4 -4
  2. package/esm2022/boot/config/apps/src/auth.guard.mjs +4 -4
  3. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +4 -4
  4. package/esm2022/boot/host/src/app.component.mjs +4 -4
  5. package/esm2022/boot/mfe/src/app.component.mjs +4 -4
  6. package/esm2022/boot/pages/src/forbidden.component.mjs +4 -4
  7. package/esm2022/boot/pages/src/notFound.component.mjs +4 -4
  8. package/esm2022/http/src/httpBackend.mjs +4 -4
  9. package/esm2022/i18n/src/i18n.module.mjs +5 -5
  10. package/esm2022/i18n/src/loader.mjs +4 -4
  11. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +4 -4
  12. package/esm2022/theme/layout/app/environment-banner/environment-banner.component.mjs +4 -4
  13. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +4 -4
  14. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +4 -4
  15. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +4 -4
  16. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +4 -4
  17. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
  18. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +4 -4
  19. package/esm2022/theme/layout/app/history/history.service.mjs +4 -4
  20. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +4 -4
  21. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +4 -4
  22. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +148 -51
  23. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +4 -4
  24. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +4 -4
  25. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +4 -4
  26. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +4 -4
  27. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +4 -4
  28. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +4 -4
  29. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +4 -4
  30. package/esm2022/theme/layout/service/app.layout.service.mjs +4 -4
  31. package/esm2022/theme/layout/service/app.menu.service.mjs +4 -4
  32. package/esm2022/theme/layout/service/breadcrumb.service.mjs +4 -4
  33. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  34. package/esm2022/theme/layout/service/notifications.service.mjs +11 -5
  35. package/esm2022/theme/layout/service/search.service.mjs +4 -4
  36. package/esm2022/theme/layout/service/selection-group.service.mjs +4 -4
  37. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +4 -4
  38. package/esm2022/ui/badge/src/badge.component.mjs +4 -4
  39. package/esm2022/ui/button/src/button.component.mjs +4 -4
  40. package/esm2022/ui/button/src/split-button.component.mjs +4 -4
  41. package/esm2022/ui/calendar/src/calendar.component.mjs +4 -4
  42. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +4 -4
  43. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +4 -4
  44. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +4 -4
  45. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +4 -4
  46. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +4 -4
  47. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +4 -4
  48. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +4 -4
  49. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +4 -4
  50. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +4 -4
  51. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +4 -4
  52. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +4 -4
  53. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +4 -4
  54. package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
  55. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
  56. package/esm2022/ui/chip/src/chip.component.mjs +4 -4
  57. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +4 -4
  58. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +4 -4
  59. package/esm2022/ui/dxField/src/dx-field.component.mjs +4 -4
  60. package/esm2022/ui/editor/src/aril-editor.component.mjs +4 -4
  61. package/esm2022/ui/field/src/field.component.mjs +4 -4
  62. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +4 -4
  63. package/esm2022/ui/form/index.mjs +5 -5
  64. package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -4
  65. package/esm2022/ui/form/src/form.component.mjs +4 -4
  66. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +4 -4
  67. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +4 -4
  68. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +4 -4
  69. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +4 -4
  70. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +4 -4
  71. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +4 -4
  72. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +4 -4
  73. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +4 -4
  74. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +4 -4
  75. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +4 -4
  76. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +4 -4
  77. package/esm2022/ui/lib/src/tooltip/tooltip-on-overflow.directive.mjs +4 -4
  78. package/esm2022/ui/loader/src/loader.component.mjs +4 -4
  79. package/esm2022/ui/mask/src/mask.component.mjs +4 -4
  80. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -4
  81. package/esm2022/ui/number/src/number.component.mjs +4 -4
  82. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
  83. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +4 -4
  84. package/esm2022/ui/panel/src/panel.component.mjs +4 -4
  85. package/esm2022/ui/password/src/password.component.mjs +4 -4
  86. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +4 -4
  87. package/esm2022/ui/progressbar/src/progressbar.component.mjs +4 -4
  88. package/esm2022/ui/radioButton/src/radio-button.component.mjs +4 -4
  89. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +4 -4
  90. package/esm2022/ui/selectBox/src/select-box.component.mjs +4 -4
  91. package/esm2022/ui/switch/src/switch.component.mjs +4 -4
  92. package/esm2022/ui/table/index.mjs +5 -5
  93. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +4 -4
  94. package/esm2022/ui/table/src/table-column.component.mjs +4 -4
  95. package/esm2022/ui/table/src/table.component.mjs +4 -4
  96. package/esm2022/ui/table-expand/index.mjs +5 -5
  97. package/esm2022/ui/table-expand/src/table-column.component.mjs +4 -4
  98. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +4 -4
  99. package/esm2022/ui/table-expand/src/table.component.mjs +4 -4
  100. package/esm2022/ui/tag/src/tag.component.mjs +4 -4
  101. package/esm2022/ui/tagBox/src/tag-box.component.mjs +4 -4
  102. package/esm2022/ui/text/src/text.component.mjs +4 -4
  103. package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
  104. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +4 -4
  105. package/esm2022/ui/tooltip/src/tooltip-component.mjs +4 -4
  106. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +4 -4
  107. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +4 -4
  108. package/esm2022/ui/tree/src/tree.component.mjs +4 -4
  109. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +4 -4
  110. package/esm2022/ui/treeTable/src/tree-table.component.mjs +4 -4
  111. package/esm2022/ui/value/src/value.component.mjs +4 -4
  112. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +4 -4
  113. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +4 -4
  114. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +4 -4
  115. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +4 -4
  116. package/esm2022/ui-business/multiAssetPicker/src/multi-asset-picker.component.mjs +4 -4
  117. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +4 -4
  118. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +4 -4
  119. package/esm2022/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.mjs +4 -4
  120. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +4 -4
  121. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +4 -4
  122. package/esm2022/ui-business/trace-drawer/src/app-log.service.mjs +4 -4
  123. package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +4 -4
  124. package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +4 -4
  125. package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +4 -4
  126. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +4 -4
  127. package/esm2022/util/activity/src/activity.service.mjs +4 -4
  128. package/esm2022/util/block/src/block.mjs +7 -7
  129. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -4
  130. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +4 -4
  131. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +4 -4
  132. package/esm2022/util/lib/src/module-router.mjs +4 -4
  133. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +4 -4
  134. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +4 -4
  135. package/esm2022/util/pipes/src/parse.pipe.mjs +4 -4
  136. package/esm2022/util/pipes/src/round-number.pipe.mjs +4 -4
  137. package/esm2022/util/pipes/src/safe.pipe.mjs +4 -4
  138. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +4 -4
  139. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +4 -4
  140. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +4 -4
  141. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +4 -4
  142. package/fesm2022/{aril-app.component-W3wwVSp1.mjs → aril-app.component-CwZZhJcO.mjs} +4 -4
  143. package/fesm2022/{aril-app.component-W3wwVSp1.mjs.map → aril-app.component-CwZZhJcO.mjs.map} +1 -1
  144. package/fesm2022/aril-boot-base.mjs +1 -1
  145. package/fesm2022/aril-boot-base.mjs.map +1 -1
  146. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  147. package/fesm2022/aril-boot-config-api.mjs +1 -1
  148. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  149. package/fesm2022/aril-boot-config-apps.mjs +10 -10
  150. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  151. package/fesm2022/aril-boot-config-plugins.mjs +1 -1
  152. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  153. package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
  154. package/fesm2022/aril-boot-host.mjs +4 -4
  155. package/fesm2022/aril-boot-host.mjs.map +1 -1
  156. package/fesm2022/{aril-boot-mfe-app.component-D1w8I2ug.mjs → aril-boot-mfe-app.component-DwYgUUdL.mjs} +5 -5
  157. package/fesm2022/{aril-boot-mfe-app.component-D1w8I2ug.mjs.map → aril-boot-mfe-app.component-DwYgUUdL.mjs.map} +1 -1
  158. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-JHrhKvhU.mjs → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs} +4 -4
  159. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-JHrhKvhU.mjs.map → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs.map} +1 -1
  160. package/fesm2022/aril-boot-mfe.mjs +1 -1
  161. package/fesm2022/aril-boot-pages.mjs +6 -6
  162. package/fesm2022/aril-boot-pages.mjs.map +1 -1
  163. package/fesm2022/aril-http.mjs +3 -3
  164. package/fesm2022/aril-http.mjs.map +1 -1
  165. package/fesm2022/aril-i18n.mjs +7 -7
  166. package/fesm2022/aril-i18n.mjs.map +1 -1
  167. package/fesm2022/aril-keycloak.mjs.map +1 -1
  168. package/fesm2022/aril-provider.mjs +1 -1
  169. package/fesm2022/aril-provider.mjs.map +1 -1
  170. package/fesm2022/aril-theme-layout.mjs +219 -113
  171. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  172. package/fesm2022/aril-ui-autoComplete.mjs +6 -6
  173. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
  174. package/fesm2022/aril-ui-badge.mjs +4 -4
  175. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  176. package/fesm2022/aril-ui-business-assetPicker.mjs +5 -5
  177. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  178. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +5 -5
  179. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  180. package/fesm2022/aril-ui-business-enumPicker.mjs +5 -5
  181. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  182. package/fesm2022/aril-ui-business-image-viewer.mjs +3 -3
  183. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
  184. package/fesm2022/aril-ui-business-multiAssetPicker.mjs +4 -4
  185. package/fesm2022/aril-ui-business-multiAssetPicker.mjs.map +1 -1
  186. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +4 -4
  187. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
  188. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +3 -3
  189. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
  190. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs +3 -3
  191. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs.map +1 -1
  192. package/fesm2022/aril-ui-business-ref-value.mjs +4 -4
  193. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
  194. package/fesm2022/aril-ui-business-rolePicker.mjs +4 -4
  195. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
  196. package/fesm2022/aril-ui-business-trace-drawer.mjs +10 -10
  197. package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -1
  198. package/fesm2022/aril-ui-business-trace-id.mjs +4 -4
  199. package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -1
  200. package/fesm2022/aril-ui-business-userPicker.mjs +3 -3
  201. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
  202. package/fesm2022/aril-ui-button.mjs +7 -7
  203. package/fesm2022/aril-ui-button.mjs.map +1 -1
  204. package/fesm2022/aril-ui-calendar.mjs +3 -3
  205. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  206. package/fesm2022/aril-ui-charts.mjs +37 -37
  207. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  208. package/fesm2022/aril-ui-checkbox.mjs +6 -6
  209. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  210. package/fesm2022/aril-ui-chip.mjs +4 -4
  211. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  212. package/fesm2022/aril-ui-collapse-reorder-list.mjs +4 -4
  213. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
  214. package/fesm2022/aril-ui-dxEditor.mjs +4 -4
  215. package/fesm2022/aril-ui-dxEditor.mjs.map +1 -1
  216. package/fesm2022/aril-ui-dxField.mjs +4 -4
  217. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  218. package/fesm2022/aril-ui-editor.mjs +4 -4
  219. package/fesm2022/aril-ui-editor.mjs.map +1 -1
  220. package/fesm2022/aril-ui-field.mjs +4 -4
  221. package/fesm2022/aril-ui-field.mjs.map +1 -1
  222. package/fesm2022/aril-ui-fileUpload.mjs +4 -4
  223. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  224. package/fesm2022/aril-ui-form.mjs +11 -11
  225. package/fesm2022/aril-ui-form.mjs.map +1 -1
  226. package/fesm2022/aril-ui-img-viewer.mjs +3 -3
  227. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
  228. package/fesm2022/aril-ui-json-diff-comparison.mjs +4 -4
  229. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
  230. package/fesm2022/aril-ui-lib.mjs +31 -31
  231. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  232. package/fesm2022/aril-ui-loader.mjs +3 -3
  233. package/fesm2022/aril-ui-loader.mjs.map +1 -1
  234. package/fesm2022/aril-ui-mask.mjs +3 -3
  235. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  236. package/fesm2022/aril-ui-multiSelect.mjs +3 -3
  237. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  238. package/fesm2022/aril-ui-number.mjs +3 -3
  239. package/fesm2022/aril-ui-number.mjs.map +1 -1
  240. package/fesm2022/aril-ui-operation-types-dialog.mjs +3 -3
  241. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
  242. package/fesm2022/aril-ui-overlayPanel.mjs +4 -4
  243. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  244. package/fesm2022/aril-ui-panel.mjs +4 -4
  245. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  246. package/fesm2022/aril-ui-password.mjs +3 -3
  247. package/fesm2022/aril-ui-password.mjs.map +1 -1
  248. package/fesm2022/aril-ui-pdf-viewer.mjs +3 -3
  249. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
  250. package/fesm2022/aril-ui-progressbar.mjs +3 -3
  251. package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
  252. package/fesm2022/aril-ui-radioButton.mjs +3 -3
  253. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  254. package/fesm2022/aril-ui-relativeDateSelector.mjs +4 -4
  255. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  256. package/fesm2022/aril-ui-selectBox.mjs +5 -5
  257. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  258. package/fesm2022/aril-ui-switch.mjs +3 -3
  259. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  260. package/fesm2022/aril-ui-table-expand.mjs +14 -14
  261. package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
  262. package/fesm2022/aril-ui-table.mjs +15 -15
  263. package/fesm2022/aril-ui-table.mjs.map +1 -1
  264. package/fesm2022/aril-ui-tag.mjs +3 -3
  265. package/fesm2022/aril-ui-tag.mjs.map +1 -1
  266. package/fesm2022/aril-ui-tagBox.mjs +5 -5
  267. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  268. package/fesm2022/aril-ui-text.mjs +3 -3
  269. package/fesm2022/aril-ui-text.mjs.map +1 -1
  270. package/fesm2022/aril-ui-textArea.mjs +3 -3
  271. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  272. package/fesm2022/aril-ui-toggle-button.mjs +4 -4
  273. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
  274. package/fesm2022/aril-ui-tooltip.mjs +3 -3
  275. package/fesm2022/aril-ui-tooltip.mjs.map +1 -1
  276. package/fesm2022/aril-ui-translate-input.mjs +6 -6
  277. package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
  278. package/fesm2022/aril-ui-tree.mjs +4 -4
  279. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  280. package/fesm2022/aril-ui-treeSelect.mjs +4 -4
  281. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
  282. package/fesm2022/aril-ui-treeTable.mjs +4 -4
  283. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  284. package/fesm2022/aril-ui-value.mjs +5 -5
  285. package/fesm2022/aril-ui-value.mjs.map +1 -1
  286. package/fesm2022/aril-util-activity.mjs +3 -3
  287. package/fesm2022/aril-util-activity.mjs.map +1 -1
  288. package/fesm2022/aril-util-block.mjs +6 -6
  289. package/fesm2022/aril-util-block.mjs.map +1 -1
  290. package/fesm2022/aril-util-directives.mjs +10 -10
  291. package/fesm2022/aril-util-directives.mjs.map +1 -1
  292. package/fesm2022/aril-util-lib.mjs +3 -3
  293. package/fesm2022/aril-util-lib.mjs.map +1 -1
  294. package/fesm2022/aril-util-pipes.mjs +18 -18
  295. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  296. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  297. package/fesm2022/aril-util-pub-sub.mjs +3 -3
  298. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  299. package/fesm2022/aril-util-sync-active-tab-route.mjs +4 -4
  300. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  301. package/fesm2022/aril-util-unwrap.mjs +3 -3
  302. package/fesm2022/aril-util-unwrap.mjs.map +1 -1
  303. package/fesm2022/aril.mjs +6 -6
  304. package/fesm2022/aril.mjs.map +1 -1
  305. package/package.json +159 -159
  306. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +16 -0
  307. package/theme/layout/app/history/history-sidebar.component.d.ts +16 -0
  308. package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +2304 -2267
  309. package/theme/layout/app/notifications/notifications-sidebar.component.html +66 -68
  310. package/theme/layout/app/notifications/notifications-sidebar.component.scss +234 -120
  311. package/theme/layout/app/notifications/notifications-sidebar.component.ts +182 -56
  312. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +16 -0
  313. package/theme/layout/service/interfaces/interfaces.d.ts +5 -1
  314. package/theme/layout/service/interfaces/interfaces.ts +6 -1
  315. package/theme/layout/service/notifications.service.d.ts +1 -0
  316. package/theme/layout/service/notifications.service.ts +5 -0
  317. package/ui/autoComplete/src/auto-complete.component.d.ts +8 -8
  318. package/ui/badge/src/badge.component.d.ts +9 -9
  319. package/ui/button/src/button.component.d.ts +12 -12
  320. package/ui/button/src/split-button.component.d.ts +1 -1
  321. package/ui/calendar/src/calendar.component.d.ts +22 -22
  322. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +4 -4
  323. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +5 -5
  324. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +4 -4
  325. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +3 -3
  326. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +7 -7
  327. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +9 -9
  328. package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +3 -3
  329. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +4 -4
  330. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +5 -5
  331. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +4 -4
  332. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +4 -4
  333. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +7 -7
  334. package/ui/checkbox/src/check-box.component.d.ts +3 -3
  335. package/ui/checkbox/src/tri-state-checkbox.component.d.ts +2 -2
  336. package/ui/chip/src/chip.component.d.ts +7 -7
  337. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +4 -4
  338. package/ui/dxEditor/src/dx-editor.component.d.ts +5 -5
  339. package/ui/dxField/src/dx-field.component.d.ts +5 -5
  340. package/ui/editor/src/aril-editor.component.d.ts +3 -3
  341. package/ui/field/src/field.component.d.ts +9 -9
  342. package/ui/fileUpload/src/file-upload.component.d.ts +14 -14
  343. package/ui/form/src/form-submit-button.component.d.ts +1 -1
  344. package/ui/form/src/form.component.d.ts +1 -1
  345. package/ui/img-viewer/src/img-viewer.component.d.ts +1 -1
  346. package/ui/lib/src/form/form-error-message.directive.d.ts +1 -1
  347. package/ui/lib/src/tooltip/tooltip-on-overflow.directive.d.ts +1 -1
  348. package/ui/mask/src/mask.component.d.ts +6 -6
  349. package/ui/multiSelect/src/multi-select.component.d.ts +13 -13
  350. package/ui/number/src/number.component.d.ts +15 -15
  351. package/ui/overlayPanel/src/overlay-panel.component.d.ts +1 -1
  352. package/ui/panel/src/panel.component.d.ts +6 -6
  353. package/ui/password/src/password.component.d.ts +4 -4
  354. package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +12 -12
  355. package/ui/progressbar/src/progressbar.component.d.ts +3 -3
  356. package/ui/radioButton/src/radio-button.component.d.ts +3 -3
  357. package/ui/selectBox/src/select-box.component.d.ts +10 -10
  358. package/ui/switch/src/switch.component.d.ts +1 -1
  359. package/ui/table/src/export-overlay-panel.component.d.ts +2 -2
  360. package/ui/table/src/table-column.component.d.ts +11 -11
  361. package/ui/table/src/table.component.d.ts +35 -35
  362. package/ui/table-expand/src/table-column.component.d.ts +6 -6
  363. package/ui/table-expand/src/table.component.d.ts +20 -20
  364. package/ui/tag/src/tag.component.d.ts +4 -6
  365. package/ui/tagBox/src/tag-box.component.d.ts +7 -7
  366. package/ui/text/src/text.component.d.ts +5 -5
  367. package/ui/textArea/src/text-area.component.d.ts +5 -5
  368. package/ui/toggle-button/src/toggle-button.component.d.ts +1 -1
  369. package/ui/tooltip/src/tooltip-component.d.ts +8 -8
  370. package/ui/translate-input/src/aril-translate-input.component.d.ts +2 -2
  371. package/ui/tree/src/tree.component.d.ts +8 -8
  372. package/ui/treeSelect/src/treeSelect.component.d.ts +12 -12
  373. package/ui/treeTable/src/tree-table.component.d.ts +5 -5
  374. package/ui/value/src/value.component.d.ts +15 -15
  375. package/ui-business/assetPicker/src/asset-picker.component.d.ts +11 -11
  376. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +3 -6
  377. package/ui-business/enumPicker/src/enum-picker.component.d.ts +24 -24
  378. package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +8 -8
  379. package/ui-business/multiAssetPicker/src/multi-asset-picker.component.d.ts +15 -15
  380. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +2 -5
  381. package/ui-business/ref-value/src/ref-value.component.d.ts +5 -5
  382. package/ui-business/rolePicker/src/role-picker.component.d.ts +7 -7
  383. package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +8 -8
  384. package/ui-business/trace-id/src/trace-id.component.d.ts +6 -6
  385. package/ui-business/userPicker/src/user-picker.component.d.ts +3 -3
  386. package/util/block/src/block.d.ts +4 -4
  387. package/util/lib/src/types.d.ts +16 -0
@@ -187,10 +187,10 @@ export class ValueComponent {
187
187
  });
188
188
  });
189
189
  }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, deps: [{ token: i1.TranslocoService }, { token: i2.SelectionGroupService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, shouldShowCopyForClampedText: { classPropertyName: "shouldShowCopyForClampedText", publicName: "shouldShowCopyForClampedText", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalRoundingMode: { classPropertyName: "bigDecimalRoundingMode", publicName: "bigDecimalRoundingMode", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalScale: { classPropertyName: "bigDecimalScale", publicName: "bigDecimalScale", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService, DecimalPipe], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t\tarilTooltipOnOverflow\r\n\t\t\t\t\t[arilTooltipOnOverflowForce]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters()\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", styles: [".text-no-wrap{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass", "textColor", "borderColor", "textClampCharacters"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: EnumColorPickerPipe, name: "enumColorPicker" }, { kind: "directive", type: TooltipOnOverflowDirective, selector: "[pTooltip][arilTooltipOnOverflow]", inputs: ["arilTooltipOnOverflowForce"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: RoundNumberPipe, name: "roundNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
190
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueComponent, deps: [{ token: i1.TranslocoService }, { token: i2.SelectionGroupService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
191
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, shouldShowCopyForClampedText: { classPropertyName: "shouldShowCopyForClampedText", publicName: "shouldShowCopyForClampedText", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalRoundingMode: { classPropertyName: "bigDecimalRoundingMode", publicName: "bigDecimalRoundingMode", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalScale: { classPropertyName: "bigDecimalScale", publicName: "bigDecimalScale", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService, DecimalPipe], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t\tarilTooltipOnOverflow\r\n\t\t\t\t\t[arilTooltipOnOverflowForce]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters()\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", styles: [".text-no-wrap{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass", "textColor", "borderColor", "textClampCharacters"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: EnumColorPickerPipe, name: "enumColorPicker" }, { kind: "directive", type: TooltipOnOverflowDirective, selector: "[pTooltip][arilTooltipOnOverflow]", inputs: ["arilTooltipOnOverflowForce"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: RoundNumberPipe, name: "roundNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
192
192
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueComponent, decorators: [{
194
194
  type: Component,
195
195
  args: [{ standalone: true, selector: 'aril-value', imports: [
196
196
  BadgeComponent,
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
205
205
  RoundNumberPipe
206
206
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService, DecimalPipe], template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t\tarilTooltipOnOverflow\r\n\t\t\t\t\t[arilTooltipOnOverflowForce]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters()\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", styles: [".text-no-wrap{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
207
207
  }], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.SelectionGroupService }, { type: i3.MessageService }] });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sZ0NBQWdDLENBQUM7Ozs7Ozs7QUFtQ3hDLE1BQU0sT0FBTyxjQUFjO0lBMEIxQixZQUNRLGdCQUFrQyxFQUN4QixxQkFBNEMsRUFDNUMsY0FBOEI7UUFGeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQTVCaEQsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW1DLENBQUM7UUFDMUQsU0FBSSxHQUFHLEtBQUssQ0FBYSxNQUFNLENBQUMsQ0FBQztRQUNqQyxXQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNuQyx3QkFBbUIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsaUNBQTRCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3JELGlCQUFZLEdBQUcsUUFBUSxDQUN0QixHQUFHLEVBQUUsQ0FDSixDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUMxRixDQUFDO1FBRUYsc0JBQXNCO1FBQ3RCLHlCQUFvQixHQUFHLEtBQUssQ0FBUyxXQUFXLENBQUMsQ0FBQztRQUNsRCwyQkFBc0IsR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFMUMsNEJBQTRCO1FBQzVCLDJCQUFzQixHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUN0RCxvQkFBZSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBWWxDLGVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFzQjNELGNBQVMsR0FBRztZQUNYLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFdBQVc7U0FDWCxDQUFDO1FBRUYsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDckIsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxTQUFTLENBQUM7Z0JBQ2YsS0FBSyxVQUFVLENBQUM7Z0JBQ2hCLEtBQUssYUFBYTtvQkFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssTUFBTTtvQkFDVixPQUFnQixJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsQ0FBQztnQkFDckUsS0FBSyxVQUFVO29CQUNkLE9BQWdCLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRDtvQkFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUV0QyxNQUFNLGNBQWMsR0FDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRyxFQUFFLENBQUMsQ0FBQztZQUVwRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRyxDQUFDLENBQUM7Z0JBQ3BGLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsTUFBTSxHQUFHLEdBQ1IsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQ3pGLENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQ2xELENBQUMsQ0FBQyxRQUFRLENBQUM7WUFFWixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxHQUFHLENBR3JGLENBQUM7WUFFRixJQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUUvQixPQUFPLGFBQWEsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUM7UUFDN0csQ0FBQyxDQUFDLENBQUM7UUFFSCw2QkFBd0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLHNDQUFzQztZQUNwRixDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQ25CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEcsTUFBTSxjQUFjLEdBQUcsY0FBYyxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFFNUQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUVsRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ2xCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFNSCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUNBQW1DO1FBQ25DLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBRXBFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLGNBQWMsR0FDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRyxFQUFFLENBQUMsQ0FBQztZQUVwRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRyxDQUFDLENBQUM7Z0JBQ3BGLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBYyxDQUFDO1lBQ2pDLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxHQUFHLEdBQ1IsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7b0JBQ3pFLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRVIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUdyRixDQUFDO2dCQUVGLElBQUksQ0FBQyxhQUFhO29CQUFFLE9BQU8sR0FBRyxDQUFDO2dCQUUvQixPQUFPLGFBQWEsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUM7WUFDN0csQ0FBQyxDQUFhLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSCw2Q0FBNkM7UUFDN0MsOEJBQXlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFFcEUsTUFBTSxjQUFjLEdBQ25CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEcsTUFBTSxjQUFjLEdBQUcsY0FBYyxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFFNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQy9CLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckMsQ0FBQztnQkFFRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUUxRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3BCLE9BQU8sU0FBUyxDQUFDO2dCQUNsQixDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ2xFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsT0FBTyxTQUFTLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQXBLRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUlELGVBQWU7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRO1lBQUUsT0FBTyxPQUFPLENBQUM7YUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sT0FBTyxDQUFDO1lBRTVCLDhEQUE4RDtZQUM5RCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQzVFLE9BQU8sTUFBTSxDQUFDO1lBQ2YsQ0FBQztZQUNELHdEQUF3RDtZQUN4RCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDbEQsT0FBTyxLQUFLLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQStFRCxpQkFBaUIsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQTRERCxlQUFlLENBQUMsS0FBeUI7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEMsR0FBRyxFQUFFO1lBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztnQkFDekUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUM7Z0JBQzFFLEdBQUcsRUFBRSxZQUFZO2FBQ2pCLENBQUMsQ0FBQztRQUNKLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQztnQkFDOUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUM7Z0JBQ3hFLEdBQUcsRUFBRSxZQUFZO2FBQ2pCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQzs4R0F6TlcsY0FBYztrR0FBZCxjQUFjLDRzRUFGZixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsMEJDaER4QyxzOElBOEZBLHlKRDFERSxjQUFjLHVMQUNkLGFBQWEscVhBQ2IsZUFBZSw4QkFDZixrQkFBa0IsOFZBQ2xCLG1CQUFtQix3REFDbkIsMEJBQTBCLGlIQUMxQixTQUFTLHlDQUNULFdBQVcsMENBQ1gsWUFBWSw0Q0FDWixlQUFlOzsyRkFLSixjQUFjO2tCQXBCMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUdiO3dCQUNSLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBEZWNpbWFsUGlwZSwgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSwgVG9vbHRpcE9uT3ZlcmZsb3dEaXJlY3RpdmUgfSBmcm9tICdhcmlsL3VpL2xpYic7XHJcbmltcG9ydCB7IERlY2ltYWxSb3VuZGluZ1R5cGUgfSBmcm9tICdhcmlsL3V0aWwvbGliJztcclxuaW1wb3J0IHsgUm91bmROdW1iZXJQaXBlIH0gZnJvbSAnYXJpbC91dGlsL3BpcGVzJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID1cclxuXHR8ICd0ZXh0J1xyXG5cdHwgJ251bWJlcidcclxuXHR8ICdib29sJ1xyXG5cdHwgJ2RlY2ltYWwnXHJcblx0fCAnYmlnX2RlY2ltYWwnXHJcblx0fCAnZGF0ZSdcclxuXHR8ICdwYXNzd29yZCdcclxuXHR8ICdlbnVtJ1xyXG5cdHwgJ2FycmF5J1xyXG5cdHwgJ2lzb0RhdGUnXHJcblx0fCAnY3VycmVuY3knO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtdmFsdWUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi92YWx1ZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3ZhbHVlLmNvbXBvbmVudC5zY3NzJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRCYWRnZUNvbXBvbmVudCxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRPdmVybGF5UGFuZWxNb2R1bGUsXHJcblx0XHRFbnVtQ29sb3JQaWNrZXJQaXBlLFxyXG5cdFx0VG9vbHRpcE9uT3ZlcmZsb3dEaXJlY3RpdmUsXHJcblx0XHRTbGljZVBpcGUsXHJcblx0XHREZWNpbWFsUGlwZSxcclxuXHRcdEN1cnJlbmN5UGlwZSxcclxuXHRcdFJvdW5kTnVtYmVyUGlwZVxyXG5cdF0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZSwgRGVjaW1hbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZUNvbXBvbmVudCB7XHJcblx0bW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55PigpO1xyXG5cdHR5cGUgPSBpbnB1dDxWYWx1ZVR5cGVzPigndGV4dCcpO1xyXG5cdGZvcm1hdCA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRpc0NsaWNrYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRncm91cE5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5ID0gaW5wdXQ8c3RyaW5nPignQUxMJyk7XHJcblx0aXNUZXh0Q2xhbXAgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHR0ZXh0Q2xhbXBDaGFyYWN0ZXJzID0gaW5wdXQ8bnVtYmVyPig1MCk7XHJcblx0c3R5bGUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0Y29weWFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvdWxkU2hvd0NvcHlGb3JDbGFtcGVkVGV4dCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93Q29weUljb24gPSBjb21wdXRlZChcclxuXHRcdCgpID0+XHJcblx0XHRcdCghdGhpcy5zaG91bGRTaG93Q29weUZvckNsYW1wZWRUZXh0KCkgJiYgdGhpcy5jb3B5YWJsZSgpKSB8fFxyXG5cdFx0XHQodGhpcy5zaG91bGRTaG93Q29weUZvckNsYW1wZWRUZXh0KCkgJiYgdGhpcy5tb2RlbCgpLmxlbmd0aCA+IHRoaXMudGV4dENsYW1wQ2hhcmFjdGVycygpKVxyXG5cdCk7XHJcblxyXG5cdC8vIG9ubHkgZm9yIGFycmF5IHR5cGVcclxuXHRhcnJheVR5cGVEaXNwbGF5TmFtZSA9IGlucHV0PHN0cmluZz4oJ3ZhbHVlRGVzYycpO1xyXG5cdGFycmF5VHlwZU1heEJhZGdlQ291bnQgPSBpbnB1dDxudW1iZXI+KDMpO1xyXG5cclxuXHQvLyBvbmx5IGZvciBiaWdfZGVjaW1hbCB0eXBlXHJcblx0YmlnRGVjaW1hbFJvdW5kaW5nTW9kZSA9IGlucHV0PERlY2ltYWxSb3VuZGluZ1R5cGU+KCk7XHJcblx0YmlnRGVjaW1hbFNjYWxlID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBzZWxlY3Rpb25Hcm91cFNlcnZpY2U6IFNlbGVjdGlvbkdyb3VwU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnRyYW5zbG9jb1NlcnZpY2UubGFuZ0NoYW5nZXMkLnN1YnNjcmliZSgobGFuZykgPT4ge1xyXG5cdFx0XHR0aGlzLmxhbmdTaWduYWwuc2V0KGxhbmcpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRsYW5nU2lnbmFsID0gc2lnbmFsKHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkpO1xyXG5cclxuXHRnZXROdW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuXHRcdGlmICh0aGlzLnR5cGUoKSA9PT0gJ251bWJlcicpIHJldHVybiAnMS4wLTAnO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdkZWNpbWFsJykge1xyXG5cdFx0XHRjb25zdCBmb3JtYXQgPSB0aGlzLmZvcm1hdCgpO1xyXG5cclxuXHRcdFx0aWYgKCFmb3JtYXQpIHJldHVybiAnMS4wLTMnO1xyXG5cclxuXHRcdFx0Ly8gRcSfZXIgZm9ybWF0IEFuZ3VsYXIgRGVjaW1hbFBpcGUgZm9ybWF0xLFuZGF5c2EgZGlyZWt0IGt1bGxhblxyXG5cdFx0XHRpZiAoZm9ybWF0ICYmIHR5cGVvZiBmb3JtYXQgPT09ICdzdHJpbmcnICYmIGZvcm1hdC5tYXRjaCgvXlxcZCtcXC5cXGQrLVxcZCskLykpIHtcclxuXHRcdFx0XHRyZXR1cm4gZm9ybWF0O1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEXEn2VyIGVza2kgZm9ybWF0IHN0cmluZydpIHZhcnNhICjDtnJuOiAjLjAwKSBvbnUgw6dldmlyXHJcblx0XHRcdGlmIChmb3JtYXQgJiYgdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZycgJiYgZm9ybWF0LmluY2x1ZGVzKCcuJykpIHtcclxuXHRcdFx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0LnNwbGl0KCcuJylbMV0ubGVuZ3RoO1xyXG5cdFx0XHRcdHJldHVybiBgMS4ke2RlY2ltYWxQbGFjZXN9LSR7ZGVjaW1hbFBsYWNlc31gO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJyc7XHJcblx0fVxyXG5cclxuXHRjb2xvckxpc3QgPSBbXHJcblx0XHQnIzE4OTBGRicsXHJcblx0XHQnI0ZBQUQxNCcsXHJcblx0XHQnIzUyQzQxQScsXHJcblx0XHQnIzVENkQ3RScsXHJcblx0XHQnI0ZGNkI2QicsXHJcblx0XHQnIzEzQzJDMicsXHJcblx0XHQnIzU4RDY4RCcsXHJcblx0XHQnIzcyMkVEMScsXHJcblx0XHQnIzg1QzFFOScsXHJcblx0XHQnI2M0OWUwNWZmJ1xyXG5cdF07XHJcblxyXG5cdGRpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XHJcblx0XHRcdGNhc2UgJ3RleHQnOlxyXG5cdFx0XHRjYXNlICdudW1iZXInOlxyXG5cdFx0XHRjYXNlICdkZWNpbWFsJzpcclxuXHRcdFx0Y2FzZSAnY3VycmVuY3knOlxyXG5cdFx0XHRjYXNlICdiaWdfZGVjaW1hbCc6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMubW9kZWwoKTtcclxuXHRcdFx0Y2FzZSAnZGF0ZSc6XHJcblx0XHRcdFx0cmV0dXJuICg8bnVtYmVyPnRoaXMubW9kZWwoKSkubG9uZ1RvU3RyaW5nKHRoaXMuZm9ybWF0KCkgPz8gJ3RpbWUnKTtcclxuXHRcdFx0Y2FzZSAncGFzc3dvcmQnOlxyXG5cdFx0XHRcdHJldHVybiAoPHN0cmluZz50aGlzLm1vZGVsKCkpLnJlcGxhY2UoLy4vZywgJyonKTtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwiSW52YWxpZCB0eXBlOiAnXCIgKyB0aGlzLnR5cGUoKSArIFwiJ1wiKTtcclxuXHRcdFx0XHRyZXR1cm4gJyc7XHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdGVudW1TZWxlY3Rpb25EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLmxhbmdTaWduYWwoKTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHRoaXMuZ3JvdXBOYW1lKCkhLCB0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpISk7XHJcblx0XHRcdHJldHVybiB0aGlzLm1vZGVsKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmF3TW9kZWwgPSB0aGlzLm1vZGVsKCk7XHJcblx0XHRjb25zdCBrZXkgPVxyXG5cdFx0XHR0eXBlb2YgcmF3TW9kZWwgPT09ICdvYmplY3QnICYmIHJhd01vZGVsICE9PSBudWxsICYmICd2YWx1ZScgaW4gcmF3TW9kZWwgPyByYXdNb2RlbC52YWx1ZVxyXG5cdFx0XHQ6IHR5cGVvZiByYXdNb2RlbCA9PT0gJ2Jvb2xlYW4nID8gU3RyaW5nKHJhd01vZGVsKVxyXG5cdFx0XHQ6IHJhd01vZGVsO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5maW5kKCh0KSA9PiB0LnNlbGVjdGlvbktleSA9PT0ga2V5KSBhcyB7XHJcblx0XHRcdHNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz86IHsgW2xhbmc6IHN0cmluZ106IHN0cmluZyB9O1xyXG5cdFx0XHRzZWxlY3Rpb25EaXNwbGF5Pzogc3RyaW5nO1xyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkl0ZW0pIHJldHVybiBrZXk7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyBrZXk7XHJcblx0fSk7XHJcblxyXG5cdGVudW1CYWRnZUJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICh0eXBlb2YgdGhpcy5tb2RlbCgpID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMubW9kZWwoKSA/ICcjMjJjNTVlJyA6ICcjZWY0NDQ0JzsgLy8gdHJ1ZSBpw6dpbiB5ZcWfaWwsIGZhbHNlIGnDp2luIGvEsXJtxLF6xLFcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbXMgPSBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMgPz8gW107XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSB0aGlzLm1vZGVsKCkpO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uSXRlbSkge1xyXG5cdFx0XHRyZXR1cm4gJyMxODkwRkYnO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmNvbG9yTGlzdFtzZWxlY3Rpb25JdGVtLnNob3dPcmRlcl0gIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuICcjQTJBRkZGJztcclxuXHR9KTtcclxuXHJcblx0Z2V0QXJyYXlJdGVtVmFsdWUoaXRlbTogYW55KTogYW55IHtcclxuXHRcdHJldHVybiBpdGVtW3RoaXMuYXJyYXlUeXBlRGlzcGxheU5hbWUoKV07XHJcblx0fVxyXG5cclxuXHRpc01vZGVsQXJyYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKCkpO1xyXG5cdH0pO1xyXG5cclxuXHQvLyBHZXQgZW51bSBkaXNwbGF5IGZvciBhcnJheSBpdGVtc1xyXG5cdGVudW1BcnJheURpc3BsYXlzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0aWYgKCF0aGlzLmlzTW9kZWxBcnJheSgpIHx8ICFBcnJheS5pc0FycmF5KHRoaXMubW9kZWwoKSkpIHJldHVybiBbXTtcclxuXHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMubGFuZ1NpZ25hbCgpO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPVxyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt0aGlzLmdyb3VwTmFtZSgpIX1+JHt0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpIX1gXTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh0aGlzLmdyb3VwTmFtZSgpISwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSEpO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5tb2RlbCgpIGFzIHN0cmluZ1tdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLm1vZGVsKCkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0Y29uc3Qga2V5ID1cclxuXHRcdFx0XHR0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCAmJiAndmFsdWUnIGluIGl0ZW0gPyBpdGVtLnZhbHVlXHJcblx0XHRcdFx0OiB0eXBlb2YgaXRlbSA9PT0gJ2Jvb2xlYW4nID8gU3RyaW5nKGl0ZW0pXHJcblx0XHRcdFx0OiBpdGVtO1xyXG5cclxuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSBrZXkpIGFzIHtcclxuXHRcdFx0XHRzZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/OiB7IFtsYW5nOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHRcdFx0XHRzZWxlY3Rpb25EaXNwbGF5Pzogc3RyaW5nO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSByZXR1cm4ga2V5O1xyXG5cclxuXHRcdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyBrZXk7XHJcblx0XHR9KSBhcyBzdHJpbmdbXTtcclxuXHR9KTtcclxuXHJcblx0Ly8gR2V0IGVudW0gYmFja2dyb3VuZCBjb2xvcnMgZm9yIGFycmF5IGl0ZW1zXHJcblx0ZW51bUFycmF5QmFja2dyb3VuZENvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICghdGhpcy5pc01vZGVsQXJyYXkoKSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKCkpKSByZXR1cm4gW107XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPVxyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt0aGlzLmdyb3VwTmFtZSgpIX1+JHt0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpIX1gXTtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW1zID0gc2VsZWN0aW9uR3JvdXA/LnNlbGVjdGlvbkl0ZW1zID8/IFtdO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLm1vZGVsKCkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHR5cGVvZiBpdGVtID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0XHRyZXR1cm4gaXRlbSA/ICcjMjJjNTVlJyA6ICcjZWY0NDQ0JztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSBpdGVtKTtcclxuXHJcblx0XHRcdGlmICghc2VsZWN0aW9uSXRlbSkge1xyXG5cdFx0XHRcdHJldHVybiAnIzE4OTBGRic7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiAnI0EyQUZGRic7XHJcblx0XHR9KTtcclxuXHR9KTtcclxuXHJcblx0Y29weVRvQ2xpcGJvYXJkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICghdmFsdWUpIHJldHVybjtcclxuXHRcdG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKS50aGVuKFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLnN1Y2Nlc3NNZXNzYWdlSGVhZGVyJyksXHJcblx0XHRcdFx0XHRkZXRhaWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmNvcHlUb0NsaXBib2FyZFN1Y2Nlc3MnKSxcclxuXHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnIpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRzZXZlcml0eTogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLnVuc3VjY2Vzc2Z1bE1lc3NhZ2VIZWFkZXInKSxcclxuXHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuY29weVRvQ2xpcGJvYXJkRXJyb3InKSxcclxuXHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiIsIkBpZiAobW9kZWwoKSA9PSB1bmRlZmluZWQgfHwgbW9kZWwoKSA9PSBudWxsKSB7XHJcblx0PGlcclxuXHRcdGNsYXNzPVwicGkgcGktbWludXNcIlxyXG5cdFx0c3R5bGU9XCJjb2xvcjogcmVkXCJcclxuXHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5ub0l0ZW1Ub1Nob3cnKVwiPjwvaT5cclxufSBAZWxzZSB7XHJcblx0QGlmICh0eXBlKCkgPT0gJ2Jvb2wnKSB7XHJcblx0XHRAaWYgKCEhbW9kZWwoKSkge1xyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNoZWNrXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW5cIj48L2k+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS10aW1lc1wiIHN0eWxlPVwiY29sb3I6IGNyaW1zb25cIj48L2k+XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnZW51bScpIHtcclxuXHRcdEBpZiAoaXNNb2RlbEFycmF5KCkpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcblx0XHRcdFx0QGZvciAoZGlzcGxheSBvZiBlbnVtQXJyYXlEaXNwbGF5cygpLnNsaWNlKDAsIDIpOyB0cmFjayBkaXNwbGF5OyBsZXQgaSA9ICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZW51bUFycmF5QmFja2dyb3VuZENvbG9ycygpW2ldXCIgW3ZhbHVlXT1cImRpc3BsYXlcIiBbdGV4dENsYW1wQ2hhcmFjdGVyc109XCJ0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcIiAvPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaWYgKGVudW1BcnJheURpc3BsYXlzKCkubGVuZ3RoID4gMikge1xyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1lbGxpcHNpcy12IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImVudW1PcC50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuXHJcblx0XHRcdFx0XHQ8cC1vdmVybGF5UGFuZWwgI2VudW1PcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIG1heC13LTMwcmVtIG1heC1oLTIwcmVtIHByLTMgb3ZlcmZsb3cteS1hdXRvXCI+XHJcblx0XHRcdFx0XHRcdFx0QGZvciAoZGlzcGxheSBvZiBlbnVtQXJyYXlEaXNwbGF5cygpIHwgc2xpY2U6IDI7IHRyYWNrIGRpc3BsYXk7IGxldCBpID0gJGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJlbnVtQXJyYXlCYWNrZ3JvdW5kQ29sb3JzKClbaSArIDJdXCIgW3ZhbHVlXT1cImRpc3BsYXlcIiBbdGV4dENsYW1wQ2hhcmFjdGVyc109XCJ0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L3Atb3ZlcmxheVBhbmVsPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZW51bUJhZGdlQmFja2dyb3VuZENvbG9yKClcIiBbdmFsdWVdPVwiZW51bVNlbGVjdGlvbkRpc3BsYXkoKVwiIFt0ZXh0Q2xhbXBDaGFyYWN0ZXJzXT1cInRleHRDbGFtcENoYXJhY3RlcnMoKVwiIC8+XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnYXJyYXknKSB7XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuXHRcdFx0QGZvciAoaXRlbSBvZiBtb2RlbCgpLnNsaWNlKDAsIGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSk7IHRyYWNrIGl0ZW0pIHtcclxuXHRcdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKSB8fCAnJyB8IGVudW1Db2xvclBpY2tlclwiIFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIFt0ZXh0Q2xhbXBDaGFyYWN0ZXJzXT1cInRleHRDbGFtcENoYXJhY3RlcnMoKVwiIC8+XHJcblx0XHRcdH1cclxuXHRcdFx0QGlmIChtb2RlbCgpLmxlbmd0aCA+IGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSkge1xyXG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktZWxsaXBzaXMtdiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuXHJcblx0XHRcdFx0PHAtb3ZlcmxheVBhbmVsICNvcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBtYXgtdy0zMHJlbSBtYXgtaC0yMHJlbSBwci0zIG92ZXJmbG93LXktYXV0b1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIG1vZGVsKCkgfCBzbGljZTogYXJyYXlUeXBlTWF4QmFkZ2VDb3VudCgpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYmFkZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFtiYWNrZ3JvdW5kXT1cImdldEFycmF5SXRlbVZhbHVlKGl0ZW0pIHx8ICcnIHwgZW51bUNvbG9yUGlja2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1vdmVybGF5UGFuZWw+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGlmIChkaXNwbGF5KCkgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdDxpXHJcblx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIlxyXG5cdFx0XHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLmludmFsaWREYXRhRm9ybWF0JylcIj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRAaWYgKHNob3dDb3B5SWNvbigpKSB7XHJcblx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWNvcHkgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKGRpc3BsYXkoKT8udG9TdHJpbmcoKSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZm9udC1zaXplOiAxcmVtOyBjb2xvcjogZ3JlZW5cIj48L2k+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSA/IGRpc3BsYXkoKT8udG9TdHJpbmcoKSA6ICcnXCJcclxuXHRcdFx0XHRcdGFyaWxUb29sdGlwT25PdmVyZmxvd1xyXG5cdFx0XHRcdFx0W2FyaWxUb29sdGlwT25PdmVyZmxvd0ZvcmNlXT1cIlxyXG5cdFx0XHRcdFx0XHR0eXBlKCkgPT09ICd0ZXh0JyAmJiBpc1RleHRDbGFtcCgpICYmIGRpc3BsYXkoKT8udG9TdHJpbmcoKS5sZW5ndGggPiB0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcclxuXHRcdFx0XHRcdFwiXHJcblx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLnRleHQtbm8td3JhcF09XCJpc1RleHRDbGFtcCgpXCJcclxuXHRcdFx0XHRcdFtzdHlsZV09XCJpc0NsaWNrYWJsZSgpID8geyAndGV4dC1kZWNvcmF0aW9uJzogJ3VuZGVybGluZScsIGNvbG9yOiAnIzAwMDBFRScsIGN1cnNvcjogJ3BvaW50ZXInIH0gOiAnJ1wiPlxyXG5cdFx0XHRcdFx0QGlmICh0eXBlKCkgPT09ICdudW1iZXInIHx8IHR5cGUoKSA9PT0gJ2RlY2ltYWwnKSB7XHJcblx0XHRcdFx0XHRcdHt7IG1vZGVsKCkgfCBudW1iZXI6IGdldE51bWJlckZvcm1hdCgpIDogJ3RyLVRSJyB9fVxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnYmlnX2RlY2ltYWwnKSB7XHJcblx0XHRcdFx0XHRcdHt7IG1vZGVsKCkgfCByb3VuZE51bWJlcjogYmlnRGVjaW1hbFNjYWxlKCkgOiBiaWdEZWNpbWFsUm91bmRpbmdNb2RlKCkgOiAndHItVFInIH19XHJcblx0XHRcdFx0XHR9IEBlbHNlIGlmICh0eXBlKCkgPT09ICdjdXJyZW5jeScpIHtcclxuXHRcdFx0XHRcdFx0e3sgbW9kZWwoKSB8IGN1cnJlbmN5OiBmb3JtYXQoKSA/PyAnVFJZJyA6ICdzeW1ib2wnIDogJzEuMC0yJyB9fVxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSkge1xyXG5cdFx0XHRcdFx0XHR7e1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXkoKS5sZW5ndGggPiB0ZXh0Q2xhbXBDaGFyYWN0ZXJzKCkgPyBkaXNwbGF5KCkuc2xpY2UoMCwgdGV4dENsYW1wQ2hhcmFjdGVycygpKSArICcuLi4nIDogZGlzcGxheSgpXHJcblx0XHRcdFx0XHRcdH19XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0e3sgZGlzcGxheSgpIH19XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHQ8L3NwYW4+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sZ0NBQWdDLENBQUM7Ozs7Ozs7QUFtQ3hDLE1BQU0sT0FBTyxjQUFjO0lBMEIxQixZQUNRLGdCQUFrQyxFQUN4QixxQkFBNEMsRUFDNUMsY0FBOEI7UUFGeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQTVCaEQsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVB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QUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztnQkFDekUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUM7Z0JBQzFFLEdBQUcsRUFBRSxZQUFZO2FBQ2pCLENBQUMsQ0FBQztRQUNKLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQztnQkFDOUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUM7Z0JBQ3hFLEdBQUcsRUFBRSxZQUFZO2FBQ2pCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQzsrR0F6TlcsY0FBYzttR0FBZCxjQUFjLDRzRUFGZixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsMEJDaER4QyxzOElBOEZBLHlKRDFERSxjQUFjLHVMQUNkLGFBQWEscVhBQ2IsZUFBZSw4QkFDZixrQkFBa0IsOFZBQ2xCLG1CQUFtQix3REFDbkIsMEJBQTBCLGlIQUMxQixTQUFTLHlDQUNULFdBQVcsMENBQ1gsWUFBWSw0Q0FDWixlQUFlOzs0RkFLSixjQUFjO2tCQXBCMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUdiO3dCQUNSLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBEZWNpbWFsUGlwZSwgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSwgVG9vbHRpcE9uT3ZlcmZsb3dEaXJlY3RpdmUgfSBmcm9tICdhcmlsL3VpL2xpYic7XHJcbmltcG9ydCB7IERlY2ltYWxSb3VuZGluZ1R5cGUgfSBmcm9tICdhcmlsL3V0aWwvbGliJztcclxuaW1wb3J0IHsgUm91bmROdW1iZXJQaXBlIH0gZnJvbSAnYXJpbC91dGlsL3BpcGVzJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID1cclxuXHR8ICd0ZXh0J1xyXG5cdHwgJ251bWJlcidcclxuXHR8ICdib29sJ1xyXG5cdHwgJ2RlY2ltYWwnXHJcblx0fCAnYmlnX2RlY2ltYWwnXHJcblx0fCAnZGF0ZSdcclxuXHR8ICdwYXNzd29yZCdcclxuXHR8ICdlbnVtJ1xyXG5cdHwgJ2FycmF5J1xyXG5cdHwgJ2lzb0RhdGUnXHJcblx0fCAnY3VycmVuY3knO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtdmFsdWUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi92YWx1ZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3ZhbHVlLmNvbXBvbmVudC5zY3NzJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRCYWRnZUNvbXBvbmVudCxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRPdmVybGF5UGFuZWxNb2R1bGUsXHJcblx0XHRFbnVtQ29sb3JQaWNrZXJQaXBlLFxyXG5cdFx0VG9vbHRpcE9uT3ZlcmZsb3dEaXJlY3RpdmUsXHJcblx0XHRTbGljZVBpcGUsXHJcblx0XHREZWNpbWFsUGlwZSxcclxuXHRcdEN1cnJlbmN5UGlwZSxcclxuXHRcdFJvdW5kTnVtYmVyUGlwZVxyXG5cdF0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZSwgRGVjaW1hbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZUNvbXBvbmVudCB7XHJcblx0bW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55PigpO1xyXG5cdHR5cGUgPSBpbnB1dDxWYWx1ZVR5cGVzPigndGV4dCcpO1xyXG5cdGZvcm1hdCA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRpc0NsaWNrYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRncm91cE5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5ID0gaW5wdXQ8c3RyaW5nPignQUxMJyk7XHJcblx0aXNUZXh0Q2xhbXAgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHR0ZXh0Q2xhbXBDaGFyYWN0ZXJzID0gaW5wdXQ8bnVtYmVyPig1MCk7XHJcblx0c3R5bGUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0Y29weWFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvdWxkU2hvd0NvcHlGb3JDbGFtcGVkVGV4dCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93Q29weUljb24gPSBjb21wdXRlZChcclxuXHRcdCgpID0+XHJcblx0XHRcdCghdGhpcy5zaG91bGRTaG93Q29weUZvckNsYW1wZWRUZXh0KCkgJiYgdGhpcy5jb3B5YWJsZSgpKSB8fFxyXG5cdFx0XHQodGhpcy5zaG91bGRTaG93Q29weUZvckNsYW1wZWRUZXh0KCkgJiYgdGhpcy5tb2RlbCgpLmxlbmd0aCA+IHRoaXMudGV4dENsYW1wQ2hhcmFjdGVycygpKVxyXG5cdCk7XHJcblxyXG5cdC8vIG9ubHkgZm9yIGFycmF5IHR5cGVcclxuXHRhcnJheVR5cGVEaXNwbGF5TmFtZSA9IGlucHV0PHN0cmluZz4oJ3ZhbHVlRGVzYycpO1xyXG5cdGFycmF5VHlwZU1heEJhZGdlQ291bnQgPSBpbnB1dDxudW1iZXI+KDMpO1xyXG5cclxuXHQvLyBvbmx5IGZvciBiaWdfZGVjaW1hbCB0eXBlXHJcblx0YmlnRGVjaW1hbFJvdW5kaW5nTW9kZSA9IGlucHV0PERlY2ltYWxSb3VuZGluZ1R5cGU+KCk7XHJcblx0YmlnRGVjaW1hbFNjYWxlID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBzZWxlY3Rpb25Hcm91cFNlcnZpY2U6IFNlbGVjdGlvbkdyb3VwU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnRyYW5zbG9jb1NlcnZpY2UubGFuZ0NoYW5nZXMkLnN1YnNjcmliZSgobGFuZykgPT4ge1xyXG5cdFx0XHR0aGlzLmxhbmdTaWduYWwuc2V0KGxhbmcpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRsYW5nU2lnbmFsID0gc2lnbmFsKHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkpO1xyXG5cclxuXHRnZXROdW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuXHRcdGlmICh0aGlzLnR5cGUoKSA9PT0gJ251bWJlcicpIHJldHVybiAnMS4wLTAnO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdkZWNpbWFsJykge1xyXG5cdFx0XHRjb25zdCBmb3JtYXQgPSB0aGlzLmZvcm1hdCgpO1xyXG5cclxuXHRcdFx0aWYgKCFmb3JtYXQpIHJldHVybiAnMS4wLTMnO1xyXG5cclxuXHRcdFx0Ly8gRcSfZXIgZm9ybWF0IEFuZ3VsYXIgRGVjaW1hbFBpcGUgZm9ybWF0xLFuZGF5c2EgZGlyZWt0IGt1bGxhblxyXG5cdFx0XHRpZiAoZm9ybWF0ICYmIHR5cGVvZiBmb3JtYXQgPT09ICdzdHJpbmcnICYmIGZvcm1hdC5tYXRjaCgvXlxcZCtcXC5cXGQrLVxcZCskLykpIHtcclxuXHRcdFx0XHRyZXR1cm4gZm9ybWF0O1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEXEn2VyIGVza2kgZm9ybWF0IHN0cmluZydpIHZhcnNhICjDtnJuOiAjLjAwKSBvbnUgw6dldmlyXHJcblx0XHRcdGlmIChmb3JtYXQgJiYgdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZycgJiYgZm9ybWF0LmluY2x1ZGVzKCcuJykpIHtcclxuXHRcdFx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0LnNwbGl0KCcuJylbMV0ubGVuZ3RoO1xyXG5cdFx0XHRcdHJldHVybiBgMS4ke2RlY2ltYWxQbGFjZXN9LSR7ZGVjaW1hbFBsYWNlc31gO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJyc7XHJcblx0fVxyXG5cclxuXHRjb2xvckxpc3QgPSBbXHJcblx0XHQnIzE4OTBGRicsXHJcblx0XHQnI0ZBQUQxNCcsXHJcblx0XHQnIzUyQzQxQScsXHJcblx0XHQnIzVENkQ3RScsXHJcblx0XHQnI0ZGNkI2QicsXHJcblx0XHQnIzEzQzJDMicsXHJcblx0XHQnIzU4RDY4RCcsXHJcblx0XHQnIzcyMkVEMScsXHJcblx0XHQnIzg1QzFFOScsXHJcblx0XHQnI2M0OWUwNWZmJ1xyXG5cdF07XHJcblxyXG5cdGRpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XHJcblx0XHRcdGNhc2UgJ3RleHQnOlxyXG5cdFx0XHRjYXNlICdudW1iZXInOlxyXG5cdFx0XHRjYXNlICdkZWNpbWFsJzpcclxuXHRcdFx0Y2FzZSAnY3VycmVuY3knOlxyXG5cdFx0XHRjYXNlICdiaWdfZGVjaW1hbCc6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMubW9kZWwoKTtcclxuXHRcdFx0Y2FzZSAnZGF0ZSc6XHJcblx0XHRcdFx0cmV0dXJuICg8bnVtYmVyPnRoaXMubW9kZWwoKSkubG9uZ1RvU3RyaW5nKHRoaXMuZm9ybWF0KCkgPz8gJ3RpbWUnKTtcclxuXHRcdFx0Y2FzZSAncGFzc3dvcmQnOlxyXG5cdFx0XHRcdHJldHVybiAoPHN0cmluZz50aGlzLm1vZGVsKCkpLnJlcGxhY2UoLy4vZywgJyonKTtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwiSW52YWxpZCB0eXBlOiAnXCIgKyB0aGlzLnR5cGUoKSArIFwiJ1wiKTtcclxuXHRcdFx0XHRyZXR1cm4gJyc7XHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdGVudW1TZWxlY3Rpb25EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLmxhbmdTaWduYWwoKTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHRoaXMuZ3JvdXBOYW1lKCkhLCB0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpISk7XHJcblx0XHRcdHJldHVybiB0aGlzLm1vZGVsKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmF3TW9kZWwgPSB0aGlzLm1vZGVsKCk7XHJcblx0XHRjb25zdCBrZXkgPVxyXG5cdFx0XHR0eXBlb2YgcmF3TW9kZWwgPT09ICdvYmplY3QnICYmIHJhd01vZGVsICE9PSBudWxsICYmICd2YWx1ZScgaW4gcmF3TW9kZWwgPyByYXdNb2RlbC52YWx1ZVxyXG5cdFx0XHQ6IHR5cGVvZiByYXdNb2RlbCA9PT0gJ2Jvb2xlYW4nID8gU3RyaW5nKHJhd01vZGVsKVxyXG5cdFx0XHQ6IHJhd01vZGVsO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5maW5kKCh0KSA9PiB0LnNlbGVjdGlvbktleSA9PT0ga2V5KSBhcyB7XHJcblx0XHRcdHNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz86IHsgW2xhbmc6IHN0cmluZ106IHN0cmluZyB9O1xyXG5cdFx0XHRzZWxlY3Rpb25EaXNwbGF5Pzogc3RyaW5nO1xyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkl0ZW0pIHJldHVybiBrZXk7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyBrZXk7XHJcblx0fSk7XHJcblxyXG5cdGVudW1CYWRnZUJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICh0eXBlb2YgdGhpcy5tb2RlbCgpID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMubW9kZWwoKSA/ICcjMjJjNTVlJyA6ICcjZWY0NDQ0JzsgLy8gdHJ1ZSBpw6dpbiB5ZcWfaWwsIGZhbHNlIGnDp2luIGvEsXJtxLF6xLFcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbXMgPSBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMgPz8gW107XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSB0aGlzLm1vZGVsKCkpO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uSXRlbSkge1xyXG5cdFx0XHRyZXR1cm4gJyMxODkwRkYnO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmNvbG9yTGlzdFtzZWxlY3Rpb25JdGVtLnNob3dPcmRlcl0gIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuICcjQTJBRkZGJztcclxuXHR9KTtcclxuXHJcblx0Z2V0QXJyYXlJdGVtVmFsdWUoaXRlbTogYW55KTogYW55IHtcclxuXHRcdHJldHVybiBpdGVtW3RoaXMuYXJyYXlUeXBlRGlzcGxheU5hbWUoKV07XHJcblx0fVxyXG5cclxuXHRpc01vZGVsQXJyYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKCkpO1xyXG5cdH0pO1xyXG5cclxuXHQvLyBHZXQgZW51bSBkaXNwbGF5IGZvciBhcnJheSBpdGVtc1xyXG5cdGVudW1BcnJheURpc3BsYXlzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0aWYgKCF0aGlzLmlzTW9kZWxBcnJheSgpIHx8ICFBcnJheS5pc0FycmF5KHRoaXMubW9kZWwoKSkpIHJldHVybiBbXTtcclxuXHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMubGFuZ1NpZ25hbCgpO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPVxyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt0aGlzLmdyb3VwTmFtZSgpIX1+JHt0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpIX1gXTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh0aGlzLmdyb3VwTmFtZSgpISwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSEpO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5tb2RlbCgpIGFzIHN0cmluZ1tdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLm1vZGVsKCkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0Y29uc3Qga2V5ID1cclxuXHRcdFx0XHR0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCAmJiAndmFsdWUnIGluIGl0ZW0gPyBpdGVtLnZhbHVlXHJcblx0XHRcdFx0OiB0eXBlb2YgaXRlbSA9PT0gJ2Jvb2xlYW4nID8gU3RyaW5nKGl0ZW0pXHJcblx0XHRcdFx0OiBpdGVtO1xyXG5cclxuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSBrZXkpIGFzIHtcclxuXHRcdFx0XHRzZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/OiB7IFtsYW5nOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHRcdFx0XHRzZWxlY3Rpb25EaXNwbGF5Pzogc3RyaW5nO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSByZXR1cm4ga2V5O1xyXG5cclxuXHRcdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyBrZXk7XHJcblx0XHR9KSBhcyBzdHJpbmdbXTtcclxuXHR9KTtcclxuXHJcblx0Ly8gR2V0IGVudW0gYmFja2dyb3VuZCBjb2xvcnMgZm9yIGFycmF5IGl0ZW1zXHJcblx0ZW51bUFycmF5QmFja2dyb3VuZENvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICghdGhpcy5pc01vZGVsQXJyYXkoKSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKCkpKSByZXR1cm4gW107XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPVxyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt0aGlzLmdyb3VwTmFtZSgpIX1+JHt0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpIX1gXTtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW1zID0gc2VsZWN0aW9uR3JvdXA/LnNlbGVjdGlvbkl0ZW1zID8/IFtdO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLm1vZGVsKCkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHR5cGVvZiBpdGVtID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0XHRyZXR1cm4gaXRlbSA/ICcjMjJjNTVlJyA6ICcjZWY0NDQ0JztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkl0ZW1zLmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSBpdGVtKTtcclxuXHJcblx0XHRcdGlmICghc2VsZWN0aW9uSXRlbSkge1xyXG5cdFx0XHRcdHJldHVybiAnIzE4OTBGRic7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiAnI0EyQUZGRic7XHJcblx0XHR9KTtcclxuXHR9KTtcclxuXHJcblx0Y29weVRvQ2xpcGJvYXJkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICghdmFsdWUpIHJldHVybjtcclxuXHRcdG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKS50aGVuKFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLnN1Y2Nlc3NNZXNzYWdlSGVhZGVyJyksXHJcblx0XHRcdFx0XHRkZXRhaWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmNvcHlUb0NsaXBib2FyZFN1Y2Nlc3MnKSxcclxuXHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnIpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRzZXZlcml0eTogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLnVuc3VjY2Vzc2Z1bE1lc3NhZ2VIZWFkZXInKSxcclxuXHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuY29weVRvQ2xpcGJvYXJkRXJyb3InKSxcclxuXHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiIsIkBpZiAobW9kZWwoKSA9PSB1bmRlZmluZWQgfHwgbW9kZWwoKSA9PSBudWxsKSB7XHJcblx0PGlcclxuXHRcdGNsYXNzPVwicGkgcGktbWludXNcIlxyXG5cdFx0c3R5bGU9XCJjb2xvcjogcmVkXCJcclxuXHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5ub0l0ZW1Ub1Nob3cnKVwiPjwvaT5cclxufSBAZWxzZSB7XHJcblx0QGlmICh0eXBlKCkgPT0gJ2Jvb2wnKSB7XHJcblx0XHRAaWYgKCEhbW9kZWwoKSkge1xyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNoZWNrXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW5cIj48L2k+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS10aW1lc1wiIHN0eWxlPVwiY29sb3I6IGNyaW1zb25cIj48L2k+XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnZW51bScpIHtcclxuXHRcdEBpZiAoaXNNb2RlbEFycmF5KCkpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcblx0XHRcdFx0QGZvciAoZGlzcGxheSBvZiBlbnVtQXJyYXlEaXNwbGF5cygpLnNsaWNlKDAsIDIpOyB0cmFjayBkaXNwbGF5OyBsZXQgaSA9ICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZW51bUFycmF5QmFja2dyb3VuZENvbG9ycygpW2ldXCIgW3ZhbHVlXT1cImRpc3BsYXlcIiBbdGV4dENsYW1wQ2hhcmFjdGVyc109XCJ0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcIiAvPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaWYgKGVudW1BcnJheURpc3BsYXlzKCkubGVuZ3RoID4gMikge1xyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1lbGxpcHNpcy12IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImVudW1PcC50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuXHJcblx0XHRcdFx0XHQ8cC1vdmVybGF5UGFuZWwgI2VudW1PcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIG1heC13LTMwcmVtIG1heC1oLTIwcmVtIHByLTMgb3ZlcmZsb3cteS1hdXRvXCI+XHJcblx0XHRcdFx0XHRcdFx0QGZvciAoZGlzcGxheSBvZiBlbnVtQXJyYXlEaXNwbGF5cygpIHwgc2xpY2U6IDI7IHRyYWNrIGRpc3BsYXk7IGxldCBpID0gJGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJlbnVtQXJyYXlCYWNrZ3JvdW5kQ29sb3JzKClbaSArIDJdXCIgW3ZhbHVlXT1cImRpc3BsYXlcIiBbdGV4dENsYW1wQ2hhcmFjdGVyc109XCJ0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L3Atb3ZlcmxheVBhbmVsPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZW51bUJhZGdlQmFja2dyb3VuZENvbG9yKClcIiBbdmFsdWVdPVwiZW51bVNlbGVjdGlvbkRpc3BsYXkoKVwiIFt0ZXh0Q2xhbXBDaGFyYWN0ZXJzXT1cInRleHRDbGFtcENoYXJhY3RlcnMoKVwiIC8+XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnYXJyYXknKSB7XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuXHRcdFx0QGZvciAoaXRlbSBvZiBtb2RlbCgpLnNsaWNlKDAsIGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSk7IHRyYWNrIGl0ZW0pIHtcclxuXHRcdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKSB8fCAnJyB8IGVudW1Db2xvclBpY2tlclwiIFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIFt0ZXh0Q2xhbXBDaGFyYWN0ZXJzXT1cInRleHRDbGFtcENoYXJhY3RlcnMoKVwiIC8+XHJcblx0XHRcdH1cclxuXHRcdFx0QGlmIChtb2RlbCgpLmxlbmd0aCA+IGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSkge1xyXG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktZWxsaXBzaXMtdiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuXHJcblx0XHRcdFx0PHAtb3ZlcmxheVBhbmVsICNvcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBtYXgtdy0zMHJlbSBtYXgtaC0yMHJlbSBwci0zIG92ZXJmbG93LXktYXV0b1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIG1vZGVsKCkgfCBzbGljZTogYXJyYXlUeXBlTWF4QmFkZ2VDb3VudCgpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYmFkZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFtiYWNrZ3JvdW5kXT1cImdldEFycmF5SXRlbVZhbHVlKGl0ZW0pIHx8ICcnIHwgZW51bUNvbG9yUGlja2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1vdmVybGF5UGFuZWw+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGlmIChkaXNwbGF5KCkgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdDxpXHJcblx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIlxyXG5cdFx0XHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLmludmFsaWREYXRhRm9ybWF0JylcIj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRAaWYgKHNob3dDb3B5SWNvbigpKSB7XHJcblx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWNvcHkgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKGRpc3BsYXkoKT8udG9TdHJpbmcoKSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZm9udC1zaXplOiAxcmVtOyBjb2xvcjogZ3JlZW5cIj48L2k+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSA/IGRpc3BsYXkoKT8udG9TdHJpbmcoKSA6ICcnXCJcclxuXHRcdFx0XHRcdGFyaWxUb29sdGlwT25PdmVyZmxvd1xyXG5cdFx0XHRcdFx0W2FyaWxUb29sdGlwT25PdmVyZmxvd0ZvcmNlXT1cIlxyXG5cdFx0XHRcdFx0XHR0eXBlKCkgPT09ICd0ZXh0JyAmJiBpc1RleHRDbGFtcCgpICYmIGRpc3BsYXkoKT8udG9TdHJpbmcoKS5sZW5ndGggPiB0ZXh0Q2xhbXBDaGFyYWN0ZXJzKClcclxuXHRcdFx0XHRcdFwiXHJcblx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLnRleHQtbm8td3JhcF09XCJpc1RleHRDbGFtcCgpXCJcclxuXHRcdFx0XHRcdFtzdHlsZV09XCJpc0NsaWNrYWJsZSgpID8geyAndGV4dC1kZWNvcmF0aW9uJzogJ3VuZGVybGluZScsIGNvbG9yOiAnIzAwMDBFRScsIGN1cnNvcjogJ3BvaW50ZXInIH0gOiAnJ1wiPlxyXG5cdFx0XHRcdFx0QGlmICh0eXBlKCkgPT09ICdudW1iZXInIHx8IHR5cGUoKSA9PT0gJ2RlY2ltYWwnKSB7XHJcblx0XHRcdFx0XHRcdHt7IG1vZGVsKCkgfCBudW1iZXI6IGdldE51bWJlckZvcm1hdCgpIDogJ3RyLVRSJyB9fVxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnYmlnX2RlY2ltYWwnKSB7XHJcblx0XHRcdFx0XHRcdHt7IG1vZGVsKCkgfCByb3VuZE51bWJlcjogYmlnRGVjaW1hbFNjYWxlKCkgOiBiaWdEZWNpbWFsUm91bmRpbmdNb2RlKCkgOiAndHItVFInIH19XHJcblx0XHRcdFx0XHR9IEBlbHNlIGlmICh0eXBlKCkgPT09ICdjdXJyZW5jeScpIHtcclxuXHRcdFx0XHRcdFx0e3sgbW9kZWwoKSB8IGN1cnJlbmN5OiBmb3JtYXQoKSA/PyAnVFJZJyA6ICdzeW1ib2wnIDogJzEuMC0yJyB9fVxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSkge1xyXG5cdFx0XHRcdFx0XHR7e1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXkoKS5sZW5ndGggPiB0ZXh0Q2xhbXBDaGFyYWN0ZXJzKCkgPyBkaXNwbGF5KCkuc2xpY2UoMCwgdGV4dENsYW1wQ2hhcmFjdGVycygpKSArICcuLi4nIDogZGlzcGxheSgpXHJcblx0XHRcdFx0XHRcdH19XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0e3sgZGlzcGxheSgpIH19XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHQ8L3NwYW4+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -196,10 +196,10 @@ export class AssetPickerComponent extends BaseInputComponent {
196
196
  };
197
197
  this.selectedDefinitionEvent.emit(selectedEvent);
198
198
  }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }, { token: i3.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AssetPickerComponent, isStandalone: true, selector: "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", inputs: { assetCode: { classPropertyName: "assetCode", publicName: "assetCode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, mql: { classPropertyName: "mql", publicName: "mql", isSignal: true, isRequired: false, transformFunction: null }, showOnlyAssetNumber: { classPropertyName: "showOnlyAssetNumber", publicName: "showOnlyAssetNumber", isSignal: true, isRequired: false, transformFunction: null }, enableAutoSearchOnInit: { classPropertyName: "enableAutoSearchOnInit", publicName: "enableAutoSearchOnInit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.ValueAccessorDirective }], ngImport: i0, template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[optionValue]=\"optionValue()!\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[group]=\"true\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"700\"\r\n\t[minLength]=\"3\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t[type]=\"type()!\"\r\n\t(ngModelChange)=\"onNgModelChange($event)\"\r\n\t[showClear]=\"showClear()\"\r\n\t[emptyMessage]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t(onSelect)=\"triggerSelectedEvents($event)\"\r\n\t[appendTo]=\"appendTo()\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<span class=\"font-bold\">{{ group.text }}</span>\r\n\t</ng-template>\r\n\t@if (showOnlyAssetNumber()) {\r\n\t\t<ng-template let-value pTemplate=\"selectedItem\">\r\n\t\t\t<span>{{ value?.assetNumber || value?.text }}</span>\r\n\t\t</ng-template>\r\n\t}\r\n</p-autoComplete>\r\n", styles: ["::ng-deep .p-autocomplete-multiple-container{flex-wrap:wrap;max-height:50px;overflow-y:auto;align-items:center}::ng-deep .p-autocomplete-token{margin:0;flex-shrink:0}::ng-deep .p-autocomplete-input-token{flex:1;min-width:150px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }, { token: i3.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AssetPickerComponent, isStandalone: true, selector: "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", inputs: { assetCode: { classPropertyName: "assetCode", publicName: "assetCode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, mql: { classPropertyName: "mql", publicName: "mql", isSignal: true, isRequired: false, transformFunction: null }, showOnlyAssetNumber: { classPropertyName: "showOnlyAssetNumber", publicName: "showOnlyAssetNumber", isSignal: true, isRequired: false, transformFunction: null }, enableAutoSearchOnInit: { classPropertyName: "enableAutoSearchOnInit", publicName: "enableAutoSearchOnInit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.ValueAccessorDirective }], ngImport: i0, template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[optionValue]=\"optionValue()!\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[group]=\"true\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"700\"\r\n\t[minLength]=\"3\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t[type]=\"type()!\"\r\n\t(ngModelChange)=\"onNgModelChange($event)\"\r\n\t[showClear]=\"showClear()\"\r\n\t[emptyMessage]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t(onSelect)=\"triggerSelectedEvents($event)\"\r\n\t[appendTo]=\"appendTo()\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<span class=\"font-bold\">{{ group.text }}</span>\r\n\t</ng-template>\r\n\t@if (showOnlyAssetNumber()) {\r\n\t\t<ng-template let-value pTemplate=\"selectedItem\">\r\n\t\t\t<span>{{ value?.assetNumber || value?.text }}</span>\r\n\t\t</ng-template>\r\n\t}\r\n</p-autoComplete>\r\n", styles: ["::ng-deep .p-autocomplete-multiple-container{flex-wrap:wrap;max-height:50px;overflow-y:auto;align-items:center}::ng-deep .p-autocomplete-token{margin:0;flex-shrink:0}::ng-deep .p-autocomplete-input-token{flex:1;min-width:150px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
201
201
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPickerComponent, decorators: [{
203
203
  type: Component,
204
204
  args: [{ standalone: true, selector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[optionValue]=\"optionValue()!\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[group]=\"true\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"700\"\r\n\t[minLength]=\"3\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t[type]=\"type()!\"\r\n\t(ngModelChange)=\"onNgModelChange($event)\"\r\n\t[showClear]=\"showClear()\"\r\n\t[emptyMessage]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t(onSelect)=\"triggerSelectedEvents($event)\"\r\n\t[appendTo]=\"appendTo()\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<span class=\"font-bold\">{{ group.text }}</span>\r\n\t</ng-template>\r\n\t@if (showOnlyAssetNumber()) {\r\n\t\t<ng-template let-value pTemplate=\"selectedItem\">\r\n\t\t\t<span>{{ value?.assetNumber || value?.text }}</span>\r\n\t\t</ng-template>\r\n\t}\r\n</p-autoComplete>\r\n", styles: ["::ng-deep .p-autocomplete-multiple-container{flex-wrap:wrap;max-height:50px;overflow-y:auto;align-items:center}::ng-deep .p-autocomplete-token{margin:0;flex-shrink:0}::ng-deep .p-autocomplete-input-token{flex:1;min-width:150px}\n"] }]
205
205
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }, { type: i3.SelectionGroupService }], propDecorators: { autoCompleteRef: [{
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
208
208
  }], selectedDefinitionEvent: [{
209
209
  type: Output
210
210
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWktYnVzaW5lc3MvYXNzZXRQaWNrZXIvc3JjL2Fzc2V0LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2Fzc2V0UGlja2VyL3NyYy9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBdUN6RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBdUIzRCxZQUNrQixJQUFnQixFQUMxQixnQkFBa0MsRUFDeEIscUJBQTRDO1FBRTdELEtBQUssRUFBRSxDQUFDO1FBSlMsU0FBSSxH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WUFBWSxtSUNsRXhCLDAvQkE0QkEsOFJEa0NXLG1CQUFtQix5VEFBRSxrQkFBa0I7OzJGQUdyQyxvQkFBb0I7a0JBM0JoQyxTQUFTO2lDQUNHLElBQUksWUFDTixnR0FBZ0csV0FzQmpHLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUM7a0pBR2YsZUFBZTtzQkFBdkMsU0FBUzt1QkFBQyxZQUFZO2dCQW9CYix1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q29tcG9uZW50LFxyXG5cdERlc3Ryb3lSZWYsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRpbmplY3QsXHJcblx0aW5wdXQsXHJcblx0c2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSwgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnYXJpbC90aGVtZS9sYXlvdXQnO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQsIFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICdhcmlsL3VpL2xpYic7XHJcblxyXG5pbXBvcnQge1xyXG5cdEFzc2V0QWdncmVnYXRlLFxyXG5cdEF0dHJpYnV0ZUVsZW1lbnQsXHJcblx0Q2FjaGVTZWFyY2hSZXF1ZXN0RFRPLFxyXG5cdERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSxcclxuXHRTdWdnZXN0aW9uc0RUTyxcclxuXHRTdWdnZXN0aW9uc0dyb3VwRFRPXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcic7XHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLWFzc2V0LXBpY2tlcltuZ01vZGVsXSwgYXJpbC1hc3NldC1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLWFzc2V0LXBpY2tlcltmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZXM6IFtcclxuXHRcdGBcclxuXHRcdFx0OjpuZy1kZWVwIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xyXG5cdFx0XHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdFx0XHRtYXgtaGVpZ2h0OiA1MHB4O1xyXG5cdFx0XHRcdG92ZXJmbG93LXk6IGF1dG87XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0OjpuZy1kZWVwIC5wLWF1dG9jb21wbGV0ZS10b2tlbiB7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLWlucHV0LXRva2VuIHtcclxuXHRcdFx0XHRmbGV4OiAxO1xyXG5cdFx0XHRcdG1pbi13aWR0aDogMTUwcHg7XHJcblx0XHRcdH1cclxuXHRcdGBcclxuXHRdLFxyXG5cdGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBdXRvQ29tcGxldGVNb2R1bGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2V0UGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmITogQXV0b0NvbXBsZXRlO1xyXG5cdGFzc2V0Q29kZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbD4obnVsbCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXMgfCBudWxsPihudWxsKTtcclxuXHJcblx0cGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdBcmFtYS4uLicpO1xyXG5cdGZvcmNlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHNob3dDbGVhciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRvcHRpb25WYWx1ZSA9IGlucHV0PGtleW9mIFN1Z2dlc3Rpb25zRFRPIHwgbnVsbD4obnVsbCk7XHJcblx0YXBwZW5kVG8gPSBpbnB1dDxzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGw+KCdib2R5Jyk7XHJcblx0bXFsID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdHNob3dPbmx5QXNzZXROdW1iZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0ZW5hYmxlQXV0b1NlYXJjaE9uSW5pdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1VwZGF0ZU1vZGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zITogU3VnZ2VzdGlvbnNHcm91cERUT1tdO1xyXG5cdHNlbGVjdGlvbkRlZmluaXRpb25zITogRGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlO1xyXG5cdGNhY2hlU2VhcmNoUmVxdWVzdCQgPSBuZXcgU3ViamVjdDxDYWNoZVNlYXJjaFJlcXVlc3REVE8+KCk7XHJcblx0ZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHRwcml2YXRlIHVwZGF0ZU1vZGVRdWVyeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblx0QE91dHB1dCgpIHNlbGVjdGVkRGVmaW5pdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8QXNzZXRBZ2dyZWdhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldEFnZ3JlZ2F0ZT4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0aW9uR3JvdXBTZXJ2aWNlOiBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKCk7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zKSB7XHJcblx0XHRcdFx0dGhpcy5yZWZyZXNoRmlsdGVyZWRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuY2FjaGVTZWFyY2hSZXF1ZXN0JFxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHBheWxvYWQpID0+XHJcblx0XHRcdFx0XHR0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9DT05GSUdTLmdldEV4dGVybmFsQXBwRW5kcG9pbnQoQXBwcy5NTkcpICsgJy9tYXN0ZXItZGF0YS9jYWNoZS1zZWFyY2gnLCBwYXlsb2FkKVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChzZWxlY3Rpb25Hcm91cCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMgPSBzZWxlY3Rpb25Hcm91cDtcclxuXHRcdFx0XHR0aGlzLnJlZnJlc2hGaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zKCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdC8vIElmIHRoZSBmb3JtIGNvbnRyb2wncyB2YWx1ZSBpcyBhIHN0cmluZywgcGVyZm9ybSBhIGNhY2hlIHNlYXJjaCB0byByZXRyaWV2ZSB0aGUgSUQuXHJcblx0XHRjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWU7XHJcblx0XHRpZiAodGhpcy5lbmFibGVBdXRvU2VhcmNoT25Jbml0KCkgfHwgKGN1cnJlbnRWYWx1ZSAmJiB0eXBlb2YgY3VycmVudFZhbHVlID09PSAnc3RyaW5nJykpIHtcclxuXHRcdFx0XHRjb25zdCBzZWFyY2hRdWVyeSA9IHR5cGVvZiBjdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnID8gY3VycmVudFZhbHVlIDogY3VycmVudFZhbHVlPy50ZXh0O1xyXG5cdFx0XHRcdGlmIChzZWFyY2hRdWVyeSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSBzZWFyY2hRdWVyeTtcclxuXHRcdFx0XHRcdHRoaXMuc2VhcmNoKHsgcXVlcnk6IHNlYXJjaFF1ZXJ5IH0sIHRydWUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBSZWFjdCB0byBwcm9ncmFtbWF0aWMgcGF0Y2hlcyAoY3JlYXRlRm9ybURhdGFPYmplY3QgLyBwYXRjaEFzc2V0UmVzcG9uc2VUb0Zvcm0pXHJcblx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdGZpbHRlcih2YWx1ZSA9PlxyXG5cdFx0XHRcdFx0dmFsdWUgJiZcclxuXHRcdFx0XHRcdHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuXHRcdFx0XHRcdCd0ZXh0JyBpbiB2YWx1ZSAmJlxyXG5cdFx0XHRcdFx0ISgnYXR0cmlidXRlcycgaW4gdmFsdWUpXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc1VwZGF0ZU1vZGUoKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSB2YWx1ZS50ZXh0O1xyXG5cdFx0XHRcdFx0dGhpcy5zZWFyY2goeyBxdWVyeTogdmFsdWUudGV4dCB9LCB0cnVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXSA9IFtdO1xyXG5cclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHRcdGNvbnN0IGdyb3VwRGF0YTogU3VnZ2VzdGlvbnNHcm91cERUTyA9IHtcclxuXHRcdFx0XHR0ZXh0OiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0/LnJlc3VsdFswXT8uYXNzZXRzWzBdPy5hc3NldERlZmluaXRpb25OYW1lLFxyXG5cdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdGl0ZW1zOiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0ucmVzdWx0Lm1hcChcclxuXHRcdFx0XHRcdChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT5cclxuXHRcdFx0XHRcdFx0KHtcclxuXHRcdFx0XHRcdFx0XHRrZXk6IGl0ZW0uaWQsXHJcblx0XHRcdFx0XHRcdFx0dGV4dDogdGhpcy5nZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoaXRlbS5hdHRyaWJ1dGVzKSxcclxuXHRcdFx0XHRcdFx0XHRhc3NldE51bWJlcjogdGhpcy5nZXRBc3NldE51bWJlclZhbHVlKGl0ZW0uYXR0cmlidXRlcyksXHJcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlczogaXRlbS5hdHRyaWJ1dGVzLFxyXG5cdFx0XHRcdFx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGU6IGl0ZW0uYXNzZXREZWZpbml0aW9uQ29kZVxyXG5cdFx0XHRcdFx0XHR9KSBhcyBTdWdnZXN0aW9uc0RUT1xyXG5cdFx0XHRcdClcclxuXHRcdFx0fTtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goZ3JvdXBEYXRhKTtcclxuXHJcblx0XHRcdC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgaXMgcGF0Y2hlZCBpbiB1cGRhdGUgbW9kZSBhbmQgdGhlcmUgaXMgZ3JvdXAgZGF0YSwgc2VsZWN0IHRoZSBtYXRjaGluZyBpdGVtXHJcblx0XHRcdGlmICh0aGlzLmlzVXBkYXRlTW9kZSgpICYmIGdyb3VwRGF0YS5pdGVtcy5sZW5ndGggPiAwICYmICF0aGlzLm11bHRpcGxlKCkpIHtcclxuXHRcdFx0XHRjb25zdCBtYXRjaGVkSXRlbSA9XHJcblx0XHRcdFx0XHRncm91cERhdGEuaXRlbXMubGVuZ3RoID09PSAxXHJcblx0XHRcdFx0XHRcdD8gZ3JvdXBEYXRhLml0ZW1zWzBdXHJcblx0XHRcdFx0XHRcdDogZ3JvdXBEYXRhLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYXNzZXROdW1iZXIgPT09IHRoaXMudXBkYXRlTW9kZVF1ZXJ5KTtcclxuXHRcdFx0XHRpZiAobWF0Y2hlZEl0ZW0pIHtcclxuXHRcdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShtYXRjaGVkSXRlbSk7XHJcblx0XHRcdFx0XHR0aGlzLmlzVXBkYXRlTW9kZS5zZXQoZmFsc2UpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJlZFNlbGVjdGlvbkl0ZW1zID0gbmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYuZ2V0T3B0aW9uVmFsdWUgPSB0aGlzLmdldE9wdGlvblZhbHVlLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRnZXRPcHRpb25WYWx1ZShvcHRpb246IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvblZhbHVlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG9wdGlvbjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0cmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob3B0aW9uLCB0aGlzLm9wdGlvblZhbHVlKCkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBvcHRpb247XHJcblx0fVxyXG5cclxuXHRvbk5nTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGVkVmFsdWUgPSB0aGlzLnZhbGlkYXRlSW5wdXQodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsaWRhdGVkVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3RleHQnKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXmEtekEtWsSfw7zFn8Sxw7bDp8Sew5zFnsSww5bDh1xcc10vZywgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0c2VhcmNoKGV2ZW50OiBhbnksIHNraXBNcWwgPSBmYWxzZSkge1xyXG5cdFx0aWYgKCFldmVudD8ucXVlcnkgfHwgdHlwZW9mIGV2ZW50LnF1ZXJ5ICE9PSAnc3RyaW5nJykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHF1ZXJ5ID0gdGhpcy52YWxpZGF0ZUlucHV0KGV2ZW50LnF1ZXJ5KTtcclxuXHRcdGlmICghcXVlcnk/LnRyaW0oKSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQ6IENhY2hlU2VhcmNoUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0c2VhcmNoVGV4dDogcXVlcnk/LnRyaW0oKSxcclxuXHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZXM6IEFycmF5LmlzQXJyYXkodGhpcy5hc3NldENvZGUoKSkgPyB0aGlzLmFzc2V0Q29kZSgpIDogKFt0aGlzLmFzc2V0Q29kZSgpXSBhcyBhbnkpLFxyXG5cdFx0XHRwYWdlcjoge1xyXG5cdFx0XHRcdHBhZ2VTaXplOiA1LFxyXG5cdFx0XHRcdHBhZ2VOdW1iZXI6IDFcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIXNraXBNcWwgJiYgdGhpcy5tcWwoKSkgcGF5bG9hZC5tcWwgPSB0aGlzLm1xbCgpO1xyXG5cclxuXHRcdHRoaXMuY2FjaGVTZWFyY2hSZXF1ZXN0JC5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0QXR0aXJpYnV0ZXNWYWx1ZURlc2NyKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBleGNsdWRlZEF0dHJpYnV0ZXMgPSBbJ0Fzc2V0SWQnLCAnQXNzZXREZWZpbml0aW9uTmFtZSddO1xyXG5cdFx0cmV0dXJuIGF0dHJpYnV0ZXNcclxuXHRcdFx0Py5maWx0ZXIoKGF0dHIpID0+ICFleGNsdWRlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0ci5hdHRyaWJ1dGU/LmF0dHJpYnV0ZUNvZGUpKVxyXG5cdFx0XHQ/Lm1hcCgoYXR0cikgPT4ge1xyXG5cdFx0XHRcdC8vIEhhbmRsZSBTRUxFQ1QgdHlwZSBhdHRyaWJ1dGVzIHVzaW5nIFNlbGVjdGlvbkdyb3VwU2VydmljZVxyXG5cdFx0XHRcdGlmIChhdHRyLmF0dHJpYnV0ZT8uYXR0cmlidXRlVHlwZSA9PT0gJ1NFTEVDVCcgJiYgYXR0ci5hdHRyaWJ1dGU/LnNlbGVjdE9wdGlvbikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRGlzcGxheShhdHRyLmF0dHJpYnV0ZS5zZWxlY3RPcHRpb24sIGF0dHIudmFsdWUgYXMgc3RyaW5nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBhdHRyLnZhbHVlRGVzYyA/IGF0dHIudmFsdWVEZXNjIDogYXR0ci52YWx1ZTtcclxuXHRcdFx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5qb2luKCcgLSAnKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBnZXRBc3NldE51bWJlclZhbHVlKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBhc3NldE51bWJlckF0dHIgPSBhdHRyaWJ1dGVzPy5maW5kKChhdHRyKSA9PiBhdHRyLmF0dHJpYnV0ZT8uYXR0cmlidXRlQ29kZSA9PT0gJ0Fzc2V0TnVtYmVyJyk7XHJcblx0XHRpZiAoIWFzc2V0TnVtYmVyQXR0cikgcmV0dXJuICcnO1xyXG5cdFx0cmV0dXJuIFN0cmluZyhhc3NldE51bWJlckF0dHIudmFsdWVEZXNjIHx8IGFzc2V0TnVtYmVyQXR0ci52YWx1ZSB8fCAnJyk7XHJcblx0fVxyXG5cdHByaXZhdGUgZ2V0U2VsZWN0aW9uRGlzcGxheShncm91cE5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBrZXkgPSBgJHtncm91cE5hbWV9fkFMTGA7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2tleV07XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5mZXRjaEVudW0oZ3JvdXBOYW1lLCAnQUxMJyk7XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtID0gc2VsZWN0aW9uR3JvdXAuc2VsZWN0aW9uSXRlbXM/LmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSB2YWx1ZSkgYXMge1xyXG5cdFx0XHRzZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/OiB7IFtsYW5nOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHRcdFx0c2VsZWN0aW9uRGlzcGxheT86IHN0cmluZztcclxuXHRcdH07XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSByZXR1cm4gdmFsdWU7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdHRyaWdnZXJTZWxlY3RlZEV2ZW50cyhldmVudDogYW55KSB7XHJcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW1zOiBBc3NldEFnZ3JlZ2F0ZVtdID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykubWFwKChrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25EZWZpbml0aW9uc1trZXldLnJlc3VsdC5maW5kKChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT4gaXRlbS5pZCA9PT0gZXZlbnQ/LnZhbHVlPy5rZXkpO1xyXG5cdFx0fSkgYXMgQXNzZXRBZ2dyZWdhdGVbXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zWzBdO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGVkRXZlbnQgPSB7XHJcblx0XHRcdC4uLnNlbGVjdGVkSXRlbSxcclxuXHRcdFx0a2V5OiBzZWxlY3RlZEl0ZW0/LmlkLFxyXG5cdFx0XHR0ZXh0OiBzZWxlY3RlZEl0ZW0/LmFzc2V0RGVmaW5pdGlvbk5hbWUsXHJcblx0XHRcdGF0dHJpYnV0ZXM6IHNlbGVjdGVkSXRlbT8uYXR0cmlidXRlcyxcclxuXHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZTogc2VsZWN0ZWRJdGVtPy5hc3NldERlZmluaXRpb25Db2RlXHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWREZWZpbml0aW9uRXZlbnQuZW1pdChzZWxlY3RlZEV2ZW50KTtcclxuXHR9XHJcbn1cclxuIiwiPHAtYXV0b0NvbXBsZXRlXHJcblx0b3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuXHRbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWUoKSFcIlxyXG5cdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuXHRbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcblx0W2dyb3VwXT1cInRydWVcIlxyXG5cdFtmb3JjZVNlbGVjdGlvbl09XCJmb3JjZVNlbGVjdGlvbigpXCJcclxuXHRbZGVsYXldPVwiNzAwXCJcclxuXHRbbWluTGVuZ3RoXT1cIjNcIlxyXG5cdFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zXCJcclxuXHQoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcblx0W2F1dG9IaWdobGlnaHRdPVwidHJ1ZVwiXHJcblx0W3R5cGVdPVwidHlwZSgpIVwiXHJcblx0KG5nTW9kZWxDaGFuZ2UpPVwib25OZ01vZGVsQ2hhbmdlKCRldmVudClcIlxyXG5cdFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKClcIlxyXG5cdFtlbXB0eU1lc3NhZ2VdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuXHQob25TZWxlY3QpPVwidHJpZ2dlclNlbGVjdGVkRXZlbnRzKCRldmVudClcIlxyXG5cdFthcHBlbmRUb109XCJhcHBlbmRUbygpXCI+XHJcblx0PG5nLXRlbXBsYXRlIGxldC1ncm91cCBwVGVtcGxhdGU9XCJncm91cFwiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57eyBncm91cC50ZXh0IH19PC9zcGFuPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblx0QGlmIChzaG93T25seUFzc2V0TnVtYmVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCI+XHJcblx0XHRcdDxzcGFuPnt7IHZhbHVlPy5hc3NldE51bWJlciB8fCB2YWx1ZT8udGV4dCB9fTwvc3Bhbj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0fVxyXG48L3AtYXV0b0NvbXBsZXRlPlxyXG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWktYnVzaW5lc3MvYXNzZXRQaWNrZXIvc3JjL2Fzc2V0LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2Fzc2V0UGlja2VyL3NyYy9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBdUN6RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBdUIzRCxZQUNrQixJQUFnQixFQUMxQixnQkFBa0MsRUFDeEIscUJBQTRDO1FBRTdELEtBQUssRUFBRSxDQUFDO1FBSlMsU0FBSSxH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WUFBWSxtSUNsRXhCLDAvQkE0QkEsOFJEa0NXLG1CQUFtQix5VEFBRSxrQkFBa0I7OzRGQUdyQyxvQkFBb0I7a0JBM0JoQyxTQUFTO2lDQUNHLElBQUksWUFDTixnR0FBZ0csV0FzQmpHLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUM7a0pBR2YsZUFBZTtzQkFBdkMsU0FBUzt1QkFBQyxZQUFZO2dCQW9CYix1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q29tcG9uZW50LFxyXG5cdERlc3Ryb3lSZWYsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRpbmplY3QsXHJcblx0aW5wdXQsXHJcblx0c2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSwgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnYXJpbC90aGVtZS9sYXlvdXQnO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQsIFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICdhcmlsL3VpL2xpYic7XHJcblxyXG5pbXBvcnQge1xyXG5cdEFzc2V0QWdncmVnYXRlLFxyXG5cdEF0dHJpYnV0ZUVsZW1lbnQsXHJcblx0Q2FjaGVTZWFyY2hSZXF1ZXN0RFRPLFxyXG5cdERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSxcclxuXHRTdWdnZXN0aW9uc0RUTyxcclxuXHRTdWdnZXN0aW9uc0dyb3VwRFRPXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcic7XHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLWFzc2V0LXBpY2tlcltuZ01vZGVsXSwgYXJpbC1hc3NldC1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLWFzc2V0LXBpY2tlcltmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZXM6IFtcclxuXHRcdGBcclxuXHRcdFx0OjpuZy1kZWVwIC5wLWF1dG9jb21wbGV0ZS1tdWx0aXBsZS1jb250YWluZXIge1xyXG5cdFx0XHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdFx0XHRtYXgtaGVpZ2h0OiA1MHB4O1xyXG5cdFx0XHRcdG92ZXJmbG93LXk6IGF1dG87XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0OjpuZy1kZWVwIC5wLWF1dG9jb21wbGV0ZS10b2tlbiB7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLWlucHV0LXRva2VuIHtcclxuXHRcdFx0XHRmbGV4OiAxO1xyXG5cdFx0XHRcdG1pbi13aWR0aDogMTUwcHg7XHJcblx0XHRcdH1cclxuXHRcdGBcclxuXHRdLFxyXG5cdGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBdXRvQ29tcGxldGVNb2R1bGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2V0UGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmITogQXV0b0NvbXBsZXRlO1xyXG5cdGFzc2V0Q29kZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbD4obnVsbCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXMgfCBudWxsPihudWxsKTtcclxuXHJcblx0cGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdBcmFtYS4uLicpO1xyXG5cdGZvcmNlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHNob3dDbGVhciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRvcHRpb25WYWx1ZSA9IGlucHV0PGtleW9mIFN1Z2dlc3Rpb25zRFRPIHwgbnVsbD4obnVsbCk7XHJcblx0YXBwZW5kVG8gPSBpbnB1dDxzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGw+KCdib2R5Jyk7XHJcblx0bXFsID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdHNob3dPbmx5QXNzZXROdW1iZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0ZW5hYmxlQXV0b1NlYXJjaE9uSW5pdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1VwZGF0ZU1vZGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zITogU3VnZ2VzdGlvbnNHcm91cERUT1tdO1xyXG5cdHNlbGVjdGlvbkRlZmluaXRpb25zITogRGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlO1xyXG5cdGNhY2hlU2VhcmNoUmVxdWVzdCQgPSBuZXcgU3ViamVjdDxDYWNoZVNlYXJjaFJlcXVlc3REVE8+KCk7XHJcblx0ZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHRwcml2YXRlIHVwZGF0ZU1vZGVRdWVyeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblx0QE91dHB1dCgpIHNlbGVjdGVkRGVmaW5pdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8QXNzZXRBZ2dyZWdhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldEFnZ3JlZ2F0ZT4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0aW9uR3JvdXBTZXJ2aWNlOiBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKCk7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zKSB7XHJcblx0XHRcdFx0dGhpcy5yZWZyZXNoRmlsdGVyZWRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuY2FjaGVTZWFyY2hSZXF1ZXN0JFxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHBheWxvYWQpID0+XHJcblx0XHRcdFx0XHR0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9DT05GSUdTLmdldEV4dGVybmFsQXBwRW5kcG9pbnQoQXBwcy5NTkcpICsgJy9tYXN0ZXItZGF0YS9jYWNoZS1zZWFyY2gnLCBwYXlsb2FkKVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChzZWxlY3Rpb25Hcm91cCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMgPSBzZWxlY3Rpb25Hcm91cDtcclxuXHRcdFx0XHR0aGlzLnJlZnJlc2hGaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zKCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdC8vIElmIHRoZSBmb3JtIGNvbnRyb2wncyB2YWx1ZSBpcyBhIHN0cmluZywgcGVyZm9ybSBhIGNhY2hlIHNlYXJjaCB0byByZXRyaWV2ZSB0aGUgSUQuXHJcblx0XHRjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWU7XHJcblx0XHRpZiAodGhpcy5lbmFibGVBdXRvU2VhcmNoT25Jbml0KCkgfHwgKGN1cnJlbnRWYWx1ZSAmJiB0eXBlb2YgY3VycmVudFZhbHVlID09PSAnc3RyaW5nJykpIHtcclxuXHRcdFx0XHRjb25zdCBzZWFyY2hRdWVyeSA9IHR5cGVvZiBjdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnID8gY3VycmVudFZhbHVlIDogY3VycmVudFZhbHVlPy50ZXh0O1xyXG5cdFx0XHRcdGlmIChzZWFyY2hRdWVyeSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSBzZWFyY2hRdWVyeTtcclxuXHRcdFx0XHRcdHRoaXMuc2VhcmNoKHsgcXVlcnk6IHNlYXJjaFF1ZXJ5IH0sIHRydWUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBSZWFjdCB0byBwcm9ncmFtbWF0aWMgcGF0Y2hlcyAoY3JlYXRlRm9ybURhdGFPYmplY3QgLyBwYXRjaEFzc2V0UmVzcG9uc2VUb0Zvcm0pXHJcblx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdGZpbHRlcih2YWx1ZSA9PlxyXG5cdFx0XHRcdFx0dmFsdWUgJiZcclxuXHRcdFx0XHRcdHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuXHRcdFx0XHRcdCd0ZXh0JyBpbiB2YWx1ZSAmJlxyXG5cdFx0XHRcdFx0ISgnYXR0cmlidXRlcycgaW4gdmFsdWUpXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc1VwZGF0ZU1vZGUoKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSB2YWx1ZS50ZXh0O1xyXG5cdFx0XHRcdFx0dGhpcy5zZWFyY2goeyBxdWVyeTogdmFsdWUudGV4dCB9LCB0cnVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXSA9IFtdO1xyXG5cclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHRcdGNvbnN0IGdyb3VwRGF0YTogU3VnZ2VzdGlvbnNHcm91cERUTyA9IHtcclxuXHRcdFx0XHR0ZXh0OiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0/LnJlc3VsdFswXT8uYXNzZXRzWzBdPy5hc3NldERlZmluaXRpb25OYW1lLFxyXG5cdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdGl0ZW1zOiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0ucmVzdWx0Lm1hcChcclxuXHRcdFx0XHRcdChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT5cclxuXHRcdFx0XHRcdFx0KHtcclxuXHRcdFx0XHRcdFx0XHRrZXk6IGl0ZW0uaWQsXHJcblx0XHRcdFx0XHRcdFx0dGV4dDogdGhpcy5nZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoaXRlbS5hdHRyaWJ1dGVzKSxcclxuXHRcdFx0XHRcdFx0XHRhc3NldE51bWJlcjogdGhpcy5nZXRBc3NldE51bWJlclZhbHVlKGl0ZW0uYXR0cmlidXRlcyksXHJcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlczogaXRlbS5hdHRyaWJ1dGVzLFxyXG5cdFx0XHRcdFx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGU6IGl0ZW0uYXNzZXREZWZpbml0aW9uQ29kZVxyXG5cdFx0XHRcdFx0XHR9KSBhcyBTdWdnZXN0aW9uc0RUT1xyXG5cdFx0XHRcdClcclxuXHRcdFx0fTtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goZ3JvdXBEYXRhKTtcclxuXHJcblx0XHRcdC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgaXMgcGF0Y2hlZCBpbiB1cGRhdGUgbW9kZSBhbmQgdGhlcmUgaXMgZ3JvdXAgZGF0YSwgc2VsZWN0IHRoZSBtYXRjaGluZyBpdGVtXHJcblx0XHRcdGlmICh0aGlzLmlzVXBkYXRlTW9kZSgpICYmIGdyb3VwRGF0YS5pdGVtcy5sZW5ndGggPiAwICYmICF0aGlzLm11bHRpcGxlKCkpIHtcclxuXHRcdFx0XHRjb25zdCBtYXRjaGVkSXRlbSA9XHJcblx0XHRcdFx0XHRncm91cERhdGEuaXRlbXMubGVuZ3RoID09PSAxXHJcblx0XHRcdFx0XHRcdD8gZ3JvdXBEYXRhLml0ZW1zWzBdXHJcblx0XHRcdFx0XHRcdDogZ3JvdXBEYXRhLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYXNzZXROdW1iZXIgPT09IHRoaXMudXBkYXRlTW9kZVF1ZXJ5KTtcclxuXHRcdFx0XHRpZiAobWF0Y2hlZEl0ZW0pIHtcclxuXHRcdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShtYXRjaGVkSXRlbSk7XHJcblx0XHRcdFx0XHR0aGlzLmlzVXBkYXRlTW9kZS5zZXQoZmFsc2UpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVNb2RlUXVlcnkgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJlZFNlbGVjdGlvbkl0ZW1zID0gbmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYuZ2V0T3B0aW9uVmFsdWUgPSB0aGlzLmdldE9wdGlvblZhbHVlLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRnZXRPcHRpb25WYWx1ZShvcHRpb246IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvblZhbHVlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG9wdGlvbjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0cmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob3B0aW9uLCB0aGlzLm9wdGlvblZhbHVlKCkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBvcHRpb247XHJcblx0fVxyXG5cclxuXHRvbk5nTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGVkVmFsdWUgPSB0aGlzLnZhbGlkYXRlSW5wdXQodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsaWRhdGVkVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3RleHQnKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXmEtekEtWsSfw7zFn8Sxw7bDp8Sew5zFnsSww5bDh1xcc10vZywgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0c2VhcmNoKGV2ZW50OiBhbnksIHNraXBNcWwgPSBmYWxzZSkge1xyXG5cdFx0aWYgKCFldmVudD8ucXVlcnkgfHwgdHlwZW9mIGV2ZW50LnF1ZXJ5ICE9PSAnc3RyaW5nJykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHF1ZXJ5ID0gdGhpcy52YWxpZGF0ZUlucHV0KGV2ZW50LnF1ZXJ5KTtcclxuXHRcdGlmICghcXVlcnk/LnRyaW0oKSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQ6IENhY2hlU2VhcmNoUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0c2VhcmNoVGV4dDogcXVlcnk/LnRyaW0oKSxcclxuXHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZXM6IEFycmF5LmlzQXJyYXkodGhpcy5hc3NldENvZGUoKSkgPyB0aGlzLmFzc2V0Q29kZSgpIDogKFt0aGlzLmFzc2V0Q29kZSgpXSBhcyBhbnkpLFxyXG5cdFx0XHRwYWdlcjoge1xyXG5cdFx0XHRcdHBhZ2VTaXplOiA1LFxyXG5cdFx0XHRcdHBhZ2VOdW1iZXI6IDFcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIXNraXBNcWwgJiYgdGhpcy5tcWwoKSkgcGF5bG9hZC5tcWwgPSB0aGlzLm1xbCgpO1xyXG5cclxuXHRcdHRoaXMuY2FjaGVTZWFyY2hSZXF1ZXN0JC5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0QXR0aXJpYnV0ZXNWYWx1ZURlc2NyKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBleGNsdWRlZEF0dHJpYnV0ZXMgPSBbJ0Fzc2V0SWQnLCAnQXNzZXREZWZpbml0aW9uTmFtZSddO1xyXG5cdFx0cmV0dXJuIGF0dHJpYnV0ZXNcclxuXHRcdFx0Py5maWx0ZXIoKGF0dHIpID0+ICFleGNsdWRlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0ci5hdHRyaWJ1dGU/LmF0dHJpYnV0ZUNvZGUpKVxyXG5cdFx0XHQ/Lm1hcCgoYXR0cikgPT4ge1xyXG5cdFx0XHRcdC8vIEhhbmRsZSBTRUxFQ1QgdHlwZSBhdHRyaWJ1dGVzIHVzaW5nIFNlbGVjdGlvbkdyb3VwU2VydmljZVxyXG5cdFx0XHRcdGlmIChhdHRyLmF0dHJpYnV0ZT8uYXR0cmlidXRlVHlwZSA9PT0gJ1NFTEVDVCcgJiYgYXR0ci5hdHRyaWJ1dGU/LnNlbGVjdE9wdGlvbikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRGlzcGxheShhdHRyLmF0dHJpYnV0ZS5zZWxlY3RPcHRpb24sIGF0dHIudmFsdWUgYXMgc3RyaW5nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBhdHRyLnZhbHVlRGVzYyA/IGF0dHIudmFsdWVEZXNjIDogYXR0ci52YWx1ZTtcclxuXHRcdFx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5qb2luKCcgLSAnKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBnZXRBc3NldE51bWJlclZhbHVlKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBhc3NldE51bWJlckF0dHIgPSBhdHRyaWJ1dGVzPy5maW5kKChhdHRyKSA9PiBhdHRyLmF0dHJpYnV0ZT8uYXR0cmlidXRlQ29kZSA9PT0gJ0Fzc2V0TnVtYmVyJyk7XHJcblx0XHRpZiAoIWFzc2V0TnVtYmVyQXR0cikgcmV0dXJuICcnO1xyXG5cdFx0cmV0dXJuIFN0cmluZyhhc3NldE51bWJlckF0dHIudmFsdWVEZXNjIHx8IGFzc2V0TnVtYmVyQXR0ci52YWx1ZSB8fCAnJyk7XHJcblx0fVxyXG5cdHByaXZhdGUgZ2V0U2VsZWN0aW9uRGlzcGxheShncm91cE5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBrZXkgPSBgJHtncm91cE5hbWV9fkFMTGA7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2tleV07XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5mZXRjaEVudW0oZ3JvdXBOYW1lLCAnQUxMJyk7XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtID0gc2VsZWN0aW9uR3JvdXAuc2VsZWN0aW9uSXRlbXM/LmZpbmQoKHQpID0+IHQuc2VsZWN0aW9uS2V5ID09PSB2YWx1ZSkgYXMge1xyXG5cdFx0XHRzZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/OiB7IFtsYW5nOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHRcdFx0c2VsZWN0aW9uRGlzcGxheT86IHN0cmluZztcclxuXHRcdH07XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSByZXR1cm4gdmFsdWU7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPy5bY3VycmVudExhbmddID8/IHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uRGlzcGxheSA/PyB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdHRyaWdnZXJTZWxlY3RlZEV2ZW50cyhldmVudDogYW55KSB7XHJcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW1zOiBBc3NldEFnZ3JlZ2F0ZVtdID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykubWFwKChrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25EZWZpbml0aW9uc1trZXldLnJlc3VsdC5maW5kKChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT4gaXRlbS5pZCA9PT0gZXZlbnQ/LnZhbHVlPy5rZXkpO1xyXG5cdFx0fSkgYXMgQXNzZXRBZ2dyZWdhdGVbXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zWzBdO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGVkRXZlbnQgPSB7XHJcblx0XHRcdC4uLnNlbGVjdGVkSXRlbSxcclxuXHRcdFx0a2V5OiBzZWxlY3RlZEl0ZW0/LmlkLFxyXG5cdFx0XHR0ZXh0OiBzZWxlY3RlZEl0ZW0/LmFzc2V0RGVmaW5pdGlvbk5hbWUsXHJcblx0XHRcdGF0dHJpYnV0ZXM6IHNlbGVjdGVkSXRlbT8uYXR0cmlidXRlcyxcclxuXHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZTogc2VsZWN0ZWRJdGVtPy5hc3NldERlZmluaXRpb25Db2RlXHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWREZWZpbml0aW9uRXZlbnQuZW1pdChzZWxlY3RlZEV2ZW50KTtcclxuXHR9XHJcbn1cclxuIiwiPHAtYXV0b0NvbXBsZXRlXHJcblx0b3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuXHRbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWUoKSFcIlxyXG5cdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuXHRbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcblx0W2dyb3VwXT1cInRydWVcIlxyXG5cdFtmb3JjZVNlbGVjdGlvbl09XCJmb3JjZVNlbGVjdGlvbigpXCJcclxuXHRbZGVsYXldPVwiNzAwXCJcclxuXHRbbWluTGVuZ3RoXT1cIjNcIlxyXG5cdFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zXCJcclxuXHQoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcblx0W2F1dG9IaWdobGlnaHRdPVwidHJ1ZVwiXHJcblx0W3R5cGVdPVwidHlwZSgpIVwiXHJcblx0KG5nTW9kZWxDaGFuZ2UpPVwib25OZ01vZGVsQ2hhbmdlKCRldmVudClcIlxyXG5cdFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKClcIlxyXG5cdFtlbXB0eU1lc3NhZ2VdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuXHQob25TZWxlY3QpPVwidHJpZ2dlclNlbGVjdGVkRXZlbnRzKCRldmVudClcIlxyXG5cdFthcHBlbmRUb109XCJhcHBlbmRUbygpXCI+XHJcblx0PG5nLXRlbXBsYXRlIGxldC1ncm91cCBwVGVtcGxhdGU9XCJncm91cFwiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57eyBncm91cC50ZXh0IH19PC9zcGFuPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblx0QGlmIChzaG93T25seUFzc2V0TnVtYmVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCI+XHJcblx0XHRcdDxzcGFuPnt7IHZhbHVlPy5hc3NldE51bWJlciB8fCB2YWx1ZT8udGV4dCB9fTwvc3Bhbj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0fVxyXG48L3AtYXV0b0NvbXBsZXRlPlxyXG4iXX0=
@@ -48,14 +48,14 @@ export class DetailedOverlayPanelComponent {
48
48
  this.loading = false;
49
49
  }
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailedOverlayPanelComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: DetailedOverlayPanelComponent, isStandalone: true, selector: "aril-detailed-oveylay-panel", inputs: { assetId: { classPropertyName: "assetId", publicName: "assetId", isSignal: true, isRequired: true, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], ngImport: i0, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: ValueComponent, selector: "aril-value", inputs: ["model", "type", "format", "isClickable", "groupName", "parentSelectionKey", "isTextClamp", "textClampCharacters", "style", "copyable", "shouldShowCopyForClampedText", "arrayTypeDisplayName", "arrayTypeMaxBadgeCount", "bigDecimalRoundingMode", "bigDecimalScale"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailedOverlayPanelComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DetailedOverlayPanelComponent, isStandalone: true, selector: "aril-detailed-oveylay-panel", inputs: { assetId: { classPropertyName: "assetId", publicName: "assetId", isSignal: true, isRequired: true, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], ngImport: i0, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: ValueComponent, selector: "aril-value", inputs: ["model", "type", "format", "isClickable", "groupName", "parentSelectionKey", "isTextClamp", "textClampCharacters", "style", "copyable", "shouldShowCopyForClampedText", "arrayTypeDisplayName", "arrayTypeMaxBadgeCount", "bigDecimalRoundingMode", "bigDecimalScale"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailedOverlayPanelComponent, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailedOverlayPanelComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'aril-detailed-oveylay-panel', standalone: true, imports: [TooltipModule, ProgressSpinnerModule, ValueComponent, TooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"] }]
57
57
  }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { tooltip: [{
58
58
  type: ViewChild,
59
59
  args: [Tooltip]
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQtb3ZlcmxheS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2RldGFpbGVkLW92ZXJsYXktcGFuZWwvc3JjL2RldGFpbGVkLW92ZXJsYXktcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy9kZXRhaWxlZC1vdmVybGF5LXBhbmVsL3NyYy9kZXRhaWxlZC1vdmVybGF5LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSS9DOztHQUVHO0FBU0gsTUFBTSxPQUFPLDZCQUE2QjtJQVl6QyxZQUE2QixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBWDdDLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQU8sR0FBRyxLQUFLLENBQXNDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELGNBQVMsR0FBbUIsRUFBb0IsQ0FBQztRQUNqRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxtQkFBYyxHQUEwQyxFQUFFLENBQUM7SUFJWCxDQUFDO0lBRWpELEtBQUssQ0FBQyxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDaEQsT0FBTztRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixHQUFHLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQy9FLENBQUM7WUFFRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNGLENBQUM7OEdBeENXLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHNvQkFVOUIsT0FBTyxnRENsQ25CLDg0REFvREEsMlBEakNXLGFBQWEscVhBQUUscUJBQXFCLHlNQUFFLGNBQWM7OzJGQUtsRCw2QkFBNkI7a0JBUnpDLFNBQVM7K0JBQ0MsNkJBQTZCLGNBQzNCLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLG1CQUc3RCx1QkFBdUIsQ0FBQyxNQUFNOytFQVkzQixPQUFPO3NCQUExQixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Byb2dyZXNzc3Bpbm5lcic7XHJcbmltcG9ydCB7IFRvb2x0aXAsIFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdmFsdWUnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXRBZ2dyZWdhdGUsIEF0dHJpYnV0ZUVsZW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdG8gZGlzcGxheSBkZXRhaWxlZCB0b29sdGlwcyB3aXRoIGNvbmZpZ3VyYWJsZSBwb3NpdGlvbiwgZXZlbnQgdHJpZ2dlcnMsIGFuZCBkZWxheXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FyaWwtZGV0YWlsZWQtb3ZleWxheS1wYW5lbCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbVG9vbHRpcE1vZHVsZSwgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBWYWx1ZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2RldGFpbGVkLW92ZXJsYXktcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9kZXRhaWxlZC1vdmVybGF5LXBhbmVsLmNvbXBvbmVudC5zY3NzJyxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV0YWlsZWRPdmVybGF5UGFuZWxDb21wb25lbnQge1xyXG5cdGFzc2V0SWQgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcblx0c3R5bGUgPSBpbnB1dDxhbnk+KHt9KTtcclxuXHRzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0Y29sdW1ucyA9IGlucHV0PHsgZmllbGQ6IHN0cmluZzsgaGVhZGVyOiBzdHJpbmcgfVtdPihbXSk7XHJcblx0dGFibGVEYXRhOiBBc3NldEFnZ3JlZ2F0ZSA9IHt9IGFzIEFzc2V0QWdncmVnYXRlO1xyXG5cdGxvYWRpbmcgPSBmYWxzZTtcclxuXHRpbmZvQXR0cmlidXRlczogQXR0cmlidXRlRWxlbWVudFtdID0gW107XHJcblx0dGFibGVEYXRhQ2FjaGU6IHsgW2Fzc2V0SWQ6IHN0cmluZ106IEFzc2V0QWdncmVnYXRlIH0gPSB7fTtcclxuXHJcblx0QFZpZXdDaGlsZChUb29sdGlwKSB0b29sdGlwITogVG9vbHRpcDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuXHRhc3luYyBvbkhvdmVyKCkge1xyXG5cdFx0aWYgKHRoaXMudGFibGVEYXRhQ2FjaGVbdGhpcy5hc3NldElkKCldKSB7XHJcblx0XHRcdHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGFDYWNoZVt0aGlzLmFzc2V0SWQoKV07XHJcblx0XHRcdHRoaXMuaW5mb0F0dHJpYnV0ZXMgPSB0aGlzLnRhYmxlRGF0YS5hdHRyaWJ1dGVzO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXi9dK1xcL3YxJC8sIGAvaG9zdC92MWApO1xyXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0PEFzc2V0QWdncmVnYXRlPihgJHtob3N0QXBpfS9tYXN0ZXItZGF0YS8ke3RoaXMuYXNzZXRJZCgpfS9ob3ZlcmApXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRpZiAocmVzdWx0KSB7XHJcblx0XHRcdFx0dGhpcy50YWJsZURhdGFDYWNoZVt0aGlzLmFzc2V0SWQoKV0gPSByZXN1bHQ7XHJcblx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSByZXN1bHQ7XHJcblx0XHRcdFx0dGhpcy5pbmZvQXR0cmlidXRlcyA9IHJlc3VsdC5hdHRyaWJ1dGVzO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRpZiAodGhpcy50b29sdGlwLmFjdGl2ZSkge1xyXG5cdFx0XHRcdHRoaXMudG9vbHRpcC5zaG93KCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGFzc2V0IGRldGFpbDonLCBlcnJvcik7XHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8c3BhblxyXG5cdCNzcGFuUmVmXHJcblx0KG1vdXNlZW50ZXIpPVwib25Ib3ZlcigpXCJcclxuXHRbcFRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnRcIlxyXG5cdFthdXRvSGlkZV09XCJmYWxzZVwiXHJcblx0dG9vbHRpcFN0eWxlQ2xhc3M9XCJkZXRhaWxlZC1vdmVybGF5LXRvb2x0aXBcIj5cclxuXHQ8bmctY29udGVudCAvPlxyXG48L3NwYW4+XHJcblxyXG48bmctdGVtcGxhdGUgI3Rvb2x0aXBDb250ZW50PlxyXG5cdEBpZiAobG9hZGluZykge1xyXG5cdFx0PHAtcHJvZ3Jlc3NTcGlubmVyIHN0eWxlQ2xhc3M9XCJ3LTRyZW0gaC00cmVtXCIgc3Ryb2tlV2lkdGg9XCI4XCIgLz5cclxuXHR9IEBlbHNlIHtcclxuXHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWItMlwiPlxyXG5cdFx0XHQ8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyB0YWJsZURhdGEuYXNzZXREZWZpbml0aW9uTmFtZSB9fSAvIHt7IHRhYmxlRGF0YS5hc3NldERlZmluaXRpb25Db2RlIH19PC9wPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8dGFibGUgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuXHRcdFx0QGZvciAoaW5mb0F0dHJpYnV0ZSBvZiBpbmZvQXR0cmlidXRlczsgdHJhY2sgaW5mb0F0dHJpYnV0ZSkge1xyXG5cdFx0XHRcdDx0cj5cclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0e3sgaW5mb0F0dHJpYnV0ZS5hdHRyaWJ1dGUuYXR0cmlidXRlTmFtZSB9fVxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJmb250LWJvbGQgbS0wXCI+XHJcblx0XHRcdFx0XHRcdFx0QHN3aXRjaCAoaW5mb0F0dHJpYnV0ZS5hdHRyaWJ1dGUuYXR0cmlidXRlVHlwZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0QGNhc2UgKCdEQVRFJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8YXJpbC12YWx1ZSB0eXBlPVwiZGF0ZVwiIFttb2RlbF09XCJpbmZvQXR0cmlidXRlPy52YWx1ZVwiIGZvcm1hdD1cImRheVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRAY2FzZSAoJ0RBVEVfVElNRScpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0PGFyaWwtdmFsdWUgdHlwZT1cImRhdGVcIiBbbW9kZWxdPVwiaW5mb0F0dHJpYnV0ZT8udmFsdWVcIiBmb3JtYXQ9XCJzZWNvbmRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0QGNhc2UgKCdCT09MRUFOJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGluZm9BdHRyaWJ1dGUudmFsdWUgPT09IHRydWUgfHwgaW5mb0F0dHJpYnV0ZS52YWx1ZSA9PT0gJ3RydWUnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGFyaWwtdmFsdWUgdHlwZT1cInRleHRcIiBtb2RlbD1cIlZhclwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcmlsLXZhbHVlIHR5cGU9XCJ0ZXh0XCIgbW9kZWw9XCJZb2tcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRAZGVmYXVsdCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxhcmlsLXZhbHVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFttb2RlbF09XCJpbmZvQXR0cmlidXRlLnZhbHVlRGVzYyA/IGluZm9BdHRyaWJ1dGUudmFsdWVEZXNjIDogaW5mb0F0dHJpYnV0ZS52YWx1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3Nob3VsZFNob3dDb3B5Rm9yQ2xhbXBlZFRleHRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8L3A+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdDwvdHI+XHJcblx0XHRcdH1cclxuXHRcdDwvdGFibGU+XHJcblx0fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQtb3ZlcmxheS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2RldGFpbGVkLW92ZXJsYXktcGFuZWwvc3JjL2RldGFpbGVkLW92ZXJsYXktcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy9kZXRhaWxlZC1vdmVybGF5LXBhbmVsL3NyYy9kZXRhaWxlZC1vdmVybGF5LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSS9DOztHQUVHO0FBU0gsTUFBTSxPQUFPLDZCQUE2QjtJQVl6QyxZQUE2QixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBWDdDLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQU8sR0FBRyxLQUFLLENBQXNDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELGNBQVMsR0FBbUIsRUFBb0IsQ0FBQztRQUNqRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxtQkFBYyxHQUEwQyxFQUFFLENBQUM7SUFJWCxDQUFDO0lBRWpELEtBQUssQ0FBQyxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDaEQsT0FBTztRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixHQUFHLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQy9FLENBQUM7WUFFRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNGLENBQUM7K0dBeENXLDZCQUE2QjttR0FBN0IsNkJBQTZCLHNvQkFVOUIsT0FBTyxnRENsQ25CLDg0REFvREEsMlBEakNXLGFBQWEscVhBQUUscUJBQXFCLHlNQUFFLGNBQWM7OzRGQUtsRCw2QkFBNkI7a0JBUnpDLFNBQVM7K0JBQ0MsNkJBQTZCLGNBQzNCLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLG1CQUc3RCx1QkFBdUIsQ0FBQyxNQUFNOytFQVkzQixPQUFPO3NCQUExQixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Byb2dyZXNzc3Bpbm5lcic7XHJcbmltcG9ydCB7IFRvb2x0aXAsIFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdmFsdWUnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXRBZ2dyZWdhdGUsIEF0dHJpYnV0ZUVsZW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdG8gZGlzcGxheSBkZXRhaWxlZCB0b29sdGlwcyB3aXRoIGNvbmZpZ3VyYWJsZSBwb3NpdGlvbiwgZXZlbnQgdHJpZ2dlcnMsIGFuZCBkZWxheXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FyaWwtZGV0YWlsZWQtb3ZleWxheS1wYW5lbCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbVG9vbHRpcE1vZHVsZSwgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBWYWx1ZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2RldGFpbGVkLW92ZXJsYXktcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9kZXRhaWxlZC1vdmVybGF5LXBhbmVsLmNvbXBvbmVudC5zY3NzJyxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV0YWlsZWRPdmVybGF5UGFuZWxDb21wb25lbnQge1xyXG5cdGFzc2V0SWQgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcblx0c3R5bGUgPSBpbnB1dDxhbnk+KHt9KTtcclxuXHRzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0Y29sdW1ucyA9IGlucHV0PHsgZmllbGQ6IHN0cmluZzsgaGVhZGVyOiBzdHJpbmcgfVtdPihbXSk7XHJcblx0dGFibGVEYXRhOiBBc3NldEFnZ3JlZ2F0ZSA9IHt9IGFzIEFzc2V0QWdncmVnYXRlO1xyXG5cdGxvYWRpbmcgPSBmYWxzZTtcclxuXHRpbmZvQXR0cmlidXRlczogQXR0cmlidXRlRWxlbWVudFtdID0gW107XHJcblx0dGFibGVEYXRhQ2FjaGU6IHsgW2Fzc2V0SWQ6IHN0cmluZ106IEFzc2V0QWdncmVnYXRlIH0gPSB7fTtcclxuXHJcblx0QFZpZXdDaGlsZChUb29sdGlwKSB0b29sdGlwITogVG9vbHRpcDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuXHRhc3luYyBvbkhvdmVyKCkge1xyXG5cdFx0aWYgKHRoaXMudGFibGVEYXRhQ2FjaGVbdGhpcy5hc3NldElkKCldKSB7XHJcblx0XHRcdHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGFDYWNoZVt0aGlzLmFzc2V0SWQoKV07XHJcblx0XHRcdHRoaXMuaW5mb0F0dHJpYnV0ZXMgPSB0aGlzLnRhYmxlRGF0YS5hdHRyaWJ1dGVzO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXi9dK1xcL3YxJC8sIGAvaG9zdC92MWApO1xyXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0PEFzc2V0QWdncmVnYXRlPihgJHtob3N0QXBpfS9tYXN0ZXItZGF0YS8ke3RoaXMuYXNzZXRJZCgpfS9ob3ZlcmApXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRpZiAocmVzdWx0KSB7XHJcblx0XHRcdFx0dGhpcy50YWJsZURhdGFDYWNoZVt0aGlzLmFzc2V0SWQoKV0gPSByZXN1bHQ7XHJcblx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSByZXN1bHQ7XHJcblx0XHRcdFx0dGhpcy5pbmZvQXR0cmlidXRlcyA9IHJlc3VsdC5hdHRyaWJ1dGVzO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRpZiAodGhpcy50b29sdGlwLmFjdGl2ZSkge1xyXG5cdFx0XHRcdHRoaXMudG9vbHRpcC5zaG93KCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGFzc2V0IGRldGFpbDonLCBlcnJvcik7XHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8c3BhblxyXG5cdCNzcGFuUmVmXHJcblx0KG1vdXNlZW50ZXIpPVwib25Ib3ZlcigpXCJcclxuXHRbcFRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnRcIlxyXG5cdFthdXRvSGlkZV09XCJmYWxzZVwiXHJcblx0dG9vbHRpcFN0eWxlQ2xhc3M9XCJkZXRhaWxlZC1vdmVybGF5LXRvb2x0aXBcIj5cclxuXHQ8bmctY29udGVudCAvPlxyXG48L3NwYW4+XHJcblxyXG48bmctdGVtcGxhdGUgI3Rvb2x0aXBDb250ZW50PlxyXG5cdEBpZiAobG9hZGluZykge1xyXG5cdFx0PHAtcHJvZ3Jlc3NTcGlubmVyIHN0eWxlQ2xhc3M9XCJ3LTRyZW0gaC00cmVtXCIgc3Ryb2tlV2lkdGg9XCI4XCIgLz5cclxuXHR9IEBlbHNlIHtcclxuXHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWItMlwiPlxyXG5cdFx0XHQ8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyB0YWJsZURhdGEuYXNzZXREZWZpbml0aW9uTmFtZSB9fSAvIHt7IHRhYmxlRGF0YS5hc3NldERlZmluaXRpb25Db2RlIH19PC9wPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8dGFibGUgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuXHRcdFx0QGZvciAoaW5mb0F0dHJpYnV0ZSBvZiBpbmZvQXR0cmlidXRlczsgdHJhY2sgaW5mb0F0dHJpYnV0ZSkge1xyXG5cdFx0XHRcdDx0cj5cclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0e3sgaW5mb0F0dHJpYnV0ZS5hdHRyaWJ1dGUuYXR0cmlidXRlTmFtZSB9fVxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJmb250LWJvbGQgbS0wXCI+XHJcblx0XHRcdFx0XHRcdFx0QHN3aXRjaCAoaW5mb0F0dHJpYnV0ZS5hdHRyaWJ1dGUuYXR0cmlidXRlVHlwZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0QGNhc2UgKCdEQVRFJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8YXJpbC12YWx1ZSB0eXBlPVwiZGF0ZVwiIFttb2RlbF09XCJpbmZvQXR0cmlidXRlPy52YWx1ZVwiIGZvcm1hdD1cImRheVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRAY2FzZSAoJ0RBVEVfVElNRScpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0PGFyaWwtdmFsdWUgdHlwZT1cImRhdGVcIiBbbW9kZWxdPVwiaW5mb0F0dHJpYnV0ZT8udmFsdWVcIiBmb3JtYXQ9XCJzZWNvbmRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0QGNhc2UgKCdCT09MRUFOJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGluZm9BdHRyaWJ1dGUudmFsdWUgPT09IHRydWUgfHwgaW5mb0F0dHJpYnV0ZS52YWx1ZSA9PT0gJ3RydWUnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGFyaWwtdmFsdWUgdHlwZT1cInRleHRcIiBtb2RlbD1cIlZhclwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcmlsLXZhbHVlIHR5cGU9XCJ0ZXh0XCIgbW9kZWw9XCJZb2tcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRAZGVmYXVsdCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxhcmlsLXZhbHVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFttb2RlbF09XCJpbmZvQXR0cmlidXRlLnZhbHVlRGVzYyA/IGluZm9BdHRyaWJ1dGUudmFsdWVEZXNjIDogaW5mb0F0dHJpYnV0ZS52YWx1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3Nob3VsZFNob3dDb3B5Rm9yQ2xhbXBlZFRleHRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8L3A+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdDwvdHI+XHJcblx0XHRcdH1cclxuXHRcdDwvdGFibGU+XHJcblx0fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=