@vef-framework/starter 1.0.135 → 2.0.2

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 (600) hide show
  1. package/README +15 -0
  2. package/dist/cjs/components/access-denied/access-denied-icon.cjs +210 -0
  3. package/dist/cjs/components/access-denied/index.cjs +47 -0
  4. package/dist/cjs/components/app/index.cjs +47 -0
  5. package/dist/cjs/components/app/props.cjs +3 -0
  6. package/dist/cjs/components/base-layout/index.cjs +45 -0
  7. package/dist/cjs/components/base-layout/props.cjs +3 -0
  8. package/dist/cjs/components/base-layout/styles.cjs +57 -0
  9. package/dist/cjs/components/base-layout/use-base-layout.cjs +41 -0
  10. package/dist/cjs/components/crud/components/action-button-group.cjs +20 -0
  11. package/dist/cjs/components/crud/components/index.cjs +20 -0
  12. package/dist/cjs/components/crud/components/main.cjs +57 -0
  13. package/dist/cjs/components/crud/components/mutation-holder.cjs +40 -0
  14. package/dist/cjs/components/crud/components/operation-button-group.cjs +22 -0
  15. package/dist/cjs/components/crud/components/scene-form.cjs +84 -0
  16. package/dist/cjs/components/crud/components/selection-indicator.cjs +83 -0
  17. package/dist/cjs/components/crud/components/toolbar-actions.cjs +19 -0
  18. package/dist/cjs/components/crud/components/toolbar.cjs +38 -0
  19. package/dist/cjs/components/crud/event.cjs +12 -0
  20. package/dist/cjs/components/crud/helpers.cjs +26 -0
  21. package/dist/cjs/components/crud/hooks/index.cjs +14 -0
  22. package/dist/cjs/components/crud/hooks/use-query-observer.cjs +37 -0
  23. package/dist/cjs/components/crud/hooks/use-search-values.cjs +12 -0
  24. package/dist/cjs/components/crud/hooks/use-selected-rows.cjs +12 -0
  25. package/dist/cjs/components/crud/index.cjs +46 -0
  26. package/dist/cjs/components/crud/props.cjs +3 -0
  27. package/dist/cjs/components/crud/store.cjs +93 -0
  28. package/dist/cjs/components/crud/styles.cjs +34 -0
  29. package/dist/cjs/components/crud-page/index.cjs +19 -0
  30. package/dist/cjs/components/crud-page/props.cjs +3 -0
  31. package/dist/cjs/components/error/error-icon.cjs +179 -0
  32. package/dist/cjs/components/error/index.cjs +69 -0
  33. package/dist/cjs/components/flex-card/index.cjs +18 -0
  34. package/dist/cjs/components/flex-card/props.cjs +3 -0
  35. package/dist/cjs/components/flex-card/styles.cjs +26 -0
  36. package/dist/cjs/components/form-drawer/components/form-actions.cjs +38 -0
  37. package/dist/cjs/components/form-drawer/components/index.cjs +10 -0
  38. package/dist/cjs/components/form-drawer/index.cjs +112 -0
  39. package/dist/cjs/components/form-modal/components/form-actions.cjs +38 -0
  40. package/dist/cjs/components/form-modal/components/index.cjs +10 -0
  41. package/dist/cjs/components/form-modal/index.cjs +88 -0
  42. package/dist/cjs/components/index.cjs +45 -0
  43. package/dist/cjs/components/layout/components/footer.cjs +27 -0
  44. package/dist/cjs/components/layout/components/header/boy-icon.cjs +20 -0
  45. package/dist/cjs/components/layout/components/header/breadcrumb-navigation.cjs +90 -0
  46. package/dist/cjs/components/layout/components/header/color-scheme.cjs +40 -0
  47. package/dist/cjs/components/layout/components/header/fullscreen.cjs +23 -0
  48. package/dist/cjs/components/layout/components/header/girl-icon.cjs +21 -0
  49. package/dist/cjs/components/layout/components/header/index.cjs +88 -0
  50. package/dist/cjs/components/layout/components/header/menu-burger.cjs +24 -0
  51. package/dist/cjs/components/layout/components/header/menu-fold-left-icon.cjs +20 -0
  52. package/dist/cjs/components/layout/components/header/menu-unfold-left-icon.cjs +20 -0
  53. package/dist/cjs/components/layout/components/header/search.cjs +22 -0
  54. package/dist/cjs/components/layout/components/header/theme-config.cjs +23 -0
  55. package/dist/cjs/components/layout/components/header/user-avatar.cjs +86 -0
  56. package/dist/cjs/components/layout/components/honeycomb-pattern.cjs +39 -0
  57. package/dist/cjs/components/layout/components/index.cjs +20 -0
  58. package/dist/cjs/components/layout/components/logo.cjs +60 -0
  59. package/dist/cjs/components/layout/components/menu.cjs +95 -0
  60. package/dist/cjs/components/layout/components/search/index.cjs +79 -0
  61. package/dist/cjs/components/layout/components/search/keyboard-arrow-down-icon.cjs +15 -0
  62. package/dist/cjs/components/layout/components/search/keyboard-arrow-up-icon.cjs +15 -0
  63. package/dist/cjs/components/layout/components/search/keyboard-control-icon.cjs +15 -0
  64. package/dist/cjs/components/layout/components/search/keyboard-esc-icon.cjs +15 -0
  65. package/dist/cjs/components/layout/components/search/keyboard-help.cjs +46 -0
  66. package/dist/cjs/components/layout/components/search/keyboard-return-icon.cjs +15 -0
  67. package/dist/cjs/components/layout/components/search/keyboard-shift-icon.cjs +15 -0
  68. package/dist/cjs/components/layout/components/search/keyboard.cjs +32 -0
  69. package/dist/cjs/components/layout/components/search/letter-s-icon.cjs +15 -0
  70. package/dist/cjs/components/layout/components/search/search-result-item.cjs +69 -0
  71. package/dist/cjs/components/layout/components/search/search-result.cjs +135 -0
  72. package/dist/cjs/components/layout/components/sidebar.cjs +54 -0
  73. package/dist/cjs/components/layout/components/tabs/context-menu.cjs +96 -0
  74. package/dist/cjs/components/layout/components/tabs/index.cjs +40 -0
  75. package/dist/cjs/components/layout/components/tabs/main-content-maximum.cjs +23 -0
  76. package/dist/cjs/components/layout/components/tabs/reload.cjs +21 -0
  77. package/dist/cjs/components/layout/components/tabs/tab-item.cjs +84 -0
  78. package/dist/cjs/components/layout/components/tabs/tab-list.cjs +91 -0
  79. package/dist/cjs/components/layout/components/tabs/tabs-container.cjs +85 -0
  80. package/dist/cjs/components/layout/components/theme-config/color-scheme-switcher.cjs +49 -0
  81. package/dist/cjs/components/layout/components/theme-config/color-scheme.cjs +57 -0
  82. package/dist/cjs/components/layout/components/theme-config/config-item.cjs +27 -0
  83. package/dist/cjs/components/layout/components/theme-config/index.cjs +59 -0
  84. package/dist/cjs/components/layout/components/theme-config/menu-layout-card.cjs +75 -0
  85. package/dist/cjs/components/layout/components/theme-config/menu-layout.cjs +33 -0
  86. package/dist/cjs/components/layout/components/theme-config/operations.cjs +22 -0
  87. package/dist/cjs/components/layout/components/theme-config/theme-color-picker.cjs +33 -0
  88. package/dist/cjs/components/layout/components/theme-config/theme-colors.cjs +29 -0
  89. package/dist/cjs/components/layout/hooks/index.cjs +14 -0
  90. package/dist/cjs/components/layout/hooks/use-color-scheme-updater.cjs +72 -0
  91. package/dist/cjs/components/layout/hooks/use-menu-navigate.cjs +29 -0
  92. package/dist/cjs/components/layout/hooks/use-tab-navigate.cjs +39 -0
  93. package/dist/cjs/components/layout/index.cjs +81 -0
  94. package/dist/cjs/components/layout/props.cjs +3 -0
  95. package/dist/cjs/components/layout/store.cjs +23 -0
  96. package/dist/cjs/components/layout/styles.cjs +16 -0
  97. package/dist/cjs/components/login/icon-login.cjs +149 -0
  98. package/dist/cjs/components/login/index.cjs +162 -0
  99. package/dist/cjs/components/login/payload.cjs +3 -0
  100. package/dist/cjs/components/login/props.cjs +3 -0
  101. package/dist/cjs/components/login/styles.cjs +97 -0
  102. package/dist/cjs/components/login/welcome-messages.cjs +135 -0
  103. package/dist/cjs/components/logo-icon/index.cjs +22 -0
  104. package/dist/cjs/components/logo-icon/props.cjs +3 -0
  105. package/dist/cjs/components/n-progress/components/bar.cjs +53 -0
  106. package/dist/cjs/components/n-progress/components/container.cjs +25 -0
  107. package/dist/cjs/components/n-progress/components/index.cjs +12 -0
  108. package/dist/cjs/components/n-progress/event.cjs +10 -0
  109. package/dist/cjs/components/n-progress/index.cjs +34 -0
  110. package/dist/cjs/components/not-found/index.cjs +47 -0
  111. package/dist/cjs/components/not-found/not-found-icon.cjs +205 -0
  112. package/dist/cjs/components/page/index.cjs +58 -0
  113. package/dist/cjs/components/page/props.cjs +3 -0
  114. package/dist/cjs/components/page/scroll-content.cjs +65 -0
  115. package/dist/cjs/components/page/styles.cjs +86 -0
  116. package/dist/cjs/components/page/use-page-key.cjs +22 -0
  117. package/dist/cjs/components/page/viewport-context.cjs +19 -0
  118. package/dist/cjs/components/pro-search/components/advanced-search-toggler.cjs +23 -0
  119. package/dist/cjs/components/pro-search/components/advanced-search.cjs +30 -0
  120. package/dist/cjs/components/pro-search/components/index.cjs +14 -0
  121. package/dist/cjs/components/pro-search/components/search-actions.cjs +36 -0
  122. package/dist/cjs/components/pro-search/index.cjs +70 -0
  123. package/dist/cjs/components/pro-search/styles.cjs +65 -0
  124. package/dist/cjs/components/pro-table/components/index.cjs +17 -0
  125. package/dist/cjs/components/pro-table/components/operation-button-group.cjs +22 -0
  126. package/dist/cjs/components/pro-table/components/ref.cjs +24 -0
  127. package/dist/cjs/components/pro-table/components/table-subscriber.cjs +25 -0
  128. package/dist/cjs/components/pro-table/components/table-summary.cjs +15 -0
  129. package/dist/cjs/components/pro-table/components/table-title.cjs +15 -0
  130. package/dist/cjs/components/pro-table/components/table.cjs +132 -0
  131. package/dist/cjs/components/pro-table/context.cjs +15 -0
  132. package/dist/cjs/components/pro-table/event.cjs +12 -0
  133. package/dist/cjs/components/pro-table/hooks/index.cjs +12 -0
  134. package/dist/cjs/components/pro-table/hooks/use-row-selection.cjs +43 -0
  135. package/dist/cjs/components/pro-table/hooks/use-table-columns.cjs +60 -0
  136. package/dist/cjs/components/pro-table/index.cjs +53 -0
  137. package/dist/cjs/components/pro-table/store.cjs +40 -0
  138. package/dist/cjs/components/router-provider/context.cjs +15 -0
  139. package/dist/cjs/components/router-provider/index.cjs +29 -0
  140. package/dist/cjs/components/router-provider/props.cjs +3 -0
  141. package/dist/cjs/components/theme-config-provider/global-style.cjs +20 -0
  142. package/dist/cjs/components/theme-config-provider/index.cjs +19 -0
  143. package/dist/cjs/components/theme-config-provider/use-color-mode-effect.cjs +35 -0
  144. package/dist/cjs/components/theme-config-provider/use-theme-config.cjs +73 -0
  145. package/dist/cjs/constants/event.cjs +8 -0
  146. package/dist/cjs/constants/index.cjs +23 -0
  147. package/dist/cjs/constants/router.cjs +18 -0
  148. package/dist/cjs/constants/storage.cjs +10 -0
  149. package/dist/cjs/constants/symbols.cjs +10 -0
  150. package/dist/cjs/helpers/api.cjs +50 -0
  151. package/dist/cjs/helpers/app-version.cjs +227 -0
  152. package/dist/cjs/helpers/app.cjs +37 -0
  153. package/dist/cjs/helpers/auth.cjs +24 -0
  154. package/dist/cjs/helpers/event.cjs +24 -0
  155. package/dist/cjs/helpers/index.cjs +25 -0
  156. package/dist/cjs/helpers/query.cjs +27 -0
  157. package/dist/cjs/helpers/router.cjs +110 -0
  158. package/dist/cjs/hooks/index.cjs +10 -0
  159. package/dist/cjs/hooks/use-route-full-path.cjs +32 -0
  160. package/dist/cjs/index.cjs +83 -0
  161. package/dist/cjs/routes/access-denied.cjs +31 -0
  162. package/dist/cjs/routes/index.cjs +16 -0
  163. package/dist/cjs/routes/layout.cjs +140 -0
  164. package/dist/cjs/routes/login.cjs +41 -0
  165. package/dist/cjs/routes/root.cjs +35 -0
  166. package/dist/cjs/stores/app.cjs +25 -0
  167. package/dist/cjs/stores/index.cjs +14 -0
  168. package/dist/cjs/stores/tab.cjs +101 -0
  169. package/dist/cjs/stores/theme.cjs +32 -0
  170. package/dist/es/components/access-denied/access-denied-icon.js +206 -0
  171. package/dist/es/components/access-denied/index.js +43 -0
  172. package/dist/es/components/app/index.js +43 -0
  173. package/dist/es/components/app/props.js +1 -0
  174. package/dist/es/components/base-layout/index.js +41 -0
  175. package/dist/es/components/base-layout/props.js +1 -0
  176. package/dist/es/components/base-layout/styles.js +47 -0
  177. package/dist/es/components/base-layout/use-base-layout.js +37 -0
  178. package/dist/es/components/crud/components/action-button-group.js +16 -0
  179. package/dist/es/components/crud/components/index.js +7 -0
  180. package/dist/es/components/crud/components/main.js +53 -0
  181. package/dist/es/components/crud/components/mutation-holder.js +36 -0
  182. package/dist/es/components/crud/components/operation-button-group.js +18 -0
  183. package/dist/es/components/crud/components/scene-form.js +80 -0
  184. package/dist/es/components/crud/components/selection-indicator.js +79 -0
  185. package/dist/es/components/crud/components/toolbar-actions.js +15 -0
  186. package/dist/es/components/crud/components/toolbar.js +34 -0
  187. package/dist/es/components/crud/event.js +8 -0
  188. package/dist/es/components/crud/helpers.js +22 -0
  189. package/dist/es/components/crud/hooks/index.js +4 -0
  190. package/dist/es/components/crud/hooks/use-query-observer.js +33 -0
  191. package/dist/es/components/crud/hooks/use-search-values.js +8 -0
  192. package/dist/es/components/crud/hooks/use-selected-rows.js +8 -0
  193. package/dist/es/components/crud/index.js +41 -0
  194. package/dist/es/components/crud/props.js +1 -0
  195. package/dist/es/components/crud/store.js +87 -0
  196. package/dist/es/components/crud/styles.js +28 -0
  197. package/dist/es/components/crud-page/index.js +15 -0
  198. package/dist/es/components/crud-page/props.js +1 -0
  199. package/dist/es/components/error/error-icon.js +175 -0
  200. package/dist/es/components/error/index.js +65 -0
  201. package/dist/es/components/flex-card/index.js +14 -0
  202. package/dist/es/components/flex-card/props.js +1 -0
  203. package/dist/es/components/flex-card/styles.js +22 -0
  204. package/dist/es/components/form-drawer/components/form-actions.js +34 -0
  205. package/dist/es/components/form-drawer/components/index.js +2 -0
  206. package/dist/es/components/form-drawer/index.js +108 -0
  207. package/dist/es/components/form-modal/components/form-actions.js +34 -0
  208. package/dist/es/components/form-modal/components/index.js +2 -0
  209. package/dist/es/components/form-modal/index.js +84 -0
  210. package/dist/es/components/index.js +20 -0
  211. package/dist/es/components/layout/components/footer.js +23 -0
  212. package/dist/es/components/layout/components/header/boy-icon.js +16 -0
  213. package/dist/es/components/layout/components/header/breadcrumb-navigation.js +86 -0
  214. package/dist/es/components/layout/components/header/color-scheme.js +36 -0
  215. package/dist/es/components/layout/components/header/fullscreen.js +19 -0
  216. package/dist/es/components/layout/components/header/girl-icon.js +17 -0
  217. package/dist/es/components/layout/components/header/index.js +84 -0
  218. package/dist/es/components/layout/components/header/menu-burger.js +20 -0
  219. package/dist/es/components/layout/components/header/menu-fold-left-icon.js +16 -0
  220. package/dist/es/components/layout/components/header/menu-unfold-left-icon.js +16 -0
  221. package/dist/es/components/layout/components/header/search.js +18 -0
  222. package/dist/es/components/layout/components/header/theme-config.js +19 -0
  223. package/dist/es/components/layout/components/header/user-avatar.js +82 -0
  224. package/dist/es/components/layout/components/honeycomb-pattern.js +35 -0
  225. package/dist/es/components/layout/components/index.js +7 -0
  226. package/dist/es/components/layout/components/logo.js +56 -0
  227. package/dist/es/components/layout/components/menu.js +91 -0
  228. package/dist/es/components/layout/components/search/index.js +75 -0
  229. package/dist/es/components/layout/components/search/keyboard-arrow-down-icon.js +11 -0
  230. package/dist/es/components/layout/components/search/keyboard-arrow-up-icon.js +11 -0
  231. package/dist/es/components/layout/components/search/keyboard-control-icon.js +11 -0
  232. package/dist/es/components/layout/components/search/keyboard-esc-icon.js +11 -0
  233. package/dist/es/components/layout/components/search/keyboard-help.js +42 -0
  234. package/dist/es/components/layout/components/search/keyboard-return-icon.js +11 -0
  235. package/dist/es/components/layout/components/search/keyboard-shift-icon.js +11 -0
  236. package/dist/es/components/layout/components/search/keyboard.js +28 -0
  237. package/dist/es/components/layout/components/search/letter-s-icon.js +11 -0
  238. package/dist/es/components/layout/components/search/search-result-item.js +65 -0
  239. package/dist/es/components/layout/components/search/search-result.js +131 -0
  240. package/dist/es/components/layout/components/sidebar.js +50 -0
  241. package/dist/es/components/layout/components/tabs/context-menu.js +92 -0
  242. package/dist/es/components/layout/components/tabs/index.js +36 -0
  243. package/dist/es/components/layout/components/tabs/main-content-maximum.js +19 -0
  244. package/dist/es/components/layout/components/tabs/reload.js +17 -0
  245. package/dist/es/components/layout/components/tabs/tab-item.js +80 -0
  246. package/dist/es/components/layout/components/tabs/tab-list.js +87 -0
  247. package/dist/es/components/layout/components/tabs/tabs-container.js +81 -0
  248. package/dist/es/components/layout/components/theme-config/color-scheme-switcher.js +45 -0
  249. package/dist/es/components/layout/components/theme-config/color-scheme.js +53 -0
  250. package/dist/es/components/layout/components/theme-config/config-item.js +23 -0
  251. package/dist/es/components/layout/components/theme-config/index.js +55 -0
  252. package/dist/es/components/layout/components/theme-config/menu-layout-card.js +71 -0
  253. package/dist/es/components/layout/components/theme-config/menu-layout.js +29 -0
  254. package/dist/es/components/layout/components/theme-config/operations.js +18 -0
  255. package/dist/es/components/layout/components/theme-config/theme-color-picker.js +29 -0
  256. package/dist/es/components/layout/components/theme-config/theme-colors.js +25 -0
  257. package/dist/es/components/layout/hooks/index.js +4 -0
  258. package/dist/es/components/layout/hooks/use-color-scheme-updater.js +68 -0
  259. package/dist/es/components/layout/hooks/use-menu-navigate.js +25 -0
  260. package/dist/es/components/layout/hooks/use-tab-navigate.js +35 -0
  261. package/dist/es/components/layout/index.js +77 -0
  262. package/dist/es/components/layout/props.js +1 -0
  263. package/dist/es/components/layout/store.js +18 -0
  264. package/dist/es/components/layout/styles.js +12 -0
  265. package/dist/es/components/login/icon-login.js +145 -0
  266. package/dist/es/components/login/index.js +158 -0
  267. package/dist/es/components/login/payload.js +1 -0
  268. package/dist/es/components/login/props.js +1 -0
  269. package/dist/es/components/login/styles.js +85 -0
  270. package/dist/es/components/login/welcome-messages.js +130 -0
  271. package/dist/es/components/logo-icon/index.js +18 -0
  272. package/dist/es/components/logo-icon/props.js +1 -0
  273. package/dist/es/components/n-progress/components/bar.js +49 -0
  274. package/dist/es/components/n-progress/components/container.js +21 -0
  275. package/dist/es/components/n-progress/components/index.js +3 -0
  276. package/dist/es/components/n-progress/event.js +6 -0
  277. package/dist/es/components/n-progress/index.js +29 -0
  278. package/dist/es/components/not-found/index.js +43 -0
  279. package/dist/es/components/not-found/not-found-icon.js +201 -0
  280. package/dist/es/components/page/index.js +53 -0
  281. package/dist/es/components/page/props.js +1 -0
  282. package/dist/es/components/page/scroll-content.js +61 -0
  283. package/dist/es/components/page/styles.js +73 -0
  284. package/dist/es/components/page/use-page-key.js +18 -0
  285. package/dist/es/components/page/viewport-context.js +14 -0
  286. package/dist/es/components/pro-search/components/advanced-search-toggler.js +19 -0
  287. package/dist/es/components/pro-search/components/advanced-search.js +26 -0
  288. package/dist/es/components/pro-search/components/index.js +4 -0
  289. package/dist/es/components/pro-search/components/search-actions.js +32 -0
  290. package/dist/es/components/pro-search/index.js +66 -0
  291. package/dist/es/components/pro-search/styles.js +57 -0
  292. package/dist/es/components/pro-table/components/index.js +5 -0
  293. package/dist/es/components/pro-table/components/operation-button-group.js +18 -0
  294. package/dist/es/components/pro-table/components/ref.js +20 -0
  295. package/dist/es/components/pro-table/components/table-subscriber.js +21 -0
  296. package/dist/es/components/pro-table/components/table-summary.js +11 -0
  297. package/dist/es/components/pro-table/components/table-title.js +11 -0
  298. package/dist/es/components/pro-table/components/table.js +127 -0
  299. package/dist/es/components/pro-table/context.js +10 -0
  300. package/dist/es/components/pro-table/event.js +8 -0
  301. package/dist/es/components/pro-table/hooks/index.js +3 -0
  302. package/dist/es/components/pro-table/hooks/use-row-selection.js +39 -0
  303. package/dist/es/components/pro-table/hooks/use-table-columns.js +56 -0
  304. package/dist/es/components/pro-table/index.js +49 -0
  305. package/dist/es/components/pro-table/store.js +34 -0
  306. package/dist/es/components/router-provider/context.js +10 -0
  307. package/dist/es/components/router-provider/index.js +25 -0
  308. package/dist/es/components/router-provider/props.js +1 -0
  309. package/dist/es/components/theme-config-provider/global-style.js +16 -0
  310. package/dist/es/components/theme-config-provider/index.js +15 -0
  311. package/dist/es/components/theme-config-provider/use-color-mode-effect.js +31 -0
  312. package/dist/es/components/theme-config-provider/use-theme-config.js +69 -0
  313. package/dist/es/constants/event.js +4 -0
  314. package/dist/es/constants/index.js +5 -0
  315. package/dist/es/constants/router.js +9 -0
  316. package/dist/es/constants/storage.js +5 -0
  317. package/dist/es/constants/symbols.js +5 -0
  318. package/dist/es/helpers/api.js +46 -0
  319. package/dist/es/helpers/app-version.js +223 -0
  320. package/dist/es/helpers/app.js +33 -0
  321. package/dist/es/helpers/auth.js +20 -0
  322. package/dist/es/helpers/event.js +18 -0
  323. package/dist/es/helpers/index.js +8 -0
  324. package/dist/es/helpers/query.js +22 -0
  325. package/dist/es/helpers/router.js +106 -0
  326. package/dist/es/hooks/index.js +2 -0
  327. package/dist/es/hooks/use-route-full-path.js +28 -0
  328. package/dist/es/index.js +36 -0
  329. package/dist/es/routes/access-denied.js +27 -0
  330. package/dist/es/routes/index.js +5 -0
  331. package/dist/es/routes/layout.js +136 -0
  332. package/dist/es/routes/login.js +37 -0
  333. package/dist/es/routes/root.js +31 -0
  334. package/dist/es/stores/app.js +21 -0
  335. package/dist/es/stores/index.js +4 -0
  336. package/dist/es/stores/tab.js +97 -0
  337. package/dist/es/stores/theme.js +28 -0
  338. package/dist/types/components/access-denied/access-denied-icon.d.ts +2 -0
  339. package/dist/types/components/access-denied/index.d.ts +1 -0
  340. package/dist/types/components/app/index.d.ts +4 -0
  341. package/dist/types/components/app/props.d.ts +21 -0
  342. package/dist/types/components/base-layout/index.d.ts +3 -0
  343. package/dist/types/components/base-layout/props.d.ts +70 -0
  344. package/dist/types/components/base-layout/styles.d.ts +8 -0
  345. package/dist/types/components/base-layout/use-base-layout.d.ts +9 -0
  346. package/dist/types/components/crud/components/action-button-group.d.ts +8 -0
  347. package/dist/types/components/crud/components/index.d.ts +6 -0
  348. package/dist/types/components/crud/components/main.d.ts +6 -0
  349. package/dist/types/components/crud/components/mutation-holder.d.ts +10 -0
  350. package/dist/types/components/crud/components/operation-button-group.d.ts +8 -0
  351. package/dist/types/components/crud/components/scene-form.d.ts +7 -0
  352. package/dist/types/components/crud/components/selection-indicator.d.ts +6 -0
  353. package/dist/types/components/crud/components/toolbar-actions.d.ts +6 -0
  354. package/dist/types/components/crud/components/toolbar.d.ts +8 -0
  355. package/dist/types/components/crud/event.d.ts +3 -0
  356. package/dist/types/components/crud/helpers.d.ts +18 -0
  357. package/dist/types/components/crud/hooks/index.d.ts +3 -0
  358. package/dist/types/components/crud/hooks/use-query-observer.d.ts +11 -0
  359. package/dist/types/components/crud/hooks/use-search-values.d.ts +2 -0
  360. package/dist/types/components/crud/hooks/use-selected-rows.d.ts +2 -0
  361. package/dist/types/components/crud/index.d.ts +7 -0
  362. package/dist/types/components/crud/props.d.ts +153 -0
  363. package/dist/types/components/crud/store.d.ts +145 -0
  364. package/dist/types/components/crud/styles.d.ts +4 -0
  365. package/dist/types/components/crud/types.d.ts +48 -0
  366. package/dist/types/components/crud-page/index.d.ts +3 -0
  367. package/dist/types/components/crud-page/props.d.ts +20 -0
  368. package/dist/types/components/error/error-icon.d.ts +2 -0
  369. package/dist/types/components/error/index.d.ts +2 -0
  370. package/dist/types/components/error/props.d.ts +6 -0
  371. package/dist/types/components/flex-card/index.d.ts +3 -0
  372. package/dist/types/components/flex-card/props.d.ts +3 -0
  373. package/dist/types/components/flex-card/styles.d.ts +2 -0
  374. package/dist/types/components/form-drawer/components/form-actions.d.ts +18 -0
  375. package/dist/types/components/form-drawer/components/index.d.ts +1 -0
  376. package/dist/types/components/form-drawer/index.d.ts +5 -0
  377. package/dist/types/components/form-drawer/props.d.ts +70 -0
  378. package/dist/types/components/form-modal/components/form-actions.d.ts +18 -0
  379. package/dist/types/components/form-modal/components/index.d.ts +1 -0
  380. package/dist/types/components/form-modal/index.d.ts +5 -0
  381. package/dist/types/components/form-modal/props.d.ts +66 -0
  382. package/dist/types/components/index.d.ts +19 -0
  383. package/dist/types/components/layout/components/footer.d.ts +1 -0
  384. package/dist/types/components/layout/components/header/boy-icon.d.ts +2 -0
  385. package/dist/types/components/layout/components/header/breadcrumb-navigation.d.ts +2 -0
  386. package/dist/types/components/layout/components/header/color-scheme.d.ts +5 -0
  387. package/dist/types/components/layout/components/header/fullscreen.d.ts +5 -0
  388. package/dist/types/components/layout/components/header/girl-icon.d.ts +2 -0
  389. package/dist/types/components/layout/components/header/index.d.ts +5 -0
  390. package/dist/types/components/layout/components/header/menu-burger.d.ts +5 -0
  391. package/dist/types/components/layout/components/header/menu-fold-left-icon.d.ts +2 -0
  392. package/dist/types/components/layout/components/header/menu-unfold-left-icon.d.ts +2 -0
  393. package/dist/types/components/layout/components/header/search.d.ts +5 -0
  394. package/dist/types/components/layout/components/header/theme-config.d.ts +5 -0
  395. package/dist/types/components/layout/components/header/user-avatar.d.ts +6 -0
  396. package/dist/types/components/layout/components/honeycomb-pattern.d.ts +1 -0
  397. package/dist/types/components/layout/components/index.d.ts +6 -0
  398. package/dist/types/components/layout/components/logo.d.ts +8 -0
  399. package/dist/types/components/layout/components/menu.d.ts +7 -0
  400. package/dist/types/components/layout/components/search/index.d.ts +1 -0
  401. package/dist/types/components/layout/components/search/keyboard-arrow-down-icon.d.ts +2 -0
  402. package/dist/types/components/layout/components/search/keyboard-arrow-up-icon.d.ts +2 -0
  403. package/dist/types/components/layout/components/search/keyboard-control-icon.d.ts +2 -0
  404. package/dist/types/components/layout/components/search/keyboard-esc-icon.d.ts +2 -0
  405. package/dist/types/components/layout/components/search/keyboard-help.d.ts +1 -0
  406. package/dist/types/components/layout/components/search/keyboard-return-icon.d.ts +2 -0
  407. package/dist/types/components/layout/components/search/keyboard-shift-icon.d.ts +2 -0
  408. package/dist/types/components/layout/components/search/keyboard.d.ts +6 -0
  409. package/dist/types/components/layout/components/search/letter-s-icon.d.ts +2 -0
  410. package/dist/types/components/layout/components/search/search-result-item.d.ts +8 -0
  411. package/dist/types/components/layout/components/search/search-result.d.ts +5 -0
  412. package/dist/types/components/layout/components/sidebar.d.ts +6 -0
  413. package/dist/types/components/layout/components/tabs/context-menu.d.ts +6 -0
  414. package/dist/types/components/layout/components/tabs/index.d.ts +1 -0
  415. package/dist/types/components/layout/components/tabs/main-content-maximum.d.ts +5 -0
  416. package/dist/types/components/layout/components/tabs/reload.d.ts +5 -0
  417. package/dist/types/components/layout/components/tabs/tab-item.d.ts +10 -0
  418. package/dist/types/components/layout/components/tabs/tab-list.d.ts +1 -0
  419. package/dist/types/components/layout/components/tabs/tabs-container.d.ts +1 -0
  420. package/dist/types/components/layout/components/theme-config/color-scheme-switcher.d.ts +1 -0
  421. package/dist/types/components/layout/components/theme-config/color-scheme.d.ts +1 -0
  422. package/dist/types/components/layout/components/theme-config/config-item.d.ts +7 -0
  423. package/dist/types/components/layout/components/theme-config/index.d.ts +1 -0
  424. package/dist/types/components/layout/components/theme-config/menu-layout-card.d.ts +7 -0
  425. package/dist/types/components/layout/components/theme-config/menu-layout.d.ts +1 -0
  426. package/dist/types/components/layout/components/theme-config/operations.d.ts +1 -0
  427. package/dist/types/components/layout/components/theme-config/theme-color-picker.d.ts +6 -0
  428. package/dist/types/components/layout/components/theme-config/theme-colors.d.ts +1 -0
  429. package/dist/types/components/layout/hooks/index.d.ts +3 -0
  430. package/dist/types/components/layout/hooks/use-color-scheme-updater.d.ts +13 -0
  431. package/dist/types/components/layout/hooks/use-menu-navigate.d.ts +7 -0
  432. package/dist/types/components/layout/hooks/use-tab-navigate.d.ts +11 -0
  433. package/dist/types/components/layout/index.d.ts +3 -0
  434. package/dist/types/components/layout/props.d.ts +28 -0
  435. package/dist/types/components/layout/store.d.ts +17 -0
  436. package/dist/types/components/layout/styles.d.ts +2 -0
  437. package/dist/types/components/login/icon-login.d.ts +2 -0
  438. package/dist/types/components/login/index.d.ts +4 -0
  439. package/dist/types/components/login/payload.d.ts +45 -0
  440. package/dist/types/components/login/props.d.ts +27 -0
  441. package/dist/types/components/login/styles.d.ts +10 -0
  442. package/dist/types/components/login/welcome-messages.d.ts +11 -0
  443. package/dist/types/components/logo-icon/index.d.ts +3 -0
  444. package/dist/types/components/logo-icon/props.d.ts +10 -0
  445. package/dist/types/components/n-progress/components/bar.d.ts +5 -0
  446. package/dist/types/components/n-progress/components/container.d.ts +7 -0
  447. package/dist/types/components/n-progress/components/index.d.ts +2 -0
  448. package/dist/types/components/n-progress/event.d.ts +7 -0
  449. package/dist/types/components/n-progress/index.d.ts +2 -0
  450. package/dist/types/components/not-found/index.d.ts +1 -0
  451. package/dist/types/components/not-found/not-found-icon.d.ts +2 -0
  452. package/dist/types/components/page/index.d.ts +4 -0
  453. package/dist/types/components/page/props.d.ts +51 -0
  454. package/dist/types/components/page/scroll-content.d.ts +8 -0
  455. package/dist/types/components/page/styles.d.ts +11 -0
  456. package/dist/types/components/page/use-page-key.d.ts +1 -0
  457. package/dist/types/components/page/viewport-context.d.ts +7 -0
  458. package/dist/types/components/pro-search/components/advanced-search-toggler.d.ts +7 -0
  459. package/dist/types/components/pro-search/components/advanced-search.d.ts +6 -0
  460. package/dist/types/components/pro-search/components/index.d.ts +3 -0
  461. package/dist/types/components/pro-search/components/search-actions.d.ts +22 -0
  462. package/dist/types/components/pro-search/index.d.ts +5 -0
  463. package/dist/types/components/pro-search/props.d.ts +66 -0
  464. package/dist/types/components/pro-search/styles.d.ts +6 -0
  465. package/dist/types/components/pro-table/components/index.d.ts +4 -0
  466. package/dist/types/components/pro-table/components/operation-button-group.d.ts +7 -0
  467. package/dist/types/components/pro-table/components/ref.d.ts +3 -0
  468. package/dist/types/components/pro-table/components/table-subscriber.d.ts +9 -0
  469. package/dist/types/components/pro-table/components/table-summary.d.ts +7 -0
  470. package/dist/types/components/pro-table/components/table-title.d.ts +7 -0
  471. package/dist/types/components/pro-table/components/table.d.ts +6 -0
  472. package/dist/types/components/pro-table/context.d.ts +3 -0
  473. package/dist/types/components/pro-table/event.d.ts +16 -0
  474. package/dist/types/components/pro-table/hooks/index.d.ts +2 -0
  475. package/dist/types/components/pro-table/hooks/use-row-selection.d.ts +12 -0
  476. package/dist/types/components/pro-table/hooks/use-table-columns.d.ts +11 -0
  477. package/dist/types/components/pro-table/index.d.ts +11 -0
  478. package/dist/types/components/pro-table/props.d.ts +118 -0
  479. package/dist/types/components/pro-table/store.d.ts +35 -0
  480. package/dist/types/components/pro-table/types.d.ts +86 -0
  481. package/dist/types/components/router-provider/context.d.ts +6 -0
  482. package/dist/types/components/router-provider/index.d.ts +5 -0
  483. package/dist/types/components/router-provider/props.d.ts +7 -0
  484. package/dist/types/components/theme-config-provider/global-style.d.ts +2 -0
  485. package/dist/types/components/theme-config-provider/index.d.ts +2 -0
  486. package/dist/types/components/theme-config-provider/use-color-mode-effect.d.ts +1 -0
  487. package/dist/types/components/theme-config-provider/use-theme-config.d.ts +2 -0
  488. package/dist/types/constants/event.d.ts +4 -0
  489. package/dist/types/constants/index.d.ts +4 -0
  490. package/dist/types/constants/router.d.ts +24 -0
  491. package/dist/types/constants/storage.d.ts +8 -0
  492. package/dist/types/constants/symbols.d.ts +8 -0
  493. package/dist/types/helpers/api.d.ts +9 -0
  494. package/dist/types/helpers/app-version.d.ts +88 -0
  495. package/dist/types/helpers/app.d.ts +24 -0
  496. package/dist/types/helpers/auth.d.ts +7 -0
  497. package/dist/types/helpers/event.d.ts +16 -0
  498. package/dist/types/helpers/index.d.ts +7 -0
  499. package/dist/types/helpers/query.d.ts +33 -0
  500. package/dist/types/helpers/router.d.ts +28 -0
  501. package/dist/types/hooks/index.d.ts +1 -0
  502. package/dist/types/hooks/use-route-full-path.d.ts +6 -0
  503. package/dist/types/index.d.ts +6 -0
  504. package/dist/types/models/index.d.ts +1 -0
  505. package/dist/types/routes/access-denied.d.ts +13 -0
  506. package/dist/types/routes/index.d.ts +4 -0
  507. package/dist/types/routes/layout.d.ts +25 -0
  508. package/dist/types/routes/login.d.ts +18 -0
  509. package/dist/types/routes/root.d.ts +13 -0
  510. package/dist/types/stores/app.d.ts +38 -0
  511. package/dist/types/stores/index.d.ts +6 -0
  512. package/dist/types/stores/tab.d.ts +73 -0
  513. package/dist/types/stores/theme.d.ts +46 -0
  514. package/dist/types/types/api.d.ts +67 -0
  515. package/dist/types/types/common.d.ts +81 -0
  516. package/dist/types/types/index.d.ts +3 -0
  517. package/dist/types/types/router.d.ts +9 -0
  518. package/package.json +60 -44
  519. package/README.md +0 -25
  520. package/cjs/api.cjs +0 -2
  521. package/cjs/app.cjs +0 -2
  522. package/cjs/components/index.cjs +0 -2
  523. package/cjs/components/vef-access-denied-page/index.cjs +0 -2
  524. package/cjs/components/vef-access-denied-page/props.cjs +0 -2
  525. package/cjs/components/vef-app/index.cjs +0 -2
  526. package/cjs/components/vef-app/props.cjs +0 -2
  527. package/cjs/components/vef-dev-assistant/index.cjs +0 -31
  528. package/cjs/components/vef-dev-assistant/props.cjs +0 -2
  529. package/cjs/components/vef-error-page/index.cjs +0 -2
  530. package/cjs/components/vef-error-page/props.cjs +0 -2
  531. package/cjs/components/vef-login-page/index.cjs +0 -2
  532. package/cjs/components/vef-login-page/props.cjs +0 -2
  533. package/cjs/components/vef-not-found-page/index.cjs +0 -2
  534. package/cjs/components/vef-not-found-page/props.cjs +0 -2
  535. package/cjs/components/vef-router-provider/index.cjs +0 -2
  536. package/cjs/components/vef-router-provider/props.cjs +0 -2
  537. package/cjs/constants.cjs +0 -2
  538. package/cjs/helper.cjs +0 -2
  539. package/cjs/index.cjs +0 -2
  540. package/cjs/router.cjs +0 -2
  541. package/cjs/routes/access-denied.cjs +0 -2
  542. package/cjs/routes/index.cjs +0 -2
  543. package/cjs/routes/layout.cjs +0 -2
  544. package/cjs/routes/login.cjs +0 -2
  545. package/cjs/routes/root.cjs +0 -2
  546. package/cjs/store.cjs +0 -2
  547. package/esm/api.js +0 -2
  548. package/esm/app.js +0 -2
  549. package/esm/components/index.js +0 -2
  550. package/esm/components/vef-access-denied-page/index.js +0 -2
  551. package/esm/components/vef-access-denied-page/props.js +0 -2
  552. package/esm/components/vef-app/index.js +0 -2
  553. package/esm/components/vef-app/props.js +0 -2
  554. package/esm/components/vef-dev-assistant/index.js +0 -31
  555. package/esm/components/vef-dev-assistant/props.js +0 -2
  556. package/esm/components/vef-error-page/index.js +0 -2
  557. package/esm/components/vef-error-page/props.js +0 -2
  558. package/esm/components/vef-login-page/index.js +0 -2
  559. package/esm/components/vef-login-page/props.js +0 -2
  560. package/esm/components/vef-not-found-page/index.js +0 -2
  561. package/esm/components/vef-not-found-page/props.js +0 -2
  562. package/esm/components/vef-router-provider/index.js +0 -2
  563. package/esm/components/vef-router-provider/props.js +0 -2
  564. package/esm/constants.js +0 -2
  565. package/esm/helper.js +0 -2
  566. package/esm/index.js +0 -2
  567. package/esm/router.js +0 -2
  568. package/esm/routes/access-denied.js +0 -2
  569. package/esm/routes/index.js +0 -2
  570. package/esm/routes/layout.js +0 -2
  571. package/esm/routes/login.js +0 -2
  572. package/esm/routes/root.js +0 -2
  573. package/esm/store.js +0 -2
  574. package/types/api.d.ts +0 -9
  575. package/types/app.d.ts +0 -15
  576. package/types/components/index.d.ts +0 -7
  577. package/types/components/vef-access-denied-page/index.d.ts +0 -4
  578. package/types/components/vef-access-denied-page/props.d.ts +0 -5
  579. package/types/components/vef-app/index.d.ts +0 -4
  580. package/types/components/vef-app/props.d.ts +0 -7
  581. package/types/components/vef-dev-assistant/index.d.ts +0 -4
  582. package/types/components/vef-dev-assistant/props.d.ts +0 -5
  583. package/types/components/vef-error-page/index.d.ts +0 -4
  584. package/types/components/vef-error-page/props.d.ts +0 -6
  585. package/types/components/vef-login-page/index.d.ts +0 -4
  586. package/types/components/vef-login-page/props.d.ts +0 -7
  587. package/types/components/vef-not-found-page/index.d.ts +0 -4
  588. package/types/components/vef-not-found-page/props.d.ts +0 -6
  589. package/types/components/vef-router-provider/index.d.ts +0 -4
  590. package/types/components/vef-router-provider/props.d.ts +0 -16
  591. package/types/constants.d.ts +0 -24
  592. package/types/helper.d.ts +0 -9
  593. package/types/index.d.ts +0 -8
  594. package/types/router.d.ts +0 -23
  595. package/types/routes/access-denied.d.ts +0 -9
  596. package/types/routes/index.d.ts +0 -4
  597. package/types/routes/layout.d.ts +0 -33
  598. package/types/routes/login.d.ts +0 -27
  599. package/types/routes/root.d.ts +0 -7
  600. package/types/store.d.ts +0 -34
@@ -0,0 +1,50 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const components = require('@vef-framework/components');
7
+ const core = require('@vef-framework/core');
8
+ require('../constants/index.cjs');
9
+ require('../stores/index.cjs');
10
+ const auth = require('./auth.cjs');
11
+ const router = require('../constants/router.cjs');
12
+ const app = require('../stores/app.cjs');
13
+
14
+ function createApiClient({
15
+ getRouter,
16
+ http,
17
+ query
18
+ }) {
19
+ return core.createApiClient({
20
+ http: {
21
+ ...http,
22
+ getAuthTokens() {
23
+ return app.useAppStore.getState().authTokens;
24
+ },
25
+ setAuthTokens(tokens) {
26
+ app.useAppStore.setState((state) => {
27
+ state.authTokens = tokens;
28
+ });
29
+ },
30
+ async onUnauthenticated() {
31
+ await auth.handleClientLogout(await getRouter());
32
+ },
33
+ async onAccessDenied() {
34
+ const router$1 = await getRouter();
35
+ await router$1.navigate({
36
+ to: router.ACCESS_DENIED_ROUTE_PATH
37
+ });
38
+ },
39
+ showInfoMessage: components.showInfoMessage,
40
+ showWarningMessage: components.showWarningMessage,
41
+ showErrorMessage: components.showErrorMessage
42
+ },
43
+ query: {
44
+ ...query,
45
+ showSuccessMessage: components.showSuccessMessage
46
+ }
47
+ });
48
+ }
49
+
50
+ exports.createApiClient = createApiClient;
@@ -0,0 +1,227 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('@emotion/react/jsx-runtime');
7
+ const react = require('@emotion/react');
8
+ const components = require('@vef-framework/components');
9
+ const shared = require('@vef-framework/shared');
10
+ const compareVersions = require('compare-versions');
11
+ const lucideReact = require('lucide-react');
12
+
13
+ const versionStyle = /* @__PURE__ */ react.css({
14
+ fontSize: "inherit",
15
+ fontFamily: components.globalCssVars.fontFamilyCode
16
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrR3FCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
17
+ const mainDescriptionStyle = /* @__PURE__ */ react.css({
18
+ marginBottom: components.globalCssVars.spacingSm
19
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RzZCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
20
+ const changelogDescStyle = /* @__PURE__ */ react.css({
21
+ marginBottom: components.globalCssVars.spacingSm,
22
+ padding: components.globalCssVars.spacingSm,
23
+ backgroundColor: components.globalCssVars.colorFillQuaternary,
24
+ borderLeft: `3px solid ${components.globalCssVars.colorPrimary}`,
25
+ borderRadius: components.globalCssVars.borderRadius
26
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRzJCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
27
+ const changesTitleStyle = /* @__PURE__ */ react.css({
28
+ fontWeight: 600,
29
+ color: components.globalCssVars.colorInfo,
30
+ display: "flex",
31
+ alignItems: "center",
32
+ gap: components.globalCssVars.spacingXxs
33
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrSDBCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
34
+ const changesListStyle = /* @__PURE__ */ react.css({
35
+ paddingLeft: components.globalCssVars.spacingXl,
36
+ fontSize: `calc(${components.globalCssVars.fontSize} - 1px)`,
37
+ marginTop: components.globalCssVars.spacingXxs,
38
+ marginBottom: components.globalCssVars.spacingSm,
39
+ "& > li": {
40
+ color: components.globalCssVars.colorTextSecondary
41
+ }
42
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SHlCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
43
+ const dateInfoStyle = /* @__PURE__ */ react.css({
44
+ textAlign: "right",
45
+ borderTop: `${components.globalCssVars.lineWidth} ${components.globalCssVars.lineType} ${components.globalCssVars.colorBorderSecondary}`,
46
+ paddingTop: components.globalCssVars.spacingXxs,
47
+ "> .vef-typography": {
48
+ fontSize: components.globalCssVars.fontSizeSm
49
+ }
50
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSXNCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
51
+ function setupAppVersionNotification(options = {}) {
52
+ const {
53
+ enabled = false,
54
+ basePath = "/",
55
+ checkInterval = 60,
56
+ title = "发现新版本",
57
+ description = "检测到应用有新版本,建议刷新页面以获取最新功能和修复(注意:如果您正在编辑数据,请在更新前请一定要先保存/提交)",
58
+ confirmText = "立即更新",
59
+ cancelText = "稍后再说",
60
+ onConfirm,
61
+ onCancel
62
+ } = options;
63
+ if (!enabled) {
64
+ return;
65
+ }
66
+ let isNotificationShown = false;
67
+ let checkTimer = null;
68
+ async function checkForUpdate() {
69
+ if (isNotificationShown) {
70
+ return;
71
+ }
72
+ try {
73
+ const currentVersion = getCurrentVersion();
74
+ const {
75
+ version: latestVersion,
76
+ changelog
77
+ } = await getLatestVersionInfo(basePath);
78
+ if (!currentVersion || !latestVersion || currentVersion === latestVersion) {
79
+ return;
80
+ }
81
+ if (compareVersions.compareVersions(latestVersion, currentVersion) === 1) {
82
+ showUpdateNotification(changelog);
83
+ }
84
+ } catch (error) {
85
+ console.warn("[App Version Check] Failed to check for updates:", error);
86
+ }
87
+ }
88
+ function startCheckTimer() {
89
+ stopCheckTimer();
90
+ if (checkInterval > 0) {
91
+ checkTimer = setInterval(checkForUpdate, checkInterval * 1e3);
92
+ }
93
+ }
94
+ function stopCheckTimer() {
95
+ if (checkTimer) {
96
+ clearInterval(checkTimer);
97
+ checkTimer = null;
98
+ }
99
+ }
100
+ function showUpdateNotification(changelog) {
101
+ isNotificationShown = true;
102
+ stopCheckTimer();
103
+ const descriptionContent = buildDescriptionContent(changelog);
104
+ const notification = components.showInfoNotification(descriptionContent, {
105
+ icon: "🎉",
106
+ title: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
107
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: title }),
108
+ " - ",
109
+ /* @__PURE__ */ jsxRuntime.jsxs(components.Text, { strong: true, css: versionStyle, type: "success", children: [
110
+ "v",
111
+ changelog.version
112
+ ] })
113
+ ] }),
114
+ duration: 0,
115
+ closable: false,
116
+ actions: /* @__PURE__ */ jsxRuntime.jsxs(components.Group, { children: [
117
+ /* @__PURE__ */ jsxRuntime.jsx(components.Button, { onClick: () => {
118
+ notification.close();
119
+ onCancel?.();
120
+ }, children: cancelText }, "cancel"),
121
+ /* @__PURE__ */ jsxRuntime.jsx(components.Button, { icon: /* @__PURE__ */ jsxRuntime.jsx(components.Icon, { component: lucideReact.CircleArrowUpIcon }), type: "primary", onClick: () => {
122
+ if (onConfirm) {
123
+ onConfirm();
124
+ } else {
125
+ location.reload();
126
+ }
127
+ }, children: confirmText }, "confirm")
128
+ ] })
129
+ });
130
+ }
131
+ function buildDescriptionContent(changelog) {
132
+ const parts = [];
133
+ if (description) {
134
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("div", { css: mainDescriptionStyle, children: description }, "description"));
135
+ }
136
+ if (changelog.description) {
137
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("div", { css: changelogDescStyle, children: changelog.description }, "changelog-desc"));
138
+ }
139
+ if (changelog.changes && changelog.changes.length > 0) {
140
+ parts.push(/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
141
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { css: changesTitleStyle, children: [
142
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "📋" }),
143
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "本次更新内容:" })
144
+ ] }),
145
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { css: changesListStyle, children: changelog.changes.map((change) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: change }, change)) })
146
+ ] }, "changes-container"));
147
+ }
148
+ if (changelog.date) {
149
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("div", { css: dateInfoStyle, children: /* @__PURE__ */ jsxRuntime.jsx(components.Text, { type: "secondary", children: changelog.date }) }, "date-info"));
150
+ }
151
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: parts });
152
+ }
153
+ document.addEventListener("visibilitychange", () => {
154
+ if (document.visibilityState === "visible") {
155
+ checkForUpdate();
156
+ startCheckTimer();
157
+ } else {
158
+ stopCheckTimer();
159
+ }
160
+ });
161
+ if (document.visibilityState === "visible") {
162
+ checkForUpdate();
163
+ startCheckTimer();
164
+ }
165
+ return () => {
166
+ stopCheckTimer();
167
+ };
168
+ }
169
+ function getCurrentVersion() {
170
+ const meta = document.querySelector(`meta[name="app-version"]`);
171
+ return meta?.getAttribute("content");
172
+ }
173
+ async function getLatestVersionInfo(basePath) {
174
+ const defaultResult = {};
175
+ try {
176
+ const url = shared.joinPaths(basePath, "index.html");
177
+ const response = await fetch(`${url}?t=${Date.now()}`, {
178
+ headers: {
179
+ "Cache-Control": "no-cache",
180
+ Pragma: "no-cache"
181
+ }
182
+ });
183
+ if (!response.ok) {
184
+ throw new Error(`Failed to fetch HTML: ${response.status}`);
185
+ }
186
+ const html = await response.text();
187
+ const versionMetaMatch = html.match(/<meta[^>]*name="app-version"[^>]*>/);
188
+ const versionContentMatch = versionMetaMatch?.[0].match(/content="(?<version>[^"]+)"/);
189
+ const version = versionContentMatch?.groups?.version || "";
190
+ defaultResult.version = version;
191
+ const changelogMetaMatch = html.match(/<meta[^>]*name="app-changelog"[^>]*>/);
192
+ const changelogContentMatch = changelogMetaMatch?.[0].match(/content="(?<path>[^"]+)"/);
193
+ const changelogPath = changelogContentMatch?.groups?.path;
194
+ let changelog;
195
+ if (changelogPath) {
196
+ try {
197
+ const changelogUrl = shared.joinPaths(basePath, changelogPath);
198
+ const changelogResponse = await fetch(`${changelogUrl}?t=${Date.now()}`, {
199
+ headers: {
200
+ "Cache-Control": "no-cache",
201
+ Pragma: "no-cache"
202
+ }
203
+ });
204
+ if (changelogResponse.ok) {
205
+ const changelogs = await changelogResponse.json();
206
+ changelog = changelogs.find((changelog2) => changelog2.version === version);
207
+ }
208
+ } catch (error) {
209
+ console.warn("[App Version Check] Failed to fetch changelog:", error);
210
+ }
211
+ }
212
+ return {
213
+ version,
214
+ changelog
215
+ };
216
+ } catch (error) {
217
+ console.warn("[App Version Check] Failed to get latest version info:", error);
218
+ if (defaultResult.version) {
219
+ defaultResult.changelog = {
220
+ version: defaultResult.version
221
+ };
222
+ }
223
+ return defaultResult;
224
+ }
225
+ }
226
+
227
+ exports.setupAppVersionNotification = setupAppVersionNotification;
@@ -0,0 +1,37 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('@emotion/react/jsx-runtime');
7
+ const react = require('react');
8
+ const client = require('react-dom/client');
9
+ require('../components/index.cjs');
10
+ const index = require('../components/app/index.cjs');
11
+ const context = require('../components/router-provider/context.cjs');
12
+
13
+ function createApp({
14
+ strictMode = true,
15
+ useRouterContext
16
+ } = {}) {
17
+ const root = client.createRoot(document.querySelector("#root"), {
18
+ identifierPrefix: "vef-"
19
+ });
20
+ return {
21
+ render(props) {
22
+ let app = /* @__PURE__ */ jsxRuntime.jsx(index.App, { ...props });
23
+ if (useRouterContext) {
24
+ app = /* @__PURE__ */ jsxRuntime.jsx(context.RouterContextHookProvider, { value: useRouterContext, children: app });
25
+ }
26
+ if (strictMode) {
27
+ app = /* @__PURE__ */ jsxRuntime.jsx(react.StrictMode, { children: app });
28
+ }
29
+ root.render(app);
30
+ },
31
+ unmount() {
32
+ root.unmount();
33
+ }
34
+ };
35
+ }
36
+
37
+ exports.createApp = createApp;
@@ -0,0 +1,24 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ require('../constants/index.cjs');
7
+ require('../stores/index.cjs');
8
+ const app = require('../stores/app.cjs');
9
+ const router = require('../constants/router.cjs');
10
+
11
+ async function handleClientLogout(router$1) {
12
+ app.useAppStore.setState({
13
+ isAuthenticated: false
14
+ }, true);
15
+ await router$1.navigate({
16
+ to: router.LOGIN_ROUTE_PATH
17
+ });
18
+ router$1.invalidate({
19
+ sync: true,
20
+ forcePending: true
21
+ });
22
+ }
23
+
24
+ exports.handleClientLogout = handleClientLogout;
@@ -0,0 +1,24 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const shared = require('@vef-framework/shared');
7
+ require('../constants/index.cjs');
8
+ const event = require('../constants/event.cjs');
9
+
10
+ const eventEmitter = shared.createEventEmitter();
11
+ function dispatchCustomEvent(type, options) {
12
+ if (typeof document === "undefined") {
13
+ return false;
14
+ }
15
+ const event = new CustomEvent(type, options);
16
+ return document.dispatchEvent(event);
17
+ }
18
+ function reloadPage(key) {
19
+ eventEmitter.emit(event.RELOAD_PAGE_EVENT, key);
20
+ }
21
+
22
+ exports.dispatchCustomEvent = dispatchCustomEvent;
23
+ exports.eventEmitter = eventEmitter;
24
+ exports.reloadPage = reloadPage;
@@ -0,0 +1,25 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const api = require('./api.cjs');
7
+ const app = require('./app.cjs');
8
+ const appVersion = require('./app-version.cjs');
9
+ const auth = require('./auth.cjs');
10
+ const event = require('./event.cjs');
11
+ const query = require('./query.cjs');
12
+ const router = require('./router.cjs');
13
+
14
+
15
+
16
+ exports.createApiClient = api.createApiClient;
17
+ exports.createApp = app.createApp;
18
+ exports.setupAppVersionNotification = appVersion.setupAppVersionNotification;
19
+ exports.handleClientLogout = auth.handleClientLogout;
20
+ exports.dispatchCustomEvent = event.dispatchCustomEvent;
21
+ exports.eventEmitter = event.eventEmitter;
22
+ exports.reloadPage = event.reloadPage;
23
+ exports.extractQueryParams = query.extractQueryParams;
24
+ exports.noopMutationFn = query.noopMutationFn;
25
+ exports.createRouter = router.createRouter;
@@ -0,0 +1,27 @@
1
+ /*! @vef-framework/starter v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:22.856Z */
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ require('../constants/index.cjs');
7
+ const symbols = require('../constants/symbols.cjs');
8
+
9
+ function noopMutationFn(..._args) {
10
+ return Promise.resolve(void 0);
11
+ }
12
+ noopMutationFn.key = "__noop_mutation_fn";
13
+ function extractQueryParams(queryParams) {
14
+ const {
15
+ [symbols.SYMBOL_PAGINATION]: pagination,
16
+ [symbols.SYMBOL_SORT]: sort,
17
+ ...params
18
+ } = queryParams;
19
+ return {
20
+ params,
21
+ pagination,
22
+ sort
23
+ };
24
+ }
25
+
26
+ exports.extractQueryParams = extractQueryParams;
27
+ exports.noopMutationFn = noopMutationFn;