tnp-helpers 18.0.16 → 18.0.18

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 (412) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  4. package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  5. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  6. package/browser/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  7. package/browser/esm2022/lib/base/classes/base-db.mjs +31 -0
  8. package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  9. package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  10. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-git.mjs +2 -2
  11. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  12. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  13. package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  14. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  15. package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  16. package/browser/esm2022/lib/base/classes/base-project.mjs +926 -0
  17. package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  18. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  19. package/browser/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  20. package/browser/esm2022/lib/base/classes/index.mjs +22 -0
  21. package/browser/esm2022/lib/base/commit-data.mjs +1 -1
  22. package/browser/esm2022/lib/base/config-database.mjs +5 -2
  23. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  24. package/browser/esm2022/lib/base/index.mjs +3 -19
  25. package/browser/esm2022/lib/base/project-database.mjs +2 -2
  26. package/browser/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  27. package/browser/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  28. package/browser/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  29. package/browser/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  30. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  31. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  32. package/browser/esm2022/lib/utils.mjs +33 -144
  33. package/browser/esm2022/migrations/1736198527297_init.mjs +41 -0
  34. package/browser/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  35. package/browser/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  36. package/browser/esm2022/migrations/index.mjs +5 -0
  37. package/browser/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  38. package/browser/fesm2022/tnp-helpers.mjs +2136 -1591
  39. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  40. package/{client/lib/base → browser/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  41. package/browser/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  42. package/browser/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  43. package/{client/lib/base → browser/lib/base/classes}/base-library-build.d.ts +1 -1
  44. package/{websql/lib/base → browser/lib/base/classes}/base-linked-projects.d.ts +1 -1
  45. package/{client/lib/base → browser/lib/base/classes}/base-project-resolver.d.ts +4 -4
  46. package/browser/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  47. package/browser/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  48. package/browser/lib/base/classes/base-vscode.d.ts +24 -0
  49. package/browser/lib/base/classes/index.d.ts +16 -0
  50. package/browser/lib/base/config-database.d.ts +2 -2
  51. package/browser/lib/base/core-project.d.ts +1 -1
  52. package/browser/lib/base/index.d.ts +3 -16
  53. package/browser/lib/base/project-database.d.ts +2 -2
  54. package/browser/lib/base/tcp-udp-ports/index.d.ts +5 -0
  55. package/browser/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  56. package/browser/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  57. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  58. package/browser/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  59. package/browser/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  60. package/browser/lib/utils.d.ts +2 -38
  61. package/browser/migrations/1736198527297_init.d.ts +19 -0
  62. package/browser/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  63. package/browser/migrations/1736454437350_addFreePorts.d.ts +10 -0
  64. package/browser/migrations/index.d.ts +2 -0
  65. package/browser/migrations/migrations_index._auto-generated_.d.ts +12 -0
  66. package/client/README.md +24 -24
  67. package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  68. package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  69. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  70. package/client/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  71. package/client/esm2022/lib/base/classes/base-db.mjs +31 -0
  72. package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  73. package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  74. package/client/esm2022/lib/base/classes/base-git.mjs +932 -0
  75. package/client/esm2022/lib/base/classes/base-github-pages.mjs +110 -0
  76. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-library-build.mjs +2 -2
  77. package/client/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  78. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  79. package/client/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  80. package/client/esm2022/lib/base/classes/base-project.mjs +926 -0
  81. package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  82. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-release-process.mjs +3 -3
  83. package/client/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  84. package/client/esm2022/lib/base/classes/index.mjs +22 -0
  85. package/client/esm2022/lib/base/commit-data.mjs +1 -1
  86. package/client/esm2022/lib/base/config-database.mjs +5 -2
  87. package/client/esm2022/lib/base/core-project.mjs +1 -1
  88. package/client/esm2022/lib/base/index.mjs +3 -19
  89. package/client/esm2022/lib/base/project-database.mjs +2 -2
  90. package/client/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  91. package/client/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  92. package/client/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  93. package/client/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  94. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  95. package/client/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  96. package/client/esm2022/lib/utils.mjs +33 -144
  97. package/client/esm2022/migrations/1736198527297_init.mjs +41 -0
  98. package/client/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  99. package/client/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  100. package/client/esm2022/migrations/index.mjs +5 -0
  101. package/client/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  102. package/client/fesm2022/tnp-helpers.mjs +2136 -1591
  103. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  104. package/{browser/lib/base → client/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  105. package/client/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  106. package/{websql/lib/base → client/lib/base/classes}/base-git.d.ts +1 -1
  107. package/{browser/lib/base → client/lib/base/classes}/base-library-build.d.ts +1 -1
  108. package/{browser/lib/base → client/lib/base/classes}/base-linked-projects.d.ts +1 -1
  109. package/{websql/lib/base → client/lib/base/classes}/base-project-resolver.d.ts +4 -4
  110. package/client/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  111. package/client/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  112. package/client/lib/base/classes/base-vscode.d.ts +24 -0
  113. package/client/lib/base/classes/index.d.ts +16 -0
  114. package/client/lib/base/config-database.d.ts +2 -2
  115. package/client/lib/base/core-project.d.ts +1 -1
  116. package/client/lib/base/index.d.ts +3 -16
  117. package/client/lib/base/project-database.d.ts +2 -2
  118. package/client/lib/base/tcp-udp-ports/index.d.ts +5 -0
  119. package/client/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  120. package/client/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  121. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  122. package/client/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  123. package/client/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  124. package/client/lib/utils.d.ts +2 -38
  125. package/client/migrations/1736198527297_init.d.ts +19 -0
  126. package/client/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  127. package/client/migrations/1736454437350_addFreePorts.d.ts +10 -0
  128. package/client/migrations/index.d.ts +2 -0
  129. package/client/migrations/migrations_index._auto-generated_.d.ts +12 -0
  130. package/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +4 -4
  131. package/lib/base/{base-cli-worker-controller.js → classes/base-cli-worker-controller.js} +3 -3
  132. package/lib/base/classes/base-cli-worker-controller.js.map +1 -0
  133. package/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  134. package/lib/base/{base-cli-worker.js → classes/base-cli-worker.js} +48 -29
  135. package/lib/base/classes/base-cli-worker.js.map +1 -0
  136. package/lib/base/{command-line-feature.backend.d.ts → classes/base-command-line-feature.backend.d.ts} +1 -1
  137. package/lib/base/{command-line-feature.backend.js → classes/base-command-line-feature.backend.js} +15 -15
  138. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -0
  139. package/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +2 -2
  140. package/lib/base/{base-compiler-for-project.js → classes/base-compiler-for-project.js} +1 -1
  141. package/lib/base/{base-compiler-for-project.js.map → classes/base-compiler-for-project.js.map} +1 -1
  142. package/lib/base/{base-db.d.ts → classes/base-db.d.ts} +1 -1
  143. package/lib/base/{base-db.js → classes/base-db.js} +1 -1
  144. package/lib/base/{base-db.js.map → classes/base-db.js.map} +1 -1
  145. package/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +2 -2
  146. package/lib/base/{base-debounce-compiler-for-project.js.map → classes/base-debounce-compiler-for-project.js.map} +1 -1
  147. package/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  148. package/lib/base/{base-git.js → classes/base-git.js} +3 -3
  149. package/lib/base/{base-git.js.map → classes/base-git.js.map} +1 -1
  150. package/lib/base/{base-github-pages.js → classes/base-github-pages.js} +1 -1
  151. package/lib/base/{base-github-pages.js.map → classes/base-github-pages.js.map} +1 -1
  152. package/lib/base/{base-command-line.backend.d.ts → classes/base-global-command-line.backend.d.ts} +17 -4
  153. package/lib/base/{base-command-line.backend.js → classes/base-global-command-line.backend.js} +236 -161
  154. package/lib/base/classes/base-global-command-line.backend.js.map +1 -0
  155. package/lib/base/{base-ignore-hide.js → classes/base-ignore-hide.js} +1 -1
  156. package/lib/base/{base-ignore-hide.js.map → classes/base-ignore-hide.js.map} +1 -1
  157. package/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +3 -3
  158. package/lib/base/{base-library-build.js → classes/base-library-build.js} +2 -2
  159. package/lib/base/{base-library-build.js.map → classes/base-library-build.js.map} +1 -1
  160. package/lib/base/{base-linked-projects.d.ts → classes/base-linked-projects.d.ts} +1 -1
  161. package/lib/base/{base-linked-projects.js → classes/base-linked-projects.js} +1 -1
  162. package/lib/base/{base-linked-projects.js.map → classes/base-linked-projects.js.map} +1 -1
  163. package/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +3 -3
  164. package/lib/base/{base-npm-helpers.js → classes/base-npm-helpers.js} +1 -1
  165. package/lib/base/{base-npm-helpers.js.map → classes/base-npm-helpers.js.map} +1 -1
  166. package/lib/base/{base-project-resolver.d.ts → classes/base-project-resolver.d.ts} +4 -4
  167. package/lib/base/{base-project-resolver.js → classes/base-project-resolver.js} +6 -6
  168. package/lib/base/{base-project-resolver.js.map → classes/base-project-resolver.js.map} +1 -1
  169. package/lib/base/{base-project.d.ts → classes/base-project.d.ts} +14 -7
  170. package/lib/base/{base-project.js → classes/base-project.js} +34 -5
  171. package/lib/base/classes/base-project.js.map +1 -0
  172. package/lib/base/{base-quick-fixes.js → classes/base-quick-fixes.js} +1 -1
  173. package/lib/base/{base-quick-fixes.js.map → classes/base-quick-fixes.js.map} +1 -1
  174. package/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +3 -3
  175. package/lib/base/{base-release-process.js → classes/base-release-process.js} +2 -2
  176. package/lib/base/{base-release-process.js.map → classes/base-release-process.js.map} +1 -1
  177. package/lib/base/{base-start-config.backend.js → classes/base-start-config.backend.js} +2 -2
  178. package/lib/base/{base-start-config.backend.js.map → classes/base-start-config.backend.js.map} +1 -1
  179. package/lib/base/classes/base-vscode.d.ts +23 -0
  180. package/lib/base/classes/base-vscode.js +451 -0
  181. package/lib/base/classes/base-vscode.js.map +1 -0
  182. package/lib/base/classes/index.d.ts +18 -0
  183. package/lib/base/classes/index.js +24 -0
  184. package/lib/base/classes/index.js.map +1 -0
  185. package/lib/base/commit-data.js.map +1 -1
  186. package/lib/base/config-database.d.ts +2 -2
  187. package/lib/base/config-database.js +5 -8
  188. package/lib/base/config-database.js.map +1 -1
  189. package/lib/base/core-project.d.ts +3 -3
  190. package/lib/base/gh-temp-code.d.ts +1 -1
  191. package/lib/base/index.d.ts +2 -18
  192. package/lib/base/index.js +2 -18
  193. package/lib/base/index.js.map +1 -1
  194. package/lib/base/project-database.d.ts +2 -2
  195. package/lib/base/project-database.js +1 -1
  196. package/lib/base/project-database.js.map +1 -1
  197. package/lib/base/tcp-udp-ports/index.d.ts +4 -0
  198. package/lib/base/tcp-udp-ports/index.js +8 -0
  199. package/lib/base/tcp-udp-ports/index.js.map +1 -0
  200. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +6 -0
  201. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +45 -0
  202. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -0
  203. package/lib/base/tcp-udp-ports/ports.controller.d.ts +19 -0
  204. package/lib/base/tcp-udp-ports/ports.controller.js +135 -0
  205. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -0
  206. package/lib/base/tcp-udp-ports/ports.entity.d.ts +14 -0
  207. package/lib/base/tcp-udp-ports/ports.entity.js +45 -0
  208. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -0
  209. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +58 -0
  210. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +41 -0
  211. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -0
  212. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +31 -0
  213. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +215 -0
  214. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -0
  215. package/lib/helpers/for-backend/helpers-cli-tool.backend.d.ts +1 -1
  216. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  217. package/lib/helpers/for-backend/helpers-console-gui.js +2 -1
  218. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  219. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
  220. package/lib/helpers/for-backend/helpers-git.backend.js +2 -2
  221. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  222. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -3
  223. package/lib/helpers/for-backend/helpers-process.backend.js +4 -26
  224. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  225. package/lib/helpers/for-backend/helpers-vscode.backend.d.ts +2 -2
  226. package/lib/helpers/for-browser/angular.helper.js +2 -2
  227. package/lib/helpers/helpers.d.ts +1 -1
  228. package/lib/models.d.ts +2 -2
  229. package/lib/old/base-component.js +2 -2
  230. package/lib/old/base-formly-component.js +2 -2
  231. package/lib/old/dual-component-ctrl.js +2 -2
  232. package/lib/utils.d.ts +2 -38
  233. package/lib/utils.js +51 -158
  234. package/lib/utils.js.map +1 -1
  235. package/migrations/1736198527297_init.d.ts +18 -0
  236. package/migrations/1736198527297_init.js +72 -0
  237. package/migrations/1736198527297_init.js.map +1 -0
  238. package/migrations/1736199486472_addingNotAssignablePorts.d.ts +10 -0
  239. package/migrations/1736199486472_addingNotAssignablePorts.js +94 -0
  240. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -0
  241. package/migrations/1736454437350_addFreePorts.d.ts +9 -0
  242. package/migrations/1736454437350_addFreePorts.js +78 -0
  243. package/migrations/1736454437350_addFreePorts.js.map +1 -0
  244. package/migrations/migrations_index._auto-generated_.d.ts +11 -0
  245. package/migrations/migrations_index._auto-generated_.js +14 -0
  246. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  247. package/package.json +5 -5
  248. package/taon.jsonc +49 -49
  249. package/tmp-environment.json +30 -29
  250. package/websql/README.md +24 -24
  251. package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  252. package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  253. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  254. package/websql/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  255. package/websql/esm2022/lib/base/classes/base-db.mjs +31 -0
  256. package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  257. package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  258. package/{browser/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-git.mjs +2 -2
  259. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  260. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  261. package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  262. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  263. package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +280 -0
  264. package/websql/esm2022/lib/base/classes/base-project.mjs +896 -0
  265. package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  266. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  267. package/websql/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  268. package/websql/esm2022/lib/base/classes/index.mjs +22 -0
  269. package/websql/esm2022/lib/base/commit-data.mjs +1 -1
  270. package/websql/esm2022/lib/base/config-database.mjs +5 -2
  271. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  272. package/websql/esm2022/lib/base/index.mjs +3 -19
  273. package/websql/esm2022/lib/base/project-database.mjs +2 -2
  274. package/websql/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  275. package/websql/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +34 -0
  276. package/websql/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  277. package/websql/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +34 -0
  278. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  279. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  280. package/websql/esm2022/lib/utils.mjs +33 -144
  281. package/websql/esm2022/migrations/1736198527297_init.mjs +41 -0
  282. package/websql/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  283. package/websql/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  284. package/websql/esm2022/migrations/index.mjs +5 -0
  285. package/websql/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  286. package/websql/fesm2022/tnp-helpers.mjs +1942 -1379
  287. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  288. package/websql/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +2 -2
  289. package/websql/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  290. package/{client/lib/base → websql/lib/base/classes}/base-git.d.ts +1 -1
  291. package/websql/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +1 -1
  292. package/{client/lib/base → websql/lib/base/classes}/base-linked-projects.d.ts +1 -1
  293. package/{browser/lib/base → websql/lib/base/classes}/base-project-resolver.d.ts +4 -4
  294. package/websql/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  295. package/websql/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  296. package/websql/lib/base/classes/base-vscode.d.ts +24 -0
  297. package/websql/lib/base/classes/index.d.ts +16 -0
  298. package/websql/lib/base/config-database.d.ts +2 -2
  299. package/websql/lib/base/core-project.d.ts +1 -1
  300. package/websql/lib/base/index.d.ts +3 -16
  301. package/websql/lib/base/project-database.d.ts +2 -2
  302. package/websql/lib/base/tcp-udp-ports/index.d.ts +5 -0
  303. package/websql/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  304. package/websql/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  305. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  306. package/websql/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  307. package/websql/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  308. package/websql/lib/utils.d.ts +2 -38
  309. package/websql/migrations/1736198527297_init.d.ts +19 -0
  310. package/websql/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  311. package/websql/migrations/1736454437350_addFreePorts.d.ts +10 -0
  312. package/websql/migrations/index.d.ts +2 -0
  313. package/websql/migrations/migrations_index._auto-generated_.d.ts +12 -0
  314. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  315. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  316. package/browser/esm2022/lib/base/base-cli-worker.mjs +0 -451
  317. package/browser/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  318. package/browser/esm2022/lib/base/base-db.mjs +0 -31
  319. package/browser/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  320. package/browser/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  321. package/browser/esm2022/lib/base/base-github-pages.mjs +0 -110
  322. package/browser/esm2022/lib/base/base-linked-projects.mjs +0 -321
  323. package/browser/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  324. package/browser/esm2022/lib/base/base-project-resolver.mjs +0 -291
  325. package/browser/esm2022/lib/base/base-project.mjs +0 -911
  326. package/browser/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  327. package/browser/esm2022/lib/base/base-vscode.mjs +0 -145
  328. package/browser/esm2022/lib/base/ports-worker.mjs +0 -162
  329. package/browser/lib/base/base-vscode.d.ts +0 -13
  330. package/browser/lib/base/ports-worker.d.ts +0 -33
  331. package/client/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  332. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  333. package/client/esm2022/lib/base/base-cli-worker.mjs +0 -451
  334. package/client/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  335. package/client/esm2022/lib/base/base-db.mjs +0 -31
  336. package/client/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  337. package/client/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  338. package/client/esm2022/lib/base/base-git.mjs +0 -932
  339. package/client/esm2022/lib/base/base-linked-projects.mjs +0 -321
  340. package/client/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  341. package/client/esm2022/lib/base/base-project-resolver.mjs +0 -291
  342. package/client/esm2022/lib/base/base-project.mjs +0 -911
  343. package/client/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  344. package/client/esm2022/lib/base/base-vscode.mjs +0 -145
  345. package/client/esm2022/lib/base/ports-worker.mjs +0 -162
  346. package/client/lib/base/base-vscode.d.ts +0 -13
  347. package/client/lib/base/ports-worker.d.ts +0 -33
  348. package/lib/base/base-cli-worker-controller.js.map +0 -1
  349. package/lib/base/base-cli-worker.js.map +0 -1
  350. package/lib/base/base-command-line.backend.js.map +0 -1
  351. package/lib/base/base-project.js.map +0 -1
  352. package/lib/base/base-vscode.d.ts +0 -12
  353. package/lib/base/base-vscode.js +0 -139
  354. package/lib/base/base-vscode.js.map +0 -1
  355. package/lib/base/command-line-feature.backend.js.map +0 -1
  356. package/lib/base/ports-worker.d.ts +0 -32
  357. package/lib/base/ports-worker.js +0 -244
  358. package/lib/base/ports-worker.js.map +0 -1
  359. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  360. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  361. package/websql/esm2022/lib/base/base-cli-worker.mjs +0 -451
  362. package/websql/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  363. package/websql/esm2022/lib/base/base-db.mjs +0 -31
  364. package/websql/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  365. package/websql/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  366. package/websql/esm2022/lib/base/base-linked-projects.mjs +0 -321
  367. package/websql/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  368. package/websql/esm2022/lib/base/base-project-resolver.mjs +0 -280
  369. package/websql/esm2022/lib/base/base-project.mjs +0 -883
  370. package/websql/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  371. package/websql/esm2022/lib/base/base-vscode.mjs +0 -145
  372. package/websql/esm2022/lib/base/ports-worker.mjs +0 -165
  373. package/websql/lib/base/base-vscode.d.ts +0 -13
  374. package/websql/lib/base/ports-worker.d.ts +0 -33
  375. /package/browser/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  376. /package/browser/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  377. /package/browser/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  378. /package/browser/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  379. /package/browser/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  380. /package/browser/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  381. /package/browser/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  382. /package/browser/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  383. /package/client/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  384. /package/client/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  385. /package/client/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  386. /package/client/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  387. /package/client/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  388. /package/client/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  389. /package/client/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  390. /package/client/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  391. /package/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  392. /package/lib/base/{base-cli-worker-config.js → classes/base-cli-worker-config.js} +0 -0
  393. /package/lib/base/{base-cli-worker-config.js.map → classes/base-cli-worker-config.js.map} +0 -0
  394. /package/lib/base/{base-debounce-compiler-for-project.js → classes/base-debounce-compiler-for-project.js} +0 -0
  395. /package/lib/base/{base-detached-service.d.ts → classes/base-detached-service.d.ts} +0 -0
  396. /package/lib/base/{base-detached-service.js → classes/base-detached-service.js} +0 -0
  397. /package/lib/base/{base-detached-service.js.map → classes/base-detached-service.js.map} +0 -0
  398. /package/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  399. /package/lib/base/{base-feature-for-project.js → classes/base-feature-for-project.js} +0 -0
  400. /package/lib/base/{base-feature-for-project.js.map → classes/base-feature-for-project.js.map} +0 -0
  401. /package/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  402. /package/lib/base/{base-ignore-hide.d.ts → classes/base-ignore-hide.d.ts} +0 -0
  403. /package/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  404. /package/lib/base/{base-start-config.backend.d.ts → classes/base-start-config.backend.d.ts} +0 -0
  405. /package/websql/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  406. /package/websql/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  407. /package/websql/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  408. /package/websql/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  409. /package/websql/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  410. /package/websql/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  411. /package/websql/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  412. /package/websql/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
@@ -0,0 +1,122 @@
1
+ import { BaseCliWorker } from '../classes/base-cli-worker';
2
+ import { PortsController } from '../tcp-udp-ports/ports.controller';
3
+ import { PortsContext } from '../tcp-udp-ports/tcp-udp-ports.context';
4
+ export class PortsWorker extends BaseCliWorker {
5
+ async getControllerForRemoteConnection() {
6
+ if (this.portsController) {
7
+ return this.portsController;
8
+ }
9
+ await this.waitForProcessPortSavedToDisk();
10
+ const refRemote = await PortsContext.initialize({
11
+ overrideRemoteHost: `http://localhost:${this.processLocalInfoObj.port}`,
12
+ });
13
+ this.portsController = refRemote.getInstanceBy(PortsController);
14
+ return this.portsController;
15
+ }
16
+ async headerText() {
17
+ return 'TCP/UDP|Ports DB';
18
+ }
19
+ textHeaderStyle() {
20
+ return 'block';
21
+ }
22
+ /**
23
+ * start normally process
24
+ * this will crash if process already started
25
+ */
26
+ async startNormallyInCurrentProcess() {
27
+ /* */
28
+ /* */
29
+ /* */
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ return (void 0);
44
+ }
45
+ async displayItemsForPortsStatus(status) {
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ return (void 0);
66
+ }
67
+ get backAction() {
68
+ return {
69
+ back: {
70
+ name: 'Back',
71
+ action: async () => {
72
+ return true;
73
+ },
74
+ },
75
+ };
76
+ }
77
+ getWorkerTerminalActions() {
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ /* */
91
+ /* */
92
+ /* */
93
+ /* */
94
+ /* */
95
+ /* */
96
+ /* */
97
+ /* */
98
+ /* */
99
+ /* */
100
+ /* */
101
+ /* */
102
+ /* */
103
+ /* */
104
+ /* */
105
+ /* */
106
+ /* */
107
+ /* */
108
+ /* */
109
+ /* */
110
+ /* */
111
+ /* */
112
+ /* */
113
+ /* */
114
+ /* */
115
+ /* */
116
+ /* */
117
+ return (void 0);
118
+ }
119
+ }
120
+ ;
121
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/tcp-upd-ports.worker.ts
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNwLXVwZC1wb3J0cy53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RjcC11ZHAtcG9ydHMvdGNwLXVwZC1wb3J0cy53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLdEUsTUFBTSxPQUFPLFdBQVksU0FBUSxhQUE4QjtJQUc3RCxLQUFLLENBQUMsZ0NBQWdDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFDOUMsa0JBQWtCLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7U0FDeEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBSVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBSVMsZUFBZTtRQUN2QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLDZCQUE2QjtRQUNyQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlTLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxNQUFrQjtRQUMvRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU87WUFDTCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNqQixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELHdCQUF3QjtRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVGQUF1RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEJhc2VDbGlXb3JrZXIsIENmb250U3R5bGUgfSBmcm9tICcuLi9jbGFzc2VzL2Jhc2UtY2xpLXdvcmtlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMsIFBvcnRTdGF0dXMsIFBvcnRTdGF0dXNBcnIgfSBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBQb3J0c0NvbnRyb2xsZXIgfSBmcm9tICcuLi90Y3AtdWRwLXBvcnRzL3BvcnRzLmNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUG9ydHNDb250ZXh0IH0gZnJvbSAnLi4vdGNwLXVkcC1wb3J0cy90Y3AtdWRwLXBvcnRzLmNvbnRleHQnO1xuaW1wb3J0IHsgVXRpbHNUZXJtaW5hbCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBjaGFsayB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cblxuZXhwb3J0IGNsYXNzIFBvcnRzV29ya2VyIGV4dGVuZHMgQmFzZUNsaVdvcmtlcjxQb3J0c0NvbnRyb2xsZXI+IHtcblxuICBwcml2YXRlIHBvcnRzQ29udHJvbGxlcjogUG9ydHNDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xuICBhc3luYyBnZXRDb250cm9sbGVyRm9yUmVtb3RlQ29ubmVjdGlvbigpOiBQcm9taXNlPFBvcnRzQ29udHJvbGxlcj4ge1xuICAgIGlmICh0aGlzLnBvcnRzQ29udHJvbGxlcikge1xuICAgICAgcmV0dXJuIHRoaXMucG9ydHNDb250cm9sbGVyO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JQcm9jZXNzUG9ydFNhdmVkVG9EaXNrKCk7XG4gICAgY29uc3QgcmVmUmVtb3RlID0gYXdhaXQgUG9ydHNDb250ZXh0LmluaXRpYWxpemUoe1xuICAgICAgb3ZlcnJpZGVSZW1vdGVIb3N0OiBgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMucHJvY2Vzc0xvY2FsSW5mb09iai5wb3J0fWAsXG4gICAgfSk7XG4gICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIgPSByZWZSZW1vdGUuZ2V0SW5zdGFuY2VCeShQb3J0c0NvbnRyb2xsZXIpO1xuICAgIHJldHVybiB0aGlzLnBvcnRzQ29udHJvbGxlcjtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGVhZGVyVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAnVENQL1VEUHxQb3J0cyBEQic7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIHRleHRIZWFkZXJTdHlsZSgpOiBDZm9udFN0eWxlIHtcbiAgICByZXR1cm4gJ2Jsb2NrJztcbiAgfVxuXG5cblxuICAvKipcbiAgICogc3RhcnQgbm9ybWFsbHkgcHJvY2Vzc1xuICAgKiB0aGlzIHdpbGwgY3Jhc2ggaWYgcHJvY2VzcyBhbHJlYWR5IHN0YXJ0ZWRcbiAgICovXG4gIGFzeW5jIHN0YXJ0Tm9ybWFsbHlJbkN1cnJlbnRQcm9jZXNzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRpc3BsYXlJdGVtc0ZvclBvcnRzU3RhdHVzKHN0YXR1czogUG9ydFN0YXR1cykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIGdldCBiYWNrQWN0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBiYWNrOiB7XG4gICAgICAgIG5hbWU6ICdCYWNrJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuXG4gIGdldFdvcmtlclRlcm1pbmFsQWN0aW9ucygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy90Y3AtdXBkLXBvcnRzLndvcmtlci50cyJdfQ==
@@ -32,6 +32,9 @@
32
32
  /* */
33
33
  /* */
34
34
  /* */
35
+ /* */
36
+ /* */
37
+ /* */
35
38
  import { CoreModels, Utils } from 'tnp-core/websql';
36
39
  export var UtilsNpm;
37
40
  (function (UtilsNpm) {
@@ -74,24 +77,16 @@ export var UtilsNpm;
74
77
  return `${major}.${minor}.${patch}${alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''}`;
75
78
  };
76
79
  })(UtilsNpm || (UtilsNpm = {}));
77
- export var UtilsTerminal;
78
- (function (UtilsTerminal) {
79
- const transformChoices = (choices) => {
80
- /* */
81
- /* */
82
- /* */
83
- /* */
84
- /* */
85
- /* */
86
- /* */
87
- /* */
88
- /* */
89
- /* */
90
- /* */
91
- /* */
92
- return (void 0);
93
- };
94
- UtilsTerminal.multiselect = async (options) => {
80
+ export var UtilsTypescript;
81
+ (function (UtilsTypescript) {
82
+ /**
83
+ * Remove TypeScript region blocks by their name, including nested regions.
84
+ *
85
+ * @param sourceCode - The TypeScript source code as a string.
86
+ * @param regionName - The name of the region to remove.
87
+ * @returns Modified TypeScript code without the specified regions.
88
+ */
89
+ UtilsTypescript.removeRegionByName = (sourceCode, regionName) => {
95
90
  /* */
96
91
  /* */
97
92
  /* */
@@ -167,9 +162,6 @@ export var UtilsTerminal;
167
162
  /* */
168
163
  /* */
169
164
  /* */
170
- return (void 0);
171
- };
172
- UtilsTerminal.select = async (options) => {
173
165
  /* */
174
166
  /* */
175
167
  /* */
@@ -213,33 +205,7 @@ export var UtilsTerminal;
213
205
  /* */
214
206
  return (void 0);
215
207
  };
216
- UtilsTerminal.input = async ({ defaultValue, question, required, // TODO something is werid with required
217
- }) => {
218
- /* */
219
- /* */
220
- /* */
221
- /* */
222
- /* */
223
- /* */
224
- /* */
225
- /* */
226
- /* */
227
- /* */
228
- /* */
229
- /* */
230
- /* */
231
- /* */
232
- /* */
233
- /* */
234
- /* */
235
- /* */
236
- /* */
237
- /* */
238
- /* */
239
- /* */
240
- /* */
241
- /* */
242
- /* */
208
+ const isExported = (node) => {
243
209
  /* */
244
210
  /* */
245
211
  /* */
@@ -247,21 +213,10 @@ export var UtilsTerminal;
247
213
  /* */
248
214
  return (void 0);
249
215
  };
250
- })(UtilsTerminal || (UtilsTerminal = {}));
251
- export var UtilsTypescript;
252
- (function (UtilsTypescript) {
253
216
  /**
254
- * Remove TypeScript region blocks by their name, including nested regions.
255
- *
256
- * @param sourceCode - The TypeScript source code as a string.
257
- * @param regionName - The name of the region to remove.
258
- * @returns Modified TypeScript code without the specified regions.
217
+ * Function to extract exports from a TypeScript file
259
218
  */
260
- UtilsTypescript.removeRegionByName = (sourceCode, regionName) => {
261
- /* */
262
- /* */
263
- /* */
264
- /* */
219
+ UtilsTypescript.exportsFromFile = (filePath) => {
265
220
  /* */
266
221
  /* */
267
222
  /* */
@@ -335,6 +290,9 @@ export var UtilsTypescript;
335
290
  /* */
336
291
  /* */
337
292
  /* */
293
+ return (void 0);
294
+ };
295
+ UtilsTypescript.extractDefaultClassNameFromString = (sourceCode) => {
338
296
  /* */
339
297
  /* */
340
298
  /* */
@@ -356,6 +314,9 @@ export var UtilsTypescript;
356
314
  /* */
357
315
  /* */
358
316
  /* */
317
+ return (void 0);
318
+ };
319
+ UtilsTypescript.extractClassNameFromString = (sourceCode) => {
359
320
  /* */
360
321
  /* */
361
322
  /* */
@@ -376,70 +337,19 @@ export var UtilsTypescript;
376
337
  /* */
377
338
  return (void 0);
378
339
  };
379
- const isExported = (node) => {
380
- /* */
381
- /* */
340
+ UtilsTypescript.extractClassNamesFromFile = (absoluteFilePath) => {
382
341
  /* */
383
342
  /* */
384
343
  /* */
385
344
  return (void 0);
386
345
  };
387
- /**
388
- * Function to extract exports from a TypeScript file
389
- */
390
- UtilsTypescript.exportsFromFile = (filePath) => {
391
- /* */
392
- /* */
393
- /* */
394
- /* */
395
- /* */
396
- /* */
397
- /* */
398
- /* */
399
- /* */
400
- /* */
401
- /* */
402
- /* */
403
- /* */
404
- /* */
405
- /* */
406
- /* */
407
- /* */
408
- /* */
409
- /* */
410
- /* */
411
- /* */
412
- /* */
413
- /* */
414
- /* */
415
- /* */
416
- /* */
417
- /* */
418
- /* */
419
- /* */
420
- /* */
421
- /* */
422
- /* */
423
- /* */
424
- /* */
425
- /* */
426
- /* */
427
- /* */
428
- /* */
429
- /* */
430
- /* */
431
- /* */
432
- /* */
433
- /* */
434
- /* */
435
- /* */
436
- /* */
437
- /* */
438
- /* */
439
- /* */
346
+ UtilsTypescript.extractDefaultClassNameFromFile = (absoluteFilePath) => {
440
347
  /* */
441
348
  /* */
442
349
  /* */
350
+ return (void 0);
351
+ };
352
+ UtilsTypescript.formatFile = (absPathToFile) => {
443
353
  /* */
444
354
  /* */
445
355
  /* */
@@ -452,6 +362,9 @@ export var UtilsTypescript;
452
362
  /* */
453
363
  /* */
454
364
  /* */
365
+ return (void 0);
366
+ };
367
+ UtilsTypescript.formatAllFilesInsideFolder = (absPathToFolder) => {
455
368
  /* */
456
369
  /* */
457
370
  /* */
@@ -463,7 +376,7 @@ export var UtilsTypescript;
463
376
  /* */
464
377
  return (void 0);
465
378
  };
466
- UtilsTypescript.extractDefaultClassNameFromString = (sourceCode) => {
379
+ UtilsTypescript.getTaonContextFromContent = (fileContent) => {
467
380
  /* */
468
381
  /* */
469
382
  /* */
@@ -485,9 +398,6 @@ export var UtilsTypescript;
485
398
  /* */
486
399
  /* */
487
400
  /* */
488
- return (void 0);
489
- };
490
- UtilsTypescript.extractClassNameFromString = (sourceCode) => {
491
401
  /* */
492
402
  /* */
493
403
  /* */
@@ -505,22 +415,8 @@ export var UtilsTypescript;
505
415
  /* */
506
416
  /* */
507
417
  /* */
508
- /* */
509
- return (void 0);
510
- };
511
- UtilsTypescript.extractClassNamesFromFile = (absoluteFilePath) => {
512
- /* */
513
- /* */
514
- /* */
515
- return (void 0);
516
- };
517
- UtilsTypescript.extractDefaultClassNameFromFile = (absoluteFilePath) => {
518
418
  /* */
519
419
  /* */
520
- /* */
521
- return (void 0);
522
- };
523
- UtilsTypescript.formatFile = (absPathToFile) => {
524
420
  /* */
525
421
  /* */
526
422
  /* */
@@ -535,14 +431,7 @@ export var UtilsTypescript;
535
431
  /* */
536
432
  return (void 0);
537
433
  };
538
- UtilsTypescript.formatAllFilesInsideFolder = (absPathToFolder) => {
539
- /* */
540
- /* */
541
- /* */
542
- /* */
543
- /* */
544
- /* */
545
- /* */
434
+ UtilsTypescript.getTaonContextsNamesFromFile = (tsAbsFilePath) => {
546
435
  /* */
547
436
  /* */
548
437
  return (void 0);
@@ -699,4 +588,4 @@ export var UtilsQuickFixes;
699
588
  })(UtilsQuickFixes || (UtilsQuickFixes = {}));
700
589
  ;
701
590
  ({}); // @--end-of-file-for-module=tnp-helpers lib/utils.ts
702
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFZLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk5RCxNQUFNLEtBQVcsUUFBUSxDQTREeEI7QUE1REQsV0FBaUIsUUFBUTtJQUVWLHlCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxVQUFVLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUlXLHFCQUFZLEdBQUcsQ0FDMUIsT0FBZSxFQUNmLE9BTUMsRUFDRCxFQUFFO1FBQ0YsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxPQUFPLElBQUksU0FBQSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8s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QUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSVcsb0JBQU0sR0FBRyxLQUFLLEVBQWMsT0FPeEMsRUFBYyxFQUFFO1FBQ25CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSVcsbUJBQUssR0FBRyxLQUFLLEVBQUUsRUFDMUIsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQUUsd0NBQXdDO01BTW5ELEVBQW1CLEVBQUU7UUFDeEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQWxOZ0IsYUFBYSxLQUFiLGFBQWEsUUFrTjdCO0FBSUQsTUFBTSxLQUFXLGVBQWUsQ0F3Vi9CO0FBeFZELFdBQWlCLGVBQWU7SUFFOUI7Ozs7OztPQU1HO0lBQ1Usa0NBQWtCLEdBQUcsQ0FDaEMsVUFBa0IsRUFDbEIsVUFBa0IsRUFDVixFQUFFO1FBQ2QsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFNRixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBVyxFQUFFO1FBQzdDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSUY7O09BRUc7SUFDVSwrQkFBZSxHQUFHLENBQzdCLFFBQWdCLEVBZWQsRUFBRTtRQUNSLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFPVyxpREFBaUMsR0FBRyxDQUMvQyxVQUFrQixFQUNFLEVBQUU7UUFDMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcsMENBQTBCLEdBQUcsQ0FBQyxVQUFrQixFQUFZLEVBQUU7UUFDN0UsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUss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SUFDVSwrQkFBdUIsR0FBRyxDQUNyQyxhQUFxQixFQUNyQixLQUFLLEdBQUcsQ0FBQyxFQUNELEVBQUU7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7QUFDSixDQUFDLEVBL0ZnQixPQUFPLEtBQVAsT0FBTyxRQStGdkI7QUFJRCxNQUFNLEtBQVcsZUFBZSxDQXdCL0I7QUF4QkQsV0FBaUIsZUFBZTtJQUU5Qjs7O09BR0c7SUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxrQkFBMEI7UUFDckUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBaEJlLHdDQUF3QiwyQkFnQnZDLENBQUE7QUFFSCxDQUFDLEVBeEJnQixlQUFlLEtBQWYsZUFBZSxRQXdCL0I7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuaW1wb3J0IHsgXywgY2hhbGssIENvcmVNb2RlbHMsIFV0aWxzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVXRpbHNOcG0ge1xuXG4gIGV4cG9ydCBjb25zdCBpc1NwZWNpYWxWZXJzaW9uID0gKHZlcnNpb246IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBDb3JlTW9kZWxzLk5wbVNwZWNpYWxWZXJzaW9ucy5pbmNsdWRlcyh2ZXJzaW9uKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGNsZWFyVmVyc2lvbiA9IChcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVtb3ZlUHJlZml4ZXM/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgYWxwaGEsIGJldGEsIHJjLCBsYXRlc3QsIG5leHQgZXRjLlxuICAgICAgICovXG4gICAgICByZW1vdmVTdWZmaXg/OiBib29sZWFuO1xuICAgIH0sXG4gICkgPT4ge1xuICAgIGNvbnN0IHsgcmVtb3ZlUHJlZml4ZXMsIHJlbW92ZVN1ZmZpeCB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgIGlmICghdmVyc2lvbiB8fCBpc1NwZWNpYWxWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG5cbiAgICB2ZXJzaW9uID0gKHZlcnNpb24gfHwgJycpXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFV0aWxzLmVzY2FwZVN0cmluZ0ZvclJlZ0V4KCd1bmRlZmluZWQnKSwgJ2cnKSwgJzAnKTtcblxuICAgIGlmIChyZW1vdmVQcmVmaXhlcykge1xuICAgICAgdmVyc2lvbiA9IHZlcnNpb24ucmVwbGFjZSgnXicsICcnKS5yZXBsYWNlKCd+JywgJycpO1xuICAgIH1cbiAgICBsZXQgW21ham9yLCBtaW5vciwgcGF0Y2gsIGFscGhhT3JCZXRhT3JSY10gPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgaWYgKHJlbW92ZVN1ZmZpeCkge1xuICAgICAgYWxwaGFPckJldGFPclJjID0gJyc7XG4gICAgfVxuICAgIHJldHVybiBmaXhNYWpvclZlck51bWJlcihcbiAgICAgIGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofSR7YWxwaGFPckJldGFPclJjID8gJy4nICsgYWxwaGFPckJldGFPclJjIDogJyd9YCxcbiAgICApO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZml4TWFqb3JWZXJOdW1iZXIgPSAodmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF2ZXJzaW9uIHx8IGlzU3BlY2lhbFZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cbiAgICB2ZXJzaW9uID0gKHZlcnNpb24gfHwgJycpXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFV0aWxzLmVzY2FwZVN0cmluZ0ZvclJlZ0V4KCd1bmRlZmluZWQnKSwgJ2cnKSwgJzAnKTtcbiAgICBjb25zdCBzcGxpdGVkID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGxldCBbbWFqb3IsIG1pbm9yLCBwYXRjaCwgYWxwaGFPckJldGFPclJjXSA9IHNwbGl0ZWQ7XG4gICAgaWYgKHNwbGl0ZWQubGVuZ3RoID09PSAxKSB7XG4gICAgICBtaW5vciA9ICcwJztcbiAgICAgIHBhdGNoID0gJzAnO1xuICAgIH0gZWxzZSBpZiAoc3BsaXRlZC5sZW5ndGggPT09IDIpIHtcbiAgICAgIHBhdGNoID0gJzAnO1xuICAgIH1cbiAgICByZXR1cm4gYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9JHthbHBoYU9yQmV0YU9yUmMgPyAnLicgKyBhbHBoYU9yQmV0YU9yUmMgOiAnJ31gO1xuICB9O1xuXG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzVGVybWluYWwge1xuXG4gIGNvbnN0IHRyYW5zZm9ybUNob2ljZXMgPSAoXG4gICAgY2hvaWNlczogYW55LFxuICApOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IG11bHRpc2VsZWN0ID0gYXN5bmMgPFQgPSBzdHJpbmc+KG9wdGlvbnM6IHtcbiAgICBxdWVzdGlvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZW4gb25seSBvbmUgY2hvaWNlIGNhbiBiZSBzZWxlY3RlZFxuICAgICAqL1xuICAgIG9ubHlPbmVDaG9pY2U/OiBib29sZWFuO1xuICAgIGNob2ljZXM6XG4gICAgICB8IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogVCB9W11cbiAgICAgIHwgeyBbY2hvaWNlOiBzdHJpbmddOiB7IG5hbWU6IHN0cmluZyB9IH07XG4gICAgYXV0b2NvbXBsZXRlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0U2VsZWN0ZWQ/OiBzdHJpbmdbXTtcbiAgfSk6IFByb21pc2U8VFtdPiA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3Qgc2VsZWN0ID0gYXN5bmMgPFQgPSBzdHJpbmc+KG9wdGlvbnM6IHtcbiAgICBxdWVzdGlvbjogc3RyaW5nO1xuICAgIGNob2ljZXM6XG4gICAgICB8IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogVCB9W11cbiAgICAgIHwgeyBbY2hvaWNlOiBzdHJpbmddOiB7IG5hbWU6IHN0cmluZyB9IH07XG4gICAgYXV0b2NvbXBsZXRlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0U2VsZWN0ZWQ/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGlucHV0ID0gYXN5bmMgKHtcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgcXVlc3Rpb24sXG4gICAgcmVxdWlyZWQsIC8vIFRPRE8gc29tZXRoaW5nIGlzIHdlcmlkIHdpdGggcmVxdWlyZWRcbiAgfToge1xuICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgICBxdWVzdGlvbjogc3RyaW5nO1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICB2YWxpZGF0ZT86ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzVHlwZXNjcmlwdCB7XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBUeXBlU2NyaXB0IHJlZ2lvbiBibG9ja3MgYnkgdGhlaXIgbmFtZSwgaW5jbHVkaW5nIG5lc3RlZCByZWdpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlQ29kZSAtIFRoZSBUeXBlU2NyaXB0IHNvdXJjZSBjb2RlIGFzIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcmVnaW9uTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByZWdpb24gdG8gcmVtb3ZlLlxuICAgKiBAcmV0dXJucyBNb2RpZmllZCBUeXBlU2NyaXB0IGNvZGUgd2l0aG91dCB0aGUgc3BlY2lmaWVkIHJlZ2lvbnMuXG4gICAqL1xuICBleHBvcnQgY29uc3QgcmVtb3ZlUmVnaW9uQnlOYW1lID0gKFxuICAgIHNvdXJjZUNvZGU6IHN0cmluZyxcbiAgICByZWdpb25OYW1lOiBzdHJpbmcsXG4gICk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG5cblxuICBjb25zdCBpc0V4cG9ydGVkID0gKG5vZGU6IE5vZGUpOiBib29sZWFuID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGV4dHJhY3QgZXhwb3J0cyBmcm9tIGEgVHlwZVNjcmlwdCBmaWxlXG4gICAqL1xuICBleHBvcnQgY29uc3QgZXhwb3J0c0Zyb21GaWxlID0gKFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICk6IHtcbiAgICB0eXBlOlxuICAgICAgfCAnY2xhc3MnXG4gICAgICB8ICdmdW5jdGlvbidcbiAgICAgIHwgJ2NvbnN0J1xuICAgICAgfCAnbGV0J1xuICAgICAgfCAndmFyJ1xuICAgICAgfCAnZW51bSdcbiAgICAgIHwgJ3R5cGUnXG4gICAgICB8ICdpbnRlcmZhY2UnXG4gICAgICB8ICdkZWZhdWx0J1xuICAgICAgfCAnbW9kdWxlJ1xuICAgICAgfCAnbmFtZXNwYWNlJztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1bXSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3REZWZhdWx0Q2xhc3NOYW1lRnJvbVN0cmluZyA9IChcbiAgICBzb3VyY2VDb2RlOiBzdHJpbmcsXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0Q2xhc3NOYW1lRnJvbVN0cmluZyA9IChzb3VyY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0Q2xhc3NOYW1lc0Zyb21GaWxlID0gKFxuICAgIGFic29sdXRlRmlsZVBhdGg6IHN0cmluZyxcbiAgKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgZXh0cmFjdERlZmF1bHRDbGFzc05hbWVGcm9tRmlsZSA9IChhYnNvbHV0ZUZpbGVQYXRoOiBzdHJpbmcpID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBmb3JtYXRGaWxlID0gKGFic1BhdGhUb0ZpbGU6IHN0cmluZyk6IHZvaWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgZm9ybWF0QWxsRmlsZXNJbnNpZGVGb2xkZXIgPSAoYWJzUGF0aFRvRm9sZGVyOiBzdHJpbmcpOiB2b2lkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbn1cblxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc0h0dHAge1xuXG4gIGV4cG9ydCBjb25zdCBzdGFydEh0dHBTZXJ2ZXIgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHBvcnQ6IG51bWJlcikgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTWQge1xuICAvKipcbiAgICogZXh0cmFjdCBhc3NldHMgcGF0aGVzIGZyb20gLm1kIGZpbGVcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRBc3NldHMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGxpbmtzIHRvIG90aGVyIE1hcmtkb3duIGZpbGVzIGZyb20gYSBnaXZlbiBNYXJrZG93biBjb250ZW50LlxuICAgKiBAcGFyYW0gbWRmaWxlQ29udGVudFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGdldExpbmtzVG9PdGhlck1kRmlsZXMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1vdmUgYXNzZXQgcGF0aHMgdG8gYSBoaWdoZXIgZGlyZWN0b3J5IGxldmVsIGJ5IGFkZGluZyBcIi4uL1wiIGJlZm9yZSBlYWNoIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBtZGZpbGVDb250ZW50IC0gVGhlIGNvbnRlbnQgb2YgdGhlIC5tZCBmaWxlLlxuICAgKiBAcGFyYW0gbGV2ZWwgLSBUaGUgbnVtYmVyIG9mIGxldmVscyB0byBnbyB1cCAoZGVmYXVsdCBpcyAxKS5cbiAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGNvbnRlbnQgd2l0aCB1cGRhdGVkIGFzc2V0IHBhdGhzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IG1vdmVBc3NldHNQYXRoZXNUb0xldmVsID0gKFxuICAgIG1kZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgICBsZXZlbCA9IDEsXG4gICk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1F1aWNrRml4ZXMge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZV9tb2R1bGVzL3NxbC5qcy9kaXN0L3NxbC13YXNtLmpzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNRTGxpdGVGYXVsdHlDb2RlKGNvbnRlbnRvZlNRTFdhc21KUzogc3RyaW5nKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi91dGlscy50cyJdfQ==
591
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFZLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk5RCxNQUFNLEtBQVcsUUFBUSxDQTREeEI7QUE1REQsV0FBaUIsUUFBUTtJQUVWLHlCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxVQUFVLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUlXLHFCQUFZLEdBQUcsQ0FDMUIsT0FBZSxFQUNmLE9BTUMsRUFDRCxFQUFFO1FBQ0YsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxPQUFPLElBQUksU0FBQSxnQkFBZ0IsQ0FBQyxP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UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUss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O0lBQ2xCLENBQUMsQ0FBQztJQUlXLDBCQUFVLEdBQUcsQ0FBQyxhQUFxQixFQUFRLEVBQUU7UUFDNUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcsMENBQTBCLEdBQUcsQ0FBQyxlQUF1QixFQUFRLEVBQUU7UUFDOUUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSVcseUNBQXlCLEdBQUcsQ0FBQyxXQUFtQixFQUFZLEVBQUU7UUFDN0UsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVXLDRDQUE0QixHQUFHLENBQzFDLGFBQXFCLEVBQ1gsRUFBRTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUdKLENBQUMsRUEzWmdCLGVBQWUsS0FBZixlQUFlLFFBMlovQjtBQUtELE1BQU0sS0FBVyxTQUFTLENBZ0N6QjtBQWhDRCxXQUFpQixTQUFTO0lBRVgseUJBQWUsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3JFLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBRUosQ0FBQyxFQWhDZ0IsU0FBUyxLQUFULFNBQVMsUUFnQ3pCO0FBSUQsTUFBTSxLQUFXLE9BQU8sQ0ErRnZCO0FBL0ZELFdBQWlCLE9BQU87SUFDdEI7O09BRUc7SUFDVSxpQkFBUyxHQUFHLENBQUMsYUFBcUIsRUFBWSxFQUFFO1FBQy9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ1UsOEJBQXNCLEdBQUcsQ0FBQyxhQUFxQixFQUFZLEVBQUU7UUFDNUUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNVLCtCQUF1QixHQUFHLENBQ3JDLGFBQXFCLEVBQ3JCLEtBQUssR0FBRyxDQUFDLEVBQ0QsRUFBRTtRQUNkLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNKLENBQUMsRUEvRmdCLE9BQU8sS0FBUCxPQUFPLFFBK0Z2QjtBQUlELE1BQU0sS0FBVyxlQUFlLENBd0IvQjtBQXhCRCxXQUFpQixlQUFlO0lBRTlCOzs7T0FHRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLGtCQUEwQjtRQUNyRSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFoQmUsd0NBQXdCLDJCQWdCdkMsQ0FBQTtBQUVILENBQUMsRUF4QmdCLGVBQWUsS0FBZixlQUFlLFFBd0IvQjtBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBfLCBjaGFsaywgQ29yZU1vZGVscywgVXRpbHMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc05wbSB7XG5cbiAgZXhwb3J0IGNvbnN0IGlzU3BlY2lhbFZlcnNpb24gPSAodmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIENvcmVNb2RlbHMuTnBtU3BlY2lhbFZlcnNpb25zLmluY2x1ZGVzKHZlcnNpb24pO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgY2xlYXJWZXJzaW9uID0gKFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICByZW1vdmVQcmVmaXhlcz86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSBhbHBoYSwgYmV0YSwgcmMsIGxhdGVzdCwgbmV4dCBldGMuXG4gICAgICAgKi9cbiAgICAgIHJlbW92ZVN1ZmZpeD86IGJvb2xlYW47XG4gICAgfSxcbiAgKSA9PiB7XG4gICAgY29uc3QgeyByZW1vdmVQcmVmaXhlcywgcmVtb3ZlU3VmZml4IH0gPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgaWYgKCF2ZXJzaW9uIHx8IGlzU3BlY2lhbFZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgIHZlcnNpb24gPSAodmVyc2lvbiB8fCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoVXRpbHMuZXNjYXBlU3RyaW5nRm9yUmVnRXgoJ3VuZGVmaW5lZCcpLCAnZycpLCAnMCcpO1xuXG4gICAgaWYgKHJlbW92ZVByZWZpeGVzKSB7XG4gICAgICB2ZXJzaW9uID0gdmVyc2lvbi5yZXBsYWNlKCdeJywgJycpLnJlcGxhY2UoJ34nLCAnJyk7XG4gICAgfVxuICAgIGxldCBbbWFqb3IsIG1pbm9yLCBwYXRjaCwgYWxwaGFPckJldGFPclJjXSA9IHZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBpZiAocmVtb3ZlU3VmZml4KSB7XG4gICAgICBhbHBoYU9yQmV0YU9yUmMgPSAnJztcbiAgICB9XG4gICAgcmV0dXJuIGZpeE1ham9yVmVyTnVtYmVyKFxuICAgICAgYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9JHthbHBoYU9yQmV0YU9yUmMgPyAnLicgKyBhbHBoYU9yQmV0YU9yUmMgOiAnJ31gLFxuICAgICk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBmaXhNYWpvclZlck51bWJlciA9ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXZlcnNpb24gfHwgaXNTcGVjaWFsVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuICAgIHZlcnNpb24gPSAodmVyc2lvbiB8fCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoVXRpbHMuZXNjYXBlU3RyaW5nRm9yUmVnRXgoJ3VuZGVmaW5lZCcpLCAnZycpLCAnMCcpO1xuICAgIGNvbnN0IHNwbGl0ZWQgPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgbGV0IFttYWpvciwgbWlub3IsIHBhdGNoLCBhbHBoYU9yQmV0YU9yUmNdID0gc3BsaXRlZDtcbiAgICBpZiAoc3BsaXRlZC5sZW5ndGggPT09IDEpIHtcbiAgICAgIG1pbm9yID0gJzAnO1xuICAgICAgcGF0Y2ggPSAnMCc7XG4gICAgfSBlbHNlIGlmIChzcGxpdGVkLmxlbmd0aCA9PT0gMikge1xuICAgICAgcGF0Y2ggPSAnMCc7XG4gICAgfVxuICAgIHJldHVybiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0ke2FscGhhT3JCZXRhT3JSYyA/ICcuJyArIGFscGhhT3JCZXRhT3JSYyA6ICcnfWA7XG4gIH07XG5cbn1cblxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVXRpbHNUeXBlc2NyaXB0IHtcblxuICAvKipcbiAgICogUmVtb3ZlIFR5cGVTY3JpcHQgcmVnaW9uIGJsb2NrcyBieSB0aGVpciBuYW1lLCBpbmNsdWRpbmcgbmVzdGVkIHJlZ2lvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VDb2RlIC0gVGhlIFR5cGVTY3JpcHQgc291cmNlIGNvZGUgYXMgYSBzdHJpbmcuXG4gICAqIEBwYXJhbSByZWdpb25OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlZ2lvbiB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIE1vZGlmaWVkIFR5cGVTY3JpcHQgY29kZSB3aXRob3V0IHRoZSBzcGVjaWZpZWQgcmVnaW9ucy5cbiAgICovXG4gIGV4cG9ydCBjb25zdCByZW1vdmVSZWdpb25CeU5hbWUgPSAoXG4gICAgc291cmNlQ29kZTogc3RyaW5nLFxuICAgIHJlZ2lvbk5hbWU6IHN0cmluZyxcbiAgKTogc3RyaW5nID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cblxuXG4gIGNvbnN0IGlzRXhwb3J0ZWQgPSAobm9kZTogTm9kZSk6IGJvb2xlYW4gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gZXh0cmFjdCBleHBvcnRzIGZyb20gYSBUeXBlU2NyaXB0IGZpbGVcbiAgICovXG4gIGV4cG9ydCBjb25zdCBleHBvcnRzRnJvbUZpbGUgPSAoXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgKToge1xuICAgIHR5cGU6XG4gICAgICB8ICdjbGFzcydcbiAgICAgIHwgJ2Z1bmN0aW9uJ1xuICAgICAgfCAnY29uc3QnXG4gICAgICB8ICdsZXQnXG4gICAgICB8ICd2YXInXG4gICAgICB8ICdlbnVtJ1xuICAgICAgfCAndHlwZSdcbiAgICAgIHwgJ2ludGVyZmFjZSdcbiAgICAgIHwgJ2RlZmF1bHQnXG4gICAgICB8ICdtb2R1bGUnXG4gICAgICB8ICduYW1lc3BhY2UnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cblxuICBleHBvcnQgY29uc3QgZXh0cmFjdERlZmF1bHRDbGFzc05hbWVGcm9tU3RyaW5nID0gKFxuICAgIHNvdXJjZUNvZGU6IHN0cmluZyxcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3RDbGFzc05hbWVGcm9tU3RyaW5nID0gKHNvdXJjZUNvZGU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3RDbGFzc05hbWVzRnJvbUZpbGUgPSAoXG4gICAgYWJzb2x1dGVGaWxlUGF0aDogc3RyaW5nLFxuICApOiBzdHJpbmdbXSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0RGVmYXVsdENsYXNzTmFtZUZyb21GaWxlID0gKGFic29sdXRlRmlsZVBhdGg6IHN0cmluZykgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGZvcm1hdEZpbGUgPSAoYWJzUGF0aFRvRmlsZTogc3RyaW5nKTogdm9pZCA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBmb3JtYXRBbGxGaWxlc0luc2lkZUZvbGRlciA9IChhYnNQYXRoVG9Gb2xkZXI6IHN0cmluZyk6IHZvaWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFRhb25Db250ZXh0RnJvbUNvbnRlbnQgPSAoZmlsZUNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBnZXRUYW9uQ29udGV4dHNOYW1lc0Zyb21GaWxlID0gKFxuICAgIHRzQWJzRmlsZVBhdGg6IHN0cmluZyxcbiAgKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cbn1cblxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc0h0dHAge1xuXG4gIGV4cG9ydCBjb25zdCBzdGFydEh0dHBTZXJ2ZXIgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHBvcnQ6IG51bWJlcikgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTWQge1xuICAvKipcbiAgICogZXh0cmFjdCBhc3NldHMgcGF0aGVzIGZyb20gLm1kIGZpbGVcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRBc3NldHMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGxpbmtzIHRvIG90aGVyIE1hcmtkb3duIGZpbGVzIGZyb20gYSBnaXZlbiBNYXJrZG93biBjb250ZW50LlxuICAgKiBAcGFyYW0gbWRmaWxlQ29udGVudFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGdldExpbmtzVG9PdGhlck1kRmlsZXMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1vdmUgYXNzZXQgcGF0aHMgdG8gYSBoaWdoZXIgZGlyZWN0b3J5IGxldmVsIGJ5IGFkZGluZyBcIi4uL1wiIGJlZm9yZSBlYWNoIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBtZGZpbGVDb250ZW50IC0gVGhlIGNvbnRlbnQgb2YgdGhlIC5tZCBmaWxlLlxuICAgKiBAcGFyYW0gbGV2ZWwgLSBUaGUgbnVtYmVyIG9mIGxldmVscyB0byBnbyB1cCAoZGVmYXVsdCBpcyAxKS5cbiAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGNvbnRlbnQgd2l0aCB1cGRhdGVkIGFzc2V0IHBhdGhzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IG1vdmVBc3NldHNQYXRoZXNUb0xldmVsID0gKFxuICAgIG1kZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgICBsZXZlbCA9IDEsXG4gICk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1F1aWNrRml4ZXMge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZV9tb2R1bGVzL3NxbC5qcy9kaXN0L3NxbC13YXNtLmpzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNRTGxpdGVGYXVsdHlDb2RlKGNvbnRlbnRvZlNRTFdhc21KUzogc3RyaW5nKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi91dGlscy50cyJdfQ==
@@ -0,0 +1,41 @@
1
+ import { __decorate } from "tslib";
2
+ import { Taon } from 'taon/websql';
3
+ let MainContext_1736198527297_init = class MainContext_1736198527297_init extends Taon.Base.Migration {
4
+ /**
5
+ * remove this method if you are ready to run this migration
6
+ */
7
+ isReadyToRun() {
8
+ return false;
9
+ }
10
+ async up(queryRunner) {
11
+ }
12
+ async down(queryRunner) {
13
+ }
14
+ };
15
+ MainContext_1736198527297_init = __decorate([
16
+ Taon.Migration({
17
+ className: 'MainContext_1736198527297_init',
18
+ })
19
+ ], MainContext_1736198527297_init);
20
+ export { MainContext_1736198527297_init };
21
+ let PortsContext_1736198527297_init = class PortsContext_1736198527297_init extends Taon.Base.Migration {
22
+ /**
23
+ * remove this method if you are ready to run this migration
24
+ */
25
+ isReadyToRun() {
26
+ return true;
27
+ }
28
+ async up(queryRunner) {
29
+ }
30
+ async down(queryRunner) {
31
+ }
32
+ };
33
+ PortsContext_1736198527297_init = __decorate([
34
+ Taon.Migration({
35
+ className: 'PortsContext_1736198527297_init',
36
+ })
37
+ ], PortsContext_1736198527297_init);
38
+ export { PortsContext_1736198527297_init };
39
+ ;
40
+ ({}); // @--end-of-file-for-module=tnp-helpers migrations/1736198527297_init.ts
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjE5ODUyNzI5N19pbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9taWdyYXRpb25zLzE3MzYxOTg1MjcyOTdfaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU01QixJQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUErQixTQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztJQUNyRTs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtJQUVqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtJQUVuQyxDQUFDO0NBQ0YsQ0FBQTtBQWZZLDhCQUE4QjtJQUgxQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxFQUFFLGdDQUFnQztLQUM1QyxDQUFDO0dBQ1csOEJBQThCLENBZTFDOztBQUtNLElBQU0sK0JBQStCLEdBQXJDLE1BQU0sK0JBQWdDLFNBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO0lBQ3RFOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO0lBR2pDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO0lBR25DLENBQUM7Q0FDRixDQUFBO0FBakJZLCtCQUErQjtJQUgzQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxFQUFFLGlDQUFpQztLQUM3QyxDQUFDO0dBQ1csK0JBQStCLENBaUIzQzs7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlFQUF5RSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBUYW9uIH0gZnJvbSAndGFvbi93ZWJzcWwnO1xuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnTWFpbkNvbnRleHRfMTczNjE5ODUyNzI5N19pbml0Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFpbkNvbnRleHRfMTczNjE5ODUyNzI5N19pbml0IGV4dGVuZHMgVGFvbi5CYXNlLk1pZ3JhdGlvbiB7XG4gIC8qKlxuICAgKiByZW1vdmUgdGhpcyBtZXRob2QgaWYgeW91IGFyZSByZWFkeSB0byBydW4gdGhpcyBtaWdyYXRpb25cbiAgICovXG4gIHB1YmxpYyBpc1JlYWR5VG9SdW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTxhbnk+IHtcblxuICB9XG5cbiAgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuXG4gIH1cbn1cblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzYxOTg1MjcyOTdfaW5pdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBvcnRzQ29udGV4dF8xNzM2MTk4NTI3Mjk3X2luaXQgZXh0ZW5kcyBUYW9uLkJhc2UuTWlncmF0aW9uIHtcbiAgLyoqXG4gICAqIHJlbW92ZSB0aGlzIG1ldGhvZCBpZiB5b3UgYXJlIHJlYWR5IHRvIHJ1biB0aGlzIG1pZ3JhdGlvblxuICAgKi9cbiAgcHVibGljIGlzUmVhZHlUb1J1bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8YW55PiB7XG5cblxuICB9XG5cbiAgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuXG5cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbWlncmF0aW9ucy8xNzM2MTk4NTI3Mjk3X2luaXQudHMiXX0=
@@ -0,0 +1,55 @@
1
+ import { __decorate } from "tslib";
2
+ import { Taon } from 'taon/websql';
3
+ import { NotAssignablePort, PortsController } from '../lib';
4
+ const portsWithDescription = {
5
+ 3000: 'Commonly used for development servers',
6
+ 3001: 'Alternate development server port',
7
+ 3306: 'MySQL',
8
+ 3389: 'Remote Desktop Protocol (RDP)',
9
+ 3478: 'STUN (Session Traversal Utilities for NAT)',
10
+ 4000: 'Alternative development server port',
11
+ 4200: 'Angular CLI Development Server',
12
+ 4500: 'IPSec NAT traversal',
13
+ 4567: 'Sinatra Default Port',
14
+ 5000: 'Flask, Python development server, or Node.js apps',
15
+ 5432: 'PostgreSQL',
16
+ 5500: 'Live Server (VS Code Extension)',
17
+ 5672: 'RabbitMQ',
18
+ 5800: 'VNC Remote Desktop (HTTP)',
19
+ 5900: 'VNC Remote Desktop',
20
+ 5984: 'CouchDB',
21
+ 6000: 'in use by something in macos',
22
+ };
23
+ let PortsContext_1736199486472_addingNotAssignablePorts = class PortsContext_1736199486472_addingNotAssignablePorts extends Taon
24
+ .Base.Migration {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.portsController = this.injectController(PortsController);
28
+ this.commonPortsFrom3000to6000 = Object.keys(portsWithDescription).map(Number);
29
+ }
30
+ async up(queryRunner) {
31
+ const db = await queryRunner.manager.getRepository(NotAssignablePort);
32
+ const allPorts = this.commonPortsFrom3000to6000.map(port => NotAssignablePort.from({
33
+ port,
34
+ serviceId: `not assignable (${portsWithDescription[port]})`,
35
+ }));
36
+ await db.save(allPorts);
37
+ for (const commonPortObj of allPorts) {
38
+ this.portsController.takenByOsPorts.set(commonPortObj.port, commonPortObj);
39
+ }
40
+ }
41
+ async down(queryRunner) {
42
+ const db = await queryRunner.manager.getRepository(NotAssignablePort);
43
+ db.clear();
44
+ this.portsController.takenByOsPorts.clear();
45
+ }
46
+ };
47
+ PortsContext_1736199486472_addingNotAssignablePorts = __decorate([
48
+ Taon.Migration({
49
+ className: 'PortsContext_1736199486472_addingNotAssignablePorts',
50
+ })
51
+ ], PortsContext_1736199486472_addingNotAssignablePorts);
52
+ export { PortsContext_1736199486472_addingNotAssignablePorts };
53
+ ;
54
+ ({}); // @--end-of-file-for-module=tnp-helpers migrations/1736199486472_addingNotAssignablePorts.ts
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL21pZ3JhdGlvbnMvMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFRLGVBQWUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVsRSxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLElBQUksRUFBRSx1Q0FBdUM7SUFDN0MsSUFBSSxFQUFFLG1DQUFtQztJQUN6QyxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSwrQkFBK0I7SUFDckMsSUFBSSxFQUFFLDRDQUE0QztJQUNsRCxJQUFJLEVBQUUscUNBQXFDO0lBQzNDLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxtREFBbUQ7SUFDekQsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxJQUFJLEVBQUUsVUFBVTtJQUNoQixJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsOEJBQThCO0NBQ3JDLENBQUM7QUFLSyxJQUFNLG1EQUFtRCxHQUF6RCxNQUFNLG1EQUFvRCxTQUFRLElBQUk7S0FDMUUsSUFBSSxDQUFDLFNBQVM7SUFEVjs7UUFFSyxvQkFBZSxHQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFeEIsOEJBQXlCLEdBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUF5QmxELENBQUM7SUF2QkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUMvQixNQUFNLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDckIsSUFBSTtZQUNKLFNBQVMsRUFBRSxtQkFBbUIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUc7U0FDNUQsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsS0FBSyxNQUFNLGFBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JDLGFBQWEsQ0FBQyxJQUFJLEVBQ2xCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YsQ0FBQTtBQS9CWSxtREFBbUQ7SUFIL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNkLFNBQVMsRUFBRSxxREFBcUQ7S0FDakUsQ0FBQztHQUNXLG1EQUFtRCxDQStCL0Q7O0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2RkFBNkYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgVGFvbiB9IGZyb20gJ3Rhb24vd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcbmltcG9ydCB7IE5vdEFzc2lnbmFibGVQb3J0LCBQb3J0LCBQb3J0c0NvbnRyb2xsZXIgfSBmcm9tICcuLi9saWInO1xuXG5jb25zdCBwb3J0c1dpdGhEZXNjcmlwdGlvbiA9IHtcbiAgMzAwMDogJ0NvbW1vbmx5IHVzZWQgZm9yIGRldmVsb3BtZW50IHNlcnZlcnMnLFxuICAzMDAxOiAnQWx0ZXJuYXRlIGRldmVsb3BtZW50IHNlcnZlciBwb3J0JyxcbiAgMzMwNjogJ015U1FMJyxcbiAgMzM4OTogJ1JlbW90ZSBEZXNrdG9wIFByb3RvY29sIChSRFApJyxcbiAgMzQ3ODogJ1NUVU4gKFNlc3Npb24gVHJhdmVyc2FsIFV0aWxpdGllcyBmb3IgTkFUKScsXG4gIDQwMDA6ICdBbHRlcm5hdGl2ZSBkZXZlbG9wbWVudCBzZXJ2ZXIgcG9ydCcsXG4gIDQyMDA6ICdBbmd1bGFyIENMSSBEZXZlbG9wbWVudCBTZXJ2ZXInLFxuICA0NTAwOiAnSVBTZWMgTkFUIHRyYXZlcnNhbCcsXG4gIDQ1Njc6ICdTaW5hdHJhIERlZmF1bHQgUG9ydCcsXG4gIDUwMDA6ICdGbGFzaywgUHl0aG9uIGRldmVsb3BtZW50IHNlcnZlciwgb3IgTm9kZS5qcyBhcHBzJyxcbiAgNTQzMjogJ1Bvc3RncmVTUUwnLFxuICA1NTAwOiAnTGl2ZSBTZXJ2ZXIgKFZTIENvZGUgRXh0ZW5zaW9uKScsXG4gIDU2NzI6ICdSYWJiaXRNUScsXG4gIDU4MDA6ICdWTkMgUmVtb3RlIERlc2t0b3AgKEhUVFApJyxcbiAgNTkwMDogJ1ZOQyBSZW1vdGUgRGVza3RvcCcsXG4gIDU5ODQ6ICdDb3VjaERCJyxcbiAgNjAwMDogJ2luIHVzZSBieSBzb21ldGhpbmcgaW4gbWFjb3MnLFxufTtcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzIGV4dGVuZHMgVGFvblxuICAuQmFzZS5NaWdyYXRpb24ge1xuICBwcm90ZWN0ZWQgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgPVxuICAgIHRoaXMuaW5qZWN0Q29udHJvbGxlcihQb3J0c0NvbnRyb2xsZXIpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uUG9ydHNGcm9tMzAwMHRvNjAwMDogbnVtYmVyW10gPVxuICAgIE9iamVjdC5rZXlzKHBvcnRzV2l0aERlc2NyaXB0aW9uKS5tYXAoTnVtYmVyKTtcblxuICBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KE5vdEFzc2lnbmFibGVQb3J0KTtcblxuICAgIGNvbnN0IGFsbFBvcnRzID0gdGhpcy5jb21tb25Qb3J0c0Zyb20zMDAwdG82MDAwLm1hcChwb3J0ID0+XG4gICAgICBOb3RBc3NpZ25hYmxlUG9ydC5mcm9tKHtcbiAgICAgICAgcG9ydCxcbiAgICAgICAgc2VydmljZUlkOiBgbm90IGFzc2lnbmFibGUgKCR7cG9ydHNXaXRoRGVzY3JpcHRpb25bcG9ydF19KWAsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGF3YWl0IGRiLnNhdmUoYWxsUG9ydHMpO1xuICAgIGZvciAoY29uc3QgY29tbW9uUG9ydE9iaiBvZiBhbGxQb3J0cykge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIudGFrZW5CeU9zUG9ydHMuc2V0KFxuICAgICAgICBjb21tb25Qb3J0T2JqLnBvcnQsXG4gICAgICAgIGNvbW1vblBvcnRPYmosXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkYiA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShOb3RBc3NpZ25hYmxlUG9ydCk7XG4gICAgZGIuY2xlYXIoKTtcbiAgICB0aGlzLnBvcnRzQ29udHJvbGxlci50YWtlbkJ5T3NQb3J0cy5jbGVhcigpO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBtaWdyYXRpb25zLzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzLnRzIl19