just-bash 3.1.0 → 3.2.0

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 (1160) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +72 -9
  3. package/dist/Bash.d.ts +12 -4
  4. package/dist/abort-signals.d.ts +10 -0
  5. package/dist/bin/chunks/alias-3R4G6HQY.js +3 -0
  6. package/dist/bin/chunks/awk2-7UZLEPVX.js +3 -0
  7. package/dist/bin/chunks/base64-W6FVFNXJ.js +3 -0
  8. package/dist/bin/chunks/basename-C4CRGDXP.js +3 -0
  9. package/dist/bin/chunks/bash-CFCBBWVH.js +3 -0
  10. package/dist/bin/chunks/cat-5YECZSFQ.js +3 -0
  11. package/dist/bin/chunks/chmod-45TMYSW2.js +3 -0
  12. package/dist/bin/chunks/chunk-23OI2XDJ.js +20 -0
  13. package/dist/bin/chunks/chunk-2OQ5HPZE.js +7 -0
  14. package/dist/bin/chunks/chunk-2YLY6FJA.js +10 -0
  15. package/dist/bin/chunks/chunk-3HUI54BW.js +143 -0
  16. package/dist/bin/chunks/chunk-3OYRDLJJ.js +101 -0
  17. package/dist/bin/chunks/chunk-3PCPQIUD.js +3 -0
  18. package/dist/bin/chunks/chunk-3VSWQCPN.js +18 -0
  19. package/dist/bin/chunks/chunk-43E7AR6A.js +3 -0
  20. package/dist/bin/chunks/chunk-46CDVHZ3.js +5 -0
  21. package/dist/bin/chunks/chunk-4SQKKW2M.js +3 -0
  22. package/dist/bin/chunks/chunk-5SKEZPTU.js +12 -0
  23. package/dist/bin/chunks/chunk-6D75E4LV.js +3 -0
  24. package/dist/bin/chunks/chunk-6SAZRW7E.js +15 -0
  25. package/dist/bin/chunks/chunk-7FGDUBSN.js +14 -0
  26. package/dist/bin/chunks/chunk-7I6MNC5I.js +3 -0
  27. package/dist/bin/chunks/chunk-B7RRNV3A.js +22 -0
  28. package/dist/bin/chunks/chunk-BCJ42NCM.js +15 -0
  29. package/dist/bin/chunks/chunk-BNYIXXC2.js +3 -0
  30. package/dist/bin/chunks/chunk-BPWZ7ADB.js +8 -0
  31. package/dist/bin/chunks/chunk-BWRQ5HYX.js +9 -0
  32. package/dist/bin/chunks/chunk-CB4SODHK.js +34 -0
  33. package/dist/bin/chunks/chunk-CC2AQ6B7.js +15 -0
  34. package/dist/bin/chunks/chunk-CPKBPQ2C.js +3 -0
  35. package/dist/bin/chunks/chunk-CPTQXTBJ.js +3 -0
  36. package/dist/bin/chunks/chunk-D3MUBZ4P.js +65 -0
  37. package/dist/bin/chunks/chunk-DN2YCFOR.js +3 -0
  38. package/dist/bin/chunks/chunk-DSZQ22OX.js +12 -0
  39. package/dist/bin/chunks/chunk-E5VZGTZ6.js +10 -0
  40. package/dist/bin/chunks/chunk-ETWDDV6I.js +10 -0
  41. package/dist/bin/chunks/chunk-GEUCQ4AB.js +10 -0
  42. package/dist/bin/chunks/chunk-H4BRFPKY.js +3 -0
  43. package/dist/bin/chunks/chunk-IAAPXDHN.js +11 -0
  44. package/dist/bin/chunks/chunk-ISW2U76N.js +17 -0
  45. package/dist/bin/chunks/chunk-JQER3HUP.js +20 -0
  46. package/dist/bin/chunks/chunk-K5KT6DMM.js +4 -0
  47. package/dist/bin/chunks/chunk-KG2KXL4Y.js +3 -0
  48. package/dist/bin/chunks/chunk-LCP3IKI7.js +9 -0
  49. package/dist/bin/chunks/chunk-LGERQ5TD.js +22 -0
  50. package/dist/bin/chunks/chunk-LNFTLSWJ.js +22 -0
  51. package/dist/bin/chunks/chunk-LUHU7UUN.js +7 -0
  52. package/dist/bin/chunks/chunk-LXFMIXGA.js +3 -0
  53. package/dist/bin/chunks/chunk-MYTNZ7MA.js +7 -0
  54. package/dist/bin/chunks/chunk-MZM7RVYU.js +8 -0
  55. package/dist/bin/chunks/chunk-NGD6G5ZG.js +9 -0
  56. package/dist/bin/chunks/chunk-NJ67YJRE.js +6 -0
  57. package/dist/bin/chunks/chunk-NQQ3X7MZ.js +36 -0
  58. package/dist/bin/chunks/chunk-O74FSWB4.js +4 -0
  59. package/dist/bin/chunks/chunk-OKU677H3.js +87 -0
  60. package/dist/bin/chunks/chunk-P6NPCASY.js +11 -0
  61. package/dist/bin/chunks/chunk-PKWK3LQM.js +22 -0
  62. package/dist/bin/chunks/chunk-PQPFDJFF.js +34 -0
  63. package/dist/bin/chunks/chunk-PRKSLEHG.js +291 -0
  64. package/dist/bin/chunks/chunk-PUZGSIMN.js +15 -0
  65. package/dist/bin/chunks/chunk-Q3LE3Y66.js +13 -0
  66. package/dist/bin/chunks/chunk-QAYU7HPM.js +7 -0
  67. package/dist/bin/chunks/chunk-QES5OSUC.js +3 -0
  68. package/dist/bin/chunks/chunk-QF7PPON7.js +16 -0
  69. package/dist/bin/chunks/chunk-QK6BXSHU.js +13 -0
  70. package/dist/bin/chunks/chunk-RYQB6GQ7.js +11 -0
  71. package/dist/bin/chunks/chunk-SSK3N7FN.js +3 -0
  72. package/dist/bin/chunks/chunk-TL4JI2SL.js +38 -0
  73. package/dist/bin/chunks/chunk-TPU3OX2A.js +3 -0
  74. package/dist/bin/chunks/chunk-TW2IJRUF.js +3 -0
  75. package/dist/bin/chunks/chunk-TZ3S7MY6.js +12 -0
  76. package/dist/bin/chunks/chunk-VGR3NA3H.js +13 -0
  77. package/dist/bin/chunks/chunk-VLWZ6L7C.js +4 -0
  78. package/dist/bin/chunks/chunk-VTAIIBJT.js +16 -0
  79. package/dist/bin/chunks/chunk-VTHA5UK5.js +7 -0
  80. package/dist/bin/chunks/chunk-VY2K25J4.js +16 -0
  81. package/dist/bin/chunks/chunk-W4U4QOZF.js +7 -0
  82. package/dist/bin/chunks/chunk-WDV2ECOC.js +3 -0
  83. package/dist/bin/chunks/chunk-WFVCEB5T.js +3 -0
  84. package/dist/bin/chunks/chunk-WSLBBXPJ.js +12 -0
  85. package/dist/bin/chunks/chunk-WWOUFMMY.js +3 -0
  86. package/dist/bin/chunks/chunk-WYTPLN2M.js +11 -0
  87. package/dist/bin/chunks/chunk-X5VUGFUL.js +3 -0
  88. package/dist/bin/chunks/chunk-X63MJBLH.js +26 -0
  89. package/dist/bin/chunks/chunk-XAAXPEOP.js +6 -0
  90. package/dist/bin/chunks/chunk-XEQ7KSRM.js +5 -0
  91. package/dist/bin/chunks/chunk-YIANER7Y.js +8 -0
  92. package/dist/bin/chunks/chunk-YMELOXDK.js +13 -0
  93. package/dist/bin/chunks/chunk-YTL6DXBO.js +11 -0
  94. package/dist/bin/chunks/chunk-YYZSYLJO.js +6 -0
  95. package/dist/bin/chunks/chunk-ZXIW4JPL.js +22 -0
  96. package/dist/bin/chunks/clear-OE52K3TM.js +3 -0
  97. package/dist/bin/chunks/column-7VBJL757.js +3 -0
  98. package/dist/bin/chunks/comm-URDMZCXL.js +3 -0
  99. package/dist/bin/chunks/cp-MF5GADQN.js +3 -0
  100. package/dist/bin/chunks/curl-FS5LAEYI.js +30 -0
  101. package/dist/bin/chunks/cut-QOTYBJJJ.js +3 -0
  102. package/dist/bin/chunks/date-FJUBX7TJ.js +3 -0
  103. package/dist/bin/chunks/diff-YXZZCUSQ.js +3 -0
  104. package/dist/bin/chunks/dirname-TPUFCYF6.js +3 -0
  105. package/dist/bin/chunks/du-A3UGHIKJ.js +3 -0
  106. package/dist/bin/chunks/echo-4OUEL7QB.js +3 -0
  107. package/dist/bin/chunks/env-2TSVF4W7.js +3 -0
  108. package/dist/bin/chunks/expand-P6SNTBGZ.js +3 -0
  109. package/dist/bin/chunks/expr-56X7LYOS.js +3 -0
  110. package/dist/bin/chunks/file-SQSOBJLR.js +3 -0
  111. package/dist/bin/chunks/find-XY2NTAT5.js +3 -0
  112. package/dist/bin/chunks/flag-coverage-WGSE667D.js +3 -0
  113. package/dist/bin/chunks/fold-YEY7X54W.js +3 -0
  114. package/dist/bin/chunks/grep-CMT2H2S7.js +3 -0
  115. package/dist/bin/chunks/gzip-DJSFJOY6.js +3 -0
  116. package/dist/bin/chunks/head-KPRH4HKC.js +3 -0
  117. package/dist/bin/chunks/help-HVIDHJ6M.js +3 -0
  118. package/dist/bin/chunks/history-3HAU45KT.js +3 -0
  119. package/dist/bin/chunks/hostname-2I76DUQL.js +3 -0
  120. package/dist/bin/chunks/html-to-markdown-WUBAMB4O.js +3 -0
  121. package/dist/bin/chunks/join-UQKXU2QP.js +3 -0
  122. package/dist/bin/chunks/jq-ACCMBTSD.js +3 -0
  123. package/dist/bin/chunks/js-exec-4KNUPGHA.js +99 -0
  124. package/dist/bin/chunks/js-exec-worker.js +187 -110
  125. package/dist/bin/chunks/ln-XSDIE6SU.js +3 -0
  126. package/dist/bin/chunks/ls-FTHYNINH.js +3 -0
  127. package/dist/bin/chunks/md5sum-Z6KAYGDK.js +3 -0
  128. package/dist/bin/chunks/mkdir-74BP5NTG.js +3 -0
  129. package/dist/bin/chunks/mv-YG75IRRE.js +3 -0
  130. package/dist/bin/chunks/nl-XHWFVVKH.js +3 -0
  131. package/dist/bin/chunks/od-A7CW5RMS.js +3 -0
  132. package/dist/bin/chunks/paste-YJLYVJMP.js +3 -0
  133. package/dist/bin/chunks/printf-F2KOCULO.js +3 -0
  134. package/dist/bin/chunks/pwd-YKLNXWZI.js +3 -0
  135. package/dist/bin/chunks/python3-AYUQQRCR.js +14 -0
  136. package/dist/bin/chunks/readlink-HMHVGSAM.js +3 -0
  137. package/dist/bin/chunks/rev-CZTQCNOZ.js +3 -0
  138. package/dist/bin/chunks/rg-JRKJ6I4X.js +3 -0
  139. package/dist/bin/chunks/rm-3PLW4O4B.js +3 -0
  140. package/dist/bin/chunks/rmdir-DCJ3XJRR.js +3 -0
  141. package/dist/bin/chunks/sed-QJ2LNV2N.js +3 -0
  142. package/dist/bin/chunks/seq-Q4LZ6EXV.js +3 -0
  143. package/dist/bin/chunks/sha1sum-CATBXX76.js +3 -0
  144. package/dist/bin/chunks/sha256sum-YGSNBVY3.js +3 -0
  145. package/dist/bin/chunks/sleep-FUDWGDCE.js +3 -0
  146. package/dist/bin/chunks/sort-M3DO25D5.js +3 -0
  147. package/dist/bin/chunks/split-7IYQYKOW.js +3 -0
  148. package/dist/bin/chunks/sqlite3-ZXF6BGDW.js +3 -0
  149. package/dist/bin/chunks/sqlite3-worker.js +316 -173
  150. package/dist/bin/chunks/stat-Y5D3VPLG.js +3 -0
  151. package/dist/bin/chunks/strings-J2X2Z6N2.js +3 -0
  152. package/dist/bin/chunks/tac-DG4BMYM5.js +3 -0
  153. package/dist/bin/chunks/tail-QISQLA3I.js +3 -0
  154. package/dist/bin/chunks/tar-TB2XWXF6.js +3 -0
  155. package/dist/bin/chunks/tee-L4HKV5PD.js +3 -0
  156. package/dist/bin/chunks/time-LF7BTSK5.js +3 -0
  157. package/dist/bin/chunks/timeout-TDOV6JDA.js +3 -0
  158. package/dist/bin/chunks/touch-TVQAUQOG.js +3 -0
  159. package/dist/bin/chunks/tr-AR6EK7JH.js +3 -0
  160. package/dist/bin/chunks/tree-ZGP6NPGS.js +3 -0
  161. package/dist/bin/chunks/true-KFTJGQLQ.js +3 -0
  162. package/dist/bin/chunks/undici-JES22UVU.js +141 -0
  163. package/dist/bin/chunks/unexpand-JPOQORZF.js +3 -0
  164. package/dist/bin/chunks/uniq-K5VRDP4Q.js +3 -0
  165. package/dist/bin/chunks/wc-VSQBRD6B.js +3 -0
  166. package/dist/bin/chunks/which-4TPGVSBZ.js +3 -0
  167. package/dist/bin/chunks/whoami-B5HDVKW6.js +3 -0
  168. package/dist/bin/chunks/worker.js +212 -105
  169. package/dist/bin/chunks/xan-D6US4ZGL.js +3 -0
  170. package/dist/bin/chunks/xan-view-QGKWT354.js +3 -0
  171. package/dist/bin/chunks/xargs-HMISWW4I.js +3 -0
  172. package/dist/bin/chunks/yq-EYV7HLKK.js +3 -0
  173. package/dist/bin/just-bash.js +412 -387
  174. package/dist/bin/shell/chunks/alias-3R4G6HQY.js +3 -0
  175. package/dist/bin/shell/chunks/awk2-7UZLEPVX.js +3 -0
  176. package/dist/bin/shell/chunks/base64-W6FVFNXJ.js +3 -0
  177. package/dist/bin/shell/chunks/basename-C4CRGDXP.js +3 -0
  178. package/dist/bin/shell/chunks/bash-CFCBBWVH.js +3 -0
  179. package/dist/bin/shell/chunks/cat-5YECZSFQ.js +3 -0
  180. package/dist/bin/shell/chunks/chmod-45TMYSW2.js +3 -0
  181. package/dist/bin/shell/chunks/chunk-23OI2XDJ.js +20 -0
  182. package/dist/bin/shell/chunks/chunk-2OQ5HPZE.js +7 -0
  183. package/dist/bin/shell/chunks/chunk-2YLY6FJA.js +10 -0
  184. package/dist/bin/shell/chunks/chunk-3HUI54BW.js +143 -0
  185. package/dist/bin/shell/chunks/chunk-3OYRDLJJ.js +101 -0
  186. package/dist/bin/shell/chunks/chunk-3PCPQIUD.js +3 -0
  187. package/dist/bin/shell/chunks/chunk-3VSWQCPN.js +18 -0
  188. package/dist/bin/shell/chunks/chunk-43E7AR6A.js +3 -0
  189. package/dist/bin/shell/chunks/chunk-46CDVHZ3.js +5 -0
  190. package/dist/bin/shell/chunks/chunk-4SQKKW2M.js +3 -0
  191. package/dist/bin/shell/chunks/chunk-5SKEZPTU.js +12 -0
  192. package/dist/bin/shell/chunks/chunk-6D75E4LV.js +3 -0
  193. package/dist/bin/shell/chunks/chunk-6SAZRW7E.js +15 -0
  194. package/dist/bin/shell/chunks/chunk-7FGDUBSN.js +14 -0
  195. package/dist/bin/shell/chunks/chunk-7I6MNC5I.js +3 -0
  196. package/dist/bin/shell/chunks/chunk-B7RRNV3A.js +22 -0
  197. package/dist/bin/shell/chunks/chunk-BCJ42NCM.js +15 -0
  198. package/dist/bin/shell/chunks/chunk-BNYIXXC2.js +3 -0
  199. package/dist/bin/shell/chunks/chunk-BPWZ7ADB.js +8 -0
  200. package/dist/bin/shell/chunks/chunk-BWRQ5HYX.js +9 -0
  201. package/dist/bin/shell/chunks/chunk-CB4SODHK.js +34 -0
  202. package/dist/bin/shell/chunks/chunk-CC2AQ6B7.js +15 -0
  203. package/dist/bin/shell/chunks/chunk-CPKBPQ2C.js +3 -0
  204. package/dist/bin/shell/chunks/chunk-CPTQXTBJ.js +3 -0
  205. package/dist/bin/shell/chunks/chunk-D3MUBZ4P.js +65 -0
  206. package/dist/bin/shell/chunks/chunk-DN2YCFOR.js +3 -0
  207. package/dist/bin/shell/chunks/chunk-DSZQ22OX.js +12 -0
  208. package/dist/bin/shell/chunks/chunk-E5VZGTZ6.js +10 -0
  209. package/dist/bin/shell/chunks/chunk-ETWDDV6I.js +10 -0
  210. package/dist/bin/shell/chunks/chunk-GEUCQ4AB.js +10 -0
  211. package/dist/bin/shell/chunks/chunk-H4BRFPKY.js +3 -0
  212. package/dist/bin/shell/chunks/chunk-IAAPXDHN.js +11 -0
  213. package/dist/bin/shell/chunks/chunk-ISW2U76N.js +17 -0
  214. package/dist/bin/shell/chunks/chunk-JQER3HUP.js +20 -0
  215. package/dist/bin/shell/chunks/chunk-K5KT6DMM.js +4 -0
  216. package/dist/bin/shell/chunks/chunk-KG2KXL4Y.js +3 -0
  217. package/dist/bin/shell/chunks/chunk-LCP3IKI7.js +9 -0
  218. package/dist/bin/shell/chunks/chunk-LGERQ5TD.js +22 -0
  219. package/dist/bin/shell/chunks/chunk-LNFTLSWJ.js +22 -0
  220. package/dist/bin/shell/chunks/chunk-LUHU7UUN.js +7 -0
  221. package/dist/bin/shell/chunks/chunk-LXFMIXGA.js +3 -0
  222. package/dist/bin/shell/chunks/chunk-MYTNZ7MA.js +7 -0
  223. package/dist/bin/shell/chunks/chunk-MZM7RVYU.js +8 -0
  224. package/dist/bin/shell/chunks/chunk-NGD6G5ZG.js +9 -0
  225. package/dist/bin/shell/chunks/chunk-NJ67YJRE.js +6 -0
  226. package/dist/bin/shell/chunks/chunk-NQQ3X7MZ.js +36 -0
  227. package/dist/bin/shell/chunks/chunk-O74FSWB4.js +4 -0
  228. package/dist/bin/shell/chunks/chunk-OKU677H3.js +87 -0
  229. package/dist/bin/shell/chunks/chunk-P6NPCASY.js +11 -0
  230. package/dist/bin/shell/chunks/chunk-PKWK3LQM.js +22 -0
  231. package/dist/bin/shell/chunks/chunk-PQPFDJFF.js +34 -0
  232. package/dist/bin/shell/chunks/chunk-PRKSLEHG.js +291 -0
  233. package/dist/bin/shell/chunks/chunk-PUZGSIMN.js +15 -0
  234. package/dist/bin/shell/chunks/chunk-Q3LE3Y66.js +13 -0
  235. package/dist/bin/shell/chunks/chunk-QAYU7HPM.js +7 -0
  236. package/dist/bin/shell/chunks/chunk-QES5OSUC.js +3 -0
  237. package/dist/bin/shell/chunks/chunk-QF7PPON7.js +16 -0
  238. package/dist/bin/shell/chunks/chunk-QK6BXSHU.js +13 -0
  239. package/dist/bin/shell/chunks/chunk-RYQB6GQ7.js +11 -0
  240. package/dist/bin/shell/chunks/chunk-SSK3N7FN.js +3 -0
  241. package/dist/bin/shell/chunks/chunk-TL4JI2SL.js +38 -0
  242. package/dist/bin/shell/chunks/chunk-TPU3OX2A.js +3 -0
  243. package/dist/bin/shell/chunks/chunk-TW2IJRUF.js +3 -0
  244. package/dist/bin/shell/chunks/chunk-TZ3S7MY6.js +12 -0
  245. package/dist/bin/shell/chunks/chunk-VGR3NA3H.js +13 -0
  246. package/dist/bin/shell/chunks/chunk-VLWZ6L7C.js +4 -0
  247. package/dist/bin/shell/chunks/chunk-VTAIIBJT.js +16 -0
  248. package/dist/bin/shell/chunks/chunk-VTHA5UK5.js +7 -0
  249. package/dist/bin/shell/chunks/chunk-VY2K25J4.js +16 -0
  250. package/dist/bin/shell/chunks/chunk-W4U4QOZF.js +7 -0
  251. package/dist/bin/shell/chunks/chunk-WDV2ECOC.js +3 -0
  252. package/dist/bin/shell/chunks/chunk-WFVCEB5T.js +3 -0
  253. package/dist/bin/shell/chunks/chunk-WSLBBXPJ.js +12 -0
  254. package/dist/bin/shell/chunks/chunk-WWOUFMMY.js +3 -0
  255. package/dist/bin/shell/chunks/chunk-WYTPLN2M.js +11 -0
  256. package/dist/bin/shell/chunks/chunk-X5VUGFUL.js +3 -0
  257. package/dist/bin/shell/chunks/chunk-X63MJBLH.js +26 -0
  258. package/dist/bin/shell/chunks/chunk-XAAXPEOP.js +6 -0
  259. package/dist/bin/shell/chunks/chunk-XEQ7KSRM.js +5 -0
  260. package/dist/bin/shell/chunks/chunk-YIANER7Y.js +8 -0
  261. package/dist/bin/shell/chunks/chunk-YMELOXDK.js +13 -0
  262. package/dist/bin/shell/chunks/chunk-YTL6DXBO.js +11 -0
  263. package/dist/bin/shell/chunks/chunk-YYZSYLJO.js +6 -0
  264. package/dist/bin/shell/chunks/chunk-ZXIW4JPL.js +22 -0
  265. package/dist/bin/shell/chunks/clear-OE52K3TM.js +3 -0
  266. package/dist/bin/shell/chunks/column-7VBJL757.js +3 -0
  267. package/dist/bin/shell/chunks/comm-URDMZCXL.js +3 -0
  268. package/dist/bin/shell/chunks/cp-MF5GADQN.js +3 -0
  269. package/dist/bin/shell/chunks/curl-FS5LAEYI.js +30 -0
  270. package/dist/bin/shell/chunks/cut-QOTYBJJJ.js +3 -0
  271. package/dist/bin/shell/chunks/date-FJUBX7TJ.js +3 -0
  272. package/dist/bin/shell/chunks/diff-YXZZCUSQ.js +3 -0
  273. package/dist/bin/shell/chunks/dirname-TPUFCYF6.js +3 -0
  274. package/dist/bin/shell/chunks/du-A3UGHIKJ.js +3 -0
  275. package/dist/bin/shell/chunks/echo-4OUEL7QB.js +3 -0
  276. package/dist/bin/shell/chunks/env-2TSVF4W7.js +3 -0
  277. package/dist/bin/shell/chunks/expand-P6SNTBGZ.js +3 -0
  278. package/dist/bin/shell/chunks/expr-56X7LYOS.js +3 -0
  279. package/dist/bin/shell/chunks/file-SQSOBJLR.js +3 -0
  280. package/dist/bin/shell/chunks/find-XY2NTAT5.js +3 -0
  281. package/dist/bin/shell/chunks/flag-coverage-WGSE667D.js +3 -0
  282. package/dist/bin/shell/chunks/fold-YEY7X54W.js +3 -0
  283. package/dist/bin/shell/chunks/grep-CMT2H2S7.js +3 -0
  284. package/dist/bin/shell/chunks/gzip-DJSFJOY6.js +3 -0
  285. package/dist/bin/shell/chunks/head-KPRH4HKC.js +3 -0
  286. package/dist/bin/shell/chunks/help-HVIDHJ6M.js +3 -0
  287. package/dist/bin/shell/chunks/history-3HAU45KT.js +3 -0
  288. package/dist/bin/shell/chunks/hostname-2I76DUQL.js +3 -0
  289. package/dist/bin/shell/chunks/html-to-markdown-WUBAMB4O.js +3 -0
  290. package/dist/bin/shell/chunks/join-UQKXU2QP.js +3 -0
  291. package/dist/bin/shell/chunks/jq-ACCMBTSD.js +3 -0
  292. package/dist/bin/shell/chunks/js-exec-4KNUPGHA.js +99 -0
  293. package/dist/bin/shell/chunks/ln-XSDIE6SU.js +3 -0
  294. package/dist/bin/shell/chunks/ls-FTHYNINH.js +3 -0
  295. package/dist/bin/shell/chunks/md5sum-Z6KAYGDK.js +3 -0
  296. package/dist/bin/shell/chunks/mkdir-74BP5NTG.js +3 -0
  297. package/dist/bin/shell/chunks/mv-YG75IRRE.js +3 -0
  298. package/dist/bin/shell/chunks/nl-XHWFVVKH.js +3 -0
  299. package/dist/bin/shell/chunks/od-A7CW5RMS.js +3 -0
  300. package/dist/bin/shell/chunks/paste-YJLYVJMP.js +3 -0
  301. package/dist/bin/shell/chunks/printf-F2KOCULO.js +3 -0
  302. package/dist/bin/shell/chunks/pwd-YKLNXWZI.js +3 -0
  303. package/dist/bin/shell/chunks/python3-AYUQQRCR.js +14 -0
  304. package/dist/bin/shell/chunks/readlink-HMHVGSAM.js +3 -0
  305. package/dist/bin/shell/chunks/rev-CZTQCNOZ.js +3 -0
  306. package/dist/bin/shell/chunks/rg-JRKJ6I4X.js +3 -0
  307. package/dist/bin/shell/chunks/rm-3PLW4O4B.js +3 -0
  308. package/dist/bin/shell/chunks/rmdir-DCJ3XJRR.js +3 -0
  309. package/dist/bin/shell/chunks/sed-QJ2LNV2N.js +3 -0
  310. package/dist/bin/shell/chunks/seq-Q4LZ6EXV.js +3 -0
  311. package/dist/bin/shell/chunks/sha1sum-CATBXX76.js +3 -0
  312. package/dist/bin/shell/chunks/sha256sum-YGSNBVY3.js +3 -0
  313. package/dist/bin/shell/chunks/sleep-FUDWGDCE.js +3 -0
  314. package/dist/bin/shell/chunks/sort-M3DO25D5.js +3 -0
  315. package/dist/bin/shell/chunks/split-7IYQYKOW.js +3 -0
  316. package/dist/bin/shell/chunks/sqlite3-ZXF6BGDW.js +3 -0
  317. package/dist/bin/shell/chunks/stat-Y5D3VPLG.js +3 -0
  318. package/dist/bin/shell/chunks/strings-J2X2Z6N2.js +3 -0
  319. package/dist/bin/shell/chunks/tac-DG4BMYM5.js +3 -0
  320. package/dist/bin/shell/chunks/tail-QISQLA3I.js +3 -0
  321. package/dist/bin/shell/chunks/tar-TB2XWXF6.js +3 -0
  322. package/dist/bin/shell/chunks/tee-L4HKV5PD.js +3 -0
  323. package/dist/bin/shell/chunks/time-LF7BTSK5.js +3 -0
  324. package/dist/bin/shell/chunks/timeout-TDOV6JDA.js +3 -0
  325. package/dist/bin/shell/chunks/touch-TVQAUQOG.js +3 -0
  326. package/dist/bin/shell/chunks/tr-AR6EK7JH.js +3 -0
  327. package/dist/bin/shell/chunks/tree-ZGP6NPGS.js +3 -0
  328. package/dist/bin/shell/chunks/true-KFTJGQLQ.js +3 -0
  329. package/dist/bin/shell/chunks/undici-JES22UVU.js +141 -0
  330. package/dist/bin/shell/chunks/unexpand-JPOQORZF.js +3 -0
  331. package/dist/bin/shell/chunks/uniq-K5VRDP4Q.js +3 -0
  332. package/dist/bin/shell/chunks/wc-VSQBRD6B.js +3 -0
  333. package/dist/bin/shell/chunks/which-4TPGVSBZ.js +3 -0
  334. package/dist/bin/shell/chunks/whoami-B5HDVKW6.js +3 -0
  335. package/dist/bin/shell/chunks/xan-D6US4ZGL.js +3 -0
  336. package/dist/bin/shell/chunks/xan-view-QGKWT354.js +3 -0
  337. package/dist/bin/shell/chunks/xargs-HMISWW4I.js +3 -0
  338. package/dist/bin/shell/chunks/yq-EYV7HLKK.js +3 -0
  339. package/dist/bin/shell/shell.js +413 -391
  340. package/dist/bounded-builder.d.ts +37 -0
  341. package/dist/browser.d.ts +3 -3
  342. package/dist/bundle/browser.js +869 -832
  343. package/dist/bundle/chunks/alias-T5TO5GWK.js +2 -0
  344. package/dist/bundle/chunks/awk2-IPNBFNH2.js +2 -0
  345. package/dist/bundle/chunks/base64-OXGTKKDA.js +2 -0
  346. package/dist/bundle/chunks/basename-SJZQ5W65.js +2 -0
  347. package/dist/bundle/chunks/bash-HIEWVHJ2.js +2 -0
  348. package/dist/bundle/chunks/cat-636HYSH4.js +2 -0
  349. package/dist/bundle/chunks/chmod-4CIOYX5Q.js +2 -0
  350. package/dist/bundle/chunks/chunk-273265WK.js +6 -0
  351. package/dist/bundle/chunks/chunk-2KNTH3KH.js +9 -0
  352. package/dist/bundle/chunks/chunk-2VWG4LDT.js +11 -0
  353. package/dist/bundle/chunks/chunk-3DHFIWMM.js +15 -0
  354. package/dist/bundle/chunks/chunk-5ATEFZLC.js +4 -0
  355. package/dist/bundle/chunks/chunk-5HXWWNWH.js +11 -0
  356. package/dist/bundle/chunks/chunk-5KGKXQF6.js +142 -0
  357. package/dist/bundle/chunks/chunk-5VCAQBXL.js +17 -0
  358. package/dist/bundle/chunks/chunk-65Z4QURM.js +12 -0
  359. package/dist/bundle/chunks/chunk-6D3WD6YU.js +3 -0
  360. package/dist/bundle/chunks/chunk-6IUGGJ2Y.js +8 -0
  361. package/dist/bundle/chunks/chunk-6R4OQQWP.js +16 -0
  362. package/dist/bundle/chunks/chunk-6WGIZV3E.js +13 -0
  363. package/dist/bundle/chunks/chunk-AFFAMSJT.js +14 -0
  364. package/dist/bundle/chunks/chunk-AH7VTVWU.js +2 -0
  365. package/dist/bundle/chunks/chunk-AI5LSBJC.js +2 -0
  366. package/dist/bundle/chunks/chunk-AMLHAS2N.js +15 -0
  367. package/dist/bundle/chunks/chunk-ANCQ4SCV.js +2 -0
  368. package/dist/bundle/chunks/chunk-B3NGH6KE.js +5 -0
  369. package/dist/bundle/chunks/chunk-B5Z5HTFY.js +14 -0
  370. package/dist/bundle/chunks/chunk-BRJERIF4.js +2 -0
  371. package/dist/bundle/chunks/chunk-CHHWTPDH.js +3 -0
  372. package/dist/bundle/chunks/chunk-CN3HTJTZ.js +11 -0
  373. package/dist/bundle/chunks/chunk-D3W7DTI6.js +9 -0
  374. package/dist/bundle/chunks/chunk-E3D4WVAH.js +21 -0
  375. package/dist/bundle/chunks/chunk-EAQUR2NP.js +25 -0
  376. package/dist/bundle/chunks/chunk-EFORKKSH.js +8 -0
  377. package/dist/bundle/chunks/chunk-EJFBIRMD.js +6 -0
  378. package/dist/bundle/chunks/chunk-ELHOZMBD.js +10 -0
  379. package/dist/bundle/chunks/chunk-EQQGPAXI.js +9 -0
  380. package/dist/bundle/chunks/chunk-EWWPEE2G.js +37 -0
  381. package/dist/bundle/chunks/chunk-FBXMKFE2.js +2 -0
  382. package/dist/bundle/chunks/chunk-FIMO5HLX.js +2 -0
  383. package/dist/bundle/chunks/chunk-FT6ODGOU.js +2 -0
  384. package/dist/bundle/chunks/chunk-G4SEENI7.js +6 -0
  385. package/dist/bundle/chunks/chunk-GN6CQ3J4.js +2 -0
  386. package/dist/bundle/chunks/chunk-HW6ZCMM5.js +9 -0
  387. package/dist/bundle/chunks/chunk-IBRT3OJS.js +2 -0
  388. package/dist/bundle/chunks/chunk-INDA53JL.js +21 -0
  389. package/dist/bundle/chunks/chunk-INHMNORI.js +6 -0
  390. package/dist/bundle/chunks/chunk-J2OBOJ64.js +2 -0
  391. package/dist/bundle/chunks/chunk-JCPCQREJ.js +15 -0
  392. package/dist/bundle/chunks/chunk-JYQ6MII2.js +33 -0
  393. package/dist/bundle/chunks/chunk-K3XJ2WT4.js +2 -0
  394. package/dist/bundle/chunks/chunk-KIGPB52X.js +2 -0
  395. package/dist/bundle/chunks/chunk-KKVPMNSS.js +5 -0
  396. package/dist/bundle/chunks/chunk-LGLR6TFP.js +7 -0
  397. package/dist/bundle/chunks/chunk-LJRVJXUI.js +2 -0
  398. package/dist/bundle/chunks/chunk-LVDUF74R.js +7 -0
  399. package/dist/bundle/chunks/chunk-MAWVZWRK.js +12 -0
  400. package/dist/bundle/chunks/chunk-MF4F4ZPP.js +7 -0
  401. package/dist/bundle/chunks/chunk-MFGH46GH.js +14 -0
  402. package/dist/bundle/chunks/chunk-N4TGZ6H7.js +7 -0
  403. package/dist/bundle/chunks/chunk-NCUTH6QL.js +2 -0
  404. package/dist/bundle/chunks/chunk-NNH4ERNJ.js +100 -0
  405. package/dist/bundle/chunks/chunk-NOPXHH6G.js +290 -0
  406. package/dist/bundle/chunks/chunk-OQ7C4FYO.js +2 -0
  407. package/dist/bundle/chunks/chunk-ORDZCFFT.js +2 -0
  408. package/dist/bundle/chunks/chunk-OTYP7VVT.js +21 -0
  409. package/dist/bundle/chunks/chunk-P5BOIHWV.js +6 -0
  410. package/dist/bundle/chunks/chunk-PJWSSENQ.js +5 -0
  411. package/dist/bundle/chunks/chunk-PMYUC5JF.js +12 -0
  412. package/dist/bundle/chunks/chunk-POIWRLUV.js +6 -0
  413. package/dist/bundle/chunks/chunk-PPDMRIJ7.js +11 -0
  414. package/dist/bundle/chunks/chunk-QTLI5LUD.js +21 -0
  415. package/dist/bundle/chunks/chunk-R2FBRMDU.js +14 -0
  416. package/dist/bundle/chunks/chunk-RAHPENCM.js +35 -0
  417. package/dist/bundle/chunks/chunk-SELXJ5KQ.js +10 -0
  418. package/dist/bundle/chunks/chunk-T2RHALUC.js +64 -0
  419. package/dist/bundle/chunks/chunk-UB6T3UHL.js +8 -0
  420. package/dist/bundle/chunks/chunk-UBTKJ6MG.js +4 -0
  421. package/dist/bundle/chunks/chunk-UHHCL65P.js +3 -0
  422. package/dist/bundle/chunks/chunk-UK4BO5W3.js +2 -0
  423. package/dist/bundle/chunks/chunk-UTKGYVUZ.js +7 -0
  424. package/dist/bundle/chunks/chunk-VECGTAPW.js +10 -0
  425. package/dist/bundle/chunks/chunk-VOSNSQE2.js +2 -0
  426. package/dist/bundle/chunks/chunk-WENIVVEE.js +19 -0
  427. package/dist/bundle/chunks/chunk-WHHRIZS3.js +10 -0
  428. package/dist/bundle/chunks/chunk-WZQNMEQW.js +2 -0
  429. package/dist/bundle/chunks/chunk-XVL654YD.js +33 -0
  430. package/dist/bundle/chunks/chunk-Y3DGIAIG.js +21 -0
  431. package/dist/bundle/chunks/chunk-Y62SXZKJ.js +12 -0
  432. package/dist/bundle/chunks/chunk-YOUUMJLJ.js +10 -0
  433. package/dist/bundle/chunks/chunk-YUSFCOM7.js +2 -0
  434. package/dist/bundle/chunks/clear-KPIUNI6K.js +2 -0
  435. package/dist/bundle/chunks/column-LKMDIDCH.js +2 -0
  436. package/dist/bundle/chunks/comm-DTWKU2MC.js +2 -0
  437. package/dist/bundle/chunks/cp-FKTQRFYJ.js +2 -0
  438. package/dist/bundle/chunks/curl-DEHFBW27.js +29 -0
  439. package/dist/bundle/chunks/cut-RWPUW5FY.js +2 -0
  440. package/dist/bundle/chunks/date-FN2DXAEE.js +2 -0
  441. package/dist/bundle/chunks/diff-CSARC7WF.js +2 -0
  442. package/dist/bundle/chunks/dirname-Z2ZMOOW2.js +2 -0
  443. package/dist/bundle/chunks/du-PR3M44X6.js +2 -0
  444. package/dist/bundle/chunks/echo-HZOVZAPR.js +2 -0
  445. package/dist/bundle/chunks/env-VUUMB47B.js +2 -0
  446. package/dist/bundle/chunks/expand-2BPPGGSM.js +2 -0
  447. package/dist/bundle/chunks/expr-SHRJJ4PX.js +2 -0
  448. package/dist/bundle/chunks/file-YC4YEI4P.js +2 -0
  449. package/dist/bundle/chunks/find-DWWMZFO5.js +2 -0
  450. package/dist/bundle/chunks/flag-coverage-THYQHOT3.js +2 -0
  451. package/dist/bundle/chunks/fold-QJBPHRFJ.js +2 -0
  452. package/dist/bundle/chunks/grep-S6SNTIHZ.js +2 -0
  453. package/dist/bundle/chunks/gzip-BTI6CWY4.js +2 -0
  454. package/dist/bundle/chunks/head-UCOA3VQC.js +2 -0
  455. package/dist/bundle/chunks/help-QDDMBDU7.js +2 -0
  456. package/dist/bundle/chunks/history-3N762S3K.js +2 -0
  457. package/dist/bundle/chunks/hostname-CESD3CQR.js +2 -0
  458. package/dist/bundle/chunks/html-to-markdown-NUF6QEX4.js +2 -0
  459. package/dist/bundle/chunks/join-KQ4Z5OD4.js +2 -0
  460. package/dist/bundle/chunks/jq-D6N4QCAJ.js +2 -0
  461. package/dist/bundle/chunks/js-exec-PNUEDFT5.js +98 -0
  462. package/dist/bundle/chunks/js-exec-worker.js +187 -110
  463. package/dist/bundle/chunks/ln-VYDFOFNO.js +2 -0
  464. package/dist/bundle/chunks/ls-R5CQLZQM.js +2 -0
  465. package/dist/bundle/chunks/md5sum-JEDX55KS.js +2 -0
  466. package/dist/bundle/chunks/mkdir-WDDKK2P3.js +2 -0
  467. package/dist/bundle/chunks/mv-XSJA2FNL.js +2 -0
  468. package/dist/bundle/chunks/nl-RFXH2GNX.js +2 -0
  469. package/dist/bundle/chunks/od-YXD2NNIU.js +2 -0
  470. package/dist/bundle/chunks/paste-ZU3EODNI.js +2 -0
  471. package/dist/bundle/chunks/printf-QHD2JRWQ.js +2 -0
  472. package/dist/bundle/chunks/pwd-76BPYV5F.js +2 -0
  473. package/dist/bundle/chunks/python3-QDNG2UXX.js +13 -0
  474. package/dist/bundle/chunks/readlink-IY6QKK2P.js +2 -0
  475. package/dist/bundle/chunks/rev-EPOS3MFH.js +2 -0
  476. package/dist/bundle/chunks/rg-OUJZ5DH6.js +2 -0
  477. package/dist/bundle/chunks/rm-JQ4GDKDD.js +2 -0
  478. package/dist/bundle/chunks/rmdir-WZKAT6M5.js +2 -0
  479. package/dist/bundle/chunks/sed-TZIPJOGL.js +2 -0
  480. package/dist/bundle/chunks/seq-5R2GKXC6.js +2 -0
  481. package/dist/bundle/chunks/sha1sum-BLPZJ6MP.js +2 -0
  482. package/dist/bundle/chunks/sha256sum-VJZ4PHQ4.js +2 -0
  483. package/dist/bundle/chunks/sleep-VPYWSKDR.js +2 -0
  484. package/dist/bundle/chunks/sort-PV2NEQHF.js +2 -0
  485. package/dist/bundle/chunks/split-KNDNAFPT.js +2 -0
  486. package/dist/bundle/chunks/sqlite3-WWZJZW37.js +2 -0
  487. package/dist/bundle/chunks/sqlite3-worker.js +316 -173
  488. package/dist/bundle/chunks/stat-MLNSW25G.js +2 -0
  489. package/dist/bundle/chunks/strings-WTD7Q2EF.js +2 -0
  490. package/dist/bundle/chunks/tac-YXC4HBTR.js +2 -0
  491. package/dist/bundle/chunks/tail-G3W6PNG3.js +2 -0
  492. package/dist/bundle/chunks/tar-GLX6QUHW.js +2 -0
  493. package/dist/bundle/chunks/tee-OOWSWHRQ.js +2 -0
  494. package/dist/bundle/chunks/time-NERE2JJ2.js +2 -0
  495. package/dist/bundle/chunks/timeout-SYQCWBMZ.js +2 -0
  496. package/dist/bundle/chunks/touch-W4DF6Z4T.js +2 -0
  497. package/dist/bundle/chunks/tr-3KPFH3J4.js +2 -0
  498. package/dist/bundle/chunks/tree-7OOL2MH6.js +2 -0
  499. package/dist/bundle/chunks/true-QUBPEGGU.js +2 -0
  500. package/dist/bundle/chunks/undici-HCLAUJT3.js +140 -0
  501. package/dist/bundle/chunks/unexpand-YD5BWFH4.js +2 -0
  502. package/dist/bundle/chunks/uniq-OVOW532K.js +2 -0
  503. package/dist/bundle/chunks/wc-RUR7HE5O.js +2 -0
  504. package/dist/bundle/chunks/which-UWVKETYW.js +2 -0
  505. package/dist/bundle/chunks/whoami-KR6E7UIR.js +2 -0
  506. package/dist/bundle/chunks/worker.js +212 -105
  507. package/dist/bundle/chunks/xan-KKPV2TJ3.js +2 -0
  508. package/dist/bundle/chunks/xan-view-47P277LZ.js +2 -0
  509. package/dist/bundle/chunks/xargs-L7TJHOJT.js +2 -0
  510. package/dist/bundle/chunks/yq-ZGB3W46S.js +2 -0
  511. package/dist/bundle/index.cjs +1450 -1263
  512. package/dist/bundle/index.js +407 -386
  513. package/dist/commands/alias/alias.d.ts +3 -3
  514. package/dist/commands/awk/awk2.d.ts +3 -3
  515. package/dist/commands/awk/builtins.d.ts +1 -1
  516. package/dist/commands/awk/interpreter/context.d.ts +13 -0
  517. package/dist/commands/awk/lexer.d.ts +2 -1
  518. package/dist/commands/awk/parser2-print.d.ts +3 -0
  519. package/dist/commands/awk/parser2.d.ts +15 -0
  520. package/dist/commands/base64/base64.d.ts +2 -2
  521. package/dist/commands/basename/basename.d.ts +2 -2
  522. package/dist/commands/bash/bash.d.ts +3 -3
  523. package/dist/commands/cat/cat.d.ts +2 -2
  524. package/dist/commands/chmod/chmod.d.ts +2 -2
  525. package/dist/commands/clear/clear.d.ts +2 -2
  526. package/dist/commands/column/column.d.ts +2 -2
  527. package/dist/commands/comm/comm.d.ts +2 -2
  528. package/dist/commands/compression/codec-budget.d.ts +35 -0
  529. package/dist/commands/cp/cp.d.ts +2 -2
  530. package/dist/commands/curl/curl.d.ts +2 -2
  531. package/dist/commands/curl/form.d.ts +3 -1
  532. package/dist/commands/curl/types.d.ts +30 -25
  533. package/dist/commands/cut/cut.d.ts +2 -2
  534. package/dist/commands/date/date.d.ts +2 -2
  535. package/dist/commands/diff/diff.d.ts +2 -2
  536. package/dist/commands/dirname/dirname.d.ts +2 -2
  537. package/dist/commands/du/du.d.ts +2 -2
  538. package/dist/commands/echo/echo.d.ts +2 -2
  539. package/dist/commands/env/env.d.ts +3 -3
  540. package/dist/commands/expand/expand.d.ts +2 -2
  541. package/dist/commands/expand/unexpand.d.ts +2 -2
  542. package/dist/commands/expr/expr.d.ts +2 -2
  543. package/dist/commands/file/file.d.ts +2 -2
  544. package/dist/commands/find/find.d.ts +2 -2
  545. package/dist/commands/find/matcher.d.ts +0 -16
  546. package/dist/commands/find/types.d.ts +3 -2
  547. package/dist/commands/fold/fold.d.ts +2 -2
  548. package/dist/commands/grep/grep.d.ts +4 -4
  549. package/dist/commands/gzip/gzip.d.ts +4 -4
  550. package/dist/commands/head/head-tail-shared.d.ts +2 -2
  551. package/dist/commands/head/head.d.ts +2 -2
  552. package/dist/commands/help/help.d.ts +2 -2
  553. package/dist/commands/history/history.d.ts +2 -2
  554. package/dist/commands/hostname/hostname.d.ts +2 -2
  555. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +2 -2
  556. package/dist/commands/join/join.d.ts +2 -2
  557. package/dist/commands/jq/jq.d.ts +3 -3
  558. package/dist/commands/js-exec/fetch-polyfill.d.ts +1 -1
  559. package/dist/commands/js-exec/js-exec-worker.d.ts +1 -0
  560. package/dist/commands/js-exec/js-exec.d.ts +5 -3
  561. package/dist/commands/ln/ln.d.ts +2 -2
  562. package/dist/commands/ls/ls.d.ts +2 -2
  563. package/dist/commands/md5sum/checksum.d.ts +2 -2
  564. package/dist/commands/md5sum/md5sum.d.ts +2 -2
  565. package/dist/commands/md5sum/sha1sum.d.ts +2 -2
  566. package/dist/commands/md5sum/sha256sum.d.ts +2 -2
  567. package/dist/commands/mkdir/mkdir.d.ts +2 -2
  568. package/dist/commands/mv/mv.d.ts +2 -2
  569. package/dist/commands/nl/nl.d.ts +2 -2
  570. package/dist/commands/od/od.d.ts +2 -2
  571. package/dist/commands/paste/paste.d.ts +2 -2
  572. package/dist/commands/printf/escapes.d.ts +5 -3
  573. package/dist/commands/printf/printf.d.ts +2 -2
  574. package/dist/commands/printf/strftime.d.ts +6 -1
  575. package/dist/commands/pwd/pwd.d.ts +2 -2
  576. package/dist/commands/python3/python3.d.ts +3 -3
  577. package/dist/commands/python3/worker.d.ts +2 -0
  578. package/dist/commands/query-engine/builtins/control-builtins.d.ts +1 -1
  579. package/dist/commands/query-engine/builtins/path-builtins.d.ts +1 -1
  580. package/dist/commands/query-engine/evaluator.d.ts +15 -1
  581. package/dist/commands/query-engine/json-output.d.ts +11 -0
  582. package/dist/commands/query-engine/parser.d.ts +6 -1
  583. package/dist/commands/query-engine/safe-object.d.ts +9 -8
  584. package/dist/commands/query-engine/value-operations.d.ts +4 -1
  585. package/dist/commands/readlink/readlink.d.ts +2 -2
  586. package/dist/commands/registry.d.ts +5 -5
  587. package/dist/commands/rev/rev.d.ts +2 -2
  588. package/dist/commands/rg/rg-search.d.ts +2 -2
  589. package/dist/commands/rg/rg.d.ts +2 -2
  590. package/dist/commands/rm/rm.d.ts +2 -2
  591. package/dist/commands/rmdir/rmdir.d.ts +2 -2
  592. package/dist/commands/search-engine/matcher.d.ts +6 -0
  593. package/dist/commands/sed/lexer.d.ts +3 -1
  594. package/dist/commands/sed/parser.d.ts +4 -1
  595. package/dist/commands/sed/sed.d.ts +2 -2
  596. package/dist/commands/seq/seq.d.ts +2 -2
  597. package/dist/commands/sleep/sleep.d.ts +2 -2
  598. package/dist/commands/sort/sort.d.ts +2 -2
  599. package/dist/commands/split/split.d.ts +2 -2
  600. package/dist/commands/sqlite3/formatters.d.ts +2 -0
  601. package/dist/commands/sqlite3/sqlite3.d.ts +3 -2
  602. package/dist/commands/sqlite3/worker.d.ts +5 -0
  603. package/dist/commands/sqlite3/worker.js +316 -173
  604. package/dist/commands/stat/stat.d.ts +2 -2
  605. package/dist/commands/strings/strings.d.ts +2 -2
  606. package/dist/commands/tac/tac.d.ts +2 -2
  607. package/dist/commands/tail/tail.d.ts +2 -2
  608. package/dist/commands/tar/archive.d.ts +29 -14
  609. package/dist/commands/tar/bzip2-compress.d.ts +2 -1
  610. package/dist/commands/tar/tar.d.ts +2 -2
  611. package/dist/commands/tee/tee.d.ts +2 -2
  612. package/dist/commands/time/time.d.ts +2 -2
  613. package/dist/commands/timeout/timeout.d.ts +2 -2
  614. package/dist/commands/touch/touch.d.ts +2 -2
  615. package/dist/commands/tr/tr.d.ts +2 -2
  616. package/dist/commands/tree/tree.d.ts +2 -2
  617. package/dist/commands/true/true.d.ts +3 -3
  618. package/dist/commands/uniq/uniq.d.ts +2 -2
  619. package/dist/commands/wc/wc.d.ts +2 -2
  620. package/dist/commands/which/which.d.ts +2 -2
  621. package/dist/commands/whoami/whoami.d.ts +2 -2
  622. package/dist/commands/worker-request-controller.d.ts +36 -0
  623. package/dist/commands/xan/aggregation.d.ts +13 -3
  624. package/dist/commands/xan/bounded-output.d.ts +4 -0
  625. package/dist/commands/xan/column-selection.d.ts +2 -1
  626. package/dist/commands/xan/csv.d.ts +29 -4
  627. package/dist/commands/xan/moonblade-parser.d.ts +11 -2
  628. package/dist/commands/xan/moonblade-to-jq.d.ts +2 -2
  629. package/dist/commands/xan/moonblade-tokenizer.d.ts +8 -1
  630. package/dist/commands/xan/xan-agg.d.ts +5 -5
  631. package/dist/commands/xan/xan-columns.d.ts +5 -5
  632. package/dist/commands/xan/xan-core.d.ts +7 -7
  633. package/dist/commands/xan/xan-data.d.ts +8 -8
  634. package/dist/commands/xan/xan-filter.d.ts +5 -5
  635. package/dist/commands/xan/xan-map.d.ts +3 -3
  636. package/dist/commands/xan/xan-reshape.d.ts +6 -6
  637. package/dist/commands/xan/xan-simple.d.ts +7 -7
  638. package/dist/commands/xan/xan-view.d.ts +3 -3
  639. package/dist/commands/xan/xan.d.ts +2 -2
  640. package/dist/commands/xargs/xargs.d.ts +2 -2
  641. package/dist/commands/yq/formats.d.ts +5 -4
  642. package/dist/commands/yq/yq.d.ts +3 -3
  643. package/dist/custom-commands.d.ts +25 -2
  644. package/dist/encoding.d.ts +5 -3
  645. package/dist/execution-output.d.ts +28 -0
  646. package/dist/execution-scope.d.ts +89 -0
  647. package/dist/fatal-execution-error.d.ts +5 -0
  648. package/dist/fs/identity.d.ts +9 -0
  649. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +24 -1
  650. package/dist/fs/interface.d.ts +4 -0
  651. package/dist/fs/overlay-fs/overlay-fs.d.ts +13 -0
  652. package/dist/fs/path-utils.d.ts +2 -0
  653. package/dist/fs/read-write-fs/read-write-fs.d.ts +11 -0
  654. package/dist/fs/real-fs-utils.d.ts +1 -1
  655. package/dist/fs/traversal.d.ts +98 -0
  656. package/dist/index.d.cts +4 -4
  657. package/dist/index.d.ts +4 -4
  658. package/dist/interpreter/alias-expansion.d.ts +4 -0
  659. package/dist/interpreter/builtins/declare-array-parsing.d.ts +6 -2
  660. package/dist/interpreter/builtins/index.d.ts +0 -1
  661. package/dist/interpreter/builtins/variable-assignment.d.ts +4 -1
  662. package/dist/interpreter/conditionals.d.ts +1 -1
  663. package/dist/interpreter/defense-aware-command-context.d.ts +2 -2
  664. package/dist/interpreter/errors.d.ts +7 -17
  665. package/dist/interpreter/expansion/brace-range.d.ts +5 -1
  666. package/dist/interpreter/expansion/pattern-removal.d.ts +2 -3
  667. package/dist/interpreter/expansion/pattern-replacement.d.ts +4 -0
  668. package/dist/interpreter/expansion/tilde.d.ts +2 -0
  669. package/dist/interpreter/helpers/array.d.ts +16 -3
  670. package/dist/interpreter/helpers/bounded-array.d.ts +2 -0
  671. package/dist/interpreter/helpers/condition.d.ts +2 -5
  672. package/dist/interpreter/helpers/ifs.d.ts +3 -3
  673. package/dist/interpreter/helpers/quoting.d.ts +2 -0
  674. package/dist/interpreter/helpers/string-compare.d.ts +1 -1
  675. package/dist/interpreter/interpreter.d.ts +4 -8
  676. package/dist/interpreter/redirections.d.ts +5 -2
  677. package/dist/interpreter/simple-command-assignments.d.ts +7 -0
  678. package/dist/interpreter/state-transaction.d.ts +7 -0
  679. package/dist/interpreter/types.d.ts +24 -8
  680. package/dist/limits.d.ts +76 -17
  681. package/dist/network/dns-pin.d.ts +23 -32
  682. package/dist/network/fetch.d.ts +4 -0
  683. package/dist/network/types.d.ts +10 -1
  684. package/dist/parser/parser.d.ts +5 -2
  685. package/dist/parser/types.d.ts +10 -1
  686. package/dist/source-limit.d.ts +2 -0
  687. package/dist/timers.d.ts +12 -0
  688. package/dist/types.d.ts +43 -7
  689. package/dist/utils/file-reader.d.ts +5 -3
  690. package/package.json +10 -5
  691. package/dist/bin/chunks/alias-YRVAW27Y.js +0 -3
  692. package/dist/bin/chunks/awk2-UFCNQFCV.js +0 -3
  693. package/dist/bin/chunks/base64-EGKVQIBC.js +0 -3
  694. package/dist/bin/chunks/basename-F3AQ4KAQ.js +0 -3
  695. package/dist/bin/chunks/bash-BEG4JB7K.js +0 -3
  696. package/dist/bin/chunks/cat-NBL6MU5H.js +0 -3
  697. package/dist/bin/chunks/chmod-S564JCJW.js +0 -3
  698. package/dist/bin/chunks/chunk-2AIXTPH2.js +0 -9
  699. package/dist/bin/chunks/chunk-2GG3NVC4.js +0 -10
  700. package/dist/bin/chunks/chunk-2ZAK22BG.js +0 -9
  701. package/dist/bin/chunks/chunk-3WIMLJM7.js +0 -8
  702. package/dist/bin/chunks/chunk-47WZ2U6M.js +0 -9
  703. package/dist/bin/chunks/chunk-4BNS566Q.js +0 -4
  704. package/dist/bin/chunks/chunk-52FZYTIX.js +0 -34
  705. package/dist/bin/chunks/chunk-5KX5YUWT.js +0 -37
  706. package/dist/bin/chunks/chunk-5XSZHUEI.js +0 -15
  707. package/dist/bin/chunks/chunk-63LSI3D6.js +0 -17
  708. package/dist/bin/chunks/chunk-6FYCU7QB.js +0 -3
  709. package/dist/bin/chunks/chunk-6JKLDBRW.js +0 -18
  710. package/dist/bin/chunks/chunk-6WJQNLR2.js +0 -7
  711. package/dist/bin/chunks/chunk-7HK63L6Y.js +0 -3
  712. package/dist/bin/chunks/chunk-7NDRU2ZN.js +0 -5
  713. package/dist/bin/chunks/chunk-7VCQWCSH.js +0 -15
  714. package/dist/bin/chunks/chunk-AFAD5U2A.js +0 -8
  715. package/dist/bin/chunks/chunk-AZH64XMJ.js +0 -3
  716. package/dist/bin/chunks/chunk-BKQLXMS6.js +0 -36
  717. package/dist/bin/chunks/chunk-BPZJYOUA.js +0 -33
  718. package/dist/bin/chunks/chunk-BZP56QBM.js +0 -24
  719. package/dist/bin/chunks/chunk-C6JOQKE2.js +0 -22
  720. package/dist/bin/chunks/chunk-CX5CEEGI.js +0 -11
  721. package/dist/bin/chunks/chunk-D7YFPDMV.js +0 -22
  722. package/dist/bin/chunks/chunk-DHIKZU63.js +0 -3
  723. package/dist/bin/chunks/chunk-DWECIBLJ.js +0 -3
  724. package/dist/bin/chunks/chunk-FEENTUVZ.js +0 -18
  725. package/dist/bin/chunks/chunk-FYCT4DWY.js +0 -6
  726. package/dist/bin/chunks/chunk-G7ZWT7BT.js +0 -9
  727. package/dist/bin/chunks/chunk-GTO74SFS.js +0 -7
  728. package/dist/bin/chunks/chunk-HMCRB24D.js +0 -15
  729. package/dist/bin/chunks/chunk-HWNCK5BB.js +0 -10
  730. package/dist/bin/chunks/chunk-HZR3FOJM.js +0 -288
  731. package/dist/bin/chunks/chunk-ISLENKSH.js +0 -7
  732. package/dist/bin/chunks/chunk-IX7LKVVH.js +0 -15
  733. package/dist/bin/chunks/chunk-JDFKEXLG.js +0 -12
  734. package/dist/bin/chunks/chunk-JJC4ENJL.js +0 -13
  735. package/dist/bin/chunks/chunk-JSZBZ2XU.js +0 -3
  736. package/dist/bin/chunks/chunk-JXLDT4KX.js +0 -4
  737. package/dist/bin/chunks/chunk-KMZUSEWI.js +0 -12
  738. package/dist/bin/chunks/chunk-KWCO3YXP.js +0 -17
  739. package/dist/bin/chunks/chunk-LNVSXNT7.js +0 -3
  740. package/dist/bin/chunks/chunk-LX2H4DPL.js +0 -6
  741. package/dist/bin/chunks/chunk-MLUOPG3W.js +0 -3
  742. package/dist/bin/chunks/chunk-MNWK4UIM.js +0 -22
  743. package/dist/bin/chunks/chunk-MP77TJMM.js +0 -6
  744. package/dist/bin/chunks/chunk-MTK7VLZG.js +0 -12
  745. package/dist/bin/chunks/chunk-N3FQJLPZ.js +0 -17
  746. package/dist/bin/chunks/chunk-N6YW4W3Z.js +0 -29
  747. package/dist/bin/chunks/chunk-NMMVECGD.js +0 -14
  748. package/dist/bin/chunks/chunk-NXYVRP6D.js +0 -11
  749. package/dist/bin/chunks/chunk-NYIPFY36.js +0 -3
  750. package/dist/bin/chunks/chunk-OVVMB2JI.js +0 -7
  751. package/dist/bin/chunks/chunk-OXZSG3ZZ.js +0 -7
  752. package/dist/bin/chunks/chunk-PKE7GKU5.js +0 -3
  753. package/dist/bin/chunks/chunk-PSJORJRS.js +0 -6
  754. package/dist/bin/chunks/chunk-R36DS2UF.js +0 -20
  755. package/dist/bin/chunks/chunk-RKBWTGBZ.js +0 -7
  756. package/dist/bin/chunks/chunk-RO3XCUVQ.js +0 -141
  757. package/dist/bin/chunks/chunk-RVGYO2OU.js +0 -3
  758. package/dist/bin/chunks/chunk-SF2OLINE.js +0 -12
  759. package/dist/bin/chunks/chunk-TIRU5FOD.js +0 -101
  760. package/dist/bin/chunks/chunk-TKYWUEON.js +0 -13
  761. package/dist/bin/chunks/chunk-UI7CV277.js +0 -20
  762. package/dist/bin/chunks/chunk-UNWZQG7U.js +0 -3
  763. package/dist/bin/chunks/chunk-UOMNSQEZ.js +0 -10
  764. package/dist/bin/chunks/chunk-W5OBQVJ2.js +0 -6
  765. package/dist/bin/chunks/chunk-WDWNEHHE.js +0 -9
  766. package/dist/bin/chunks/chunk-WHUKZ3K3.js +0 -85
  767. package/dist/bin/chunks/chunk-XHCCSVP6.js +0 -9
  768. package/dist/bin/chunks/chunk-XPTYN6UE.js +0 -8
  769. package/dist/bin/chunks/chunk-XRUDFQG5.js +0 -7
  770. package/dist/bin/chunks/chunk-Y2IUEWQD.js +0 -11
  771. package/dist/bin/chunks/chunk-Y5OWCEDV.js +0 -64
  772. package/dist/bin/chunks/chunk-ZFUVUYWG.js +0 -15
  773. package/dist/bin/chunks/chunk-ZZP3RSWL.js +0 -4
  774. package/dist/bin/chunks/clear-FGNEKYDU.js +0 -3
  775. package/dist/bin/chunks/column-QLGOK3XM.js +0 -3
  776. package/dist/bin/chunks/comm-PLYUTVP3.js +0 -3
  777. package/dist/bin/chunks/cp-HYXTMN3D.js +0 -3
  778. package/dist/bin/chunks/curl-DCSPNPEW.js +0 -27
  779. package/dist/bin/chunks/cut-JNQTCQY7.js +0 -3
  780. package/dist/bin/chunks/date-OFYBOAUE.js +0 -3
  781. package/dist/bin/chunks/diff-LZ4WRLIF.js +0 -3
  782. package/dist/bin/chunks/dirname-VCINTLPD.js +0 -3
  783. package/dist/bin/chunks/du-4LRQIGRG.js +0 -3
  784. package/dist/bin/chunks/echo-KCOHTNDF.js +0 -3
  785. package/dist/bin/chunks/env-FNVYNLGB.js +0 -3
  786. package/dist/bin/chunks/expand-CB7FG7LQ.js +0 -3
  787. package/dist/bin/chunks/expr-6A2XZORA.js +0 -3
  788. package/dist/bin/chunks/file-GRZLWDVH.js +0 -3
  789. package/dist/bin/chunks/find-5OZWMYCV.js +0 -3
  790. package/dist/bin/chunks/flag-coverage-CAST5CDE.js +0 -3
  791. package/dist/bin/chunks/fold-7YEITA5L.js +0 -3
  792. package/dist/bin/chunks/grep-KKBXRB73.js +0 -3
  793. package/dist/bin/chunks/gzip-ZJP5VIAQ.js +0 -3
  794. package/dist/bin/chunks/head-B6GFQHKF.js +0 -3
  795. package/dist/bin/chunks/help-CGUEOGXQ.js +0 -3
  796. package/dist/bin/chunks/history-AQQWW3QB.js +0 -3
  797. package/dist/bin/chunks/hostname-USNWOQCK.js +0 -3
  798. package/dist/bin/chunks/html-to-markdown-3HJ7L7NL.js +0 -3
  799. package/dist/bin/chunks/join-WRM6S6CO.js +0 -3
  800. package/dist/bin/chunks/jq-3V5HDGLJ.js +0 -3
  801. package/dist/bin/chunks/js-exec-F7JAZ4ZQ.js +0 -98
  802. package/dist/bin/chunks/ln-LP4HMCSM.js +0 -3
  803. package/dist/bin/chunks/ls-KBNHNZWQ.js +0 -3
  804. package/dist/bin/chunks/md5sum-ZNYCDRQL.js +0 -3
  805. package/dist/bin/chunks/mkdir-P4DKRCDX.js +0 -3
  806. package/dist/bin/chunks/mv-QQK4FQX6.js +0 -3
  807. package/dist/bin/chunks/nl-6TVYE4ZB.js +0 -3
  808. package/dist/bin/chunks/od-Y3E3QXOL.js +0 -3
  809. package/dist/bin/chunks/paste-LYNFXXCM.js +0 -3
  810. package/dist/bin/chunks/printf-MR3FXCDE.js +0 -3
  811. package/dist/bin/chunks/pwd-FCNDA467.js +0 -3
  812. package/dist/bin/chunks/python3-R5OFWJIH.js +0 -13
  813. package/dist/bin/chunks/readlink-25V57VOL.js +0 -3
  814. package/dist/bin/chunks/rev-AJECDD4L.js +0 -3
  815. package/dist/bin/chunks/rg-DZKA632H.js +0 -3
  816. package/dist/bin/chunks/rm-ECNUFR66.js +0 -3
  817. package/dist/bin/chunks/rmdir-DLOHIA7Q.js +0 -3
  818. package/dist/bin/chunks/sed-IGRH7EGG.js +0 -3
  819. package/dist/bin/chunks/seq-UXDJE6FB.js +0 -3
  820. package/dist/bin/chunks/sha1sum-5QZSNFY3.js +0 -3
  821. package/dist/bin/chunks/sha256sum-DI7JAVAU.js +0 -3
  822. package/dist/bin/chunks/sleep-RPGCUUGX.js +0 -3
  823. package/dist/bin/chunks/sort-HQPAFL76.js +0 -3
  824. package/dist/bin/chunks/split-F6FSB5KI.js +0 -3
  825. package/dist/bin/chunks/sqlite3-7TRACAE7.js +0 -3
  826. package/dist/bin/chunks/stat-BD6KT3BP.js +0 -3
  827. package/dist/bin/chunks/strings-6PE3YMPO.js +0 -3
  828. package/dist/bin/chunks/tac-NERJXVOM.js +0 -3
  829. package/dist/bin/chunks/tail-24F643A4.js +0 -3
  830. package/dist/bin/chunks/tar-5HK3VMV2.js +0 -3
  831. package/dist/bin/chunks/tee-5B7P2QRJ.js +0 -3
  832. package/dist/bin/chunks/time-FN6VJGRS.js +0 -3
  833. package/dist/bin/chunks/timeout-ZARIAF3K.js +0 -3
  834. package/dist/bin/chunks/touch-DFGSVIX7.js +0 -3
  835. package/dist/bin/chunks/tr-QQZYZ3CH.js +0 -3
  836. package/dist/bin/chunks/tree-6D7SMPUR.js +0 -3
  837. package/dist/bin/chunks/true-SKL4L7JP.js +0 -3
  838. package/dist/bin/chunks/unexpand-3JWOSSBQ.js +0 -3
  839. package/dist/bin/chunks/uniq-Q5UH5NL3.js +0 -3
  840. package/dist/bin/chunks/wc-4HXNTHY3.js +0 -3
  841. package/dist/bin/chunks/which-LCXKCLFC.js +0 -3
  842. package/dist/bin/chunks/whoami-TZDZDU7T.js +0 -3
  843. package/dist/bin/chunks/xan-TCTFON2Q.js +0 -3
  844. package/dist/bin/chunks/xan-view-XBMA362V.js +0 -3
  845. package/dist/bin/chunks/xargs-VTFN762K.js +0 -3
  846. package/dist/bin/chunks/yq-OB6PB5GY.js +0 -3
  847. package/dist/bin/shell/chunks/alias-YRVAW27Y.js +0 -3
  848. package/dist/bin/shell/chunks/awk2-UFCNQFCV.js +0 -3
  849. package/dist/bin/shell/chunks/base64-EGKVQIBC.js +0 -3
  850. package/dist/bin/shell/chunks/basename-F3AQ4KAQ.js +0 -3
  851. package/dist/bin/shell/chunks/bash-BEG4JB7K.js +0 -3
  852. package/dist/bin/shell/chunks/cat-NBL6MU5H.js +0 -3
  853. package/dist/bin/shell/chunks/chmod-S564JCJW.js +0 -3
  854. package/dist/bin/shell/chunks/chunk-2AIXTPH2.js +0 -9
  855. package/dist/bin/shell/chunks/chunk-2GG3NVC4.js +0 -10
  856. package/dist/bin/shell/chunks/chunk-2ZAK22BG.js +0 -9
  857. package/dist/bin/shell/chunks/chunk-3WIMLJM7.js +0 -8
  858. package/dist/bin/shell/chunks/chunk-47WZ2U6M.js +0 -9
  859. package/dist/bin/shell/chunks/chunk-4BNS566Q.js +0 -4
  860. package/dist/bin/shell/chunks/chunk-52FZYTIX.js +0 -34
  861. package/dist/bin/shell/chunks/chunk-5KX5YUWT.js +0 -37
  862. package/dist/bin/shell/chunks/chunk-5XSZHUEI.js +0 -15
  863. package/dist/bin/shell/chunks/chunk-63LSI3D6.js +0 -17
  864. package/dist/bin/shell/chunks/chunk-6FYCU7QB.js +0 -3
  865. package/dist/bin/shell/chunks/chunk-6JKLDBRW.js +0 -18
  866. package/dist/bin/shell/chunks/chunk-6WJQNLR2.js +0 -7
  867. package/dist/bin/shell/chunks/chunk-7HK63L6Y.js +0 -3
  868. package/dist/bin/shell/chunks/chunk-7NDRU2ZN.js +0 -5
  869. package/dist/bin/shell/chunks/chunk-7VCQWCSH.js +0 -15
  870. package/dist/bin/shell/chunks/chunk-AFAD5U2A.js +0 -8
  871. package/dist/bin/shell/chunks/chunk-AZH64XMJ.js +0 -3
  872. package/dist/bin/shell/chunks/chunk-BKQLXMS6.js +0 -36
  873. package/dist/bin/shell/chunks/chunk-BPZJYOUA.js +0 -33
  874. package/dist/bin/shell/chunks/chunk-BZP56QBM.js +0 -24
  875. package/dist/bin/shell/chunks/chunk-C6JOQKE2.js +0 -22
  876. package/dist/bin/shell/chunks/chunk-CX5CEEGI.js +0 -11
  877. package/dist/bin/shell/chunks/chunk-D7YFPDMV.js +0 -22
  878. package/dist/bin/shell/chunks/chunk-DHIKZU63.js +0 -3
  879. package/dist/bin/shell/chunks/chunk-DWECIBLJ.js +0 -3
  880. package/dist/bin/shell/chunks/chunk-FEENTUVZ.js +0 -18
  881. package/dist/bin/shell/chunks/chunk-FYCT4DWY.js +0 -6
  882. package/dist/bin/shell/chunks/chunk-G7ZWT7BT.js +0 -9
  883. package/dist/bin/shell/chunks/chunk-GTO74SFS.js +0 -7
  884. package/dist/bin/shell/chunks/chunk-HMCRB24D.js +0 -15
  885. package/dist/bin/shell/chunks/chunk-HWNCK5BB.js +0 -10
  886. package/dist/bin/shell/chunks/chunk-HZR3FOJM.js +0 -288
  887. package/dist/bin/shell/chunks/chunk-ISLENKSH.js +0 -7
  888. package/dist/bin/shell/chunks/chunk-IX7LKVVH.js +0 -15
  889. package/dist/bin/shell/chunks/chunk-JDFKEXLG.js +0 -12
  890. package/dist/bin/shell/chunks/chunk-JJC4ENJL.js +0 -13
  891. package/dist/bin/shell/chunks/chunk-JSZBZ2XU.js +0 -3
  892. package/dist/bin/shell/chunks/chunk-JXLDT4KX.js +0 -4
  893. package/dist/bin/shell/chunks/chunk-KMZUSEWI.js +0 -12
  894. package/dist/bin/shell/chunks/chunk-KWCO3YXP.js +0 -17
  895. package/dist/bin/shell/chunks/chunk-LNVSXNT7.js +0 -3
  896. package/dist/bin/shell/chunks/chunk-LX2H4DPL.js +0 -6
  897. package/dist/bin/shell/chunks/chunk-MLUOPG3W.js +0 -3
  898. package/dist/bin/shell/chunks/chunk-MNWK4UIM.js +0 -22
  899. package/dist/bin/shell/chunks/chunk-MP77TJMM.js +0 -6
  900. package/dist/bin/shell/chunks/chunk-MTK7VLZG.js +0 -12
  901. package/dist/bin/shell/chunks/chunk-N3FQJLPZ.js +0 -17
  902. package/dist/bin/shell/chunks/chunk-N6YW4W3Z.js +0 -29
  903. package/dist/bin/shell/chunks/chunk-NMMVECGD.js +0 -14
  904. package/dist/bin/shell/chunks/chunk-NXYVRP6D.js +0 -11
  905. package/dist/bin/shell/chunks/chunk-NYIPFY36.js +0 -3
  906. package/dist/bin/shell/chunks/chunk-OVVMB2JI.js +0 -7
  907. package/dist/bin/shell/chunks/chunk-OXZSG3ZZ.js +0 -7
  908. package/dist/bin/shell/chunks/chunk-PKE7GKU5.js +0 -3
  909. package/dist/bin/shell/chunks/chunk-PSJORJRS.js +0 -6
  910. package/dist/bin/shell/chunks/chunk-R36DS2UF.js +0 -20
  911. package/dist/bin/shell/chunks/chunk-RKBWTGBZ.js +0 -7
  912. package/dist/bin/shell/chunks/chunk-RO3XCUVQ.js +0 -141
  913. package/dist/bin/shell/chunks/chunk-RVGYO2OU.js +0 -3
  914. package/dist/bin/shell/chunks/chunk-SF2OLINE.js +0 -12
  915. package/dist/bin/shell/chunks/chunk-TIRU5FOD.js +0 -101
  916. package/dist/bin/shell/chunks/chunk-TKYWUEON.js +0 -13
  917. package/dist/bin/shell/chunks/chunk-UI7CV277.js +0 -20
  918. package/dist/bin/shell/chunks/chunk-UNWZQG7U.js +0 -3
  919. package/dist/bin/shell/chunks/chunk-UOMNSQEZ.js +0 -10
  920. package/dist/bin/shell/chunks/chunk-W5OBQVJ2.js +0 -6
  921. package/dist/bin/shell/chunks/chunk-WDWNEHHE.js +0 -9
  922. package/dist/bin/shell/chunks/chunk-WHUKZ3K3.js +0 -85
  923. package/dist/bin/shell/chunks/chunk-XHCCSVP6.js +0 -9
  924. package/dist/bin/shell/chunks/chunk-XPTYN6UE.js +0 -8
  925. package/dist/bin/shell/chunks/chunk-XRUDFQG5.js +0 -7
  926. package/dist/bin/shell/chunks/chunk-Y2IUEWQD.js +0 -11
  927. package/dist/bin/shell/chunks/chunk-Y5OWCEDV.js +0 -64
  928. package/dist/bin/shell/chunks/chunk-ZFUVUYWG.js +0 -15
  929. package/dist/bin/shell/chunks/chunk-ZZP3RSWL.js +0 -4
  930. package/dist/bin/shell/chunks/clear-FGNEKYDU.js +0 -3
  931. package/dist/bin/shell/chunks/column-QLGOK3XM.js +0 -3
  932. package/dist/bin/shell/chunks/comm-PLYUTVP3.js +0 -3
  933. package/dist/bin/shell/chunks/cp-HYXTMN3D.js +0 -3
  934. package/dist/bin/shell/chunks/curl-DCSPNPEW.js +0 -27
  935. package/dist/bin/shell/chunks/cut-JNQTCQY7.js +0 -3
  936. package/dist/bin/shell/chunks/date-OFYBOAUE.js +0 -3
  937. package/dist/bin/shell/chunks/diff-LZ4WRLIF.js +0 -3
  938. package/dist/bin/shell/chunks/dirname-VCINTLPD.js +0 -3
  939. package/dist/bin/shell/chunks/du-4LRQIGRG.js +0 -3
  940. package/dist/bin/shell/chunks/echo-KCOHTNDF.js +0 -3
  941. package/dist/bin/shell/chunks/env-FNVYNLGB.js +0 -3
  942. package/dist/bin/shell/chunks/expand-CB7FG7LQ.js +0 -3
  943. package/dist/bin/shell/chunks/expr-6A2XZORA.js +0 -3
  944. package/dist/bin/shell/chunks/file-GRZLWDVH.js +0 -3
  945. package/dist/bin/shell/chunks/find-5OZWMYCV.js +0 -3
  946. package/dist/bin/shell/chunks/flag-coverage-CAST5CDE.js +0 -3
  947. package/dist/bin/shell/chunks/fold-7YEITA5L.js +0 -3
  948. package/dist/bin/shell/chunks/grep-KKBXRB73.js +0 -3
  949. package/dist/bin/shell/chunks/gzip-ZJP5VIAQ.js +0 -3
  950. package/dist/bin/shell/chunks/head-B6GFQHKF.js +0 -3
  951. package/dist/bin/shell/chunks/help-CGUEOGXQ.js +0 -3
  952. package/dist/bin/shell/chunks/history-AQQWW3QB.js +0 -3
  953. package/dist/bin/shell/chunks/hostname-USNWOQCK.js +0 -3
  954. package/dist/bin/shell/chunks/html-to-markdown-3HJ7L7NL.js +0 -3
  955. package/dist/bin/shell/chunks/join-WRM6S6CO.js +0 -3
  956. package/dist/bin/shell/chunks/jq-3V5HDGLJ.js +0 -3
  957. package/dist/bin/shell/chunks/js-exec-F7JAZ4ZQ.js +0 -98
  958. package/dist/bin/shell/chunks/ln-LP4HMCSM.js +0 -3
  959. package/dist/bin/shell/chunks/ls-KBNHNZWQ.js +0 -3
  960. package/dist/bin/shell/chunks/md5sum-ZNYCDRQL.js +0 -3
  961. package/dist/bin/shell/chunks/mkdir-P4DKRCDX.js +0 -3
  962. package/dist/bin/shell/chunks/mv-QQK4FQX6.js +0 -3
  963. package/dist/bin/shell/chunks/nl-6TVYE4ZB.js +0 -3
  964. package/dist/bin/shell/chunks/od-Y3E3QXOL.js +0 -3
  965. package/dist/bin/shell/chunks/paste-LYNFXXCM.js +0 -3
  966. package/dist/bin/shell/chunks/printf-MR3FXCDE.js +0 -3
  967. package/dist/bin/shell/chunks/pwd-FCNDA467.js +0 -3
  968. package/dist/bin/shell/chunks/python3-R5OFWJIH.js +0 -13
  969. package/dist/bin/shell/chunks/readlink-25V57VOL.js +0 -3
  970. package/dist/bin/shell/chunks/rev-AJECDD4L.js +0 -3
  971. package/dist/bin/shell/chunks/rg-DZKA632H.js +0 -3
  972. package/dist/bin/shell/chunks/rm-ECNUFR66.js +0 -3
  973. package/dist/bin/shell/chunks/rmdir-DLOHIA7Q.js +0 -3
  974. package/dist/bin/shell/chunks/sed-IGRH7EGG.js +0 -3
  975. package/dist/bin/shell/chunks/seq-UXDJE6FB.js +0 -3
  976. package/dist/bin/shell/chunks/sha1sum-5QZSNFY3.js +0 -3
  977. package/dist/bin/shell/chunks/sha256sum-DI7JAVAU.js +0 -3
  978. package/dist/bin/shell/chunks/sleep-RPGCUUGX.js +0 -3
  979. package/dist/bin/shell/chunks/sort-HQPAFL76.js +0 -3
  980. package/dist/bin/shell/chunks/split-F6FSB5KI.js +0 -3
  981. package/dist/bin/shell/chunks/sqlite3-7TRACAE7.js +0 -3
  982. package/dist/bin/shell/chunks/stat-BD6KT3BP.js +0 -3
  983. package/dist/bin/shell/chunks/strings-6PE3YMPO.js +0 -3
  984. package/dist/bin/shell/chunks/tac-NERJXVOM.js +0 -3
  985. package/dist/bin/shell/chunks/tail-24F643A4.js +0 -3
  986. package/dist/bin/shell/chunks/tar-5HK3VMV2.js +0 -3
  987. package/dist/bin/shell/chunks/tee-5B7P2QRJ.js +0 -3
  988. package/dist/bin/shell/chunks/time-FN6VJGRS.js +0 -3
  989. package/dist/bin/shell/chunks/timeout-ZARIAF3K.js +0 -3
  990. package/dist/bin/shell/chunks/touch-DFGSVIX7.js +0 -3
  991. package/dist/bin/shell/chunks/tr-QQZYZ3CH.js +0 -3
  992. package/dist/bin/shell/chunks/tree-6D7SMPUR.js +0 -3
  993. package/dist/bin/shell/chunks/true-SKL4L7JP.js +0 -3
  994. package/dist/bin/shell/chunks/unexpand-3JWOSSBQ.js +0 -3
  995. package/dist/bin/shell/chunks/uniq-Q5UH5NL3.js +0 -3
  996. package/dist/bin/shell/chunks/wc-4HXNTHY3.js +0 -3
  997. package/dist/bin/shell/chunks/which-LCXKCLFC.js +0 -3
  998. package/dist/bin/shell/chunks/whoami-TZDZDU7T.js +0 -3
  999. package/dist/bin/shell/chunks/xan-TCTFON2Q.js +0 -3
  1000. package/dist/bin/shell/chunks/xan-view-XBMA362V.js +0 -3
  1001. package/dist/bin/shell/chunks/xargs-VTFN762K.js +0 -3
  1002. package/dist/bin/shell/chunks/yq-OB6PB5GY.js +0 -3
  1003. package/dist/bundle/chunks/alias-RTYYYW3D.js +0 -2
  1004. package/dist/bundle/chunks/awk2-SREAOJRG.js +0 -2
  1005. package/dist/bundle/chunks/base64-WIGL46P3.js +0 -2
  1006. package/dist/bundle/chunks/basename-UB3CIYNI.js +0 -2
  1007. package/dist/bundle/chunks/bash-F4KHPMTX.js +0 -2
  1008. package/dist/bundle/chunks/cat-LPZ6XNHG.js +0 -2
  1009. package/dist/bundle/chunks/chmod-TFEPA42X.js +0 -2
  1010. package/dist/bundle/chunks/chunk-27JIFWUR.js +0 -3
  1011. package/dist/bundle/chunks/chunk-2VDTE5BV.js +0 -14
  1012. package/dist/bundle/chunks/chunk-2VJJEDV2.js +0 -8
  1013. package/dist/bundle/chunks/chunk-4I3HOE5Z.js +0 -21
  1014. package/dist/bundle/chunks/chunk-4JLVZKHC.js +0 -8
  1015. package/dist/bundle/chunks/chunk-4WKZNNJK.js +0 -2
  1016. package/dist/bundle/chunks/chunk-55LZFN6S.js +0 -36
  1017. package/dist/bundle/chunks/chunk-5MV7Q5QB.js +0 -5
  1018. package/dist/bundle/chunks/chunk-6L65G6A7.js +0 -17
  1019. package/dist/bundle/chunks/chunk-6NYPZ4NX.js +0 -8
  1020. package/dist/bundle/chunks/chunk-6Y4TGEZL.js +0 -140
  1021. package/dist/bundle/chunks/chunk-7CSMHFIJ.js +0 -33
  1022. package/dist/bundle/chunks/chunk-AAGO7IQ5.js +0 -11
  1023. package/dist/bundle/chunks/chunk-AX2X3SZS.js +0 -11
  1024. package/dist/bundle/chunks/chunk-AXMYAPFA.js +0 -9
  1025. package/dist/bundle/chunks/chunk-BU36VZYL.js +0 -4
  1026. package/dist/bundle/chunks/chunk-BZUGFHVS.js +0 -2
  1027. package/dist/bundle/chunks/chunk-CJFAMHFC.js +0 -7
  1028. package/dist/bundle/chunks/chunk-CN5XGDNN.js +0 -6
  1029. package/dist/bundle/chunks/chunk-CQV3EITV.js +0 -2
  1030. package/dist/bundle/chunks/chunk-DVJY2RAX.js +0 -2
  1031. package/dist/bundle/chunks/chunk-FLMHFDSN.js +0 -5
  1032. package/dist/bundle/chunks/chunk-GE6OQDB2.js +0 -10
  1033. package/dist/bundle/chunks/chunk-GHB6M7KA.js +0 -2
  1034. package/dist/bundle/chunks/chunk-GRQJA2J7.js +0 -21
  1035. package/dist/bundle/chunks/chunk-H2TS57O5.js +0 -5
  1036. package/dist/bundle/chunks/chunk-H7WISVP3.js +0 -6
  1037. package/dist/bundle/chunks/chunk-HAIOEUEV.js +0 -63
  1038. package/dist/bundle/chunks/chunk-HBVMHTO5.js +0 -2
  1039. package/dist/bundle/chunks/chunk-IZ6KBTV7.js +0 -100
  1040. package/dist/bundle/chunks/chunk-J3LJZWL2.js +0 -6
  1041. package/dist/bundle/chunks/chunk-JA7M2FXG.js +0 -16
  1042. package/dist/bundle/chunks/chunk-JNYYVLEL.js +0 -35
  1043. package/dist/bundle/chunks/chunk-JTMQLUCH.js +0 -16
  1044. package/dist/bundle/chunks/chunk-K5JMLDHX.js +0 -13
  1045. package/dist/bundle/chunks/chunk-KAPG5ONA.js +0 -2
  1046. package/dist/bundle/chunks/chunk-KSBHIW2H.js +0 -19
  1047. package/dist/bundle/chunks/chunk-KTL5PAHY.js +0 -5
  1048. package/dist/bundle/chunks/chunk-KTPCYKBB.js +0 -3
  1049. package/dist/bundle/chunks/chunk-KWGBQNTV.js +0 -32
  1050. package/dist/bundle/chunks/chunk-MFDPAVC6.js +0 -14
  1051. package/dist/bundle/chunks/chunk-MFRETFZB.js +0 -6
  1052. package/dist/bundle/chunks/chunk-MIZIUC5M.js +0 -8
  1053. package/dist/bundle/chunks/chunk-MJLETYZI.js +0 -14
  1054. package/dist/bundle/chunks/chunk-MTHXXA6H.js +0 -6
  1055. package/dist/bundle/chunks/chunk-NGPDJCUE.js +0 -5
  1056. package/dist/bundle/chunks/chunk-OVH44QKR.js +0 -11
  1057. package/dist/bundle/chunks/chunk-PDUL32DM.js +0 -16
  1058. package/dist/bundle/chunks/chunk-PYDWFCTN.js +0 -11
  1059. package/dist/bundle/chunks/chunk-QAJKDPNS.js +0 -2
  1060. package/dist/bundle/chunks/chunk-QM4DZQWX.js +0 -287
  1061. package/dist/bundle/chunks/chunk-R4IFXNY5.js +0 -28
  1062. package/dist/bundle/chunks/chunk-R4QNMLOB.js +0 -12
  1063. package/dist/bundle/chunks/chunk-RBQG6ZUG.js +0 -3
  1064. package/dist/bundle/chunks/chunk-RCXNPPJY.js +0 -17
  1065. package/dist/bundle/chunks/chunk-S2BIZAWY.js +0 -7
  1066. package/dist/bundle/chunks/chunk-SAI2SPQQ.js +0 -8
  1067. package/dist/bundle/chunks/chunk-SETW5JBN.js +0 -9
  1068. package/dist/bundle/chunks/chunk-SJYEXC2Z.js +0 -14
  1069. package/dist/bundle/chunks/chunk-SY4HAUHP.js +0 -2
  1070. package/dist/bundle/chunks/chunk-TA74ENH7.js +0 -14
  1071. package/dist/bundle/chunks/chunk-TC2WHAIS.js +0 -2
  1072. package/dist/bundle/chunks/chunk-VACKIICN.js +0 -5
  1073. package/dist/bundle/chunks/chunk-VBLMIJON.js +0 -6
  1074. package/dist/bundle/chunks/chunk-WKPK7M56.js +0 -10
  1075. package/dist/bundle/chunks/chunk-WM5IJFMP.js +0 -8
  1076. package/dist/bundle/chunks/chunk-WPGQVBSY.js +0 -6
  1077. package/dist/bundle/chunks/chunk-WVRWIZF5.js +0 -23
  1078. package/dist/bundle/chunks/chunk-XEKXHOPO.js +0 -2
  1079. package/dist/bundle/chunks/chunk-XPK7ZFVA.js +0 -12
  1080. package/dist/bundle/chunks/chunk-XZUZRAAC.js +0 -10
  1081. package/dist/bundle/chunks/chunk-Y4LIDHSD.js +0 -7
  1082. package/dist/bundle/chunks/chunk-YRNR2VHY.js +0 -21
  1083. package/dist/bundle/chunks/chunk-YS4NUBYX.js +0 -9
  1084. package/dist/bundle/chunks/chunk-YWOZZRSK.js +0 -2
  1085. package/dist/bundle/chunks/chunk-ZDIT6ST5.js +0 -7
  1086. package/dist/bundle/chunks/clear-HKGFEOF6.js +0 -2
  1087. package/dist/bundle/chunks/column-PVOEF65J.js +0 -2
  1088. package/dist/bundle/chunks/comm-5QMYEAJL.js +0 -2
  1089. package/dist/bundle/chunks/cp-BISAAS7A.js +0 -2
  1090. package/dist/bundle/chunks/curl-PAWGO3EH.js +0 -26
  1091. package/dist/bundle/chunks/cut-NDMV7SPO.js +0 -2
  1092. package/dist/bundle/chunks/date-XKUEQ4WF.js +0 -2
  1093. package/dist/bundle/chunks/diff-TT4M7WM3.js +0 -2
  1094. package/dist/bundle/chunks/dirname-MPHRFUTI.js +0 -2
  1095. package/dist/bundle/chunks/du-572XNP42.js +0 -2
  1096. package/dist/bundle/chunks/echo-NDWZZHPO.js +0 -2
  1097. package/dist/bundle/chunks/env-DLFRY633.js +0 -2
  1098. package/dist/bundle/chunks/expand-T2TH4TBQ.js +0 -2
  1099. package/dist/bundle/chunks/expr-YLACLCSM.js +0 -2
  1100. package/dist/bundle/chunks/file-IPZJC3FQ.js +0 -2
  1101. package/dist/bundle/chunks/find-T5TGGXUU.js +0 -2
  1102. package/dist/bundle/chunks/flag-coverage-OHLSWDU5.js +0 -2
  1103. package/dist/bundle/chunks/fold-XR2JMFCW.js +0 -2
  1104. package/dist/bundle/chunks/grep-VUESTEZ7.js +0 -2
  1105. package/dist/bundle/chunks/gzip-HF3D26QX.js +0 -2
  1106. package/dist/bundle/chunks/head-AEMOMQSZ.js +0 -2
  1107. package/dist/bundle/chunks/help-HZ6M2CKN.js +0 -2
  1108. package/dist/bundle/chunks/history-WYYKSLSZ.js +0 -2
  1109. package/dist/bundle/chunks/hostname-C4HQXXUP.js +0 -2
  1110. package/dist/bundle/chunks/html-to-markdown-LXXMVQ3V.js +0 -2
  1111. package/dist/bundle/chunks/join-YIABB6WR.js +0 -2
  1112. package/dist/bundle/chunks/jq-OPEF5OPR.js +0 -2
  1113. package/dist/bundle/chunks/js-exec-SR6IMNWM.js +0 -97
  1114. package/dist/bundle/chunks/ln-4LGSXXGD.js +0 -2
  1115. package/dist/bundle/chunks/ls-ZJGQER7M.js +0 -2
  1116. package/dist/bundle/chunks/md5sum-LU7RVIB7.js +0 -2
  1117. package/dist/bundle/chunks/mkdir-MEPGZOB6.js +0 -2
  1118. package/dist/bundle/chunks/mv-W5BIQ646.js +0 -2
  1119. package/dist/bundle/chunks/nl-Q2L5XQWZ.js +0 -2
  1120. package/dist/bundle/chunks/od-RDSM4TQJ.js +0 -2
  1121. package/dist/bundle/chunks/paste-ABCY7E6C.js +0 -2
  1122. package/dist/bundle/chunks/printf-JPOOWRJC.js +0 -2
  1123. package/dist/bundle/chunks/pwd-WE6EN5AV.js +0 -2
  1124. package/dist/bundle/chunks/python3-JPCH6LLN.js +0 -12
  1125. package/dist/bundle/chunks/readlink-OPJF4DL5.js +0 -2
  1126. package/dist/bundle/chunks/rev-GCV6X22K.js +0 -2
  1127. package/dist/bundle/chunks/rg-EBMD72T4.js +0 -2
  1128. package/dist/bundle/chunks/rm-SSGETQVQ.js +0 -2
  1129. package/dist/bundle/chunks/rmdir-OC4ZLPYA.js +0 -2
  1130. package/dist/bundle/chunks/sed-DX2SGXMF.js +0 -2
  1131. package/dist/bundle/chunks/seq-M5EC7Q57.js +0 -2
  1132. package/dist/bundle/chunks/sha1sum-O6DM3TPQ.js +0 -2
  1133. package/dist/bundle/chunks/sha256sum-WPVZLZPS.js +0 -2
  1134. package/dist/bundle/chunks/sleep-HZ4QEFOK.js +0 -2
  1135. package/dist/bundle/chunks/sort-VW2NIZHW.js +0 -2
  1136. package/dist/bundle/chunks/split-NBMH43M2.js +0 -2
  1137. package/dist/bundle/chunks/sqlite3-UE3PJTDQ.js +0 -2
  1138. package/dist/bundle/chunks/stat-CD34IZ4P.js +0 -2
  1139. package/dist/bundle/chunks/strings-MCXFXPDL.js +0 -2
  1140. package/dist/bundle/chunks/tac-BQ7EDZW2.js +0 -2
  1141. package/dist/bundle/chunks/tail-GJMTLMNE.js +0 -2
  1142. package/dist/bundle/chunks/tar-WIZ3PDF4.js +0 -2
  1143. package/dist/bundle/chunks/tee-SGANDVNY.js +0 -2
  1144. package/dist/bundle/chunks/time-FCZCDIAM.js +0 -2
  1145. package/dist/bundle/chunks/timeout-VDIEAB4R.js +0 -2
  1146. package/dist/bundle/chunks/touch-UA33VN3N.js +0 -2
  1147. package/dist/bundle/chunks/tr-JNNR5JMS.js +0 -2
  1148. package/dist/bundle/chunks/tree-YLD52CNT.js +0 -2
  1149. package/dist/bundle/chunks/true-FHQXJXBE.js +0 -2
  1150. package/dist/bundle/chunks/unexpand-2TKXAENW.js +0 -2
  1151. package/dist/bundle/chunks/uniq-DMFKT3AB.js +0 -2
  1152. package/dist/bundle/chunks/wc-TZFYWFLA.js +0 -2
  1153. package/dist/bundle/chunks/which-XEM24D5D.js +0 -2
  1154. package/dist/bundle/chunks/whoami-XMTX52VE.js +0 -2
  1155. package/dist/bundle/chunks/xan-LKYWG2QQ.js +0 -2
  1156. package/dist/bundle/chunks/xan-view-YATJ4KAA.js +0 -2
  1157. package/dist/bundle/chunks/xargs-VDP7DLOU.js +0 -2
  1158. package/dist/bundle/chunks/yq-TVZ7R3O7.js +0 -2
  1159. package/dist/interpreter/helpers/statements.d.ts +0 -20
  1160. package/dist/interpreter/helpers/tilde.d.ts +0 -13
@@ -1,233 +1,240 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a as Ct,b as xt,c as dt}from"./chunks/chunk-O2BCKSMK.js";import{c as Sn}from"./chunks/chunk-NYIPFY36.js";import{a as fi,b as di}from"./chunks/chunk-UNWZQG7U.js";import{a as ft,b as Fe,c as vn}from"./chunks/chunk-MROECM42.js";import{a as Xt,b as pi}from"./chunks/chunk-AZH64XMJ.js";import{a as It,b as Be}from"./chunks/chunk-LX2H4DPL.js";import{a as ae}from"./chunks/chunk-52FZYTIX.js";import{b as St,d as hi,e as En,f as bn}from"./chunks/chunk-DHIKZU63.js";import{a as De,b as Ie,c as $e,d as We,e as Ce,f as j,g as te,h as xe,i as ct,j as ws,k as Q,l as Es,m as ut,n as bs,o as Me}from"./chunks/chunk-47WZ2U6M.js";import"./chunks/chunk-7JZKVC3F.js";import{a as Re}from"./chunks/chunk-PBOVSFTJ.js";import{a as it}from"./chunks/chunk-I4IRHQDW.js";import{a as ui}from"./chunks/chunk-LNVSXNT7.js";import{resolve as hc}from"node:path";var Rt=[{name:"echo",load:async()=>(await import("./chunks/echo-KCOHTNDF.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-NBL6MU5H.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-MR3FXCDE.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-KBNHNZWQ.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-P4DKRCDX.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-DLOHIA7Q.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-DFGSVIX7.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-ECNUFR66.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-HYXTMN3D.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-QQK4FQX6.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-LP4HMCSM.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-S564JCJW.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-FCNDA467.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-25V57VOL.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-B6GFQHKF.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-24F643A4.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-4HXNTHY3.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-BD6KT3BP.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-KKBXRB73.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-KKBXRB73.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-KKBXRB73.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-DZKA632H.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-IGRH7EGG.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-UFCNQFCV.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-HQPAFL76.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-Q5UH5NL3.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-PLYUTVP3.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-JNQTCQY7.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-LYNFXXCM.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-QQZYZ3CH.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-AJECDD4L.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-6TVYE4ZB.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-7YEITA5L.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-CB7FG7LQ.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-3JWOSSBQ.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-6PE3YMPO.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-F6FSB5KI.js")).split},{name:"column",load:async()=>(await import("./chunks/column-QLGOK3XM.js")).column},{name:"join",load:async()=>(await import("./chunks/join-WRM6S6CO.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-5B7P2QRJ.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-5OZWMYCV.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-F3AQ4KAQ.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-VCINTLPD.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-6D7SMPUR.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-4LRQIGRG.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-FNVYNLGB.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-FNVYNLGB.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-YRVAW27Y.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-YRVAW27Y.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-AQQWW3QB.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-VTFN762K.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-SKL4L7JP.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-SKL4L7JP.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-FGNEKYDU.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-BEG4JB7K.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-BEG4JB7K.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-3V5HDGLJ.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-EGKVQIBC.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-LZ4WRLIF.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-OFYBOAUE.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-RPGCUUGX.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-ZARIAF3K.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-FN6VJGRS.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-UXDJE6FB.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-6A2XZORA.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-ZNYCDRQL.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-5QZSNFY3.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-DI7JAVAU.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-GRZLWDVH.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-3HJ7L7NL.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-CGUEOGXQ.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-LCXKCLFC.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-NERJXVOM.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-USNWOQCK.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-TZDZDU7T.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-Y3E3QXOL.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-ZJP5VIAQ.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-ZJP5VIAQ.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-ZJP5VIAQ.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Rt.push({name:"tar",load:async()=>(await import("./chunks/tar-5HK3VMV2.js")).tarCommand}),Rt.push({name:"yq",load:async()=>(await import("./chunks/yq-OB6PB5GY.js")).yqCommand}),Rt.push({name:"xan",load:async()=>(await import("./chunks/xan-TCTFON2Q.js")).xanCommand}),Rt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-7TRACAE7.js")).sqlite3Command}));var An=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(An.push({name:"python3",load:async()=>(await import("./chunks/python3-R5OFWJIH.js")).python3Command}),An.push({name:"python",load:async()=>(await import("./chunks/python3-R5OFWJIH.js")).pythonCommand}));var $n=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&($n.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-F7JAZ4ZQ.js")).jsExecCommand}),$n.push({name:"node",load:async()=>(await import("./chunks/js-exec-F7JAZ4ZQ.js")).nodeStubCommand}));var wc=[{name:"curl",load:async()=>(await import("./chunks/curl-DCSPNPEW.js")).curlCommand}],mi=new Map;function vs(e){return{name:e.name,async execute(t,s){let r=mi.get(e.name);if(r||(r=await Be.runTrustedAsync(()=>e.load()),mi.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-CAST5CDE.js");n(s.coverage,e.name,t)}return r.execute(t,s)}}}function gi(e){return(e?Rt.filter(s=>e.includes(s.name)):Rt).map(vs)}function yi(){return wc.map(vs)}function wi(){return An.map(vs)}function Ei(){return $n.map(vs)}function bi(e){return"load"in e&&typeof e.load=="function"}function vi(e){let t=null;return{name:e.name,trusted:!0,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}function B(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(n=>n&&n!=="."),r=[];for(let n of s)n===".."?r.pop():r.push(n);return`/${r.join("/")}`||"/"}function K(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function At(e){let t=B(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function Ss(e,t){if(t.startsWith("/"))return B(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return B(s)}function Yt(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function Ot(e,t){if(t.startsWith("/"))return B(t);let s=At(e);return B(Yt(s,t))}var Lt=new TextEncoder;function Ec(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var Jt=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,r]of Object.entries(t))typeof r=="function"?this.writeFileLazy(s,r):Ec(r)?this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(s,r)}ensureParentDirs(t){let s=At(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,r,n){K(t,"write");let i=B(t);this.ensureParentDirs(i);let a=dt(r),l=Ct(s,a);this.data.set(i,{type:"file",content:l,mode:n?.mode??420,mtime:n?.mtime??new Date})}writeFileLazy(t,s,r){K(t,"write");let n=B(t);this.ensureParentDirs(n),this.data.set(n,{type:"file",lazy:s,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,s){let r=await s.lazy(),i={type:"file",content:typeof r=="string"?Lt.encode(r):r,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let r=await this.readFileBuffer(t),n=dt(s);return xt(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return xt(s,"binary")}async readFileBuffer(t){K(t,"open");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in r){let n=await this.materializeLazy(s,r);return n.content instanceof Uint8Array?n.content:Lt.encode(n.content)}return r.content instanceof Uint8Array?r.content:Lt.encode(r.content)}async writeFile(t,s,r){this.writeFileSync(t,s,r)}async appendFile(t,s,r){K(t,"append");let n=B(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let a=dt(r),l=Ct(s,a);if(i?.type==="file"){let o=i;"lazy"in o&&(o=await this.materializeLazy(n,o));let u="content"in o&&o.content instanceof Uint8Array?o.content:Lt.encode("content"in o?o.content:""),c=new Uint8Array(u.length+l.length);c.set(u),c.set(l,u.length),this.data.set(n,{type:"file",content:c,mode:o.mode,mtime:new Date})}else this.writeFileSync(t,s,r)}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){K(t,"stat");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=Lt.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){K(t,"lstat");let s=this.resolveIntermediateSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=Lt.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveIntermediateSymlinks(t){let s=B(t);if(s==="/")return"/";let r=s.slice(1).split("/");if(r.length<=1)return s;let n="",i=new Set;for(let a=0;a<r.length-1;a++){let l=r[a];n=`${n}/${l}`;let o=this.data.get(n),u=0,c=40;for(;o&&o.type==="symlink"&&u<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=Ot(n,o.target),o=this.data.get(n),u++}if(u>=c)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=B(t);if(s==="/")return"/";let r=s.slice(1).split("/"),n="",i=new Set;for(let a of r){n=`${n}/${a}`;let l=this.data.get(n),o=0,u=40;for(;l&&l.type==="symlink"&&o<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=Ot(n,l.target),l=this.data.get(n),o++}if(o>=u)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return n}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){K(t,"mkdir");let r=B(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let n=At(r);if(n!=="/"&&!this.data.has(n))if(s?.recursive)this.mkdirSync(n,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){K(t,"scandir");let s=B(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let n=new Set;for(;r&&r.type==="symlink";){if(n.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(s),s=Ot(s,r.target),r=this.data.get(s)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,a=new Map;for(let[l,o]of this.data.entries())if(l!==s&&l.startsWith(i)){let u=l.slice(i.length),c=u.split("/")[0];c&&!u.includes("/",c.length)&&!a.has(c)&&a.set(c,{name:c,isFile:o.type==="file",isDirectory:o.type==="directory",isSymbolicLink:o.type==="symlink"})}return Array.from(a.values()).sort((l,o)=>l.name<o.name?-1:l.name>o.name?1:0)}async rm(t,s){K(t,"rm");let r=B(t),n=this.data.get(r);if(!n){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(n.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of i){let l=Yt(r,a);await this.rm(l,s)}}}this.data.delete(r)}async cp(t,s,r){K(t,"cp"),K(s,"cp");let n=B(t),i=B(s),a=this.data.get(n);if(!a)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(a.type==="file")if(this.ensureParentDirs(i),"content"in a){let l=a.content instanceof Uint8Array?new Uint8Array(a.content):a.content;this.data.set(i,{...a,content:l})}else this.data.set(i,{...a});else if(a.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...a});else if(a.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let l=await this.readdir(n);for(let o of l){let u=Yt(n,o),c=Yt(i,o);await this.cp(u,c,r)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){return Ss(t,s)}async chmod(t,s){K(t,"chmod");let r=B(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);n.mode=s}async symlink(t,s){K(s,"symlink");let r=B(s);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){K(t,"link"),K(s,"link");let r=B(t),n=B(s),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(n))throw new Error(`EEXIST: file already exists, link '${s}'`);let a=i;"lazy"in a&&(a=await this.materializeLazy(r,a)),this.ensureParentDirs(n),this.data.set(n,{type:"file",content:a.content,mode:a.mode,mtime:a.mtime})}async readlink(t){K(t,"readlink");let s=B(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){K(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,r){K(t,"utimes");let n=B(t),i=this.resolvePathWithSymlinks(n),a=this.data.get(i);if(!a)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);a.mtime=r}};var Ai="5.1.0(1)-release",$i="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function kn(e){let{pid:t,ppid:s,uid:r,gid:n}=e;return`Name: bash
3
+ import{a as on,b as ln,c as $t}from"./chunks/chunk-O2BCKSMK.js";import{a as nr}from"./chunks/chunk-3PCPQIUD.js";import{c as ps,e as ga}from"./chunks/chunk-TW2IJRUF.js";import{a as da,b as pa,c as kn,d as Nn}from"./chunks/chunk-SSK3N7FN.js";import{a as xt}from"./chunks/chunk-6D75E4LV.js";import{a as vt,b as Ge,c as ds}from"./chunks/chunk-MROECM42.js";import{a as Pn,b as ya}from"./chunks/chunk-4SQKKW2M.js";import{a as he}from"./chunks/chunk-CB4SODHK.js";import{a as en,b as ze}from"./chunks/chunk-46CDVHZ3.js";import"./chunks/chunk-VLWZ6L7C.js";import{c as At,d as tn}from"./chunks/chunk-CPTQXTBJ.js";import"./chunks/chunk-7JZKVC3F.js";import{a as H,b as nn,c as K,d as rn,e as ir,f as sn,g as an}from"./chunks/chunk-43E7AR6A.js";import{a as ma,b as qe,c as Ue,d as Oe,e as Qe,f as Le,g as j,h as ie,i as je,j as bt,k as rr,l as $,m as Te,n as St,o as sr,p as Ke}from"./chunks/chunk-LCP3IKI7.js";import{a as T,c as qt,e as ha,f as us,g as fs}from"./chunks/chunk-CPKBPQ2C.js";import{a as Me}from"./chunks/chunk-PBOVSFTJ.js";import{a as yt}from"./chunks/chunk-I4IRHQDW.js";import"./chunks/chunk-DN2YCFOR.js";import{resolve as ku}from"node:path";var cn=[{name:"echo",load:async()=>(await import("./chunks/echo-4OUEL7QB.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-5YECZSFQ.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-F2KOCULO.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-FTHYNINH.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-74BP5NTG.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-DCJ3XJRR.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-TVQAUQOG.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-3PLW4O4B.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-MF5GADQN.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-YG75IRRE.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-XSDIE6SU.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-45TMYSW2.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-YKLNXWZI.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-HMHVGSAM.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-KPRH4HKC.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-QISQLA3I.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-VSQBRD6B.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-Y5D3VPLG.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-CMT2H2S7.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-CMT2H2S7.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-CMT2H2S7.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-JRKJ6I4X.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-QJ2LNV2N.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-7UZLEPVX.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-M3DO25D5.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-K5VRDP4Q.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-URDMZCXL.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-QOTYBJJJ.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-YJLYVJMP.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-AR6EK7JH.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-CZTQCNOZ.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-XHWFVVKH.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-YEY7X54W.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-P6SNTBGZ.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-JPOQORZF.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-J2X2Z6N2.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-7IYQYKOW.js")).split},{name:"column",load:async()=>(await import("./chunks/column-7VBJL757.js")).column},{name:"join",load:async()=>(await import("./chunks/join-UQKXU2QP.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-L4HKV5PD.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-XY2NTAT5.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-C4CRGDXP.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-TPUFCYF6.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-ZGP6NPGS.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-A3UGHIKJ.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-2TSVF4W7.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-2TSVF4W7.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-3R4G6HQY.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-3R4G6HQY.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-3HAU45KT.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-HMISWW4I.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-KFTJGQLQ.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-KFTJGQLQ.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-OE52K3TM.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-CFCBBWVH.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-CFCBBWVH.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-ACCMBTSD.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-W6FVFNXJ.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-YXZZCUSQ.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-FJUBX7TJ.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-FUDWGDCE.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-TDOV6JDA.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-LF7BTSK5.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-Q4LZ6EXV.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-56X7LYOS.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-Z6KAYGDK.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-CATBXX76.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-YGSNBVY3.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-SQSOBJLR.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-WUBAMB4O.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-HVIDHJ6M.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-4TPGVSBZ.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-DG4BMYM5.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-2I76DUQL.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-B5HDVKW6.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-A7CW5RMS.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-DJSFJOY6.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-DJSFJOY6.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-DJSFJOY6.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(cn.push({name:"tar",load:async()=>(await import("./chunks/tar-TB2XWXF6.js")).tarCommand}),cn.push({name:"yq",load:async()=>(await import("./chunks/yq-EYV7HLKK.js")).yqCommand}),cn.push({name:"xan",load:async()=>(await import("./chunks/xan-D6US4ZGL.js")).xanCommand}),cn.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-ZXF6BGDW.js")).sqlite3Command}));var hs=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(hs.push({name:"python3",load:async()=>(await import("./chunks/python3-AYUQQRCR.js")).python3Command}),hs.push({name:"python",load:async()=>(await import("./chunks/python3-AYUQQRCR.js")).pythonCommand}));var ms=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(ms.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-4KNUPGHA.js")).jsExecCommand}),ms.push({name:"node",load:async()=>(await import("./chunks/js-exec-4KNUPGHA.js")).nodeStubCommand}));var Ru=[{name:"curl",load:async()=>(await import("./chunks/curl-FS5LAEYI.js")).curlCommand}],wa=new Map;function ar(e){return{name:e.name,async execute(t,n){let r=wa.get(e.name);if(r||(r=await ze.runTrustedAsync(()=>e.load()),wa.set(e.name,r)),n.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:s}=await import("./chunks/flag-coverage-WGSE667D.js");s(n.coverage,e.name,t)}return r.execute(t,n)}}}function Ea(e){return(e?cn.filter(n=>e.includes(n.name)):cn).map(ar)}function ba(){return Ru.map(ar)}function Sa(){return hs.map(ar)}function Aa(){return ms.map(ar)}var va=new WeakMap,xa=new WeakSet;function ys(e){let t=va.get(e);return t===void 0&&(t=Object.freeze(Object.create(null)),va.set(e,t),xa.add(t)),t}function $a(e){return xa.has(e)}var ka={maxSourceBytes:67108864,maxExecDepth:64,maxCallDepth:100,maxCommandCount:1e5,maxLoopIterations:1e5,maxAwkIterations:1e5,maxSedIterations:1e5,maxJqIterations:1e7,maxQueryTokens:1e5,maxQueryDepth:1e3,maxQueryElements:1e6,maxAwkParserTokens:1e5,maxAwkParserDepth:256,maxAwkParserOperations:1e6,maxCsvRows:1e6,maxCsvCells:1e7,maxWorkUnits:1e8,maxTraversalEntries:1e6,maxTraversalDepth:1e3,maxTraversalWork:1e6,maxLiveBytes:536870912,maxInputBytes:536870912,maxFileSystemBytes:1073741824,maxDatabaseBytes:1073741824,maxDatabaseResultBytes:268435456,maxArchiveBytes:1073741824,maxArchiveCompressedBytes:536870912,maxArchiveEntryBytes:536870912,maxArchiveEntries:1e6,maxWorkerMessageBytes:67108864,maxExecutionTimeMs:36e5,maxExtensionCleanupTimeMs:100,maxSqliteTimeoutMs:3e4,maxPythonTimeoutMs:3e4,maxJsTimeoutMs:3e4,maxGlobOperations:1e6,maxStringLength:67108864,maxArrayElements:1e6,maxHeredocSize:67108864,maxSubstitutionDepth:50,maxBraceExpansionResults:1e5,maxOutputSize:268435456,maxFileDescriptors:4096,maxSourceDepth:100},Iu={...ka,maxSourceBytes:8*1024*1024,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3,maxPythonTimeoutMs:1e4,maxJsTimeoutMs:1e4,maxExtensionCleanupTimeMs:25,maxGlobOperations:1e5,maxStringLength:10*1024*1024,maxArrayElements:1e5,maxHeredocSize:10*1024*1024,maxBraceExpansionResults:1e4,maxOutputSize:10*1024*1024,maxFileDescriptors:1024,maxQueryTokens:25e3,maxQueryDepth:256,maxQueryElements:1e5,maxAwkParserTokens:25e3,maxAwkParserDepth:128,maxAwkParserOperations:1e5,maxCsvRows:1e5,maxCsvCells:1e6,maxWorkUnits:1e5,maxTraversalEntries:1e5,maxTraversalDepth:256,maxTraversalWork:1e5,maxLiveBytes:64*1024*1024,maxInputBytes:32*1024*1024,maxFileSystemBytes:128*1024*1024,maxDatabaseBytes:64*1024*1024,maxDatabaseResultBytes:16*1024*1024,maxArchiveBytes:128*1024*1024,maxArchiveCompressedBytes:64*1024*1024,maxArchiveEntryBytes:64*1024*1024,maxArchiveEntries:1e5,maxWorkerMessageBytes:16*1024*1024,maxExecutionTimeMs:3e4};function gs(e,t="normal"){if(t!=="normal"&&t!=="hardened")throw new RangeError('executionLimitProfile must be "normal" or "hardened"');let n=t==="hardened"?Iu:ka;if(!e)return{...n};let r={maxSourceBytes:e.maxSourceBytes??n.maxSourceBytes,maxExecDepth:e.maxExecDepth??n.maxExecDepth,maxCallDepth:e.maxCallDepth??n.maxCallDepth,maxCommandCount:e.maxCommandCount??n.maxCommandCount,maxLoopIterations:e.maxLoopIterations??n.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??n.maxAwkIterations,maxSedIterations:e.maxSedIterations??n.maxSedIterations,maxJqIterations:e.maxJqIterations??n.maxJqIterations,maxQueryTokens:e.maxQueryTokens??n.maxQueryTokens,maxQueryDepth:e.maxQueryDepth??n.maxQueryDepth,maxQueryElements:e.maxQueryElements??n.maxQueryElements,maxAwkParserTokens:e.maxAwkParserTokens??n.maxAwkParserTokens,maxAwkParserDepth:e.maxAwkParserDepth??n.maxAwkParserDepth,maxAwkParserOperations:e.maxAwkParserOperations??n.maxAwkParserOperations,maxCsvRows:e.maxCsvRows??n.maxCsvRows,maxCsvCells:e.maxCsvCells??n.maxCsvCells,maxWorkUnits:e.maxWorkUnits??n.maxWorkUnits,maxTraversalEntries:e.maxTraversalEntries??n.maxTraversalEntries,maxTraversalDepth:e.maxTraversalDepth??n.maxTraversalDepth,maxTraversalWork:e.maxTraversalWork??n.maxTraversalWork,maxLiveBytes:e.maxLiveBytes??n.maxLiveBytes,maxInputBytes:e.maxInputBytes??n.maxInputBytes,maxFileSystemBytes:e.maxFileSystemBytes??n.maxFileSystemBytes,maxDatabaseBytes:e.maxDatabaseBytes??n.maxDatabaseBytes,maxDatabaseResultBytes:e.maxDatabaseResultBytes??n.maxDatabaseResultBytes,maxArchiveBytes:e.maxArchiveBytes??n.maxArchiveBytes,maxArchiveCompressedBytes:e.maxArchiveCompressedBytes??n.maxArchiveCompressedBytes,maxArchiveEntryBytes:e.maxArchiveEntryBytes??n.maxArchiveEntryBytes,maxArchiveEntries:e.maxArchiveEntries??n.maxArchiveEntries,maxWorkerMessageBytes:e.maxWorkerMessageBytes??n.maxWorkerMessageBytes,maxExecutionTimeMs:e.maxExecutionTimeMs??n.maxExecutionTimeMs,maxExtensionCleanupTimeMs:e.maxExtensionCleanupTimeMs??n.maxExtensionCleanupTimeMs,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??n.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??n.maxPythonTimeoutMs,maxJsTimeoutMs:e.maxJsTimeoutMs??n.maxJsTimeoutMs,maxGlobOperations:e.maxGlobOperations??n.maxGlobOperations,maxStringLength:e.maxStringLength??n.maxStringLength,maxArrayElements:e.maxArrayElements??n.maxArrayElements,maxHeredocSize:e.maxHeredocSize??n.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??n.maxSubstitutionDepth,maxBraceExpansionResults:e.maxBraceExpansionResults??n.maxBraceExpansionResults,maxOutputSize:e.maxOutputSize??n.maxOutputSize,maxFileDescriptors:e.maxFileDescriptors??n.maxFileDescriptors,maxSourceDepth:e.maxSourceDepth??n.maxSourceDepth};for(let s of Object.keys(r)){let i=r[s];if(i!==Number.POSITIVE_INFINITY&&(!Number.isSafeInteger(i)||i<0))throw new RangeError(`${s} must be a non-negative safe integer or positive Infinity`)}return r}function Na(e){return"load"in e&&typeof e.load=="function"}function Pa(e){let t=null,n=null;return{name:e.name,trusted:e.trusted!==!1,async execute(r,s){if(!t){let a=n;a||(a=e.load().then(o=>(t=o,o)),n=a);try{t=await a}catch(o){throw n===a&&(n=null),o}}let i=t;if(!i)throw new Error(`Failed to load command: ${e.name}`);return i.execute(r,s)}}}var Ca=Object.freeze(Object.create(null)),or=class{limits;signal;commandCount=0;workUnits=0;liveBytes=0;inputBytes=0;outputBytes=0;countersByKind=new Map;bytesByKind=new Map;depthByKind=new Map;cleanupCallbacks=[];poisoned;closed=!1;startedAt=Date.now();get remainingLiveBytes(){return Math.max(0,this.limits.maxLiveBytes-this.liveBytes)}get outputBytesUsed(){return this.outputBytes}constructor(t,n=void 0){this.limits=t,this.signal=n}fail(t){throw this.poisoned??=t,this.poisoned}poisonAfterAbort(t){this.poisoned??=t}assertUsable(){if(this.poisoned)throw this.poisoned;if(this.closed)throw new Error("execution budget is already closed");this.throwIfAborted()}chargeCommand(){return this.consume("commands",1,"execution")}consumeWork(t=1,n="execution"){return this.consume("work",t,n)}consumeLimited(t,n,r,s=t){this.assertUsable();let i=this.countersByKind.get(t)??0;return(!Number.isSafeInteger(n)||n<0||!Number.isSafeInteger(r)||r<0||n>r-i)&&this.fail(new $(`${s}: ${t} work limit exceeded (${r})`,"iterations")),n>this.limits.maxWorkUnits-this.workUnits&&this.fail(new $(`${s}: aggregate work limit exceeded (${this.limits.maxWorkUnits})`,"iterations")),this.countersByKind.set(t,i+n),this.workUnits+=n,i+n}consumeInput(t,n="execution"){return this.assertUsable(),(!Number.isSafeInteger(t)||t<0||t>this.limits.maxInputBytes-this.inputBytes)&&this.fail(new $(`${n}: aggregate input size limit exceeded (${this.limits.maxInputBytes} bytes)`,"string_length")),this.inputBytes+=t,this.inputBytes}consume(t,n=1,r=t){this.assertUsable();let s=this.countersByKind.get(t)??0,i=t==="commands"?this.commandCount:this.workUnits,a=t==="commands"?this.limits.maxCommandCount:this.limits.maxWorkUnits;(!Number.isSafeInteger(n)||n<0||n>a-i)&&this.fail(new $(t==="commands"?`too many commands executed (>${a}), increase executionLimits.maxCommandCount`:`${r}: ${t} work limit exceeded (${a})`,t==="commands"?"commands":"iterations"));let o=i+n;return t==="commands"?this.commandCount=o:this.workUnits=o,this.countersByKind.set(t,s+n),o}reserveBytes(t,n,r){this.assertUsable();let s=typeof t=="string"?t:"live",i=typeof t=="string"?n:t,a=typeof t=="string"?r??s:n??"execution";(!Number.isSafeInteger(i)||i<0||i>this.limits.maxLiveBytes-this.liveBytes)&&this.fail(new $(`${a}: live byte limit exceeded (${this.limits.maxLiveBytes} bytes)`,"string_length")),this.liveBytes+=i,this.bytesByKind.set(s,(this.bytesByKind.get(s)??0)+i);let o=!1;return{release:()=>{if(o)return;o=!0,this.liveBytes-=i;let l=(this.bytesByKind.get(s)??i)-i;l<=0?this.bytesByKind.delete(s):this.bytesByKind.set(s,l)}}}appendOutput(t,n,r="execution",s=0,i="text"){this.assertUsable();let a=i==="bytes"?n.length:T(n);(!Number.isSafeInteger(s)||s<0||s>a)&&this.fail(new $(`${r}: invalid ${t} accounting`,"output_size"));let o=a-s;return o>this.limits.maxOutputSize-this.outputBytes&&this.fail(new $(`${r}: total output size exceeded (>${this.limits.maxOutputSize} bytes), increase executionLimits.maxOutputSize`,"output_size")),this.outputBytes+=o,a}accountResult(t,n="execution",r=Number.POSITIVE_INFINITY){let s=t.internalOutputAccounting,i=Math.min(s?.stdout??0,r),a=Math.min(s?.stderr??0,Math.max(0,r-i)),o=this.appendOutput("stdout",t.stdout,n,i,t.stdoutKind==="bytes"||t.stdoutEncoding==="binary"?"bytes":"text"),l=this.appendOutput("stderr",t.stderr,n,a);return Object.isExtensible(t)?(t.internalOutputAccounting={stdout:o,stderr:l},t):o===0&&l===0?t:{...t,internalOutputAccounting:{stdout:o,stderr:l}}}relinquishOutput(t,n,r){this.assertUsable(),r!==Ca&&this.fail(new $(`${n}: unauthorized output accounting release`,"output_size")),(!Number.isSafeInteger(t)||t<0||t>this.outputBytes)&&this.fail(new $(`${n}: invalid output accounting release`,"output_size")),this.outputBytes-=t}enterDepth(t,n=this.limits.maxCallDepth,r){this.assertUsable();let s=typeof n=="number"?n:this.limits.maxCallDepth,i=typeof n=="string"?n:r??t,a=this.depthByKind.get(t)??0;a>=s&&this.fail(new $(`${i}: maximum depth (${s}) exceeded`,"recursion")),this.depthByKind.set(t,a+1);let o=!1;return{release:()=>{if(o)return;o=!0;let l=(this.depthByKind.get(t)??1)-1;l<=0?this.depthByKind.delete(t):this.depthByKind.set(t,l)}}}throwIfAborted(t="execution"){this.signal?.aborted&&this.fail(new Te("",`bash: ${t} aborted
4
+ `)),Date.now()-this.startedAt>this.limits.maxExecutionTimeMs&&this.fail(new Te("",`bash: ${t} exceeded execution deadline (${this.limits.maxExecutionTimeMs}ms)
5
+ `))}remainingTimeMs(){return Math.max(0,this.limits.maxExecutionTimeMs-(Date.now()-this.startedAt))}registerCleanup(t){this.assertUsable(),this.cleanupCallbacks.push(t);let n=!0;return()=>{if(!n)return;n=!1;let r=this.cleanupCallbacks.indexOf(t);r>=0&&this.cleanupCallbacks.splice(r,1)}}async close(){if(this.closed)return;this.closed=!0;let t=[],n=Date.now()+this.limits.maxExtensionCleanupTimeMs;for(let r=this.cleanupCallbacks.length-1;r>=0;r--)try{let s=n-Date.now();if(s<=0){t.push(new Error("execution cleanup grace period exceeded"));break}let i,a=await Promise.race([Promise.resolve().then(this.cleanupCallbacks[r]).then(()=>({ok:!0}),o=>({ok:!1,error:o})),new Promise(o=>{i=kn(()=>o({ok:!1,error:new Error("execution cleanup grace period exceeded")}),s)})]);if(Nn(i),!a.ok&&(t.push(a.error),Date.now()>=n))break}catch(s){t.push(s)}if(this.cleanupCallbacks.length=0,this.depthByKind.clear(),this.bytesByKind.clear(),this.liveBytes=0,t.length>0)throw new AggregateError(t,"execution cleanup failed")}assertExecDepth(t){this.assertUsable(),t>this.limits.maxExecDepth&&this.fail(new $(`maximum nested execution depth (${this.limits.maxExecDepth}) exceeded`,"recursion"))}};function Da(e){let t=Object.create(null);return Object.defineProperties(t,{remainingLiveBytes:{enumerable:!0,get:()=>e.remainingLiveBytes},consumeWork:{enumerable:!0,value:e.consumeWork.bind(e)},consumeLimited:{enumerable:!0,value:e.consumeLimited.bind(e)},consumeInput:{enumerable:!0,value:e.consumeInput.bind(e)},reserveBytes:{enumerable:!0,value:e.reserveBytes.bind(e)},enterDepth:{enumerable:!0,value:e.enterDepth.bind(e)},throwIfAborted:{enumerable:!0,value:e.throwIfAborted.bind(e)},remainingTimeMs:{enumerable:!0,value:e.remainingTimeMs.bind(e)},registerCleanup:{enumerable:!0,value:e.registerCleanup.bind(e)}}),Object.freeze(t)}function Ra(e,t,n="pipeline"){e.relinquishOutput(t,n,Ca)}var Ut=new TextEncoder;function _u(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var Cn=class{data=new Map;entryIdentities=new WeakMap;nextEntryIdentity=1;maxTotalBytes;retainedBytes=0;contentReferences=new WeakMap;materializedContent(t){return t?.type==="file"&&"content"in t?t.content:null}storedByteLength(t){return t===null?0:t instanceof Uint8Array?t.byteLength:T(t)}wouldReleaseBytes(t){let n=this.materializedContent(t);return n===null?0:n instanceof Uint8Array?this.contentReferences.get(n)===1?n.byteLength:0:this.storedByteLength(n)}assertCanAllocate(t,n){let r=this.wouldReleaseBytes(this.data.get(t));if(!Number.isSafeInteger(n)||n<0||n>this.maxTotalBytes-this.retainedBytes+r)throw new Error(`ENOSPC: in-memory filesystem byte limit exceeded (${this.maxTotalBytes} bytes)`)}setEntry(t,n){let r=this.data.get(t),s=this.materializedContent(r),i=this.materializedContent(n);if(s===i){this.data.set(t,n);return}let a=this.wouldReleaseBytes(r),o=i instanceof Uint8Array?this.contentReferences.has(i)?0:i.byteLength:this.storedByteLength(i);if(o>this.maxTotalBytes-this.retainedBytes+a)throw new Error(`ENOSPC: in-memory filesystem byte limit exceeded (${this.maxTotalBytes} bytes)`);if(s instanceof Uint8Array){let l=this.contentReferences.get(s)??0;l<=1?this.contentReferences.delete(s):this.contentReferences.set(s,l-1)}i instanceof Uint8Array&&this.contentReferences.set(i,(this.contentReferences.get(i)??0)+1),this.retainedBytes+=o-a,this.data.set(t,n)}deleteEntry(t){let n=this.data.get(t);if(!n)return!1;let r=this.materializedContent(n),s=this.wouldReleaseBytes(n);if(r instanceof Uint8Array){let i=this.contentReferences.get(r)??0;i<=1?this.contentReferences.delete(r):this.contentReferences.set(r,i-1)}return this.retainedBytes-=s,this.data.delete(t)}contentByteLength(t,n){if(t instanceof Uint8Array)return t.byteLength;if(n==="hex")return Math.floor(t.length/2);if(n==="base64"){let r=t.endsWith("==")?2:t.endsWith("=")?1:0;return Math.max(0,Math.floor(t.length*3/4)-r)}return n==="binary"||n==="latin1"?t.length:T(t)}identityFor(t){let n=this.entryIdentities.get(t);return n||(n=`memfs:${this.nextEntryIdentity++}`,this.entryIdentities.set(t,n)),n}constructor(t,n={}){if(this.maxTotalBytes=n.maxTotalBytes??1024*1024*1024,!Number.isSafeInteger(this.maxTotalBytes)||this.maxTotalBytes<0)throw new Error("InMemoryFs: invalid maxTotalBytes");if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[r,s]of Object.entries(t))typeof s=="function"?this.writeFileLazy(r,s):_u(s)?this.writeFileSync(r,s.content,void 0,{mode:s.mode,mtime:s.mtime}):this.writeFileSync(r,s)}ensureParentDirs(t){let n=rn(t);n!=="/"&&(this.data.has(n)||(this.ensureParentDirs(n),this.data.set(n,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,n,r,s){K(t,"write");let i=H(t);this.ensureParentDirs(i);let a=$t(r);this.assertCanAllocate(i,this.contentByteLength(n,a));let o=on(n,a);this.setEntry(i,{type:"file",content:o,mode:s?.mode??420,mtime:s?.mtime??new Date})}writeFileLazy(t,n,r){K(t,"write");let s=H(t);this.ensureParentDirs(s),this.setEntry(s,{type:"file",lazy:n,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,n){let r=await n.lazy(),s=typeof r=="string"?Ut.encode(r):r,i={type:"file",content:s,mode:n.mode,mtime:n.mtime};return this.assertCanAllocate(t,s.byteLength),this.setEntry(t,i),i}async readFile(t,n){let r=await this.readFileBuffer(t),s=$t(n);return ln(r,s)}async readFileBytes(t){let n=await this.readFileBuffer(t);return ln(n,"binary")}async readFileBuffer(t){K(t,"open");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in r){let s=await this.materializeLazy(n,r);return s.content instanceof Uint8Array?s.content:Ut.encode(s.content)}return r.content instanceof Uint8Array?r.content:Ut.encode(r.content)}async writeFile(t,n,r){this.writeFileSync(t,n,r)}async appendFile(t,n,r){K(t,"append");let s=H(t),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let a=$t(r),o=this.contentByteLength(n,a);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(s,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:Ut.encode("content"in l?l.content:"");this.assertCanAllocate(s,c.byteLength+o);let u=on(n,a),f=new Uint8Array(c.length+u.length);f.set(c),f.set(u,c.length),this.setEntry(s,{type:"file",content:f,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,n,r)}async exists(t){if(t.includes("\0"))return!1;try{let n=this.resolvePathWithSymlinks(t);return this.data.has(n)}catch{return!1}}async stat(t){K(t,"stat");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date,identity:this.identityFor(r)}}async lstat(t){K(t,"lstat");let n=this.resolveIntermediateSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date,identity:this.identityFor(r)}}resolveIntermediateSymlinks(t){let n=H(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let s="",i=new Set;for(let a=0;a<r.length-1;a++){let o=r[a];s=`${s}/${o}`;let l=this.data.get(s),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(s),s=an(s,l.target),l=this.data.get(s),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${s}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let n=H(t);if(n==="/")return"/";let r=n.slice(1).split("/"),s="",i=new Set;for(let a of r){s=`${s}/${a}`;let o=this.data.get(s),l=0,c=40;for(;o&&o.type==="symlink"&&l<c;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(s),s=an(s,o.target),o=this.data.get(s),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return s}async mkdir(t,n){this.mkdirSync(t,n)}mkdirSync(t,n){K(t,"mkdir");let r=H(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let s=rn(r);if(s!=="/"&&!this.data.has(s))if(n?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){K(t,"scandir");let n=H(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let s=new Set;for(;r&&r.type==="symlink";){if(s.has(n))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);s.add(n),n=an(n,r.target),r=this.data.get(n)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=n==="/"?"/":`${n}/`,a=new Map;for(let[o,l]of this.data.entries())if(o!==n&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!a.has(u)&&a.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(a.values()).sort((o,l)=>o.name<l.name?-1:o.name>l.name?1:0)}async rm(t,n){K(t,"rm");let r=H(t),s=this.data.get(r);if(!s){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(s.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!n?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of i){let o=sn(r,a);await this.rm(o,n)}}}this.deleteEntry(r)}async cp(t,n,r){K(t,"cp"),K(n,"cp");let s=H(t),i=H(n),a=this.data.get(s);if(!a)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(a.type==="file")if(this.ensureParentDirs(i),"content"in a){let o=a.content instanceof Uint8Array?a.content.byteLength:Ut.encode(a.content).byteLength;this.assertCanAllocate(i,o);let l=a.content instanceof Uint8Array?new Uint8Array(a.content):a.content;this.setEntry(i,{...a,content:l})}else this.setEntry(i,{...a});else if(a.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...a});else if(a.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);if(nn(s,i))throw new Error(`EINVAL: cannot copy '${t}' into itself, '${n}'`);await this.mkdir(i,{recursive:!0});let o=await this.readdir(s);for(let l of o){let c=sn(s,l),u=sn(i,l);await this.cp(c,u,r)}}}async mv(t,n){K(t,"mv"),K(n,"mv");let r=H(t),s=H(n);if(r===s)return;let i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, mv '${t}'`);if(i.type==="directory"&&nn(r,s))throw new Error(`EINVAL: cannot move '${t}' into itself, '${n}'`);if(i.type==="directory"){await this.mkdir(s,{recursive:!0});let a=await this.readdir(r);for(let o of a)await this.mv(sn(r,o),sn(s,o));this.deleteEntry(r);return}this.ensureParentDirs(s),this.setEntry(s,i),this.deleteEntry(r)}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,n){return ir(t,n)}async chmod(t,n){K(t,"chmod");let r=H(t),s=this.data.get(r);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);s.mode=n}async symlink(t,n){K(n,"symlink");let r=H(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,n){K(t,"link"),K(n,"link");let r=H(t),s=H(n),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${n}'`);let a=i;"lazy"in a&&(a=await this.materializeLazy(r,a)),this.ensureParentDirs(s);let o={type:"file",content:a.content,mode:a.mode,mtime:a.mtime};this.entryIdentities.set(o,this.identityFor(a)),this.setEntry(s,o)}async readlink(t){K(t,"readlink");let n=H(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){K(t,"realpath");let n=this.resolvePathWithSymlinks(t);if(!this.data.has(n))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return n}async utimes(t,n,r){K(t,"utimes");let s=H(t),i=this.resolvePathWithSymlinks(s),a=this.data.get(i);if(!a)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);a.mtime=r}};var _a="5.1.0(1)-release",Oa="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function Es(e){let{pid:t,ppid:n,uid:r,gid:s}=e;return`Name: bash
4
6
  State: R (running)
5
7
  Pid: ${t}
6
- PPid: ${s}
8
+ PPid: ${n}
7
9
  Uid: ${r} ${r} ${r} ${r}
8
- Gid: ${n} ${n} ${n} ${n}
9
- `}function bc(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function vc(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Sc(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Ac(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${$i}
10
+ Gid: ${s} ${s} ${s} ${s}
11
+ `}function Ou(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Lu(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Tu(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Mu(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Oa}
10
12
  `),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
11
- `),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>kn(t)):e.writeFileSync("/proc/self/status",kn(t)),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function Ni(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){bc(e)&&(vc(e,t),Sc(e),Ac(e,s))}var $c=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],Nc=["braceexpand","hashall","interactive-comments"];function _n(e){let t=[],s=[...Nc.map(r=>({name:r,enabled:!0})),...$c.map(r=>({name:r,enabled:e[r]}))].sort((r,n)=>r.name.localeCompare(n.name));for(let r of s)r.enabled&&t.push(r.name);return t.join(":")}function Wt(e){e.state.env.set("SHELLOPTS",_n(e.state.options))}var kc=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Pn(e){let t=[];for(let s of kc)e[s]&&t.push(s);return t.join(":")}function Dn(e){e.state.env.set("BASHOPTS",Pn(e.state.shoptOptions))}var R={script(e){return{type:"Script",statements:e}},statement(e,t=[],s=!1,r,n){let i={type:"Statement",pipelines:e,operators:t,background:s};return r&&(i.deferredError=r),n!==void 0&&(i.sourceText=n),i},pipeline(e,t=!1,s=!1,r=!1,n){return{type:"Pipeline",commands:e,negated:t,timed:s,timePosix:r,pipeStderr:n}},simpleCommand(e,t=[],s=[],r=[]){return{type:"SimpleCommand",name:e,args:t,assignments:s,redirections:r}},word(e){return{type:"Word",parts:e}},literal(e){return{type:"Literal",value:e}},singleQuoted(e){return{type:"SingleQuoted",value:e}},doubleQuoted(e){return{type:"DoubleQuoted",parts:e}},escaped(e){return{type:"Escaped",value:e}},parameterExpansion(e,t=null){return{type:"ParameterExpansion",parameter:e,operation:t}},commandSubstitution(e,t=!1){return{type:"CommandSubstitution",body:e,legacy:t}},arithmeticExpansion(e){return{type:"ArithmeticExpansion",expression:e}},assignment(e,t,s=!1,r=null){return{type:"Assignment",name:e,value:t,append:s,array:r}},redirection(e,t,s=null,r){let n={type:"Redirection",fd:s,operator:e,target:t};return r&&(n.fdVariable=r),n},hereDoc(e,t,s=!1,r=!1){return{type:"HereDoc",delimiter:e,content:t,stripTabs:s,quoted:r}},ifNode(e,t=null,s=[]){return{type:"If",clauses:e,elseBody:t,redirections:s}},forNode(e,t,s,r=[]){return{type:"For",variable:e,words:t,body:s,redirections:r}},whileNode(e,t,s=[]){return{type:"While",condition:e,body:t,redirections:s}},untilNode(e,t,s=[]){return{type:"Until",condition:e,body:t,redirections:s}},caseNode(e,t,s=[]){return{type:"Case",word:e,items:t,redirections:s}},caseItem(e,t,s=";;"){return{type:"CaseItem",patterns:e,body:t,terminator:s}},subshell(e,t=[]){return{type:"Subshell",body:e,redirections:t}},group(e,t=[]){return{type:"Group",body:e,redirections:t}},functionDef(e,t,s=[],r){return{type:"FunctionDef",name:e,body:t,redirections:s,sourceFile:r}},conditionalCommand(e,t=[],s){return{type:"ConditionalCommand",expression:e,redirections:t,line:s}},arithmeticCommand(e,t=[],s){return{type:"ArithmeticCommand",expression:e,redirections:t,line:s}}};function ki(e,t){let s=e.length,r=t+3,n=2,i=!1,a=!1;for(;r<s&&n>0;){let l=e[r];if(i){l==="'"&&(i=!1),r++;continue}if(a){if(l==="\\"){r+=2;continue}l==='"'&&(a=!1),r++;continue}if(l==="'"){i=!0,r++;continue}if(l==='"'){a=!0,r++;continue}if(l==="\\"){r+=2;continue}if(l==="("){n++,r++;continue}if(l===")"){if(n--,n===1){let o=r+1;return!(o<s&&e[o]===")")}if(n===0)return!1;r++;continue}if(n===1&&(l==="|"&&r+1<s&&e[r+1]==="|"||l==="&"&&r+1<s&&e[r+1]==="&"||l==="|"&&r+1<s&&e[r+1]!=="|"))return!0;r++}return!1}function In(e,t){let s="",r=t,n=i=>i===" "||i===" "||i===`
12
- `||i===";"||i==="&"||i==="|"||i==="<"||i===">"||i==="("||i===")";for(;r<e.length;){let i=e[r];if(i==="'"){for(r++;r<e.length&&e[r]!=="'";)s+=e[r],r++;r<e.length&&r++;continue}if(i==='"'){for(r++;r<e.length&&e[r]!=='"';)e[r]==="\\"&&r+1<e.length&&r++,s+=e[r],r++;r<e.length&&r++;continue}if(i==="\\"&&r+1<e.length){s+=e[r+1],r+=2;continue}if(n(i))break;s+=i,r++}return{delim:s,endPos:r}}function _c(e,t,s){let r=t+1;for(let{delim:n,stripTabs:i}of s)for(;;){if(r>=e.length)return e.length;let a=e.indexOf(`
13
- `,r);a===-1&&(a=e.length);let l=e.slice(r,a);if(i&&(l=l.replace(/^\t+/,"")),l===n){r=a+1;break}if(a>=e.length)return e.length;r=a+1}return Math.min(r,e.length)}function _i(e,t,s,r){let n=t+2,i=1,a=n,l=!1,o=!1,u=0,c=!1,f="",d=[],h=0;for(;a<e.length&&i>0;){let b=e[a];if(l)b==="'"&&(l=!1);else if(o)b==="\\"&&a+1<e.length?a++:b==='"'&&(o=!1);else{if(b==="("&&e[a+1]==="("?h++:b===")"&&e[a+1]===")"&&h>0&&h--,h===0&&b==="<"&&e[a+1]==="<"&&e[a+2]!=="<"){let v=a+2,E=!1;for(e[v]==="-"&&(E=!0,v++);e[v]===" "||e[v]===" ";)v++;let{delim:w,endPos:S}=In(e,v);if(w.length>0){d.push({delim:w,stripTabs:E}),f="",a=S;continue}}if(b===`
14
- `&&d.length>0){let v=_c(e,a,d);d.length=0,f="",a=v;continue}b==="'"?(l=!0,f=""):b==='"'?(o=!0,f=""):b==="\\"&&a+1<e.length?(a++,f=""):/[a-zA-Z_]/.test(b)?f+=b:(f==="case"?(u++,c=!1):f==="in"&&u>0?c=!0:f==="esac"&&u>0&&(u--,c=!1),f="",b==="("?a>0&&e[a-1]==="$"?i++:c||i++:b===")"?c?c=!1:i--:b===";"&&u>0&&a+1<e.length&&e[a+1]===";"&&(c=!0))}i>0&&a++}i>0&&r("unexpected EOF while looking for matching `)'");let p=e.slice(n,a),y=s().parse(p);return{part:R.commandSubstitution(y,!1),endIndex:a+1}}function Pi(e,t,s,r,n){let a=t+1,l="";for(;a<e.length&&e[a]!=="`";)if(e[a]==="\\"){let c=e[a+1];c==="$"||c==="`"||c==="\\"||c===`
15
- `||s&&c==='"'?(c!==`
16
- `&&(l+=c),a+=2):(l+=e[a],a++)}else l+=e[a],a++;a>=e.length&&n("unexpected EOF while looking for matching ``'");let u=r().parse(l);return{part:R.commandSubstitution(u,!0),endIndex:a+1}}var Pc=10485760,g;(function(e){e.EOF="EOF",e.NEWLINE="NEWLINE",e.SEMICOLON="SEMICOLON",e.AMP="AMP",e.PIPE="PIPE",e.PIPE_AMP="PIPE_AMP",e.AND_AND="AND_AND",e.OR_OR="OR_OR",e.BANG="BANG",e.LESS="LESS",e.GREAT="GREAT",e.DLESS="DLESS",e.DGREAT="DGREAT",e.LESSAND="LESSAND",e.GREATAND="GREATAND",e.LESSGREAT="LESSGREAT",e.DLESSDASH="DLESSDASH",e.CLOBBER="CLOBBER",e.TLESS="TLESS",e.AND_GREAT="AND_GREAT",e.AND_DGREAT="AND_DGREAT",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.DSEMI="DSEMI",e.SEMI_AND="SEMI_AND",e.SEMI_SEMI_AND="SEMI_SEMI_AND",e.DBRACK_START="DBRACK_START",e.DBRACK_END="DBRACK_END",e.DPAREN_START="DPAREN_START",e.DPAREN_END="DPAREN_END",e.IF="IF",e.THEN="THEN",e.ELSE="ELSE",e.ELIF="ELIF",e.FI="FI",e.FOR="FOR",e.WHILE="WHILE",e.UNTIL="UNTIL",e.DO="DO",e.DONE="DONE",e.CASE="CASE",e.ESAC="ESAC",e.IN="IN",e.FUNCTION="FUNCTION",e.SELECT="SELECT",e.TIME="TIME",e.COPROC="COPROC",e.WORD="WORD",e.NAME="NAME",e.NUMBER="NUMBER",e.ASSIGNMENT_WORD="ASSIGNMENT_WORD",e.FD_VARIABLE="FD_VARIABLE",e.COMMENT="COMMENT",e.HEREDOC_CONTENT="HEREDOC_CONTENT"})(g||(g={}));var ht=class extends Error{line;column;constructor(t,s,r){super(`line ${s}: ${t}`),this.line=s,this.column=r,this.name="LexerError"}},Di=new Map([["if",g.IF],["then",g.THEN],["else",g.ELSE],["elif",g.ELIF],["fi",g.FI],["for",g.FOR],["while",g.WHILE],["until",g.UNTIL],["do",g.DO],["done",g.DONE],["case",g.CASE],["esac",g.ESAC],["in",g.IN],["function",g.FUNCTION],["select",g.SELECT],["time",g.TIME],["coproc",g.COPROC]]);function Ii(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return!1;let s=e.slice(t[0].length);if(s===""||s==="+")return!0;if(s[0]==="["){let r=0,n=0;for(;n<s.length;n++)if(s[n]==="[")r++;else if(s[n]==="]"&&(r--,r===0))break;if(r!==0||n>=s.length)return!1;let i=s.slice(n+1);return i===""||i==="+"}return!1}function Ci(e){let t=0;for(let s=0;s<e.length;s++){let r=e[s];if(r==="[")t++;else if(r==="]")t--;else{if(t===0&&r==="=")return s;if(t===0&&r==="+"&&e[s+1]==="=")return s+1}}return-1}var Dc=[[";",";","&",g.SEMI_SEMI_AND],["<","<","<",g.TLESS],["&",">",">",g.AND_DGREAT]],Ic=[["[","[",g.DBRACK_START],["]","]",g.DBRACK_END],["(","(",g.DPAREN_START],[")",")",g.DPAREN_END],["&","&",g.AND_AND],["|","|",g.OR_OR],[";",";",g.DSEMI],[";","&",g.SEMI_AND],["|","&",g.PIPE_AMP],[">",">",g.DGREAT],["<","&",g.LESSAND],[">","&",g.GREATAND],["<",">",g.LESSGREAT],[">","|",g.CLOBBER],["&",">",g.AND_GREAT]],Cc=new Map([["|",g.PIPE],["&",g.AMP],[";",g.SEMICOLON],["(",g.LPAREN],[")",g.RPAREN],["<",g.LESS],[">",g.GREAT]]);function xc(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function xi(e){return e===" "||e===" "||e===`
17
- `||e===";"||e==="&"||e==="|"||e==="("||e===")"||e==="<"||e===">"}var $s=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];dparenDepth=0;maxHeredocSize;constructor(t,s){this.input=t,this.maxHeredocSize=s?.maxHeredocSize??Pc}tokenize(){let s=this.input.length,r=this.tokens,n=this.pendingHeredocs;for(;this.pos<s;){if(n.length>0&&r.length>0&&r[r.length-1].type===g.NEWLINE){this.readHeredocContent();continue}if(this.skipWhitespace(),this.pos>=s)break;let i=this.nextToken();i&&r.push(i)}return r.push({type:g.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),r}skipWhitespace(){let t=this.input,s=t.length,r=this.pos,n=this.column,i=this.line;for(;r<s;){let a=t[r];if(a===" "||a===" ")r++,n++;else if(a==="\\"&&t[r+1]===`
18
- `)r+=2,i++,n=1;else break}this.pos=r,this.column=n,this.line=i}nextToken(){let t=this.input,s=this.pos,r=this.line,n=this.column,i=t[s],a=t[s+1],l=t[s+2];if(i==="#"&&this.dparenDepth===0)return this.readComment(s,r,n);if(i===`
19
- `)return this.pos=s+1,this.line++,this.column=1,{type:g.NEWLINE,value:`
20
- `,start:s,end:s+1,line:r,column:n};if(i==="<"&&a==="<"&&l==="-")return this.pos=s+3,this.column=n+3,this.registerHeredocFromLookahead(!0),this.makeToken(g.DLESSDASH,"<<-",s,r,n);for(let[u,c,f,d]of Dc)if(i===u&&a===c&&l===f)return this.pos=s+3,this.column=n+3,this.makeToken(d,u+c+f,s,r,n);if(i==="<"&&a==="<")return this.pos=s+2,this.column=n+2,this.registerHeredocFromLookahead(!1),this.makeToken(g.DLESS,"<<",s,r,n);if(i==="("&&a==="(")return this.dparenDepth>0?(this.pos=s+1,this.column=n+1,this.dparenDepth++,this.makeToken(g.LPAREN,"(",s,r,n)):this.looksLikeNestedSubshells(s+2)||this.dparenClosesWithSpacedParens(s+2)?(this.pos=s+1,this.column=n+1,this.makeToken(g.LPAREN,"(",s,r,n)):(this.pos=s+2,this.column=n+2,this.dparenDepth=1,this.makeToken(g.DPAREN_START,"((",s,r,n));if(i===")"&&a===")")return this.dparenDepth===1?(this.pos=s+2,this.column=n+2,this.dparenDepth=0,this.makeToken(g.DPAREN_END,"))",s,r,n)):this.dparenDepth>1?(this.pos=s+1,this.column=n+1,this.dparenDepth--,this.makeToken(g.RPAREN,")",s,r,n)):(this.pos=s+1,this.column=n+1,this.makeToken(g.RPAREN,")",s,r,n));for(let[u,c,f]of Ic)if(!(u==="("&&c==="("||u===")"&&c===")")&&!(this.dparenDepth>0&&u===";"&&(f===g.DSEMI||f===g.SEMI_AND||f===g.SEMI_SEMI_AND))&&i===u&&a===c){if(f===g.DBRACK_START||f===g.DBRACK_END){let d=t[s+2];if(d!==void 0&&d!==" "&&d!==" "&&d!==`
21
- `&&d!==";"&&d!=="&"&&d!=="|"&&d!=="("&&d!==")"&&d!=="<"&&d!==">")break}return this.pos=s+2,this.column=n+2,this.makeToken(f,u+c,s,r,n)}if(i==="("&&this.dparenDepth>0)return this.pos=s+1,this.column=n+1,this.dparenDepth++,this.makeToken(g.LPAREN,"(",s,r,n);if(i===")"&&this.dparenDepth>1)return this.pos=s+1,this.column=n+1,this.dparenDepth--,this.makeToken(g.RPAREN,")",s,r,n);let o=Cc.get(i);if(o!==void 0)return this.pos=s+1,this.column=n+1,this.makeToken(o,i,s,r,n);if(i==="{"){let u=this.scanFdVariable(s);return u!==null?(this.pos=u.end,this.column=n+(u.end-s),{type:g.FD_VARIABLE,value:u.varname,start:s,end:u.end,line:r,column:n}):a==="}"?(this.pos=s+2,this.column=n+2,{type:g.WORD,value:"{}",start:s,end:s+2,line:r,column:n,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(s)!==null?this.readWordWithBraceExpansion(s,r,n):this.scanLiteralBraceWord(s)!==null?this.readWordWithBraceExpansion(s,r,n):a!==void 0&&a!==" "&&a!==" "&&a!==`
22
- `?this.readWord(s,r,n):(this.pos=s+1,this.column=n+1,this.makeToken(g.LBRACE,"{",s,r,n))}return i==="}"?this.isWordCharFollowing(s+1)?this.readWord(s,r,n):(this.pos=s+1,this.column=n+1,this.makeToken(g.RBRACE,"}",s,r,n)):i==="!"?a==="="?(this.pos=s+2,this.column=n+2,this.makeToken(g.WORD,"!=",s,r,n)):(this.pos=s+1,this.column=n+1,this.makeToken(g.BANG,"!",s,r,n)):this.readWord(s,r,n)}looksLikeNestedSubshells(t){let s=this.input,r=s.length,n=t;for(;n<r&&(s[n]===" "||s[n]===" ");)n++;if(n>=r)return!1;let i=s[n];if(i==="(")return this.looksLikeNestedSubshells(n+1);let a=/[a-zA-Z_]/.test(i),l=i==="!"||i==="[";if(!a&&!l)return!1;let o=n;for(;o<r&&/[a-zA-Z0-9_\-.]/.test(s[o]);)o++;if(o===n)return l;let u=o;for(;u<r&&(s[u]===" "||s[u]===" ");)u++;if(u>=r)return!1;let c=s[u];if(c==="="&&s[u+1]!=="="||c===`
23
- `||o===u&&/[+\-*/%<>&|^!~?:]/.test(c)&&c!=="-"||c===")"&&s[u+1]===")")return!1;if(u>o&&(c==="-"||c==='"'||c==="'"||c==="$"||/[a-zA-Z_/.]/.test(c))){let f=u;for(;f<r&&s[f]!==`
24
- `;){if(s[f]===")")return!0;f++}return!1}if(c===")"){let f=u+1;for(;f<r&&(s[f]===" "||s[f]===" ");)f++;if(s[f]==="|"&&s[f+1]==="|"||s[f]==="&"&&s[f+1]==="&"||s[f]===";"||s[f]==="|"&&s[f+1]!=="|")return!0}return!1}makeToken(t,s,r,n,i){return{type:t,value:s,start:r,end:this.pos,line:n,column:i}}readComment(t,s,r){let n=this.input,i=n.length,a=this.pos;for(;a<i&&n[a]!==`
25
- `;)a++;let l=n.slice(t,a);return this.pos=a,this.column=r+(a-t),{type:g.COMMENT,value:l,start:t,end:a,line:s,column:r}}readWord(t,s,r){let n=this.input,i=n.length,a=this.pos,l=a;for(;a<i;){let E=n[a];if(E===" "||E===" "||E===`
26
- `||E===";"||E==="&"||E==="|"||E==="("||E===")"||E==="<"||E===">"||E==="'"||E==='"'||E==="\\"||E==="$"||E==="`"||E==="{"||E==="}"||E==="~"||E==="*"||E==="?"||E==="[")break;a++}if(a>l){let E=n[a];if(!(E==="("&&a>l&&"@*+?!".includes(n[a-1]))){if(a>=i||E===" "||E===" "||E===`
27
- `||E===";"||E==="&"||E==="|"||E==="("||E===")"||E==="<"||E===">"){let w=n.slice(l,a);this.pos=a,this.column=r+(a-l);let S=Di.get(w);if(S!==void 0)return{type:S,value:w,start:t,end:a,line:s,column:r};let A=Ci(w);return A>0&&Ii(w.slice(0,A))?{type:g.ASSIGNMENT_WORD,value:w,start:t,end:a,line:s,column:r}:/^[0-9]+$/.test(w)?{type:g.NUMBER,value:w,start:t,end:a,line:s,column:r}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)?{type:g.NAME,value:w,start:t,end:a,line:s,column:r,quoted:!1,singleQuoted:!1}:{type:g.WORD,value:w,start:t,end:a,line:s,column:r,quoted:!1,singleQuoted:!1}}}}a=this.pos;let o=this.column,u=this.line,c="",f=!1,d=!1,h=!1,p=!1,m=n[a]==='"'||n[a]==="'",y=!1,b=0;for(;a<i;){let E=n[a];if(!h&&!p){if(E==="("&&c.length>0&&"@*+?!".includes(c[c.length-1])){let w=this.scanExtglobPattern(a);if(w!==null){c+=w.content,a=w.end,o+=w.content.length;continue}}if(E==="["&&b===0){if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(c)){let w=a+1<i?n[a+1]:"";if(w==="^"||w==="!"){c+=E,a++,o++;continue}b=1,c+=E,a++,o++;continue}}else if(E==="["&&b>0){c.length>0&&c[c.length-1]!=="\\"&&b++,c+=E,a++,o++;continue}else if(E==="]"&&b>0){c.length>0&&c[c.length-1]!=="\\"&&b--,c+=E,a++,o++;continue}if(b>0){if(E===`
28
- `)break;c+=E,a++,o++;continue}if(E===" "||E===" "||E===`
29
- `||E===";"||E==="&"||E==="|"||E==="("||E===")"||E==="<"||E===">")break}if(E==="$"&&a+1<i&&n[a+1]==="'"&&!h&&!p){for(c+="$'",a+=2,o+=2;a<i&&n[a]!=="'";)n[a]==="\\"&&a+1<i?(c+=n[a]+n[a+1],a+=2,o+=2):(c+=n[a],a++,o++);a<i&&(c+="'",a++,o++);continue}if(E==="$"&&a+1<i&&n[a+1]==='"'&&!h&&!p){a++,o++,p=!0,f=!0,c===""&&(m=!0),a++,o++;continue}if(E==="'"&&!p){if(h)if(h=!1,!m||y)c+=E;else{let w=a+1<i?n[a+1]:"";w&&!xi(w)&&w!=="'"&&(w==='"'?(y=!0,c+=E,d=!1,f=!1):(y=!0,c+=E))}else h=!0,m&&!y?(d=!0,f=!0):c+=E;a++,o++;continue}if(E==='"'&&!h){if(p)if(p=!1,!m||y)c+=E;else{let w=a+1<i?n[a+1]:"";w&&!xi(w)&&w!=='"'&&(w==="'"?(y=!0,c+=E,d=!1,f=!1):(y=!0,c+=E))}else p=!0,m&&!y?f=!0:c+=E;a++,o++;continue}if(E==="\\"&&!h&&a+1<i){let w=n[a+1];if(w===`
30
- `){a+=2,u++,o=1;continue}if(p){if(w==='"'||w==="\\"||w==="$"||w==="`"||w===`
31
- `){if(w===`
32
- `){a+=2,o=1,u++;continue}c+=E+w,a+=2,o+=2;continue}}else{w==="\\"||w==='"'||w==="'"||w==="`"||w==="*"||w==="?"||w==="["||w==="]"||w==="("||w===")"||w==="$"||w==="-"||w==="."||w==="^"||w==="+"||w==="{"||w==="}"?c+=E+w:c+=w,a+=2,o+=2;continue}}if(E==="$"&&a+1<i&&n[a+1]==="("&&!h){c+=E,a++,o++,c+=n[a],a++,o++;let w=1,S=!1,A=!1,$=0,x=!1,I="",T=[],k=n[a]==="("&&!this.dollarDparenIsSubshell(a),D=k?1:0;for(;w>0&&a<i;){let C=n[a];if(c+=C,S)C==="'"&&(S=!1);else if(A)C==="\\"&&a+1<i?(c+=n[a+1],a++,o++):C==='"'&&(A=!1);else{if(C==="("&&n[a+1]==="("?D++:C===")"&&n[a+1]===")"&&D>0&&D--,D===0&&C==="<"&&n[a+1]==="<"&&n[a+2]!=="<"){let N=a+2,O=!1;for(n[N]==="-"&&(O=!0,N++);n[N]===" "||n[N]===" ";)N++;let{delim:M,endPos:q}=In(n,N);if(M.length>0){c+=n.slice(a+1,q),o+=q-a,T.push({delim:M,stripTabs:O}),a=q;continue}}if(C===`
33
- `&&T.length>0){u++,o=0;let N=a+1;for(let{delim:O,stripTabs:M}of T)for(;!(N>=i);){let q=n.indexOf(`
34
- `,N);q===-1&&(q=i);let J=n.slice(N,q),ce=M?J.replace(/^\t+/,""):J;c+=n.slice(N,Math.min(q+1,i)),q<i&&u++;let pe=q>=i;if(N=q+1,ce===O||pe)break}T.length=0,o=0,a=Math.min(N,i);continue}if(C==="'")S=!0,I="";else if(C==='"')A=!0,I="";else if(C==="\\"&&a+1<i)c+=n[a+1],a++,o++,I="";else if(C==="$"&&a+1<i&&n[a+1]==="{"){a++,o++,c+=n[a],a++,o++;let N=1,O=!1,M=!1;for(;N>0&&a<i;){let q=n[a];if(q==="\\"&&a+1<i&&!O){c+=q,a++,o++,c+=n[a],a++,o++;continue}c+=q,O?q==="'"&&(O=!1):M?q==='"'&&(M=!1):q==="'"?O=!0:q==='"'?M=!0:q==="{"?N++:q==="}"&&N--,q===`
35
- `?(u++,o=0):o++,a++}I="";continue}else if(C==="#"&&!k&&(I===""||/\s/.test(n[a-1]||""))){for(;a+1<i&&n[a+1]!==`
36
- `;)a++,o++,c+=n[a];I=""}else/[a-zA-Z_]/.test(C)?I+=C:(I==="case"?($++,x=!1):I==="in"&&$>0?x=!0:I==="esac"&&$>0&&($--,x=!1),I="",C==="("?a>0&&n[a-1]==="$"?w++:x||w++:C===")"?x?x=!1:w--:C===";"&&$>0&&(a+1<i&&n[a+1]===";"||a+1<i&&n[a+1]==="&")&&(x=!0))}C===`
37
- `&&(u++,o=0,I=""),a++,o++}continue}if(E==="$"&&a+1<i&&n[a+1]==="["&&!h){c+=E,a++,o++,c+=n[a],a++,o++;let w=1;for(;w>0&&a<i;){let S=n[a];c+=S,S==="["?w++:S==="]"?w--:S===`
38
- `&&(u++,o=0),a++,o++}continue}if(E==="$"&&a+1<i&&n[a+1]==="{"&&!h){c+=E,a++,o++,c+=n[a],a++,o++;let w=1,S=!1,A=!1,$=u,x=o,I=u,T=o;for(;w>0&&a<i;){let k=n[a];if(k==="\\"&&a+1<i&&n[a+1]===`
39
- `){a+=2,u++,o=1;continue}if(k==="\\"&&a+1<i&&!S){c+=k,a++,o++,c+=n[a],a++,o++;continue}c+=k,S?k==="'"&&(S=!1):A?k==='"'&&(A=!1):k==="'"?(S=!0,$=u,x=o):k==='"'?(A=!0,I=u,T=o):k==="{"?w++:k==="}"&&w--,k===`
40
- `&&(u++,o=0),a++,o++}if(S)throw new ht("unexpected EOF while looking for matching `''",$,x);if(A)throw new ht("unexpected EOF while looking for matching `\"'",I,T);continue}if(E==="$"&&a+1<i&&!h){let w=n[a+1];if(w==="#"||w==="?"||w==="$"||w==="!"||w==="@"||w==="*"||w==="-"||w>="0"&&w<="9"){c+=E+w,a+=2,o+=2;continue}}if(E==="`"&&!h){for(c+=E,a++,o++;a<i&&n[a]!=="`";){let w=n[a];c+=w,w==="\\"&&a+1<i&&(c+=n[a+1],a++,o++),w===`
41
- `&&(u++,o=0),a++,o++}a<i&&(c+=n[a],a++,o++);continue}c+=E,a++,E===`
42
- `?(u++,o=1):o++}if(this.pos=a,this.column=o,this.line=u,y&&m&&(c=n[t]+c,f=!1,d=!1),h||p){let E=h?"'":'"';throw new ht(`unexpected EOF while looking for matching \`${E}'`,s,r)}if(!m&&c.length>=2){if(c[0]==="'"&&c[c.length-1]==="'"){let E=c.slice(1,-1);!E.includes("'")&&!E.includes('"')&&(c=E,f=!0,d=!0)}else if(c[0]==='"'&&c[c.length-1]==='"'){let E=c.slice(1,-1),w=!1;for(let S=0;S<E.length;S++){if(E[S]==='"'){w=!0;break}E[S]==="\\"&&S+1<E.length&&S++}w||(c=E,f=!0,d=!1)}}if(c==="")return{type:g.WORD,value:"",start:t,end:a,line:s,column:r,quoted:f,singleQuoted:d};let v=Di.get(c);if(!f&&v!==void 0)return{type:v,value:c,start:t,end:a,line:s,column:r};if(!m){let E=Ci(c);if(E>0&&Ii(c.slice(0,E)))return{type:g.ASSIGNMENT_WORD,value:c,start:t,end:a,line:s,column:r,quoted:f,singleQuoted:d}}return/^[0-9]+$/.test(c)?{type:g.NUMBER,value:c,start:t,end:a,line:s,column:r}:xc(c)?{type:g.NAME,value:c,start:t,end:a,line:s,column:r,quoted:f,singleQuoted:d}:{type:g.WORD,value:c,start:t,end:a,line:s,column:r,quoted:f,singleQuoted:d}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let t=this.pendingHeredocs.shift();if(!t)break;let s=this.pos,r=this.line,n=this.column,i="";for(;this.pos<this.input.length;){let a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
13
+ `),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>Es(t)):e.writeFileSync("/proc/self/status",Es(t)),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function La(e,t,n={pid:1,ppid:0,uid:1e3,gid:1e3}){Ou(e)&&(Lu(e,t),Tu(e),Mu(e,n))}function De(e){return{kind:e.kind,elements:new Map(e.elements)}}function ct(e){return new Map(Array.from(e??[],([t,n])=>[t,De(n)]))}function Se(e,t){return e.state.arrays?.get(t)}function Dn(e,t,n="indexed"){e.state.arrays??=new Map;let r=e.state.arrays.get(t);return r||(r={kind:n,elements:new Map},e.state.arrays.set(t,r)),r}function kt(e,t,n){let r=Dn(e,t,n);return r.kind=n,r}function $e(e,t){return e.state.arrays?.has(t)??!1}function se(e,t,n){return Se(e,t)?.elements.get(String(n))}function Nt(e,t,n){return Se(e,t)?.elements.has(String(n))??!1}function F(e,t,n,r,s){let i=Dn(e,t,s),a=String(n);if(!i.elements.has(a)&&i.elements.size>=e.limits.maxArrayElements)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");if(T(r)>e.limits.maxStringLength)throw new $(`array value string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");i.elements.set(a,r)}function jt(e,t,n,r=!1){let s=new Set(r?[]:Se(e,t)?.elements.keys()??[]);for(let i of n)if(s.add(String(i)),s.size>e.limits.maxArrayElements)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements")}function Gt(e,t,n){return Se(e,t)?.elements.delete(String(n))??!1}function Rn(e,t){e.state.arrays?.delete(t),e.state.associativeArrays?.delete(t)}function Ee(e,t){return Array.from(Se(e,t)?.elements.keys()??[]).filter(r=>/^(0|[1-9]\d*)$/.test(r)).map(Number).sort((r,s)=>r-s)}function me(e,t){Dn(e,t,e.state.associativeArrays?.has(t)?"associative":"indexed").elements.clear()}function ut(e,t){return Array.from(Se(e,t)?.elements.keys()??[]).sort()}function cr(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function bs(e){if(e.parts.length<2)return null;let t=e.parts[0],n=e.parts[1];if(t.type!=="Glob"||!t.pattern.startsWith("["))return null;let r,s=n,i=1;if(n.type==="Literal"&&n.value.startsWith("]")){let f=n.value.slice(1);if(f.startsWith("+=")||f.startsWith("="))r=t.pattern.slice(1);else if(f===""){if(e.parts.length<3)return null;let d=e.parts[2];if(d.type!=="Literal"||!d.value.startsWith("=")&&!d.value.startsWith("+="))return null;r=t.pattern.slice(1),s=d,i=2}else return null}else if(t.pattern==="["&&(n.type==="DoubleQuoted"||n.type==="SingleQuoted")){if(e.parts.length<3)return null;let f=e.parts[2];if(f.type!=="Literal"||!f.value.startsWith("]=")&&!f.value.startsWith("]+="))return null;if(n.type==="SingleQuoted")r=n.value;else{r="";for(let d of n.parts)(d.type==="Literal"||d.type==="Escaped")&&(r+=d.value)}s=f,i=2}else if(t.pattern.endsWith("]")){if(n.type!=="Literal"||!n.value.startsWith("=")&&!n.value.startsWith("+="))return null;r=t.pattern.slice(1,-1)}else return null;r=cr(r);let a;if(s.type!=="Literal")return null;s.value.startsWith("]=")||s.value.startsWith("]+=")?a=s.value.slice(1):a=s.value;let o=a.startsWith("+=");if(!o&&!a.startsWith("="))return null;let l=[],c=o?2:1,u=a.slice(c);u&&l.push({type:"Literal",value:u});for(let f=i+1;f<e.parts.length;f++){let d=e.parts[f];d.type==="BraceExpansion"?l.push({type:"Literal",value:Bu(d)}):l.push(d)}return{key:r,valueParts:l,append:o}}function Bu(e){return`{${e.items.map(n=>{if(n.type==="Range"){let r=n.startStr??String(n.start),s=n.endStr??String(n.end),i=`${r}..${s}`;return n.step&&(i+=`..${n.step}`),i}return fn(n.word)}).join(",")}}`}function fn(e){let t="";for(let n of e.parts)switch(n.type){case"Literal":t+=n.value;break;case"Glob":t+=n.pattern;break;case"SingleQuoted":t+=n.value;break;case"DoubleQuoted":for(let r of n.parts)(r.type==="Literal"||r.type==="Escaped")&&(t+=r.value);break;case"Escaped":t+=n.value;break;case"BraceExpansion":t+="{",t+=n.items.map(r=>r.type==="Range"?`${r.startStr}..${r.endStr}${r.step?`..${r.step}`:""}`:fn(r.word)).join(","),t+="}";break;case"TildeExpansion":t+="~",n.user&&(t+=n.user);break}return t}var Wu=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],Fu=["braceexpand","hashall","interactive-comments"];function Ss(e){let t=[],n=[...Fu.map(r=>({name:r,enabled:!0})),...Wu.map(r=>({name:r,enabled:e[r]}))].sort((r,s)=>r.name.localeCompare(s.name));for(let r of n)r.enabled&&t.push(r.name);return t.join(":")}function dn(e){e.state.env.set("SHELLOPTS",Ss(e.state.options))}var Vu=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function As(e){let t=[];for(let n of Vu)e[n]&&t.push(n);return t.join(":")}function vs(e){e.state.env.set("BASHOPTS",As(e.state.shoptOptions))}var L={script(e){return{type:"Script",statements:e}},statement(e,t=[],n=!1,r,s){let i={type:"Statement",pipelines:e,operators:t,background:n};return r&&(i.deferredError=r),s!==void 0&&(i.sourceText=s),i},pipeline(e,t=!1,n=!1,r=!1,s){return{type:"Pipeline",commands:e,negated:t,timed:n,timePosix:r,pipeStderr:s}},simpleCommand(e,t=[],n=[],r=[]){return{type:"SimpleCommand",name:e,args:t,assignments:n,redirections:r}},word(e){return{type:"Word",parts:e}},literal(e){return{type:"Literal",value:e}},singleQuoted(e){return{type:"SingleQuoted",value:e}},doubleQuoted(e){return{type:"DoubleQuoted",parts:e}},escaped(e){return{type:"Escaped",value:e}},parameterExpansion(e,t=null){return{type:"ParameterExpansion",parameter:e,operation:t}},commandSubstitution(e,t=!1){return{type:"CommandSubstitution",body:e,legacy:t}},arithmeticExpansion(e){return{type:"ArithmeticExpansion",expression:e}},assignment(e,t,n=!1,r=null){return{type:"Assignment",name:e,value:t,append:n,array:r}},redirection(e,t,n=null,r){let s={type:"Redirection",fd:n,operator:e,target:t};return r&&(s.fdVariable=r),s},hereDoc(e,t,n=!1,r=!1){return{type:"HereDoc",delimiter:e,content:t,stripTabs:n,quoted:r}},ifNode(e,t=null,n=[]){return{type:"If",clauses:e,elseBody:t,redirections:n}},forNode(e,t,n,r=[]){return{type:"For",variable:e,words:t,body:n,redirections:r}},whileNode(e,t,n=[]){return{type:"While",condition:e,body:t,redirections:n}},untilNode(e,t,n=[]){return{type:"Until",condition:e,body:t,redirections:n}},caseNode(e,t,n=[]){return{type:"Case",word:e,items:t,redirections:n}},caseItem(e,t,n=";;"){return{type:"CaseItem",patterns:e,body:t,terminator:n}},subshell(e,t=[]){return{type:"Subshell",body:e,redirections:t}},group(e,t=[]){return{type:"Group",body:e,redirections:t}},functionDef(e,t,n=[],r){return{type:"FunctionDef",name:e,body:t,redirections:n,sourceFile:r}},conditionalCommand(e,t=[],n){return{type:"ConditionalCommand",expression:e,redirections:t,line:n}},arithmeticCommand(e,t=[],n){return{type:"ArithmeticCommand",expression:e,redirections:t,line:n}}};function Ta(e,t){let n=e.length,r=t+3,s=2,i=!1,a=!1;for(;r<n&&s>0;){let o=e[r];if(i){o==="'"&&(i=!1),r++;continue}if(a){if(o==="\\"){r+=2;continue}o==='"'&&(a=!1),r++;continue}if(o==="'"){i=!0,r++;continue}if(o==='"'){a=!0,r++;continue}if(o==="\\"){r+=2;continue}if(o==="("){s++,r++;continue}if(o===")"){if(s--,s===1){let l=r+1;return!(l<n&&e[l]===")")}if(s===0)return!1;r++;continue}if(s===1&&(o==="|"&&r+1<n&&e[r+1]==="|"||o==="&"&&r+1<n&&e[r+1]==="&"||o==="|"&&r+1<n&&e[r+1]!=="|"))return!0;r++}return!1}function xs(e,t){let n="",r=t,s=i=>i===" "||i===" "||i===`
14
+ `||i===";"||i==="&"||i==="|"||i==="<"||i===">"||i==="("||i===")";for(;r<e.length;){let i=e[r];if(i==="'"){for(r++;r<e.length&&e[r]!=="'";)n+=e[r],r++;r<e.length&&r++;continue}if(i==='"'){for(r++;r<e.length&&e[r]!=='"';)e[r]==="\\"&&r+1<e.length&&r++,n+=e[r],r++;r<e.length&&r++;continue}if(i==="\\"&&r+1<e.length){n+=e[r+1],r+=2;continue}if(s(i))break;n+=i,r++}return{delim:n,endPos:r}}function zu(e,t,n){let r=t+1;for(let{delim:s,stripTabs:i}of n)for(;;){if(r>=e.length)return e.length;let a=e.indexOf(`
15
+ `,r);a===-1&&(a=e.length);let o=e.slice(r,a);if(i&&(o=o.replace(/^\t+/,"")),o===s){r=a+1;break}if(a>=e.length)return e.length;r=a+1}return Math.min(r,e.length)}function Ma(e,t,n,r){let s=t+2,i=1,a=s,o=!1,l=!1,c=0,u=!1,f="",d=[],p=0;for(;a<e.length&&i>0;){let b=e[a];if(o)b==="'"&&(o=!1);else if(l)b==="\\"&&a+1<e.length?a++:b==='"'&&(l=!1);else{if(b==="("&&e[a+1]==="("?p++:b===")"&&e[a+1]===")"&&p>0&&p--,p===0&&b==="<"&&e[a+1]==="<"&&e[a+2]!=="<"){let g=a+2,w=!1;for(e[g]==="-"&&(w=!0,g++);e[g]===" "||e[g]===" ";)g++;let{delim:S,endPos:v}=xs(e,g);if(S.length>0){d.push({delim:S,stripTabs:w}),f="",a=v;continue}}if(b===`
16
+ `&&d.length>0){let g=zu(e,a,d);d.length=0,f="",a=g;continue}b==="'"?(o=!0,f=""):b==='"'?(l=!0,f=""):b==="\\"&&a+1<e.length?(a++,f=""):/[a-zA-Z_]/.test(b)?f+=b:(f==="case"?(c++,u=!1):f==="in"&&c>0?u=!0:f==="esac"&&c>0&&(c--,u=!1),f="",b==="("?a>0&&e[a-1]==="$"?i++:u||i++:b===")"?u?u=!1:i--:b===";"&&c>0&&a+1<e.length&&e[a+1]===";"&&(u=!0))}i>0&&a++}i>0&&r("unexpected EOF while looking for matching `)'");let h=e.slice(s,a),E=n().parse(h);return{part:L.commandSubstitution(E,!1),endIndex:a+1}}function Ba(e,t,n,r,s){let a=t+1,o="";for(;a<e.length&&e[a]!=="`";)if(e[a]==="\\"){let u=e[a+1];u==="$"||u==="`"||u==="\\"||u===`
17
+ `||n&&u==='"'?(u!==`
18
+ `&&(o+=u),a+=2):(o+=e[a],a++)}else o+=e[a],a++;a>=e.length&&s("unexpected EOF while looking for matching ``'");let c=r().parse(o);return{part:L.commandSubstitution(c,!0),endIndex:a+1}}var qu=10485760,y;(function(e){e.EOF="EOF",e.NEWLINE="NEWLINE",e.SEMICOLON="SEMICOLON",e.AMP="AMP",e.PIPE="PIPE",e.PIPE_AMP="PIPE_AMP",e.AND_AND="AND_AND",e.OR_OR="OR_OR",e.BANG="BANG",e.LESS="LESS",e.GREAT="GREAT",e.DLESS="DLESS",e.DGREAT="DGREAT",e.LESSAND="LESSAND",e.GREATAND="GREATAND",e.LESSGREAT="LESSGREAT",e.DLESSDASH="DLESSDASH",e.CLOBBER="CLOBBER",e.TLESS="TLESS",e.AND_GREAT="AND_GREAT",e.AND_DGREAT="AND_DGREAT",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.DSEMI="DSEMI",e.SEMI_AND="SEMI_AND",e.SEMI_SEMI_AND="SEMI_SEMI_AND",e.DBRACK_START="DBRACK_START",e.DBRACK_END="DBRACK_END",e.DPAREN_START="DPAREN_START",e.DPAREN_END="DPAREN_END",e.IF="IF",e.THEN="THEN",e.ELSE="ELSE",e.ELIF="ELIF",e.FI="FI",e.FOR="FOR",e.WHILE="WHILE",e.UNTIL="UNTIL",e.DO="DO",e.DONE="DONE",e.CASE="CASE",e.ESAC="ESAC",e.IN="IN",e.FUNCTION="FUNCTION",e.SELECT="SELECT",e.TIME="TIME",e.COPROC="COPROC",e.WORD="WORD",e.NAME="NAME",e.NUMBER="NUMBER",e.ASSIGNMENT_WORD="ASSIGNMENT_WORD",e.FD_VARIABLE="FD_VARIABLE",e.COMMENT="COMMENT",e.HEREDOC_CONTENT="HEREDOC_CONTENT"})(y||(y={}));var Pt=class extends Error{line;column;constructor(t,n,r){super(`line ${n}: ${t}`),this.line=n,this.column=r,this.name="LexerError"}},Wa=new Map([["if",y.IF],["then",y.THEN],["else",y.ELSE],["elif",y.ELIF],["fi",y.FI],["for",y.FOR],["while",y.WHILE],["until",y.UNTIL],["do",y.DO],["done",y.DONE],["case",y.CASE],["esac",y.ESAC],["in",y.IN],["function",y.FUNCTION],["select",y.SELECT],["time",y.TIME],["coproc",y.COPROC]]);function Fa(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return!1;let n=e.slice(t[0].length);if(n===""||n==="+")return!0;if(n[0]==="["){let r=0,s=0;for(;s<n.length;s++)if(n[s]==="[")r++;else if(n[s]==="]"&&(r--,r===0))break;if(r!==0||s>=n.length)return!1;let i=n.slice(s+1);return i===""||i==="+"}return!1}function Va(e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];if(r==="[")t++;else if(r==="]")t--;else{if(t===0&&r==="=")return n;if(t===0&&r==="+"&&e[n+1]==="=")return n+1}}return-1}var Uu=[[";",";","&",y.SEMI_SEMI_AND],["<","<","<",y.TLESS],["&",">",">",y.AND_DGREAT]],ju=[["[","[",y.DBRACK_START],["]","]",y.DBRACK_END],["(","(",y.DPAREN_START],[")",")",y.DPAREN_END],["&","&",y.AND_AND],["|","|",y.OR_OR],[";",";",y.DSEMI],[";","&",y.SEMI_AND],["|","&",y.PIPE_AMP],[">",">",y.DGREAT],["<","&",y.LESSAND],[">","&",y.GREATAND],["<",">",y.LESSGREAT],[">","|",y.CLOBBER],["&",">",y.AND_GREAT]],Gu=new Map([["|",y.PIPE],["&",y.AMP],[";",y.SEMICOLON],["(",y.LPAREN],[")",y.RPAREN],["<",y.LESS],[">",y.GREAT]]);function Zu(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function za(e){return e===" "||e===" "||e===`
19
+ `||e===";"||e==="&"||e==="|"||e==="("||e===")"||e==="<"||e===">"}var ur=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];dparenDepth=0;maxHeredocSize;constructor(t,n){this.input=t,this.maxHeredocSize=n?.maxHeredocSize??qu}tokenize(){let n=this.input.length,r=this.tokens,s=this.pendingHeredocs;for(;this.pos<n;){if(s.length>0&&r.length>0&&r[r.length-1].type===y.NEWLINE){this.readHeredocContent();continue}if(this.skipWhitespace(),this.pos>=n)break;let i=this.nextToken();i&&r.push(i)}return r.push({type:y.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),r}skipWhitespace(){let t=this.input,n=t.length,r=this.pos,s=this.column,i=this.line;for(;r<n;){let a=t[r];if(a===" "||a===" ")r++,s++;else if(a==="\\"&&t[r+1]===`
20
+ `)r+=2,i++,s=1;else break}this.pos=r,this.column=s,this.line=i}nextToken(){let t=this.input,n=this.pos,r=this.line,s=this.column,i=t[n],a=t[n+1],o=t[n+2];if(i==="#"&&this.dparenDepth===0)return this.readComment(n,r,s);if(i===`
21
+ `)return this.pos=n+1,this.line++,this.column=1,{type:y.NEWLINE,value:`
22
+ `,start:n,end:n+1,line:r,column:s};if(i==="<"&&a==="<"&&o==="-")return this.pos=n+3,this.column=s+3,this.registerHeredocFromLookahead(!0),this.makeToken(y.DLESSDASH,"<<-",n,r,s);for(let[c,u,f,d]of Uu)if(i===c&&a===u&&o===f)return this.pos=n+3,this.column=s+3,this.makeToken(d,c+u+f,n,r,s);if(i==="<"&&a==="<")return this.pos=n+2,this.column=s+2,this.registerHeredocFromLookahead(!1),this.makeToken(y.DLESS,"<<",n,r,s);if(i==="("&&a==="(")return this.dparenDepth>0?(this.pos=n+1,this.column=s+1,this.dparenDepth++,this.makeToken(y.LPAREN,"(",n,r,s)):this.looksLikeNestedSubshells(n+2)||this.dparenClosesWithSpacedParens(n+2)?(this.pos=n+1,this.column=s+1,this.makeToken(y.LPAREN,"(",n,r,s)):(this.pos=n+2,this.column=s+2,this.dparenDepth=1,this.makeToken(y.DPAREN_START,"((",n,r,s));if(i===")"&&a===")")return this.dparenDepth===1?(this.pos=n+2,this.column=s+2,this.dparenDepth=0,this.makeToken(y.DPAREN_END,"))",n,r,s)):this.dparenDepth>1?(this.pos=n+1,this.column=s+1,this.dparenDepth--,this.makeToken(y.RPAREN,")",n,r,s)):(this.pos=n+1,this.column=s+1,this.makeToken(y.RPAREN,")",n,r,s));for(let[c,u,f]of ju)if(!(c==="("&&u==="("||c===")"&&u===")")&&!(this.dparenDepth>0&&c===";"&&(f===y.DSEMI||f===y.SEMI_AND||f===y.SEMI_SEMI_AND))&&i===c&&a===u){if(f===y.DBRACK_START||f===y.DBRACK_END){let d=t[n+2];if(d!==void 0&&d!==" "&&d!==" "&&d!==`
23
+ `&&d!==";"&&d!=="&"&&d!=="|"&&d!=="("&&d!==")"&&d!=="<"&&d!==">")break}return this.pos=n+2,this.column=s+2,this.makeToken(f,c+u,n,r,s)}if(i==="("&&this.dparenDepth>0)return this.pos=n+1,this.column=s+1,this.dparenDepth++,this.makeToken(y.LPAREN,"(",n,r,s);if(i===")"&&this.dparenDepth>1)return this.pos=n+1,this.column=s+1,this.dparenDepth--,this.makeToken(y.RPAREN,")",n,r,s);let l=Gu.get(i);if(l!==void 0)return this.pos=n+1,this.column=s+1,this.makeToken(l,i,n,r,s);if(i==="{"){let c=this.scanFdVariable(n);return c!==null?(this.pos=c.end,this.column=s+(c.end-n),{type:y.FD_VARIABLE,value:c.varname,start:n,end:c.end,line:r,column:s}):a==="}"?(this.pos=n+2,this.column=s+2,{type:y.WORD,value:"{}",start:n,end:n+2,line:r,column:s,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(n)!==null?this.readWordWithBraceExpansion(n,r,s):this.scanLiteralBraceWord(n)!==null?this.readWordWithBraceExpansion(n,r,s):a!==void 0&&a!==" "&&a!==" "&&a!==`
24
+ `?this.readWord(n,r,s):(this.pos=n+1,this.column=s+1,this.makeToken(y.LBRACE,"{",n,r,s))}return i==="}"?this.isWordCharFollowing(n+1)?this.readWord(n,r,s):(this.pos=n+1,this.column=s+1,this.makeToken(y.RBRACE,"}",n,r,s)):i==="!"?a==="="?(this.pos=n+2,this.column=s+2,this.makeToken(y.WORD,"!=",n,r,s)):(this.pos=n+1,this.column=s+1,this.makeToken(y.BANG,"!",n,r,s)):this.readWord(n,r,s)}looksLikeNestedSubshells(t){let n=this.input,r=n.length,s=t;for(;s<r&&(n[s]===" "||n[s]===" ");)s++;if(s>=r)return!1;let i=n[s];if(i==="(")return this.looksLikeNestedSubshells(s+1);let a=/[a-zA-Z_]/.test(i),o=i==="!"||i==="[";if(!a&&!o)return!1;let l=s;for(;l<r&&/[a-zA-Z0-9_\-.]/.test(n[l]);)l++;if(l===s)return o;let c=l;for(;c<r&&(n[c]===" "||n[c]===" ");)c++;if(c>=r)return!1;let u=n[c];if(u==="="&&n[c+1]!=="="||u===`
25
+ `||l===c&&/[+\-*/%<>&|^!~?:]/.test(u)&&u!=="-"||u===")"&&n[c+1]===")")return!1;if(c>l&&(u==="-"||u==='"'||u==="'"||u==="$"||/[a-zA-Z_/.]/.test(u))){let f=c;for(;f<r&&n[f]!==`
26
+ `;){if(n[f]===")")return!0;f++}return!1}if(u===")"){let f=c+1;for(;f<r&&(n[f]===" "||n[f]===" ");)f++;if(n[f]==="|"&&n[f+1]==="|"||n[f]==="&"&&n[f+1]==="&"||n[f]===";"||n[f]==="|"&&n[f+1]!=="|")return!0}return!1}makeToken(t,n,r,s,i){return{type:t,value:n,start:r,end:this.pos,line:s,column:i}}readComment(t,n,r){let s=this.input,i=s.length,a=this.pos;for(;a<i&&s[a]!==`
27
+ `;)a++;let o=s.slice(t,a);return this.pos=a,this.column=r+(a-t),{type:y.COMMENT,value:o,start:t,end:a,line:n,column:r}}readWord(t,n,r){let s=this.input,i=s.length,a=this.pos,o=a;for(;a<i;){let w=s[a];if(w===" "||w===" "||w===`
28
+ `||w===";"||w==="&"||w==="|"||w==="("||w===")"||w==="<"||w===">"||w==="'"||w==='"'||w==="\\"||w==="$"||w==="`"||w==="{"||w==="}"||w==="~"||w==="*"||w==="?"||w==="[")break;a++}if(a>o){let w=s[a];if(!(w==="("&&a>o&&"@*+?!".includes(s[a-1]))){if(a>=i||w===" "||w===" "||w===`
29
+ `||w===";"||w==="&"||w==="|"||w==="("||w===")"||w==="<"||w===">"){let S=s.slice(o,a);this.pos=a,this.column=r+(a-o);let v=Wa.get(S);if(v!==void 0)return{type:v,value:S,start:t,end:a,line:n,column:r};let A=Va(S);return A>0&&Fa(S.slice(0,A))?{type:y.ASSIGNMENT_WORD,value:S,start:t,end:a,line:n,column:r}:/^[0-9]+$/.test(S)?{type:y.NUMBER,value:S,start:t,end:a,line:n,column:r}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(S)?{type:y.NAME,value:S,start:t,end:a,line:n,column:r,quoted:!1,singleQuoted:!1}:{type:y.WORD,value:S,start:t,end:a,line:n,column:r,quoted:!1,singleQuoted:!1}}}}a=this.pos;let l=this.column,c=this.line,u="",f=!1,d=!1,p=!1,h=!1,m=s[a]==='"'||s[a]==="'",E=!1,b=0;for(;a<i;){let w=s[a];if(!p&&!h){if(w==="("&&u.length>0&&"@*+?!".includes(u[u.length-1])){let S=this.scanExtglobPattern(a);if(S!==null){u+=S.content,a=S.end,l+=S.content.length;continue}}if(w==="["&&b===0){if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)){let S=a+1<i?s[a+1]:"";if(S==="^"||S==="!"){u+=w,a++,l++;continue}b=1,u+=w,a++,l++;continue}}else if(w==="["&&b>0){u.length>0&&u[u.length-1]!=="\\"&&b++,u+=w,a++,l++;continue}else if(w==="]"&&b>0){u.length>0&&u[u.length-1]!=="\\"&&b--,u+=w,a++,l++;continue}if(b>0){if(w===`
30
+ `)break;u+=w,a++,l++;continue}if(w===" "||w===" "||w===`
31
+ `||w===";"||w==="&"||w==="|"||w==="("||w===")"||w==="<"||w===">")break}if(w==="$"&&a+1<i&&s[a+1]==="'"&&!p&&!h){for(u+="$'",a+=2,l+=2;a<i&&s[a]!=="'";)s[a]==="\\"&&a+1<i?(u+=s[a]+s[a+1],a+=2,l+=2):(u+=s[a],a++,l++);a<i&&(u+="'",a++,l++);continue}if(w==="$"&&a+1<i&&s[a+1]==='"'&&!p&&!h){a++,l++,h=!0,f=!0,u===""&&(m=!0),a++,l++;continue}if(w==="'"&&!h){if(p)if(p=!1,!m||E)u+=w;else{let S=a+1<i?s[a+1]:"";S&&!za(S)&&S!=="'"&&(S==='"'?(E=!0,u+=w,d=!1,f=!1):(E=!0,u+=w))}else p=!0,m&&!E?(d=!0,f=!0):u+=w;a++,l++;continue}if(w==='"'&&!p){if(h)if(h=!1,!m||E)u+=w;else{let S=a+1<i?s[a+1]:"";S&&!za(S)&&S!=='"'&&(S==="'"?(E=!0,u+=w,d=!1,f=!1):(E=!0,u+=w))}else h=!0,m&&!E?f=!0:u+=w;a++,l++;continue}if(w==="\\"&&!p&&a+1<i){let S=s[a+1];if(S===`
32
+ `){a+=2,c++,l=1;continue}if(h){if(S==='"'||S==="\\"||S==="$"||S==="`"||S===`
33
+ `){if(S===`
34
+ `){a+=2,l=1,c++;continue}u+=w+S,a+=2,l+=2;continue}}else{S==="\\"||S==='"'||S==="'"||S==="`"||S==="*"||S==="?"||S==="["||S==="]"||S==="("||S===")"||S==="$"||S==="-"||S==="."||S==="^"||S==="+"||S==="{"||S==="}"?u+=w+S:u+=S,a+=2,l+=2;continue}}if(w==="$"&&a+1<i&&s[a+1]==="("&&!p){u+=w,a++,l++,u+=s[a],a++,l++;let S=1,v=!1,A=!1,x=0,P=!1,D="",I=[],O=s[a]==="("&&!this.dollarDparenIsSubshell(a),B=O?1:0;for(;S>0&&a<i;){let Y=s[a];if(u+=Y,v)Y==="'"&&(v=!1);else if(A)Y==="\\"&&a+1<i?(u+=s[a+1],a++,l++):Y==='"'&&(A=!1);else{if(Y==="("&&s[a+1]==="("?B++:Y===")"&&s[a+1]===")"&&B>0&&B--,B===0&&Y==="<"&&s[a+1]==="<"&&s[a+2]!=="<"){let J=a+2,C=!1;for(s[J]==="-"&&(C=!0,J++);s[J]===" "||s[J]===" ";)J++;let{delim:k,endPos:N}=xs(s,J);if(k.length>0){u+=s.slice(a+1,N),l+=N-a,I.push({delim:k,stripTabs:C}),a=N;continue}}if(Y===`
35
+ `&&I.length>0){c++,l=0;let J=a+1;for(let{delim:C,stripTabs:k}of I)for(;!(J>=i);){let N=s.indexOf(`
36
+ `,J);N===-1&&(N=i);let M=s.slice(J,N),G=k?M.replace(/^\t+/,""):M;u+=s.slice(J,Math.min(N+1,i)),N<i&&c++;let q=N>=i;if(J=N+1,G===C||q)break}I.length=0,l=0,a=Math.min(J,i);continue}if(Y==="'")v=!0,D="";else if(Y==='"')A=!0,D="";else if(Y==="\\"&&a+1<i)u+=s[a+1],a++,l++,D="";else if(Y==="$"&&a+1<i&&s[a+1]==="{"){a++,l++,u+=s[a],a++,l++;let J=1,C=!1,k=!1;for(;J>0&&a<i;){let N=s[a];if(N==="\\"&&a+1<i&&!C){u+=N,a++,l++,u+=s[a],a++,l++;continue}u+=N,C?N==="'"&&(C=!1):k?N==='"'&&(k=!1):N==="'"?C=!0:N==='"'?k=!0:N==="{"?J++:N==="}"&&J--,N===`
37
+ `?(c++,l=0):l++,a++}D="";continue}else if(Y==="#"&&!O&&(D===""||/\s/.test(s[a-1]||""))){for(;a+1<i&&s[a+1]!==`
38
+ `;)a++,l++,u+=s[a];D=""}else/[a-zA-Z_]/.test(Y)?D+=Y:(D==="case"?(x++,P=!1):D==="in"&&x>0?P=!0:D==="esac"&&x>0&&(x--,P=!1),D="",Y==="("?a>0&&s[a-1]==="$"?S++:P||S++:Y===")"?P?P=!1:S--:Y===";"&&x>0&&(a+1<i&&s[a+1]===";"||a+1<i&&s[a+1]==="&")&&(P=!0))}Y===`
39
+ `&&(c++,l=0,D=""),a++,l++}continue}if(w==="$"&&a+1<i&&s[a+1]==="["&&!p){u+=w,a++,l++,u+=s[a],a++,l++;let S=1;for(;S>0&&a<i;){let v=s[a];u+=v,v==="["?S++:v==="]"?S--:v===`
40
+ `&&(c++,l=0),a++,l++}continue}if(w==="$"&&a+1<i&&s[a+1]==="{"&&!p){u+=w,a++,l++,u+=s[a],a++,l++;let S=1,v=!1,A=!1,x=c,P=l,D=c,I=l;for(;S>0&&a<i;){let O=s[a];if(O==="\\"&&a+1<i&&s[a+1]===`
41
+ `){a+=2,c++,l=1;continue}if(O==="\\"&&a+1<i&&!v){u+=O,a++,l++,u+=s[a],a++,l++;continue}u+=O,v?O==="'"&&(v=!1):A?O==='"'&&(A=!1):O==="'"?(v=!0,x=c,P=l):O==='"'?(A=!0,D=c,I=l):O==="{"?S++:O==="}"&&S--,O===`
42
+ `&&(c++,l=0),a++,l++}if(v)throw new Pt("unexpected EOF while looking for matching `''",x,P);if(A)throw new Pt("unexpected EOF while looking for matching `\"'",D,I);continue}if(w==="$"&&a+1<i&&!p){let S=s[a+1];if(S==="#"||S==="?"||S==="$"||S==="!"||S==="@"||S==="*"||S==="-"||S>="0"&&S<="9"){u+=w+S,a+=2,l+=2;continue}}if(w==="`"&&!p){for(u+=w,a++,l++;a<i&&s[a]!=="`";){let S=s[a];u+=S,S==="\\"&&a+1<i&&(u+=s[a+1],a++,l++),S===`
43
+ `&&(c++,l=0),a++,l++}a<i&&(u+=s[a],a++,l++);continue}u+=w,a++,w===`
44
+ `?(c++,l=1):l++}if(this.pos=a,this.column=l,this.line=c,E&&m&&(u=s[t]+u,f=!1,d=!1),p||h){let w=p?"'":'"';throw new Pt(`unexpected EOF while looking for matching \`${w}'`,n,r)}if(!m&&u.length>=2){if(u[0]==="'"&&u[u.length-1]==="'"){let w=u.slice(1,-1);!w.includes("'")&&!w.includes('"')&&(u=w,f=!0,d=!0)}else if(u[0]==='"'&&u[u.length-1]==='"'){let w=u.slice(1,-1),S=!1;for(let v=0;v<w.length;v++){if(w[v]==='"'){S=!0;break}w[v]==="\\"&&v+1<w.length&&v++}S||(u=w,f=!0,d=!1)}}if(u==="")return{type:y.WORD,value:"",start:t,end:a,line:n,column:r,quoted:f,singleQuoted:d};let g=Wa.get(u);if(!f&&g!==void 0)return{type:g,value:u,start:t,end:a,line:n,column:r};if(!m){let w=Va(u);if(w>0&&Fa(u.slice(0,w)))return{type:y.ASSIGNMENT_WORD,value:u,start:t,end:a,line:n,column:r,quoted:f,singleQuoted:d}}return/^[0-9]+$/.test(u)?{type:y.NUMBER,value:u,start:t,end:a,line:n,column:r}:Zu(u)?{type:y.NAME,value:u,start:t,end:a,line:n,column:r,quoted:f,singleQuoted:d}:{type:y.WORD,value:u,start:t,end:a,line:n,column:r,quoted:f,singleQuoted:d}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let t=this.pendingHeredocs.shift();if(!t)break;let n=this.pos,r=this.line,s=this.column,i="";for(;this.pos<this.input.length;){let a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
43
45
  `;)a+=this.input[this.pos],this.pos++,this.column++;if((t.stripTabs?a.replace(/^\t+/,""):a)===t.delimiter){this.pos<this.input.length&&this.input[this.pos]===`
44
- `&&(this.pos++,this.line++,this.column=1);break}if(i+=a,i.length>this.maxHeredocSize)throw new ht(`Heredoc size limit exceeded (${this.maxHeredocSize} bytes)`,r,n);this.pos<this.input.length&&this.input[this.pos]===`
46
+ `&&(this.pos++,this.line++,this.column=1);break}if(i+=a,i.length>this.maxHeredocSize)throw new Pt(`Heredoc size limit exceeded (${this.maxHeredocSize} bytes)`,r,s);this.pos<this.input.length&&this.input[this.pos]===`
45
47
  `&&(i+=`
46
- `,this.pos++,this.line++,this.column=1)}this.tokens.push({type:g.HEREDOC_CONTENT,value:i,start:s,end:this.pos,line:r,column:n})}}addPendingHeredoc(t,s,r){this.pendingHeredocs.push({delimiter:t,stripTabs:s,quoted:r})}registerHeredocFromLookahead(t){let s=this.pos,r=this.column;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]===" ");)this.pos++,this.column++;let n="",i=!1;for(;this.pos<this.input.length;){let a=this.input[this.pos];if(/[\s;<>&|()]/.test(a))break;if(a==="'"||a==='"'){i=!0;let l=a;for(this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]!==l;)n+=this.input[this.pos],this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]===l&&(this.pos++,this.column++)}else a==="\\"?(i=!0,this.pos++,this.column++,this.pos<this.input.length&&(n+=this.input[this.pos],this.pos++,this.column++)):(n+=a,this.pos++,this.column++)}this.pos=s,this.column=r,n&&this.pendingHeredocs.push({delimiter:n,stripTabs:t,quoted:i})}isWordCharFollowing(t){if(t>=this.input.length)return!1;let s=this.input[t];return!(s===" "||s===" "||s===`
47
- `||s===";"||s==="&"||s==="|"||s==="("||s===")"||s==="<"||s===">")}readWordWithBraceExpansion(t,s,r){let n=this.input,i=n.length,a=t,l=r;for(;a<i;){let u=n[a];if(u===" "||u===" "||u===`
48
- `||u===";"||u==="&"||u==="|"||u==="("||u===")"||u==="<"||u===">")break;if(u==="{"){if(this.scanBraceExpansion(a)!==null){let f=1;for(a++,l++;a<i&&f>0;)n[a]==="{"?f++:n[a]==="}"&&f--,a++,l++;continue}a++,l++;continue}if(u==="}"){a++,l++;continue}if(u==="$"&&a+1<i&&n[a+1]==="("){a++,l++,a++,l++;let c=1;for(;c>0&&a<i;)n[a]==="("?c++:n[a]===")"&&c--,a++,l++;continue}if(u==="$"&&a+1<i&&n[a+1]==="{"){a++,l++,a++,l++;let c=1;for(;c>0&&a<i;)n[a]==="{"?c++:n[a]==="}"&&c--,a++,l++;continue}if(u==="`"){for(a++,l++;a<i&&n[a]!=="`";)n[a]==="\\"&&a+1<i?(a+=2,l+=2):(a++,l++);a<i&&(a++,l++);continue}a++,l++}let o=n.slice(t,a);return this.pos=a,this.column=l,{type:g.WORD,value:o,start:t,end:a,line:s,column:r,quoted:!1,singleQuoted:!1}}scanBraceExpansion(t){let s=this.input,r=s.length,n=t+1,i=1,a=!1,l=!1;for(;n<r&&i>0;){let o=s[n];if(o==="{")i++,n++;else if(o==="}")i--,n++;else if(o===","&&i===1)a=!0,n++;else if(o==="."&&n+1<r&&s[n+1]===".")l=!0,n+=2;else{if(o===" "||o===" "||o===`
49
- `||o===";"||o==="&"||o==="|")return null;n++}}return i===0&&(a||l)?s.slice(t,n):null}scanLiteralBraceWord(t){let s=this.input,r=s.length,n=t+1,i=1;for(;n<r&&i>0;){let a=s[n];if(a==="{")i++,n++;else if(a==="}"){if(i--,i===0)return s.slice(t,n+1);n++}else{if(a===" "||a===" "||a===`
50
- `||a===";"||a==="&"||a==="|")return null;n++}}return null}scanExtglobPattern(t){let s=this.input,r=s.length,n=t+1,i=1;for(;n<r&&i>0;){let a=s[n];if(a==="\\"&&n+1<r){n+=2;continue}if("@*+?!".includes(a)&&n+1<r&&s[n+1]==="("){n++,i++,n++;continue}if(a==="(")i++,n++;else if(a===")")i--,n++;else{if(a===`
51
- `)return null;n++}}return i===0?{content:s.slice(t,n),end:n}:null}scanFdVariable(t){let s=this.input,r=s.length,n=t+1,i=n;for(;n<r;){let c=s[n];if(n===i){if(!(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="_"))return null}else if(!(c>="a"&&c<="z"||c>="A"&&c<="Z"||c>="0"&&c<="9"||c==="_"))break;n++}if(n===i)return null;let a=s.slice(i,n);if(n>=r||s[n]!=="}"||(n++,n>=r))return null;let l=s[n],o=n+1<r?s[n+1]:"";return l===">"||l==="<"||l==="&"&&(o===">"||o==="<")?{varname:a,end:n}:null}dollarDparenIsSubshell(t){let s=this.input,r=s.length,n=t+1,i=2,a=!1,l=!1,o=!1;for(;n<r&&i>0;){let u=s[n];if(a){u==="'"&&(a=!1),u===`
52
- `&&(o=!0),n++;continue}if(l){if(u==="\\"){n+=2;continue}u==='"'&&(l=!1),u===`
53
- `&&(o=!0),n++;continue}if(u==="'"){a=!0,n++;continue}if(u==='"'){l=!0,n++;continue}if(u==="\\"){n+=2;continue}if(u===`
54
- `&&(o=!0),u==="("){i++,n++;continue}if(u===")"){if(i--,i===1){let c=n+1;if(c<r&&s[c]===")")return!1;let f=c,d=!1;for(;f<r&&(s[f]===" "||s[f]===" "||s[f]===`
55
- `);)d=!0,f++;if(d&&f<r&&s[f]===")"||o)return!0}if(i===0)return!1;n++;continue}n++}return!1}dparenClosesWithSpacedParens(t){let s=this.input,r=s.length,n=t,i=2,a=!1,l=!1;for(;n<r&&i>0;){let o=s[n];if(a){o==="'"&&(a=!1),n++;continue}if(l){if(o==="\\"){n+=2;continue}o==='"'&&(l=!1),n++;continue}if(o==="'"){a=!0,n++;continue}if(o==='"'){l=!0,n++;continue}if(o==="\\"){n+=2;continue}if(o==="("){i++,n++;continue}if(o===")"){if(i--,i===1){let u=n+1;if(u<r&&s[u]===")")return!1;let c=u,f=!1;for(;c<r&&(s[c]===" "||s[c]===" "||s[c]===`
56
- `);)f=!0,c++;if(f&&c<r&&s[c]===")")return!0}if(i===0)return!1;n++;continue}if(i===1&&(o==="|"&&n+1<r&&s[n+1]==="|"||o==="&"&&n+1<r&&s[n+1]==="&"||o==="|"&&n+1<r&&s[n+1]!=="|"))return!0;n++}return!1}};var Cn=1e6,xn=1e5,Ri=1e6,Rn=200,Oi=new Set([g.LESS,g.GREAT,g.DLESS,g.DGREAT,g.LESSAND,g.GREATAND,g.LESSGREAT,g.DLESSDASH,g.CLOBBER,g.TLESS,g.AND_GREAT,g.AND_DGREAT]),Li=new Set([g.LESS,g.GREAT,g.DLESS,g.DGREAT,g.LESSAND,g.GREATAND,g.LESSGREAT,g.DLESSDASH,g.CLOBBER,g.TLESS]),Ti=new Set([g.LESS,g.GREAT,g.DLESS,g.DGREAT,g.LESSAND,g.GREATAND,g.LESSGREAT,g.DLESSDASH,g.CLOBBER,g.TLESS,g.AND_GREAT,g.AND_DGREAT]),ye=class extends Error{line;column;token;constructor(t,s,r,n=void 0){super(`Parse error at ${s}:${r}: ${t}`),this.line=s,this.column=r,this.token=n,this.name="ParseException"}};function oe(e,t){for(;t<e.length;){if(e[t]==="\\"&&e[t+1]===`
57
- `){t+=2;continue}if(/\s/.test(e[t])){t++;continue}break}return t}var Ns=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];function es(e){if(e.includes("#")){let[s,r]=e.split("#"),n=Number.parseInt(s,10);if(n<2||n>64)return Number.NaN;if(n<=36){let a=Number.parseInt(r,n);return a>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:a}let i=0;for(let a of r){let l;if(/[0-9]/.test(a))l=a.charCodeAt(0)-48;else if(/[a-z]/.test(a))l=a.charCodeAt(0)-97+10;else if(/[A-Z]/.test(a))l=a.charCodeAt(0)-65+36;else if(a==="@")l=62;else if(a==="_")l=63;else return Number.NaN;if(l>=n)return Number.NaN;if(i=i*n+l,i>Number.MAX_SAFE_INTEGER)return Number.MAX_SAFE_INTEGER}return i}if(e.startsWith("0x")||e.startsWith("0X")){let s=Number.parseInt(e.slice(2),16);return s>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:s}if(e.startsWith("0")&&e.length>1&&/^[0-9]+$/.test(e)){if(/[89]/.test(e))return Number.NaN;let s=Number.parseInt(e,8);return s>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:s}let t=Number.parseInt(e,10);return t>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t}function Wi(e,t,s,r){if(s.slice(r,r+3)!=="$((")return null;let n=r+3,i=1,a=n;for(;n<s.length-1&&i>0;)s[n]==="("&&s[n+1]==="("?(i++,n+=2):s[n]===")"&&s[n+1]===")"?(i--,i>0&&(n+=2)):n++;let l=s.slice(a,n),{expr:o}=e(t,l,0);return n+=2,{expr:{type:"ArithNested",expression:o},pos:n}}function Mi(e,t){if(e.slice(t,t+2)!=="$'")return null;let s=t+2,r="";for(;s<e.length&&e[s]!=="'";)if(e[s]==="\\"&&s+1<e.length){let i=e[s+1];switch(i){case"n":r+=`
58
- `;break;case"t":r+=" ";break;case"r":r+="\r";break;case"\\":r+="\\";break;case"'":r+="'";break;default:r+=i}s+=2}else r+=e[s],s++;e[s]==="'"&&s++;let n=Number.parseInt(r,10);return{expr:{type:"ArithNumber",value:Number.isNaN(n)?0:n},pos:s}}function Fi(e,t){if(e.slice(t,t+2)!=='$"')return null;let s=t+2,r="";for(;s<e.length&&e[s]!=='"';)e[s]==="\\"&&s+1<e.length?(r+=e[s+1],s+=2):(r+=e[s],s++);e[s]==='"'&&s++;let n=Number.parseInt(r,10);return{expr:{type:"ArithNumber",value:Number.isNaN(n)?0:n},pos:s}}function Rc(e){let t="",s=0;for(;s<e.length;)if(e[s]==='"'){for(s++;s<e.length&&e[s]!=='"';)e[s]==="\\"&&s+1<e.length?(t+=e[s+1],s+=2):(t+=e[s],s++);s<e.length&&s++}else t+=e[s],s++;return t}function X(e,t){let s=Rc(t),{expr:r,pos:n}=Oe(e,s,0),i=oe(s,n);if(i<s.length){let a=t.slice(i).trim();if(a)return{type:"ArithmeticExpression",originalText:t,expression:{type:"ArithSyntaxError",errorToken:a,message:`${a}: syntax error: invalid arithmetic operator (error token is "${a}")`}}}return{type:"ArithmeticExpression",expression:r,originalText:t}}function Ne(e,t){return{expr:{type:"ArithSyntaxError",errorToken:e,message:`syntax error: operand expected (error token is "${e}")`},pos:t}}function ke(e,t){return oe(e,t)>=e.length}function Oe(e,t,s){return Oc(e,t,s)}function Oc(e,t,s){let{expr:r,pos:n}=ts(e,t,s);for(n=oe(t,n);t[n]===",";){if(n++,ke(t,n))return Ne(",",n);let{expr:a,pos:l}=ts(e,t,n);r={type:"ArithBinary",operator:",",left:r,right:a},n=oe(t,l)}return{expr:r,pos:n}}function ts(e,t,s){let{expr:r,pos:n}=Lc(e,t,s);if(n=oe(t,n),t[n]==="?"){n++;let{expr:i,pos:a}=Oe(e,t,n);if(n=oe(t,a),t[n]===":"){n++;let{expr:l,pos:o}=Oe(e,t,n);return{expr:{type:"ArithTernary",condition:r,consequent:i,alternate:l},pos:o}}}return{expr:r,pos:n}}function Lc(e,t,s){let{expr:r,pos:n}=Vi(e,t,s);for(;n=oe(t,n),t.slice(n,n+2)==="||";){if(n+=2,ke(t,n))return Ne("||",n);let{expr:a,pos:l}=Vi(e,t,n);r={type:"ArithBinary",operator:"||",left:r,right:a},n=l}return{expr:r,pos:n}}function Vi(e,t,s){let{expr:r,pos:n}=zi(e,t,s);for(;n=oe(t,n),t.slice(n,n+2)==="&&";){if(n+=2,ke(t,n))return Ne("&&",n);let{expr:a,pos:l}=zi(e,t,n);r={type:"ArithBinary",operator:"&&",left:r,right:a},n=l}return{expr:r,pos:n}}function zi(e,t,s){let{expr:r,pos:n}=Bi(e,t,s);for(;n=oe(t,n),t[n]==="|"&&t[n+1]!=="|";){if(n++,ke(t,n))return Ne("|",n);let{expr:a,pos:l}=Bi(e,t,n);r={type:"ArithBinary",operator:"|",left:r,right:a},n=l}return{expr:r,pos:n}}function Bi(e,t,s){let{expr:r,pos:n}=qi(e,t,s);for(;n=oe(t,n),t[n]==="^";){if(n++,ke(t,n))return Ne("^",n);let{expr:a,pos:l}=qi(e,t,n);r={type:"ArithBinary",operator:"^",left:r,right:a},n=l}return{expr:r,pos:n}}function qi(e,t,s){let{expr:r,pos:n}=ji(e,t,s);for(;n=oe(t,n),t[n]==="&"&&t[n+1]!=="&";){if(n++,ke(t,n))return Ne("&",n);let{expr:a,pos:l}=ji(e,t,n);r={type:"ArithBinary",operator:"&",left:r,right:a},n=l}return{expr:r,pos:n}}function ji(e,t,s){let{expr:r,pos:n}=Ui(e,t,s);for(;n=oe(t,n),t.slice(n,n+2)==="=="||t.slice(n,n+2)==="!=";){let i=t.slice(n,n+2);if(n+=2,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=Ui(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}return{expr:r,pos:n}}function Ui(e,t,s){let{expr:r,pos:n}=On(e,t,s);for(;;)if(n=oe(t,n),t.slice(n,n+2)==="<="||t.slice(n,n+2)===">="){let i=t.slice(n,n+2);if(n+=2,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=On(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}else if(t[n]==="<"||t[n]===">"){let i=t[n];if(n++,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=On(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}else break;return{expr:r,pos:n}}function On(e,t,s){let{expr:r,pos:n}=Zi(e,t,s);for(;n=oe(t,n),t.slice(n,n+2)==="<<"||t.slice(n,n+2)===">>";){let i=t.slice(n,n+2);if(n+=2,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=Zi(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}return{expr:r,pos:n}}function Zi(e,t,s){let{expr:r,pos:n}=Hi(e,t,s);for(;n=oe(t,n),(t[n]==="+"||t[n]==="-")&&t[n+1]!==t[n];){let i=t[n];if(n++,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=Hi(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}return{expr:r,pos:n}}function Hi(e,t,s){let{expr:r,pos:n}=ks(e,t,s);for(;;)if(n=oe(t,n),t[n]==="*"&&t[n+1]!=="*"){if(n++,ke(t,n))return Ne("*",n);let{expr:a,pos:l}=ks(e,t,n);r={type:"ArithBinary",operator:"*",left:r,right:a},n=l}else if(t[n]==="/"||t[n]==="%"){let i=t[n];if(n++,ke(t,n))return Ne(i,n);let{expr:a,pos:l}=ks(e,t,n);r={type:"ArithBinary",operator:i,left:r,right:a},n=l}else break;return{expr:r,pos:n}}function ks(e,t,s){let{expr:r,pos:n}=Ln(e,t,s),i=oe(t,n);if(t.slice(i,i+2)==="**"){if(i+=2,ke(t,i))return Ne("**",i);let{expr:l,pos:o}=ks(e,t,i);return{expr:{type:"ArithBinary",operator:"**",left:r,right:l},pos:o}}return{expr:r,pos:n}}function Ln(e,t,s){let r=oe(t,s);if(t.slice(r,r+2)==="++"||t.slice(r,r+2)==="--"){let n=t.slice(r,r+2);r+=2;let{expr:i,pos:a}=Ln(e,t,r);return{expr:{type:"ArithUnary",operator:n,operand:i,prefix:!0},pos:a}}if(t[r]==="+"||t[r]==="-"||t[r]==="!"||t[r]==="~"){let n=t[r];r++;let{expr:i,pos:a}=Ln(e,t,r);return{expr:{type:"ArithUnary",operator:n,operand:i,prefix:!0},pos:a}}return Wc(e,t,r)}function Tc(e,t){let s=e[t];return s==="$"||s==="`"}function Wc(e,t,s){let{expr:r,pos:n}=Gi(e,t,s,!1),i=[r];for(;Tc(t,n);){let{expr:l,pos:o}=Gi(e,t,n,!0);i.push(l),n=o}i.length>1&&(r={type:"ArithConcat",parts:i});let a;if(t[n]==="["&&r.type==="ArithConcat"){n++;let{expr:l,pos:o}=Oe(e,t,n);a=l,n=o,t[n]==="]"&&n++}if(a&&r.type==="ArithConcat"&&(r={type:"ArithDynamicElement",nameExpr:r,subscript:a},a=void 0),n=oe(t,n),r.type==="ArithConcat"||r.type==="ArithVariable"||r.type==="ArithDynamicElement"){for(let l of Ns)if(t.slice(n,n+l.length)===l&&t.slice(n,n+l.length+1)!=="=="){n+=l.length;let{expr:o,pos:u}=ts(e,t,n);return r.type==="ArithDynamicElement"?{expr:{type:"ArithDynamicAssignment",operator:l,target:r.nameExpr,subscript:r.subscript,value:o},pos:u}:r.type==="ArithConcat"?{expr:{type:"ArithDynamicAssignment",operator:l,target:r,value:o},pos:u}:{expr:{type:"ArithAssignment",operator:l,variable:r.name,value:o},pos:u}}}if(t.slice(n,n+2)==="++"||t.slice(n,n+2)==="--"){let l=t.slice(n,n+2);return n+=2,{expr:{type:"ArithUnary",operator:l,operand:r,prefix:!1},pos:n}}return{expr:r,pos:n}}function Gi(e,t,s,r=!1){let n=oe(t,s),i=Wi(Oe,e,t,n);if(i)return i;let a=Mi(t,n);if(a)return a;let l=Fi(t,n);if(l)return l;if(t.slice(n,n+2)==="$("&&t[n+2]!=="("){n+=2;let u=1,c=n;for(;n<t.length&&u>0;)t[n]==="("?u++:t[n]===")"&&u--,u>0&&n++;let f=t.slice(c,n);return n++,{expr:{type:"ArithCommandSubst",command:f},pos:n}}if(t[n]==="`"){n++;let u=n;for(;n<t.length&&t[n]!=="`";)n++;let c=t.slice(u,n);return t[n]==="`"&&n++,{expr:{type:"ArithCommandSubst",command:c},pos:n}}if(t[n]==="("){n++;let{expr:u,pos:c}=Oe(e,t,n);return n=oe(t,c),t[n]===")"&&n++,{expr:{type:"ArithGroup",expression:u},pos:n}}if(t[n]==="'"){n++;let u="";for(;n<t.length&&t[n]!=="'";)u+=t[n],n++;t[n]==="'"&&n++;let c=Number.parseInt(u,10);return{expr:{type:"ArithSingleQuote",content:u,value:Number.isNaN(c)?0:c},pos:n}}if(t[n]==='"'){n++;let u="";for(;n<t.length&&t[n]!=='"';)t[n]==="\\"&&n+1<t.length?(u+=t[n+1],n+=2):(u+=t[n],n++);t[n]==='"'&&n++;let c=u.trim();if(!c)return{expr:{type:"ArithNumber",value:0},pos:n};let{expr:f}=Oe(e,c,0);return{expr:f,pos:n}}if(/[0-9]/.test(t[n])){let u="",c=!1,f=!1;for(;n<t.length;){let h=t[n];if(c)if(/[0-9a-zA-Z@_]/.test(h))u+=h,n++;else break;else if(h==="#")c=!0,u+=h,n++;else if(u==="0"&&(h==="x"||h==="X")&&n+1<t.length&&/[0-9a-fA-F]/.test(t[n+1]))f=!0,u+=h,n++;else if(f&&/[0-9a-fA-F]/.test(h))u+=h,n++;else if(!f&&/[0-9]/.test(h))u+=h,n++;else break}if(n<t.length&&/[a-zA-Z_]/.test(t[n])){let h=u;for(;n<t.length&&/[a-zA-Z0-9_]/.test(t[n]);)h+=t[n],n++;return{expr:{type:"ArithSyntaxError",errorToken:h,message:`${h}: value too great for base (error token is "${h}")`},pos:n}}if(t[n]==="."&&/[0-9]/.test(t[n+1]))throw new te(`${u}.${t[n+1]}...: syntax error: invalid arithmetic operator`);if(t[n]==="["){let h=t.slice(n).trim();return{expr:{type:"ArithNumberSubscript",number:u,errorToken:h},pos:t.length}}return{expr:{type:"ArithNumber",value:es(u)},pos:n}}if(t[n]==="$"&&t[n+1]==="{"){let u=n+2,c=1,f=u;for(;f<t.length&&c>0;)t[f]==="{"?c++:t[f]==="}"&&c--,c>0&&f++;let d=t.slice(u,f),h=f+1;if(t[h]==="#"){let p=h+1;for(;p<t.length&&/[0-9a-zA-Z@_]/.test(t[p]);)p++;let m=t.slice(h+1,p);return{expr:{type:"ArithDynamicBase",baseExpr:d,value:m},pos:p}}if(/[0-9]/.test(t[h])||t[h]==="x"||t[h]==="X"){let p=h;if(t[h]==="x"||t[h]==="X")for(p++;p<t.length&&/[0-9a-fA-F]/.test(t[p]);)p++;else for(;p<t.length&&/[0-9]/.test(t[p]);)p++;let m=t.slice(h,p);return{expr:{type:"ArithDynamicNumber",prefix:d,suffix:m},pos:p}}return n=h,{expr:{type:"ArithBracedExpansion",content:d},pos:n}}if(t[n]==="$"&&n+1<t.length&&/[0-9]/.test(t[n+1])){n++;let u="";for(;n<t.length&&/[0-9]/.test(t[n]);)u+=t[n],n++;return{expr:{type:"ArithVariable",name:u,hasDollarPrefix:!0},pos:n}}if(t[n]==="$"&&n+1<t.length&&/[*@#?\-!$]/.test(t[n+1])){let u=t[n+1];return n+=2,{expr:{type:"ArithSpecialVar",name:u},pos:n}}let o=!1;if(t[n]==="$"&&n+1<t.length&&/[a-zA-Z_]/.test(t[n+1])&&(o=!0,n++),n<t.length&&/[a-zA-Z_]/.test(t[n])){let u="";for(;n<t.length&&/[a-zA-Z0-9_]/.test(t[n]);)u+=t[n],n++;if(t[n]==="["&&!r){n++;let c;if(t[n]==="'"||t[n]==='"'){let d=t[n];for(n++,c="";n<t.length&&t[n]!==d;)c+=t[n],n++;t[n]===d&&n++,n=oe(t,n),t[n]==="]"&&n++}let f;if(c===void 0){let{expr:d,pos:h}=Oe(e,t,n);f=d,n=h,t[n]==="]"&&n++}if(n=oe(t,n),t[n]==="["&&f)return{expr:{type:"ArithDoubleSubscript",array:u,index:f},pos:n};if(!r){for(let d of Ns)if(t.slice(n,n+d.length)===d&&t.slice(n,n+d.length+1)!=="=="){n+=d.length;let{expr:h,pos:p}=ts(e,t,n);return{expr:{type:"ArithAssignment",operator:d,variable:u,subscript:f,stringKey:c,value:h},pos:p}}}return{expr:{type:"ArithArrayElement",array:u,index:f,stringKey:c},pos:n}}if(n=oe(t,n),!r){for(let c of Ns)if(t.slice(n,n+c.length)===c&&t.slice(n,n+c.length+1)!=="=="){n+=c.length;let{expr:f,pos:d}=ts(e,t,n);return{expr:{type:"ArithAssignment",operator:c,variable:u,value:f},pos:d}}}return{expr:{type:"ArithVariable",name:u,hasDollarPrefix:o},pos:n}}if(t[n]==="#"){let u=n+1;for(;u<t.length&&t[u]!==`
59
- `;)u++;let c=t.slice(n,u).trim()||"#";return{expr:{type:"ArithSyntaxError",errorToken:c,message:`${c}: syntax error: invalid arithmetic operator (error token is "${c}")`},pos:t.length}}return{expr:{type:"ArithNumber",value:0},pos:n}}function Mc(e){let t="",s=0;for(;s<e.length;){let r=e[s];if(r<128){t+=String.fromCharCode(r),s++;continue}if((r&224)===192){if(s+1<e.length&&(e[s+1]&192)===128&&r>=194){let n=(r&31)<<6|e[s+1]&63;t+=String.fromCharCode(n),s+=2;continue}t+=String.fromCharCode(r),s++;continue}if((r&240)===224){if(s+2<e.length&&(e[s+1]&192)===128&&(e[s+2]&192)===128){if(r===224&&e[s+1]<160){t+=String.fromCharCode(r),s++;continue}let n=(r&15)<<12|(e[s+1]&63)<<6|e[s+2]&63;if(n>=55296&&n<=57343){t+=String.fromCharCode(r),s++;continue}t+=String.fromCharCode(n),s+=3;continue}t+=String.fromCharCode(r),s++;continue}if((r&248)===240&&r<=244){if(s+3<e.length&&(e[s+1]&192)===128&&(e[s+2]&192)===128&&(e[s+3]&192)===128){if(r===240&&e[s+1]<144){t+=String.fromCharCode(r),s++;continue}let n=(r&7)<<18|(e[s+1]&63)<<12|(e[s+2]&63)<<6|e[s+3]&63;if(n>1114111){t+=String.fromCharCode(r),s++;continue}t+=String.fromCodePoint(n),s+=4;continue}t+=String.fromCharCode(r),s++;continue}t+=String.fromCharCode(r),s++}return t}function Xi(e,t,s){let r=s+1;for(;r<t.length&&/[a-zA-Z0-9_-]/.test(t[r]);)r++;return r}function Tn(e,t,s,r,n){let i=1,a=s+1;for(;a<t.length&&i>0;)t[a]===r?i++:t[a]===n&&i--,i>0&&a++;return i===0?a:-1}function $t(e,t,s){let r=s,n=1;for(;r<t.length&&n>0;){let i=t[r];if(i==="\\"&&r+1<t.length){r+=2;continue}if(i==="'"){let a=t.indexOf("'",r+1);if(a!==-1){r=a+1;continue}}if(i==='"'){for(r++;r<t.length&&t[r]!=='"';)t[r]==="\\"&&r+1<t.length?r+=2:r++;r<t.length&&r++;continue}i==="{"?n++:i==="}"&&n--,n>0&&r++}return r}function Yi(e,t,s){let r=s,n=!1;for(;r<t.length;){let i=t[r];if(i==="/"&&n||i==="}")break;if(i==="'"){let a=t.indexOf("'",r+1);if(a!==-1){r=a+1,n=!0;continue}}if(i==='"'){for(r++;r<t.length&&t[r]!=='"';)t[r]==="\\"&&r+1<t.length?r+=2:r++;r<t.length&&r++,n=!0;continue}i==="\\"?(r+=2,n=!0):(r++,n=!0)}return r}function Ji(e,t,s){let r=s,n="";for(;r<t.length;){let i=t[r];if(i==="*"||i==="?")n+=i,r++;else if(i==="["){let a=Fc(t,r);a===-1?(n+=i,r++):(n+=t.slice(r,a+1),r=a+1)}else break}return{pattern:n,endIndex:r}}function Fc(e,t){let s=t+1;for(s<e.length&&e[s]==="^"&&s++,s<e.length&&e[s]==="]"&&s++;s<e.length;){let r=e[s];if(r==="\\"&&s+1<e.length){let n=e[s+1];if(n==='"'||n==="'")return-1;s+=2;continue}if(r==="]")return s;if(r==='"'||r==="$"||r==="`")return-1;if(r==="'"){let n=e.indexOf("'",s+1);if(n!==-1){s=n+1;continue}}if(r==="["&&s+1<e.length&&e[s+1]===":"){let n=e.indexOf(":]",s+2);if(n!==-1){s=n+2;continue}}if(r==="["&&s+1<e.length&&(e[s+1]==="."||e[s+1]==="=")){let i=`${e[s+1]}]`,a=e.indexOf(i,s+2);if(a!==-1){s=a+2;continue}}s++}return-1}function ea(e,t,s){let r="",n=s;for(;n<t.length&&t[n]!=="'";){let i=t[n];if(i==="\\"&&n+1<t.length)switch(t[n+1]){case"n":r+=`
60
- `,n+=2;break;case"t":r+=" ",n+=2;break;case"r":r+="\r",n+=2;break;case"\\":r+="\\",n+=2;break;case"'":r+="'",n+=2;break;case'"':r+='"',n+=2;break;case"a":r+="\x07",n+=2;break;case"b":r+="\b",n+=2;break;case"e":case"E":r+="\x1B",n+=2;break;case"f":r+="\f",n+=2;break;case"v":r+="\v",n+=2;break;case"x":{let l=[],o=n;for(;o+1<t.length&&t[o]==="\\"&&t[o+1]==="x";){let u=t.slice(o+2,o+4),c=parseInt(u,16);if(!Number.isNaN(c)&&u.length>0)l.push(c),o+=2+u.length;else break}l.length>0?(r+=Mc(l),n=o):(r+="\\x",n+=2);break}case"u":{let l=t.slice(n+2,n+6),o=parseInt(l,16);Number.isNaN(o)?(r+="\\u",n+=2):(r+=String.fromCharCode(o),n+=6);break}case"c":{if(n+2<t.length){let o=t[n+2].charCodeAt(0)&31;r+=String.fromCharCode(o),n+=3}else r+="\\c",n+=2;break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let l="",o=n+1;for(;o<t.length&&o<n+4&&/[0-7]/.test(t[o]);)l+=t[o],o++;let u=parseInt(l,8);r+=String.fromCharCode(u),n=o;break}default:r+=i,n++}else r+=i,n++}return n<t.length&&t[n]==="'"&&n++,{part:R.literal(r),endIndex:n}}function Wn(e,t){let s=t.trim();return s===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:X(e,s)}function Ki(e){let t=[],s="",r=0;for(let n=0;n<e.length;n++){let i=e[n];i==="{"?(r++,s+=i):i==="}"?(r--,s+=i):i===","&&r===0?(t.push(s),s=""):s+=i}return t.push(s),t}function ta(e,t,s,r){let n=Tn(e,t,s,"{","}");if(n===-1)return null;let i=t.slice(s+1,n),a=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(a)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(a[1],10),end:Number.parseInt(a[2],10),step:a[3]?Number.parseInt(a[3],10):void 0,startStr:a[1],endStr:a[2]}]},endIndex:n+1};let l=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return l?{part:{type:"BraceExpansion",items:[{type:"Range",start:l[1],end:l[2],step:l[3]?Number.parseInt(l[3],10):void 0}]},endIndex:n+1}:i.includes(",")&&r?{part:{type:"BraceExpansion",items:Ki(i).map(c=>({type:"Word",word:R.word(r(e,c,!1,!1,!1))}))},endIndex:n+1}:i.includes(",")?{part:{type:"BraceExpansion",items:Ki(i).map(c=>({type:"Word",word:R.word([R.literal(c)])}))},endIndex:n+1}:null}function Mn(e,t){let s="";for(let r of t.parts)switch(r.type){case"Literal":s+=r.value;break;case"SingleQuoted":s+=`'${r.value}'`;break;case"Escaped":s+=r.value;break;case"DoubleQuoted":s+='"';for(let n of r.parts)n.type==="Literal"||n.type==="Escaped"?s+=n.value:n.type==="ParameterExpansion"&&(s+=`\${${n.parameter}}`);s+='"';break;case"ParameterExpansion":s+=`\${${r.parameter}}`;break;case"Glob":s+=r.pattern;break;case"TildeExpansion":s+="~",r.user&&(s+=r.user);break;case"BraceExpansion":{s+="{";let n=[];for(let i of r.items)if(i.type==="Range"){let a=i.startStr??String(i.start),l=i.endStr??String(i.end);i.step!==void 0?n.push(`${a}..${l}..${i.step}`):n.push(`${a}..${l}`)}else n.push(Mn(e,i.word));n.length===1&&r.items[0].type==="Range"?s+=n[0]:s+=n.join(","),s+="}";break}default:s+=r.type}return s}function sa(e,t){return{[g.LESS]:"<",[g.GREAT]:">",[g.DGREAT]:">>",[g.LESSAND]:"<&",[g.GREATAND]:">&",[g.LESSGREAT]:"<>",[g.CLOBBER]:">|",[g.TLESS]:"<<<",[g.AND_GREAT]:"&>",[g.AND_DGREAT]:"&>>",[g.DLESS]:"<",[g.DLESSDASH]:"<"}[t]||">"}function _s(e){let t=e.current(),s=t.type;if(s===g.NUMBER){let r=e.peek(1);return t.end!==r.start?!1:Li.has(r.type)}if(s===g.FD_VARIABLE){let r=e.peek(1);return Ti.has(r.type)}return Oi.has(s)}function Ps(e){let t=null,s;e.check(g.NUMBER)?t=Number.parseInt(e.advance().value,10):e.check(g.FD_VARIABLE)&&(s=e.advance().value);let r=e.advance(),n=sa(e,r.type);if(r.type===g.DLESS||r.type===g.DLESSDASH)return Vc(e,n,t,r.type===g.DLESSDASH);e.isWord()||e.error("Expected redirection target");let i=e.parseWord();return R.redirection(n,i,t,s)}function Vc(e,t,s,r){e.isWord()||e.error("Expected here-document delimiter");let n=e.advance(),i=n.value,a=n.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let l=R.redirection(r?"<<-":"<<",R.hereDoc(i,R.word([]),r,a),s);return e.addPendingHeredoc(l,i,r,a),l}function ra(e){let t=e.current().line,s=[],r=null,n=[],i=[];for(;e.check(g.ASSIGNMENT_WORD)||_s(e);)e.checkIterationLimit(),e.check(g.ASSIGNMENT_WORD)?s.push(zc(e)):i.push(Ps(e));if(e.isWord())r=e.parseWord();else if(s.length>0&&(e.check(g.DBRACK_START)||e.check(g.DPAREN_START))){let l=e.advance();r=R.word([R.literal(l.value)])}for(;(!e.isStatementEnd()||e.check(g.RBRACE))&&!e.check(g.PIPE,g.PIPE_AMP);)if(e.checkIterationLimit(),_s(e))i.push(Ps(e));else if(e.check(g.RBRACE)){let l=e.advance();n.push(e.parseWordFromString(l.value,!1,!1))}else if(e.check(g.LBRACE)){let l=e.advance();n.push(e.parseWordFromString(l.value,!1,!1))}else if(e.check(g.DBRACK_END)){let l=e.advance();n.push(e.parseWordFromString(l.value,!1,!1))}else if(e.isWord())n.push(e.parseWord());else if(e.check(g.ASSIGNMENT_WORD)){let l=e.advance(),o=l.value,u=o.endsWith("="),c=o.endsWith("=(");if((u||c)&&(c||e.check(g.LPAREN))){let f=c?o.slice(0,-2):o.slice(0,-1);c||e.expect(g.LPAREN);let d=Fn(e);e.expect(g.RPAREN);let h=d.map(m=>Mn(e,m)),p=`${f}=(${h.join(" ")})`;n.push(e.parseWordFromString(p,!1,!1))}else n.push(e.parseWordFromString(o,l.quoted,l.singleQuoted))}else if(e.check(g.LPAREN))e.error("syntax error near unexpected token `('");else break;let a=R.simpleCommand(r,n,s,i);return a.line=t,a}function zc(e){let t=e.expect(g.ASSIGNMENT_WORD),s=t.value,r=s.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);r||e.error(`Invalid assignment: ${s}`);let n=r[0],i,a=n.length;if(s[a]==="["){let f=0,d=a+1;for(;a<s.length;a++)if(s[a]==="[")f++;else if(s[a]==="]"&&(f--,f===0))break;f!==0&&e.error(`Invalid assignment: ${s}`),i=s.slice(d,a),a++}let l=s[a]==="+";l&&a++,s[a]!=="="&&e.error(`Invalid assignment: ${s}`),a++;let o=s.slice(a);if(o==="("){let f=Fn(e);e.expect(g.RPAREN);let d=i!==void 0?`${n}[${i}]`:n;return R.assignment(d,null,l,f)}if(o===""&&e.check(g.LPAREN)){let f=e.current();if(t.end===f.start){e.advance();let d=Fn(e);e.expect(g.RPAREN);let h=i!==void 0?`${n}[${i}]`:n;return R.assignment(h,null,l,d)}}let u=o?e.parseWordFromString(o,t.quoted,t.singleQuoted,!0):null,c=i!==void 0?`${n}[${i}]`:n;return R.assignment(c,u,l,null)}var Bc=new Set([g.AMP,g.PIPE,g.PIPE_AMP,g.SEMICOLON,g.AND_AND,g.OR_OR,g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND]);function Fn(e){let t=[];for(e.skipNewlines();!e.check(g.RPAREN,g.EOF);)e.checkIterationLimit(),e.isWord()?t.push(e.parseWord()):Bc.has(e.current().type)?e.error(`syntax error near unexpected token \`${e.current().value}'`):e.advance(),e.skipNewlines();return t}function Vn(e,t){e.expect(g.IF);let s=[],r=e.parseCompoundList();e.expect(g.THEN);let n=e.parseCompoundList();if(n.length===0){let l=e.check(g.FI)?"fi":e.check(g.ELSE)?"else":e.check(g.ELIF)?"elif":"fi";e.error(`syntax error near unexpected token \`${l}'`)}for(s.push({condition:r,body:n});e.check(g.ELIF);){e.advance();let l=e.parseCompoundList();e.expect(g.THEN);let o=e.parseCompoundList();if(o.length===0){let u=e.check(g.FI)?"fi":e.check(g.ELSE)?"else":e.check(g.ELIF)?"elif":"fi";e.error(`syntax error near unexpected token \`${u}'`)}s.push({condition:l,body:o})}let i=null;e.check(g.ELSE)&&(e.advance(),i=e.parseCompoundList(),i.length===0&&e.error("syntax error near unexpected token `fi'")),e.expect(g.FI);let a=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.ifNode(s,i,a)}function zn(e,t){let s=e.expect(g.FOR);if(e.check(g.DPAREN_START))return jc(e,t,s.line);e.isWord()||e.error("Expected variable name in for loop");let n=e.advance().value,i=null;if(e.skipNewlines(),e.check(g.IN))for(e.advance(),i=[];!e.check(g.SEMICOLON,g.NEWLINE,g.DO,g.EOF)&&e.isWord();)i.push(e.parseWord());e.check(g.SEMICOLON)&&e.advance(),e.skipNewlines(),e.expect(g.DO);let a=e.parseCompoundList();e.expect(g.DONE);let l=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.forNode(n,i,a,l)}function jc(e,t,s){e.expect(g.DPAREN_START);let r=null,n=null,i=null,a=["","",""],l=0,o=0;for(;!e.check(g.DPAREN_END,g.EOF);){let f=e.advance();if(f.type===g.SEMICOLON&&o===0){if(l++,l>2)break}else f.value==="("&&o++,f.value===")"&&o--,a[l]+=f.value}e.expect(g.DPAREN_END),a[0].trim()&&(r=X(e,a[0].trim())),a[1].trim()&&(n=X(e,a[1].trim())),a[2].trim()&&(i=X(e,a[2].trim())),e.skipNewlines(),e.check(g.SEMICOLON)&&e.advance(),e.skipNewlines();let u;e.check(g.LBRACE)?(e.advance(),u=e.parseCompoundList(),e.expect(g.RBRACE)):(e.expect(g.DO),u=e.parseCompoundList(),e.expect(g.DONE));let c=t?.skipRedirections?[]:e.parseOptionalRedirections();return{type:"CStyleFor",init:r,condition:n,update:i,body:u,redirections:c,line:s}}function Bn(e,t){e.expect(g.WHILE);let s=e.parseCompoundList();e.expect(g.DO);let r=e.parseCompoundList();r.length===0&&e.error("syntax error near unexpected token `done'"),e.expect(g.DONE);let n=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.whileNode(s,r,n)}function qn(e,t){e.expect(g.UNTIL);let s=e.parseCompoundList();e.expect(g.DO);let r=e.parseCompoundList();r.length===0&&e.error("syntax error near unexpected token `done'"),e.expect(g.DONE);let n=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.untilNode(s,r,n)}function jn(e,t){e.expect(g.CASE),e.isWord()||e.error("Expected word after 'case'");let s=e.parseWord();e.skipNewlines(),e.expect(g.IN),e.skipNewlines();let r=[];for(;!e.check(g.ESAC,g.EOF);){e.checkIterationLimit();let i=e.getPos(),a=Uc(e);if(a&&r.push(a),e.skipNewlines(),e.getPos()===i&&!a)break}e.expect(g.ESAC);let n=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.caseNode(s,r,n)}function Uc(e){e.check(g.LPAREN)&&e.advance();let t=[];for(;e.isWord()&&(t.push(e.parseWord()),e.check(g.PIPE));)e.advance();if(t.length===0)return null;e.expect(g.RPAREN),e.skipNewlines();let s=[];for(;!e.check(g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND,g.ESAC,g.EOF);){e.checkIterationLimit(),e.isWord()&&e.peek(1).type===g.RPAREN&&e.error("syntax error near unexpected token `)'"),e.check(g.LPAREN)&&e.peek(1).type===g.WORD&&e.error(`syntax error near unexpected token \`${e.peek(1).value}'`);let n=e.getPos(),i=e.parseStatement();if(i&&s.push(i),e.skipSeparators(!1),e.getPos()===n&&!i)break}let r=";;";return e.check(g.DSEMI)?(e.advance(),r=";;"):e.check(g.SEMI_AND)?(e.advance(),r=";&"):e.check(g.SEMI_SEMI_AND)&&(e.advance(),r=";;&"),R.caseItem(t,s,r)}function Un(e,t){e.expect(g.LPAREN);let s=e.parseCompoundList();e.expect(g.RPAREN);let r=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.subshell(s,r)}function Zn(e,t){e.expect(g.LBRACE);let s=e.parseCompoundList();e.expect(g.RBRACE);let r=t?.skipRedirections?[]:e.parseOptionalRedirections();return R.group(s,r)}var Hc=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],Gc=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function ia(e){return e.isWord()||e.check(g.LBRACE)||e.check(g.RBRACE)||e.check(g.ASSIGNMENT_WORD)}function aa(e){if(e.check(g.BANG)&&e.peek(1).type===g.LPAREN){e.advance(),e.advance();let t=1,s="!(";for(;t>0&&!e.check(g.EOF);)if(e.check(g.LPAREN))t++,s+="(",e.advance();else if(e.check(g.RPAREN))t--,t>0&&(s+=")"),e.advance();else if(e.isWord())s+=e.advance().value;else if(e.check(g.PIPE))s+="|",e.advance();else break;return s+=")",e.parseWordFromString(s,!1,!1,!1,!1,!0)}return e.parseWordNoBraceExpansion()}function Gn(e){return e.skipNewlines(),Qc(e)}function Qc(e){let t=oa(e);for(e.skipNewlines();e.check(g.OR_OR);){e.advance(),e.skipNewlines();let s=oa(e);t={type:"CondOr",left:t,right:s},e.skipNewlines()}return t}function oa(e){let t=Hn(e);for(e.skipNewlines();e.check(g.AND_AND);){e.advance(),e.skipNewlines();let s=Hn(e);t={type:"CondAnd",left:t,right:s},e.skipNewlines()}return t}function Hn(e){return e.skipNewlines(),e.check(g.BANG)?(e.advance(),e.skipNewlines(),{type:"CondNot",operand:Hn(e)}):Kc(e)}function Kc(e){if(e.check(g.LPAREN)){e.advance();let t=Gn(e);return e.expect(g.RPAREN),{type:"CondGroup",expression:t}}if(ia(e)){let t=e.current(),s=t.value;if(Hc.includes(s)&&!t.quoted){if(e.advance(),e.check(g.DBRACK_END)&&e.error(`Expected operand after ${s}`),ia(e)){let i=e.parseWordNoBraceExpansion();return{type:"CondUnary",operator:s,operand:i}}let n=e.current();e.error(`unexpected argument \`${n.value}' to conditional unary operator`)}let r=e.parseWordNoBraceExpansion();if(e.isWord()&&Gc.includes(e.current().value)){let n=e.advance().value,i;return n==="=~"?i=Xc(e):n==="=="||n==="!="?i=aa(e):i=e.parseWordNoBraceExpansion(),{type:"CondBinary",operator:n,left:r,right:i}}if(e.check(g.LESS)){e.advance();let n=e.parseWordNoBraceExpansion();return{type:"CondBinary",operator:"<",left:r,right:n}}if(e.check(g.GREAT)){e.advance();let n=e.parseWordNoBraceExpansion();return{type:"CondBinary",operator:">",left:r,right:n}}if(e.isWord()&&e.current().value==="="){e.advance();let n=aa(e);return{type:"CondBinary",operator:"==",left:r,right:n}}return{type:"CondWord",word:r}}e.error("Expected conditional expression")}function Xc(e){let t=[],s=0,r=-1,n=e.getInput(),i=()=>e.check(g.DBRACK_END)||e.check(g.AND_AND)||e.check(g.OR_OR)||e.check(g.NEWLINE)||e.check(g.EOF);for(;!i();){let a=e.current(),l=r>=0&&a.start>r;if(s===0&&l)break;if(s>0&&l){let o=n.slice(r,a.start);t.push({type:"Literal",value:o})}if(e.isWord()||e.check(g.ASSIGNMENT_WORD)){let o=e.parseWordForRegex();t.push(...o.parts),r=e.peek(-1).end}else if(e.check(g.LPAREN)){let o=e.advance();t.push({type:"Literal",value:"("}),s++,r=o.end}else if(e.check(g.DPAREN_START)){let o=e.advance();t.push({type:"Literal",value:"(("}),s+=2,r=o.end}else if(e.check(g.DPAREN_END))if(s>=2){let o=e.advance();t.push({type:"Literal",value:"))"}),s-=2,r=o.end}else{if(s===1)break;break}else if(e.check(g.RPAREN))if(s>0){let o=e.advance();t.push({type:"Literal",value:")"}),s--,r=o.end}else break;else if(e.check(g.PIPE)){let o=e.advance();t.push({type:"Literal",value:"|"}),r=o.end}else if(e.check(g.SEMICOLON))if(s>0){let o=e.advance();t.push({type:"Literal",value:";"}),r=o.end}else break;else if(s>0&&e.check(g.LESS)){let o=e.advance();t.push({type:"Literal",value:"<"}),r=o.end}else if(s>0&&e.check(g.GREAT)){let o=e.advance();t.push({type:"Literal",value:">"}),r=o.end}else if(s>0&&e.check(g.DGREAT)){let o=e.advance();t.push({type:"Literal",value:">>"}),r=o.end}else if(s>0&&e.check(g.DLESS)){let o=e.advance();t.push({type:"Literal",value:"<<"}),r=o.end}else if(s>0&&e.check(g.LESSAND)){let o=e.advance();t.push({type:"Literal",value:"<&"}),r=o.end}else if(s>0&&e.check(g.GREATAND)){let o=e.advance();t.push({type:"Literal",value:">&"}),r=o.end}else if(s>0&&e.check(g.LESSGREAT)){let o=e.advance();t.push({type:"Literal",value:"<>"}),r=o.end}else if(s>0&&e.check(g.CLOBBER)){let o=e.advance();t.push({type:"Literal",value:">|"}),r=o.end}else if(s>0&&e.check(g.TLESS)){let o=e.advance();t.push({type:"Literal",value:"<<<"}),r=o.end}else if(s>0&&e.check(g.AMP)){let o=e.advance();t.push({type:"Literal",value:"&"}),r=o.end}else if(s>0&&e.check(g.LBRACE)){let o=e.advance();t.push({type:"Literal",value:"{"}),r=o.end}else if(s>0&&e.check(g.RBRACE)){let o=e.advance();t.push({type:"Literal",value:"}"}),r=o.end}else break}return t.length===0&&e.error("Expected regex pattern after =~"),{type:"Word",parts:t}}function ss(e){return e.length>0?e:[R.literal("")]}function Jc(e,t){let s=1,r=t+1;for(;r<e.length&&s>0;){let n=e[r];if(n==="\\"){r+=2;continue}if("@*+?!".includes(n)&&r+1<e.length&&e[r+1]==="("){r++,s++,r++;continue}if(n==="(")s++;else if(n===")"&&(s--,s===0))return r;r++}return-1}function eu(e,t,s){let r=s+1,n=t[r];if("@*#?$!-0123456789".includes(n))return{part:R.parameterExpansion(n),endIndex:r+1};let i="";for(;r<t.length&&/[a-zA-Z0-9_]/.test(t[r]);)i+=t[r],r++;return{part:R.parameterExpansion(i),endIndex:r}}function tu(e,t,s,r=!1){let n=s+2,i=!1;t[n]==="!"&&(i=!0,n++);let a=!1;t[n]==="#"&&!/[}:#%/^,]/.test(t[n+1]||"}")&&(a=!0,n++);let l="",o=t[n];if(/[@*#?$!-]/.test(o)&&!/[a-zA-Z0-9_]/.test(t[n+1]||""))l=o,n++;else for(;n<t.length&&/[a-zA-Z0-9_]/.test(t[n]);)l+=t[n],n++;if(t[n]==="["){let c=Tn(e,t,n,"[","]");if(l+=t.slice(n,c+1),n=c+1,t[n]==="["){let f=1,d=n;for(;d<t.length&&f>0;)t[d]==="{"?f++:t[d]==="}"&&f--,f>0&&d++;let h=t.slice(s+2,d);return{part:R.parameterExpansion("",{type:"BadSubstitution",text:h}),endIndex:d+1}}}if(l===""&&!i&&!a&&t[n]!=="}"){let c=1,f=n;for(;f<t.length&&c>0;)t[f]==="{"?c++:t[f]==="}"&&c--,c>0&&f++;if(c>0)throw new ye("unexpected EOF while looking for matching '}'",0,0);let d=t.slice(s+2,f);return{part:R.parameterExpansion("",{type:"BadSubstitution",text:d}),endIndex:f+1}}let u=null;if(i){let c=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(c)if(n<t.length&&t[n]!=="}"&&/[:=\-+?#%/^,@]/.test(t[n])){let f=Qn(e,t,n,l,r);f.operation?(u={type:"Indirection",innerOp:f.operation},n=f.endIndex):(u={type:"ArrayKeys",array:c[1],star:c[2]==="*"},l="")}else u={type:"ArrayKeys",array:c[1],star:c[2]==="*"},l="";else if(t[n]==="*"||t[n]==="@"&&!/[QPaAEKkuUL]/.test(t[n+1]||"")){let f=t[n];n++,u={type:"VarNamePrefix",prefix:l,star:f==="*"},l=""}else if(n<t.length&&t[n]!=="}"&&/[:=\-+?#%/^,@]/.test(t[n])){let f=Qn(e,t,n,l,r);f.operation?(u={type:"Indirection",innerOp:f.operation},n=f.endIndex):u={type:"Indirection"}}else u={type:"Indirection"}}else if(a)if(t[n]===":")for(u={type:"LengthSliceError"};n<t.length&&t[n]!=="}";)n++;else t[n]!=="}"&&/[-+=?]/.test(t[n])?e.error(`\${#${l}${t.slice(n,t.indexOf("}",n))}}: bad substitution`):t[n]==="/"?e.error(`\${#${l}${t.slice(n,t.indexOf("}",n))}}: bad substitution`):u={type:"Length"};if(!u&&n<t.length&&t[n]!=="}"){let c=Qn(e,t,n,l,r);u=c.operation,n=c.endIndex}if(n<t.length&&t[n]!=="}"){let c=t[n];if(!/[:\-+=?#%/^,@[]/.test(c)){let f=n;for(;f<t.length&&t[f]!=="}";)f++;let d=t.slice(s,f+1);e.error(`\${${d.slice(2,-1)}}: bad substitution`)}}for(;n<t.length&&t[n]!=="}";)n++;if(n>=t.length)throw new ye("unexpected EOF while looking for matching '}'",0,0);return{part:R.parameterExpansion(l,u),endIndex:n+1}}function Qn(e,t,s,r,n=!1){let i=s,a=t[i],l=t[i+1]||"";if(a===":"){let o=l;if("-=?+".includes(o)){i+=2;let b=$t(e,t,i),v=t.slice(i,b),E=pt(e,v,!1,!1,!0,!1,n,!1,!1,!0),w=R.word(ss(E));if(o==="-")return{operation:{type:"DefaultValue",word:w,checkEmpty:!0},endIndex:b};if(o==="=")return{operation:{type:"AssignDefault",word:w,checkEmpty:!0},endIndex:b};if(o==="?")return{operation:{type:"ErrorIfUnset",word:w,checkEmpty:!0},endIndex:b};if(o==="+")return{operation:{type:"UseAlternative",word:w,checkEmpty:!0},endIndex:b}}i++;let u=$t(e,t,i),c=t.slice(i,u),f=-1,d=0,h=0;for(let y=0;y<c.length;y++){let b=c[y];if(b==="("||b==="[")d++;else if(b===")"||b==="]")d--;else if(b==="?"&&d===0)h++;else if(b===":"&&d===0)if(h>0)h--;else{f=y;break}}let p=f>=0?c.slice(0,f):c,m=f>=0?c.slice(f+1):null;return{operation:{type:"Substring",offset:Wn(e,p),length:m!==null?Wn(e,m):null},endIndex:u}}if("-=?+".includes(a)){i++;let o=$t(e,t,i),u=t.slice(i,o),c=pt(e,u,!1,!1,!0,!1,n,!1,!1,!0),f=R.word(ss(c));if(a==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:o};if(a==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:o};if(a==="?")return{operation:{type:"ErrorIfUnset",word:u?f:null,checkEmpty:!1},endIndex:o};if(a==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:o}}if(a==="#"||a==="%"){let o=l===a,u=a==="#"?"prefix":"suffix";i+=o?2:1;let c=$t(e,t,i),f=t.slice(i,c),d=pt(e,f,!1,!1,!1);return{operation:{type:"PatternRemoval",pattern:R.word(ss(d)),side:u,greedy:o},endIndex:c}}if(a==="/"){let o=l==="/";i+=o?2:1;let u=null;t[i]==="#"?(u="start",i++):t[i]==="%"&&(u="end",i++);let c;u!==null&&(t[i]==="/"||t[i]==="}")?c=i:c=Yi(e,t,i);let f=t.slice(i,c),d=pt(e,f,!1,!1,!1),h=R.word(ss(d)),p=null,m=c;if(t[c]==="/"){let y=c+1,b=$t(e,t,y),v=t.slice(y,b),E=pt(e,v,!1,!1,!1);p=R.word(ss(E)),m=b}return{operation:{type:"PatternReplacement",pattern:h,replacement:p,all:o,anchor:u},endIndex:m}}if(a==="^"||a===","){let o=l===a,u=a==="^"?"upper":"lower";i+=o?2:1;let c=$t(e,t,i),f=t.slice(i,c),d=f?R.word([R.literal(f)]):null;return{operation:{type:"CaseModification",direction:u,all:o,pattern:d},endIndex:c}}return a==="@"&&/[QPaAEKkuUL]/.test(l)?{operation:{type:"Transform",operator:l},endIndex:i+2}:{operation:null,endIndex:i}}function Kn(e,t,s,r=!1){let n=s+1;if(n>=t.length)return{part:R.literal("$"),endIndex:n};let i=t[n];if(i==="("&&t[n+1]==="(")return e.isDollarDparenSubshell(t,s)?e.parseCommandSubstitution(t,s):e.parseArithmeticExpansion(t,s);if(i==="["){let a=1,l=n+1;for(;l<t.length&&a>0;)t[l]==="["?a++:t[l]==="]"&&a--,a>0&&l++;if(a===0){let o=t.slice(n+1,l),u=X(e,o);return{part:R.arithmeticExpansion(u),endIndex:l+1}}}return i==="("?e.parseCommandSubstitution(t,s):i==="{"?tu(e,t,s,r):/[a-zA-Z_0-9@*#?$!-]/.test(i)?eu(e,t,s):{part:R.literal("$"),endIndex:n}}function la(e,t){let s=[],r=0,n="",i=()=>{n&&(s.push(R.literal(n)),n="")};for(;r<t.length;){let a=t[r];if(a==="\\"&&r+1<t.length){let l=t[r+1];if(l==="$"||l==="`"||l==='"'||l==="\\"){n+=l,r+=2;continue}n+=a,r++;continue}if(a==="$"){i();let{part:l,endIndex:o}=Kn(e,t,r,!0);l&&s.push(l),r=o;continue}if(a==="`"){i();let{part:l,endIndex:o}=e.parseBacktickSubstitution(t,r,!0);s.push(l),r=o;continue}n+=a,r++}return i(),s}function su(e,t,s){let r=[],n=s,i="",a=()=>{i&&(r.push(R.literal(i)),i="")};for(;n<t.length&&t[n]!=='"';){let l=t[n];if(l==="\\"&&n+1<t.length){let o=t[n+1];if('"\\$`\n'.includes(o)){i+=o,n+=2;continue}i+=l,n++;continue}if(l==="$"){a();let{part:o,endIndex:u}=Kn(e,t,n,!0);o&&r.push(o),n=u;continue}if(l==="`"){a();let{part:o,endIndex:u}=e.parseBacktickSubstitution(t,n,!0);r.push(o),n=u;continue}i+=l,n++}return a(),{part:R.doubleQuoted(r),endIndex:n}}function pt(e,t,s=!1,r=!1,n=!1,i=!1,a=!1,l=!1,o=!1,u=!1){if(r)return[R.singleQuoted(t)];if(s){let p=la(e,t);return[R.doubleQuoted(p)]}if(t.length>=2&&t[0]==='"'&&t[t.length-1]==='"'){let p=t.slice(1,-1),m=!1;for(let y=0;y<p.length;y++){if(p[y]==='"'){m=!0;break}p[y]==="\\"&&y+1<p.length&&y++}if(!m){let y=la(e,p);return[R.doubleQuoted(y)]}}let c=[],f=0,d="",h=()=>{d&&(c.push(R.literal(d)),d="")};for(;f<t.length;){let p=t[f];if(p==="\\"&&f+1<t.length){let m=t[f+1];if(o){h(),c.push(R.escaped(m)),f+=2;continue}let y=i?m==="$"||m==="`"||m===`
48
+ `,this.pos++,this.line++,this.column=1)}this.tokens.push({type:y.HEREDOC_CONTENT,value:i,start:n,end:this.pos,line:r,column:s})}}addPendingHeredoc(t,n,r){this.pendingHeredocs.push({delimiter:t,stripTabs:n,quoted:r})}registerHeredocFromLookahead(t){let n=this.pos,r=this.column;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]===" ");)this.pos++,this.column++;let s="",i=!1;for(;this.pos<this.input.length;){let a=this.input[this.pos];if(/[\s;<>&|()]/.test(a))break;if(a==="'"||a==='"'){i=!0;let o=a;for(this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]!==o;)s+=this.input[this.pos],this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]===o&&(this.pos++,this.column++)}else a==="\\"?(i=!0,this.pos++,this.column++,this.pos<this.input.length&&(s+=this.input[this.pos],this.pos++,this.column++)):(s+=a,this.pos++,this.column++)}this.pos=n,this.column=r,s&&this.pendingHeredocs.push({delimiter:s,stripTabs:t,quoted:i})}isWordCharFollowing(t){if(t>=this.input.length)return!1;let n=this.input[t];return!(n===" "||n===" "||n===`
49
+ `||n===";"||n==="&"||n==="|"||n==="("||n===")"||n==="<"||n===">")}readWordWithBraceExpansion(t,n,r){let s=this.input,i=s.length,a=t,o=r;for(;a<i;){let c=s[a];if(c===" "||c===" "||c===`
50
+ `||c===";"||c==="&"||c==="|"||c==="("||c===")"||c==="<"||c===">")break;if(c==="{"){if(this.scanBraceExpansion(a)!==null){let f=1;for(a++,o++;a<i&&f>0;)s[a]==="{"?f++:s[a]==="}"&&f--,a++,o++;continue}a++,o++;continue}if(c==="}"){a++,o++;continue}if(c==="$"&&a+1<i&&s[a+1]==="("){a++,o++,a++,o++;let u=1;for(;u>0&&a<i;)s[a]==="("?u++:s[a]===")"&&u--,a++,o++;continue}if(c==="$"&&a+1<i&&s[a+1]==="{"){a++,o++,a++,o++;let u=1;for(;u>0&&a<i;)s[a]==="{"?u++:s[a]==="}"&&u--,a++,o++;continue}if(c==="`"){for(a++,o++;a<i&&s[a]!=="`";)s[a]==="\\"&&a+1<i?(a+=2,o+=2):(a++,o++);a<i&&(a++,o++);continue}a++,o++}let l=s.slice(t,a);return this.pos=a,this.column=o,{type:y.WORD,value:l,start:t,end:a,line:n,column:r,quoted:!1,singleQuoted:!1}}scanBraceExpansion(t){let n=this.input,r=n.length,s=t+1,i=1,a=!1,o=!1;for(;s<r&&i>0;){let l=n[s];if(l==="{")i++,s++;else if(l==="}")i--,s++;else if(l===","&&i===1)a=!0,s++;else if(l==="."&&s+1<r&&n[s+1]===".")o=!0,s+=2;else{if(l===" "||l===" "||l===`
51
+ `||l===";"||l==="&"||l==="|")return null;s++}}return i===0&&(a||o)?n.slice(t,s):null}scanLiteralBraceWord(t){let n=this.input,r=n.length,s=t+1,i=1;for(;s<r&&i>0;){let a=n[s];if(a==="{")i++,s++;else if(a==="}"){if(i--,i===0)return n.slice(t,s+1);s++}else{if(a===" "||a===" "||a===`
52
+ `||a===";"||a==="&"||a==="|")return null;s++}}return null}scanExtglobPattern(t){let n=this.input,r=n.length,s=t+1,i=1;for(;s<r&&i>0;){let a=n[s];if(a==="\\"&&s+1<r){s+=2;continue}if("@*+?!".includes(a)&&s+1<r&&n[s+1]==="("){s++,i++,s++;continue}if(a==="(")i++,s++;else if(a===")")i--,s++;else{if(a===`
53
+ `)return null;s++}}return i===0?{content:n.slice(t,s),end:s}:null}scanFdVariable(t){let n=this.input,r=n.length,s=t+1,i=s;for(;s<r;){let u=n[s];if(s===i){if(!(u>="a"&&u<="z"||u>="A"&&u<="Z"||u==="_"))return null}else if(!(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||u==="_"))break;s++}if(s===i)return null;let a=n.slice(i,s);if(s>=r||n[s]!=="}"||(s++,s>=r))return null;let o=n[s],l=s+1<r?n[s+1]:"";return o===">"||o==="<"||o==="&"&&(l===">"||l==="<")?{varname:a,end:s}:null}dollarDparenIsSubshell(t){let n=this.input,r=n.length,s=t+1,i=2,a=!1,o=!1,l=!1;for(;s<r&&i>0;){let c=n[s];if(a){c==="'"&&(a=!1),c===`
54
+ `&&(l=!0),s++;continue}if(o){if(c==="\\"){s+=2;continue}c==='"'&&(o=!1),c===`
55
+ `&&(l=!0),s++;continue}if(c==="'"){a=!0,s++;continue}if(c==='"'){o=!0,s++;continue}if(c==="\\"){s+=2;continue}if(c===`
56
+ `&&(l=!0),c==="("){i++,s++;continue}if(c===")"){if(i--,i===1){let u=s+1;if(u<r&&n[u]===")")return!1;let f=u,d=!1;for(;f<r&&(n[f]===" "||n[f]===" "||n[f]===`
57
+ `);)d=!0,f++;if(d&&f<r&&n[f]===")"||l)return!0}if(i===0)return!1;s++;continue}s++}return!1}dparenClosesWithSpacedParens(t){let n=this.input,r=n.length,s=t,i=2,a=!1,o=!1;for(;s<r&&i>0;){let l=n[s];if(a){l==="'"&&(a=!1),s++;continue}if(o){if(l==="\\"){s+=2;continue}l==='"'&&(o=!1),s++;continue}if(l==="'"){a=!0,s++;continue}if(l==='"'){o=!0,s++;continue}if(l==="\\"){s+=2;continue}if(l==="("){i++,s++;continue}if(l===")"){if(i--,i===1){let c=s+1;if(c<r&&n[c]===")")return!1;let u=c,f=!1;for(;u<r&&(n[u]===" "||n[u]===" "||n[u]===`
58
+ `);)f=!0,u++;if(f&&u<r&&n[u]===")")return!0}if(i===0)return!1;s++;continue}if(i===1&&(l==="|"&&s+1<r&&n[s+1]==="|"||l==="&"&&s+1<r&&n[s+1]==="&"||l==="|"&&s+1<r&&n[s+1]!=="|"))return!0;s++}return!1}};var $s=1e6,In=1e5,Hu=1e6,qa=200,Ua=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS,y.AND_GREAT,y.AND_DGREAT]),ja=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS]),Ga=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS,y.AND_GREAT,y.AND_DGREAT]),Ae=class extends Error{line;column;token;constructor(t,n,r,s=void 0){super(`Parse error at ${n}:${r}: ${t}`),this.line=n,this.column=r,this.token=s,this.name="ParseException"}},fr=class{iterations=0;tokens=0;depth=0;reset(){this.iterations=0,this.tokens=0,this.depth=0}chargeIteration(t,n){if(this.iterations++,this.iterations>Hu)throw new Ae("Maximum parse iterations exceeded (possible infinite loop)",t,n)}chargeTokens(t,n=1,r=1){if(this.tokens+=t,this.tokens>In)throw new Ae(`Too many tokens: cumulative count exceeds limit of ${In}`,n,r)}enter(t,n){if(this.depth++,this.depth>qa)throw this.depth--,new Ae(`Maximum parser nesting depth exceeded (${qa})`,t,n);let r=!0;return()=>{r&&(r=!1,this.depth--)}}};function de(e,t){for(;t<e.length;){if(e[t]==="\\"&&e[t+1]===`
59
+ `){t+=2;continue}if(/\s/.test(e[t])){t++;continue}break}return t}var dr=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];function _n(e){if(e.includes("#")){let n=e.split("#");if(n.length!==2)return Number.NaN;let[r,s]=n;if(!/^\d+$/.test(r)||s.length===0)return Number.NaN;let i=Number.parseInt(r,10);if(i<2||i>64)return Number.NaN;let a=0;for(let o of s){let l;if(/[0-9]/.test(o))l=o.charCodeAt(0)-48;else if(/[a-z]/.test(o))l=o.charCodeAt(0)-97+10;else if(/[A-Z]/.test(o))l=o.charCodeAt(0)-65+(i<=36?10:36);else if(o==="@")l=62;else if(o==="_")l=63;else return Number.NaN;if(l>=i)return Number.NaN;if(a=a*i+l,a>Number.MAX_SAFE_INTEGER)return Number.MAX_SAFE_INTEGER}return a}if(e.startsWith("0x")||e.startsWith("0X")){let n=Number.parseInt(e.slice(2),16);return n>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:n}if(e.startsWith("0")&&e.length>1&&/^[0-9]+$/.test(e)){if(/[89]/.test(e))return Number.NaN;let n=Number.parseInt(e,8);return n>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:n}let t=Number.parseInt(e,10);return t>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t}function Za(e,t,n,r){if(n.slice(r,r+3)!=="$((")return null;let s=r+3,i=1,a=s;for(;s<n.length-1&&i>0;)n[s]==="("&&n[s+1]==="("?(i++,s+=2):n[s]===")"&&n[s+1]===")"?(i--,i>0&&(s+=2)):s++;let o=n.slice(a,s),{expr:l}=e(t,o,0);return s+=2,{expr:{type:"ArithNested",expression:l},pos:s}}function Ha(e,t){if(e.slice(t,t+2)!=="$'")return null;let n=t+2,r="";for(;n<e.length&&e[n]!=="'";)if(e[n]==="\\"&&n+1<e.length){let i=e[n+1];switch(i){case"n":r+=`
60
+ `;break;case"t":r+=" ";break;case"r":r+="\r";break;case"\\":r+="\\";break;case"'":r+="'";break;default:r+=i}n+=2}else r+=e[n],n++;e[n]==="'"&&n++;let s=Number.parseInt(r,10);return{expr:{type:"ArithNumber",value:Number.isNaN(s)?0:s},pos:n}}function Qa(e,t){if(e.slice(t,t+2)!=='$"')return null;let n=t+2,r="";for(;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?(r+=e[n+1],n+=2):(r+=e[n],n++);e[n]==='"'&&n++;let s=Number.parseInt(r,10);return{expr:{type:"ArithNumber",value:Number.isNaN(s)?0:s},pos:n}}function Qu(e){let t="",n=0;for(;n<e.length;)if(e[n]==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?(t+=e[n+1],n+=2):(t+=e[n],n++);n<e.length&&n++}else t+=e[n],n++;return t}function ne(e,t){let n=Qu(t),{expr:r,pos:s}=pn(e,n,0),i=de(n,s);if(i<n.length){let a=t.slice(i).trim();if(a)return{type:"ArithmeticExpression",originalText:t,expression:{type:"ArithSyntaxError",errorToken:a,message:`${a}: syntax error: invalid arithmetic operator (error token is "${a}")`}}}return{type:"ArithmeticExpression",expression:r,originalText:t}}function Be(e,t){return{expr:{type:"ArithSyntaxError",errorToken:e,message:`syntax error: operand expected (error token is "${e}")`},pos:t}}function We(e,t){return de(e,t)>=e.length}function pn(e,t,n){return Ku(e,t,n)}function Zt(e,t,n){return e.withDepth(()=>pn(e,t,n))}function Ku(e,t,n){let{expr:r,pos:s}=On(e,t,n);for(s=de(t,s);t[s]===",";){if(s++,We(t,s))return Be(",",s);let{expr:a,pos:o}=On(e,t,s);r={type:"ArithBinary",operator:",",left:r,right:a},s=de(t,o)}return{expr:r,pos:s}}function On(e,t,n){let{expr:r,pos:s}=Xu(e,t,n);if(s=de(t,s),t[s]==="?"){s++;let{expr:i,pos:a}=Zt(e,t,s);if(s=de(t,a),t[s]===":"){s++;let{expr:o,pos:l}=Zt(e,t,s);return{expr:{type:"ArithTernary",condition:r,consequent:i,alternate:o},pos:l}}}return{expr:r,pos:s}}function Xu(e,t,n){let{expr:r,pos:s}=Ka(e,t,n);for(;s=de(t,s),t.slice(s,s+2)==="||";){if(s+=2,We(t,s))return Be("||",s);let{expr:a,pos:o}=Ka(e,t,s);r={type:"ArithBinary",operator:"||",left:r,right:a},s=o}return{expr:r,pos:s}}function Ka(e,t,n){let{expr:r,pos:s}=Xa(e,t,n);for(;s=de(t,s),t.slice(s,s+2)==="&&";){if(s+=2,We(t,s))return Be("&&",s);let{expr:a,pos:o}=Xa(e,t,s);r={type:"ArithBinary",operator:"&&",left:r,right:a},s=o}return{expr:r,pos:s}}function Xa(e,t,n){let{expr:r,pos:s}=Ya(e,t,n);for(;s=de(t,s),t[s]==="|"&&t[s+1]!=="|";){if(s++,We(t,s))return Be("|",s);let{expr:a,pos:o}=Ya(e,t,s);r={type:"ArithBinary",operator:"|",left:r,right:a},s=o}return{expr:r,pos:s}}function Ya(e,t,n){let{expr:r,pos:s}=Ja(e,t,n);for(;s=de(t,s),t[s]==="^";){if(s++,We(t,s))return Be("^",s);let{expr:a,pos:o}=Ja(e,t,s);r={type:"ArithBinary",operator:"^",left:r,right:a},s=o}return{expr:r,pos:s}}function Ja(e,t,n){let{expr:r,pos:s}=eo(e,t,n);for(;s=de(t,s),t[s]==="&"&&t[s+1]!=="&";){if(s++,We(t,s))return Be("&",s);let{expr:a,pos:o}=eo(e,t,s);r={type:"ArithBinary",operator:"&",left:r,right:a},s=o}return{expr:r,pos:s}}function eo(e,t,n){let{expr:r,pos:s}=to(e,t,n);for(;s=de(t,s),t.slice(s,s+2)==="=="||t.slice(s,s+2)==="!=";){let i=t.slice(s,s+2);if(s+=2,We(t,s))return Be(i,s);let{expr:a,pos:o}=to(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}return{expr:r,pos:s}}function to(e,t,n){let{expr:r,pos:s}=ks(e,t,n);for(;;)if(s=de(t,s),t.slice(s,s+2)==="<="||t.slice(s,s+2)===">="){let i=t.slice(s,s+2);if(s+=2,We(t,s))return Be(i,s);let{expr:a,pos:o}=ks(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}else if(t[s]==="<"||t[s]===">"){let i=t[s];if(s++,We(t,s))return Be(i,s);let{expr:a,pos:o}=ks(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}else break;return{expr:r,pos:s}}function ks(e,t,n){let{expr:r,pos:s}=no(e,t,n);for(;s=de(t,s),t.slice(s,s+2)==="<<"||t.slice(s,s+2)===">>";){let i=t.slice(s,s+2);if(s+=2,We(t,s))return Be(i,s);let{expr:a,pos:o}=no(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}return{expr:r,pos:s}}function no(e,t,n){let{expr:r,pos:s}=ro(e,t,n);for(;s=de(t,s),(t[s]==="+"||t[s]==="-")&&t[s+1]!==t[s];){let i=t[s];if(s++,We(t,s))return Be(i,s);let{expr:a,pos:o}=ro(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}return{expr:r,pos:s}}function ro(e,t,n){let{expr:r,pos:s}=pr(e,t,n);for(;;)if(s=de(t,s),t[s]==="*"&&t[s+1]!=="*"){if(s++,We(t,s))return Be("*",s);let{expr:a,pos:o}=pr(e,t,s);r={type:"ArithBinary",operator:"*",left:r,right:a},s=o}else if(t[s]==="/"||t[s]==="%"){let i=t[s];if(s++,We(t,s))return Be(i,s);let{expr:a,pos:o}=pr(e,t,s);r={type:"ArithBinary",operator:i,left:r,right:a},s=o}else break;return{expr:r,pos:s}}function pr(e,t,n){let{expr:r,pos:s}=Ns(e,t,n),i=de(t,s);if(t.slice(i,i+2)==="**"){if(i+=2,We(t,i))return Be("**",i);let{expr:o,pos:l}=e.withDepth(()=>pr(e,t,i));return{expr:{type:"ArithBinary",operator:"**",left:r,right:o},pos:l}}return{expr:r,pos:s}}function Ns(e,t,n){let r=de(t,n);if(t.slice(r,r+2)==="++"||t.slice(r,r+2)==="--"){let s=t.slice(r,r+2);r+=2;let{expr:i,pos:a}=e.withDepth(()=>Ns(e,t,r));return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:a}}if(t[r]==="+"||t[r]==="-"||t[r]==="!"||t[r]==="~"){let s=t[r];r++;let{expr:i,pos:a}=e.withDepth(()=>Ns(e,t,r));return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:a}}return Ju(e,t,r)}function Yu(e,t){let n=e[t];return n==="$"||n==="`"}function Ju(e,t,n){let{expr:r,pos:s}=so(e,t,n,!1),i=[r];for(;Yu(t,s);){let{expr:o,pos:l}=so(e,t,s,!0);i.push(o),s=l}i.length>1&&(r={type:"ArithConcat",parts:i});let a;if(t[s]==="["&&r.type==="ArithConcat"){s++;let{expr:o,pos:l}=Zt(e,t,s);a=o,s=l,t[s]==="]"&&s++}if(a&&r.type==="ArithConcat"&&(r={type:"ArithDynamicElement",nameExpr:r,subscript:a},a=void 0),s=de(t,s),r.type==="ArithConcat"||r.type==="ArithVariable"||r.type==="ArithDynamicElement"){for(let o of dr)if(t.slice(s,s+o.length)===o&&t.slice(s,s+o.length+1)!=="=="){s+=o.length;let{expr:l,pos:c}=e.withDepth(()=>On(e,t,s));return r.type==="ArithDynamicElement"?{expr:{type:"ArithDynamicAssignment",operator:o,target:r.nameExpr,subscript:r.subscript,value:l},pos:c}:r.type==="ArithConcat"?{expr:{type:"ArithDynamicAssignment",operator:o,target:r,value:l},pos:c}:{expr:{type:"ArithAssignment",operator:o,variable:r.name,value:l},pos:c}}}if(t.slice(s,s+2)==="++"||t.slice(s,s+2)==="--"){let o=t.slice(s,s+2);return s+=2,{expr:{type:"ArithUnary",operator:o,operand:r,prefix:!1},pos:s}}return{expr:r,pos:s}}function so(e,t,n,r=!1){let s=de(t,n),i=Za(Zt,e,t,s);if(i)return i;let a=Ha(t,s);if(a)return a;let o=Qa(t,s);if(o)return o;if(t.slice(s,s+2)==="$("&&t[s+2]!=="("){s+=2;let c=1,u=s;for(;s<t.length&&c>0;)t[s]==="("?c++:t[s]===")"&&c--,c>0&&s++;let f=t.slice(u,s);return s++,{expr:{type:"ArithCommandSubst",command:f},pos:s}}if(t[s]==="`"){s++;let c=s;for(;s<t.length&&t[s]!=="`";)s++;let u=t.slice(c,s);return t[s]==="`"&&s++,{expr:{type:"ArithCommandSubst",command:u},pos:s}}if(t[s]==="("){s++;let{expr:c,pos:u}=Zt(e,t,s);return s=de(t,u),t[s]===")"&&s++,{expr:{type:"ArithGroup",expression:c},pos:s}}if(t[s]==="'"){s++;let c="";for(;s<t.length&&t[s]!=="'";)c+=t[s],s++;t[s]==="'"&&s++;let u=Number.parseInt(c,10);return{expr:{type:"ArithSingleQuote",content:c,value:Number.isNaN(u)?0:u},pos:s}}if(t[s]==='"'){s++;let c="";for(;s<t.length&&t[s]!=='"';)t[s]==="\\"&&s+1<t.length?(c+=t[s+1],s+=2):(c+=t[s],s++);t[s]==='"'&&s++;let u=c.trim();if(!u)return{expr:{type:"ArithNumber",value:0},pos:s};let{expr:f}=Zt(e,u,0);return{expr:f,pos:s}}if(/[0-9]/.test(t[s])){let c="",u=!1,f=!1;for(;s<t.length;){let p=t[s];if(u)if(/[0-9a-zA-Z@_]/.test(p))c+=p,s++;else break;else if(p==="#")u=!0,c+=p,s++;else if(c==="0"&&(p==="x"||p==="X")&&s+1<t.length&&/[0-9a-fA-F]/.test(t[s+1]))f=!0,c+=p,s++;else if(f&&/[0-9a-fA-F]/.test(p))c+=p,s++;else if(!f&&/[0-9]/.test(p))c+=p,s++;else break}if(s<t.length&&/[a-zA-Z_]/.test(t[s])){let p=c;for(;s<t.length&&/[a-zA-Z0-9_]/.test(t[s]);)p+=t[s],s++;return{expr:{type:"ArithSyntaxError",errorToken:p,message:`${p}: value too great for base (error token is "${p}")`},pos:s}}if(t[s]==="."&&/[0-9]/.test(t[s+1]))throw new ie(`${c}.${t[s+1]}...: syntax error: invalid arithmetic operator`);if(t[s]==="["){let p=t.slice(s).trim();return{expr:{type:"ArithNumberSubscript",number:c,errorToken:p},pos:t.length}}return{expr:{type:"ArithNumber",value:_n(c)},pos:s}}if(t[s]==="$"&&t[s+1]==="{"){let c=s+2,u=1,f=c;for(;f<t.length&&u>0;)t[f]==="{"?u++:t[f]==="}"&&u--,u>0&&f++;let d=t.slice(c,f),p=f+1;if(t[p]==="#"){let h=p+1;for(;h<t.length&&/[0-9a-zA-Z@_]/.test(t[h]);)h++;let m=t.slice(p+1,h);return{expr:{type:"ArithDynamicBase",baseExpr:d,value:m},pos:h}}if(/[0-9]/.test(t[p])||t[p]==="x"||t[p]==="X"){let h=p;if(t[p]==="x"||t[p]==="X")for(h++;h<t.length&&/[0-9a-fA-F]/.test(t[h]);)h++;else for(;h<t.length&&/[0-9]/.test(t[h]);)h++;let m=t.slice(p,h);return{expr:{type:"ArithDynamicNumber",prefix:d,suffix:m},pos:h}}return s=p,{expr:{type:"ArithBracedExpansion",content:d},pos:s}}if(t[s]==="$"&&s+1<t.length&&/[0-9]/.test(t[s+1])){s++;let c="";for(;s<t.length&&/[0-9]/.test(t[s]);)c+=t[s],s++;return{expr:{type:"ArithVariable",name:c,hasDollarPrefix:!0},pos:s}}if(t[s]==="$"&&s+1<t.length&&/[*@#?\-!$]/.test(t[s+1])){let c=t[s+1];return s+=2,{expr:{type:"ArithSpecialVar",name:c},pos:s}}let l=!1;if(t[s]==="$"&&s+1<t.length&&/[a-zA-Z_]/.test(t[s+1])&&(l=!0,s++),s<t.length&&/[a-zA-Z_]/.test(t[s])){let c="";for(;s<t.length&&/[a-zA-Z0-9_]/.test(t[s]);)c+=t[s],s++;if(t[s]==="["&&!r){s++;let u;if(t[s]==="'"||t[s]==='"'){let d=t[s];for(s++,u="";s<t.length&&t[s]!==d;)u+=t[s],s++;t[s]===d&&s++,s=de(t,s),t[s]==="]"&&s++}let f;if(u===void 0){let{expr:d,pos:p}=Zt(e,t,s);f=d,s=p,t[s]==="]"&&s++}if(s=de(t,s),t[s]==="["&&f)return{expr:{type:"ArithDoubleSubscript",array:c,index:f},pos:s};if(!r){for(let d of dr)if(t.slice(s,s+d.length)===d&&t.slice(s,s+d.length+1)!=="=="){s+=d.length;let{expr:p,pos:h}=e.withDepth(()=>On(e,t,s));return{expr:{type:"ArithAssignment",operator:d,variable:c,subscript:f,stringKey:u,value:p},pos:h}}}return{expr:{type:"ArithArrayElement",array:c,index:f,stringKey:u},pos:s}}if(s=de(t,s),!r){for(let u of dr)if(t.slice(s,s+u.length)===u&&t.slice(s,s+u.length+1)!=="=="){s+=u.length;let{expr:f,pos:d}=e.withDepth(()=>On(e,t,s));return{expr:{type:"ArithAssignment",operator:u,variable:c,value:f},pos:d}}}return{expr:{type:"ArithVariable",name:c,hasDollarPrefix:l},pos:s}}if(t[s]==="#"){let c=s+1;for(;c<t.length&&t[c]!==`
61
+ `;)c++;let u=t.slice(s,c).trim()||"#";return{expr:{type:"ArithSyntaxError",errorToken:u,message:`${u}: syntax error: invalid arithmetic operator (error token is "${u}")`},pos:t.length}}return{expr:{type:"ArithNumber",value:0},pos:s}}function ef(e){let t="",n=0;for(;n<e.length;){let r=e[n];if(r<128){t+=String.fromCharCode(r),n++;continue}if((r&224)===192){if(n+1<e.length&&(e[n+1]&192)===128&&r>=194){let s=(r&31)<<6|e[n+1]&63;t+=String.fromCharCode(s),n+=2;continue}t+=String.fromCharCode(r),n++;continue}if((r&240)===224){if(n+2<e.length&&(e[n+1]&192)===128&&(e[n+2]&192)===128){if(r===224&&e[n+1]<160){t+=String.fromCharCode(r),n++;continue}let s=(r&15)<<12|(e[n+1]&63)<<6|e[n+2]&63;if(s>=55296&&s<=57343){t+=String.fromCharCode(r),n++;continue}t+=String.fromCharCode(s),n+=3;continue}t+=String.fromCharCode(r),n++;continue}if((r&248)===240&&r<=244){if(n+3<e.length&&(e[n+1]&192)===128&&(e[n+2]&192)===128&&(e[n+3]&192)===128){if(r===240&&e[n+1]<144){t+=String.fromCharCode(r),n++;continue}let s=(r&7)<<18|(e[n+1]&63)<<12|(e[n+2]&63)<<6|e[n+3]&63;if(s>1114111){t+=String.fromCharCode(r),n++;continue}t+=String.fromCodePoint(s),n+=4;continue}t+=String.fromCharCode(r),n++;continue}t+=String.fromCharCode(r),n++}return t}function oo(e,t,n){let r=n+1;for(;r<t.length&&/[a-zA-Z0-9_-]/.test(t[r]);)r++;return r}function Ps(e,t,n,r,s){let i=1,a=n+1;for(;a<t.length&&i>0;)t[a]===r?i++:t[a]===s&&i--,i>0&&a++;return i===0?a:-1}function Ht(e,t,n){let r=n,s=1;for(;r<t.length&&s>0;){let i=t[r];if(i==="\\"&&r+1<t.length){r+=2;continue}if(i==="'"){let a=t.indexOf("'",r+1);if(a!==-1){r=a+1;continue}}if(i==='"'){for(r++;r<t.length&&t[r]!=='"';)t[r]==="\\"&&r+1<t.length?r+=2:r++;r<t.length&&r++;continue}i==="{"?s++:i==="}"&&s--,s>0&&r++}return r}function lo(e,t,n){let r=n,s=!1;for(;r<t.length;){let i=t[r];if(i==="/"&&s||i==="}")break;if(i==="'"){let a=t.indexOf("'",r+1);if(a!==-1){r=a+1,s=!0;continue}}if(i==='"'){for(r++;r<t.length&&t[r]!=='"';)t[r]==="\\"&&r+1<t.length?r+=2:r++;r<t.length&&r++,s=!0;continue}i==="\\"?(r+=2,s=!0):(r++,s=!0)}return r}function co(e,t,n){let r=n,s="";for(;r<t.length;){let i=t[r];if(i==="*"||i==="?")s+=i,r++;else if(i==="["){let a=tf(t,r);a===-1?(s+=i,r++):(s+=t.slice(r,a+1),r=a+1)}else break}return{pattern:s,endIndex:r}}function tf(e,t){let n=t+1;for(n<e.length&&e[n]==="^"&&n++,n<e.length&&e[n]==="]"&&n++;n<e.length;){let r=e[n];if(r==="\\"&&n+1<e.length){let s=e[n+1];if(s==='"'||s==="'")return-1;n+=2;continue}if(r==="]")return n;if(r==='"'||r==="$"||r==="`")return-1;if(r==="'"){let s=e.indexOf("'",n+1);if(s!==-1){n=s+1;continue}}if(r==="["&&n+1<e.length&&e[n+1]===":"){let s=e.indexOf(":]",n+2);if(s!==-1){n=s+2;continue}}if(r==="["&&n+1<e.length&&(e[n+1]==="."||e[n+1]==="=")){let i=`${e[n+1]}]`,a=e.indexOf(i,n+2);if(a!==-1){n=a+2;continue}}n++}return-1}function uo(e,t,n){let r="",s=n;for(;s<t.length&&t[s]!=="'";){let i=t[s];if(i==="\\"&&s+1<t.length)switch(t[s+1]){case"n":r+=`
62
+ `,s+=2;break;case"t":r+=" ",s+=2;break;case"r":r+="\r",s+=2;break;case"\\":r+="\\",s+=2;break;case"'":r+="'",s+=2;break;case'"':r+='"',s+=2;break;case"a":r+="\x07",s+=2;break;case"b":r+="\b",s+=2;break;case"e":case"E":r+="\x1B",s+=2;break;case"f":r+="\f",s+=2;break;case"v":r+="\v",s+=2;break;case"x":{let o=[],l=s;for(;l+1<t.length&&t[l]==="\\"&&t[l+1]==="x";){let c=t.slice(l+2,l+4),u=parseInt(c,16);if(!Number.isNaN(u)&&c.length>0)o.push(u),l+=2+c.length;else break}o.length>0?(r+=ef(o),s=l):(r+="\\x",s+=2);break}case"u":{let o=t.slice(s+2,s+6),l=parseInt(o,16);Number.isNaN(l)?(r+="\\u",s+=2):(r+=String.fromCharCode(l),s+=6);break}case"c":{if(s+2<t.length){let l=t[s+2].charCodeAt(0)&31;r+=String.fromCharCode(l),s+=3}else r+="\\c",s+=2;break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let o="",l=s+1;for(;l<t.length&&l<s+4&&/[0-7]/.test(t[l]);)o+=t[l],l++;let c=parseInt(o,8);r+=String.fromCharCode(c),s=l;break}default:r+=i,s++}else r+=i,s++}return s<t.length&&t[s]==="'"&&s++,{part:L.literal(r),endIndex:s}}function Cs(e,t){let n=t.trim();return n===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:ne(e,n)}function ao(e){let t=[],n="",r=0;for(let s=0;s<e.length;s++){let i=e[s];i==="{"?(r++,n+=i):i==="}"?(r--,n+=i):i===","&&r===0?(t.push(n),n=""):n+=i}return t.push(n),t}function fo(e,t,n,r){let s=Ps(e,t,n,"{","}");if(s===-1)return null;let i=t.slice(n+1,s),a=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(a)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(a[1],10),end:Number.parseInt(a[2],10),step:a[3]?Number.parseInt(a[3],10):void 0,startStr:a[1],endStr:a[2]}]},endIndex:s+1};let o=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return o?{part:{type:"BraceExpansion",items:[{type:"Range",start:o[1],end:o[2],step:o[3]?Number.parseInt(o[3],10):void 0}]},endIndex:s+1}:i.includes(",")&&r?{part:{type:"BraceExpansion",items:ao(i).map(u=>e.withDepth(()=>({type:"Word",word:L.word(r(e,u,!1,!1,!1))})))},endIndex:s+1}:i.includes(",")?{part:{type:"BraceExpansion",items:ao(i).map(u=>({type:"Word",word:L.word([L.literal(u)])}))},endIndex:s+1}:null}function Ds(e,t){let n="";for(let r of t.parts)switch(r.type){case"Literal":n+=r.value;break;case"SingleQuoted":n+=`'${r.value}'`;break;case"Escaped":n+=r.value;break;case"DoubleQuoted":n+='"';for(let s of r.parts)s.type==="Literal"||s.type==="Escaped"?n+=s.value:s.type==="ParameterExpansion"&&(n+=`\${${s.parameter}}`);n+='"';break;case"ParameterExpansion":n+=`\${${r.parameter}}`;break;case"Glob":n+=r.pattern;break;case"TildeExpansion":n+="~",r.user&&(n+=r.user);break;case"BraceExpansion":{n+="{";let s=[];for(let i of r.items)if(i.type==="Range"){let a=i.startStr??String(i.start),o=i.endStr??String(i.end);i.step!==void 0?s.push(`${a}..${o}..${i.step}`):s.push(`${a}..${o}`)}else s.push(Ds(e,i.word));s.length===1&&r.items[0].type==="Range"?n+=s[0]:n+=s.join(","),n+="}";break}default:n+=r.type}return n}function po(e,t){return{[y.LESS]:"<",[y.GREAT]:">",[y.DGREAT]:">>",[y.LESSAND]:"<&",[y.GREATAND]:">&",[y.LESSGREAT]:"<>",[y.CLOBBER]:">|",[y.TLESS]:"<<<",[y.AND_GREAT]:"&>",[y.AND_DGREAT]:"&>>",[y.DLESS]:"<",[y.DLESSDASH]:"<"}[t]||">"}function hr(e){let t=e.current(),n=t.type;if(n===y.NUMBER){let r=e.peek(1);return t.end!==r.start?!1:ja.has(r.type)}if(n===y.FD_VARIABLE){let r=e.peek(1);return Ga.has(r.type)}return Ua.has(n)}function mr(e){let t=null,n;e.check(y.NUMBER)?t=Number.parseInt(e.advance().value,10):e.check(y.FD_VARIABLE)&&(n=e.advance().value);let r=e.advance(),s=po(e,r.type);if(r.type===y.DLESS||r.type===y.DLESSDASH)return nf(e,s,t,r.type===y.DLESSDASH);e.isWord()||e.error("Expected redirection target");let i=e.parseWord();return L.redirection(s,i,t,n)}function nf(e,t,n,r){e.isWord()||e.error("Expected here-document delimiter");let s=e.advance(),i=s.value,a=s.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let o=L.redirection(r?"<<-":"<<",L.hereDoc(i,L.word([]),r,a),n);return e.addPendingHeredoc(o,i,r,a),o}function mo(e){let t=e.current().line,n=[],r=null,s=[],i=[];for(;e.check(y.ASSIGNMENT_WORD)||hr(e);)e.checkIterationLimit(),e.check(y.ASSIGNMENT_WORD)?n.push(rf(e)):i.push(mr(e));if(e.isWord())r=e.parseWord();else if(n.length>0&&(e.check(y.DBRACK_START)||e.check(y.DPAREN_START))){let o=e.advance();r=L.word([L.literal(o.value)])}for(;(!e.isStatementEnd()||e.check(y.RBRACE))&&!e.check(y.PIPE,y.PIPE_AMP);)if(e.checkIterationLimit(),hr(e))i.push(mr(e));else if(e.check(y.RBRACE)){let o=e.advance();s.push(e.parseWordFromString(o.value,!1,!1))}else if(e.check(y.LBRACE)){let o=e.advance();s.push(e.parseWordFromString(o.value,!1,!1))}else if(e.check(y.DBRACK_END)){let o=e.advance();s.push(e.parseWordFromString(o.value,!1,!1))}else if(e.isWord())s.push(e.parseWord());else if(e.check(y.ASSIGNMENT_WORD)){let o=e.advance(),l=o.value,c=l.endsWith("="),u=l.endsWith("=(");if((c||u)&&(u||e.check(y.LPAREN))){let f=u?l.slice(0,-2):l.slice(0,-1);u||e.expect(y.LPAREN);let d=Rs(e);e.expect(y.RPAREN);let p=d.map(m=>Ds(e,m)),h=`${f}=(${p.join(" ")})`;s.push(e.parseWordFromString(h,!1,!1,!0))}else s.push(e.parseWordFromString(l,o.quoted,o.singleQuoted,!0))}else if(e.check(y.LPAREN))e.error("syntax error near unexpected token `('");else break;let a=L.simpleCommand(r,s,n,i);return a.line=t,a}function rf(e){let t=e.expect(y.ASSIGNMENT_WORD),n=t.value,r=n.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);r||e.error(`Invalid assignment: ${n}`);let s=r[0],i,a=s.length;if(n[a]==="["){let f=0,d=a+1;for(;a<n.length;a++)if(n[a]==="[")f++;else if(n[a]==="]"&&(f--,f===0))break;f!==0&&e.error(`Invalid assignment: ${n}`),i=n.slice(d,a),a++}let o=n[a]==="+";o&&a++,n[a]!=="="&&e.error(`Invalid assignment: ${n}`),a++;let l=n.slice(a);if(l==="("){let f=Rs(e);e.expect(y.RPAREN);let d=i!==void 0?`${s}[${i}]`:s;return L.assignment(d,null,o,f)}if(l===""&&e.check(y.LPAREN)){let f=e.current();if(t.end===f.start){e.advance();let d=Rs(e);e.expect(y.RPAREN);let p=i!==void 0?`${s}[${i}]`:s;return L.assignment(p,null,o,d)}}let c=l?e.parseWordFromString(l,t.quoted,t.singleQuoted,!0):null,u=i!==void 0?`${s}[${i}]`:s;return L.assignment(u,c,o,null)}var sf=new Set([y.AMP,y.PIPE,y.PIPE_AMP,y.SEMICOLON,y.AND_AND,y.OR_OR,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND]);function Rs(e){let t=[];for(e.skipNewlines();!e.check(y.RPAREN,y.EOF);)e.checkIterationLimit(),e.isWord()?t.push(e.parseWord()):sf.has(e.current().type)?e.error(`syntax error near unexpected token \`${e.current().value}'`):e.advance(),e.skipNewlines();return t}function Is(e,t){e.expect(y.IF);let n=[],r=e.parseCompoundList();e.expect(y.THEN);let s=e.parseCompoundList();if(s.length===0){let o=e.check(y.FI)?"fi":e.check(y.ELSE)?"else":e.check(y.ELIF)?"elif":"fi";e.error(`syntax error near unexpected token \`${o}'`)}for(n.push({condition:r,body:s});e.check(y.ELIF);){e.advance();let o=e.parseCompoundList();e.expect(y.THEN);let l=e.parseCompoundList();if(l.length===0){let c=e.check(y.FI)?"fi":e.check(y.ELSE)?"else":e.check(y.ELIF)?"elif":"fi";e.error(`syntax error near unexpected token \`${c}'`)}n.push({condition:o,body:l})}let i=null;e.check(y.ELSE)&&(e.advance(),i=e.parseCompoundList(),i.length===0&&e.error("syntax error near unexpected token `fi'")),e.expect(y.FI);let a=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.ifNode(n,i,a)}function _s(e,t){let n=e.expect(y.FOR);if(e.check(y.DPAREN_START))return of(e,t,n.line);e.isWord()||e.error("Expected variable name in for loop");let s=e.advance().value,i=null;if(e.skipNewlines(),e.check(y.IN))for(e.advance(),i=[];!e.check(y.SEMICOLON,y.NEWLINE,y.DO,y.EOF)&&e.isWord();)i.push(e.parseWord());e.check(y.SEMICOLON)&&e.advance(),e.skipNewlines(),e.expect(y.DO);let a=e.parseCompoundList();e.expect(y.DONE);let o=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.forNode(s,i,a,o)}function of(e,t,n){e.expect(y.DPAREN_START);let r=null,s=null,i=null,a=["","",""],o=0,l=0;for(;!e.check(y.DPAREN_END,y.EOF);){let f=e.advance();if(f.type===y.SEMICOLON&&l===0){if(o++,o>2)break}else f.value==="("&&l++,f.value===")"&&l--,a[o]+=f.value}e.expect(y.DPAREN_END),a[0].trim()&&(r=ne(e,a[0].trim())),a[1].trim()&&(s=ne(e,a[1].trim())),a[2].trim()&&(i=ne(e,a[2].trim())),e.skipNewlines(),e.check(y.SEMICOLON)&&e.advance(),e.skipNewlines();let c;e.check(y.LBRACE)?(e.advance(),c=e.parseCompoundList(),e.expect(y.RBRACE)):(e.expect(y.DO),c=e.parseCompoundList(),e.expect(y.DONE));let u=t?.skipRedirections?[]:e.parseOptionalRedirections();return{type:"CStyleFor",init:r,condition:s,update:i,body:c,redirections:u,line:n}}function Os(e,t){e.expect(y.WHILE);let n=e.parseCompoundList();e.expect(y.DO);let r=e.parseCompoundList();r.length===0&&e.error("syntax error near unexpected token `done'"),e.expect(y.DONE);let s=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.whileNode(n,r,s)}function Ls(e,t){e.expect(y.UNTIL);let n=e.parseCompoundList();e.expect(y.DO);let r=e.parseCompoundList();r.length===0&&e.error("syntax error near unexpected token `done'"),e.expect(y.DONE);let s=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.untilNode(n,r,s)}function Ts(e,t){e.expect(y.CASE),e.isWord()||e.error("Expected word after 'case'");let n=e.parseWord();e.skipNewlines(),e.expect(y.IN),e.skipNewlines();let r=[];for(;!e.check(y.ESAC,y.EOF);){e.checkIterationLimit();let i=e.getPos(),a=lf(e);if(a&&r.push(a),e.skipNewlines(),e.getPos()===i&&!a)break}e.expect(y.ESAC);let s=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.caseNode(n,r,s)}function lf(e){e.check(y.LPAREN)&&e.advance();let t=[];for(;e.isWord()&&(t.push(e.parseWord()),e.check(y.PIPE));)e.advance();if(t.length===0)return null;e.expect(y.RPAREN),e.skipNewlines();let n=[];for(;!e.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND,y.ESAC,y.EOF);){e.checkIterationLimit(),e.isWord()&&e.peek(1).type===y.RPAREN&&e.error("syntax error near unexpected token `)'"),e.check(y.LPAREN)&&e.peek(1).type===y.WORD&&e.error(`syntax error near unexpected token \`${e.peek(1).value}'`);let s=e.getPos(),i=e.parseStatement();if(i&&n.push(i),e.skipSeparators(!1),e.getPos()===s&&!i)break}let r=";;";return e.check(y.DSEMI)?(e.advance(),r=";;"):e.check(y.SEMI_AND)?(e.advance(),r=";&"):e.check(y.SEMI_SEMI_AND)&&(e.advance(),r=";;&"),L.caseItem(t,n,r)}function Ms(e,t){e.expect(y.LPAREN);let n=e.parseCompoundList();e.expect(y.RPAREN);let r=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.subshell(n,r)}function Bs(e,t){e.expect(y.LBRACE);let n=e.parseCompoundList();e.expect(y.RBRACE);let r=t?.skipRedirections?[]:e.parseOptionalRedirections();return L.group(n,r)}var uf=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],ff=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function yo(e){return e.isWord()||e.check(y.LBRACE)||e.check(y.RBRACE)||e.check(y.ASSIGNMENT_WORD)}function go(e){if(e.check(y.BANG)&&e.peek(1).type===y.LPAREN){e.advance(),e.advance();let t=1,n="!(";for(;t>0&&!e.check(y.EOF);)if(e.check(y.LPAREN))t++,n+="(",e.advance();else if(e.check(y.RPAREN))t--,t>0&&(n+=")"),e.advance();else if(e.isWord())n+=e.advance().value;else if(e.check(y.PIPE))n+="|",e.advance();else break;return n+=")",e.parseWordFromString(n,!1,!1,!1,!1,!0)}return e.parseWordNoBraceExpansion()}function Fs(e){return e.skipNewlines(),df(e)}function df(e){let t=wo(e);for(e.skipNewlines();e.check(y.OR_OR);){e.advance(),e.skipNewlines();let n=wo(e);t={type:"CondOr",left:t,right:n},e.skipNewlines()}return t}function wo(e){let t=Ws(e);for(e.skipNewlines();e.check(y.AND_AND);){e.advance(),e.skipNewlines();let n=Ws(e);t={type:"CondAnd",left:t,right:n},e.skipNewlines()}return t}function Ws(e){return e.skipNewlines(),e.check(y.BANG)?(e.advance(),e.skipNewlines(),{type:"CondNot",operand:e.withDepth(()=>Ws(e))}):pf(e)}function pf(e){if(e.check(y.LPAREN)){e.advance();let t=e.withDepth(()=>Fs(e));return e.expect(y.RPAREN),{type:"CondGroup",expression:t}}if(yo(e)){let t=e.current(),n=t.value;if(uf.includes(n)&&!t.quoted){if(e.advance(),e.check(y.DBRACK_END)&&e.error(`Expected operand after ${n}`),yo(e)){let i=e.parseWordNoBraceExpansion();return{type:"CondUnary",operator:n,operand:i}}let s=e.current();e.error(`unexpected argument \`${s.value}' to conditional unary operator`)}let r=e.parseWordNoBraceExpansion();if(e.isWord()&&ff.includes(e.current().value)){let s=e.advance().value,i;return s==="=~"?i=hf(e):s==="=="||s==="!="?i=go(e):i=e.parseWordNoBraceExpansion(),{type:"CondBinary",operator:s,left:r,right:i}}if(e.check(y.LESS)){e.advance();let s=e.parseWordNoBraceExpansion();return{type:"CondBinary",operator:"<",left:r,right:s}}if(e.check(y.GREAT)){e.advance();let s=e.parseWordNoBraceExpansion();return{type:"CondBinary",operator:">",left:r,right:s}}if(e.isWord()&&e.current().value==="="){e.advance();let s=go(e);return{type:"CondBinary",operator:"==",left:r,right:s}}return{type:"CondWord",word:r}}e.error("Expected conditional expression")}function hf(e){let t=[],n=0,r=-1,s=e.getInput(),i=()=>e.check(y.DBRACK_END)||e.check(y.AND_AND)||e.check(y.OR_OR)||e.check(y.NEWLINE)||e.check(y.EOF);for(;!i();){let a=e.current(),o=r>=0&&a.start>r;if(n===0&&o)break;if(n>0&&o){let l=s.slice(r,a.start);t.push({type:"Literal",value:l})}if(e.isWord()||e.check(y.ASSIGNMENT_WORD)){let l=e.parseWordForRegex();t.push(...l.parts),r=e.peek(-1).end}else if(e.check(y.LPAREN)){let l=e.advance();t.push({type:"Literal",value:"("}),n++,r=l.end}else if(e.check(y.DPAREN_START)){let l=e.advance();t.push({type:"Literal",value:"(("}),n+=2,r=l.end}else if(e.check(y.DPAREN_END))if(n>=2){let l=e.advance();t.push({type:"Literal",value:"))"}),n-=2,r=l.end}else{if(n===1)break;break}else if(e.check(y.RPAREN))if(n>0){let l=e.advance();t.push({type:"Literal",value:")"}),n--,r=l.end}else break;else if(e.check(y.PIPE)){let l=e.advance();t.push({type:"Literal",value:"|"}),r=l.end}else if(e.check(y.SEMICOLON))if(n>0){let l=e.advance();t.push({type:"Literal",value:";"}),r=l.end}else break;else if(n>0&&e.check(y.LESS)){let l=e.advance();t.push({type:"Literal",value:"<"}),r=l.end}else if(n>0&&e.check(y.GREAT)){let l=e.advance();t.push({type:"Literal",value:">"}),r=l.end}else if(n>0&&e.check(y.DGREAT)){let l=e.advance();t.push({type:"Literal",value:">>"}),r=l.end}else if(n>0&&e.check(y.DLESS)){let l=e.advance();t.push({type:"Literal",value:"<<"}),r=l.end}else if(n>0&&e.check(y.LESSAND)){let l=e.advance();t.push({type:"Literal",value:"<&"}),r=l.end}else if(n>0&&e.check(y.GREATAND)){let l=e.advance();t.push({type:"Literal",value:">&"}),r=l.end}else if(n>0&&e.check(y.LESSGREAT)){let l=e.advance();t.push({type:"Literal",value:"<>"}),r=l.end}else if(n>0&&e.check(y.CLOBBER)){let l=e.advance();t.push({type:"Literal",value:">|"}),r=l.end}else if(n>0&&e.check(y.TLESS)){let l=e.advance();t.push({type:"Literal",value:"<<<"}),r=l.end}else if(n>0&&e.check(y.AMP)){let l=e.advance();t.push({type:"Literal",value:"&"}),r=l.end}else if(n>0&&e.check(y.LBRACE)){let l=e.advance();t.push({type:"Literal",value:"{"}),r=l.end}else if(n>0&&e.check(y.RBRACE)){let l=e.advance();t.push({type:"Literal",value:"}"}),r=l.end}else break}return t.length===0&&e.error("Expected regex pattern after =~"),{type:"Word",parts:t}}function Ln(e){return e.length>0?e:[L.literal("")]}function yf(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;){let s=e[r];if(s==="\\"){r+=2;continue}if("@*+?!".includes(s)&&r+1<e.length&&e[r+1]==="("){r++,n++,r++;continue}if(s==="(")n++;else if(s===")"&&(n--,n===0))return r;r++}return-1}function gf(e,t,n){let r=n+1,s=t[r];if("@*#?$!-0123456789".includes(s))return{part:L.parameterExpansion(s),endIndex:r+1};let i="";for(;r<t.length&&/[a-zA-Z0-9_]/.test(t[r]);)i+=t[r],r++;return{part:L.parameterExpansion(i),endIndex:r}}function wf(e,t,n,r=!1){let s=n+2,i=!1;t[s]==="!"&&(i=!0,s++);let a=!1;t[s]==="#"&&!/[}:#%/^,]/.test(t[s+1]||"}")&&(a=!0,s++);let o="",l=t[s];if(/[@*#?$!-]/.test(l)&&!/[a-zA-Z0-9_]/.test(t[s+1]||""))o=l,s++;else for(;s<t.length&&/[a-zA-Z0-9_]/.test(t[s]);)o+=t[s],s++;if(t[s]==="["){let u=Ps(e,t,s,"[","]");if(o+=t.slice(s,u+1),s=u+1,t[s]==="["){let f=1,d=s;for(;d<t.length&&f>0;)t[d]==="{"?f++:t[d]==="}"&&f--,f>0&&d++;let p=t.slice(n+2,d);return{part:L.parameterExpansion("",{type:"BadSubstitution",text:p}),endIndex:d+1}}}if(o===""&&!i&&!a&&t[s]!=="}"){let u=1,f=s;for(;f<t.length&&u>0;)t[f]==="{"?u++:t[f]==="}"&&u--,u>0&&f++;if(u>0)throw new Ae("unexpected EOF while looking for matching '}'",0,0);let d=t.slice(n+2,f);return{part:L.parameterExpansion("",{type:"BadSubstitution",text:d}),endIndex:f+1}}let c=null;if(i){let u=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(u)if(s<t.length&&t[s]!=="}"&&/[:=\-+?#%/^,@]/.test(t[s])){let f=Vs(e,t,s,o,r);f.operation?(c={type:"Indirection",innerOp:f.operation},s=f.endIndex):(c={type:"ArrayKeys",array:u[1],star:u[2]==="*"},o="")}else c={type:"ArrayKeys",array:u[1],star:u[2]==="*"},o="";else if(t[s]==="*"||t[s]==="@"&&!/[QPaAEKkuUL]/.test(t[s+1]||"")){let f=t[s];s++,c={type:"VarNamePrefix",prefix:o,star:f==="*"},o=""}else if(s<t.length&&t[s]!=="}"&&/[:=\-+?#%/^,@]/.test(t[s])){let f=Vs(e,t,s,o,r);f.operation?(c={type:"Indirection",innerOp:f.operation},s=f.endIndex):c={type:"Indirection"}}else c={type:"Indirection"}}else if(a)if(t[s]===":")for(c={type:"LengthSliceError"};s<t.length&&t[s]!=="}";)s++;else t[s]!=="}"&&/[-+=?]/.test(t[s])?e.error(`\${#${o}${t.slice(s,t.indexOf("}",s))}}: bad substitution`):t[s]==="/"?e.error(`\${#${o}${t.slice(s,t.indexOf("}",s))}}: bad substitution`):c={type:"Length"};if(!c&&s<t.length&&t[s]!=="}"){let u=Vs(e,t,s,o,r);c=u.operation,s=u.endIndex}if(s<t.length&&t[s]!=="}"){let u=t[s];if(!/[:\-+=?#%/^,@[]/.test(u)){let f=s;for(;f<t.length&&t[f]!=="}";)f++;let d=t.slice(n,f+1);e.error(`\${${d.slice(2,-1)}}: bad substitution`)}}for(;s<t.length&&t[s]!=="}";)s++;if(s>=t.length)throw new Ae("unexpected EOF while looking for matching '}'",0,0);return{part:L.parameterExpansion(o,c),endIndex:s+1}}function Vs(e,t,n,r,s=!1){let i=n,a=t[i],o=t[i+1]||"";if(a===":"){let l=o;if("-=?+".includes(l)){i+=2;let b=Ht(e,t,i),g=t.slice(i,b),w=e.withDepth(()=>Ct(e,g,!1,!1,!0,!1,s,!1,!1,!0)),S=L.word(Ln(w));if(l==="-")return{operation:{type:"DefaultValue",word:S,checkEmpty:!0},endIndex:b};if(l==="=")return{operation:{type:"AssignDefault",word:S,checkEmpty:!0},endIndex:b};if(l==="?")return{operation:{type:"ErrorIfUnset",word:S,checkEmpty:!0},endIndex:b};if(l==="+")return{operation:{type:"UseAlternative",word:S,checkEmpty:!0},endIndex:b}}i++;let c=Ht(e,t,i),u=t.slice(i,c),f=-1,d=0,p=0;for(let E=0;E<u.length;E++){let b=u[E];if(b==="("||b==="[")d++;else if(b===")"||b==="]")d--;else if(b==="?"&&d===0)p++;else if(b===":"&&d===0)if(p>0)p--;else{f=E;break}}let h=f>=0?u.slice(0,f):u,m=f>=0?u.slice(f+1):null;return{operation:{type:"Substring",offset:Cs(e,h),length:m!==null?Cs(e,m):null},endIndex:c}}if("-=?+".includes(a)){i++;let l=Ht(e,t,i),c=t.slice(i,l),u=e.withDepth(()=>Ct(e,c,!1,!1,!0,!1,s,!1,!1,!0)),f=L.word(Ln(u));if(a==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:l};if(a==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:l};if(a==="?")return{operation:{type:"ErrorIfUnset",word:c?f:null,checkEmpty:!1},endIndex:l};if(a==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:l}}if(a==="#"||a==="%"){let l=o===a,c=a==="#"?"prefix":"suffix";i+=l?2:1;let u=Ht(e,t,i),f=t.slice(i,u),d=e.withDepth(()=>Ct(e,f,!1,!1,!1));return{operation:{type:"PatternRemoval",pattern:L.word(Ln(d)),side:c,greedy:l},endIndex:u}}if(a==="/"){let l=o==="/";i+=l?2:1;let c=null;t[i]==="#"?(c="start",i++):t[i]==="%"&&(c="end",i++);let u;c!==null&&(t[i]==="/"||t[i]==="}")?u=i:u=lo(e,t,i);let f=t.slice(i,u),d=e.withDepth(()=>Ct(e,f,!1,!1,!1)),p=L.word(Ln(d)),h=null,m=u;if(t[u]==="/"){let E=u+1,b=Ht(e,t,E),g=t.slice(E,b),w=e.withDepth(()=>Ct(e,g,!1,!1,!1));h=L.word(Ln(w)),m=b}return{operation:{type:"PatternReplacement",pattern:p,replacement:h,all:l,anchor:c},endIndex:m}}if(a==="^"||a===","){let l=o===a,c=a==="^"?"upper":"lower";i+=l?2:1;let u=Ht(e,t,i),f=t.slice(i,u),d=f?L.word([L.literal(f)]):null;return{operation:{type:"CaseModification",direction:c,all:l,pattern:d},endIndex:u}}return a==="@"&&/[QPaAEKkuUL]/.test(o)?{operation:{type:"Transform",operator:o},endIndex:i+2}:{operation:null,endIndex:i}}function zs(e,t,n,r=!1){let s=n+1;if(s>=t.length)return{part:L.literal("$"),endIndex:s};let i=t[s];if(i==="("&&t[s+1]==="(")return e.isDollarDparenSubshell(t,n)?e.parseCommandSubstitution(t,n):e.parseArithmeticExpansion(t,n);if(i==="["){let a=1,o=s+1;for(;o<t.length&&a>0;)t[o]==="["?a++:t[o]==="]"&&a--,a>0&&o++;if(a===0){let l=t.slice(s+1,o),c=ne(e,l);return{part:L.arithmeticExpansion(c),endIndex:o+1}}}return i==="("?e.parseCommandSubstitution(t,n):i==="{"?wf(e,t,n,r):/[a-zA-Z_0-9@*#?$!-]/.test(i)?gf(e,t,n):{part:L.literal("$"),endIndex:s}}function Eo(e,t){let n=[],r=0,s="",i=()=>{s&&(n.push(L.literal(s)),s="")};for(;r<t.length;){let a=t[r];if(a==="\\"&&r+1<t.length){let o=t[r+1];if(o==="$"||o==="`"||o==='"'||o==="\\"){s+=o,r+=2;continue}s+=a,r++;continue}if(a==="$"){i();let{part:o,endIndex:l}=zs(e,t,r,!0);o&&n.push(o),r=l;continue}if(a==="`"){i();let{part:o,endIndex:l}=e.parseBacktickSubstitution(t,r,!0);n.push(o),r=l;continue}s+=a,r++}return i(),n}function Ef(e,t,n){let r=[],s=n,i="",a=()=>{i&&(r.push(L.literal(i)),i="")};for(;s<t.length&&t[s]!=='"';){let o=t[s];if(o==="\\"&&s+1<t.length){let l=t[s+1];if('"\\$`\n'.includes(l)){i+=l,s+=2;continue}i+=o,s++;continue}if(o==="$"){a();let{part:l,endIndex:c}=zs(e,t,s,!0);l&&r.push(l),s=c;continue}if(o==="`"){a();let{part:l,endIndex:c}=e.parseBacktickSubstitution(t,s,!0);r.push(l),s=c;continue}i+=o,s++}return a(),{part:L.doubleQuoted(r),endIndex:s}}function Ct(e,t,n=!1,r=!1,s=!1,i=!1,a=!1,o=!1,l=!1,c=!1){if(r)return[L.singleQuoted(t)];if(n){let h=Eo(e,t);return[L.doubleQuoted(h)]}if(t.length>=2&&t[0]==='"'&&t[t.length-1]==='"'){let h=t.slice(1,-1),m=!1;for(let E=0;E<h.length;E++){if(h[E]==='"'){m=!0;break}h[E]==="\\"&&E+1<h.length&&E++}if(!m){let E=Eo(e,h);return[L.doubleQuoted(E)]}}let u=[],f=0,d="",p=()=>{d&&(u.push(L.literal(d)),d="")};for(;f<t.length;){let h=t[f];if(h==="\\"&&f+1<t.length){let m=t[f+1];if(l){p(),u.push(L.escaped(m)),f+=2;continue}let E=i?m==="$"||m==="`"||m===`
61
63
  `:m==="$"||m==="`"||m==='"'||m==="'"||m===`
62
- `||u&&m==="}",b=a?"*?[]\\".includes(m):"*?[]\\(){}.^+".includes(m);y?d+=m:b?(h(),c.push(R.escaped(m))):d+=`\\${m}`,f+=2;continue}if(p==="'"&&!a&&!i){h();let m=t.indexOf("'",f+1);if(m===-1){d+=t.slice(f);break}c.push(R.singleQuoted(t.slice(f+1,m))),f=m+1;continue}if(p==='"'&&!i){h();let{part:m,endIndex:y}=su(e,t,f+1);c.push(m),f=y+1;continue}if(p==="$"&&t[f+1]==="'"){h();let{part:m,endIndex:y}=ea(e,t,f+2);c.push(m),f=y;continue}if(p==="$"){h();let{part:m,endIndex:y}=Kn(e,t,f);m&&c.push(m),f=y;continue}if(p==="`"){h();let{part:m,endIndex:y}=e.parseBacktickSubstitution(t,f);c.push(m),f=y;continue}if(p==="~"){let m=f>0?t[f-1]:"";if(f===0||m==="="||n&&m===":"){let b=Xi(e,t,f),v=t[b];if(v===void 0||v==="/"||v===":"){h();let E=t.slice(f+1,b)||null;c.push({type:"TildeExpansion",user:E}),f=b;continue}}}if("@*+?!".includes(p)&&f+1<t.length&&t[f+1]==="("){let m=Jc(t,f+1);if(m!==-1){h();let y=t.slice(f,m+1);c.push({type:"Glob",pattern:y}),f=m+1;continue}}if(p==="*"||p==="?"||p==="["){h();let{pattern:m,endIndex:y}=Ji(e,t,f);c.push({type:"Glob",pattern:m}),f=y;continue}if(p==="{"&&!n&&!l&&!i){let m=ta(e,t,f,pt);if(m){h(),c.push(m.part),f=m.endIndex;continue}}d+=p,f++}return h(),c}var V=class e{tokens=[];pos=0;pendingHeredocs=[];parseIterations=0;parseDepth=0;_input="";getInput(){return this._input}checkIterationLimit(){if(this.parseIterations++,this.parseIterations>Ri)throw new ye("Maximum parse iterations exceeded (possible infinite loop)",this.current().line,this.current().column)}enterDepth(){if(this.parseDepth++,this.parseDepth>Rn)throw new ye(`Maximum parser nesting depth exceeded (${Rn})`,this.current().line,this.current().column);return()=>{this.parseDepth--}}parse(t,s){if(t.length>Cn)throw new ye(`Input too large: ${t.length} bytes exceeds limit of ${Cn}`,1,1);this._input=t;let r=new $s(t,s);if(this.tokens=r.tokenize(),this.tokens.length>xn)throw new ye(`Too many tokens: ${this.tokens.length} exceeds limit of ${xn}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseDepth=0,this.parseScript()}parseTokens(t){return this.tokens=t,this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseDepth=0,this.parseScript()}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(t=0){return this.tokens[this.pos+t]||this.tokens[this.tokens.length-1]}advance(){let t=this.current();return this.pos<this.tokens.length-1&&this.pos++,t}getPos(){return this.pos}check(t,s,r,n,...i){let a=this.tokens[this.pos]?.type;return a===t||s!==void 0&&a===s||r!==void 0&&a===r||n!==void 0&&a===n?!0:i.length>0?i.includes(a):!1}expect(t,s){if(this.check(t))return this.advance();let r=this.current();throw new ye(s||`Expected ${t}, got ${r.type}`,r.line,r.column,r)}error(t){let s=this.current();throw new ye(t,s.line,s.column,s)}skipNewlines(){for(;this.check(g.NEWLINE,g.COMMENT);)this.check(g.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(t=!0){for(;;){if(this.check(g.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(g.SEMICOLON,g.COMMENT)){this.advance();continue}if(t&&this.check(g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(t,s,r,n){this.pendingHeredocs.push({redirect:t,delimiter:s,stripTabs:r,quoted:n})}processHeredocs(){for(let t of this.pendingHeredocs)if(this.check(g.HEREDOC_CONTENT)){let s=this.advance(),r;t.quoted?r=R.word([R.literal(s.value)]):r=this.parseWordFromString(s.value,!1,!1,!1,!0),t.redirect.target=R.hereDoc(t.delimiter,r,t.stripTabs,t.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(g.EOF,g.NEWLINE,g.SEMICOLON,g.AMP,g.AND_AND,g.OR_OR,g.RPAREN,g.RBRACE,g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND)}isCommandStart(){let t=this.current().type;return t===g.WORD||t===g.NAME||t===g.NUMBER||t===g.ASSIGNMENT_WORD||t===g.IF||t===g.FOR||t===g.WHILE||t===g.UNTIL||t===g.CASE||t===g.LPAREN||t===g.LBRACE||t===g.DPAREN_START||t===g.DBRACK_START||t===g.FUNCTION||t===g.BANG||t===g.TIME||t===g.IN||t===g.LESS||t===g.GREAT||t===g.DLESS||t===g.DGREAT||t===g.LESSAND||t===g.GREATAND||t===g.LESSGREAT||t===g.DLESSDASH||t===g.CLOBBER||t===g.TLESS||t===g.AND_GREAT||t===g.AND_DGREAT}parseScript(){let t=[],r=0;for(this.skipNewlines();!this.check(g.EOF);){r++,r>1e4&&this.error("Parser stuck: too many iterations (>10000)");let n=this.checkUnexpectedToken();if(n){t.push(n),this.skipSeparators(!1);continue}let i=this.pos,a=this.parseStatement();a&&t.push(a),this.skipSeparators(!1),this.check(g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===i&&!this.check(g.EOF)&&this.advance()}return R.script(t)}checkUnexpectedToken(){let t=this.current().type,s=this.current().value;if((t===g.DO||t===g.DONE||t===g.THEN||t===g.ELSE||t===g.ELIF||t===g.FI||t===g.ESAC)&&this.error(`syntax error near unexpected token \`${s}'`),t===g.RBRACE||t===g.RPAREN){let r=`syntax error near unexpected token \`${s}'`;return this.advance(),R.statement([R.pipeline([R.simpleCommand(null,[],[],[])])],[],!1,{message:r,token:s})}return(t===g.DSEMI||t===g.SEMI_AND||t===g.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${s}'`),t===g.SEMICOLON&&this.error(`syntax error near unexpected token \`${s}'`),(t===g.PIPE||t===g.PIPE_AMP)&&this.error(`syntax error near unexpected token \`${s}'`),null}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let t=this.current().start,s=[],r=[],n=!1,i=this.parsePipeline();for(s.push(i);this.check(g.AND_AND,g.OR_OR);){let o=this.advance();r.push(o.type===g.AND_AND?"&&":"||"),this.skipNewlines();let u=this.parsePipeline();s.push(u)}this.check(g.AMP)&&(this.advance(),n=!0);let a=this.pos>0?this.tokens[this.pos-1].end:t,l=this._input.slice(t,a);return R.statement(s,r,n,void 0,l)}parsePipeline(){let t=!1,s=!1;this.check(g.TIME)&&(this.advance(),t=!0,this.check(g.WORD,g.NAME)&&this.current().value==="-p"&&(this.advance(),s=!0));let r=0;for(;this.check(g.BANG);)this.advance(),r++;let n=r%2===1,i=[],a=[],l=this.parseCommand();for(i.push(l);this.check(g.PIPE,g.PIPE_AMP);){let o=this.advance();this.skipNewlines(),a.push(o.type===g.PIPE_AMP);let u=this.parseCommand();i.push(u)}return R.pipeline(i,n,t,s,a.length>0?a:void 0)}parseCommand(){return this.check(g.IF)?Vn(this):this.check(g.FOR)?zn(this):this.check(g.WHILE)?Bn(this):this.check(g.UNTIL)?qn(this):this.check(g.CASE)?jn(this):this.check(g.LPAREN)?Un(this):this.check(g.LBRACE)?Zn(this):this.check(g.DPAREN_START)?this.dparenClosesWithSpacedParens()?this.parseNestedSubshellsFromDparen():this.parseArithmeticCommand():this.check(g.DBRACK_START)?this.parseConditionalCommand():this.check(g.FUNCTION)?this.parseFunctionDef():this.check(g.NAME,g.WORD)&&this.peek(1).type===g.LPAREN&&this.peek(2).type===g.RPAREN?this.parseFunctionDef():ra(this)}dparenClosesWithSpacedParens(){let t=1,s=1;for(;s<this.tokens.length-this.pos;){let r=this.peek(s);if(r.type===g.EOF)return!1;if(r.type===g.DPAREN_START||r.type===g.LPAREN)t++;else if(r.type===g.DPAREN_END){if(t-=2,t<=0)return!1}else if(r.type===g.RPAREN&&(t--,t===0&&this.peek(s+1).type===g.RPAREN))return!0;s++}return!1}parseNestedSubshellsFromDparen(){this.advance();let t=this.parseCompoundList();this.expect(g.RPAREN),this.expect(g.RPAREN);let s=this.parseOptionalRedirections(),r=R.subshell(t,[]);return R.subshell([R.statement([R.pipeline([r],!1,!1,!1)])],s)}isWord(){let t=this.current().type;return t===g.WORD||t===g.NAME||t===g.NUMBER||t===g.IF||t===g.FOR||t===g.WHILE||t===g.UNTIL||t===g.CASE||t===g.FUNCTION||t===g.ELSE||t===g.ELIF||t===g.FI||t===g.THEN||t===g.DO||t===g.DONE||t===g.ESAC||t===g.IN||t===g.SELECT||t===g.TIME||t===g.COPROC||t===g.BANG}parseWord(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted)}parseWordNoBraceExpansion(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted,!1,!1,!0)}parseWordForRegex(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted,!1,!1,!0,!0)}parseWordFromString(t,s=!1,r=!1,n=!1,i=!1,a=!1,l=!1){let o=pt(this,t,s,r,n,i,!1,a,l);return R.word(o)}parseCommandSubstitution(t,s){return _i(t,s,()=>new e,r=>this.error(r))}parseBacktickSubstitution(t,s,r=!1){return Pi(t,s,r,()=>new e,n=>this.error(n))}isDollarDparenSubshell(t,s){return ki(t,s)}parseArithmeticExpansion(t,s){let r=s+3,n=1,i=0,a=r;for(;a<t.length-1&&n>0;)t[a]==="$"&&t[a+1]==="("?t[a+2]==="("?(n++,a+=3):(i++,a+=2):t[a]==="("&&t[a+1]==="("?(n++,a+=2):t[a]===")"&&t[a+1]===")"?i>0?(i--,a++):(n--,n>0&&(a+=2)):t[a]==="("?(i++,a++):(t[a]===")"&&i>0&&i--,a++);let l=t.slice(r,a),o=this.parseArithmeticExpression(l);return{part:R.arithmeticExpansion(o),endIndex:a+2}}parseArithmeticCommand(){let t=this.expect(g.DPAREN_START),s="",r=1,n=0,i=!1,a=!1;for(;r>0&&!this.check(g.EOF);){if(i){if(i=!1,n>0){n--,s+=")";continue}if(this.check(g.RPAREN)){r--,a=!0,this.advance();continue}if(this.check(g.DPAREN_END)){r--,a=!0;continue}s+=")";continue}if(this.check(g.DPAREN_START))r++,s+="((",this.advance();else if(this.check(g.DPAREN_END))n>=2?(n-=2,s+="))",this.advance()):n===1?(n--,s+=")",i=!0,this.advance()):(r--,a=!0,r>0&&(s+="))"),this.advance());else if(this.check(g.LPAREN))n++,s+="(",this.advance();else if(this.check(g.RPAREN))n>0&&n--,s+=")",this.advance();else{let u=this.current().value,c=s.length>0?s[s.length-1]:"";s.length>0&&!s.endsWith(" ")&&!(u==="="&&/[|&^+\-*/%<>]$/.test(s))&&!(u==="<"&&c==="<")&&!(u===">"&&c===">")&&(s+=" "),s+=u,this.advance()}}a||this.expect(g.DPAREN_END);let l=this.parseArithmeticExpression(s.trim()),o=this.parseOptionalRedirections();return R.arithmeticCommand(l,o,t.line)}parseConditionalCommand(){let t=this.expect(g.DBRACK_START),s=Gn(this);this.expect(g.DBRACK_END);let r=this.parseOptionalRedirections();return R.conditionalCommand(s,r,t.line)}parseFunctionDef(){let t;if(this.check(g.FUNCTION)){if(this.advance(),this.check(g.NAME)||this.check(g.WORD))t=this.advance().value;else{let n=this.current();throw new ye("Expected function name",n.line,n.column,n)}this.check(g.LPAREN)&&(this.advance(),this.expect(g.RPAREN))}else t=this.advance().value,t.includes("$")&&this.error(`\`${t}': not a valid identifier`),this.expect(g.LPAREN),this.expect(g.RPAREN);this.skipNewlines();let s=this.parseCompoundCommandBody({forFunctionBody:!0}),r=this.parseOptionalRedirections();return R.functionDef(t,s,r)}parseCompoundCommandBody(t){let s=t?.forFunctionBody;if(this.check(g.LBRACE))return Zn(this,{skipRedirections:s});if(this.check(g.LPAREN))return Un(this,{skipRedirections:s});if(this.check(g.IF))return Vn(this,{skipRedirections:s});if(this.check(g.FOR))return zn(this,{skipRedirections:s});if(this.check(g.WHILE))return Bn(this,{skipRedirections:s});if(this.check(g.UNTIL))return qn(this,{skipRedirections:s});if(this.check(g.CASE))return jn(this,{skipRedirections:s});this.error("Expected compound command for function body")}parseCompoundList(){let t=this.enterDepth(),s=[];for(this.skipNewlines();!this.check(g.EOF,g.FI,g.ELSE,g.ELIF,g.THEN,g.DO,g.DONE,g.ESAC,g.RPAREN,g.RBRACE,g.DSEMI,g.SEMI_AND,g.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,n=this.parseStatement();if(n&&s.push(n),this.skipSeparators(),this.pos===r&&!n)break}return t(),s}parseOptionalRedirections(){let t=[];for(;_s(this);){this.checkIterationLimit();let s=this.pos;if(t.push(Ps(this)),this.pos===s)break}return t}parseArithmeticExpression(t){return X(this,t)}};function qe(e,t){return new V().parse(e,t)}var ru="BASH_ALIAS_";function ca(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function ua(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function fa(e,t){return e.env.get(`${ru}${t}`)}function Xn(e,t,s){if(!t.name||!ca(t.name))return t;let r=ua(t.name);if(!r)return t;let n=fa(e,r);if(!n||s.has(r))return t;try{s.add(r);let i=new V,a=n,l=n.endsWith(" ");if(!l)for(let f of t.args){let d=ha(f);a+=` ${d}`}let o;try{o=i.parse(a)}catch(f){if(f instanceof ye)throw f;return t}if(o.statements.length!==1||o.statements[0].pipelines.length!==1||o.statements[0].pipelines[0].commands.length!==1)return da(t,n);let u=o.statements[0].pipelines[0].commands[0];if(u.type!=="SimpleCommand")return da(t,n);let c={...u,assignments:[...t.assignments,...u.assignments],redirections:[...u.redirections,...t.redirections],line:t.line};if(l&&t.args.length>0&&(c={...c,args:[...c.args,...t.args]},c.args.length>0)){let f=c.args[0];if(ca(f)){let d=ua(f);if(d&&fa(e,d)){let h={type:"SimpleCommand",name:f,args:c.args.slice(1),assignments:[],redirections:[]},p=Xn(e,h,s);p!==h&&(c={...c,name:p.name,args:[...p.args]})}}}return c}catch(i){throw s.delete(r),i}}function da(e,t){let s=t;for(let a of e.args){let l=ha(a);s+=` ${l}`}let r=new V,n=r.parseWordFromString("eval",!1,!1),i=r.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:n,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function ha(e){let t="";for(let s of e.parts)switch(s.type){case"Literal":t+=s.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${s.value}'`;break;case"DoubleQuoted":t+=`"${s.parts.map(r=>r.type==="Literal"?r.value:`$${r.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${s.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${s.expression}))`;break;case"Glob":t+=s.pattern;break;default:break}return t}var iu=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9a-fA-F"]]);function Yn(e){return iu.get(e)??""}function pa(e){let t=[],s="",r=0;for(;r<e.length;){let n=e[r];if(n==="["){for(s+=n,r++,r<e.length&&(e[r]==="!"||e[r]==="^")&&(s+=e[r],r++),r<e.length&&e[r]==="]"&&(s+=e[r],r++);r<e.length&&e[r]!=="]";){if(e[r]==="["&&r+1<e.length&&e[r+1]===":"){let i=e.indexOf(":]",r+2);if(i!==-1){s+=e.slice(r,i+2),r=i+2;continue}}if(e[r]==="\\"&&r+1<e.length){s+=e[r]+e[r+1],r+=2;continue}s+=e[r],r++}r<e.length&&e[r]==="]"&&(s+=e[r],r++)}else n===":"?(s!==""&&t.push(s),s="",r++):n==="\\"&&r+1<e.length?(s+=n+e[r+1],r+=2):(s+=n,r++)}return s!==""&&t.push(s),t}function ma(e){let t="^";for(let s=0;s<e.length;s++){let r=e[s];if(r==="*")t+="[^/]*";else if(r==="?")t+="[^/]";else if(r==="["){let n=s+1,i="[";n<e.length&&(e[n]==="^"||e[n]==="!")&&(i+="^",n++),n<e.length&&e[n]==="]"&&(i+="\\]",n++);let a=n;for(;a<e.length;){if(e[a]==="\\"&&a+1<e.length){a+=2;continue}if(e[a]==="["&&a+1<e.length&&e[a+1]===":"){let o=e.indexOf(":]",a+2);if(o!==-1){a=o+2;continue}}if(e[a]==="]")break;a++}let l=n;for(;n<e.length&&e[n]!=="]";){if(e[n]==="["&&n+1<e.length&&e[n+1]===":"){let o=e.indexOf(":]",n+2);if(o!==-1){let u=e.slice(n+2,o),c=Yn(u);i+=c,n=o+2;continue}}if(e[n]==="\\"&&n+1<e.length){i+=`\\${e[n+1]}`,n+=2;continue}if(e[n]==="-"){let o=n===l,u=n+1===a;o||u?i+="\\-":i+="-"}else i+=e[n];n++}i+="]",t+=i,s=n}else if(r==="\\"&&s+1<e.length){let n=e[s+1];/[.+^${}()|\\*?[\]]/.test(n)?t+=`\\${n}`:t+=n,s++}else/[.+^${}()|]/.test(r)?t+=`\\${r}`:t+=r}return t+="$",ae(t)}function Jn(e,t){let s=1,r=t+1;for(;r<e.length&&s>0;){let n=e[r];if(n==="\\"){r+=2;continue}if(n==="(")s++;else if(n===")"&&(s--,s===0))return r;r++}return-1}function er(e){let t=[],s="",r=0,n=!1,i=0;for(;i<e.length;){let a=e[i];if(a==="'"&&!n){n=!0,s+="\0QUOTE_START\0",i++;continue}if(a==="'"&&n){n=!1,s+="\0QUOTE_END\0",i++;continue}if(n){s+=a,i++;continue}if(a==="\\"){s+=a,i+1<e.length?(s+=e[i+1],i+=2):i++;continue}a==="("?(r++,s+=a):a===")"?(r--,s+=a):a==="|"&&r===0?(t.push(s),s=""):s+=a,i++}return t.push(s),t}var ga=5,mt=class{fs;cwd;globignorePatterns=[];hasGlobignore=!1;globstar=!1;nullglob=!1;failglob=!1;dotglob=!1;extglob=!1;globskipdots=!0;ops={count:0};maxOps;constructor(t,s,r,n){this.fs=t,this.cwd=s,typeof n=="boolean"?(this.globstar=n,this.maxOps=1e5):n?(this.globstar=n.globstar??!1,this.nullglob=n.nullglob??!1,this.failglob=n.failglob??!1,this.dotglob=n.dotglob??!1,this.extglob=n.extglob??!1,this.globskipdots=n.globskipdots??!0,this.maxOps=n.maxGlobOperations??1e5):this.maxOps=1e5;let i=r?.get("GLOBIGNORE");i!==void 0&&i!==""&&(this.hasGlobignore=!0,this.globignorePatterns=pa(i))}checkOpsLimit(){if(++this.ops.count>this.maxOps)throw new Q(`Glob operation limit exceeded (${this.maxOps})`,"glob_operations")}hasNullglob(){return this.nullglob}hasFailglob(){return this.failglob}filterGlobignore(t){return!this.hasGlobignore&&!this.globskipdots?t:t.filter(s=>{let r=s.split("/").pop()||s;if((this.hasGlobignore||this.globskipdots)&&(r==="."||r===".."))return!1;if(this.hasGlobignore){for(let n of this.globignorePatterns)if(this.matchGlobignorePattern(s,n))return!1}return!0})}matchGlobignorePattern(t,s){return ma(s).test(t)}isGlobPattern(t){return!!(t.includes("*")||t.includes("?")||/\[.*\]/.test(t)||this.extglob&&/[@*+?!]\(/.test(t))}async expandArgs(t,s){let r=t.map((a,l)=>(s?.[l]??!1)||!this.isGlobPattern(a)?null:this.expand(a)),n=await Promise.all(r.map(a=>a||Promise.resolve(null))),i=[];for(let a=0;a<t.length;a++){let l=n[a];l===null?i.push(t[a]):l.length>0?i.push(...l):i.push(t[a])}return i}async expand(t){if(this.globstar){let r=t.split("/"),n=0;for(let i of r)if(i==="**"&&(n++,n>ga))throw new Q(`Glob pattern has too many ** segments (max ${ga})`,"glob_operations")}let s;if(t.includes("**")&&this.globstar&&this.isGlobstarValid(t))s=await this.expandRecursive(t);else{let r=t.replace(/\*\*+/g,"*");s=await this.expandSimple(r)}return this.filterGlobignore(s)}isGlobstarValid(t){let s=t.split("/");for(let r of s)if(r.includes("**")&&r!=="**")return!1;return!0}hasGlobChars(t){return!!(t.includes("*")||t.includes("?")||/\[.*\]/.test(t)||this.extglob&&/[@*+?!]\(/.test(t))}async expandSimple(t){let s=t.startsWith("/"),r=t.split("/").filter(u=>u!==""),n=-1;for(let u=0;u<r.length;u++)if(this.hasGlobChars(r[u])){n=u;break}if(n===-1)return[t];let i,a;if(n===0)s?(i="/",a="/"):(i=this.cwd,a="");else{let u=r.slice(0,n);s?(i=`/${u.join("/")}`,a=`/${u.join("/")}`):(i=this.fs.resolvePath(this.cwd,u.join("/")),a=u.join("/"))}let l=r.slice(n);return(await this.expandSegments(i,a,l)).sort()}async expandSegments(t,s,r){if(this.checkOpsLimit(),r.length===0)return[s];let[n,...i]=r,a=[];try{if(this.fs.readdirWithFileTypes){this.checkOpsLimit();let l=await this.fs.readdirWithFileTypes(t),o=[],u=[...l],c=this.dotglob||this.hasGlobignore;if(n.startsWith(".")||this.dotglob){let d=l.some(p=>p.name==="."),h=l.some(p=>p.name==="..");d||u.push({name:".",isFile:!1,isDirectory:!0,isSymbolicLink:!1}),h||u.push({name:"..",isFile:!1,isDirectory:!0,isSymbolicLink:!1})}for(let d of u)if(!(d.name.startsWith(".")&&!n.startsWith(".")&&!c)&&this.matchPattern(d.name,n)){let h=t==="/"?`/${d.name}`:`${t}/${d.name}`,p;s===""?p=d.name:s==="/"?p=`/${d.name}`:p=`${s}/${d.name}`,i.length===0?o.push(Promise.resolve([p])):d.isDirectory&&o.push(this.expandSegments(h,p,i))}let f=await Promise.all(o);for(let d of f)a.push(...d)}else{this.checkOpsLimit();let l=await this.fs.readdir(t),o=[],u=[...l],c=this.dotglob||this.hasGlobignore;(n.startsWith(".")||this.dotglob)&&(l.includes(".")||u.push("."),l.includes("..")||u.push(".."));for(let d of u)if(!(d.startsWith(".")&&!n.startsWith(".")&&!c)&&this.matchPattern(d,n)){let h=t==="/"?`/${d}`:`${t}/${d}`,p;s===""?p=d:s==="/"?p=`/${d}`:p=`${s}/${d}`,i.length===0?o.push(Promise.resolve([p])):o.push((async()=>{try{if(this.checkOpsLimit(),(await this.fs.stat(h)).isDirectory)return this.expandSegments(h,p,i)}catch(m){if(m instanceof Q)throw m}return[]})())}let f=await Promise.all(o);for(let d of f)a.push(...d)}}catch(l){if(l instanceof Q)throw l}return a}async expandRecursive(t){let s=[],r=t.indexOf("**"),n=t.slice(0,r).replace(/\/$/,"")||".",a=t.slice(r+2).replace(/^\//,"");return a.includes("**")&&this.isGlobstarValid(a)?(await this.walkDirectoryMultiGlobstar(n,a,s),[...new Set(s)].sort()):(await this.walkDirectory(n,a,s),s.sort())}async walkDirectoryMultiGlobstar(t,s,r){this.checkOpsLimit();let n=this.fs.resolvePath(this.cwd,t);try{this.checkOpsLimit();let i=this.fs.readdirWithFileTypes?await this.fs.readdirWithFileTypes(n):null;if(i){let a=[];for(let u of i){let c=t==="."?u.name:`${t}/${u.name}`;u.isDirectory&&a.push(c)}let l=t==="."?s:`${t}/${s}`,o=await this.expandRecursive(l);r.push(...o);for(let u=0;u<a.length;u+=100){let c=a.slice(u,u+100);await Promise.all(c.map(f=>this.walkDirectoryMultiGlobstar(f,s,r)))}}else{this.checkOpsLimit();let a=await this.fs.readdir(n),l=[];for(let c of a){let f=t==="."?c:`${t}/${c}`,d=this.fs.resolvePath(this.cwd,f);try{this.checkOpsLimit(),(await this.fs.stat(d)).isDirectory&&l.push(f)}catch(h){if(h instanceof Q)throw h}}let o=t==="."?s:`${t}/${s}`,u=await this.expandRecursive(o);r.push(...u);for(let c=0;c<l.length;c+=100){let f=l.slice(c,c+100);await Promise.all(f.map(d=>this.walkDirectoryMultiGlobstar(d,s,r)))}}}catch(i){if(i instanceof Q)throw i}}async walkDirectory(t,s,r){this.checkOpsLimit();let n=this.fs.resolvePath(this.cwd,t);try{if(this.fs.readdirWithFileTypes){this.checkOpsLimit();let i=await this.fs.readdirWithFileTypes(n),a=[],l=[];for(let o of i){let u=t==="."?o.name:`${t}/${o.name}`;o.isDirectory?l.push(u):s&&this.matchPattern(o.name,s)&&a.push(u)}r.push(...a);for(let o=0;o<l.length;o+=100){let u=l.slice(o,o+100);await Promise.all(u.map(c=>this.walkDirectory(c,s,r)))}}else{this.checkOpsLimit();let i=await this.fs.readdir(n),a=[];for(let o=0;o<i.length;o+=100){let u=i.slice(o,o+100),c=await Promise.all(u.map(async f=>{let d=t==="."?f:`${t}/${f}`,h=this.fs.resolvePath(this.cwd,d);try{this.checkOpsLimit();let p=await this.fs.stat(h);return{name:f,path:d,isDirectory:p.isDirectory}}catch(p){if(p instanceof Q)throw p;return null}}));a.push(...c.filter(f=>f!==null))}for(let o of a)!o.isDirectory&&s&&this.matchPattern(o.name,s)&&r.push(o.path);let l=a.filter(o=>o.isDirectory);for(let o=0;o<l.length;o+=100){let u=l.slice(o,o+100);await Promise.all(u.map(c=>this.walkDirectory(c.path,s,r)))}}}catch(i){if(i instanceof Q)throw i}}matchPattern(t,s){return this.patternToRegex(s).test(t)}patternToRegex(t){let s=this.patternToRegexStr(t);return ae(`^${s}$`)}patternToRegexStr(t){let s="",r=!1;for(let n=0;n<t.length;n++){if(t.slice(n,n+13)==="\0QUOTE_START\0"){r=!0,n+=12;continue}if(t.slice(n,n+11)==="\0QUOTE_END\0"){r=!1,n+=10;continue}let i=t[n];if(r){/[.+^${}()|\\*?[\]]/.test(i)?s+=`\\${i}`:s+=i;continue}if(this.extglob&&(i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&n+1<t.length&&t[n+1]==="("){let a=Jn(t,n+1);if(a!==-1){let l=t.slice(n+2,a),o=er(l),u=o.map(f=>this.patternToRegexStr(f)),c=u.length>0?u.join("|"):"(?:)";if(i==="@")s+=`(?:${c})`;else if(i==="*")s+=`(?:${c})*`;else if(i==="+")s+=`(?:${c})+`;else if(i==="?")s+=`(?:${c})?`;else if(i==="!")if(a<t.length-1){let d=o.map(p=>this.computePatternLength(p));if(d.every(p=>p!==null)&&d.every(p=>p===d[0])&&d[0]!==null){let p=d[0];if(p===0)s+="(?:.+)";else{let m=[];p>0&&m.push(`.{0,${p-1}}`),m.push(`.{${p+1},}`),m.push(`(?!(?:${c})).{${p}}`),s+=`(?:${m.join("|")})`}}else s+=`(?:(?!(?:${c})).)*?`}else s+=`(?!(?:${c})$).*`;n=a;continue}}if(i==="*")s+=".*";else if(i==="?")s+=".";else if(i==="["){let a=n+1,l="[";a<t.length&&(t[a]==="^"||t[a]==="!")&&(l+="^",a++),a<t.length&&t[a]==="]"&&(l+="\\]",a++);let o=a;for(;o<t.length;){if(t[o]==="\\"&&o+1<t.length){o+=2;continue}if(t[o]==="["&&o+1<t.length&&t[o+1]===":"){let c=t.indexOf(":]",o+2);if(c!==-1){o=c+2;continue}}if(t[o]==="]")break;o++}let u=a;for(;a<t.length&&t[a]!=="]";){if(t[a]==="["&&a+1<t.length&&t[a+1]===":"){let c=t.indexOf(":]",a+2);if(c!==-1){let f=t.slice(a+2,c),d=Yn(f);l+=d,a=c+2;continue}}if(t[a]==="\\"&&a+1<t.length){l+=`\\${t[a+1]}`,a+=2;continue}if(t[a]==="-"){let c=a===u,f=a+1===o;c||f?l+="\\-":l+="-"}else l+=t[a];a++}l+="]",s+=l,n=a}else if(i==="\\"&&n+1<t.length){let a=t[n+1];/[.+^${}()|\\*?[\]]/.test(a)?s+=`\\${a}`:s+=a,n++}else/[.+^${}()|]/.test(i)?s+=`\\${i}`:s+=i}return s}computePatternLength(t){let s=0,r=0,n=!1;for(;r<t.length;){if(t.slice(r,r+13)==="\0QUOTE_START\0"){n=!0,r+=13;continue}if(t.slice(r,r+11)==="\0QUOTE_END\0"){n=!1,r+=11;continue}let i=t[r];if(n){s+=1,r++;continue}if((i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&r+1<t.length&&t[r+1]==="("){let a=Jn(t,r+1);if(a!==-1){if(i==="@"){let l=t.slice(r+2,a),u=er(l).map(c=>this.computePatternLength(c));if(u.every(c=>c!==null)&&u.every(c=>c===u[0])){s+=u[0],r=a+1;continue}return null}return null}}if(i==="*")return null;if(i==="?"){s+=1,r++;continue}if(i==="["){let a=t.indexOf("]",r+1);if(a!==-1){s+=1,r=a+1;continue}s+=1,r++;continue}if(i==="\\"){s+=1,r+=2;continue}s+=1,r++}return s}};function tr(e){for(let t=0;t<e.length;t++){if(e[t]==="\\"){t++;continue}if(e[t]==="$"){let s=e[t+1];if(s==="{"||s&&/[a-zA-Z_]/.test(s))return!0}}return!1}function au(e){if(!e.operation)return!1;let t=e.operation,s;if((t.type==="DefaultValue"||t.type==="AssignDefault"||t.type==="UseAlternative"||t.type==="ErrorIfUnset")&&(s=t.word?.parts),!s)return!1;for(let r of s)if(r.type==="DoubleQuoted"||r.type==="SingleQuoted")return!0;return!1}function ya(e){if(!e.operation)return!1;let t=e.operation,s;if((t.type==="DefaultValue"||t.type==="AssignDefault"||t.type==="UseAlternative"||t.type==="ErrorIfUnset")&&(s=t.word?.parts),!s||s.length===0)return!1;for(let r of s)if(r.type!=="DoubleQuoted"&&r.type!=="SingleQuoted")return!1;return!0}function ns(e){let t=!1,s=!1,r=!1,n=!1,i=!1,a=!1,l=!1;for(let o of e){if((o.type==="SingleQuoted"||o.type==="DoubleQuoted")&&(t=!0,o.type==="DoubleQuoted"))for(let u of o.parts)u.type==="ParameterExpansion"&&(u.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&(!u.operation||u.operation.type==="PatternRemoval"||u.operation.type==="PatternReplacement")&&(n=!0),(u.operation?.type==="VarNamePrefix"||u.operation?.type==="ArrayKeys")&&(a=!0),u.operation?.type==="Indirection"&&(l=!0));o.type==="CommandSubstitution"&&(s=!0),o.type==="ParameterExpansion"&&(i=!0,(o.parameter==="@"||o.parameter==="*")&&(r=!0),au(o)&&(t=!0),(o.operation?.type==="VarNamePrefix"||o.operation?.type==="ArrayKeys")&&(a=!0),o.operation?.type==="Indirection"&&(l=!0)),o.type==="Glob"&&tr(o.pattern)&&(i=!0)}return{hasQuoted:t,hasCommandSub:s,hasArrayVar:r,hasArrayAtExpansion:n,hasParamExpansion:i,hasVarNamePrefixExpansion:a,hasIndirection:l}}function fe(e,t){let s=`${t}_`,r=[];for(let n of e.state.env.keys())if(n.startsWith(s)){let i=n.slice(s.length),a=Number.parseInt(i,10);!Number.isNaN(a)&&String(a)===i&&r.push(a)}return r.sort((n,i)=>n-i)}function Ke(e,t){let s=`${t}_`;for(let r of e.state.env.keys())r.startsWith(s)&&e.state.env.delete(r)}function je(e,t){let s=`${t}_`,r=`${t}__length`,n=[];for(let i of e.state.env.keys())if(i!==r&&i.startsWith(s)){let a=i.slice(s.length);if(a.startsWith("_length"))continue;n.push(a)}return n.sort()}function Ds(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function sr(e){if(e.parts.length<2)return null;let t=e.parts[0],s=e.parts[1];if(t.type!=="Glob"||!t.pattern.startsWith("["))return null;let r,n=s,i=1;if(s.type==="Literal"&&s.value.startsWith("]")){let f=s.value.slice(1);if(f.startsWith("+=")||f.startsWith("="))r=t.pattern.slice(1);else if(f===""){if(e.parts.length<3)return null;let d=e.parts[2];if(d.type!=="Literal"||!d.value.startsWith("=")&&!d.value.startsWith("+="))return null;r=t.pattern.slice(1),n=d,i=2}else return null}else if(t.pattern==="["&&(s.type==="DoubleQuoted"||s.type==="SingleQuoted")){if(e.parts.length<3)return null;let f=e.parts[2];if(f.type!=="Literal"||!f.value.startsWith("]=")&&!f.value.startsWith("]+="))return null;if(s.type==="SingleQuoted")r=s.value;else{r="";for(let d of s.parts)(d.type==="Literal"||d.type==="Escaped")&&(r+=d.value)}n=f,i=2}else if(t.pattern.endsWith("]")){if(s.type!=="Literal"||!s.value.startsWith("=")&&!s.value.startsWith("+="))return null;r=t.pattern.slice(1,-1)}else return null;r=Ds(r);let a;if(n.type!=="Literal")return null;n.value.startsWith("]=")||n.value.startsWith("]+=")?a=n.value.slice(1):a=n.value;let l=a.startsWith("+=");if(!l&&!a.startsWith("="))return null;let o=[],u=l?2:1,c=a.slice(u);c&&o.push({type:"Literal",value:c});for(let f=i+1;f<e.parts.length;f++){let d=e.parts[f];d.type==="BraceExpansion"?o.push({type:"Literal",value:ou(d)}):o.push(d)}return{key:r,valueParts:o,append:l}}function ou(e){return`{${e.items.map(s=>{if(s.type==="Range"){let r=s.startStr??String(s.start),n=s.endStr??String(s.end),i=`${r}..${n}`;return s.step&&(i+=`..${s.step}`),i}return Mt(s.word)}).join(",")}}`}function Mt(e){let t="";for(let s of e.parts)switch(s.type){case"Literal":t+=s.value;break;case"Glob":t+=s.pattern;break;case"SingleQuoted":t+=s.value;break;case"DoubleQuoted":for(let r of s.parts)(r.type==="Literal"||r.type==="Escaped")&&(t+=r.value);break;case"Escaped":t+=s.value;break;case"BraceExpansion":t+="{",t+=s.items.map(r=>r.type==="Range"?`${r.startStr}..${r.endStr}${r.step?`..${r.step}`:""}`:Mt(r.word)).join(","),t+="}";break;case"TildeExpansion":t+="~",s.user&&(t+=s.user);break}return t}function he(e){return e.get("IFS")??`
63
- `}function we(e){return e.get("IFS")===""}function Is(e){let t=he(e);if(t==="")return!0;for(let s of t)if(s!==" "&&s!==" "&&s!==`
64
- `)return!1;return!0}function wa(e){let t=!1,s=[];for(let r of e.split(""))r==="-"?t=!0:/[\\^$.*+?()[\]{}|]/.test(r)?s.push(`\\${r}`):r===" "?s.push("\\t"):r===`
65
- `?s.push("\\n"):s.push(r);return t&&s.push("\\-"),s.join("")}function z(e){let t=e.get("IFS");return t===void 0?" ":t[0]||""}var lu=`
66
- `;function cu(e){return lu.includes(e)}function nr(e){let t=new Set,s=new Set;for(let r of e)cu(r)?t.add(r):s.add(r);return{whitespace:t,nonWhitespace:s}}function rr(e,t,s,r){if(t==="")return e===""?{words:[],wordStarts:[]}:{words:[e],wordStarts:[0]};let{whitespace:n,nonWhitespace:i}=nr(t),a=[],l=[],o=0;for(;o<e.length&&n.has(e[o]);)o++;if(o>=e.length)return{words:[],wordStarts:[]};if(i.has(e[o]))for(a.push(""),l.push(o),o++;o<e.length&&n.has(e[o]);)o++;for(;o<e.length&&!(s!==void 0&&a.length>=s);){let u=o;for(l.push(u);o<e.length;){let c=e[o];if(!r&&c==="\\"){o++,o<e.length&&o++;continue}if(n.has(c)||i.has(c))break;o++}if(a.push(e.substring(u,o)),o>=e.length)break;for(;o<e.length&&n.has(e[o]);)o++;if(o<e.length&&i.has(e[o])){for(o++;o<e.length&&n.has(e[o]);)o++;for(;o<e.length&&i.has(e[o])&&!(s!==void 0&&a.length>=s);)for(a.push(""),l.push(o),o++;o<e.length&&n.has(e[o]);)o++}}return{words:a,wordStarts:l}}function Cs(e,t){if(t==="")return{words:e?[e]:[],hadLeadingDelimiter:!1,hadTrailingDelimiter:!1};if(e==="")return{words:[],hadLeadingDelimiter:!1,hadTrailingDelimiter:!1};let{whitespace:s,nonWhitespace:r}=nr(t),n=[],i=0,a=!1,l=!1,o=i;for(;i<e.length&&s.has(e[i]);)i++;if(i>o&&(a=!0),i>=e.length)return{words:[],hadLeadingDelimiter:!0,hadTrailingDelimiter:!0};if(r.has(e[i]))for(n.push(""),i++;i<e.length&&s.has(e[i]);)i++;for(;i<e.length;){let u=i;for(;i<e.length;){let f=e[i];if(s.has(f)||r.has(f))break;i++}if(n.push(e.substring(u,i)),i>=e.length){l=!1;break}let c=i;for(;i<e.length&&s.has(e[i]);)i++;if(i<e.length&&r.has(e[i])){for(i++;i<e.length&&s.has(e[i]);)i++;for(;i<e.length&&r.has(e[i]);)for(n.push(""),i++;i<e.length&&s.has(e[i]);)i++}i>=e.length&&i>c&&(l=!0)}return{words:n,hadLeadingDelimiter:a,hadTrailingDelimiter:l}}function se(e,t){return Cs(e,t).words}function uu(e,t){for(let s of e)if(t.has(s))return!0;return!1}function Ea(e,t,s){if(t==="")return e;let{whitespace:r,nonWhitespace:n}=nr(t),i=e.length;for(;i>0&&r.has(e[i-1]);){if(!s&&i>=2){let l=0,o=i-2;for(;o>=0&&e[o]==="\\";)l++,o--;if(l%2===1)break}i--}let a=e.substring(0,i);if(a.length>=1&&n.has(a[a.length-1])){if(!s&&a.length>=2){let o=0,u=a.length-2;for(;u>=0&&a[u]==="\\";)o++,u--;if(o%2===1)return a}let l=a.substring(0,a.length-1);if(!uu(l,n))return l}return a}function ee(e,t){return e.state.namerefs?.has(t)??!1}function ot(e,t){e.state.namerefs??=new Set,e.state.namerefs.add(t)}function ba(e,t){e.state.namerefs?.delete(t),e.state.boundNamerefs?.delete(t),e.state.invalidNamerefs?.delete(t)}function va(e,t){e.state.invalidNamerefs??=new Set,e.state.invalidNamerefs.add(t)}function Sa(e,t){return e.state.invalidNamerefs?.has(t)??!1}function ir(e,t){e.state.boundNamerefs??=new Set,e.state.boundNamerefs.add(t)}function xs(e,t){let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let n=s[1],i=Array.from(e.state.env.keys()).some(l=>l.startsWith(`${n}_`)&&!l.includes("__")),a=e.state.associativeArrays?.has(n)??!1;return i||a}return Array.from(e.state.env.keys()).some(n=>n.startsWith(`${t}_`)&&!n.includes("__"))?!0:e.state.env.has(t)}function ve(e,t,s=100){if(!ee(e,t)||Sa(e,t))return t;let r=new Set,n=t;for(;s-- >0;){if(r.has(n))return;if(r.add(n),!ee(e,n))return n;let i=e.state.env.get(n);if(i===void 0||i===""||!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(i))return n;n=i}}function Nt(e,t){if(ee(e,t))return e.state.env.get(t)}function Aa(e,t,s,r=100){if(!ee(e,t)||Sa(e,t))return t;let n=new Set,i=t;for(;r-- >0;){if(n.has(i))return;if(n.add(i),!ee(e,i))return i;let a=e.state.env.get(i);if(a===void 0||a==="")return s!==void 0?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&xs(e,s)?i:null:i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(a))return i;i=a}}function fu(e,t){let s=t.replace(/\$\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g,(r,n)=>e.state.env.get(n)??"");return s=s.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(r,n)=>e.state.env.get(n)??""),s}function F(e,t){return t==="FUNCNAME"?(e.state.funcNameStack??[]).map((i,a)=>[a,i]):t==="BASH_LINENO"?(e.state.callLineStack??[]).map((i,a)=>[a,String(i)]):t==="BASH_SOURCE"?(e.state.sourceStack??[]).map((i,a)=>[a,i]):e.state.associativeArrays?.has(t)?je(e,t).map(i=>[i,e.state.env.get(`${t}_${i}`)??""]):fe(e,t).map(n=>[n,e.state.env.get(`${t}_${n}`)??""])}function Ue(e,t){return t==="FUNCNAME"?(e.state.funcNameStack?.length??0)>0:t==="BASH_LINENO"?(e.state.callLineStack?.length??0)>0:t==="BASH_SOURCE"?(e.state.sourceStack?.length??0)>0:e.state.associativeArrays?.has(t)?je(e,t).length>0:fe(e,t).length>0}async function Y(e,t,s=!0,r=!1){switch(t){case"?":return String(e.state.lastExitCode);case"$":return String(e.state.virtualPid);case"#":return e.state.env.get("#")||"0";case"@":return e.state.env.get("@")||"";case"_":return e.state.lastArg;case"-":{let a="";return a+="h",e.state.options.errexit&&(a+="e"),e.state.options.noglob&&(a+="f"),e.state.options.nounset&&(a+="u"),e.state.options.verbose&&(a+="v"),e.state.options.xtrace&&(a+="x"),a+="B",e.state.options.noclobber&&(a+="C"),a+="s",a}case"*":{let a=Number.parseInt(e.state.env.get("#")||"0",10);if(a===0)return"";let l=[];for(let o=1;o<=a;o++)l.push(e.state.env.get(String(o))||"");return l.join(z(e.state.env))}case"0":return e.state.env.get("0")||"bash";case"PWD":return e.state.env.get("PWD")??"";case"OLDPWD":return e.state.env.get("OLDPWD")??"";case"PPID":return String(e.state.virtualPpid);case"UID":return String(e.state.virtualUid);case"EUID":return String(e.state.virtualUid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-e.state.startTime)/1e3));case"BASH_VERSION":return Ai;case"!":return String(e.state.lastBackgroundPid);case"BASHPID":return String(e.state.bashPid);case"LINENO":return String(e.state.currentLine);case"FUNCNAME":{let a=e.state.funcNameStack?.[0];if(a!==void 0)return a;if(s&&e.state.options.nounset)throw new Ce("FUNCNAME");return""}case"BASH_LINENO":{let a=e.state.callLineStack?.[0];if(a!==void 0)return String(a);if(s&&e.state.options.nounset)throw new Ce("BASH_LINENO");return""}case"BASH_SOURCE":{let a=e.state.sourceStack?.[0];if(a!==void 0)return a;if(s&&e.state.options.nounset)throw new Ce("BASH_SOURCE");return""}}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(t))throw new xe(`\${${t}}`);let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(n){let a=n[1],l=n[2];if(ee(e,a)){let f=ve(e,a);if(f&&f!==a){if(f.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/))return"";a=f}}if(l==="@"||l==="*"){let f=F(e,a);if(f.length>0)return f.map(([,h])=>h).join(" ");let d=e.state.env.get(a);return d!==void 0?d:""}if(a==="FUNCNAME"){let f=Number.parseInt(l,10);return!Number.isNaN(f)&&f>=0?e.state.funcNameStack?.[f]??"":""}if(a==="BASH_LINENO"){let f=Number.parseInt(l,10);if(!Number.isNaN(f)&&f>=0){let d=e.state.callLineStack?.[f];return d!==void 0?String(d):""}return""}if(a==="BASH_SOURCE"){let f=Number.parseInt(l,10);return!Number.isNaN(f)&&f>=0?e.state.sourceStack?.[f]??"":""}if(e.state.associativeArrays?.has(a)){let f=Ds(l);f=fu(e,f);let d=e.state.env.get(`${a}_${f}`);if(d===void 0&&s&&e.state.options.nounset)throw new Ce(`${a}[${l}]`);return d||""}let u;if(/^-?\d+$/.test(l))u=Number.parseInt(l,10);else try{let f=new V,d=X(f,l);u=await L(e,d.expression)}catch{let f=e.state.env.get(l);u=f?Number.parseInt(f,10):0,Number.isNaN(u)&&(u=0)}if(u<0){let f=F(e,a),d=e.state.currentLine;if(f.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${d}: ${a}: bad array subscript
67
- `,"";let p=Math.max(...f.map(([y])=>typeof y=="number"?y:0))+1+u;return p<0?(e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${d}: ${a}: bad array subscript
68
- `,""):e.state.env.get(`${a}_${p}`)||""}let c=e.state.env.get(`${a}_${u}`);if(c!==void 0)return c;if(u===0){let f=e.state.env.get(a);if(f!==void 0)return f}if(s&&e.state.options.nounset)throw new Ce(`${a}[${u}]`);return""}if(/^[1-9][0-9]*$/.test(t)){let a=e.state.env.get(t);if(a===void 0&&s&&e.state.options.nounset)throw new Ce(t);return a||""}if(ee(e,t)){let a=ve(e,t);if(a===void 0)return"";if(a!==t)return await Y(e,a,s,r);let l=e.state.env.get(t);if((l===void 0||l==="")&&s&&e.state.options.nounset)throw new Ce(t);return l||""}let i=e.state.env.get(t);if(i!==void 0)return e.state.tempEnvBindings?.some(a=>a.has(t))&&(e.state.accessedTempEnvVars=e.state.accessedTempEnvVars||new Set,e.state.accessedTempEnvVars.add(t)),i;if(Ue(e,t)){let a=e.state.env.get(`${t}_0`);return a!==void 0?a:""}if(s&&e.state.options.nounset)throw new Ce(t);return""}async function Xe(e,t){if(new Set(["?","$","#","_","-","0","PPID","UID","EUID","RANDOM","SECONDS","BASH_VERSION","!","BASHPID","LINENO"]).has(t))return!0;if(t==="@"||t==="*")return Number.parseInt(e.state.env.get("#")||"0",10)>0;if(t==="PWD"||t==="OLDPWD")return e.state.env.has(t);let r=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let n=r[1],i=r[2];if(ee(e,n)){let o=ve(e,n);if(o&&o!==n){if(o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/))return!1;n=o}}if(i==="@"||i==="*")return F(e,n).length>0?!0:e.state.env.has(n);if(e.state.associativeArrays?.has(n)){let o=Ds(i);return e.state.env.has(`${n}_${o}`)}let l;if(/^-?\d+$/.test(i))l=Number.parseInt(i,10);else try{let o=new V,u=X(o,i);l=await L(e,u.expression)}catch{let o=e.state.env.get(i);l=o?Number.parseInt(o,10):0,Number.isNaN(l)&&(l=0)}if(l<0){let o=F(e,n);if(o.length===0)return!1;let c=Math.max(...o.map(([f])=>typeof f=="number"?f:0))+1+l;return c<0?!1:e.state.env.has(`${n}_${c}`)}return e.state.env.has(`${n}_${l}`)}if(ee(e,t)){let n=ve(e,t);return n===void 0||n===t?e.state.env.has(t):Xe(e,n)}return!!(e.state.env.has(t)||Ue(e,t))}async function $a(e,t){let s="",r=0;for(;r<t.length;){if(t[r]==="$"){if(t[r+1]==="{"){let n=1,i=r+2;for(;i<t.length&&n>0;)t[i]==="{"?n++:t[i]==="}"&&n--,i++;s+=t.slice(r,i),r=i;continue}if(t[r+1]==="("){let n=1,i=r+2;for(;i<t.length&&n>0;)t[i]==="("?n++:t[i]===")"&&n--,i++;s+=t.slice(r,i),r=i;continue}if(/[a-zA-Z_]/.test(t[r+1]||"")){let n=r+1;for(;n<t.length&&/[a-zA-Z0-9_]/.test(t[n]);)n++;let i=t.slice(r+1,n),a=await Y(e,i);s+=a,r=n;continue}if(/[0-9]/.test(t[r+1]||"")){let n=r+1;for(;n<t.length&&/[0-9]/.test(t[n]);)n++;let i=t.slice(r+1,n),a=await Y(e,i);s+=a,r=n;continue}if(/[*@#?\-!$]/.test(t[r+1]||"")){let n=t[r+1],i=await Y(e,n);s+=i,r+=2;continue}}if(t[r]==='"'){for(s+='"',r++;r<t.length&&t[r]!=='"';)if(t[r]==="$"&&/[a-zA-Z_]/.test(t[r+1]||"")){let n=r+1;for(;n<t.length&&/[a-zA-Z0-9_]/.test(t[n]);)n++;let i=t.slice(r+1,n),a=await Y(e,i);s+=a,r=n}else t[r]==="\\"?(s+=t[r],r++,r<t.length&&(s+=t[r],r++)):(s+=t[r],r++);r<t.length&&(s+='"',r++);continue}s+=t[r],r++}return s}async function ar(e,t){let s=t,r=t.startsWith('"')&&t.endsWith('"'),n=t.startsWith("'")&&t.endsWith("'");if((r||n)&&(s=t.slice(1,-1)),n)return s;let i="",a=0;for(;a<s.length;)if(s[a]==="$")if(s[a+1]==="("){let l=1,o=a+2;for(;o<s.length&&l>0;)s[o]==="("&&s[o-1]==="$"||s[o]==="("?l++:s[o]===")"&&l--,o++;let u=s.slice(a+2,o-1);if(e.execFn){let c=await e.execFn(u,{signal:e.state.signal});i+=c.stdout.replace(/\n+$/,""),c.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+c.stderr)}a=o}else if(s[a+1]==="{"){let l=1,o=a+2;for(;o<s.length&&l>0;)s[o]==="{"?l++:s[o]==="}"&&l--,o++;let u=s.slice(a+2,o-1),c=await Y(e,u);i+=c,a=o}else if(/[a-zA-Z_]/.test(s[a+1]||"")){let l=a+1;for(;l<s.length&&/[a-zA-Z0-9_]/.test(s[l]);)l++;let o=s.slice(a+1,l),u=await Y(e,o);i+=u,a=l}else i+=s[a],a++;else if(s[a]==="`"){let l=a+1;for(;l<s.length&&s[l]!=="`";)l++;let o=s.slice(a+1,l);if(e.execFn){let u=await e.execFn(o,{signal:e.state.signal});i+=u.stdout.replace(/\n+$/,""),u.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+u.stderr)}a=l+1}else i+=s[a],a++;return i}var Rs=1e4;function du(e,t,s,r,n){let i=s??1;i===0&&(i=1);let a=Math.abs(i),l=[],o=0;r?.match(/^-?0\d/)&&(o=Math.max(o,r.replace(/^-/,"").length)),n?.match(/^-?0\d/)&&(o=Math.max(o,n.replace(/^-/,"").length));let u=c=>{if(o>0){let f=c<0,d=String(Math.abs(c)).padStart(o,"0");return f?`-${d}`:d}return String(c)};if(e<=t)for(let c=e,f=0;c<=t&&f<Rs;c+=a,f++)l.push(u(c));else for(let c=e,f=0;c>=t&&f<Rs;c-=a,f++)l.push(u(c));return l}function hu(e,t,s){let r=s??1;r===0&&(r=1);let n=e.charCodeAt(0),i=t.charCodeAt(0),a=Math.abs(r),l=e>="A"&&e<="Z",o=e>="a"&&e<="z",u=t>="A"&&t<="Z",c=t>="a"&&t<="z";if(l&&c||o&&u){let d=s!==void 0?`..${s}`:"";throw new ws(`{${e}..${t}${d}}: invalid sequence`)}let f=[];if(n<=i)for(let d=n,h=0;d<=i&&h<Rs;d+=a,h++)f.push(String.fromCharCode(d));else for(let d=n,h=0;d>=i&&h<Rs;d-=a,h++)f.push(String.fromCharCode(d));return f}function or(e,t,s,r,n){let i=s!==void 0?`..${s}`:"";return typeof e=="number"&&typeof t=="number"?{expanded:du(e,t,s,r,n),literal:`{${e}..${t}${i}}`}:typeof e=="string"&&typeof t=="string"?{expanded:hu(e,t,s),literal:`{${e}..${t}${i}}`}:{expanded:null,literal:`{${e}..${t}${i}}`}}function Na(e){if(e.statements.length!==1)return null;let t=e.statements[0];if(t.operators.length!==0||t.pipelines.length!==1)return null;let s=t.pipelines[0];if(s.negated||s.commands.length!==1)return null;let r=s.commands[0];if(r.type!=="SimpleCommand")return null;let n=r;if(n.name!==null||n.args.length!==0||n.assignments.length!==0||n.redirections.length!==1)return null;let i=n.redirections[0];return i.operator!=="<"||i.target.type!=="Word"?null:{target:i.target}}function Ye(e,t){return!!(/[*?[]/.test(e)||t&&/[@*+?!]\(/.test(e))}function lr(e){let t="",s=0;for(;s<e.length;)e[s]==="\\"&&s+1<e.length?(t+=e[s+1],s+=2):(t+=e[s],s++);return t}function Le(e){return e.replace(/([*?[\]\\()|])/g,"\\$1")}function rs(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}function H(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,s=!1){let r="",n=0;for(;n<e.length;){let i=e[n];if(s&&(i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&n+1<e.length&&e[n+1]==="("){let a=pu(e,n+1);if(a!==-1){let l=e.slice(n+2,a),u=mu(l).map(f=>U(f,t,s)),c=u.length>0?u.join("|"):"(?:)";i==="@"?r+=`(?:${c})`:i==="*"?r+=`(?:${c})*`:i==="+"?r+=`(?:${c})+`:i==="?"?r+=`(?:${c})?`:i==="!"&&(r+=`(?!(?:${c})$).*`),n=a+1;continue}}if(i==="\\")if(n+1<e.length){let a=e[n+1];/[\\^$.|+(){}[\]*?]/.test(a)?r+=`\\${a}`:r+=a,n+=2}else r+="\\\\",n++;else if(i==="*")r+=t?".*":".*?",n++;else if(i==="?")r+=".",n++;else if(i==="["){let a=gu(e,n);if(a===-1)r+="\\[",n++;else{let l=e.slice(n+1,a);r+=yu(l),n=a+1}}else/[\^$.|+(){}]/.test(i)?(r+=`\\${i}`,n++):(r+=i,n++)}return r}function pu(e,t){let s=1,r=t+1;for(;r<e.length&&s>0;){let n=e[r];if(n==="\\"){r+=2;continue}if(n==="(")s++;else if(n===")"&&(s--,s===0))return r;r++}return-1}function mu(e){let t=[],s="",r=0,n=0;for(;n<e.length;){let i=e[n];if(i==="\\"){s+=i,n+1<e.length?(s+=e[n+1],n+=2):n++;continue}i==="("?(r++,s+=i):i===")"?(r--,s+=i):i==="|"&&r===0?(t.push(s),s=""):s+=i,n++}return t.push(s),t}function gu(e,t){let s=t+1;for(s<e.length&&e[s]==="^"&&s++,s<e.length&&e[s]==="]"&&s++;s<e.length;){if(e[s]==="\\"&&s+1<e.length){s+=2;continue}if(e[s]==="]")return s;if(e[s]==="'"){let r=e.indexOf("'",s+1);if(r!==-1){s=r+1;continue}}if(e[s]==="["&&s+1<e.length&&e[s+1]===":"){let r=e.indexOf(":]",s+2);if(r!==-1){s=r+2;continue}}s++}return-1}function yu(e){let t="[",s=0;for((e[0]==="^"||e[0]==="!")&&(t+="^",s++);s<e.length;){if(e[s]==="'"){let n=e.indexOf("'",s+1);if(n!==-1){let i=e.slice(s+1,n);for(let a of i)a==="\\"?t+="\\\\":a==="]"?t+="\\]":a==="^"&&t==="["?t+="\\^":t+=a;s=n+1;continue}}if(e[s]==="["&&s+1<e.length&&e[s+1]===":"){let n=e.indexOf(":]",s+2);if(n!==-1){let i=e.slice(s+2,n);t+=Eu(i),s=n+2;continue}}let r=e[s];r==="\\"?s+1<e.length?(t+=`\\${e[s+1]}`,s+=2):(t+="\\\\",s++):r==="-"&&s>0&&s<e.length-1?(t+="-",s++):r==="^"&&s===0?(t+="^",s++):(r==="]"&&s===0?t+="\\]":t+=r,s++)}return t+="]",t}var wu=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]);function Eu(e){return wu.get(e)??""}function lt(e,t,s,r){if(s==="prefix")return ae(`^${t}`,"s").replace(e,"");let n=ae(`${t}$`,"s");if(r)return n.replace(e,"");for(let i=e.length;i>=0;i--){let a=e.slice(i);if(n.test(a))return e.slice(0,i)}return e}function Ft(e,t){let s=Array.from(e.state.env.keys()),r=new Set,n=e.state.associativeArrays??new Set,i=new Set;for(let l of s){let o=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_\d+$/);o&&i.add(o[1]);let u=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)__length$/);u&&i.add(u[1])}let a=l=>{for(let o of n){let u=`${o}_`;if(l.startsWith(u)&&l!==o)return!0}return!1};for(let l of s)if(l.startsWith(t))if(l.includes("__")){let o=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)__length$/);o?.[1].startsWith(t)&&r.add(o[1])}else if(/_\d+$/.test(l)){let o=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_\d+$/);o?.[1].startsWith(t)&&r.add(o[1])}else a(l)||r.add(l);return[...r].sort()}function bu(e,t){let s=(i,a=2)=>String(i).padStart(a,"0");if(e===""){let i=s(t.getHours()),a=s(t.getMinutes()),l=s(t.getSeconds());return`${i}:${a}:${l}`}let r="",n=0;for(;n<e.length;)if(e[n]==="%"){if(n+1>=e.length){r+="%",n++;continue}let i=e[n+1];switch(i){case"H":r+=s(t.getHours());break;case"M":r+=s(t.getMinutes());break;case"S":r+=s(t.getSeconds());break;case"d":r+=s(t.getDate());break;case"m":r+=s(t.getMonth()+1);break;case"Y":r+=t.getFullYear();break;case"y":r+=s(t.getFullYear()%100);break;case"I":{let a=t.getHours()%12;a===0&&(a=12),r+=s(a);break}case"p":r+=t.getHours()<12?"AM":"PM";break;case"P":r+=t.getHours()<12?"am":"pm";break;case"%":r+="%";break;case"a":{r+=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][t.getDay()];break}case"b":{r+=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()];break}default:r+=`%${i}`}n+=2}else r+=e[n],n++;return r}function is(e,t){let s="",r=0,n=e.state.env.get("USER")||e.state.env.get("LOGNAME")||"user",i=e.state.env.get("HOSTNAME")||"localhost",a=i.split(".")[0],l=e.state.env.get("PWD")||"/",o=e.state.env.get("HOME")||"/",u=l.startsWith(o)?`~${l.slice(o.length)}`:l,c=l.split("/").pop()||l,f=new Date,d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],p=e.state.env.get("__COMMAND_NUMBER")||"1";for(;r<t.length;){let m=t[r];if(m==="\\"){if(r+1>=t.length){s+="\\",r++;continue}let y=t[r+1];if(y>="0"&&y<="7"){let b="",v=r+1;for(;v<t.length&&v<r+4&&t[v]>="0"&&t[v]<="7";)b+=t[v],v++;let E=Number.parseInt(b,8)%256;s+=String.fromCharCode(E),r=v;continue}switch(y){case"\\":s+="\\",r+=2;break;case"a":s+="\x07",r+=2;break;case"e":s+="\x1B",r+=2;break;case"n":s+=`
69
- `,r+=2;break;case"r":s+="\r",r+=2;break;case"$":s+="$",r+=2;break;case"[":case"]":r+=2;break;case"u":s+=n,r+=2;break;case"h":s+=a,r+=2;break;case"H":s+=i,r+=2;break;case"w":s+=u,r+=2;break;case"W":s+=c,r+=2;break;case"d":{let b=String(f.getDate()).padStart(2," ");s+=`${d[f.getDay()]} ${h[f.getMonth()]} ${b}`,r+=2;break}case"t":{let b=String(f.getHours()).padStart(2,"0"),v=String(f.getMinutes()).padStart(2,"0"),E=String(f.getSeconds()).padStart(2,"0");s+=`${b}:${v}:${E}`,r+=2;break}case"T":{let b=f.getHours()%12;b===0&&(b=12);let v=String(b).padStart(2,"0"),E=String(f.getMinutes()).padStart(2,"0"),w=String(f.getSeconds()).padStart(2,"0");s+=`${v}:${E}:${w}`,r+=2;break}case"@":{let b=f.getHours()%12;b===0&&(b=12);let v=String(b).padStart(2,"0"),E=String(f.getMinutes()).padStart(2,"0"),w=f.getHours()<12?"AM":"PM";s+=`${v}:${E} ${w}`,r+=2;break}case"A":{let b=String(f.getHours()).padStart(2,"0"),v=String(f.getMinutes()).padStart(2,"0");s+=`${b}:${v}`,r+=2;break}case"D":if(r+2<t.length&&t[r+2]==="{"){let b=t.indexOf("}",r+3);if(b!==-1){let v=t.slice(r+3,b);s+=bu(v,f),r=b+1}else s+="\\D",r+=2}else s+="\\D",r+=2;break;case"s":s+="bash",r+=2;break;case"v":s+="5.0",r+=2;break;case"V":s+="5.0.0",r+=2;break;case"j":s+="0",r+=2;break;case"l":s+="tty",r+=2;break;case"#":s+=p,r+=2;break;case"!":s+=p,r+=2;break;case"x":s+="\\x",r+=2;break;default:s+=`\\${y}`,r+=2}}else s+=m,r++}return s}function gt(e){if(e==="")return"''";if(/[\n\r\t\x00-\x1f\x7f']/.test(e)){let s="$'";for(let r of e)switch(r){case"'":s+="\\'";break;case"\\":s+="\\\\";break;case`
70
- `:s+="\\n";break;case"\r":s+="\\r";break;case" ":s+="\\t";break;default:{let n=r.charCodeAt(0);n<32||n===127?s+=`\\${n.toString(8).padStart(3,"0")}`:s+=r}}return`${s}'`}return`'${e}'`}function _e(e,t){e.state.readonlyVars=e.state.readonlyVars||new Set,e.state.readonlyVars.add(t)}function Je(e,t){return e.state.readonlyVars?.has(t)??!1}function me(e,t,s="bash"){if(Je(e,t)){let r=`${s}: ${t}: readonly variable
71
- `;throw new j(1,"",r)}return null}function Ze(e,t){let s=e.state.exportedVars?.has(t)??!1;if(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(t),e.state.localScopes.length>0&&e.state.localScopes[e.state.localScopes.length-1].has(t)&&!s){for(e.state.localExportedVars||(e.state.localExportedVars=[]);e.state.localExportedVars.length<e.state.localScopes.length;)e.state.localExportedVars.push(new Set);e.state.localExportedVars[e.state.localExportedVars.length-1].add(t)}}function Os(e,t){e.state.exportedVars?.delete(t)}function yt(e,t){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t))return"";let s="",r=e.state.env.has(`${t}__length`)||Array.from(e.state.env.keys()).some(i=>i.startsWith(`${t}_`)&&/^[0-9]+$/.test(i.slice(t.length+1))),n=e.state.associativeArrays?.has(t)??!1;return r&&!n&&(s+="a"),n&&(s+="A"),e.state.integerVars?.has(t)&&(s+="i"),ee(e,t)&&(s+="n"),Je(e,t)&&(s+="r"),e.state.exportedVars?.has(t)&&(s+="x"),s}async function ka(e,t,s,r){return e.coverage?.hit("bash:expansion:default_value"),(s.isUnset||t.checkEmpty&&s.isEmpty)&&t.word?r(e,t.word.parts,s.inDoubleQuotes):s.effectiveValue}async function _a(e,t,s,r,n){if(e.coverage?.hit("bash:expansion:assign_default"),(r.isUnset||s.checkEmpty&&r.isEmpty)&&s.word){let a=await n(e,s.word.parts,r.inDoubleQuotes),l=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(l){let[,o,u]=l,c;if(/^\d+$/.test(u))c=Number.parseInt(u,10);else{try{let d=new V,h=X(d,u);c=await L(e,h.expression)}catch{let d=e.state.env.get(u);c=d?Number.parseInt(d,10):0}Number.isNaN(c)&&(c=0)}e.state.env.set(`${o}_${c}`,a);let f=Number.parseInt(e.state.env.get(`${o}__length`)||"0",10);c>=f&&e.state.env.set(`${o}__length`,String(c+1))}else e.state.env.set(t,a);return a}return r.effectiveValue}async function Pa(e,t,s,r,n){if(e.coverage?.hit("bash:expansion:error_if_unset"),r.isUnset||s.checkEmpty&&r.isEmpty){let a=s.word?await n(e,s.word.parts,r.inDoubleQuotes):`${t}: parameter null or not set`;throw new j(1,"",`bash: ${a}
72
- `)}return r.effectiveValue}async function Da(e,t,s,r){return e.coverage?.hit("bash:expansion:use_alternative"),!(s.isUnset||t.checkEmpty&&s.isEmpty)&&t.word?r(e,t.word.parts,s.inDoubleQuotes):""}async function Ia(e,t,s,r,n){e.coverage?.hit("bash:expansion:pattern_removal");let i="",a=e.state.shoptOptions.extglob;if(s.pattern)for(let o of s.pattern.parts)if(o.type==="Glob")i+=U(o.pattern,s.greedy,a);else if(o.type==="Literal")i+=U(o.value,s.greedy,a);else if(o.type==="SingleQuoted"||o.type==="Escaped")i+=H(o.value);else if(o.type==="DoubleQuoted"){let u=await r(e,o.parts);i+=H(u)}else if(o.type==="ParameterExpansion"){let u=await n(e,o);i+=U(u,s.greedy,a)}else{let u=await n(e,o);i+=H(u)}if(s.side==="prefix")return ae(`^${i}`,"s").replace(t,"");let l=ae(`${i}$`,"s");if(s.greedy)return l.replace(t,"");for(let o=t.length;o>=0;o--){let u=t.slice(o);if(l.test(u))return t.slice(0,o)}return t}async function Ca(e,t,s,r,n){e.coverage?.hit("bash:expansion:pattern_replacement");let i="",a=e.state.shoptOptions.extglob;if(s.pattern)for(let u of s.pattern.parts)if(u.type==="Glob")i+=U(u.pattern,!0,a);else if(u.type==="Literal")i+=U(u.value,!0,a);else if(u.type==="SingleQuoted"||u.type==="Escaped")i+=H(u.value);else if(u.type==="DoubleQuoted"){let c=await r(e,u.parts);i+=H(c)}else if(u.type==="ParameterExpansion"){let c=await n(e,u);i+=U(c,!0,a)}else{let c=await n(e,u);i+=H(c)}let l=s.replacement?await r(e,s.replacement.parts):"";if(s.anchor==="start"?i=`^${i}`:s.anchor==="end"&&(i=`${i}$`),i==="")return t;let o=s.all?"gs":"s";try{let u=ae(i,o);if(s.all){let c="",f=0,d=0,h=e.limits.maxStringLength,p=u.exec(t);for(;p!==null&&!(p[0].length===0&&p.index===t.length);){if(c+=t.slice(f,p.index)+l,f=p.index+p[0].length,p[0].length===0&&f++,d++,d%100===0&&c.length>h)throw new Q(`pattern replacement: string length limit exceeded (${h} bytes)`,"string_length");p=u.exec(t)}return c+=t.slice(f),c}return u.replace(t,l)}catch(u){if(u instanceof Q)throw u;return t}}function xa(e,t,s){e.coverage?.hit("bash:expansion:length");let r=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(r){let n=r[1],i=F(e,n);return i.length>0?String(i.length):e.state.env.get(n)!==void 0?"1":"0"}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)&&Ue(e,t)){if(t==="FUNCNAME"){let i=e.state.funcNameStack?.[0]||"";return String([...i].length)}if(t==="BASH_LINENO"){let i=e.state.callLineStack?.[0];return String(i!==void 0?[...String(i)].length:0)}let n=e.state.env.get(`${t}_0`)||"";return String([...n].length)}return String([...s].length)}async function Ra(e,t,s,r){e.coverage?.hit("bash:expansion:substring");let n=await L(e,r.offset.expression),i=r.length?await L(e,r.length.expression):void 0;if(t==="@"||t==="*"){let u=Number.parseInt(e.state.env.get("#")||"0",10),c=[];for(let p=1;p<=u;p++)c.push(e.state.env.get(String(p))||"");let f=e.state.env.get("0")||"bash",d,h;if(n<=0)if(d=[f,...c],n<0){if(h=d.length+n,h<0)return""}else h=0;else d=c,h=n-1;if(h<0||h>=d.length)return"";if(i!==void 0){let p=i<0?d.length+i:h+i;return d.slice(h,Math.max(h,p)).join(" ")}return d.slice(h).join(" ")}let a=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(a){let u=a[1];if(e.state.associativeArrays?.has(u))throw new j(1,"",`bash: \${${u}[@]: 0: 3}: bad substitution
73
- `);let c=F(e,u),f=0;if(n<0){if(c.length>0){let d=c[c.length-1][0],p=(typeof d=="number"?d:0)+1+n;if(p<0||(f=c.findIndex(([m])=>typeof m=="number"&&m>=p),f<0))return""}}else if(f=c.findIndex(([d])=>typeof d=="number"&&d>=n),f<0)return"";if(i!==void 0){if(i<0)throw new te(`${a[1]}[@]: substring expression < 0`);return c.slice(f,f+i).map(([,d])=>d).join(" ")}return c.slice(f).map(([,d])=>d).join(" ")}let l=[...s],o=n;if(o<0&&(o=Math.max(0,l.length+o)),i!==void 0){if(i<0){let u=l.length+i;return l.slice(o,Math.max(o,u)).join("")}return l.slice(o,o+i).join("")}return l.slice(o).join("")}async function Oa(e,t,s,r,n){if(e.coverage?.hit("bash:expansion:case_modification"),s.pattern){let i=e.state.shoptOptions.extglob,a="";for(let f of s.pattern.parts)if(f.type==="Glob")a+=U(f.pattern,!0,i);else if(f.type==="Literal")a+=U(f.value,!0,i);else if(f.type==="SingleQuoted"||f.type==="Escaped")a+=H(f.value);else if(f.type==="DoubleQuoted"){let d=await r(e,f.parts);a+=H(d)}else if(f.type==="ParameterExpansion"){let d=await n(e,f);a+=U(d,!0,i)}let l=ae(`^(?:${a})$`),o=s.direction==="upper"?f=>f.toUpperCase():f=>f.toLowerCase(),u="",c=!1;for(let f of t)!s.all&&c?u+=f:l.test(f)?(u+=o(f),c=!0):u+=f;return u}return s.direction==="upper"?s.all?t.toUpperCase():t.charAt(0).toUpperCase()+t.slice(1):s.all?t.toLowerCase():t.charAt(0).toLowerCase()+t.slice(1)}function La(e,t,s,r,n){e.coverage?.hit("bash:expansion:transform");let i=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(i&&n.operator==="Q")return F(e,i[1]).map(([,u])=>gt(u)).join(" ");if(i&&n.operator==="a")return yt(e,i[1]);let a=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[.+\]$/);if(a&&n.operator==="a")return yt(e,a[1]);switch(n.operator){case"Q":return r?"":gt(s);case"P":return is(e,s);case"a":return yt(e,t);case"A":return r?"":`${t}=${gt(s)}`;case"E":return s.replace(/\\([\\abefnrtv'"?])/g,(l,o)=>{switch(o){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
74
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return o}});case"K":case"k":return r?"":gt(s);case"u":return s.charAt(0).toUpperCase()+s.slice(1);case"U":return s.toUpperCase();case"L":return s.toLowerCase();default:return s}}async function Ta(e,t,s,r,n,i,a=!1){if(e.coverage?.hit("bash:expansion:indirection"),ee(e,t))return Nt(e,t)||"";let l=/^[a-zA-Z_][a-zA-Z0-9_]*\[([@*])\]$/.test(t);if(r){if(n.innerOp?.type==="UseAlternative")return"";throw new xe(`\${!${t}}`)}let o=s;if(l&&(o===""||o.includes(" ")))throw new xe(`\${!${t}}`);let u=o.match(/^[a-zA-Z_][a-zA-Z0-9_]*\[(.+)\]$/);if(u&&u[1].includes("~"))throw new xe(`\${!${t}}`);if(n.innerOp){let c={type:"ParameterExpansion",parameter:o,operation:n.innerOp};return i(e,c,a)}return await Y(e,o)}function Wa(e,t){e.coverage?.hit("bash:expansion:array_keys");let r=F(e,t.array).map(([n])=>String(n));return t.star?r.join(z(e.state.env)):r.join(" ")}function Ma(e,t){e.coverage?.hit("bash:expansion:var_name_prefix");let s=Ft(e,t.prefix);return t.star?s.join(z(e.state.env)):s.join(" ")}function Fa(e,t,s,r){let n=Number.parseInt(e.state.env.get("#")||"0",10),i=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(t==="*")return{isEmpty:n===0,effectiveValue:s};if(t==="@")return{isEmpty:n===0||n===1&&e.state.env.get("1")==="",effectiveValue:s};if(i){let[,a,l]=i,o=F(e,a);if(o.length===0)return{isEmpty:!0,effectiveValue:""};if(l==="*"){let u=z(e.state.env),c=o.map(([,f])=>f).join(u);return{isEmpty:r?c==="":!1,effectiveValue:c}}return{isEmpty:o.length===1&&o.every(([,u])=>u===""),effectiveValue:o.map(([,u])=>u).join(" ")}}return{isEmpty:s==="",effectiveValue:s}}function Va(e){let t=0;for(;t<e.length;){let s=e[t];if(s==="\\"&&t+1<e.length){t+=2;continue}if(s==="'"){let r=e.indexOf("'",t+1);if(r!==-1){t=r+1;continue}}if(s==="$"&&t+1<e.length&&e[t+1]==="("||s==="`")return!0;t++}return!1}function za(e,t){let s=1,r=t,n=!1,i=!1;for(;r<e.length&&s>0;){let a=e[r];if(a==="\\"&&!n&&r+1<e.length){r+=2;continue}if(a==="'"&&!i){n=!n,r++;continue}if(a==='"'&&!n){i=!i,r++;continue}if(!n&&!i){if(a==="(")s++;else if(a===")"&&(s--,s===0))return r}r++}return-1}async function Ls(e,t){let s=new V,r;try{r=s.parse(t)}catch{return""}let n=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let i=new Map(e.state.env),a=e.state.cwd,l=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let o=await e.executeScript(r),u=o.exitCode;return e.state.env=i,e.state.cwd=a,e.state.suppressVerbose=l,e.state.lastExitCode=u,e.state.env.set("?",String(u)),o.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+o.stderr),e.state.bashPid=n,o.stdout.replace(/\n+$/,"")}catch(o){if(e.state.env=i,e.state.cwd=a,e.state.bashPid=n,e.state.suppressVerbose=l,o instanceof Q)throw o;return o instanceof j?(e.state.lastExitCode=o.exitCode,e.state.env.set("?",String(o.exitCode)),o.stdout?.replace(/\n+$/,"")??""):""}}function cr(e,t){let s="",r=0;for(;r<t.length;){let n=t[r];if(n==="'"){let i=t.indexOf("'",r+1);if(i!==-1){let a=t.slice(r+1,i);s+=Le(a),r=i+1;continue}}if(n==='"'){let i=-1,a=r+1;for(;a<t.length;){if(t[a]==="\\"){a+=2;continue}if(t[a]==='"'){i=a;break}a++}if(i!==-1){let l=t.slice(r+1,i),o=vu(e,l);s+=Le(o),r=i+1;continue}}if(n==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let l=t.slice(r+2,a);s+=e.state.env.get(l)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let l=t.slice(r+1,a);s+=e.state.env.get(l)??"",r=a;continue}}if(n==="\\"&&r+1<t.length){s+=n+t[r+1],r+=2;continue}s+=n,r++}return s}function vu(e,t){let s="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let i=t[r+1];if(i==="$"||i==="`"||i==="\\"||i==='"'){s+=i,r+=2;continue}s+=n,r++;continue}if(n==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let l=t.slice(r+2,a);s+=e.state.env.get(l)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let l=t.slice(r+1,a);s+=e.state.env.get(l)??"",r=a;continue}}s+=n,r++}return s}async function Ba(e,t){let s="",r=0;for(;r<t.length;){let n=t[r];if(n==="'"){let i=t.indexOf("'",r+1);if(i!==-1){let a=t.slice(r+1,i);s+=Le(a),r=i+1;continue}}if(n==='"'){let i=-1,a=r+1;for(;a<t.length;){if(t[a]==="\\"){a+=2;continue}if(t[a]==='"'){i=a;break}a++}if(i!==-1){let l=t.slice(r+1,i),o=await Su(e,l);s+=Le(o),r=i+1;continue}}if(n==="$"&&r+1<t.length&&t[r+1]==="("){let i=za(t,r+2);if(i!==-1){let a=t.slice(r+2,i),l=await Ls(e,a);s+=l,r=i+1;continue}}if(n==="`"){let i=t.indexOf("`",r+1);if(i!==-1){let a=t.slice(r+1,i),l=await Ls(e,a);s+=l,r=i+1;continue}}if(n==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let l=t.slice(r+2,a);s+=e.state.env.get(l)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let l=t.slice(r+1,a);s+=e.state.env.get(l)??"",r=a;continue}}if(n==="\\"&&r+1<t.length){s+=n+t[r+1],r+=2;continue}s+=n,r++}return s}async function Su(e,t){let s="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let i=t[r+1];if(i==="$"||i==="`"||i==="\\"||i==='"'){s+=i,r+=2;continue}s+=n,r++;continue}if(n==="$"&&r+1<t.length&&t[r+1]==="("){let i=za(t,r+2);if(i!==-1){let a=t.slice(r+2,i),l=await Ls(e,a);s+=l,r=i+1;continue}}if(n==="`"){let i=t.indexOf("`",r+1);if(i!==-1){let a=t.slice(r+1,i),l=await Ls(e,a);s+=l,r=i+1;continue}}if(n==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let l=t.slice(r+2,a);s+=e.state.env.get(l)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let l=t.slice(r+1,a);s+=e.state.env.get(l)??"",r=a;continue}}s+=n,r++}return s}function qa(e,t){if(!t.startsWith("~"))return t;e.coverage?.hit("bash:expansion:tilde");let s=e.state.env.get("HOME")!==void 0?e.state.env.get("HOME"):"/home/user";if(t==="~"||t.startsWith("~/"))return s+t.slice(1);let r=1;for(;r<t.length&&/[a-zA-Z0-9_-]/.test(t[r]);)r++;let n=t.slice(1,r),i=t.slice(r);return i!==""&&!i.startsWith("/")?t:n==="root"?`/root${i}`:t}async function Au(e,t,s,r){let n="";for(let i of t.parts)if(i.type==="Glob")n+=U(i.pattern,!0,e.state.shoptOptions.extglob);else if(i.type==="Literal")n+=U(i.value,!0,e.state.shoptOptions.extglob);else if(i.type==="SingleQuoted"||i.type==="Escaped")n+=H(i.value);else if(i.type==="DoubleQuoted"){let a=await s(e,i.parts);n+=H(a)}else if(i.type==="ParameterExpansion"){let a=await r(e,i);n+=U(a,!0,e.state.shoptOptions.extglob)}else{let a=await r(e,i);n+=H(a)}return n}async function ja(e,t,s,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion"||n.parts[0].operation?.type!=="PatternReplacement")return null;let i=n.parts[0],a=i.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!a)return null;let l=a[1],o=a[2]==="*",u=i.operation,c=F(e,l),f=c.map(([,y])=>y);if(c.length===0){let y=e.state.env.get(l);y!==void 0&&f.push(y)}if(f.length===0)return{values:[],quoted:!0};let d="";u.pattern&&(d=await Au(e,u.pattern,s,r));let h=u.replacement?await s(e,u.replacement.parts):"",p=d;u.anchor==="start"?p=`^${d}`:u.anchor==="end"&&(p=`${d}$`);let m=[];try{let y=ae(p,u.all?"g":"");for(let b of f)m.push(y.replace(b,h))}catch{m.push(...f)}if(o){let y=z(e.state.env);return{values:[m.join(y)],quoted:!0}}return{values:m,quoted:!0}}async function Ua(e,t,s,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion"||n.parts[0].operation?.type!=="PatternRemoval")return null;let i=n.parts[0],a=i.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!a)return null;let l=a[1],o=a[2]==="*",u=i.operation,c=F(e,l),f=c.map(([,m])=>m);if(c.length===0){let m=e.state.env.get(l);m!==void 0&&f.push(m)}if(f.length===0)return{values:[],quoted:!0};let d="",h=e.state.shoptOptions.extglob;if(u.pattern)for(let m of u.pattern.parts)if(m.type==="Glob")d+=U(m.pattern,u.greedy,h);else if(m.type==="Literal")d+=U(m.value,u.greedy,h);else if(m.type==="SingleQuoted"||m.type==="Escaped")d+=H(m.value);else if(m.type==="DoubleQuoted"){let y=await s(e,m.parts);d+=H(y)}else if(m.type==="ParameterExpansion"){let y=await r(e,m);d+=U(y,u.greedy,h)}else{let y=await r(e,m);d+=H(y)}let p=[];for(let m of f)p.push(lt(m,d,u.side,u.greedy));if(o){let m=z(e.state.env);return{values:[p.join(m)],quoted:!0}}return{values:p,quoted:!0}}async function Za(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion"||s.parts[0].operation?.type!=="DefaultValue"&&s.parts[0].operation?.type!=="UseAlternative"&&s.parts[0].operation?.type!=="AssignDefault")return null;let r=s.parts[0],n=r.operation,i=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/),a,l=!1;if(i){let o=i[1];l=i[2]==="*";let u=F(e,o),c=u.length>0||e.state.env.has(o),f=u.length===0||u.length===1&&u.every(([,h])=>h===""),d=n.checkEmpty??!1;if(n.type==="UseAlternative"?a=c&&!(d&&f):a=!c||d&&f,!a){if(u.length>0){let p=u.map(([,m])=>m);if(l){let m=z(e.state.env);return{values:[p.join(m)],quoted:!0}}return{values:p,quoted:!0}}let h=e.state.env.get(o);return h!==void 0?{values:[h],quoted:!0}:{values:[],quoted:!0}}}else{let o=r.parameter,u=await Xe(e,o),c=await Y(e,o),f=c==="",d=n.checkEmpty??!1;if(n.type==="UseAlternative"?a=u&&!(d&&f):a=!u||d&&f,!a)return{values:[c],quoted:!0}}if(a&&n.word){let o=n.word.parts,u=null,c=!1;for(let f of o)if(f.type==="ParameterExpansion"&&!f.operation){let d=f.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(d){u=d[1],c=d[2]==="*";break}}if(u){let f=F(e,u);if(f.length>0){let h=f.map(([,p])=>p);if(c||l){let p=z(e.state.env);return{values:[h.join(p)],quoted:!0}}return{values:h,quoted:!0}}let d=e.state.env.get(u);return d!==void 0?{values:[d],quoted:!0}:{values:[],quoted:!0}}}return null}async function Ha(e,t,s,r,n){if(!s||t.length!==1||t[0].type!=="DoubleQuoted")return null;let i=t[0],a=-1,l="",o=!1,u=null;for(let m=0;m<i.parts.length;m++){let y=i.parts[m];if(y.type==="ParameterExpansion"&&(y.operation?.type==="PatternRemoval"||y.operation?.type==="PatternReplacement")){let b=y.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(b){a=m,l=b[1],o=b[2]==="*",u=y.operation;break}}}if(a===-1||a===0&&a===i.parts.length-1)return null;let c="";for(let m=0;m<a;m++)c+=await r(e,i.parts[m]);let f="";for(let m=a+1;m<i.parts.length;m++)f+=await r(e,i.parts[m]);let d=F(e,l),h=d.map(([,m])=>m);if(d.length===0){let m=e.state.env.get(l);if(m!==void 0)h=[m];else{if(o)return{values:[c+f],quoted:!0};let y=c+f;return{values:y?[y]:[],quoted:!0}}}if(u?.type==="PatternRemoval"){let m=u,y="",b=e.state.shoptOptions.extglob;if(m.pattern)for(let v of m.pattern.parts)if(v.type==="Glob")y+=U(v.pattern,m.greedy,b);else if(v.type==="Literal")y+=U(v.value,m.greedy,b);else if(v.type==="SingleQuoted"||v.type==="Escaped")y+=H(v.value);else if(v.type==="DoubleQuoted"){let E=await n(e,v.parts);y+=H(E)}else if(v.type==="ParameterExpansion"){let E=await r(e,v);y+=U(E,m.greedy,b)}else{let E=await r(e,v);y+=H(E)}h=h.map(v=>lt(v,y,m.side,m.greedy))}else if(u?.type==="PatternReplacement"){let m=u,y="";if(m.pattern)for(let E of m.pattern.parts)if(E.type==="Glob")y+=U(E.pattern,!0,e.state.shoptOptions.extglob);else if(E.type==="Literal")y+=U(E.value,!0,e.state.shoptOptions.extglob);else if(E.type==="SingleQuoted"||E.type==="Escaped")y+=H(E.value);else if(E.type==="DoubleQuoted"){let w=await n(e,E.parts);y+=H(w)}else if(E.type==="ParameterExpansion"){let w=await r(e,E);y+=U(w,!0,e.state.shoptOptions.extglob)}else{let w=await r(e,E);y+=H(w)}let b=m.replacement?await n(e,m.replacement.parts):"",v=y;m.anchor==="start"?v=`^${y}`:m.anchor==="end"&&(v=`${y}$`);try{let E=ae(v,m.all?"g":"");h=h.map(w=>E.replace(w,b))}catch{}}if(o){let m=z(e.state.env);return{values:[c+h.join(m)+f],quoted:!0}}return h.length===1?{values:[c+h[0]+f],quoted:!0}:{values:[c+h[0],...h.slice(1,-1),h[h.length-1]+f],quoted:!0}}async function Ga(e,t,s,r){if(!s||t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0],i=-1,a="",l=!1;for(let h=0;h<n.parts.length;h++){let p=n.parts[h];if(p.type==="ParameterExpansion"&&!p.operation){let m=p.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(m){i=h,a=m[1],l=m[2]==="*";break}}}if(i===-1)return null;let o="";for(let h=0;h<i;h++)o+=await r(e,n.parts[h]);let u="";for(let h=i+1;h<n.parts.length;h++)u+=await r(e,n.parts[h]);let c=F(e,a),f=c.map(([,h])=>h);if(c.length===0){let h=e.state.env.get(a);if(h!==void 0)return{values:[o+h+u],quoted:!0};if(l)return{values:[o+u],quoted:!0};let p=o+u;return{values:p?[p]:[],quoted:!0}}if(l){let h=z(e.state.env);return{values:[o+f.join(h)+u],quoted:!0}}return f.length===1?{values:[o+f[0]+u],quoted:!0}:{values:[o+f[0],...f.slice(1,-1),f[f.length-1]+u],quoted:!0}}async function Qa(e,t,s){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let r=t[0];if(r.parts.length!==1||r.parts[0].type!=="ParameterExpansion"||r.parts[0].operation?.type!=="Substring")return null;let n=r.parts[0],i=n.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!i)return null;let a=i[1],l=i[2]==="*",o=n.operation;if(e.state.associativeArrays?.has(a))throw new j(1,"",`bash: \${${a}[@]: 0: 3}: bad substitution
75
- `);let u=o.offset?await s(e,o.offset.expression):0,c=o.length?await s(e,o.length.expression):void 0,f=F(e,a),d=0;if(u<0){if(f.length>0){let p=f[f.length-1][0],y=(typeof p=="number"?p:0)+1+u;if(y<0)return{values:[],quoted:!0};d=f.findIndex(([b])=>typeof b=="number"&&b>=y),d<0&&(d=f.length)}}else d=f.findIndex(([p])=>typeof p=="number"&&p>=u),d<0&&(d=f.length);let h;if(c!==void 0){if(c<0)throw new te(`${a}[@]: substring expression < 0`);h=f.slice(d,d+c).map(([,p])=>p)}else h=f.slice(d).map(([,p])=>p);if(h.length===0)return{values:[],quoted:!0};if(l){let p=z(e.state.env);return{values:[h.join(p)],quoted:!0}}return{values:h,quoted:!0}}function Ka(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion"||s.parts[0].operation?.type!=="Transform")return null;let r=s.parts[0],n=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!n)return null;let i=n[1],a=n[2]==="*",l=r.operation,o=F(e,i);if(o.length===0){let f=e.state.env.get(i);if(f!==void 0){let d;switch(l.operator){case"a":d="";break;case"P":d=is(e,f);break;case"Q":d=gt(f);break;default:d=f}return{values:[d],quoted:!0}}return a?{values:[""],quoted:!0}:{values:[],quoted:!0}}let u=yt(e,i),c;switch(l.operator){case"a":c=o.map(()=>u);break;case"P":c=o.map(([,f])=>is(e,f));break;case"Q":c=o.map(([,f])=>gt(f));break;case"u":c=o.map(([,f])=>f.charAt(0).toUpperCase()+f.slice(1));break;case"U":c=o.map(([,f])=>f.toUpperCase());break;case"L":c=o.map(([,f])=>f.toLowerCase());break;default:c=o.map(([,f])=>f)}if(a){let f=z(e.state.env);return{values:[c.join(f)],quoted:!0}}return{values:c,quoted:!0}}function Xa(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion")return null;let r=s.parts[0];if(r.operation)return null;let n=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(@)\]$/);if(!n)return null;let i=n[1];if(ee(e,i)){let o=Nt(e,i);if(o?.endsWith("[@]")||o?.endsWith("[*]"))return{values:[],quoted:!0}}let a=F(e,i);if(a.length>0)return{values:a.map(([,o])=>o),quoted:!0};let l=e.state.env.get(i);return l!==void 0?{values:[l],quoted:!0}:{values:[],quoted:!0}}function Ya(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion"||s.parts[0].operation)return null;let n=s.parts[0].parameter;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||!ee(e,n))return null;let i=Nt(e,n);if(!i)return null;let a=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(@)\]$/);if(!a)return null;let l=a[1],o=F(e,l);if(o.length>0)return{values:o.map(([,c])=>c),quoted:!0};let u=e.state.env.get(l);return u!==void 0?{values:[u],quoted:!0}:{values:[],quoted:!0}}async function Ja(e,t,s,r,n){if(!s||t.length!==1||t[0].type!=="DoubleQuoted")return null;let i=t[0];if(i.parts.length!==1||i.parts[0].type!=="ParameterExpansion"||i.parts[0].operation?.type!=="Indirection")return null;let a=i.parts[0],l=a.operation,o=await Y(e,a.parameter),u=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!u){if(!l.innerOp&&(o==="@"||o==="*")){let p=Number.parseInt(e.state.env.get("#")||"0",10),m=[];for(let y=1;y<=p;y++)m.push(e.state.env.get(String(y))||"");return o==="*"?{values:[m.join(z(e.state.env))],quoted:!0}:{values:m,quoted:!0}}return null}let c=u[1],f=u[2]==="*",d=F(e,c);if(l.innerOp){if(l.innerOp.type==="Substring")return $u(e,d,c,f,l.innerOp);if(l.innerOp.type==="DefaultValue"||l.innerOp.type==="UseAlternative"||l.innerOp.type==="AssignDefault"||l.innerOp.type==="ErrorIfUnset")return Nu(e,d,c,f,l.innerOp,n);if(l.innerOp.type==="Transform"&&l.innerOp.operator==="a"){let m=yt(e,c),y=d.map(()=>m);return f?{values:[y.join(z(e.state.env))],quoted:!0}:{values:y,quoted:!0}}let p=[];for(let[,m]of d){let y={type:"ParameterExpansion",parameter:"_indirect_elem_",operation:l.innerOp},b=e.state.env.get("_indirect_elem_");e.state.env.set("_indirect_elem_",m);try{let v=await r(e,y,!0);p.push(v)}finally{b!==void 0?e.state.env.set("_indirect_elem_",b):e.state.env.delete("_indirect_elem_")}}return f?{values:[p.join(z(e.state.env))],quoted:!0}:{values:p,quoted:!0}}if(d.length>0){let p=d.map(([,m])=>m);return f?{values:[p.join(z(e.state.env))],quoted:!0}:{values:p,quoted:!0}}let h=e.state.env.get(c);return h!==void 0?{values:[h],quoted:!0}:{values:[],quoted:!0}}async function $u(e,t,s,r,n){let i=n.offset?await L(e,n.offset.expression):0,a=n.length?await L(e,n.length.expression):void 0,l=0;if(i<0){if(t.length>0){let c=t[t.length-1][0],d=(typeof c=="number"?c:0)+1+i;if(d<0)return{values:[],quoted:!0};if(l=t.findIndex(([h])=>typeof h=="number"&&h>=d),l<0)return{values:[],quoted:!0}}}else if(l=t.findIndex(([c])=>typeof c=="number"&&c>=i),l<0)return{values:[],quoted:!0};let o;if(a!==void 0){if(a<0)throw new te(`${s}[@]: substring expression < 0`);o=t.slice(l,l+a)}else o=t.slice(l);let u=o.map(([,c])=>c);return r?{values:[u.join(z(e.state.env))],quoted:!0}:{values:u,quoted:!0}}async function Nu(e,t,s,r,n,i){let a=n.checkEmpty??!1,l=t.map(([,c])=>c),o=t.length===0,u=t.length===0;if(n.type==="UseAlternative")return!u&&!(a&&o)&&n.word?{values:[await i(e,n.word.parts,!0)],quoted:!0}:{values:[],quoted:!0};if(n.type==="DefaultValue")return(u||a&&o)&&n.word?{values:[await i(e,n.word.parts,!0)],quoted:!0}:r?{values:[l.join(z(e.state.env))],quoted:!0}:{values:l,quoted:!0};if(n.type==="AssignDefault"){if((u||a&&o)&&n.word){let f=await i(e,n.word.parts,!0);return e.state.env.set(`${s}_0`,f),e.state.env.set(`${s}__length`,"1"),{values:[f],quoted:!0}}return r?{values:[l.join(z(e.state.env))],quoted:!0}:{values:l,quoted:!0}}return r?{values:[l.join(z(e.state.env))],quoted:!0}:{values:l,quoted:!0}}async function eo(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="UseAlternative"&&t[0].operation?.type!=="DefaultValue")return null;let s=t[0],r=s.operation,n=r?.word;if(!n||n.parts.length!==1||n.parts[0].type!=="DoubleQuoted")return null;let i=n.parts[0];if(i.parts.length!==1||i.parts[0].type!=="ParameterExpansion"||i.parts[0].operation?.type!=="Indirection")return null;let a=i.parts[0],o=(await Y(e,a.parameter)).match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!o)return null;let u=await Xe(e,s.parameter),c=await Y(e,s.parameter)==="",f=r.checkEmpty??!1,d;if(r.type==="UseAlternative"?d=u&&!(f&&c):d=!u||f&&c,d){let h=o[1],p=o[2]==="*",m=F(e,h);if(m.length>0){let b=m.map(([,v])=>v);return p?{values:[b.join(z(e.state.env))],quoted:!0}:{values:b,quoted:!0}}let y=e.state.env.get(h);return y!==void 0?{values:[y],quoted:!0}:{values:[],quoted:!0}}return{values:[],quoted:!1}}async function to(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="Indirection")return null;let s=t[0],n=s.operation.innerOp;if(!n||n.type!=="UseAlternative"&&n.type!=="DefaultValue")return null;let i=n.word;if(!i||i.parts.length!==1||i.parts[0].type!=="DoubleQuoted")return null;let a=i.parts[0];if(a.parts.length!==1||a.parts[0].type!=="ParameterExpansion"||a.parts[0].operation?.type!=="Indirection")return null;let l=a.parts[0],u=(await Y(e,l.parameter)).match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!u)return null;let c=await Y(e,s.parameter),f=await Xe(e,s.parameter),d=c==="",h=n.checkEmpty??!1,p;if(n.type==="UseAlternative"?p=f&&!(h&&d):p=!f||h&&d,p){let m=u[1],y=u[2]==="*",b=F(e,m);if(b.length>0){let E=b.map(([,w])=>w);return y?{values:[E.join(z(e.state.env))],quoted:!0}:{values:E,quoted:!0}}let v=e.state.env.get(m);return v!==void 0?{values:[v],quoted:!0}:{values:[],quoted:!0}}return{values:[],quoted:!1}}function so(e){let t=Number.parseInt(e.state.env.get("#")||"0",10),s=[];for(let r=1;r<=t;r++)s.push(e.state.env.get(String(r))||"");return s}async function no(e,t,s,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0],i=-1,a=!1;for(let v=0;v<n.parts.length;v++){let E=n.parts[v];if(E.type==="ParameterExpansion"&&(E.parameter==="@"||E.parameter==="*")&&E.operation?.type==="Substring"){i=v,a=E.parameter==="*";break}}if(i===-1)return null;let o=n.parts[i].operation,u=o.offset?await s(e,o.offset.expression):0,c=o.length?await s(e,o.length.expression):void 0,f=Number.parseInt(e.state.env.get("#")||"0",10),d=[];for(let v=1;v<=f;v++)d.push(e.state.env.get(String(v))||"");let h=e.state.env.get("0")||"bash",p;if(u<=0){let v=[h,...d],E=v.length+u;if(E<0)p=[];else{let w=u<0?E:0;if(c!==void 0){let S=c<0?v.length+c:w+c;p=v.slice(w,Math.max(w,S))}else p=v.slice(w)}}else{let v=u-1;if(v>=d.length)p=[];else if(c!==void 0){let E=c<0?d.length+c:v+c;p=d.slice(v,Math.max(v,E))}else p=d.slice(v)}let m="";for(let v=0;v<i;v++)m+=await r(e,n.parts[v]);let y="";for(let v=i+1;v<n.parts.length;v++)y+=await r(e,n.parts[v]);if(p.length===0){let v=m+y;return{values:v?[v]:[],quoted:!0}}if(a){let v=z(e.state.env);return{values:[m+p.join(v)+y],quoted:!0}}return p.length===1?{values:[m+p[0]+y],quoted:!0}:{values:[m+p[0],...p.slice(1,-1),p[p.length-1]+y],quoted:!0}}async function ro(e,t,s,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0],i=-1,a=!1;for(let b=0;b<n.parts.length;b++){let v=n.parts[b];if(v.type==="ParameterExpansion"&&(v.parameter==="@"||v.parameter==="*")&&v.operation?.type==="PatternReplacement"){i=b,a=v.parameter==="*";break}}if(i===-1)return null;let o=n.parts[i].operation,u=so(e),c="";for(let b=0;b<i;b++)c+=await s(e,n.parts[b]);let f="";for(let b=i+1;b<n.parts.length;b++)f+=await s(e,n.parts[b]);if(u.length===0){let b=c+f;return{values:b?[b]:[],quoted:!0}}let d="";if(o.pattern)for(let b of o.pattern.parts)if(b.type==="Glob")d+=U(b.pattern,!0,e.state.shoptOptions.extglob);else if(b.type==="Literal")d+=U(b.value,!0,e.state.shoptOptions.extglob);else if(b.type==="SingleQuoted"||b.type==="Escaped")d+=H(b.value);else if(b.type==="DoubleQuoted"){let v=await r(e,b.parts);d+=H(v)}else if(b.type==="ParameterExpansion"){let v=await s(e,b);d+=U(v,!0,e.state.shoptOptions.extglob)}else{let v=await s(e,b);d+=H(v)}let h=o.replacement?await r(e,o.replacement.parts):"",p=d;o.anchor==="start"?p=`^${d}`:o.anchor==="end"&&(p=`${d}$`);let m=[];try{let b=ae(p,o.all?"g":"");for(let v of u)m.push(b.replace(v,h))}catch{m.push(...u)}if(a){let b=z(e.state.env);return{values:[c+m.join(b)+f],quoted:!0}}return m.length===1?{values:[c+m[0]+f],quoted:!0}:{values:[c+m[0],...m.slice(1,-1),m[m.length-1]+f],quoted:!0}}async function io(e,t,s,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0],i=-1,a=!1;for(let y=0;y<n.parts.length;y++){let b=n.parts[y];if(b.type==="ParameterExpansion"&&(b.parameter==="@"||b.parameter==="*")&&b.operation?.type==="PatternRemoval"){i=y,a=b.parameter==="*";break}}if(i===-1)return null;let o=n.parts[i].operation,u=so(e),c="";for(let y=0;y<i;y++)c+=await s(e,n.parts[y]);let f="";for(let y=i+1;y<n.parts.length;y++)f+=await s(e,n.parts[y]);if(u.length===0){let y=c+f;return{values:y?[y]:[],quoted:!0}}let d="",h=e.state.shoptOptions.extglob;if(o.pattern)for(let y of o.pattern.parts)if(y.type==="Glob")d+=U(y.pattern,o.greedy,h);else if(y.type==="Literal")d+=U(y.value,o.greedy,h);else if(y.type==="SingleQuoted"||y.type==="Escaped")d+=H(y.value);else if(y.type==="DoubleQuoted"){let b=await r(e,y.parts);d+=H(b)}else if(y.type==="ParameterExpansion"){let b=await s(e,y);d+=U(b,o.greedy,h)}else{let b=await s(e,y);d+=H(b)}let p=[];for(let y of u)p.push(lt(y,d,o.side,o.greedy));if(a){let y=z(e.state.env);return{values:[c+p.join(y)+f],quoted:!0}}return p.length===1?{values:[c+p[0]+f],quoted:!0}:{values:[c+p[0],...p.slice(1,-1),p[p.length-1]+f],quoted:!0}}async function ao(e,t,s){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let r=t[0],n=-1,i=!1;for(let d=0;d<r.parts.length;d++){let h=r.parts[d];if(h.type==="ParameterExpansion"&&(h.parameter==="@"||h.parameter==="*")){n=d,i=h.parameter==="*";break}}if(n===-1)return null;let a=r.parts[n];if(a.type==="ParameterExpansion"&&a.operation)return null;let l=Number.parseInt(e.state.env.get("#")||"0",10),o="";for(let d=0;d<n;d++)o+=await s(e,r.parts[d]);let u="";for(let d=n+1;d<r.parts.length;d++)u+=await s(e,r.parts[d]);if(l===0){if(i)return{values:[o+u],quoted:!0};let d=o+u;return{values:d?[d]:[],quoted:!0}}let c=[];for(let d=1;d<=l;d++)c.push(e.state.env.get(String(d))||"");if(i){let d=z(e.state.env);return{values:[o+c.join(d)+u],quoted:!0}}return c.length===1?{values:[o+c[0]+u],quoted:!0}:{values:[o+c[0],...c.slice(1,-1),c[c.length-1]+u],quoted:!0}}function ku(e){return new mt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations})}async function Ts(e,t){if(e.state.options.noglob)return t;let s=ku(e),r=[];for(let n of t)if(Ye(n,e.state.shoptOptions.extglob)){let i=await s.expand(n);if(i.length>0)r.push(...i);else{if(s.hasFailglob())throw new ct(n);s.hasNullglob()||r.push(n)}}else r.push(n);return r}async function oo(e,t,s,r){let n=-1,i="",a=!1;for(let v=0;v<t.length;v++){let E=t[v];if(E.type==="ParameterExpansion"&&E.operation?.type==="PatternReplacement"){let w=E.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(w){n=v,i=w[1],a=w[2]==="*";break}}}if(n===-1)return null;let o=t[n].operation,u=F(e,i),c=u.map(([,v])=>v);if(u.length===0){let v=e.state.env.get(i);v!==void 0&&(c=[v])}if(c.length===0)return{values:[],quoted:!1};let f="";if(o.pattern)for(let v of o.pattern.parts)if(v.type==="Glob")f+=U(v.pattern,!0,e.state.shoptOptions.extglob);else if(v.type==="Literal")f+=U(v.value,!0,e.state.shoptOptions.extglob);else if(v.type==="SingleQuoted"||v.type==="Escaped")f+=H(v.value);else if(v.type==="DoubleQuoted"){let E=await s(e,v.parts);f+=H(E)}else if(v.type==="ParameterExpansion"){let E=await r(e,v);f+=U(E,!0,e.state.shoptOptions.extglob)}else{let E=await r(e,v);f+=H(E)}let d=o.replacement?await s(e,o.replacement.parts):"",h=f;o.anchor==="start"?h=`^${f}`:o.anchor==="end"&&(h=`${f}$`);let p=[];try{let v=ae(h,o.all?"g":"");for(let E of c)p.push(v.replace(E,d))}catch{p.push(...c)}let m=he(e.state.env),y=we(e.state.env);if(a){let v=z(e.state.env),E=p.join(v);return y?{values:E?[E]:[],quoted:!1}:{values:se(E,m),quoted:!1}}if(y)return{values:p,quoted:!1};let b=[];for(let v of p)v===""?b.push(""):b.push(...se(v,m));return{values:b,quoted:!1}}async function lo(e,t,s,r){let n=-1,i="",a=!1;for(let b=0;b<t.length;b++){let v=t[b];if(v.type==="ParameterExpansion"&&v.operation?.type==="PatternRemoval"){let E=v.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(E){n=b,i=E[1],a=E[2]==="*";break}}}if(n===-1)return null;let o=t[n].operation,u=F(e,i),c=u.map(([,b])=>b);if(u.length===0){let b=e.state.env.get(i);b!==void 0&&(c=[b])}if(c.length===0)return{values:[],quoted:!1};let f="",d=e.state.shoptOptions.extglob;if(o.pattern)for(let b of o.pattern.parts)if(b.type==="Glob")f+=U(b.pattern,o.greedy,d);else if(b.type==="Literal")f+=U(b.value,o.greedy,d);else if(b.type==="SingleQuoted"||b.type==="Escaped")f+=H(b.value);else if(b.type==="DoubleQuoted"){let v=await s(e,b.parts);f+=H(v)}else if(b.type==="ParameterExpansion"){let v=await r(e,b);f+=U(v,o.greedy,d)}else{let v=await r(e,b);f+=H(v)}let h=[];for(let b of c)h.push(lt(b,f,o.side,o.greedy));let p=he(e.state.env),m=we(e.state.env);if(a){let b=z(e.state.env),v=h.join(b);return m?{values:v?[v]:[],quoted:!1}:{values:se(v,p),quoted:!1}}if(m)return{values:h,quoted:!1};let y=[];for(let b of h)b===""?y.push(""):y.push(...se(b,p));return{values:y,quoted:!1}}async function co(e,t,s,r){let n=-1,i=!1;for(let y=0;y<t.length;y++){let b=t[y];if(b.type==="ParameterExpansion"&&(b.parameter==="@"||b.parameter==="*")&&b.operation?.type==="PatternRemoval"){n=y,i=b.parameter==="*";break}}if(n===-1)return null;let l=t[n].operation,o=Number.parseInt(e.state.env.get("#")||"0",10),u=[];for(let y=1;y<=o;y++)u.push(e.state.env.get(String(y))||"");if(u.length===0)return{values:[],quoted:!1};let c="",f=e.state.shoptOptions.extglob;if(l.pattern)for(let y of l.pattern.parts)if(y.type==="Glob")c+=U(y.pattern,l.greedy,f);else if(y.type==="Literal")c+=U(y.value,l.greedy,f);else if(y.type==="SingleQuoted"||y.type==="Escaped")c+=H(y.value);else if(y.type==="DoubleQuoted"){let b=await s(e,y.parts);c+=H(b)}else if(y.type==="ParameterExpansion"){let b=await r(e,y);c+=U(b,l.greedy,f)}else{let b=await r(e,y);c+=H(b)}let d=[];for(let y of u)d.push(lt(y,c,l.side,l.greedy));let h=he(e.state.env),p=we(e.state.env);if(i){let y=z(e.state.env),b=d.join(y);return p?{values:b?[b]:[],quoted:!1}:{values:se(b,h),quoted:!1}}if(p)return{values:d,quoted:!1};let m=[];for(let y of d)y===""?m.push(""):m.push(...se(y,h));return{values:m,quoted:!1}}async function uo(e,t,s,r){let n=-1,i=!1;for(let E=0;E<t.length;E++){let w=t[E];if(w.type==="ParameterExpansion"&&(w.parameter==="@"||w.parameter==="*")&&w.operation?.type==="Substring"){n=E,i=w.parameter==="*";break}}if(n===-1)return null;let l=t[n].operation,o=l.offset?await s(e,l.offset.expression):0,u=l.length?await s(e,l.length.expression):void 0,c=Number.parseInt(e.state.env.get("#")||"0",10),f=[];for(let E=1;E<=c;E++)f.push(e.state.env.get(String(E))||"");let d=e.state.env.get("0")||"bash",h;if(o<=0){let E=[d,...f],w=E.length+o;if(w<0)h=[];else{let S=o<0?w:0;if(u!==void 0){let A=u<0?E.length+u:S+u;h=E.slice(S,Math.max(S,A))}else h=E.slice(S)}}else{let E=o-1;if(E>=f.length)h=[];else if(u!==void 0){let w=u<0?f.length+u:E+u;h=f.slice(E,Math.max(E,w))}else h=f.slice(E)}let p="";for(let E=0;E<n;E++)p+=await r(e,t[E]);let m="";for(let E=n+1;E<t.length;E++)m+=await r(e,t[E]);let y=he(e.state.env),b=we(e.state.env);if(h.length===0){let E=p+m;return E?b?{values:[E],quoted:!1}:{values:se(E,y),quoted:!1}:{values:[],quoted:!1}}let v;if(i){let E=z(e.state.env),w=p+h.join(E)+m;b?v=w?[w]:[]:v=se(w,y)}else if(b)h.length===1?v=[p+h[0]+m]:v=[p+h[0],...h.slice(1,-1),h[h.length-1]+m];else{v=[];for(let E=0;E<h.length;E++){let w=h[E];if(E===0&&(w=p+w),E===h.length-1&&(w=w+m),w==="")v.push("");else{let S=se(w,y);v.push(...S)}}}return{values:await Ts(e,v),quoted:!1}}async function fo(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].parameter!=="@"&&t[0].parameter!=="*"||t[0].operation)return null;let s=t[0].parameter==="*",r=Number.parseInt(e.state.env.get("#")||"0",10);if(r===0)return{values:[],quoted:!1};let n=[];for(let u=1;u<=r;u++)n.push(e.state.env.get(String(u))||"");let i=he(e.state.env),a=we(e.state.env),l=Is(e.state.env),o;if(s)if(a)o=n.filter(u=>u!=="");else{let u=z(e.state.env),c=n.join(u);o=se(c,i)}else if(a)o=n.filter(u=>u!=="");else if(l){o=[];for(let u of n){if(u==="")continue;let c=se(u,i);o.push(...c)}}else{o=[];for(let u of n)if(u==="")o.push("");else{let c=se(u,i);o.push(...c)}for(;o.length>0&&o[o.length-1]==="";)o.pop()}return{values:await Ts(e,o),quoted:!1}}async function ho(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation)return null;let s=t[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!s)return null;let r=s[1],n=s[2]==="*",i=F(e,r),a;if(i.length===0){let f=e.state.env.get(r);if(f!==void 0)a=[f];else return{values:[],quoted:!1}}else a=i.map(([,f])=>f);let l=he(e.state.env),o=we(e.state.env),u=Is(e.state.env),c;if(n)if(o)c=a.filter(f=>f!=="");else{let f=z(e.state.env),d=a.join(f);c=se(d,l)}else if(o)c=a.filter(f=>f!=="");else if(u){c=[];for(let f of a){if(f==="")continue;let d=se(f,l);c.push(...d)}}else{c=[];for(let f of a)if(f==="")c.push("");else{let d=se(f,l);c.push(...d)}for(;c.length>0&&c[c.length-1]==="";)c.pop()}return{values:await Ts(e,c),quoted:!1}}function po(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="VarNamePrefix")return null;let s=t[0].operation,r=Ft(e,s.prefix);if(r.length===0)return{values:[],quoted:!1};let n=he(e.state.env),i=we(e.state.env),a;if(s.star)if(i)a=r;else{let l=z(e.state.env),o=r.join(l);a=se(o,n)}else if(i)a=r;else{a=[];for(let l of r){let o=se(l,n);a.push(...o)}}return{values:a,quoted:!1}}function mo(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="ArrayKeys")return null;let s=t[0].operation,n=F(e,s.array).map(([o])=>String(o));if(n.length===0)return{values:[],quoted:!1};let i=he(e.state.env),a=we(e.state.env),l;if(s.star)if(a)l=n;else{let o=z(e.state.env),u=n.join(o);l=se(u,i)}else if(a)l=n;else{l=[];for(let o of n){let u=se(o,i);l.push(...u)}}return{values:l,quoted:!1}}async function go(e,t,s){let r=-1;for(let d=0;d<t.length;d++){let h=t[d];if(h.type==="ParameterExpansion"&&(h.parameter==="@"||h.parameter==="*")&&!h.operation){r=d;break}}if(r===-1||t.length<=1)return null;let n=Number.parseInt(e.state.env.get("#")||"0",10),i=[];for(let d=1;d<=n;d++)i.push(e.state.env.get(String(d))||"");let a="";for(let d=0;d<r;d++)a+=await s(e,t[d]);let l="";for(let d=r+1;d<t.length;d++)l+=await s(e,t[d]);let o=he(e.state.env),u=we(e.state.env),c=Is(e.state.env);if(n===0){let d=a+l;return{values:d?[d]:[],quoted:!1}}let f;{let d=[];for(let h=0;h<i.length;h++){let p=i[h];h===0&&(p=a+p),h===i.length-1&&(p=p+l),d.push(p)}if(u)f=d.filter(h=>h!=="");else if(c){f=[];for(let h of d){if(h==="")continue;let p=se(h,o);f.push(...p)}}else{f=[];for(let h of d)if(h==="")f.push("");else{let p=se(h,o);f.push(...p)}for(;f.length>0&&f[f.length-1]==="";)f.pop()}}return f.length===0?{values:[],quoted:!1}:{values:await Ts(e,f),quoted:!1}}async function Eo(e,t,s){e.coverage?.hit("bash:expansion:word_glob");let r=t.parts,{hasQuoted:n,hasCommandSub:i,hasArrayVar:a,hasArrayAtExpansion:l,hasParamExpansion:o,hasVarNamePrefixExpansion:u,hasIndirection:c}=ns(r),d=s.hasBraceExpansion(r)?await s.expandWordWithBracesAsync(e,t):null;if(d&&d.length>1)return _u(e,d,n);let h=await Pu(e,r,l,u,c,s);if(h!==null)return h;let p=await Iu(e,r,s);if(p!==null)return p;let m=await Cu(e,r,s);if(m!==null)return m;let y=await Ru(e,r,s.expandPart);if(y!==null)return wo(e,y);if((i||a||o)&&!we(e.state.env)){let v=he(e.state.env),E=s.buildIfsCharClassPattern(v),w=await s.smartWordSplit(e,r,v,E,s.expandPart);return wo(e,w)}let b=await s.expandWordAsync(e,t);return Ou(e,t,r,b,n,s.expandWordForGlobbing)}async function _u(e,t,s){let r=[];for(let n of t)if(!(!s&&n===""))if(!s&&!e.state.options.noglob&&Ye(n,e.state.shoptOptions.extglob)){let i=await Ws(e,n);r.push(...i)}else r.push(n);return{values:r,quoted:!1}}async function Pu(e,t,s,r,n,i){if(s){let a=Xa(e,t);if(a!==null)return a}{let a=Ya(e,t);if(a!==null)return a}{let a=await Za(e,t);if(a!==null)return a}{let a=await Ha(e,t,s,i.expandPart,i.expandWordPartsAsync);if(a!==null)return a}{let a=await Ga(e,t,s,i.expandPart);if(a!==null)return a}{let a=await Qa(e,t,i.evaluateArithmetic);if(a!==null)return a}{let a=Ka(e,t);if(a!==null)return a}{let a=await ja(e,t,i.expandWordPartsAsync,i.expandPart);if(a!==null)return a}{let a=await Ua(e,t,i.expandWordPartsAsync,i.expandPart);if(a!==null)return a}if(r&&t.length===1&&t[0].type==="DoubleQuoted"){let a=Du(e,t);if(a!==null)return a}{let a=await Ja(e,t,n,i.expandParameterAsync,i.expandWordPartsAsync);if(a!==null)return a}{let a=await eo(e,t);if(a!==null)return a}{let a=await to(e,t);if(a!==null)return a}return null}function Du(e,t){let s=t[0];if(s.type!=="DoubleQuoted")return null;if(s.parts.length===1&&s.parts[0].type==="ParameterExpansion"&&s.parts[0].operation?.type==="VarNamePrefix"){let r=s.parts[0].operation,n=Ft(e,r.prefix);return r.star?{values:[n.join(z(e.state.env))],quoted:!0}:{values:n,quoted:!0}}if(s.parts.length===1&&s.parts[0].type==="ParameterExpansion"&&s.parts[0].operation?.type==="ArrayKeys"){let r=s.parts[0].operation,i=F(e,r.array).map(([a])=>String(a));return r.star?{values:[i.join(z(e.state.env))],quoted:!0}:{values:i,quoted:!0}}return null}async function Iu(e,t,s){{let r=await no(e,t,s.evaluateArithmetic,s.expandPart);if(r!==null)return r}{let r=await ro(e,t,s.expandPart,s.expandWordPartsAsync);if(r!==null)return r}{let r=await io(e,t,s.expandPart,s.expandWordPartsAsync);if(r!==null)return r}{let r=await ao(e,t,s.expandPart);if(r!==null)return r}return null}async function Cu(e,t,s){{let r=await oo(e,t,s.expandWordPartsAsync,s.expandPart);if(r!==null)return r}{let r=await lo(e,t,s.expandWordPartsAsync,s.expandPart);if(r!==null)return r}{let r=await co(e,t,s.expandWordPartsAsync,s.expandPart);if(r!==null)return r}{let r=await uo(e,t,s.evaluateArithmetic,s.expandPart);if(r!==null)return r}{let r=await fo(e,t);if(r!==null)return r}{let r=await ho(e,t);if(r!==null)return r}{let r=po(e,t);if(r!==null)return r}{let r=mo(e,t);if(r!==null)return r}{let r=await go(e,t,s.expandPart);if(r!==null)return r}return null}function yo(e){if(e.type!=="DoubleQuoted")return null;for(let t=0;t<e.parts.length;t++){let s=e.parts[t];if(s.type!=="ParameterExpansion"||s.operation)continue;let r=s.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(r)return{type:"array",name:r[1],atIndex:t,isStar:r[2]==="*"};if(s.parameter==="@"||s.parameter==="*")return{type:"positional",atIndex:t,isStar:s.parameter==="*"}}return null}async function xu(e,t,s,r){let n="";for(let l=0;l<s.atIndex;l++)n+=await r(e,t.parts[l]);let i="";for(let l=s.atIndex+1;l<t.parts.length;l++)i+=await r(e,t.parts[l]);let a;if(s.type==="array"){if(a=F(e,s.name).map(([,o])=>o),a.length===0){let o=e.state.env.get(s.name);o!==void 0&&(a=[o])}}else{let l=Number.parseInt(e.state.env.get("#")||"0",10);a=[];for(let o=1;o<=l;o++)a.push(e.state.env.get(String(o))||"")}if(s.isStar){let l=z(e.state.env),o=a.join(l);return[n+o+i]}if(a.length===0){let l=n+i;return l?[l]:[]}return a.length===1?[n+a[0]+i]:[n+a[0],...a.slice(1,-1),a[a.length-1]+i]}async function Ru(e,t,s){if(t.length<2)return null;let r=!1;for(let o of t)if(yo(o)){r=!0;break}if(!r)return null;let n=he(e.state.env),i=we(e.state.env),a=[];for(let o of t){let u=yo(o);if(u&&o.type==="DoubleQuoted"){let c=await xu(e,o,u,s);a.push(c)}else if(o.type==="DoubleQuoted"||o.type==="SingleQuoted"){let c=await s(e,o);a.push([c])}else if(o.type==="Literal")a.push([o.value]);else if(o.type==="ParameterExpansion"){let c=await s(e,o);if(i)a.push(c?[c]:[]);else{let f=se(c,n);a.push(f)}}else{let c=await s(e,o);if(i)a.push(c?[c]:[]);else{let f=se(c,n);a.push(f)}}}let l=[];for(let o of a)if(o.length!==0)if(l.length===0)l.push(...o);else{let u=l.length-1;l[u]=l[u]+o[0];for(let c=1;c<o.length;c++)l.push(o[c])}return l}async function wo(e,t){if(e.state.options.noglob)return{values:t,quoted:!1};let s=[];for(let r of t)if(Ye(r,e.state.shoptOptions.extglob)){let n=await Ws(e,r);s.push(...n)}else s.push(r);return{values:s,quoted:!1}}async function Ws(e,t){let s=new mt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations}),r=await s.expand(t);if(r.length>0)return r;if(s.hasFailglob())throw new ct(t);return s.hasNullglob()?[]:[t]}async function Ou(e,t,s,r,n,i){let a=s.some(l=>l.type==="Glob");if(!e.state.options.noglob&&a){let l=await i(e,t);if(Ye(l,e.state.shoptOptions.extglob)){let u=await Ws(e,l);if(u.length>0&&u[0]!==l)return{values:u,quoted:!1};if(u.length===0)return{values:[],quoted:!1}}let o=lr(r);if(!we(e.state.env)){let u=he(e.state.env);return{values:se(o,u),quoted:!1}}return{values:[o],quoted:!1}}if(!n&&!e.state.options.noglob&&Ye(r,e.state.shoptOptions.extglob)){let l=await i(e,t);if(Ye(l,e.state.shoptOptions.extglob)){let o=await Ws(e,l);if(o.length>0&&o[0]!==l)return{values:o,quoted:!1}}}if(r===""&&!n)return{values:[],quoted:!1};if(a&&!n){let l=lr(r);if(!we(e.state.env)){let o=he(e.state.env);return{values:se(l,o),quoted:!1}}return{values:[l],quoted:!1}}return{values:[r],quoted:n}}async function vo(e,t){let s=t.operation;if(!s||s.type!=="DefaultValue"&&s.type!=="AssignDefault"&&s.type!=="UseAlternative")return null;let r=s.word;if(!r||r.parts.length===0)return null;let n=await Xe(e,t.parameter),a=await Y(e,t.parameter,!1)==="",l=s.checkEmpty??!1,o;return s.type==="UseAlternative"?o=n&&!(l&&a):o=!n||l&&a,o?r.parts:null}function Lu(e){return e.type==="SingleQuoted"?!0:e.type==="DoubleQuoted"?e.parts.every(s=>s.type==="Literal"):!1}async function Tu(e,t){if(t.type!=="ParameterExpansion")return null;let s=await vo(e,t);if(!s||s.length<=1)return null;let r=s.some(i=>Lu(i)),n=s.some(i=>i.type==="Literal"||i.type==="ParameterExpansion"||i.type==="CommandSubstitution"||i.type==="ArithmeticExpansion");return r&&n?s:null}function Wu(e){return e.type==="DoubleQuoted"||e.type==="SingleQuoted"||e.type==="Literal"?!1:e.type==="Glob"?tr(e.pattern):!(!(e.type==="ParameterExpansion"||e.type==="CommandSubstitution"||e.type==="ArithmeticExpansion")||e.type==="ParameterExpansion"&&ya(e))}async function So(e,t,s,r,n){if(e.coverage?.hit("bash:expansion:word_split"),t.length===1&&t[0].type==="ParameterExpansion"){let d=t[0],h=await vo(e,d);if(h&&h.length>0&&h.length>1&&h.some(m=>m.type==="DoubleQuoted"||m.type==="SingleQuoted")&&h.some(m=>m.type==="Literal"||m.type==="ParameterExpansion"||m.type==="CommandSubstitution"||m.type==="ArithmeticExpansion"))return bo(e,h,s,r,n)}let i=[],a=!1;for(let d of t){let h=Wu(d),p=d.type==="DoubleQuoted"||d.type==="SingleQuoted",m=h?await Tu(e,d):null,y=await n(e,d);i.push({value:y,isSplittable:h,isQuoted:p,mixedDefaultParts:m??void 0}),h&&(a=!0)}if(!a){let d=i.map(h=>h.value).join("");return d?[d]:[]}let l=[],o="",u=!1,c=!1,f=!1;for(let d of i)if(!d.isSplittable)c?d.isQuoted&&d.value===""?(o!==""&&l.push(o),l.push(""),u=!0,o="",c=!1,f=!0):d.value!==""?(o!==""&&l.push(o),o=d.value,c=!1,f=!1):(o+=d.value,f=!1):(o+=d.value,f=d.isQuoted&&d.value==="");else if(d.mixedDefaultParts){let h=await bo(e,d.mixedDefaultParts,s,r,n);if(h.length!==0)if(h.length===1)o+=h[0],u=!0;else{o+=h[0],l.push(o),u=!0;for(let p=1;p<h.length-1;p++)l.push(h[p]);o=h[h.length-1]}c=!1,f=!1}else{let{words:h,hadLeadingDelimiter:p,hadTrailingDelimiter:m}=Cs(d.value,s);if(f&&p&&o===""&&(l.push(""),u=!0),h.length===0)m&&(c=!0);else if(h.length===1)o+=h[0],u=!0,c=m;else{o+=h[0],l.push(o),u=!0;for(let y=1;y<h.length-1;y++)l.push(h[y]);o=h[h.length-1],c=m}f=!1}return o!==""?l.push(o):l.length===0&&u&&l.push(""),l}function Mu(e,t){return e.length>0&&t.includes(e[0])}async function bo(e,t,s,r,n){let i=[];for(let c of t){let d=!(c.type==="DoubleQuoted"||c.type==="SingleQuoted"),h=await n(e,c);i.push({value:h,isSplittable:d})}let a=[],l="",o=!1,u=!1;for(let c of i)if(!c.isSplittable)u&&c.value!==""?(l!==""&&a.push(l),l=c.value,u=!1):l+=c.value;else{Mu(c.value,s)&&l!==""&&(a.push(l),l="",o=!0);let{words:d,hadTrailingDelimiter:h}=Cs(c.value,s);if(d.length===0)h&&(u=!0);else if(d.length===1)l+=d[0],o=!0,u=h;else{l+=d[0],a.push(l),o=!0;for(let p=1;p<d.length-1;p++)a.push(d[p]);l=d[d.length-1],u=h}}return l!==""?a.push(l):a.length===0&&o&&a.push(""),a}function Ao(e){switch(e.type){case"Literal":return e.value;case"SingleQuoted":return e.value;case"Escaped":return e.value;default:return null}}function $o(e){switch(e.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return e.value==="";default:return!1}}function wt(e,t,s){if(e.length>t)throw new Q(`${s}: string length limit exceeded (${t} bytes)`,"string_length")}async function He(e,t,s=!1){let r=[];for(let n of t)r.push(await Te(e,n,s));return r.join("")}function Fu(e){return $o(e)}function No(e){if(e.parts.length===0)return!0;for(let t of e.parts)if(!Fu(t))return!1;return!0}function Vu(e,t,s=!1){let r=Ao(t);if(r!==null)return r;switch(t.type){case"TildeExpansion":return s?t.user===null?"~":`~${t.user}`:(e.coverage?.hit("bash:expansion:tilde"),t.user===null?e.state.env.get("HOME")??"/home/user":t.user==="root"?"/root":`~${t.user}`);case"Glob":return cr(e,t.pattern);default:return null}}async function W(e,t){return fr(e,t)}async function ko(e,t){let s=[];for(let r of t.parts)if(r.type==="Escaped")s.push(`\\${r.value}`);else if(r.type==="SingleQuoted")s.push(r.value);else if(r.type==="DoubleQuoted"){let n=await He(e,r.parts);s.push(n)}else if(r.type==="TildeExpansion"){let n=await Te(e,r);s.push(rs(n))}else s.push(await Te(e,r));return s.join("")}async function _o(e,t){let s=[];for(let r of t.parts)if(r.type==="Escaped"){let n=r.value;"()|*?[]".includes(n)?s.push(`\\${n}`):s.push(n)}else if(r.type==="SingleQuoted")s.push(Le(r.value));else if(r.type==="DoubleQuoted"){let n=await He(e,r.parts);s.push(Le(n))}else s.push(await Te(e,r));return s.join("")}async function Po(e,t){let s=[];for(let r of t.parts)if(r.type==="SingleQuoted")s.push(Le(r.value));else if(r.type==="Escaped"){let n=r.value;"*?[]\\()|".includes(n)?s.push(`\\${n}`):s.push(n)}else if(r.type==="DoubleQuoted"){let n=await He(e,r.parts);s.push(Le(n))}else r.type==="Glob"?Va(r.pattern)?s.push(await Ba(e,r.pattern)):s.push(cr(e,r.pattern)):r.type==="Literal"?s.push(r.value):s.push(await Te(e,r));return s.join("")}function Fs(e){for(let t of e)if(t.type==="BraceExpansion"||t.type==="DoubleQuoted"&&Fs(t.parts))return!0;return!1}var ur=1e5;async function Do(e,t,s={count:0}){if(s.count>ur)return[[]];let r=[[]];for(let n of t)if(n.type==="BraceExpansion"){let i=[],a=!1,l="";for(let c of n.items)if(c.type==="Range"){let f=or(c.start,c.end,c.step,c.startStr,c.endStr);if(f.expanded)for(let d of f.expanded)s.count++,i.push(d);else{a=!0,l=f.literal;break}}else{let f=await Do(e,c.word.parts,s);for(let d of f){s.count++;let h=[];for(let p of d)typeof p=="string"?h.push(p):h.push(await Te(e,p));i.push(h.join(""))}}if(a){for(let c of r)s.count++,c.push(l);continue}if(r.length*i.length>e.limits.maxBraceExpansionResults||s.count>ur)return r;let u=[];for(let c of r)for(let f of i){if(s.count++,s.count>ur)return u.length>0?u:r;u.push([...c,f])}r=u}else for(let i of r)s.count++,i.push(n);return r}async function Io(e,t){let s=t.parts;if(!Fs(s))return[await W(e,t)];let r=await Do(e,s),n=[];for(let i of r){let a=[];for(let l of i)typeof l=="string"?a.push(l):a.push(await Te(e,l));n.push(qa(e,a.join("")))}return n}function zu(){return{expandWordAsync:fr,expandWordForGlobbing:Po,expandWordWithBracesAsync:Io,expandWordPartsAsync:He,expandPart:Te,expandParameterAsync:Ms,hasBraceExpansion:Fs,evaluateArithmetic:L,buildIfsCharClassPattern:wa,smartWordSplit:So}}async function et(e,t){return Eo(e,t,zu())}function Bu(e){for(let t of e){if(t.type==="ParameterExpansion")return t.parameter;if(t.type==="Literal")return t.value}return""}function Vs(e,t){if(Number.parseInt(e.state.env.get("#")||"0",10)<2)return!1;function r(n){for(let i of n)if(i.type==="DoubleQuoted"){for(let a of i.parts)if(a.type==="ParameterExpansion"&&a.parameter==="@"&&!a.operation)return!0}return!1}return r(t.parts)}async function zs(e,t){if(Vs(e,t))return{error:`bash: $@: ambiguous redirect
76
- `};let s=t.parts,{hasQuoted:r}=ns(s);if(Fs(s)&&(await Io(e,t)).length>1)return{error:`bash: ${s.map(h=>h.type==="Literal"?h.value:h.type==="BraceExpansion"?`{${h.items.map(m=>{if(m.type==="Range"){let y=m.step?`..${m.step}`:"";return`${m.startStr??m.start}..${m.endStr??m.end}${y}`}return m.word.parts.map(y=>y.type==="Literal"?y.value:"").join("")}).join(",")}}`:"").join("")}: ambiguous redirect
77
- `};let n=await fr(e,t),{hasParamExpansion:i,hasCommandSub:a}=ns(s);if((i||a)&&!r&&!we(e.state.env)){let f=he(e.state.env);if(se(n,f).length>1)return{error:`bash: $${Bu(s)}: ambiguous redirect
78
- `}}if(r||e.state.options.noglob)return{target:n};let o=await Po(e,t);if(!Ye(o,e.state.shoptOptions.extglob))return{target:n};let u=new mt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations}),c=await u.expand(o);return c.length===0?u.hasFailglob()?{error:`bash: no match: ${n}
79
- `}:{target:n}:c.length===1?{target:c[0]}:{error:`bash: ${n}: ambiguous redirect
80
- `}}async function fr(e,t){let s=t.parts,r=s.length;if(r===1){let a=await Te(e,s[0]);return wt(a,e.limits.maxStringLength,"word expansion"),a}let n=[];for(let a=0;a<r;a++)n.push(await Te(e,s[a]));let i=n.join("");return wt(i,e.limits.maxStringLength,"word expansion"),i}async function Te(e,t,s=!1){if(t.type==="ParameterExpansion")return Ms(e,t,s);let r=Vu(e,t,s);if(r!==null)return r;switch(t.type){case"DoubleQuoted":{let n=[];for(let i of t.parts)n.push(await Te(e,i,!0));return n.join("")}case"CommandSubstitution":{let n=Na(t.body);if(n)try{let d=await W(e,n.target),h=d.startsWith("/")?d:`${e.state.cwd}/${d}`,p=await e.fs.readFile(h);e.state.lastExitCode=0,e.state.env.set("?","0");let m=p.replace(/\n+$/,"");return wt(m,e.limits.maxStringLength,"command substitution"),m}catch(d){if(d instanceof Q)throw d;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}let i=e.substitutionDepth??0,a=e.limits.maxSubstitutionDepth;if(i>=a)throw new Q(`Command substitution nesting limit exceeded (${a})`,"substitution_depth");let l=e.substitutionDepth;e.substitutionDepth=i+1;let o=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let u=new Map(e.state.env),c=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let d=await e.executeScript(t.body),h=d.exitCode;e.state.env=u,e.state.cwd=c,e.state.suppressVerbose=f,e.state.lastExitCode=h,e.state.env.set("?",String(h)),d.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+d.stderr),e.state.bashPid=o,e.substitutionDepth=l;let p=d.stdout.replace(/\n+$/,"");return wt(p,e.limits.maxStringLength,"command substitution"),p}catch(d){if(e.state.env=u,e.state.cwd=c,e.state.bashPid=o,e.substitutionDepth=l,e.state.suppressVerbose=f,d instanceof Q)throw d;if(d instanceof j){e.state.lastExitCode=d.exitCode,e.state.env.set("?",String(d.exitCode)),d.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+d.stderr);let h=d.stdout.replace(/\n+$/,"");return wt(h,e.limits.maxStringLength,"command substitution"),h}throw d}}case"ArithmeticExpansion":{let n=t.expression.originalText;if(n&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(n)){let a=await $a(e,n),l=new V,o=X(l,a);return String(await L(e,o.expression,!0))}return String(await L(e,t.expression.expression,!0))}case"BraceExpansion":{let n=[];for(let i of t.items)if(i.type==="Range"){let a=or(i.start,i.end,i.step,i.startStr,i.endStr);if(a.expanded)n.push(...a.expanded);else return a.literal}else n.push(await W(e,i.word));return n.join(" ")}default:return""}}async function Ms(e,t,s=!1){let{parameter:r}=t,{operation:n}=t,i=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(i){let[,d,h]=i;if(e.state.associativeArrays?.has(d)||h.includes("$(")||h.includes("`")||h.includes("${")){let m=await ar(e,h);r=`${d}[${m}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)&&ee(e,r)){let d=ve(e,r);if(d&&d!==r){let h=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(h){let[,p,m]=h;if(e.state.associativeArrays?.has(p)||m.includes("$(")||m.includes("`")||m.includes("${")){let b=await ar(e,m);r=`${p}[${b}]`}}}}let a=n&&(n.type==="DefaultValue"||n.type==="AssignDefault"||n.type==="UseAlternative"||n.type==="ErrorIfUnset"),l=await Y(e,r,!a);if(!n)return l;let o=!await Xe(e,r),{isEmpty:u,effectiveValue:c}=Fa(e,r,l,s),f={value:l,isUnset:o,isEmpty:u,effectiveValue:c,inDoubleQuotes:s};switch(n.type){case"DefaultValue":return ka(e,n,f,He);case"AssignDefault":return _a(e,r,n,f,He);case"ErrorIfUnset":return Pa(e,r,n,f,He);case"UseAlternative":return Da(e,n,f,He);case"PatternRemoval":{let d=await Ia(e,l,n,He,Te);return wt(d,e.limits.maxStringLength,"pattern removal"),d}case"PatternReplacement":{let d=await Ca(e,l,n,He,Te);return wt(d,e.limits.maxStringLength,"pattern replacement"),d}case"Length":return xa(e,r,l);case"LengthSliceError":throw new xe(r);case"BadSubstitution":throw new xe(n.text);case"Substring":return Ra(e,r,l,n);case"CaseModification":{let d=await Oa(e,l,n,He,Ms);return wt(d,e.limits.maxStringLength,"case modification"),d}case"Transform":return La(e,r,l,o,n);case"Indirection":return Ta(e,r,l,o,n,Ms,s);case"ArrayKeys":return Wa(e,n);case"VarNamePrefix":return Ma(e,n);default:return l}}function qu(e,t,s){switch(s){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":if(t===0)throw new te("division by 0");return Math.trunc(e/t);case"%":if(t===0)throw new te("division by 0");return e%t;case"**":if(t<0)throw new te("exponent less than 0");return e**t;case"<<":return e<<t;case">>":return e>>t;case"<":return e<t?1:0;case"<=":return e<=t?1:0;case">":return e>t?1:0;case">=":return e>=t?1:0;case"==":return e===t?1:0;case"!=":return e!==t?1:0;case"&":return e&t;case"|":return e|t;case"^":return e^t;case",":return t;default:return 0}}function Co(e,t,s){switch(s){case"=":return t;case"+=":return e+t;case"-=":return e-t;case"*=":return e*t;case"/=":return t!==0?Math.trunc(e/t):0;case"%=":return t!==0?e%t:0;case"<<=":return e<<t;case">>=":return e>>t;case"&=":return e&t;case"|=":return e|t;case"^=":return e^t;default:return t}}function ju(e,t){switch(t){case"-":return-e;case"+":return+e;case"!":return e===0?1:0;case"~":return~e;default:return e}}async function Uu(e,t){let s=e.state.env.get(t);if(s!==void 0)return s;let r=e.state.env.get(`${t}_0`);return r!==void 0?r:await Y(e,t)}function Zu(e){if(!e)return 0;let t=Number.parseInt(e,10);if(!Number.isNaN(t)&&/^-?\d+$/.test(e.trim()))return t;let s=e.trim();if(!s)return 0;try{let r=new V,{expr:n,pos:i}=Oe(r,s,0);if(i<s.length){let a=s.slice(i).trim().split(/\s+/)[0];throw new te(`${s}: syntax error in expression (error token is "${a}")`)}return n.type==="ArithNumber"?n.value:t||0}catch(r){if(r instanceof te)throw r;let n=s.split(/\s+/).slice(1)[0]||s;throw new te(`${s}: syntax error in expression (error token is "${n}")`)}}async function dr(e,t){if(!t)return 0;let s=Number.parseInt(t,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(t.trim()))return s;let r=t.trim();if(!r)return 0;let n=new V,{expr:i,pos:a}=Oe(n,r,0);if(a<r.length){let l=r.slice(a).trim(),o=l.split(/\s+/)[0]||l;throw new te(`syntax error in expression (error token is "${o}")`,"","")}return await L(e,i)}async function hr(e,t,s=new Set,r=0){if(r>100)throw new te("maximum variable indirection depth exceeded");if(s.has(t))return 0;s.add(t);let n=await Uu(e,t);if(!n)return 0;let i=Number.parseInt(n,10);if(!Number.isNaN(i)&&/^-?\d+$/.test(n.trim()))return i;let a=n.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a))return await hr(e,a,s,r+1);let l=new V,{expr:o,pos:u}=Oe(l,a,0);if(u<a.length){let c=a.slice(u).trim(),f=c.split(/\s+/)[0]||c;throw new te(`${a}: syntax error in expression (error token is "${f}")`)}return await L(e,o)}async function Bs(e,t){if(t.startsWith("#")){let f=t.slice(1),d=f.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(d){let p=d[1],m=F(e,p);return String(m.length)}let h=e.state.env.get(f)||"";return String(h.length)}if(t.startsWith("!")){let f=t.slice(1),d=e.state.env.get(f)||"";return e.state.env.get(d)||""}let s=[":-",":=",":?",":+","-","=","?","+"],r=-1,n="";for(let f of s){let d=t.indexOf(f);d>0&&(r===-1||d<r)&&(r=d,n=f)}if(r===-1)return await Y(e,t);let i=t.slice(0,r),a=t.slice(r+n.length),l=e.state.env.get(i),o=l===void 0,u=l==="",c=n.startsWith(":");switch(n){case":-":case"-":return o||c&&u?a:l||"";case":=":case"=":return o||c&&u?(e.state.env.set(i,a),a):l||"";case":+":case"+":return!(o||c&&u)?a:"";case":?":case"?":{if(o||c&&u)throw new Error(a||`${i}: parameter null or not set`);return l||""}default:return l||""}}async function L(e,t,s=!1){switch(t.type){case"ArithNumber":if(Number.isNaN(t.value))throw new te("value too great for base");return t.value;case"ArithVariable":return await hr(e,t.name);case"ArithSpecialVar":{let n=(await Y(e,t.name)).trim();if(!n)return 0;let i=Number.parseInt(n,10);if(!Number.isNaN(i)&&/^-?\d+$/.test(n))return i;let a=new V,{expr:l}=Oe(a,n,0);return await L(e,l)}case"ArithNested":return await L(e,t.expression);case"ArithCommandSubst":{if(e.execFn){let r=await e.execFn(t.command,{signal:e.state.signal});r.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+r.stderr);let n=r.stdout.trim();return Number.parseInt(n,10)||0}return 0}case"ArithBracedExpansion":{let r=await Bs(e,t.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=await Bs(e,t.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let i=`${n}#${t.value}`;return es(i)}case"ArithDynamicNumber":{let n=await Bs(e,t.prefix)+t.suffix;return es(n)}case"ArithArrayElement":{let r=e.state.associativeArrays?.has(t.array),n=async i=>{let a=e.state.env.get(i);return a!==void 0?await dr(e,a):0};if(t.stringKey!==void 0)return await n(`${t.array}_${t.stringKey}`);if(r&&t.index?.type==="ArithVariable"&&!t.index.hasDollarPrefix)return await n(`${t.array}_${t.index.name}`);if(r&&t.index?.type==="ArithVariable"&&t.index.hasDollarPrefix){let i=await Y(e,t.index.name);return await n(`${t.array}_${i}`)}if(t.index){let i=await L(e,t.index,s);if(i<0){let o=F(e,t.array),u=e.state.currentLine;if(o.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${u}: ${t.array}: bad array subscript
81
- `,0;let f=Math.max(...o.map(([d])=>typeof d=="number"?d:0))+1+i;if(f<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${u}: ${t.array}: bad array subscript
82
- `,0;i=f}let a=`${t.array}_${i}`,l=e.state.env.get(a);if(l!==void 0)return dr(e,l);if(i===0){let o=e.state.env.get(t.array);if(o!==void 0)return dr(e,o)}if(e.state.options.nounset&&!Array.from(e.state.env.keys()).some(u=>u===t.array||u.startsWith(`${t.array}_`)))throw new Ce(`${t.array}[${i}]`);return 0}return 0}case"ArithDoubleSubscript":throw new te("double subscript","","");case"ArithNumberSubscript":throw new te(`${t.number}${t.errorToken}: syntax error: invalid arithmetic operator (error token is "${t.errorToken}")`);case"ArithSyntaxError":throw new te(t.message,"","",!0);case"ArithSingleQuote":{if(s)throw new te(`syntax error: operand expected (error token is "'${t.content}'")`);return t.value}case"ArithBinary":{if(t.operator==="||")return await L(e,t.left,s)||await L(e,t.right,s)?1:0;if(t.operator==="&&")return await L(e,t.left,s)&&await L(e,t.right,s)?1:0;let r=await L(e,t.left,s),n=await L(e,t.right,s);return qu(r,n,t.operator)}case"ArithUnary":{let r=await L(e,t.operand,s);if(t.operator==="++"||t.operator==="--"){if(t.operand.type==="ArithVariable"){let n=t.operand.name,i=Number.parseInt(await Y(e,n),10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(n,String(a)),t.prefix?a:i}if(t.operand.type==="ArithArrayElement"){let n=t.operand.array,i=e.state.associativeArrays?.has(n),a;if(t.operand.stringKey!==void 0)a=`${n}_${t.operand.stringKey}`;else if(i&&t.operand.index?.type==="ArithVariable"&&!t.operand.index.hasDollarPrefix)a=`${n}_${t.operand.index.name}`;else if(i&&t.operand.index?.type==="ArithVariable"&&t.operand.index.hasDollarPrefix){let u=await Y(e,t.operand.index.name);a=`${n}_${u}`}else if(t.operand.index){let u=await L(e,t.operand.index,s);a=`${n}_${u}`}else return r;let l=Number.parseInt(e.state.env.get(a)||"0",10)||0,o=t.operator==="++"?l+1:l-1;return e.state.env.set(a,String(o)),t.prefix?o:l}if(t.operand.type==="ArithConcat"){let n="";for(let i of t.operand.parts)n+=await Vt(e,i,s);if(n&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)){let i=Number.parseInt(e.state.env.get(n)||"0",10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(n,String(a)),t.prefix?a:i}}if(t.operand.type==="ArithDynamicElement"){let n="";if(t.operand.nameExpr.type==="ArithConcat")for(let i of t.operand.nameExpr.parts)n+=await Vt(e,i,s);else t.operand.nameExpr.type==="ArithVariable"&&(n=t.operand.nameExpr.hasDollarPrefix?await Y(e,t.operand.nameExpr.name):t.operand.nameExpr.name);if(n&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)){let i=await L(e,t.operand.subscript,s),a=`${n}_${i}`,l=Number.parseInt(e.state.env.get(a)||"0",10)||0,o=t.operator==="++"?l+1:l-1;return e.state.env.set(a,String(o)),t.prefix?o:l}}return r}return ju(r,t.operator)}case"ArithTernary":return await L(e,t.condition,s)?await L(e,t.consequent,s):await L(e,t.alternate,s);case"ArithAssignment":{let r=t.variable,n=r;if(t.stringKey!==void 0)n=`${r}_${t.stringKey}`;else if(t.subscript){let o=e.state.associativeArrays?.has(r);if(o&&t.subscript.type==="ArithVariable"&&!t.subscript.hasDollarPrefix)n=`${r}_${t.subscript.name}`;else if(o&&t.subscript.type==="ArithVariable"&&t.subscript.hasDollarPrefix){let u=await Y(e,t.subscript.name);n=`${r}_${u||"\\"}`}else if(o){let u=await L(e,t.subscript,s);n=`${r}_${u}`}else{let u=await L(e,t.subscript,s);if(u<0){let c=F(e,r);c.length>0&&(u=Math.max(...c.map(([d])=>typeof d=="number"?d:0))+1+u)}n=`${r}_${u}`}}let i=Number.parseInt(e.state.env.get(n)||"0",10)||0,a=await L(e,t.value,s),l=Co(i,a,t.operator);return e.state.env.set(n,String(l)),l}case"ArithGroup":return await L(e,t.expression,s);case"ArithConcat":{let r="";for(let n of t.parts)r+=await Vt(e,n,s);return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)?await hr(e,r):Number.parseInt(r,10)||0}case"ArithDynamicAssignment":{let r="";if(t.target.type==="ArithConcat")for(let o of t.target.parts)r+=await Vt(e,o,s);else t.target.type==="ArithVariable"&&(r=t.target.hasDollarPrefix?await Y(e,t.target.name):t.target.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let n=r;if(t.subscript){let o=await L(e,t.subscript,s);n=`${r}_${o}`}let i=Number.parseInt(e.state.env.get(n)||"0",10)||0,a=await L(e,t.value,s),l=Co(i,a,t.operator);return e.state.env.set(n,String(l)),l}case"ArithDynamicElement":{let r="";if(t.nameExpr.type==="ArithConcat")for(let l of t.nameExpr.parts)r+=await Vt(e,l,s);else t.nameExpr.type==="ArithVariable"&&(r=t.nameExpr.hasDollarPrefix?await Y(e,t.nameExpr.name):t.nameExpr.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let n=await L(e,t.subscript,s),i=`${r}_${n}`,a=e.state.env.get(i);return a!==void 0?Zu(a):0}default:return 0}}async function Vt(e,t,s=!1){switch(t.type){case"ArithNumber":return String(t.value);case"ArithSingleQuote":return String(await L(e,t,s));case"ArithVariable":return t.hasDollarPrefix?await Y(e,t.name):t.name;case"ArithSpecialVar":return await Y(e,t.name);case"ArithBracedExpansion":return await Bs(e,t.content);case"ArithCommandSubst":return e.execFn?(await e.execFn(t.command,{signal:e.state.signal})).stdout.trim():"0";case"ArithConcat":{let r="";for(let n of t.parts)r+=await Vt(e,n,s);return r}default:return String(await L(e,t,s))}}async function xo(e,t){let s=t.parts.map(c=>c.type==="Literal"?c.value:"\0").join(""),r=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!r||!s.endsWith(")"))return null;let n=r[1],i=[],a=!1,l="",o=!1;for(let c of t.parts)if(c.type==="Literal"){let f=c.value;if(!a){let d=f.indexOf("=(");d!==-1&&(a=!0,f=f.slice(d+2))}if(a){f.endsWith(")")&&(f=f.slice(0,-1));let d=f.split(/(\s+)/);for(let h of d)/^\s+$/.test(h)?(l||o)&&(i.push(l),l="",o=!1):h&&(l+=h)}}else if(a)if(c.type==="BraceExpansion")if(/^\[.+\]=/.test(l))l+=Mt({type:"Word",parts:[c]});else{(l||o)&&(i.push(l),l="",o=!1);let d=await et(e,{type:"Word",parts:[c]});i.push(...d.values)}else{(c.type==="SingleQuoted"||c.type==="DoubleQuoted"||c.type==="Escaped")&&(o=!0);let f=await W(e,{type:"Word",parts:[c]});l+=f}(l||o)&&i.push(l);let u=i.map(c=>/^\[.+\]=/.test(c)?c:c===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(c)&&!c.startsWith("'")&&!c.startsWith('"')?`'${c.replace(/'/g,"'\\''")}'`:c);return`${n}=(${u.join(" ")})`}async function Ro(e,t){let s=-1,r=-1,n=!1;for(let m=0;m<t.parts.length;m++){let y=t.parts[m];if(y.type==="Literal"){let b=y.value.indexOf("+=");if(b!==-1){let E=y.value.slice(0,b);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(E)){s=m,r=b,n=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(E)){s=m,r=b,n=!0;break}}let v=y.value.indexOf("=");if(v!==-1&&(v===0||y.value[v-1]!=="+")){let E=y.value.slice(0,v);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(E)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(E)){s=m,r=v;break}}}}if(s===-1)return null;let i=t.parts.slice(0,s),a=t.parts[s];if(a.type!=="Literal")return null;let l=n?2:1,o=a.value.slice(0,r),u=a.value.slice(r+l),c=t.parts.slice(s+1),f="";for(let m of i)f+=await W(e,{type:"Word",parts:[m]});f+=o;let d={type:"Word",parts:u!==""?[{type:"Literal",value:u},...c]:c},h=d.parts.length>0?await W(e,d):"";return`${f}${n?"+=":"="}${h}`}var Hu=["tar","yq","xan","sqlite3","python3","python"];function Oo(e){return Hu.includes(e)}var G=Object.freeze({stdout:"",stderr:"",exitCode:0});function Z(e=""){return{stdout:e,stderr:"",exitCode:0}}function _(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function P(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function de(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function tt(e,t,s="",r=""){throw new Q(e,t,s,r)}function be(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new Q(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function pr(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new ut;return G}if(t.length>1)throw new j(1,"",`bash: break: too many arguments
83
- `);let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new j(128,"",`bash: break: ${t[0]}: numeric argument required
84
- `);s=r}throw new De(s)}async function mr(e,t){let s,r=!1,n=!1,i=0;for(;i<t.length;)if(t[i]==="--"){i++;break}else if(t[i]==="-L")n=!1,i++;else if(t[i]==="-P")n=!0,i++;else if(t[i].startsWith("-")&&t[i]!=="-")i++;else break;let a=t.slice(i);if(a.length===0||a[0]==="~"?s=e.state.env.get("HOME")||"/":a[0]==="-"?(s=e.state.previousDir,r=!0):s=a[0],!s.startsWith("/")&&!s.startsWith("./")&&!s.startsWith("../")&&s!=="."&&s!==".."){let f=e.state.env.get("CDPATH");if(f){let d=f.split(":").filter(h=>h);for(let h of d){let p=h.startsWith("/")?`${h}/${s}`:`${e.state.cwd}/${h}/${s}`;try{if((await e.fs.stat(p)).isDirectory){s=p,r=!0;break}}catch{}}}}let o=(s.startsWith("/")?s:`${e.state.cwd}/${s}`).split("/").filter(f=>f&&f!=="."),u="";for(let f of o)if(f==="..")u=u.split("/").slice(0,-1).join("/")||"/";else{u=u?`${u}/${f}`:`/${f}`;try{if(!(await e.fs.stat(u)).isDirectory)return _(`bash: cd: ${s}: Not a directory
85
- `)}catch{return _(`bash: cd: ${s}: No such file or directory
86
- `)}}let c=u||"/";if(n)try{c=await e.fs.realpath(c)}catch{}return e.state.previousDir=e.state.cwd,e.state.cwd=c,e.state.env.set("PWD",e.state.cwd),e.state.env.set("OLDPWD",e.state.previousDir),Z(r?`${c}
87
- `:"")}function gr(e,t){return e.fs.resolvePath(e.state.cwd,t)}var Gu=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function qs(e){return Gu.includes(e)}async function js(e,t,s){let r=gr(e,s);switch(t){case"-e":case"-a":return e.fs.exists(r);case"-f":return await e.fs.exists(r)?(await e.fs.stat(r)).isFile:!1;case"-d":return await e.fs.exists(r)?(await e.fs.stat(r)).isDirectory:!1;case"-r":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&256)!==0:!1;case"-w":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&128)!==0:!1;case"-x":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&64)!==0:!1;case"-s":return await e.fs.exists(r)?(await e.fs.stat(r)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(r)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&512)!==0:!1;case"-g":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(r);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].includes(r);case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return e.fs.exists(r);default:return!1}}var Qu=["-nt","-ot","-ef"];function Us(e){return Qu.includes(e)}async function Zs(e,t,s,r){let n=gr(e,s),i=gr(e,r);switch(t){case"-nt":try{let a=await e.fs.stat(n),l=await e.fs.stat(i);return a.mtime>l.mtime}catch{return!1}case"-ot":try{let a=await e.fs.stat(n),l=await e.fs.stat(i);return a.mtime<l.mtime}catch{return!1}case"-ef":try{if(!await e.fs.exists(n)||!await e.fs.exists(i))return!1;let a=e.fs.resolvePath(e.state.cwd,n),l=e.fs.resolvePath(e.state.cwd,i);return a===l}catch{return!1}default:return!1}}var Ku=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function Hs(e){return Ku.has(e)}function Gs(e,t,s){switch(e){case"-eq":return t===s;case"-ne":return t!==s;case"-lt":return t<s;case"-le":return t<=s;case"-gt":return t>s;case"-ge":return t>=s}}function as(e){return e==="="||e==="=="||e==="!="}function Qs(e,t,s,r=!1,n=!1,i=!1){if(r){let l=zt(t,s,n,i);return e==="!="?!l:l}if(n){let l=t.toLowerCase()===s.toLowerCase();return e==="!="?!l:l}let a=t===s;return e==="!="?!a:a}var Xu=new Set(["-z","-n"]);function Ks(e){return Xu.has(e)}function Xs(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}async function Ys(e,t){let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let r=s[1],n=s[2];if(e.state.associativeArrays?.has(r)){let l=n;return(l.startsWith("'")&&l.endsWith("'")||l.startsWith('"')&&l.endsWith('"'))&&(l=l.slice(1,-1)),l=l.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(o,u)=>e.state.env.get(u)||""),e.state.env.has(`${r}_${l}`)}let a;try{let l=new V,o=X(l,n);a=await L(e,o.expression)}catch{if(/^-?\d+$/.test(n))a=Number.parseInt(n,10);else{let l=e.state.env.get(n);a=l?Number.parseInt(l,10):0}}if(a<0){let l=fe(e,r),o=e.state.currentLine;if(l.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${o}: ${r}: bad array subscript
88
- `,!1;if(a=Math.max(...l)+1+a,a<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${o}: ${r}: bad array subscript
89
- `,!1}return e.state.env.has(`${r}_${a}`)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?je(e,t).length>0:fe(e,t).length>0}async function Et(e,t){switch(t.type){case"CondBinary":{let s=await W(e,t.left),r=t.right.parts.length>0&&t.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped"&&t.operator!=="=~"),n;if(t.operator==="=~")if(r){let i=await W(e,t.right);n=rs(i)}else n=await ko(e,t.right);else as(t.operator)&&!r?n=await _o(e,t.right):n=await W(e,t.right);if(as(t.operator)){let i=e.state.shoptOptions.nocasematch;return Qs(t.operator,s,n,!r,i,!0)}if(Hs(t.operator))return Gs(t.operator,await To(e,s),await To(e,n));if(Us(t.operator))return Zs(e,t.operator,s,n);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,a=tf(n),o=ae(a,i?"i":"").match(s);if(Ke(e,"BASH_REMATCH"),o)for(let u=0;u<o.length;u++)e.state.env.set(`BASH_REMATCH_${u}`,o[u]||"");return o!==null}catch{throw new Error("syntax error in regular expression")}case"<":return s<n;case">":return s>n;default:return!1}}case"CondUnary":{let s=await W(e,t.operand);return qs(t.operator)?js(e,t.operator,s):Ks(t.operator)?Xs(t.operator,s):t.operator==="-v"?await Ys(e,s):t.operator==="-o"?wr(e,s):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await W(e,t.operand.expression.word)})`!=="":!await Et(e,t.operand);case"CondAnd":return await Et(e,t.left)?await Et(e,t.right):!1;case"CondOr":return await Et(e,t.left)?!0:await Et(e,t.right);case"CondGroup":return await Et(e,t.expression);case"CondWord":return await W(e,t.word)!=="";default:return!1}}async function os(e,t){if(t.length===0)return P("","",1);if(t.length===1)return de(!!t[0]);if(t.length===2){let r=t[0],n=t[1];return r==="("?_(`test: '(' without matching ')'
90
- `,2):qs(r)?de(await js(e,r,n)):Ks(r)?de(Xs(r,n)):r==="!"?de(!n):r==="-v"?de(await Ys(e,n)):r==="-o"?de(wr(e,n)):r==="="||r==="=="||r==="!="||r==="<"||r===">"||r==="-eq"||r==="-ne"||r==="-lt"||r==="-le"||r==="-gt"||r==="-ge"||r==="-nt"||r==="-ot"||r==="-ef"?_(`test: ${r}: unary operator expected
91
- `,2):P("","",1)}if(t.length===3){let r=t[0],n=t[1],i=t[2];if(as(n))return de(Qs(n,r,i));if(Hs(n)){let a=Js(r),l=Js(i);return!a.valid||!l.valid?P("","",2):de(Gs(n,a.value,l.value))}if(Us(n))return de(await Zs(e,n,r,i));switch(n){case"-a":return de(r!==""&&i!=="");case"-o":return de(r!==""||i!=="");case">":return de(r>i);case"<":return de(r<i)}if(r==="!"){let a=await os(e,[n,i]);return P("",a.stderr,a.exitCode===0?1:a.exitCode===1?0:a.exitCode)}if(r==="("&&i===")")return de(n!=="")}if(t.length===4){if(t[0]==="!"){let r=await os(e,t.slice(1));return P("",r.stderr,r.exitCode===0?1:r.exitCode===1?0:r.exitCode)}if(t[0]==="("&&t[3]===")")return os(e,[t[1],t[2]])}let s=await Mo(e,t,0);return s.pos<t.length?_(`test: too many arguments
92
- `,2):de(s.value)}async function Mo(e,t,s){return Yu(e,t,s)}async function Yu(e,t,s){let{value:r,pos:n}=await Lo(e,t,s);for(;t[n]==="-o";){let i=await Lo(e,t,n+1);r=r||i.value,n=i.pos}return{value:r,pos:n}}async function Lo(e,t,s){let{value:r,pos:n}=await yr(e,t,s);for(;t[n]==="-a";){let i=await yr(e,t,n+1);r=r&&i.value,n=i.pos}return{value:r,pos:n}}async function yr(e,t,s){if(t[s]==="!"){let{value:r,pos:n}=await yr(e,t,s+1);return{value:!r,pos:n}}return Ju(e,t,s)}async function Ju(e,t,s){let r=t[s];if(r==="("){let{value:i,pos:a}=await Mo(e,t,s+1);return{value:i,pos:t[a]===")"?a+1:a}}let n=t[s+1];if(as(n)){let i=r,a=t[s+2]??"";return{value:Qs(n,i,a),pos:s+3}}if(Hs(n)){let i=Js(r),a=Js(t[s+2]??"0");return!i.valid||!a.valid?{value:!1,pos:s+3}:{value:Gs(n,i.value,a.value),pos:s+3}}if(Us(n)){let i=r,a=t[s+2]??"";return{value:await Zs(e,n,i,a),pos:s+3}}if(qs(r)){let i=t[s+1]??"";return{value:await js(e,r,i),pos:s+2}}if(Ks(r)){let i=t[s+1]??"";return{value:Xs(r,i),pos:s+2}}if(r==="-v"){let i=t[s+1]??"";return{value:await Ys(e,i),pos:s+2}}if(r==="-o"){let i=t[s+1]??"";return{value:wr(e,i),pos:s+2}}return{value:r!==void 0&&r!=="",pos:s+1}}function zt(e,t,s=!1,r=!1){let n=`^${Fo(t,r)}$`;return ae(n,s?"is":"s").test(e)}function Fo(e,t){let s="";for(let r=0;r<e.length;r++){let n=e[r];if(t&&(n==="@"||n==="*"||n==="+"||n==="?"||n==="!")&&r+1<e.length&&e[r+1]==="("){let i=Vo(e,r+1);if(i!==-1){let a=e.slice(r+2,i),l=zo(a),o=l.map(c=>Fo(c,t)),u=o.length>0?o.join("|"):"(?:)";if(n==="@")s+=`(?:${u})`;else if(n==="*")s+=`(?:${u})*`;else if(n==="+")s+=`(?:${u})+`;else if(n==="?")s+=`(?:${u})?`;else if(n==="!")if(i<e.length-1){let f=l.map(h=>Bo(h,t));if(f.every(h=>h!==null)&&f.every(h=>h===f[0])&&f[0]!==null){let h=f[0];if(h===0)s+="(?:.+)";else{let p=[];h>0&&p.push(`.{0,${h-1}}`),p.push(`.{${h+1},}`),p.push(`(?!(?:${u})).{${h}}`),s+=`(?:${p.join("|")})`}}else s+=`(?:(?!(?:${u})).)*?`}else s+=`(?!(?:${u})$).*`;r=i;continue}}if(n==="\\")if(r+1<e.length){let i=e[r+1];/[\\^$.|+(){}[\]*?]/.test(i)?s+=`\\${i}`:s+=i,r++}else s+="\\\\";else if(n==="*")s+=".*";else if(n==="?")s+=".";else if(n==="["){let i=e.indexOf("]",r+1);i!==-1?(s+=e.slice(r,i+1),r=i):s+="\\["}else/[\\^$.|+(){}]/.test(n)?s+=`\\${n}`:s+=n}return s}function Vo(e,t){let s=1,r=t+1;for(;r<e.length&&s>0;){let n=e[r];if(n==="\\"){r+=2;continue}if(n==="(")s++;else if(n===")"&&(s--,s===0))return r;r++}return-1}function zo(e){let t=[],s="",r=0,n=0;for(;n<e.length;){let i=e[n];if(i==="\\"){s+=i,n+1<e.length?(s+=e[n+1],n+=2):n++;continue}i==="("?(r++,s+=i):i===")"?(r--,s+=i):i==="|"&&r===0?(t.push(s),s=""):s+=i,n++}return t.push(s),t}function Bo(e,t){let s=0,r=0;for(;r<e.length;){let n=e[r];if(t&&(n==="@"||n==="*"||n==="+"||n==="?"||n==="!")&&r+1<e.length&&e[r+1]==="("){let i=Vo(e,r+1);if(i!==-1){if(n==="@"){let a=e.slice(r+2,i),o=zo(a).map(u=>Bo(u,t));if(o.every(u=>u!==null)&&o.every(u=>u===o[0])){s+=o[0],r=i+1;continue}return null}return null}}if(n==="*")return null;if(n==="?"){s+=1,r++;continue}if(n==="["){let i=e.indexOf("]",r+1);if(i!==-1){s+=1,r=i+1;continue}s+=1,r++;continue}if(n==="\\"){s+=1,r+=2;continue}s+=1,r++}return s}function wr(e,t){let r=new Map([["errexit",()=>e.state.options.errexit===!0],["nounset",()=>e.state.options.nounset===!0],["pipefail",()=>e.state.options.pipefail===!0],["xtrace",()=>e.state.options.xtrace===!0],["e",()=>e.state.options.errexit===!0],["u",()=>e.state.options.nounset===!0],["x",()=>e.state.options.xtrace===!0]]).get(t);return r?r():!1}async function To(e,t){if(t=t.trim(),t==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(t))return Wo(t);try{let s=new V,r=X(s,t);return await L(e,r.expression)}catch{return Wo(t)}}function ef(e,t){let s=0;for(let r of e){let n;if(r>="0"&&r<="9")n=r.charCodeAt(0)-48;else if(r>="a"&&r<="z")n=r.charCodeAt(0)-97+10;else if(r>="A"&&r<="Z")n=r.charCodeAt(0)-65+36;else if(r==="@")n=62;else if(r==="_")n=63;else return Number.NaN;if(n>=t)return Number.NaN;s=s*t+n}return s}function Wo(e){if(e=e.trim(),e==="")return 0;let t=!1;e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1));let s,r=e.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(r){let n=Number.parseInt(r[1],10);n>=2&&n<=64?s=ef(r[2],n):s=0}else/^0[xX][0-9a-fA-F]+$/.test(e)?s=Number.parseInt(e,16):/^0[0-7]+$/.test(e)?s=Number.parseInt(e,8):s=Number.parseInt(e,10);return Number.isNaN(s)&&(s=0),t?-s:s}function Js(e){if(e=e.trim(),e==="")return{value:0,valid:!0};let t=!1;if(e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1)),!/^\d+$/.test(e))return{value:0,valid:!1};let s=Number.parseInt(e,10);return Number.isNaN(s)?{value:0,valid:!1}:{value:t?-s:s,valid:!0}}function tf(e){let t="",s=0;for(;s<e.length;)if(e[s]==="\\"&&s+1<e.length)t+=e[s]+e[s+1],s+=2;else if(e[s]==="["){let r=sf(e,s);t+=r.converted,s=r.endIndex}else t+=e[s],s++;return t}function sf(e,t){let s=t+1,r="[";s<e.length&&(e[s]==="^"||e[s]==="!")&&(r+="^",s++);let n=!1;s<e.length&&e[s]==="]"&&(n=!0,s++);let i=!1;s<e.length&&e[s]==="["&&s+1<e.length&&e[s+1]!==":"&&(i=!0,s++);let a="",l=!1;for(;s<e.length;){let o=e[s];if(o==="]"){l=!0,s++;break}if(o==="["&&s+1<e.length&&e[s+1]===":"){let u=e.indexOf(":]",s+2);if(u!==-1){let c=e.slice(s+2,u);a+=nf(c),s=u+2;continue}}if(o==="["&&s+1<e.length){let u=e[s+1];if(u==="."||u==="="){let c=`${u}]`,f=e.indexOf(c,s+2);if(f!==-1){let d=e.slice(s+2,f);a+=d,s=f+2;continue}}}if(o==="\\"&&s+1<e.length){a+=o+e[s+1],s+=2;continue}a+=o,s++}return l?(n&&(r+="\\]"),i&&(r+="\\["),r+=a,r+="]",{converted:r,endIndex:s}):{converted:"\\[",endIndex:t+1}}function nf(e){return new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]).get(e)??""}function st(e){let t=[],s="",r=!1,n=!1,i=!1,a=!1;for(let l of e){if(i){s+=l,i=!1,a=!0;continue}if(l==="\\"){i=!0;continue}if(l==="'"&&!n){r||(a=!0),r=!r;continue}if(l==='"'&&!r){n||(a=!0),n=!n;continue}if((l===" "||l===" "||l===`
93
- `)&&!r&&!n){a&&(t.push(s),s="",a=!1);continue}s+=l,a=!0}return a&&t.push(s),t}function en(e){let t=[],s=0;for(;s<e.length;){for(;s<e.length&&/\s/.test(e[s]);)s++;if(s>=e.length)break;if(e[s]!=="["){s++;continue}s++;let r="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)r+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&e[s]!=="]"&&e[s]!=="=";)r+=e[s],s++;for(;s<e.length&&e[s]!=="]";)s++;if(e[s]==="]"&&s++,e[s]!=="=")continue;s++;let n="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)e[s]==="\\"&&s+1<e.length&&s++,n+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&!/\s/.test(e[s]);)n+=e[s],s++;t.push([r,n])}return t}function qo(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(t)return{name:t[1],isArray:!0,arrayElements:st(t[2])};let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(s)return{name:s[1],isArray:!1,arrayIndex:s[2],value:s[3]};if(e.includes("=")){let r=e.indexOf("=");return{name:e.slice(0,r),isArray:!1,value:e.slice(r+1)}}return{name:e,isArray:!1}}async function rf(e,t){try{let s=new V,r=X(s,t);return await L(e,r.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}async function jo(e,t,s={}){let{name:r,isArray:n,arrayElements:i,value:a,arrayIndex:l}=t,{makeReadonly:o=!1,checkReadonly:u=!0}=s;if(u){let c=me(e,r);if(c)return c}if(n&&i){for(let c=0;c<i.length;c++)e.state.env.set(`${r}_${c}`,i[c]);e.state.env.set(`${r}__length`,String(i.length))}else if(l!==void 0&&a!==void 0){let c=await rf(e,l);e.state.env.set(`${r}_${c}`,a);let f=parseInt(e.state.env.get(`${r}__length`)??"0",10);c>=f&&e.state.env.set(`${r}__length`,String(c+1))}else a!==void 0&&e.state.env.set(r,a);return o&&_e(e,r),null}function bt(e,t){e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,e.state.callDepth)}function Bt(e,t){return e.state.localVarDepth?.get(t)}function tn(e,t){e.state.localVarDepth?.delete(t)}function Uo(e,t,s){e.state.localVarStack=e.state.localVarStack||new Map;let r=e.state.localVarStack.get(t)||[];r.push({value:s,scopeIndex:e.state.localScopes.length-1}),e.state.localVarStack.set(t,r)}function sn(e,t){let s=e.state.localVarStack?.get(t);if(!(!s||s.length===0))return s.pop()}function Zo(e,t){if(e.state.localVarStack)for(let[s,r]of e.state.localVarStack.entries()){for(;r.length>0&&r[r.length-1].scopeIndex===t;)r.pop();r.length===0&&e.state.localVarStack.delete(s)}}var Er=new Set([":",".","break","continue","eval","exec","exit","export","readonly","return","set","shift","trap","unset"]);function Ho(e){return Er.has(e)}var br=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),qt=new Set([":","true","false","cd","export","unset","exit","local","set","break","continue","return","eval","shift","getopts","compgen","complete","compopt","pushd","popd","dirs","source",".","read","mapfile","readarray","declare","typeset","readonly","let","command","shopt","exec","test","[","echo","printf","pwd","alias","unalias","type","hash","ulimit","umask","trap","times","wait","kill","jobs","fg","bg","disown","suspend","fc","history","help","enable","builtin","caller"]);async function nn(e,t,s,r){try{if((await e.fs.stat(t)).isDirectory)return`bash: ${s}: Is a directory
94
- `;if(r.checkNoclobber&&e.state.options.noclobber&&!r.isClobber&&s!=="/dev/null")return`bash: ${s}: cannot overwrite existing file
95
- `}catch{}return null}function jt(e){let s=Math.min(e.length,8192);for(let r=0;r<s;r++)if(e.charCodeAt(r)>127)return"utf8";return"binary"}function af(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),a=n+r+1,l=t.slice(a),o=l.indexOf(":");if(o===-1)return null;let u=Number.parseInt(l.slice(0,o),10);if(Number.isNaN(u)||u<0)return null;let c=l.slice(o+1);return{path:i,position:u,content:c}}async function Go(e,t){let s=new Map;for(let r=0;r<t.length;r++){let n=t[r];if(n.target.type==="HereDoc")continue;if(n.operator===">&"||n.operator==="<&"){if(Vs(e,n.target))return{targets:s,error:`bash: $@: ambiguous redirect
96
- `};s.set(r,await W(e,n.target))}else{let a=await zs(e,n.target);if("error"in a)return{targets:s,error:a.error};s.set(r,a.target)}}return{targets:s}}function of(e){e.state.nextFd===void 0&&(e.state.nextFd=10);let t=e.state.nextFd,s=e.limits.maxFileDescriptors;if(t>=s)throw new Error(`bash: cannot allocate file descriptor: too many open files (max ${s})`);return e.state.nextFd++,t}async function rn(e,t){for(let s of t){if(!s.fdVariable)continue;if(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),(s.operator===">&"||s.operator==="<&")&&s.target.type==="Word"&&await W(e,s.target)==="-"){let i=e.state.env.get(s.fdVariable);if(i!==void 0){let a=Number.parseInt(i,10);Number.isNaN(a)||e.state.fileDescriptors.delete(a)}continue}let r=of(e);if(e.state.env.set(s.fdVariable,String(r)),s.target.type==="Word"){let n=await W(e,s.target);if(s.operator===">&"||s.operator==="<&"){let i=Number.parseInt(n,10);if(!Number.isNaN(i)){let a=e.state.fileDescriptors.get(i);a!==void 0&&(be(e),e.state.fileDescriptors.set(r,a));continue}}if(s.operator===">"||s.operator===">>"||s.operator===">|"||s.operator==="&>"||s.operator==="&>>"){let i=e.fs.resolvePath(e.state.cwd,n);(s.operator===">"||s.operator===">|"||s.operator==="&>")&&await e.fs.writeFile(i,"","binary"),be(e),e.state.fileDescriptors.set(r,`__file__:${i}`)}else if(s.operator==="<<<")be(e),e.state.fileDescriptors.set(r,`${n}
97
- `);else if(s.operator==="<"||s.operator==="<>")try{let i=e.fs.resolvePath(e.state.cwd,n),a=await e.fs.readFile(i);be(e),e.state.fileDescriptors.set(r,a)}catch{return P("",`bash: ${n}: No such file or directory
98
- `,1)}}}return null}async function nt(e,t){for(let s of t){if(s.target.type==="HereDoc")continue;let r=s.operator===">&";if(s.operator!==">"&&s.operator!==">|"&&s.operator!=="&>"&&!r)continue;let n;if(r){if(n=await W(e,s.target),n==="-"||!Number.isNaN(Number.parseInt(n,10))||s.fd!=null)continue}else{let l=await zs(e,s.target);if("error"in l)return P("",l.error,1);n=l.target}let i=e.fs.resolvePath(e.state.cwd,n),a=s.operator===">|";if(i.includes("\0"))return P("",`bash: ${n}: No such file or directory
99
- `,1);try{let l=await e.fs.stat(i);if(l.isDirectory)return P("",`bash: ${n}: Is a directory
100
- `,1);if(e.state.options.noclobber&&!a&&!l.isDirectory&&n!=="/dev/null")return P("",`bash: ${n}: cannot overwrite existing file
101
- `,1)}catch{}if(n!=="/dev/null"&&n!=="/dev/stdout"&&n!=="/dev/stderr"&&n!=="/dev/full"&&await e.fs.writeFile(i,"","binary"),n==="/dev/full")return P("",`bash: /dev/full: No space left on device
102
- `,1)}return null}async function le(e,t,s,r){let{stdout:n,stderr:i,exitCode:a}=t,o=t.stdoutKind==="bytes"||t.stdoutKind===void 0&&t.stdoutEncoding==="binary"?"binary":"utf8",u=m=>o,c={kind:"live-stdout"},f={kind:"live-stderr"};for(let m=0;m<s.length;m++){let y=s[m];if(y.target.type==="HereDoc")continue;let b,v=r?.get(m);if(v!==void 0)b=v;else if(y.operator===">&"||y.operator==="<&"){if(Vs(e,y.target)){i+=`bash: $@: ambiguous redirect
103
- `,a=1,n="";continue}b=await W(e,y.target)}else{let w=await zs(e,y.target);if("error"in w){i+=w.error,a=1,n="";continue}b=w.target}if(!y.fdVariable){if(b.includes("\0")){i+=`bash: ${b.replace(/\0/g,"")}: No such file or directory
104
- `,a=1,n="";continue}switch(y.operator){case">":case">|":case">>":{let E=y.fd??1;if(E!==1&&E!==2)break;let w=y.operator===">>",S=y.operator===">|";if(b==="/dev/stdout"){E===2&&(f=c);break}if(b==="/dev/stderr"){E===1&&(c=f);break}if(b==="/dev/full"){i+=`bash: echo: write error: No space left on device
105
- `,a=1,E===1&&(n="");break}if(b==="/dev/null"&&E===2){f={kind:"discard"};break}let A=e.fs.resolvePath(e.state.cwd,b),$=await nn(e,A,b,{...w?{}:{checkNoclobber:!0,isClobber:S}});if($){i+=$,a=1,E===1&&(n="");break}w?await e.fs.appendFile(A,"","binary"):await e.fs.writeFile(A,"","binary"),E===1?c={kind:"file",path:A,append:w}:f={kind:"file",path:A,append:w};break}case">&":case"<&":{let E=y.fd??1;if(b==="-")break;if(b.endsWith("-")){let w=b.slice(0,-1),S=Number.parseInt(w,10);if(!Number.isNaN(S)){let A=e.state.fileDescriptors?.get(S);A!==void 0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(E,A),S>=3&&e.state.fileDescriptors?.delete(S)):S===1||S===2?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(E,`__dupout__:${S}`)):S===0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(E,`__dupin__:${S}`)):S>=3&&(i+=`bash: ${S}: Bad file descriptor
106
- `,a=1)}break}if(b==="2"||b==="&2")E===1&&(c=f);else if(b==="1"||b==="&1")E===2?f=c:(n+=i,i="");else{let w=Number.parseInt(b,10);if(Number.isNaN(w)){if(y.operator===">&"){let S=e.fs.resolvePath(e.state.cwd,b),A=await nn(e,S,b,{checkNoclobber:!0});if(A){i=A,a=1,n="";break}await e.fs.writeFile(S,"","binary"),y.fd==null?(c={kind:"file",path:S,append:!1},f=c):E===1?c={kind:"file",path:S,append:!1}:E===2&&(f={kind:"file",path:S,append:!1})}}else{let S=e.state.fileDescriptors?.get(w);if(S?.startsWith("__file__:")){let A=S.slice(9);E===1?(await e.fs.appendFile(A,n,u(n)),n=""):E===2&&(await e.fs.appendFile(A,i,jt(i)),i="")}else if(S?.startsWith("__rw__:")){let A=af(S);A&&(E===1?(await e.fs.appendFile(A.path,n,u(n)),n=""):E===2&&(await e.fs.appendFile(A.path,i,jt(i)),i=""))}else if(S?.startsWith("__dupout__:")){let A=Number.parseInt(S.slice(11),10);if(A!==1)if(A===2)E===1&&(i+=n,n="");else{let $=e.state.fileDescriptors?.get(A);if($?.startsWith("__file__:")){let x=$.slice(9);E===1?(await e.fs.appendFile(x,n,u(n)),n=""):E===2&&(await e.fs.appendFile(x,i,jt(i)),i="")}}}else S?.startsWith("__dupin__:")?(i+=`bash: ${w}: Bad file descriptor
107
- `,a=1,n=""):w>=3&&(i+=`bash: ${w}: Bad file descriptor
108
- `,a=1,n="")}}break}case"&>":{if(b==="/dev/full"){i=`bash: echo: write error: No space left on device
109
- `,a=1,n="";break}let E=e.fs.resolvePath(e.state.cwd,b),w=await nn(e,E,b,{checkNoclobber:!0});if(w){i=w,a=1,n="";break}await e.fs.writeFile(E,"","binary"),c={kind:"file",path:E,append:!1},f=c;break}case"&>>":{if(b==="/dev/full"){i=`bash: echo: write error: No space left on device
110
- `,a=1,n="";break}let E=e.fs.resolvePath(e.state.cwd,b),w=await nn(e,E,b,{});if(w){i=w,a=1,n="";break}await e.fs.appendFile(E,"","binary"),c={kind:"file",path:E,append:!0},f=c;break}}}}if(n!==""||i!==""){let m=n,y=i;n="",i="";let b=async(v,E,w)=>{v.append?await e.fs.appendFile(v.path,E,w):await e.fs.writeFile(v.path,E,w)};if(c===f&&c.kind==="file"){let v=m+y;v!==""&&await b(c,v,u(v))}else for(let[v,E,w]of[[m,c,!0],[y,f,!1]])if(v!=="")switch(E.kind){case"live-stdout":n+=v;break;case"live-stderr":i+=v;break;case"file":await b(E,v,w?u(v):jt(v));break;case"discard":break}}let d=e.state.fileDescriptors?.get(1);if(d){if(d==="__dupout__:2")i+=n,n="";else if(d.startsWith("__file__:")){let m=d.slice(9);await e.fs.appendFile(m,n,u(n)),n=""}else if(d.startsWith("__file_append__:")){let m=d.slice(16);await e.fs.appendFile(m,n,u(n)),n=""}}let h=e.state.fileDescriptors?.get(2);if(h){if(h==="__dupout__:1")n+=i,i="";else if(h.startsWith("__file__:")){let m=h.slice(9);await e.fs.appendFile(m,i,jt(i)),i=""}else if(h.startsWith("__file_append__:")){let m=h.slice(16);await e.fs.appendFile(m,i,jt(i)),i=""}}let p=P(n,i,a);return t.stdoutKind&&(p.stdoutKind=t.stdoutKind),t.stdoutEncoding==="binary"&&(p.stdoutEncoding="binary"),p}function Qo(e,t){if(e.state.options.posix&&Er.has(t.name)){let r=`bash: line ${e.state.currentLine}: \`${t.name}': is a special builtin
111
- `;throw new j(2,"",r)}let s={...t,sourceFile:t.sourceFile??e.state.currentSource??"main"};return e.state.functions.set(t.name,s),G}async function lf(e,t){let s="";for(let r of t)if((r.operator==="<<"||r.operator==="<<-")&&r.target.type==="HereDoc"){let n=r.target,i=await W(e,n.content);n.stripTabs&&(i=i.split(`
112
- `).map(l=>l.replace(/^\t+/,"")).join(`
113
- `)),(r.fd??0)===0&&(s=i)}else if(r.operator==="<<<"&&r.target.type==="Word")s=`${await W(e,r.target)}
114
- `;else if(r.operator==="<"&&r.target.type==="Word"){let n=await W(e,r.target),i=e.fs.resolvePath(e.state.cwd,n);try{s=await e.fs.readFile(i)}catch{}}return s}async function an(e,t,s,r="",n){e.state.callDepth++,e.state.callDepth>e.limits.maxCallDepth&&(e.state.callDepth--,tt(`${t.name}: maximum recursion depth (${e.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),e.state.funcNameStack||(e.state.funcNameStack=[]),e.state.callLineStack||(e.state.callLineStack=[]),e.state.sourceStack||(e.state.sourceStack=[]),e.state.funcNameStack.unshift(t.name),e.state.callLineStack.unshift(n??e.state.currentLine),e.state.sourceStack.unshift(t.sourceFile??"main"),e.state.localScopes.push(new Map),e.state.localExportedVars||(e.state.localExportedVars=[]),e.state.localExportedVars.push(new Set);let i=new Map;for(let u=0;u<s.length;u++)i.set(String(u+1),e.state.env.get(String(u+1))),e.state.env.set(String(u+1),s[u]);i.set("@",e.state.env.get("@")),i.set("#",e.state.env.get("#")),e.state.env.set("@",s.join(" ")),e.state.env.set("#",String(s.length));let a=()=>{let u=e.state.localScopes.length-1,c=e.state.localScopes.pop();if(c)for(let[f,d]of c)d===void 0?e.state.env.delete(f):e.state.env.set(f,d);if(Zo(e,u),e.state.fullyUnsetLocals)for(let[f,d]of e.state.fullyUnsetLocals.entries())d===u&&e.state.fullyUnsetLocals.delete(f);if(e.state.localExportedVars&&e.state.localExportedVars.length>0){let f=e.state.localExportedVars.pop();if(f)for(let d of f)e.state.exportedVars?.delete(d)}for(let[f,d]of i)d===void 0?e.state.env.delete(f):e.state.env.set(f,d);e.state.funcNameStack?.shift(),e.state.callLineStack?.shift(),e.state.sourceStack?.shift(),e.state.callDepth--},{targets:l,error:o}=await Go(e,t.redirections);if(o)return a(),P("",o,1);try{let u=await lf(e,t.redirections),c=r||u,f=await e.executeCommand(t.body,c);return a(),le(e,f,t.redirections,l)}catch(u){if(a(),u instanceof $e){let c=P(u.stdout,u.stderr,u.exitCode);return le(e,c,t.redirections,l)}throw u}}var Xo=["!","[[","]]","case","do","done","elif","else","esac","fi","for","function","if","in","then","time","until","while","{","}"],Sr=[".",":","[","alias","bg","bind","break","builtin","caller","cd","command","compgen","complete","compopt","continue","declare","dirs","disown","echo","enable","eval","exec","exit","export","false","fc","fg","getopts","hash","help","history","jobs","kill","let","local","logout","mapfile","popd","printf","pushd","pwd","read","readarray","readonly","return","set","shift","shopt","source","suspend","test","times","trap","true","type","typeset","ulimit","umask","unalias","unset","wait"],cf=["autocd","assoc_expand_once","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","dotglob","execfail","expand_aliases","extdebug","extglob","extquote","failglob","force_fignore","globasciiranges","globstar","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lastpipe","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","nocaseglob","nocasematch","nullglob","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath","xpg_echo"],uf=Sr;async function Ar(e,t){let s=[],r=null,n="",i="",a=null,l=!1,o=!1,u=!1,c=null,f=null,d=null,h=[],p=["alias","arrayvar","binding","builtin","command","directory","disabled","enabled","export","file","function","group","helptopic","hostname","job","keyword","running","service","setopt","shopt","signal","stopped","user","variable"];for(let w=0;w<t.length;w++){let S=t[w];if(S==="-v")s.push("variable");else if(S==="-e")s.push("export");else if(S==="-f")s.push("file");else if(S==="-d")s.push("directory");else if(S==="-k")s.push("keyword");else if(S==="-A"){if(w++,w>=t.length)return _(`compgen: -A: option requires an argument
115
- `,2);let A=t[w];if(!p.includes(A))return _(`compgen: ${A}: invalid action name
116
- `,2);s.push(A)}else if(S==="-W"){if(w++,w>=t.length)return _(`compgen: -W: option requires an argument
117
- `,2);r=t[w]}else if(S==="-P"){if(w++,w>=t.length)return _(`compgen: -P: option requires an argument
118
- `,2);n=t[w]}else if(S==="-S"){if(w++,w>=t.length)return _(`compgen: -S: option requires an argument
119
- `,2);i=t[w]}else if(S==="-o"){if(w++,w>=t.length)return _(`compgen: -o: option requires an argument
120
- `,2);let A=t[w];if(A==="plusdirs")l=!0;else if(A==="dirnames")o=!0;else if(A==="default")u=!0;else if(!(A==="filenames"||A==="nospace"||A==="bashdefault"||A==="noquote"))return _(`compgen: ${A}: invalid option name
121
- `,2)}else if(S==="-F"){if(w++,w>=t.length)return _(`compgen: -F: option requires an argument
122
- `,2);f=t[w]}else if(S==="-C"){if(w++,w>=t.length)return _(`compgen: -C: option requires an argument
123
- `,2);d=t[w]}else if(S==="-X"){if(w++,w>=t.length)return _(`compgen: -X: option requires an argument
124
- `,2);c=t[w]}else if(S==="-G"){if(w++,w>=t.length)return _(`compgen: -G: option requires an argument
125
- `,2)}else if(S==="--"){h.push(...t.slice(w+1));break}else S.startsWith("-")||h.push(S)}a=h[0]??null;let m=[];if(o){let w=await vr(e,a);m.push(...w)}if(u){let w=await Ko(e,a);m.push(...w)}for(let w of s)if(w==="variable"){let S=ff(e,a);m.push(...S)}else if(w==="export"){let S=df(e,a);m.push(...S)}else if(w==="function"){let S=hf(e,a);m.push(...S)}else if(w==="builtin"){let S=pf(a);m.push(...S)}else if(w==="keyword"){let S=mf(a);m.push(...S)}else if(w==="alias"){let S=gf(e,a);m.push(...S)}else if(w==="shopt"){let S=yf(a);m.push(...S)}else if(w==="helptopic"){let S=wf(a);m.push(...S)}else if(w==="directory"){let S=await vr(e,a);m.push(...S)}else if(w==="file"){let S=await Ko(e,a);m.push(...S)}else if(w==="user"){let S=Ef(a);m.push(...S)}else if(w==="command"){let S=await bf(e,a);m.push(...S)}if(r!==null)try{let w=await vf(e,r),S=Sf(e,w);for(let A of S)(a===null||A.startsWith(a))&&m.push(A)}catch{return P("","",1)}if(l){let w=await vr(e,a);for(let S of w)m.includes(S)||m.push(S)}let y="";if(f!==null){let w=e.state.functions.get(f);if(w){let S=new Map;S.set("COMP_WORDS__length",e.state.env.get("COMP_WORDS__length")),e.state.env.set("COMP_WORDS__length","0"),S.set("COMP_CWORD",e.state.env.get("COMP_CWORD")),e.state.env.set("COMP_CWORD","-1"),S.set("COMP_LINE",e.state.env.get("COMP_LINE")),e.state.env.set("COMP_LINE",""),S.set("COMP_POINT",e.state.env.get("COMP_POINT")),e.state.env.set("COMP_POINT","0");let A=new Map;for(let x of e.state.env.keys())(x==="COMPREPLY"||x.startsWith("COMPREPLY_")||x==="COMPREPLY__length")&&(A.set(x,e.state.env.get(x)),e.state.env.delete(x));let $=["compgen",h[0]??"",""];try{let x=await an(e,w,$,"");if(x.exitCode!==0)return Ut(e,S),Ut(e,A),P("",x.stderr,1);y=x.stdout;let I=Af(e);m.push(...I)}catch{return Ut(e,S),Ut(e,A),P("","",1)}Ut(e,S),Ut(e,A)}}if(d!==null)try{let w=qe(d),S=await e.executeScript(w);if(S.exitCode!==0)return P("",S.stderr,S.exitCode);if(S.stdout){let A=S.stdout.split(`
126
- `);for(let $ of A)$.length>0&&m.push($)}}catch(w){if(w.name==="ParseException")return _(`compgen: -C: ${w.message}
127
- `,2);throw w}let b=m;if(c!==null){let w=c.startsWith("!"),S=w?c.slice(1):c;b=m.filter(A=>{let $=zt(A,S,!1,!0);return w?$:!$})}if(b.length===0&&a!==null)return P(y,"",1);let v=b.map(w=>`${n}${w}${i}`).join(`
128
- `),E=y+(v?`${v}
129
- `:"");return Z(E)}function ff(e,t){let s=new Set;for(let n of e.state.env.keys()){if(n.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(n)||n.endsWith("__length"))continue;let i=n.split("_")[0];/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)?s.add(n):i&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i)&&e.state.env.has(`${i}__length`)&&s.add(i)}let r=Array.from(s);return t!==null&&(r=r.filter(n=>n.startsWith(t))),r.sort()}function df(e,t){let s=e.state.exportedVars??new Set,r=Array.from(s);return t!==null&&(r=r.filter(n=>n.startsWith(t))),r=r.filter(n=>n.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(n)||n.endsWith("__length")?!1:e.state.env.has(n)),r.sort()}function hf(e,t){let s=Array.from(e.state.functions.keys());return t!==null&&(s=s.filter(r=>r.startsWith(t))),s.sort()}function pf(e){let t=[...Sr];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function mf(e){let t=[...Xo];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function gf(e,t){let s=[];for(let n of e.state.env.keys())if(n.startsWith("BASH_ALIAS_")){let i=n.slice(11);s.push(i)}let r=s;return t!==null&&(r=r.filter(n=>n.startsWith(t))),r.sort()}function yf(e){let t=[...cf];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function wf(e){let t=[...uf];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}async function vr(e,t){let s=[];try{let r=e.state.cwd,n=t??"";if(t){let a=t.lastIndexOf("/");if(a!==-1){let l=t.slice(0,a)||"/";n=t.slice(a+1),l.startsWith("/")?r=l:r=`${e.state.cwd}/${l}`}}let i=await e.fs.readdir(r);for(let a of i){let l=`${r}/${a}`;try{if((await e.fs.stat(l)).isDirectory&&(!n||a.startsWith(n)))if(t?.includes("/")){let u=t.lastIndexOf("/"),c=t.slice(0,u+1);s.push(c+a)}else s.push(a)}catch{}}}catch{}return s.sort()}async function Ko(e,t){let s=[];try{let r=e.state.cwd,n=t??"";if(t){let a=t.lastIndexOf("/");if(a!==-1){let l=t.slice(0,a)||"/";n=t.slice(a+1),l.startsWith("/")?r=l:r=`${e.state.cwd}/${l}`}}let i=await e.fs.readdir(r);for(let a of i)if(!n||a.startsWith(n))if(t?.includes("/")){let l=t.lastIndexOf("/"),o=t.slice(0,l+1);s.push(o+a)}else s.push(a)}catch{}return s.sort()}function Ef(e){return["root","nobody"]}async function bf(e,t){let s=new Set;for(let i of Sr)s.add(i);for(let i of e.state.functions.keys())s.add(i);for(let i of e.state.env.keys())i.startsWith("BASH_ALIAS_")&&s.add(i.slice(11));for(let i of Xo)s.add(i);let r=e.state.env.get("PATH")??"/usr/bin:/bin";for(let i of r.split(":"))if(i)try{let a=await e.fs.readdir(i);for(let l of a)s.add(l)}catch{}let n=Array.from(s);return t!==null&&(n=n.filter(i=>i.startsWith(t))),n.sort()}async function vf(e,t){let r=new V().parseWordFromString(t,!1,!1);return await W(e,r)}function Sf(e,t){let s=e.state.env.get("IFS")??`
130
- `;if(s.length===0)return[t];let r=new Set(s.split("")),n=[],i="",a=0;for(;a<t.length;){let l=t[a];if(l==="\\"&&a+1<t.length){let o=t[a+1];i+=o,a+=2}else r.has(l)?(i.length>0&&(n.push(i),i=""),a++):(i+=l,a++)}return i.length>0&&n.push(i),n}function Ut(e,t){for(let[s,r]of t)r===void 0?e.state.env.delete(s):e.state.env.set(s,r)}function Af(e){let t=[];if(e.state.env.get("COMPREPLY__length")!==void 0){let n=F(e,"COMPREPLY");for(let[,i]of n)t.push(i)}else{let n=e.state.env.get("COMPREPLY");n!==void 0&&t.push(n)}return t}var $f=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function Nr(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,r=!1,n=!1,i,a,l,o=[],u=[],c=[];for(let f=0;f<t.length;f++){let d=t[f];if(d==="-p")s=!0;else if(d==="-r")r=!0;else if(d==="-D")n=!0;else if(d==="-W"){if(f++,f>=t.length)return _(`complete: -W: option requires an argument
131
- `,2);i=t[f]}else if(d==="-F"){if(f++,f>=t.length)return _(`complete: -F: option requires an argument
132
- `,2);a=t[f]}else if(d==="-o"){if(f++,f>=t.length)return _(`complete: -o: option requires an argument
133
- `,2);let h=t[f];if(!$f.includes(h))return _(`complete: ${h}: invalid option name
134
- `,2);o.push(h)}else if(d==="-A"){if(f++,f>=t.length)return _(`complete: -A: option requires an argument
135
- `,2);u.push(t[f])}else if(d==="-C"){if(f++,f>=t.length)return _(`complete: -C: option requires an argument
136
- `,2);l=t[f]}else if(d==="-G"){if(f++,f>=t.length)return _(`complete: -G: option requires an argument
137
- `,2)}else if(d==="-P"){if(f++,f>=t.length)return _(`complete: -P: option requires an argument
138
- `,2)}else if(d==="-S"){if(f++,f>=t.length)return _(`complete: -S: option requires an argument
139
- `,2)}else if(d==="-X"){if(f++,f>=t.length)return _(`complete: -X: option requires an argument
140
- `,2)}else if(d==="--"){c.push(...t.slice(f+1));break}else d.startsWith("-")||c.push(d)}if(r){if(c.length===0)return e.state.completionSpecs.clear(),Z("");for(let f of c)e.state.completionSpecs.delete(f);return Z("")}if(s)return c.length===0?$r(e):$r(e,c);if(t.length===0||c.length===0&&!i&&!a&&!l&&o.length===0&&u.length===0&&!n)return $r(e);if(a&&c.length===0&&!n)return _(`complete: -F: option requires a command name
141
- `,2);if(n){let f={isDefault:!0};return i!==void 0&&(f.wordlist=i),a!==void 0&&(f.function=a),l!==void 0&&(f.command=l),o.length>0&&(f.options=o),u.length>0&&(f.actions=u),e.state.completionSpecs.set("__default__",f),Z("")}for(let f of c){let d=Object.create(null);i!==void 0&&(d.wordlist=i),a!==void 0&&(d.function=a),l!==void 0&&(d.command=l),o.length>0&&(d.options=o),u.length>0&&(d.actions=u),e.state.completionSpecs.set(f,d)}return Z("")}function $r(e,t){let s=e.state.completionSpecs;if(!s||s.size===0){if(t&&t.length>0){let i="";for(let a of t)i+=`complete: ${a}: no completion specification
142
- `;return P("",i,1)}return Z("")}let r=[],n=t||Array.from(s.keys());for(let i of n){if(i==="__default__")continue;let a=s.get(i);if(!a){if(t)return P(r.join(`
64
+ `||c&&m==="}",b=a?"*?[]\\".includes(m):"*?[]\\(){}.^+".includes(m);E?d+=m:b?(p(),u.push(L.escaped(m))):d+=`\\${m}`,f+=2;continue}if(h==="'"&&!a&&!i){p();let m=t.indexOf("'",f+1);if(m===-1){d+=t.slice(f);break}u.push(L.singleQuoted(t.slice(f+1,m))),f=m+1;continue}if(h==='"'&&!i){p();let{part:m,endIndex:E}=Ef(e,t,f+1);u.push(m),f=E+1;continue}if(h==="$"&&t[f+1]==="'"){p();let{part:m,endIndex:E}=uo(e,t,f+2);u.push(m),f=E;continue}if(h==="$"){p();let{part:m,endIndex:E}=zs(e,t,f);m&&u.push(m),f=E;continue}if(h==="`"){p();let{part:m,endIndex:E}=e.parseBacktickSubstitution(t,f);u.push(m),f=E;continue}if(h==="~"){let m=f>0?t[f-1]:"";if(f===0||m==="="||s&&m===":"){let b=oo(e,t,f),g=t[b];if(g===void 0||g==="/"||g===":"){p();let w=t.slice(f+1,b)||null;u.push({type:"TildeExpansion",user:w}),f=b;continue}}}if("@*+?!".includes(h)&&f+1<t.length&&t[f+1]==="("){let m=yf(t,f+1);if(m!==-1){p();let E=t.slice(f,m+1);u.push({type:"Glob",pattern:E}),f=m+1;continue}}if(h==="*"||h==="?"||h==="["){p();let{pattern:m,endIndex:E}=co(e,t,f);u.push({type:"Glob",pattern:m}),f=E;continue}if(h==="{"&&!s&&!o&&!i){let m=fo(e,t,f,Ct);if(m){p(),u.push(m.part),f=m.endIndex;continue}}d+=h,f++}return p(),u}var V=class e{tokens=[];pos=0;pendingHeredocs=[];parseBudget;ownsParseBudget;_input="";constructor(t){this.parseBudget=t??new fr,this.ownsParseBudget=t===void 0}getInput(){return this._input}checkIterationLimit(){let t=this.current();this.parseBudget.chargeIteration(t?.line??1,t?.column??1)}enterDepth(){let t=this.current();return this.parseBudget.enter(t?.line??1,t?.column??1)}withDepth(t){let n=this.enterDepth();try{return t()}finally{n()}}parse(t,n){this.ownsParseBudget&&this.parseBudget.reset();let r=this.ownsParseBudget?void 0:this.enterDepth();try{if(t.length>$s)throw new Ae(`Input too large: ${t.length} bytes exceeds limit of ${$s}`,1,1);this._input=t;let s=new ur(t,n);if(this.tokens=s.tokenize(),this.tokens.length>In)throw new Ae(`Too many tokens: ${this.tokens.length} exceeds limit of ${In}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseBudget.chargeTokens(this.tokens.length),this.parseScript()}finally{r?.()}}parseTokens(t){this.ownsParseBudget&&this.parseBudget.reset();let n=this.ownsParseBudget?void 0:this.enterDepth();try{return this.tokens=t,this.pos=0,this.pendingHeredocs=[],this.parseBudget.chargeTokens(t.length),this.parseScript()}finally{n?.()}}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(t=0){return this.tokens[this.pos+t]||this.tokens[this.tokens.length-1]}advance(){let t=this.current();return this.pos<this.tokens.length-1&&this.pos++,t}getPos(){return this.pos}check(t,n,r,s,...i){let a=this.tokens[this.pos]?.type;return a===t||n!==void 0&&a===n||r!==void 0&&a===r||s!==void 0&&a===s?!0:i.length>0?i.includes(a):!1}expect(t,n){if(this.check(t))return this.advance();let r=this.current();throw new Ae(n||`Expected ${t}, got ${r.type}`,r.line,r.column,r)}error(t){let n=this.current();throw new Ae(t,n.line,n.column,n)}skipNewlines(){for(;this.check(y.NEWLINE,y.COMMENT);)this.check(y.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(t=!0){for(;;){if(this.check(y.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(y.SEMICOLON,y.COMMENT)){this.advance();continue}if(t&&this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(t,n,r,s){this.pendingHeredocs.push({redirect:t,delimiter:n,stripTabs:r,quoted:s})}processHeredocs(){for(let t of this.pendingHeredocs)if(this.check(y.HEREDOC_CONTENT)){let n=this.advance(),r;t.quoted?r=L.word([L.literal(n.value)]):r=this.parseWordFromString(n.value,!1,!1,!1,!0),t.redirect.target=L.hereDoc(t.delimiter,r,t.stripTabs,t.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(y.EOF,y.NEWLINE,y.SEMICOLON,y.AMP,y.AND_AND,y.OR_OR,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)}isCommandStart(){let t=this.current().type;return t===y.WORD||t===y.NAME||t===y.NUMBER||t===y.ASSIGNMENT_WORD||t===y.IF||t===y.FOR||t===y.WHILE||t===y.UNTIL||t===y.CASE||t===y.LPAREN||t===y.LBRACE||t===y.DPAREN_START||t===y.DBRACK_START||t===y.FUNCTION||t===y.BANG||t===y.TIME||t===y.IN||t===y.LESS||t===y.GREAT||t===y.DLESS||t===y.DGREAT||t===y.LESSAND||t===y.GREATAND||t===y.LESSGREAT||t===y.DLESSDASH||t===y.CLOBBER||t===y.TLESS||t===y.AND_GREAT||t===y.AND_DGREAT}parseScript(){let t=[],r=0;for(this.skipNewlines();!this.check(y.EOF);){r++,r>1e4&&this.error("Parser stuck: too many iterations (>10000)");let s=this.checkUnexpectedToken();if(s){t.push(s),this.skipSeparators(!1);continue}let i=this.pos,a=this.parseStatement();a&&t.push(a),this.skipSeparators(!1),this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===i&&!this.check(y.EOF)&&this.advance()}return L.script(t)}checkUnexpectedToken(){let t=this.current().type,n=this.current().value;if((t===y.DO||t===y.DONE||t===y.THEN||t===y.ELSE||t===y.ELIF||t===y.FI||t===y.ESAC)&&this.error(`syntax error near unexpected token \`${n}'`),t===y.RBRACE||t===y.RPAREN){let r=`syntax error near unexpected token \`${n}'`;return this.advance(),L.statement([L.pipeline([L.simpleCommand(null,[],[],[])])],[],!1,{message:r,token:n})}return(t===y.DSEMI||t===y.SEMI_AND||t===y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${n}'`),t===y.SEMICOLON&&this.error(`syntax error near unexpected token \`${n}'`),(t===y.PIPE||t===y.PIPE_AMP)&&this.error(`syntax error near unexpected token \`${n}'`),null}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let t=this.current().start,n=[],r=[],s=!1,i=this.parsePipeline();for(n.push(i);this.check(y.AND_AND,y.OR_OR);){let l=this.advance();r.push(l.type===y.AND_AND?"&&":"||"),this.skipNewlines();let c=this.parsePipeline();n.push(c)}this.check(y.AMP)&&(this.advance(),s=!0);let a=this.pos>0?this.tokens[this.pos-1].end:t,o=this._input.slice(t,a);return L.statement(n,r,s,void 0,o)}parsePipeline(){let t=!1,n=!1;this.check(y.TIME)&&(this.advance(),t=!0,this.check(y.WORD,y.NAME)&&this.current().value==="-p"&&(this.advance(),n=!0));let r=0;for(;this.check(y.BANG);)this.advance(),r++;let s=r%2===1,i=[],a=[],o=this.parseCommand();for(i.push(o);this.check(y.PIPE,y.PIPE_AMP);){let l=this.advance();this.skipNewlines(),a.push(l.type===y.PIPE_AMP);let c=this.parseCommand();i.push(c)}return L.pipeline(i,s,t,n,a.length>0?a:void 0)}parseCommand(){return this.check(y.IF)?Is(this):this.check(y.FOR)?_s(this):this.check(y.WHILE)?Os(this):this.check(y.UNTIL)?Ls(this):this.check(y.CASE)?Ts(this):this.check(y.LPAREN)?Ms(this):this.check(y.LBRACE)?Bs(this):this.check(y.DPAREN_START)?this.dparenClosesWithSpacedParens()?this.parseNestedSubshellsFromDparen():this.parseArithmeticCommand():this.check(y.DBRACK_START)?this.parseConditionalCommand():this.check(y.FUNCTION)?this.parseFunctionDef():this.check(y.NAME,y.WORD)&&this.peek(1).type===y.LPAREN&&this.peek(2).type===y.RPAREN?this.parseFunctionDef():mo(this)}dparenClosesWithSpacedParens(){let t=1,n=1;for(;n<this.tokens.length-this.pos;){let r=this.peek(n);if(r.type===y.EOF)return!1;if(r.type===y.DPAREN_START||r.type===y.LPAREN)t++;else if(r.type===y.DPAREN_END){if(t-=2,t<=0)return!1}else if(r.type===y.RPAREN&&(t--,t===0&&this.peek(n+1).type===y.RPAREN))return!0;n++}return!1}parseNestedSubshellsFromDparen(){this.advance();let t=this.parseCompoundList();this.expect(y.RPAREN),this.expect(y.RPAREN);let n=this.parseOptionalRedirections(),r=L.subshell(t,[]);return L.subshell([L.statement([L.pipeline([r],!1,!1,!1)])],n)}isWord(){let t=this.current().type;return t===y.WORD||t===y.NAME||t===y.NUMBER||t===y.IF||t===y.FOR||t===y.WHILE||t===y.UNTIL||t===y.CASE||t===y.FUNCTION||t===y.ELSE||t===y.ELIF||t===y.FI||t===y.THEN||t===y.DO||t===y.DONE||t===y.ESAC||t===y.IN||t===y.SELECT||t===y.TIME||t===y.COPROC||t===y.BANG}parseWord(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted)}parseWordNoBraceExpansion(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted,!1,!1,!0)}parseWordForRegex(){let t=this.advance();return this.parseWordFromString(t.value,t.quoted,t.singleQuoted,!1,!1,!0,!0)}parseWordFromString(t,n=!1,r=!1,s=!1,i=!1,a=!1,o=!1){let l=Ct(this,t,n,r,s,i,!1,a,o);return L.word(l)}parseCommandSubstitution(t,n){return Ma(t,n,()=>new e(this.parseBudget),r=>this.error(r))}parseBacktickSubstitution(t,n,r=!1){return Ba(t,n,r,()=>new e(this.parseBudget),s=>this.error(s))}isDollarDparenSubshell(t,n){return Ta(t,n)}parseArithmeticExpansion(t,n){let r=n+3,s=1,i=0,a=r;for(;a<t.length-1&&s>0;)t[a]==="$"&&t[a+1]==="("?t[a+2]==="("?(s++,a+=3):(i++,a+=2):t[a]==="("&&t[a+1]==="("?(s++,a+=2):t[a]===")"&&t[a+1]===")"?i>0?(i--,a++):(s--,s>0&&(a+=2)):t[a]==="("?(i++,a++):(t[a]===")"&&i>0&&i--,a++);let o=t.slice(r,a),l=this.parseArithmeticExpression(o);return{part:L.arithmeticExpansion(l),endIndex:a+2}}parseArithmeticCommand(){let t=this.expect(y.DPAREN_START),n="",r=1,s=0,i=!1,a=!1;for(;r>0&&!this.check(y.EOF);){if(i){if(i=!1,s>0){s--,n+=")";continue}if(this.check(y.RPAREN)){r--,a=!0,this.advance();continue}if(this.check(y.DPAREN_END)){r--,a=!0;continue}n+=")";continue}if(this.check(y.DPAREN_START))r++,n+="((",this.advance();else if(this.check(y.DPAREN_END))s>=2?(s-=2,n+="))",this.advance()):s===1?(s--,n+=")",i=!0,this.advance()):(r--,a=!0,r>0&&(n+="))"),this.advance());else if(this.check(y.LPAREN))s++,n+="(",this.advance();else if(this.check(y.RPAREN))s>0&&s--,n+=")",this.advance();else{let c=this.current().value,u=n.length>0?n[n.length-1]:"";n.length>0&&!n.endsWith(" ")&&!(c==="="&&/[|&^+\-*/%<>]$/.test(n))&&!(c==="<"&&u==="<")&&!(c===">"&&u===">")&&(n+=" "),n+=c,this.advance()}}a||this.expect(y.DPAREN_END);let o=this.parseArithmeticExpression(n.trim()),l=this.parseOptionalRedirections();return L.arithmeticCommand(o,l,t.line)}parseConditionalCommand(){let t=this.expect(y.DBRACK_START),n=Fs(this);this.expect(y.DBRACK_END);let r=this.parseOptionalRedirections();return L.conditionalCommand(n,r,t.line)}parseFunctionDef(){let t;if(this.check(y.FUNCTION)){if(this.advance(),this.check(y.NAME)||this.check(y.WORD))t=this.advance().value;else{let s=this.current();throw new Ae("Expected function name",s.line,s.column,s)}this.check(y.LPAREN)&&(this.advance(),this.expect(y.RPAREN))}else t=this.advance().value,t.includes("$")&&this.error(`\`${t}': not a valid identifier`),this.expect(y.LPAREN),this.expect(y.RPAREN);this.skipNewlines();let n=this.parseCompoundCommandBody({forFunctionBody:!0}),r=this.parseOptionalRedirections();return L.functionDef(t,n,r)}parseCompoundCommandBody(t){let n=t?.forFunctionBody;if(this.check(y.LBRACE))return Bs(this,{skipRedirections:n});if(this.check(y.LPAREN))return Ms(this,{skipRedirections:n});if(this.check(y.IF))return Is(this,{skipRedirections:n});if(this.check(y.FOR))return _s(this,{skipRedirections:n});if(this.check(y.WHILE))return Os(this,{skipRedirections:n});if(this.check(y.UNTIL))return Ls(this,{skipRedirections:n});if(this.check(y.CASE))return Ts(this,{skipRedirections:n});this.error("Expected compound command for function body")}parseCompoundList(){let t=this.enterDepth();try{let n=[];for(this.skipNewlines();!this.check(y.EOF,y.FI,y.ELSE,y.ELIF,y.THEN,y.DO,y.DONE,y.ESAC,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,s=this.parseStatement();if(s&&n.push(s),this.skipSeparators(),this.pos===r&&!s)break}return n}finally{t()}}parseOptionalRedirections(){let t=[];for(;hr(this);){this.checkIterationLimit();let n=this.pos;if(t.push(mr(this)),this.pos===n)break}return t}parseArithmeticExpression(t){return ne(this,t)}};function tt(e,t){return new V().parse(e,t)}var Sf="BASH_ALIAS_";function yr(e,t,n,r){let s=T(t);if(s>n-r.value)throw new $(`alias expansion exceeds string length limit (${n} bytes)`,"string_length");return r.value+=s,e+t}function bo(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function So(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function Ao(e,t){return e.env.get(`${Sf}${t}`)}function xo(e,t,n){return $o(e,t,n)}function $o(e,t,n,r=!0){if(!t.name||!bo(t.name))return t;let s=So(t.name);if(!s)return t;let i=Ao(e,s);if(!i||n.has(s))return t;try{n.add(s);let a=new V,o={value:0},l=yr("",i,e.limits.maxStringLength,o),c=i.endsWith(" ");if(!c)for(let p of t.args){let h=ko(p);l=yr(l,` ${h}`,e.limits.maxStringLength,o)}let u;try{u=a.parse(l)}catch(p){if(p instanceof Ae)throw p;return t}if(u.statements.length!==1||u.statements[0].pipelines.length!==1||u.statements[0].pipelines[0].commands.length!==1)return vo(e,t,i);let f=u.statements[0].pipelines[0].commands[0];if(f.type!=="SimpleCommand")return vo(e,t,i);let d={...f,assignments:[...t.assignments,...f.assignments],redirections:[...f.redirections,...t.redirections],line:t.line};if(c&&t.args.length>0){d={...d,args:[...d.args,...t.args]};let p=1;for(;r&&d.args.length>0;){let h=d.args[0];if(!bo(h))break;let m=So(h),E=m?Ao(e,m):null;if(!E)break;if(p>=e.limits.maxCallDepth)throw new $(`alias expansion depth limit exceeded (${e.limits.maxCallDepth})`,"recursion");p++;let b={type:"SimpleCommand",name:h,args:d.args.slice(1),assignments:[],redirections:[]},g=$o(e,b,n,!1);if(g===b||(d={...d,name:g.name,args:[...g.args]},!E.endsWith(" ")))break}}return d}catch(a){throw n.delete(s),a}}function vo(e,t,n){let r={value:0},s=yr("",n,e.limits.maxStringLength,r);for(let c of t.args){let u=ko(c);s=yr(s,` ${u}`,e.limits.maxStringLength,r)}let i=new V,a=i.parseWordFromString("eval",!1,!1),o=0;for(let c of s)c==="'"&&o++;if(r.value+2+o*3>e.limits.maxStringLength)throw new $(`alias expansion exceeds string length limit (${e.limits.maxStringLength} bytes)`,"string_length");let l=i.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:a,args:[l],assignments:t.assignments,redirections:t.redirections,line:t.line}}function ko(e){let t="";for(let n of e.parts)switch(n.type){case"Literal":t+=n.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${n.value}'`;break;case"DoubleQuoted":t+=`"${n.parts.map(r=>r.type==="Literal"?r.value:`$${r.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${n.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${n.expression}))`;break;case"Glob":t+=n.pattern;break;default:break}return t}var Af=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9a-fA-F"]]);function qs(e){return Af.get(e)??""}function No(e){let t=[],n="",r=0;for(;r<e.length;){let s=e[r];if(s==="["){for(n+=s,r++,r<e.length&&(e[r]==="!"||e[r]==="^")&&(n+=e[r],r++),r<e.length&&e[r]==="]"&&(n+=e[r],r++);r<e.length&&e[r]!=="]";){if(e[r]==="["&&r+1<e.length&&e[r+1]===":"){let i=e.indexOf(":]",r+2);if(i!==-1){n+=e.slice(r,i+2),r=i+2;continue}}if(e[r]==="\\"&&r+1<e.length){n+=e[r]+e[r+1],r+=2;continue}n+=e[r],r++}r<e.length&&e[r]==="]"&&(n+=e[r],r++)}else s===":"?(n!==""&&t.push(n),n="",r++):s==="\\"&&r+1<e.length?(n+=s+e[r+1],r+=2):(n+=s,r++)}return n!==""&&t.push(n),t}function Po(e){let t="^";for(let n=0;n<e.length;n++){let r=e[n];if(r==="*")t+="[^/]*";else if(r==="?")t+="[^/]";else if(r==="["){let s=n+1,i="[";s<e.length&&(e[s]==="^"||e[s]==="!")&&(i+="^",s++),s<e.length&&e[s]==="]"&&(i+="\\]",s++);let a=s;for(;a<e.length;){if(e[a]==="\\"&&a+1<e.length){a+=2;continue}if(e[a]==="["&&a+1<e.length&&e[a+1]===":"){let l=e.indexOf(":]",a+2);if(l!==-1){a=l+2;continue}}if(e[a]==="]")break;a++}let o=s;for(;s<e.length&&e[s]!=="]";){if(e[s]==="["&&s+1<e.length&&e[s+1]===":"){let l=e.indexOf(":]",s+2);if(l!==-1){let c=e.slice(s+2,l),u=qs(c);i+=u,s=l+2;continue}}if(e[s]==="\\"&&s+1<e.length){i+=`\\${e[s+1]}`,s+=2;continue}if(e[s]==="-"){let l=s===o,c=s+1===a;l||c?i+="\\-":i+="-"}else i+=e[s];s++}i+="]",t+=i,n=s}else if(r==="\\"&&n+1<e.length){let s=e[n+1];/[.+^${}()|\\*?[\]]/.test(s)?t+=`\\${s}`:t+=s,n++}else/[.+^${}()|]/.test(r)?t+=`\\${r}`:t+=r}return t+="$",he(t)}function Us(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;){let s=e[r];if(s==="\\"){r+=2;continue}if(s==="(")n++;else if(s===")"&&(n--,n===0))return r;r++}return-1}function js(e){let t=[],n="",r=0,s=!1,i=0;for(;i<e.length;){let a=e[i];if(a==="'"&&!s){s=!0,n+="\0QUOTE_START\0",i++;continue}if(a==="'"&&s){s=!1,n+="\0QUOTE_END\0",i++;continue}if(s){n+=a,i++;continue}if(a==="\\"){n+=a,i+1<e.length?(n+=e[i+1],i+=2):i++;continue}a==="("?(r++,n+=a):a===")"?(r--,n+=a):a==="|"&&r===0?(t.push(n),n=""):n+=a,i++}return t.push(n),t}var Co=5,Dt=class{fs;cwd;globignorePatterns=[];hasGlobignore=!1;globstar=!1;nullglob=!1;failglob=!1;dotglob=!1;extglob=!1;globskipdots=!0;ops={count:0};maxOps;consumeOperation;constructor(t,n,r,s){this.fs=t,this.cwd=n,typeof s=="boolean"?(this.globstar=s,this.maxOps=1e5):s?(this.globstar=s.globstar??!1,this.nullglob=s.nullglob??!1,this.failglob=s.failglob??!1,this.dotglob=s.dotglob??!1,this.extglob=s.extglob??!1,this.globskipdots=s.globskipdots??!0,this.maxOps=s.maxGlobOperations??1e5,this.consumeOperation=s.consumeOperation):this.maxOps=1e5;let i=r?.get("GLOBIGNORE");i!==void 0&&i!==""&&(this.hasGlobignore=!0,this.globignorePatterns=No(i))}checkOpsLimit(){if(++this.ops.count>this.maxOps)throw new $(`Glob operation limit exceeded (${this.maxOps})`,"glob_operations");this.consumeOperation?.()}hasNullglob(){return this.nullglob}hasFailglob(){return this.failglob}filterGlobignore(t){return!this.hasGlobignore&&!this.globskipdots?t:t.filter(n=>{let r=n.split("/").pop()||n;if((this.hasGlobignore||this.globskipdots)&&(r==="."||r===".."))return!1;if(this.hasGlobignore){for(let s of this.globignorePatterns)if(this.matchGlobignorePattern(n,s))return!1}return!0})}matchGlobignorePattern(t,n){return Po(n).test(t)}isGlobPattern(t){return!!(t.includes("*")||t.includes("?")||/\[.*\]/.test(t)||this.extglob&&/[@*+?!]\(/.test(t))}async expandArgs(t,n){let r=t.map((a,o)=>(n?.[o]??!1)||!this.isGlobPattern(a)?null:this.expand(a)),s=await Promise.all(r.map(a=>a||Promise.resolve(null))),i=[];for(let a=0;a<t.length;a++){let o=s[a];o===null?i.push(t[a]):o.length>0?i.push(...o):i.push(t[a])}return i}async expand(t){if(this.globstar){let r=t.split("/"),s=0;for(let i of r)if(i==="**"&&(s++,s>Co))throw new $(`Glob pattern has too many ** segments (max ${Co})`,"glob_operations")}let n;if(t.includes("**")&&this.globstar&&this.isGlobstarValid(t))n=await this.expandRecursive(t);else{let r=t.replace(/\*\*+/g,"*");n=await this.expandSimple(r)}return this.filterGlobignore(n)}isGlobstarValid(t){let n=t.split("/");for(let r of n)if(r.includes("**")&&r!=="**")return!1;return!0}hasGlobChars(t){return!!(t.includes("*")||t.includes("?")||/\[.*\]/.test(t)||this.extglob&&/[@*+?!]\(/.test(t))}async expandSimple(t){let n=t.startsWith("/"),r=t.split("/").filter(c=>c!==""),s=-1;for(let c=0;c<r.length;c++)if(this.hasGlobChars(r[c])){s=c;break}if(s===-1)return[t];let i,a;if(s===0)n?(i="/",a="/"):(i=this.cwd,a="");else{let c=r.slice(0,s);n?(i=`/${c.join("/")}`,a=`/${c.join("/")}`):(i=this.fs.resolvePath(this.cwd,c.join("/")),a=c.join("/"))}let o=r.slice(s);return(await this.expandSegments(i,a,o)).sort()}async expandSegments(t,n,r){if(this.checkOpsLimit(),r.length===0)return[n];let[s,...i]=r,a=[];try{if(this.fs.readdirWithFileTypes){this.checkOpsLimit();let o=await this.fs.readdirWithFileTypes(t),l=[],c=[...o],u=this.dotglob||this.hasGlobignore;if(s.startsWith(".")||this.dotglob){let d=o.some(h=>h.name==="."),p=o.some(h=>h.name==="..");d||c.push({name:".",isFile:!1,isDirectory:!0,isSymbolicLink:!1}),p||c.push({name:"..",isFile:!1,isDirectory:!0,isSymbolicLink:!1})}for(let d of c)if(!(d.name.startsWith(".")&&!s.startsWith(".")&&!u)&&this.matchPattern(d.name,s)){let p=t==="/"?`/${d.name}`:`${t}/${d.name}`,h;n===""?h=d.name:n==="/"?h=`/${d.name}`:h=`${n}/${d.name}`,i.length===0?l.push(Promise.resolve([h])):d.isDirectory&&l.push(this.expandSegments(p,h,i))}let f=await Promise.all(l);for(let d of f)a.push(...d)}else{this.checkOpsLimit();let o=await this.fs.readdir(t),l=[],c=[...o],u=this.dotglob||this.hasGlobignore;(s.startsWith(".")||this.dotglob)&&(o.includes(".")||c.push("."),o.includes("..")||c.push(".."));for(let d of c)if(!(d.startsWith(".")&&!s.startsWith(".")&&!u)&&this.matchPattern(d,s)){let p=t==="/"?`/${d}`:`${t}/${d}`,h;n===""?h=d:n==="/"?h=`/${d}`:h=`${n}/${d}`,i.length===0?l.push(Promise.resolve([h])):l.push((async()=>{try{if(this.checkOpsLimit(),(await this.fs.stat(p)).isDirectory)return this.expandSegments(p,h,i)}catch(m){if(m instanceof $)throw m}return[]})())}let f=await Promise.all(l);for(let d of f)a.push(...d)}}catch(o){if(o instanceof $)throw o}return a}async expandRecursive(t){let n=[],r=t.indexOf("**"),s=t.slice(0,r).replace(/\/$/,"")||".",a=t.slice(r+2).replace(/^\//,"");return a.includes("**")&&this.isGlobstarValid(a)?(await this.walkDirectoryMultiGlobstar(s,a,n),[...new Set(n)].sort()):(await this.walkDirectory(s,a,n),n.sort())}async walkDirectoryMultiGlobstar(t,n,r){this.checkOpsLimit();let s=this.fs.resolvePath(this.cwd,t);try{this.checkOpsLimit();let i=this.fs.readdirWithFileTypes?await this.fs.readdirWithFileTypes(s):null;if(i){let a=[];for(let c of i){let u=t==="."?c.name:`${t}/${c.name}`;c.isDirectory&&a.push(u)}let o=t==="."?n:`${t}/${n}`,l=await this.expandRecursive(o);r.push(...l);for(let c=0;c<a.length;c+=100){let u=a.slice(c,c+100);await Promise.all(u.map(f=>this.walkDirectoryMultiGlobstar(f,n,r)))}}else{this.checkOpsLimit();let a=await this.fs.readdir(s),o=[];for(let u of a){let f=t==="."?u:`${t}/${u}`,d=this.fs.resolvePath(this.cwd,f);try{this.checkOpsLimit(),(await this.fs.stat(d)).isDirectory&&o.push(f)}catch(p){if(p instanceof $)throw p}}let l=t==="."?n:`${t}/${n}`,c=await this.expandRecursive(l);r.push(...c);for(let u=0;u<o.length;u+=100){let f=o.slice(u,u+100);await Promise.all(f.map(d=>this.walkDirectoryMultiGlobstar(d,n,r)))}}}catch(i){if(i instanceof $)throw i}}async walkDirectory(t,n,r){this.checkOpsLimit();let s=this.fs.resolvePath(this.cwd,t);try{if(this.fs.readdirWithFileTypes){this.checkOpsLimit();let i=await this.fs.readdirWithFileTypes(s),a=[],o=[];for(let l of i){let c=t==="."?l.name:`${t}/${l.name}`;l.isDirectory?o.push(c):n&&this.matchPattern(l.name,n)&&a.push(c)}r.push(...a);for(let l=0;l<o.length;l+=100){let c=o.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u,n,r)))}}else{this.checkOpsLimit();let i=await this.fs.readdir(s),a=[];for(let l=0;l<i.length;l+=100){let c=i.slice(l,l+100),u=await Promise.all(c.map(async f=>{let d=t==="."?f:`${t}/${f}`,p=this.fs.resolvePath(this.cwd,d);try{this.checkOpsLimit();let h=await this.fs.stat(p);return{name:f,path:d,isDirectory:h.isDirectory}}catch(h){if(h instanceof $)throw h;return null}}));a.push(...u.filter(f=>f!==null))}for(let l of a)!l.isDirectory&&n&&this.matchPattern(l.name,n)&&r.push(l.path);let o=a.filter(l=>l.isDirectory);for(let l=0;l<o.length;l+=100){let c=o.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u.path,n,r)))}}}catch(i){if(i instanceof $)throw i}}matchPattern(t,n){return this.patternToRegex(n).test(t)}patternToRegex(t){let n=this.patternToRegexStr(t);return he(`^${n}$`)}patternToRegexStr(t){let n="",r=!1;for(let s=0;s<t.length;s++){if(t.slice(s,s+13)==="\0QUOTE_START\0"){r=!0,s+=12;continue}if(t.slice(s,s+11)==="\0QUOTE_END\0"){r=!1,s+=10;continue}let i=t[s];if(r){/[.+^${}()|\\*?[\]]/.test(i)?n+=`\\${i}`:n+=i;continue}if(this.extglob&&(i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&s+1<t.length&&t[s+1]==="("){let a=Us(t,s+1);if(a!==-1){let o=t.slice(s+2,a),l=js(o),c=l.map(f=>this.patternToRegexStr(f)),u=c.length>0?c.join("|"):"(?:)";if(i==="@")n+=`(?:${u})`;else if(i==="*")n+=`(?:${u})*`;else if(i==="+")n+=`(?:${u})+`;else if(i==="?")n+=`(?:${u})?`;else if(i==="!")if(a<t.length-1){let d=l.map(h=>this.computePatternLength(h));if(d.every(h=>h!==null)&&d.every(h=>h===d[0])&&d[0]!==null){let h=d[0];if(h===0)n+="(?:.+)";else{let m=[];h>0&&m.push(`.{0,${h-1}}`),m.push(`.{${h+1},}`),m.push(`(?!(?:${u})).{${h}}`),n+=`(?:${m.join("|")})`}}else n+=`(?:(?!(?:${u})).)*?`}else n+=`(?!(?:${u})$).*`;s=a;continue}}if(i==="*")n+=".*";else if(i==="?")n+=".";else if(i==="["){let a=s+1,o="[";a<t.length&&(t[a]==="^"||t[a]==="!")&&(o+="^",a++),a<t.length&&t[a]==="]"&&(o+="\\]",a++);let l=a;for(;l<t.length;){if(t[l]==="\\"&&l+1<t.length){l+=2;continue}if(t[l]==="["&&l+1<t.length&&t[l+1]===":"){let u=t.indexOf(":]",l+2);if(u!==-1){l=u+2;continue}}if(t[l]==="]")break;l++}let c=a;for(;a<t.length&&t[a]!=="]";){if(t[a]==="["&&a+1<t.length&&t[a+1]===":"){let u=t.indexOf(":]",a+2);if(u!==-1){let f=t.slice(a+2,u),d=qs(f);o+=d,a=u+2;continue}}if(t[a]==="\\"&&a+1<t.length){o+=`\\${t[a+1]}`,a+=2;continue}if(t[a]==="-"){let u=a===c,f=a+1===l;u||f?o+="\\-":o+="-"}else o+=t[a];a++}o+="]",n+=o,s=a}else if(i==="\\"&&s+1<t.length){let a=t[s+1];/[.+^${}()|\\*?[\]]/.test(a)?n+=`\\${a}`:n+=a,s++}else/[.+^${}()|]/.test(i)?n+=`\\${i}`:n+=i}return n}computePatternLength(t){let n=0,r=0,s=!1;for(;r<t.length;){if(t.slice(r,r+13)==="\0QUOTE_START\0"){s=!0,r+=13;continue}if(t.slice(r,r+11)==="\0QUOTE_END\0"){s=!1,r+=11;continue}let i=t[r];if(s){n+=1,r++;continue}if((i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&r+1<t.length&&t[r+1]==="("){let a=Us(t,r+1);if(a!==-1){if(i==="@"){let o=t.slice(r+2,a),c=js(o).map(u=>this.computePatternLength(u));if(c.every(u=>u!==null)&&c.every(u=>u===c[0])){n+=c[0],r=a+1;continue}return null}return null}}if(i==="*")return null;if(i==="?"){n+=1,r++;continue}if(i==="["){let a=t.indexOf("]",r+1);if(a!==-1){n+=1,r=a+1;continue}n+=1,r++;continue}if(i==="\\"){n+=1,r+=2;continue}n+=1,r++}return n}};function Gs(e){for(let t=0;t<e.length;t++){if(e[t]==="\\"){t++;continue}if(e[t]==="$"){let n=e[t+1];if(n==="{"||n&&/[a-zA-Z_]/.test(n))return!0}}return!1}function vf(e){if(!e.operation)return!1;let t=e.operation,n;if((t.type==="DefaultValue"||t.type==="AssignDefault"||t.type==="UseAlternative"||t.type==="ErrorIfUnset")&&(n=t.word?.parts),!n)return!1;for(let r of n)if(r.type==="DoubleQuoted"||r.type==="SingleQuoted")return!0;return!1}function Do(e){if(!e.operation)return!1;let t=e.operation,n;if((t.type==="DefaultValue"||t.type==="AssignDefault"||t.type==="UseAlternative"||t.type==="ErrorIfUnset")&&(n=t.word?.parts),!n||n.length===0)return!1;for(let r of n)if(r.type!=="DoubleQuoted"&&r.type!=="SingleQuoted")return!1;return!0}function Tn(e){let t=!1,n=!1,r=!1,s=!1,i=!1,a=!1,o=!1;for(let l of e){if((l.type==="SingleQuoted"||l.type==="DoubleQuoted")&&(t=!0,l.type==="DoubleQuoted"))for(let c of l.parts)c.type==="ParameterExpansion"&&(c.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&(!c.operation||c.operation.type==="PatternRemoval"||c.operation.type==="PatternReplacement")&&(s=!0),(c.operation?.type==="VarNamePrefix"||c.operation?.type==="ArrayKeys")&&(a=!0),c.operation?.type==="Indirection"&&(o=!0));l.type==="CommandSubstitution"&&(n=!0),l.type==="ParameterExpansion"&&(i=!0,(l.parameter==="@"||l.parameter==="*")&&(r=!0),vf(l)&&(t=!0),(l.operation?.type==="VarNamePrefix"||l.operation?.type==="ArrayKeys")&&(a=!0),l.operation?.type==="Indirection"&&(o=!0)),l.type==="Glob"&&Gs(l.pattern)&&(i=!0)}return{hasQuoted:t,hasCommandSub:n,hasArrayVar:r,hasArrayAtExpansion:s,hasParamExpansion:i,hasVarNamePrefixExpansion:a,hasIndirection:o}}var xf=`
65
+ `;function Qt(e,t){if(e>=t)throw new $(`array element limit exceeded (${t})`,"array_elements")}function Zs(e,t,n,r,s){Qt(e.length,s),Qt(t.length,s),e.push(n),t.push(r)}function be(e){return e.get("IFS")??xf}function ke(e){return e.get("IFS")===""}function gr(e){let t=be(e);if(t==="")return!0;for(let n of t)if(n!==" "&&n!==" "&&n!==`
66
+ `)return!1;return!0}function Ro(e){let t=!1,n=[];for(let r of e.split(""))r==="-"?t=!0:/[\\^$.*+?()[\]{}|]/.test(r)?n.push(`\\${r}`):r===" "?n.push("\\t"):r===`
67
+ `?n.push("\\n"):n.push(r);return t&&n.push("\\-"),n.join("")}function U(e){let t=e.get("IFS");return t===void 0?" ":t[0]||""}var $f=`
68
+ `;function kf(e){return $f.includes(e)}function Hs(e){let t=new Set,n=new Set;for(let r of e)kf(r)?t.add(r):n.add(r);return{whitespace:t,nonWhitespace:n}}function Qs(e,t,n,r,s){if(t==="")return e===""?{words:[],wordStarts:[]}:(Qt(0,n),{words:[e],wordStarts:[0]});let{whitespace:i,nonWhitespace:a}=Hs(t),o=[],l=[],c=0;for(;c<e.length&&i.has(e[c]);)c++;if(c>=e.length)return{words:[],wordStarts:[]};if(a.has(e[c]))for(Zs(o,l,"",c,n),c++;c<e.length&&i.has(e[c]);)c++;for(;c<e.length&&!(r!==void 0&&o.length>=r);){let u=c;for(;c<e.length;){let f=e[c];if(!s&&f==="\\"){c++,c<e.length&&c++;continue}if(i.has(f)||a.has(f))break;c++}if(Zs(o,l,e.substring(u,c),u,n),c>=e.length)break;for(;c<e.length&&i.has(e[c]);)c++;if(c<e.length&&a.has(e[c])){for(c++;c<e.length&&i.has(e[c]);)c++;for(;c<e.length&&a.has(e[c])&&!(r!==void 0&&o.length>=r);)for(Zs(o,l,"",c,n),c++;c<e.length&&i.has(e[c]);)c++}}return{words:o,wordStarts:l}}function wr(e,t,n){if(t==="")return e&&Qt(0,n),{words:e?[e]:[],hadLeadingDelimiter:!1,hadTrailingDelimiter:!1};if(e==="")return{words:[],hadLeadingDelimiter:!1,hadTrailingDelimiter:!1};let{whitespace:r,nonWhitespace:s}=Hs(t),i=[],a=0,o=!1,l=!1,c=a;for(;a<e.length&&r.has(e[a]);)a++;if(a>c&&(o=!0),a>=e.length)return{words:[],hadLeadingDelimiter:!0,hadTrailingDelimiter:!0};if(s.has(e[a]))for(Qt(i.length,n),i.push(""),a++;a<e.length&&r.has(e[a]);)a++;for(;a<e.length;){let u=a;for(;a<e.length;){let d=e[a];if(r.has(d)||s.has(d))break;a++}if(Qt(i.length,n),i.push(e.substring(u,a)),a>=e.length){l=!1;break}let f=a;for(;a<e.length&&r.has(e[a]);)a++;if(a<e.length&&s.has(e[a])){for(a++;a<e.length&&r.has(e[a]);)a++;for(;a<e.length&&s.has(e[a]);)for(Qt(i.length,n),i.push(""),a++;a<e.length&&r.has(e[a]);)a++}a>=e.length&&a>f&&(l=!0)}return{words:i,hadLeadingDelimiter:o,hadTrailingDelimiter:l}}function le(e,t,n){return wr(e,t,n).words}function Nf(e,t){for(let n of e)if(t.has(n))return!0;return!1}function Io(e,t,n){if(t==="")return e;let{whitespace:r,nonWhitespace:s}=Hs(t),i=e.length;for(;i>0&&r.has(e[i-1]);){if(!n&&i>=2){let o=0,l=i-2;for(;l>=0&&e[l]==="\\";)o++,l--;if(o%2===1)break}i--}let a=e.substring(0,i);if(a.length>=1&&s.has(a[a.length-1])){if(!n&&a.length>=2){let l=0,c=a.length-2;for(;c>=0&&a[c]==="\\";)l++,c--;if(l%2===1)return a}let o=a.substring(0,a.length-1);if(!Nf(o,s))return o}return a}function ae(e,t){return e.state.namerefs?.has(t)??!1}function wt(e,t){e.state.namerefs??=new Set,e.state.namerefs.add(t)}function _o(e,t){e.state.namerefs?.delete(t),e.state.boundNamerefs?.delete(t),e.state.invalidNamerefs?.delete(t)}function Oo(e,t){e.state.invalidNamerefs??=new Set,e.state.invalidNamerefs.add(t)}function Lo(e,t){return e.state.invalidNamerefs?.has(t)??!1}function Ks(e,t){e.state.boundNamerefs??=new Set,e.state.boundNamerefs.add(t)}function Er(e,t){let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(n){let s=n[1],i=$e(e,s),a=e.state.associativeArrays?.has(s)??!1;return i||a}return $e(e,t)?!0:e.state.env.has(t)}function Re(e,t,n=100){if(!ae(e,t)||Lo(e,t))return t;let r=new Set,s=t;for(;n-- >0;){if(r.has(s))return;if(r.add(s),!ae(e,s))return s;let i=e.state.env.get(s);if(i===void 0||i===""||!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(i))return s;s=i}}function Kt(e,t){if(ae(e,t))return e.state.env.get(t)}function br(e,t,n,r=100){if(!ae(e,t)||Lo(e,t))return t;let s=new Set,i=t;for(;r-- >0;){if(s.has(i))return;if(s.add(i),!ae(e,i))return i;let a=e.state.env.get(i);if(a===void 0||a==="")return n!==void 0?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)&&Er(e,n)?i:null:i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(a))return i;i=a}}function To(e,t){let n=t.replace(/\$\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g,(r,s)=>e.state.env.get(s)??"");return n=n.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(r,s)=>e.state.env.get(s)??""),n}function z(e,t){return t==="FUNCNAME"?(e.state.funcNameStack??[]).map((i,a)=>[a,i]):t==="BASH_LINENO"?(e.state.callLineStack??[]).map((i,a)=>[a,String(i)]):t==="BASH_SOURCE"?(e.state.sourceStack??[]).map((i,a)=>[a,i]):e.state.associativeArrays?.has(t)?ut(e,t).map(i=>[i,se(e,t,i)??""]):Ee(e,t).map(s=>[s,se(e,t,s)??""])}function nt(e,t){return t==="FUNCNAME"?(e.state.funcNameStack?.length??0)>0:t==="BASH_LINENO"?(e.state.callLineStack?.length??0)>0:t==="BASH_SOURCE"?(e.state.sourceStack?.length??0)>0:e.state.associativeArrays?.has(t)?$e(e,t):$e(e,t)}async function re(e,t,n=!0,r=!1){switch(t){case"?":return String(e.state.lastExitCode);case"$":return String(e.state.virtualPid);case"#":return e.state.env.get("#")||"0";case"@":return e.state.env.get("@")||"";case"_":return e.state.lastArg;case"-":{let a="";return a+="h",e.state.options.errexit&&(a+="e"),e.state.options.noglob&&(a+="f"),e.state.options.nounset&&(a+="u"),e.state.options.verbose&&(a+="v"),e.state.options.xtrace&&(a+="x"),a+="B",e.state.options.noclobber&&(a+="C"),a+="s",a}case"*":{let a=Number.parseInt(e.state.env.get("#")||"0",10);if(a===0)return"";let o=[];for(let l=1;l<=a;l++)o.push(e.state.env.get(String(l))||"");return o.join(U(e.state.env))}case"0":return e.state.env.get("0")||"bash";case"PWD":return e.state.env.get("PWD")??"";case"OLDPWD":return e.state.env.get("OLDPWD")??"";case"PPID":return String(e.state.virtualPpid);case"UID":return String(e.state.virtualUid);case"EUID":return String(e.state.virtualUid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-e.state.startTime)/1e3));case"BASH_VERSION":return _a;case"!":return String(e.state.lastBackgroundPid);case"BASHPID":return String(e.state.bashPid);case"LINENO":return String(e.state.currentLine);case"FUNCNAME":{let a=e.state.funcNameStack?.[0];if(a!==void 0)return a;if(n&&e.state.options.nounset)throw new Le("FUNCNAME");return""}case"BASH_LINENO":{let a=e.state.callLineStack?.[0];if(a!==void 0)return String(a);if(n&&e.state.options.nounset)throw new Le("BASH_LINENO");return""}case"BASH_SOURCE":{let a=e.state.sourceStack?.[0];if(a!==void 0)return a;if(n&&e.state.options.nounset)throw new Le("BASH_SOURCE");return""}}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(t))throw new je(`\${${t}}`);let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let a=s[1],o=s[2];if(ae(e,a)){let f=Re(e,a);if(f&&f!==a){if(f.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/))return"";a=f}}if(o==="@"||o==="*"){let f=z(e,a);if(f.length>0)return f.map(([,p])=>p).join(" ");let d=e.state.env.get(a);return d!==void 0?d:""}if(a==="FUNCNAME"){let f=Number.parseInt(o,10);return!Number.isNaN(f)&&f>=0?e.state.funcNameStack?.[f]??"":""}if(a==="BASH_LINENO"){let f=Number.parseInt(o,10);if(!Number.isNaN(f)&&f>=0){let d=e.state.callLineStack?.[f];return d!==void 0?String(d):""}return""}if(a==="BASH_SOURCE"){let f=Number.parseInt(o,10);return!Number.isNaN(f)&&f>=0?e.state.sourceStack?.[f]??"":""}if(e.state.associativeArrays?.has(a)){let f=cr(o);f=To(e,f);let d=se(e,a,f);if(d===void 0&&n&&e.state.options.nounset)throw new Le(`${a}[${o}]`);return d||""}let c;if(/^-?\d+$/.test(o))c=Number.parseInt(o,10);else try{let f=new V,d=ne(f,o);c=await Z(e,d.expression)}catch{let f=e.state.env.get(o);c=f?Number.parseInt(f,10):0,Number.isNaN(c)&&(c=0)}if(c<0){let f=z(e,a),d=e.state.currentLine;if(f.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${d}: ${a}: bad array subscript
69
+ `,"";let h=Math.max(...f.map(([E])=>typeof E=="number"?E:0))+1+c;return h<0?(e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${d}: ${a}: bad array subscript
70
+ `,""):se(e,a,h)||""}let u=se(e,a,c);if(u!==void 0)return u;if(c===0){let f=e.state.env.get(a);if(f!==void 0)return f}if(n&&e.state.options.nounset)throw new Le(`${a}[${c}]`);return""}if(/^[1-9][0-9]*$/.test(t)){let a=e.state.env.get(t);if(a===void 0&&n&&e.state.options.nounset)throw new Le(t);return a||""}if(ae(e,t)){let a=Re(e,t);if(a===void 0)return"";if(a!==t)return await re(e,a,n,r);let o=e.state.env.get(t);if((o===void 0||o==="")&&n&&e.state.options.nounset)throw new Le(t);return o||""}let i=e.state.env.get(t);if(i!==void 0)return e.state.tempEnvBindings?.some(a=>a.has(t))&&(e.state.accessedTempEnvVars=e.state.accessedTempEnvVars||new Set,e.state.accessedTempEnvVars.add(t)),i;if(nt(e,t)){let a=se(e,t,0);if(a!==void 0)return a;if(n&&e.state.options.nounset)throw new Le(t);return""}if(n&&e.state.options.nounset)throw new Le(t);return""}async function dt(e,t){if(new Set(["?","$","#","_","-","0","PPID","UID","EUID","RANDOM","SECONDS","BASH_VERSION","!","BASHPID","LINENO"]).has(t))return!0;if(t==="@"||t==="*")return Number.parseInt(e.state.env.get("#")||"0",10)>0;if(t==="PWD"||t==="OLDPWD")return e.state.env.has(t);let r=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let s=r[1],i=r[2];if(ae(e,s)){let l=Re(e,s);if(l&&l!==s){if(l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/))return!1;s=l}}if(i==="@"||i==="*")return z(e,s).length>0?!0:e.state.env.has(s);if(e.state.associativeArrays?.has(s)){let l=To(e,cr(i));return Nt(e,s,l)}let o;if(/^-?\d+$/.test(i))o=Number.parseInt(i,10);else try{let l=new V,c=ne(l,i);o=await Z(e,c.expression)}catch{let l=e.state.env.get(i);o=l?Number.parseInt(l,10):0,Number.isNaN(o)&&(o=0)}if(o<0){let l=z(e,s);if(l.length===0)return!1;let u=Math.max(...l.map(([f])=>typeof f=="number"?f:0))+1+o;return u<0?!1:Nt(e,s,u)}return Nt(e,s,o)}if(ae(e,t)){let s=Re(e,t);return s===void 0||s===t?e.state.env.has(t):dt(e,s)}return e.state.env.has(t)?!0:nt(e,t)?Nt(e,t,0):!1}async function Mo(e,t){let n="",r=0;for(;r<t.length;){if(t[r]==="$"){if(t[r+1]==="{"){let s=1,i=r+2;for(;i<t.length&&s>0;)t[i]==="{"?s++:t[i]==="}"&&s--,i++;n+=t.slice(r,i),r=i;continue}if(t[r+1]==="("){let s=1,i=r+2;for(;i<t.length&&s>0;)t[i]==="("?s++:t[i]===")"&&s--,i++;n+=t.slice(r,i),r=i;continue}if(/[a-zA-Z_]/.test(t[r+1]||"")){let s=r+1;for(;s<t.length&&/[a-zA-Z0-9_]/.test(t[s]);)s++;let i=t.slice(r+1,s),a=await re(e,i);n+=a,r=s;continue}if(/[0-9]/.test(t[r+1]||"")){let s=r+1;for(;s<t.length&&/[0-9]/.test(t[s]);)s++;let i=t.slice(r+1,s),a=await re(e,i);n+=a,r=s;continue}if(/[*@#?\-!$]/.test(t[r+1]||"")){let s=t[r+1],i=await re(e,s);n+=i,r+=2;continue}}if(t[r]==='"'){for(n+='"',r++;r<t.length&&t[r]!=='"';)if(t[r]==="$"&&/[a-zA-Z_]/.test(t[r+1]||"")){let s=r+1;for(;s<t.length&&/[a-zA-Z0-9_]/.test(t[s]);)s++;let i=t.slice(r+1,s),a=await re(e,i);n+=a,r=s}else t[r]==="\\"?(n+=t[r],r++,r<t.length&&(n+=t[r],r++)):(n+=t[r],r++);r<t.length&&(n+='"',r++);continue}n+=t[r],r++}return n}async function Xs(e,t){let n=t,r=t.startsWith('"')&&t.endsWith('"'),s=t.startsWith("'")&&t.endsWith("'");if((r||s)&&(n=t.slice(1,-1)),s)return n;let i="",a=0;for(;a<n.length;)if(n[a]==="$")if(n[a+1]==="("){let o=1,l=a+2;for(;l<n.length&&o>0;)n[l]==="("&&n[l-1]==="$"||n[l]==="("?o++:n[l]===")"&&o--,l++;let c=n.slice(a+2,l-1);if(e.execFn){let u=await e.execFn(c,{signal:e.state.signal});i+=u.stdout.replace(/\n+$/,""),u.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+u.stderr)}a=l}else if(n[a+1]==="{"){let o=1,l=a+2;for(;l<n.length&&o>0;)n[l]==="{"?o++:n[l]==="}"&&o--,l++;let c=n.slice(a+2,l-1),u=await re(e,c);i+=u,a=l}else if(/[a-zA-Z_]/.test(n[a+1]||"")){let o=a+1;for(;o<n.length&&/[a-zA-Z0-9_]/.test(n[o]);)o++;let l=n.slice(a+1,o),c=await re(e,l);i+=c,a=o}else i+=n[a],a++;else if(n[a]==="`"){let o=a+1;for(;o<n.length&&n[o]!=="`";)o++;let l=n.slice(a+1,o);if(e.execFn){let c=await e.execFn(l,{signal:e.state.signal});i+=c.stdout.replace(/\n+$/,""),c.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+c.stderr)}a=o+1}else i+=n[a],a++;return i}var Mn=1e4,Ys={maxResults:Mn,maxStringBytes:10*1024*1024};function Sr(e,t,n,r){if(e.length>=n.maxResults)return!1;let s=T(t);if(s>n.maxStringBytes-r.value)throw new $(`brace expansion string limit exceeded (${n.maxStringBytes} bytes)`,"string_length");return e.push(t),r.value+=s,!0}function Pf(e,t,n,r,s,i=Ys){let a=n??1;a===0&&(a=1);let o=Math.abs(a),l=[],c=0;if(r?.match(/^-?0\d/)&&(c=Math.max(c,r.replace(/^-/,"").length)),s?.match(/^-?0\d/)&&(c=Math.max(c,s.replace(/^-/,"").length)),c>i.maxStringBytes)throw new $(`brace expansion padding limit exceeded (${i.maxStringBytes} bytes)`,"string_length");let u={value:0},f=d=>{if(c>0){let p=d<0,h=String(Math.abs(d)).padStart(c,"0");return p?`-${h}`:h}return String(d)};if(e<=t)for(let d=e,p=0;d<=t&&p<Mn&&Sr(l,f(d),i,u);d+=o,p++);else for(let d=e,p=0;d>=t&&p<Mn&&Sr(l,f(d),i,u);d-=o,p++);return l}function Cf(e,t,n,r=Ys){let s=n??1;s===0&&(s=1);let i=e.charCodeAt(0),a=t.charCodeAt(0),o=Math.abs(s),l=e>="A"&&e<="Z",c=e>="a"&&e<="z",u=t>="A"&&t<="Z",f=t>="a"&&t<="z";if(l&&f||c&&u){let h=n!==void 0?`..${n}`:"";throw new rr(`{${e}..${t}${h}}: invalid sequence`)}let d=[],p={value:0};if(i<=a)for(let h=i,m=0;h<=a&&m<Mn&&Sr(d,String.fromCharCode(h),r,p);h+=o,m++);else for(let h=i,m=0;h>=a&&m<Mn&&Sr(d,String.fromCharCode(h),r,p);h-=o,m++);return d}function Js(e,t,n,r,s,i=Ys){let a=n!==void 0?`..${n}`:"";return typeof e=="number"&&typeof t=="number"?{expanded:Pf(e,t,n,r,s,i),literal:`{${e}..${t}${a}}`}:typeof e=="string"&&typeof t=="string"?{expanded:Cf(e,t,n,i),literal:`{${e}..${t}${a}}`}:{expanded:null,literal:`{${e}..${t}${a}}`}}function Bo(e){if(e.statements.length!==1)return null;let t=e.statements[0];if(t.operators.length!==0||t.pipelines.length!==1)return null;let n=t.pipelines[0];if(n.negated||n.commands.length!==1)return null;let r=n.commands[0];if(r.type!=="SimpleCommand")return null;let s=r;if(s.name!==null||s.args.length!==0||s.assignments.length!==0||s.redirections.length!==1)return null;let i=s.redirections[0];return i.operator!=="<"||i.target.type!=="Word"?null:{target:i.target}}function pt(e,t){return!!(/[*?[]/.test(e)||t&&/[@*+?!]\(/.test(e))}function ei(e){let t="",n=0;for(;n<e.length;)e[n]==="\\"&&n+1<e.length?(t+=e[n+1],n+=2):(t+=e[n],n++);return t}function Ze(e){return e.replace(/([*?[\]\\()|])/g,"\\$1")}function Bn(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}function ee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Q(e,t,n=!1){let r="",s=0;for(;s<e.length;){let i=e[s];if(n&&(i==="@"||i==="*"||i==="+"||i==="?"||i==="!")&&s+1<e.length&&e[s+1]==="("){let a=Df(e,s+1);if(a!==-1){let o=e.slice(s+2,a),c=Rf(o).map(f=>Q(f,t,n)),u=c.length>0?c.join("|"):"(?:)";i==="@"?r+=`(?:${u})`:i==="*"?r+=`(?:${u})*`:i==="+"?r+=`(?:${u})+`:i==="?"?r+=`(?:${u})?`:i==="!"&&(r+=`(?!(?:${u})$).*`),s=a+1;continue}}if(i==="\\")if(s+1<e.length){let a=e[s+1];/[\\^$.|+(){}[\]*?]/.test(a)?r+=`\\${a}`:r+=a,s+=2}else r+="\\\\",s++;else if(i==="*")r+=t?".*":".*?",s++;else if(i==="?")r+=".",s++;else if(i==="["){let a=If(e,s);if(a===-1)r+="\\[",s++;else{let o=e.slice(s+1,a);r+=_f(o),s=a+1}}else/[\^$.|+(){}]/.test(i)?(r+=`\\${i}`,s++):(r+=i,s++)}return r}function Df(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;){let s=e[r];if(s==="\\"){r+=2;continue}if(s==="(")n++;else if(s===")"&&(n--,n===0))return r;r++}return-1}function Rf(e){let t=[],n="",r=0,s=0;for(;s<e.length;){let i=e[s];if(i==="\\"){n+=i,s+1<e.length?(n+=e[s+1],s+=2):s++;continue}i==="("?(r++,n+=i):i===")"?(r--,n+=i):i==="|"&&r===0?(t.push(n),n=""):n+=i,s++}return t.push(n),t}function If(e,t){let n=t+1;for(n<e.length&&e[n]==="^"&&n++,n<e.length&&e[n]==="]"&&n++;n<e.length;){if(e[n]==="\\"&&n+1<e.length){n+=2;continue}if(e[n]==="]")return n;if(e[n]==="'"){let r=e.indexOf("'",n+1);if(r!==-1){n=r+1;continue}}if(e[n]==="["&&n+1<e.length&&e[n+1]===":"){let r=e.indexOf(":]",n+2);if(r!==-1){n=r+2;continue}}n++}return-1}function _f(e){let t="[",n=0;for((e[0]==="^"||e[0]==="!")&&(t+="^",n++);n<e.length;){if(e[n]==="'"){let s=e.indexOf("'",n+1);if(s!==-1){let i=e.slice(n+1,s);for(let a of i)a==="\\"?t+="\\\\":a==="]"?t+="\\]":a==="^"&&t==="["?t+="\\^":t+=a;n=s+1;continue}}if(e[n]==="["&&n+1<e.length&&e[n+1]===":"){let s=e.indexOf(":]",n+2);if(s!==-1){let i=e.slice(n+2,s);t+=Lf(i),n=s+2;continue}}let r=e[n];r==="\\"?n+1<e.length?(t+=`\\${e[n+1]}`,n+=2):(t+="\\\\",n++):r==="-"&&n>0&&n<e.length-1?(t+="-",n++):r==="^"&&n===0?(t+="^",n++):(r==="]"&&n===0?t+="\\]":t+=r,n++)}return t+="]",t}var Of=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]);function Lf(e){return Of.get(e)??""}function rt(e,t,n,r,s){if(r==="prefix")return e.executionScope.consumeLimited("pattern-removal",Math.max(1,t.length),e.limits.maxGlobOperations,"pattern removal"),he(`^${n}`,"s").replace(t,"");let i=he(`${n}$`,"s");if(s)return e.executionScope.consumeLimited("pattern-removal",Math.max(1,t.length),e.limits.maxGlobOperations,"pattern removal"),i.replace(t,"");e.executionScope.consumeLimited("pattern-removal",Math.max(1,t.length),e.limits.maxGlobOperations,"pattern removal");let a=he(`^(?:.*)(${n})$`,"s").exec(t);if(!a)return t;let o=a[1]??"";return t.slice(0,t.length-o.length)}function hn(e,t){let n=new Set;for(let r of e.state.env.keys())r.startsWith(t)&&n.add(r);for(let r of e.state.arrays?.keys()??[])r.startsWith(t)&&n.add(r);return[...n].sort()}function Ar(e,t,n,r,s){let i=new tn(e.limits.maxStringLength,"pattern replacement",()=>new $(`pattern replacement: string length limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length"));n.lastIndex=0;let a=0,o=n.exec(t);for(;o!==null&&(e.executionScope.consumeLimited("pattern_operations",1,e.limits.maxGlobOperations,"pattern replacement"),!(s&&o[0].length===0&&o.index===t.length||(i.append(t.slice(a,o.index)),i.append(r),a=o.index+o[0].length,!s)));)o[0].length===0&&(a++,n.lastIndex<=o.index&&(n.lastIndex=o.index+1)),o=n.exec(t);return i.append(t.slice(a)),n.lastIndex=0,i.build()}function Wo(e){let t=[],n=0;return{append(r){let s=T(r);if(s>e-n)throw new $(`prompt expansion exceeds string length limit (${e} bytes)`,"string_length");r&&t.push(r),n+=s},build:()=>t.join("")}}function Tf(e,t,n){let r=(a,o=2)=>String(a).padStart(o,"0");if(e===""){let a=r(t.getHours()),o=r(t.getMinutes()),l=r(t.getSeconds());return`${a}:${o}:${l}`}let s=Wo(n),i=0;for(;i<e.length;)if(e[i]==="%"){if(i+1>=e.length){s.append("%"),i++;continue}let a=e[i+1];switch(a){case"H":s.append(r(t.getHours()));break;case"M":s.append(r(t.getMinutes()));break;case"S":s.append(r(t.getSeconds()));break;case"d":s.append(r(t.getDate()));break;case"m":s.append(r(t.getMonth()+1));break;case"Y":s.append(String(t.getFullYear()));break;case"y":s.append(r(t.getFullYear()%100));break;case"I":{let o=t.getHours()%12;o===0&&(o=12),s.append(r(o));break}case"p":s.append(t.getHours()<12?"AM":"PM");break;case"P":s.append(t.getHours()<12?"am":"pm");break;case"%":s.append("%");break;case"a":{let o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];s.append(o[t.getDay()]);break}case"b":{let o=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];s.append(o[t.getMonth()]);break}default:s.append(`%${a}`)}i+=2}else s.append(e[i]),i++;return s.build()}function Wn(e,t){let n=Wo(e.limits.maxStringLength),r=0,s=e.state.env.get("USER")||e.state.env.get("LOGNAME")||"user",i=e.state.env.get("HOSTNAME")||"localhost",a=i.split(".")[0],o=e.state.env.get("PWD")||"/",l=e.state.env.get("HOME")||"/",c=o.startsWith(l)?`~${o.slice(l.length)}`:o,u=o.split("/").pop()||o,f=new Date,d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],p=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],h=e.state.env.get("__COMMAND_NUMBER")||"1";for(;r<t.length;){let m=t[r];if(m==="\\"){if(r+1>=t.length){n.append("\\"),r++;continue}let E=t[r+1];if(E>="0"&&E<="7"){let b="",g=r+1;for(;g<t.length&&g<r+4&&t[g]>="0"&&t[g]<="7";)b+=t[g],g++;let w=Number.parseInt(b,8)%256;n.append(String.fromCharCode(w)),r=g;continue}switch(E){case"\\":n.append("\\"),r+=2;break;case"a":n.append("\x07"),r+=2;break;case"e":n.append("\x1B"),r+=2;break;case"n":n.append(`
71
+ `),r+=2;break;case"r":n.append("\r"),r+=2;break;case"$":n.append("$"),r+=2;break;case"[":case"]":r+=2;break;case"u":n.append(s),r+=2;break;case"h":n.append(a),r+=2;break;case"H":n.append(i),r+=2;break;case"w":n.append(c),r+=2;break;case"W":n.append(u),r+=2;break;case"d":{let b=String(f.getDate()).padStart(2," ");n.append(`${d[f.getDay()]} ${p[f.getMonth()]} ${b}`),r+=2;break}case"t":{let b=String(f.getHours()).padStart(2,"0"),g=String(f.getMinutes()).padStart(2,"0"),w=String(f.getSeconds()).padStart(2,"0");n.append(`${b}:${g}:${w}`),r+=2;break}case"T":{let b=f.getHours()%12;b===0&&(b=12);let g=String(b).padStart(2,"0"),w=String(f.getMinutes()).padStart(2,"0"),S=String(f.getSeconds()).padStart(2,"0");n.append(`${g}:${w}:${S}`),r+=2;break}case"@":{let b=f.getHours()%12;b===0&&(b=12);let g=String(b).padStart(2,"0"),w=String(f.getMinutes()).padStart(2,"0"),S=f.getHours()<12?"AM":"PM";n.append(`${g}:${w} ${S}`),r+=2;break}case"A":{let b=String(f.getHours()).padStart(2,"0"),g=String(f.getMinutes()).padStart(2,"0");n.append(`${b}:${g}`),r+=2;break}case"D":if(r+2<t.length&&t[r+2]==="{"){let b=t.indexOf("}",r+3);if(b!==-1){let g=t.slice(r+3,b);n.append(Tf(g,f,e.limits.maxStringLength)),r=b+1}else n.append("\\D"),r+=2}else n.append("\\D"),r+=2;break;case"s":n.append("bash"),r+=2;break;case"v":n.append("5.0"),r+=2;break;case"V":n.append("5.0.0"),r+=2;break;case"j":n.append("0"),r+=2;break;case"l":n.append("tty"),r+=2;break;case"#":n.append(h),r+=2;break;case"!":n.append(h),r+=2;break;case"x":n.append("\\x"),r+=2;break;default:n.append(`\\${E}`),r+=2}}else n.append(m),r++}return n.build()}function Rt(e){if(e==="")return"''";if(/[\n\r\t\x00-\x1f\x7f']/.test(e)){let n="$'";for(let r of e)switch(r){case"'":n+="\\'";break;case"\\":n+="\\\\";break;case`
72
+ `:n+="\\n";break;case"\r":n+="\\r";break;case" ":n+="\\t";break;default:{let s=r.charCodeAt(0);s<32||s===127?n+=`\\${s.toString(8).padStart(3,"0")}`:n+=r}}return`${n}'`}return`'${e}'`}function Fe(e,t){e.state.readonlyVars=e.state.readonlyVars||new Set,e.state.readonlyVars.add(t)}function Ie(e,t){return e.state.readonlyVars?.has(t)??!1}function oe(e,t,n="bash"){if(Ie(e,t)){let r=`${n}: ${t}: readonly variable
73
+ `;throw new j(1,"",r)}return null}function st(e,t){let n=e.state.exportedVars?.has(t)??!1;if(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(t),e.state.localScopes.length>0&&e.state.localScopes[e.state.localScopes.length-1].has(t)&&!n){for(e.state.localExportedVars||(e.state.localExportedVars=[]);e.state.localExportedVars.length<e.state.localScopes.length;)e.state.localExportedVars.push(new Set);e.state.localExportedVars[e.state.localExportedVars.length-1].add(t)}}function vr(e,t){e.state.exportedVars?.delete(t)}function It(e,t){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t))return"";let n="",r=Se(e,t)?.kind==="indexed",s=e.state.associativeArrays?.has(t)??!1;return r&&!s&&(n+="a"),s&&(n+="A"),e.state.integerVars?.has(t)&&(n+="i"),ae(e,t)&&(n+="n"),Ie(e,t)&&(n+="r"),e.state.exportedVars?.has(t)&&(n+="x"),n}async function Fo(e,t,n,r){return e.coverage?.hit("bash:expansion:default_value"),(n.isUnset||t.checkEmpty&&n.isEmpty)&&t.word?r(e,t.word.parts,n.inDoubleQuotes):n.effectiveValue}async function Vo(e,t,n,r,s){if(e.coverage?.hit("bash:expansion:assign_default"),(r.isUnset||n.checkEmpty&&r.isEmpty)&&n.word){let a=await s(e,n.word.parts,r.inDoubleQuotes),o=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let[,l,c]=o,u;if(/^\d+$/.test(c))u=Number.parseInt(c,10);else{try{let f=new V,d=ne(f,c);u=await Z(e,d.expression)}catch{let f=e.state.env.get(c);u=f?Number.parseInt(f,10):0}Number.isNaN(u)&&(u=0)}F(e,l,u,a)}else e.state.env.set(t,a);return a}return r.effectiveValue}async function zo(e,t,n,r,s){if(e.coverage?.hit("bash:expansion:error_if_unset"),r.isUnset||n.checkEmpty&&r.isEmpty){let a=n.word?await s(e,n.word.parts,r.inDoubleQuotes):`${t}: parameter null or not set`;throw new j(1,"",`bash: ${a}
74
+ `)}return r.effectiveValue}async function qo(e,t,n,r){return e.coverage?.hit("bash:expansion:use_alternative"),!(n.isUnset||t.checkEmpty&&n.isEmpty)&&t.word?r(e,t.word.parts,n.inDoubleQuotes):""}async function Uo(e,t,n,r,s){e.coverage?.hit("bash:expansion:pattern_removal");let i="",a=e.state.shoptOptions.extglob;if(n.pattern)for(let o of n.pattern.parts)if(o.type==="Glob")i+=Q(o.pattern,n.greedy,a);else if(o.type==="Literal")i+=Q(o.value,n.greedy,a);else if(o.type==="SingleQuoted"||o.type==="Escaped")i+=ee(o.value);else if(o.type==="DoubleQuoted"){let l=await r(e,o.parts);i+=ee(l)}else if(o.type==="ParameterExpansion"){let l=await s(e,o);i+=Q(l,n.greedy,a)}else{let l=await s(e,o);i+=ee(l)}return rt(e,t,i,n.side,n.greedy)}async function jo(e,t,n,r,s){e.coverage?.hit("bash:expansion:pattern_replacement");let i="",a=e.state.shoptOptions.extglob;if(n.pattern)for(let c of n.pattern.parts)if(c.type==="Glob")i+=Q(c.pattern,!0,a);else if(c.type==="Literal")i+=Q(c.value,!0,a);else if(c.type==="SingleQuoted"||c.type==="Escaped")i+=ee(c.value);else if(c.type==="DoubleQuoted"){let u=await r(e,c.parts);i+=ee(u)}else if(c.type==="ParameterExpansion"){let u=await s(e,c);i+=Q(u,!0,a)}else{let u=await s(e,c);i+=ee(u)}let o=n.replacement?await r(e,n.replacement.parts):"";if(n.anchor==="start"?i=`^${i}`:n.anchor==="end"&&(i=`${i}$`),i==="")return t;let l=n.all?"gs":"s";try{let c=he(i,l);return Ar(e,t,c,o,n.all)}catch(c){if(c instanceof $)throw c;return t}}function Go(e,t,n){e.coverage?.hit("bash:expansion:length");let r=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(r){let s=r[1],i=z(e,s);return i.length>0?String(i.length):e.state.env.get(s)!==void 0?"1":"0"}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)&&nt(e,t)){if(t==="FUNCNAME"){let i=e.state.funcNameStack?.[0]||"";return String([...i].length)}if(t==="BASH_LINENO"){let i=e.state.callLineStack?.[0];return String(i!==void 0?[...String(i)].length:0)}let s=se(e,t,0)||"";return String([...s].length)}return String([...n].length)}async function Zo(e,t,n,r){e.coverage?.hit("bash:expansion:substring");let s=await Z(e,r.offset.expression),i=r.length?await Z(e,r.length.expression):void 0;if(t==="@"||t==="*"){let c=Number.parseInt(e.state.env.get("#")||"0",10),u=[];for(let h=1;h<=c;h++)u.push(e.state.env.get(String(h))||"");let f=e.state.env.get("0")||"bash",d,p;if(s<=0)if(d=[f,...u],s<0){if(p=d.length+s,p<0)return""}else p=0;else d=u,p=s-1;if(p<0||p>=d.length)return"";if(i!==void 0){let h=i<0?d.length+i:p+i;return d.slice(p,Math.max(p,h)).join(" ")}return d.slice(p).join(" ")}let a=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(a){let c=a[1];if(e.state.associativeArrays?.has(c))throw new j(1,"",`bash: \${${c}[@]: 0: 3}: bad substitution
75
+ `);let u=z(e,c),f=0;if(s<0){if(u.length>0){let d=u[u.length-1][0],h=(typeof d=="number"?d:0)+1+s;if(h<0||(f=u.findIndex(([m])=>typeof m=="number"&&m>=h),f<0))return""}}else if(f=u.findIndex(([d])=>typeof d=="number"&&d>=s),f<0)return"";if(i!==void 0){if(i<0)throw new ie(`${a[1]}[@]: substring expression < 0`);return u.slice(f,f+i).map(([,d])=>d).join(" ")}return u.slice(f).map(([,d])=>d).join(" ")}let o=[...n],l=s;if(l<0&&(l=Math.max(0,o.length+l)),i!==void 0){if(i<0){let c=o.length+i;return o.slice(l,Math.max(l,c)).join("")}return o.slice(l,l+i).join("")}return o.slice(l).join("")}async function Ho(e,t,n,r,s){if(e.coverage?.hit("bash:expansion:case_modification"),n.pattern){let i=e.state.shoptOptions.extglob,a="";for(let f of n.pattern.parts)if(f.type==="Glob")a+=Q(f.pattern,!0,i);else if(f.type==="Literal")a+=Q(f.value,!0,i);else if(f.type==="SingleQuoted"||f.type==="Escaped")a+=ee(f.value);else if(f.type==="DoubleQuoted"){let d=await r(e,f.parts);a+=ee(d)}else if(f.type==="ParameterExpansion"){let d=await s(e,f);a+=Q(d,!0,i)}let o=he(`^(?:${a})$`),l=n.direction==="upper"?f=>f.toUpperCase():f=>f.toLowerCase(),c="",u=!1;for(let f of t)!n.all&&u?c+=f:o.test(f)?(c+=l(f),u=!0):c+=f;return c}return n.direction==="upper"?n.all?t.toUpperCase():t.charAt(0).toUpperCase()+t.slice(1):n.all?t.toLowerCase():t.charAt(0).toLowerCase()+t.slice(1)}function Qo(e,t,n,r,s){e.coverage?.hit("bash:expansion:transform");let i=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(i&&s.operator==="Q")return z(e,i[1]).map(([,c])=>Rt(c)).join(" ");if(i&&s.operator==="a")return It(e,i[1]);let a=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[.+\]$/);if(a&&s.operator==="a")return It(e,a[1]);switch(s.operator){case"Q":return r?"":Rt(n);case"P":return Wn(e,n);case"a":return It(e,t);case"A":return r?"":`${t}=${Rt(n)}`;case"E":return n.replace(/\\([\\abefnrtv'"?])/g,(o,l)=>{switch(l){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
76
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return l}});case"K":case"k":return r?"":Rt(n);case"u":return n.charAt(0).toUpperCase()+n.slice(1);case"U":return n.toUpperCase();case"L":return n.toLowerCase();default:return n}}async function Ko(e,t,n,r,s,i,a=!1){if(e.coverage?.hit("bash:expansion:indirection"),ae(e,t))return Kt(e,t)||"";let o=/^[a-zA-Z_][a-zA-Z0-9_]*\[([@*])\]$/.test(t);if(r){if(s.innerOp?.type==="UseAlternative")return"";throw new je(`\${!${t}}`)}let l=n;if(o&&(l===""||l.includes(" ")))throw new je(`\${!${t}}`);let c=l.match(/^[a-zA-Z_][a-zA-Z0-9_]*\[(.+)\]$/);if(c&&c[1].includes("~"))throw new je(`\${!${t}}`);if(s.innerOp){let u={type:"ParameterExpansion",parameter:l,operation:s.innerOp};return i(e,u,a)}return await re(e,l)}function Xo(e,t){e.coverage?.hit("bash:expansion:array_keys");let r=z(e,t.array).map(([s])=>String(s));return t.star?r.join(U(e.state.env)):r.join(" ")}function Yo(e,t){e.coverage?.hit("bash:expansion:var_name_prefix");let n=hn(e,t.prefix);return t.star?n.join(U(e.state.env)):n.join(" ")}function Jo(e,t,n,r){let s=Number.parseInt(e.state.env.get("#")||"0",10),i=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(t==="*")return{isEmpty:s===0,effectiveValue:n};if(t==="@")return{isEmpty:s===0||s===1&&e.state.env.get("1")==="",effectiveValue:n};if(i){let[,a,o]=i,l=z(e,a);if(l.length===0)return{isEmpty:!0,effectiveValue:""};if(o==="*"){let c=U(e.state.env),u=l.map(([,f])=>f).join(c);return{isEmpty:r?u==="":!1,effectiveValue:u}}return{isEmpty:l.length===1&&l.every(([,c])=>c===""),effectiveValue:l.map(([,c])=>c).join(" ")}}return{isEmpty:n==="",effectiveValue:n}}function el(e){let t=0;for(;t<e.length;){let n=e[t];if(n==="\\"&&t+1<e.length){t+=2;continue}if(n==="'"){let r=e.indexOf("'",t+1);if(r!==-1){t=r+1;continue}}if(n==="$"&&t+1<e.length&&e[t+1]==="("||n==="`")return!0;t++}return!1}function tl(e,t){let n=1,r=t,s=!1,i=!1;for(;r<e.length&&n>0;){let a=e[r];if(a==="\\"&&!s&&r+1<e.length){r+=2;continue}if(a==="'"&&!i){s=!s,r++;continue}if(a==='"'&&!s){i=!i,r++;continue}if(!s&&!i){if(a==="(")n++;else if(a===")"&&(n--,n===0))return r}r++}return-1}async function xr(e,t){let n=new V,r;try{r=n.parse(t)}catch{return""}let s=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let i=new Map(e.state.env),a=ct(e.state.arrays),o=e.state.cwd,l=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let c=await e.executeScript(r),u=c.exitCode;return e.state.env=i,e.state.arrays=a,e.state.cwd=o,e.state.suppressVerbose=l,e.state.lastExitCode=u,e.state.env.set("?",String(u)),c.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+c.stderr),e.state.bashPid=s,c.stdout.replace(/\n+$/,"")}catch(c){if(e.state.env=i,e.state.arrays=a,e.state.cwd=o,e.state.bashPid=s,e.state.suppressVerbose=l,c instanceof $)throw c;return c instanceof j?(e.state.lastExitCode=c.exitCode,e.state.env.set("?",String(c.exitCode)),c.stdout?.replace(/\n+$/,"")??""):""}}function ti(e,t){let n="",r=0;for(;r<t.length;){let s=t[r];if(s==="'"){let i=t.indexOf("'",r+1);if(i!==-1){let a=t.slice(r+1,i);n+=Ze(a),r=i+1;continue}}if(s==='"'){let i=-1,a=r+1;for(;a<t.length;){if(t[a]==="\\"){a+=2;continue}if(t[a]==='"'){i=a;break}a++}if(i!==-1){let o=t.slice(r+1,i),l=Mf(e,o);n+=Ze(l),r=i+1;continue}}if(s==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let o=t.slice(r+2,a);n+=e.state.env.get(o)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let o=t.slice(r+1,a);n+=e.state.env.get(o)??"",r=a;continue}}if(s==="\\"&&r+1<t.length){n+=s+t[r+1],r+=2;continue}n+=s,r++}return n}function Mf(e,t){let n="",r=0;for(;r<t.length;){let s=t[r];if(s==="\\"&&r+1<t.length){let i=t[r+1];if(i==="$"||i==="`"||i==="\\"||i==='"'){n+=i,r+=2;continue}n+=s,r++;continue}if(s==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let o=t.slice(r+2,a);n+=e.state.env.get(o)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let o=t.slice(r+1,a);n+=e.state.env.get(o)??"",r=a;continue}}n+=s,r++}return n}async function nl(e,t){let n="",r=0;for(;r<t.length;){let s=t[r];if(s==="'"){let i=t.indexOf("'",r+1);if(i!==-1){let a=t.slice(r+1,i);n+=Ze(a),r=i+1;continue}}if(s==='"'){let i=-1,a=r+1;for(;a<t.length;){if(t[a]==="\\"){a+=2;continue}if(t[a]==='"'){i=a;break}a++}if(i!==-1){let o=t.slice(r+1,i),l=await Bf(e,o);n+=Ze(l),r=i+1;continue}}if(s==="$"&&r+1<t.length&&t[r+1]==="("){let i=tl(t,r+2);if(i!==-1){let a=t.slice(r+2,i),o=await xr(e,a);n+=o,r=i+1;continue}}if(s==="`"){let i=t.indexOf("`",r+1);if(i!==-1){let a=t.slice(r+1,i),o=await xr(e,a);n+=o,r=i+1;continue}}if(s==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let o=t.slice(r+2,a);n+=e.state.env.get(o)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let o=t.slice(r+1,a);n+=e.state.env.get(o)??"",r=a;continue}}if(s==="\\"&&r+1<t.length){n+=s+t[r+1],r+=2;continue}n+=s,r++}return n}async function Bf(e,t){let n="",r=0;for(;r<t.length;){let s=t[r];if(s==="\\"&&r+1<t.length){let i=t[r+1];if(i==="$"||i==="`"||i==="\\"||i==='"'){n+=i,r+=2;continue}n+=s,r++;continue}if(s==="$"&&r+1<t.length&&t[r+1]==="("){let i=tl(t,r+2);if(i!==-1){let a=t.slice(r+2,i),o=await xr(e,a);n+=o,r=i+1;continue}}if(s==="`"){let i=t.indexOf("`",r+1);if(i!==-1){let a=t.slice(r+1,i),o=await xr(e,a);n+=o,r=i+1;continue}}if(s==="$"&&r+1<t.length){let i=t[r+1];if(i==="{"){let a=t.indexOf("}",r+2);if(a!==-1){let o=t.slice(r+2,a);n+=e.state.env.get(o)??"",r=a+1;continue}}else if(/[a-zA-Z_]/.test(i)){let a=r+1;for(;a<t.length&&/[a-zA-Z0-9_]/.test(t[a]);)a++;let o=t.slice(r+1,a);n+=e.state.env.get(o)??"",r=a;continue}}n+=s,r++}return n}function ni(e,t){if(!t.startsWith("~"))return t;e.coverage?.hit("bash:expansion:tilde");let n=e.state.env.get("HOME")!==void 0?e.state.env.get("HOME"):"/home/user";if(t==="~"||t.startsWith("~/"))return n+t.slice(1);let r=1;for(;r<t.length&&/[a-zA-Z0-9_-]/.test(t[r]);)r++;let s=t.slice(1,r),i=t.slice(r);return i!==""&&!i.startsWith("/")?t:s==="root"?`/root${i}`:t}function _t(e,t){return t.split(":").map(n=>ni(e,n)).join(":")}function Ne(e,t,n,r){if(e.length>n-t.length)throw new $(`${r} element limit exceeded (${n})`,"array_elements");for(let s of t)e.push(s)}async function Wf(e,t,n,r){let s="";for(let i of t.parts)if(i.type==="Glob")s+=Q(i.pattern,!0,e.state.shoptOptions.extglob);else if(i.type==="Literal")s+=Q(i.value,!0,e.state.shoptOptions.extglob);else if(i.type==="SingleQuoted"||i.type==="Escaped")s+=ee(i.value);else if(i.type==="DoubleQuoted"){let a=await n(e,i.parts);s+=ee(a)}else if(i.type==="ParameterExpansion"){let a=await r(e,i);s+=Q(a,!0,e.state.shoptOptions.extglob)}else{let a=await r(e,i);s+=ee(a)}return s}async function rl(e,t,n,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion"||s.parts[0].operation?.type!=="PatternReplacement")return null;let i=s.parts[0],a=i.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!a)return null;let o=a[1],l=a[2]==="*",c=i.operation,u=z(e,o),f=u.map(([,E])=>E);if(u.length===0){let E=e.state.env.get(o);E!==void 0&&f.push(E)}if(f.length===0)return{values:[],quoted:!0};let d="";c.pattern&&(d=await Wf(e,c.pattern,n,r));let p=c.replacement?await n(e,c.replacement.parts):"",h=d;c.anchor==="start"?h=`^${d}`:c.anchor==="end"&&(h=`${d}$`);let m=[];try{let E=he(h,c.all?"g":"");for(let b of f)m.push(E.replace(b,p))}catch{m.push(...f)}if(l){let E=U(e.state.env);return{values:[m.join(E)],quoted:!0}}return{values:m,quoted:!0}}async function sl(e,t,n,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0];if(s.parts.length!==1||s.parts[0].type!=="ParameterExpansion"||s.parts[0].operation?.type!=="PatternRemoval")return null;let i=s.parts[0],a=i.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!a)return null;let o=a[1],l=a[2]==="*",c=i.operation,u=z(e,o),f=u.map(([,m])=>m);if(u.length===0){let m=e.state.env.get(o);m!==void 0&&f.push(m)}if(f.length===0)return{values:[],quoted:!0};let d="",p=e.state.shoptOptions.extglob;if(c.pattern)for(let m of c.pattern.parts)if(m.type==="Glob")d+=Q(m.pattern,c.greedy,p);else if(m.type==="Literal")d+=Q(m.value,c.greedy,p);else if(m.type==="SingleQuoted"||m.type==="Escaped")d+=ee(m.value);else if(m.type==="DoubleQuoted"){let E=await n(e,m.parts);d+=ee(E)}else if(m.type==="ParameterExpansion"){let E=await r(e,m);d+=Q(E,c.greedy,p)}else{let E=await r(e,m);d+=ee(E)}let h=[];for(let m of f)h.push(rt(e,m,d,c.side,c.greedy));if(l){let m=U(e.state.env);return{values:[h.join(m)],quoted:!0}}return{values:h,quoted:!0}}async function il(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion"||n.parts[0].operation?.type!=="DefaultValue"&&n.parts[0].operation?.type!=="UseAlternative"&&n.parts[0].operation?.type!=="AssignDefault")return null;let r=n.parts[0],s=r.operation,i=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/),a,o=!1;if(i){let l=i[1];o=i[2]==="*";let c=z(e,l),u=c.length>0||e.state.env.has(l),f=c.length===0||c.length===1&&c.every(([,p])=>p===""),d=s.checkEmpty??!1;if(s.type==="UseAlternative"?a=u&&!(d&&f):a=!u||d&&f,!a){if(c.length>0){let h=c.map(([,m])=>m);if(o){let m=U(e.state.env);return{values:[h.join(m)],quoted:!0}}return{values:h,quoted:!0}}let p=e.state.env.get(l);return p!==void 0?{values:[p],quoted:!0}:{values:[],quoted:!0}}}else{let l=r.parameter,c=await dt(e,l),u=await re(e,l),f=u==="",d=s.checkEmpty??!1;if(s.type==="UseAlternative"?a=c&&!(d&&f):a=!c||d&&f,!a)return{values:[u],quoted:!0}}if(a&&s.word){let l=s.word.parts,c=null,u=!1;for(let f of l)if(f.type==="ParameterExpansion"&&!f.operation){let d=f.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(d){c=d[1],u=d[2]==="*";break}}if(c){let f=z(e,c);if(f.length>0){let p=f.map(([,h])=>h);if(u||o){let h=U(e.state.env);return{values:[p.join(h)],quoted:!0}}return{values:p,quoted:!0}}let d=e.state.env.get(c);return d!==void 0?{values:[d],quoted:!0}:{values:[],quoted:!0}}}return null}async function al(e,t,n,r,s){if(!n||t.length!==1||t[0].type!=="DoubleQuoted")return null;let i=t[0],a=-1,o="",l=!1,c=null;for(let m=0;m<i.parts.length;m++){let E=i.parts[m];if(E.type==="ParameterExpansion"&&(E.operation?.type==="PatternRemoval"||E.operation?.type==="PatternReplacement")){let b=E.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(b){a=m,o=b[1],l=b[2]==="*",c=E.operation;break}}}if(a===-1||a===0&&a===i.parts.length-1)return null;let u="";for(let m=0;m<a;m++)u+=await r(e,i.parts[m]);let f="";for(let m=a+1;m<i.parts.length;m++)f+=await r(e,i.parts[m]);let d=z(e,o),p=d.map(([,m])=>m);if(d.length===0){let m=e.state.env.get(o);if(m!==void 0)p=[m];else{if(l)return{values:[u+f],quoted:!0};let E=u+f;return{values:E?[E]:[],quoted:!0}}}if(c?.type==="PatternRemoval"){let m=c,E="",b=e.state.shoptOptions.extglob;if(m.pattern)for(let g of m.pattern.parts)if(g.type==="Glob")E+=Q(g.pattern,m.greedy,b);else if(g.type==="Literal")E+=Q(g.value,m.greedy,b);else if(g.type==="SingleQuoted"||g.type==="Escaped")E+=ee(g.value);else if(g.type==="DoubleQuoted"){let w=await s(e,g.parts);E+=ee(w)}else if(g.type==="ParameterExpansion"){let w=await r(e,g);E+=Q(w,m.greedy,b)}else{let w=await r(e,g);E+=ee(w)}p=p.map(g=>rt(e,g,E,m.side,m.greedy))}else if(c?.type==="PatternReplacement"){let m=c,E="";if(m.pattern)for(let w of m.pattern.parts)if(w.type==="Glob")E+=Q(w.pattern,!0,e.state.shoptOptions.extglob);else if(w.type==="Literal")E+=Q(w.value,!0,e.state.shoptOptions.extglob);else if(w.type==="SingleQuoted"||w.type==="Escaped")E+=ee(w.value);else if(w.type==="DoubleQuoted"){let S=await s(e,w.parts);E+=ee(S)}else if(w.type==="ParameterExpansion"){let S=await r(e,w);E+=Q(S,!0,e.state.shoptOptions.extglob)}else{let S=await r(e,w);E+=ee(S)}let b=m.replacement?await s(e,m.replacement.parts):"",g=E;m.anchor==="start"?g=`^${E}`:m.anchor==="end"&&(g=`${E}$`);try{let w=he(g,m.all?"g":"");p=p.map(S=>w.replace(S,b))}catch{}}if(l){let m=U(e.state.env);return{values:[u+p.join(m)+f],quoted:!0}}return p.length===1?{values:[u+p[0]+f],quoted:!0}:{values:[u+p[0],...p.slice(1,-1),p[p.length-1]+f],quoted:!0}}async function ol(e,t,n,r){if(!n||t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0],i=-1,a="",o=!1;for(let p=0;p<s.parts.length;p++){let h=s.parts[p];if(h.type==="ParameterExpansion"&&!h.operation){let m=h.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(m){i=p,a=m[1],o=m[2]==="*";break}}}if(i===-1)return null;let l="";for(let p=0;p<i;p++)l+=await r(e,s.parts[p]);let c="";for(let p=i+1;p<s.parts.length;p++)c+=await r(e,s.parts[p]);let u=z(e,a),f=u.map(([,p])=>p);if(u.length===0){let p=e.state.env.get(a);if(p!==void 0)return{values:[l+p+c],quoted:!0};if(o)return{values:[l+c],quoted:!0};let h=l+c;return{values:h?[h]:[],quoted:!0}}if(o){let p=U(e.state.env);return{values:[l+f.join(p)+c],quoted:!0}}return f.length===1?{values:[l+f[0]+c],quoted:!0}:{values:[l+f[0],...f.slice(1,-1),f[f.length-1]+c],quoted:!0}}async function ll(e,t,n){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let r=t[0];if(r.parts.length!==1||r.parts[0].type!=="ParameterExpansion"||r.parts[0].operation?.type!=="Substring")return null;let s=r.parts[0],i=s.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!i)return null;let a=i[1],o=i[2]==="*",l=s.operation;if(e.state.associativeArrays?.has(a))throw new j(1,"",`bash: \${${a}[@]: 0: 3}: bad substitution
77
+ `);let c=l.offset?await n(e,l.offset.expression):0,u=l.length?await n(e,l.length.expression):void 0,f=z(e,a);if(f.length>e.limits.maxArrayElements)throw new $(`array transform element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let d=0;if(c<0){if(f.length>0){let h=f[f.length-1][0],E=(typeof h=="number"?h:0)+1+c;if(E<0)return{values:[],quoted:!0};d=f.findIndex(([b])=>typeof b=="number"&&b>=E),d<0&&(d=f.length)}}else d=f.findIndex(([h])=>typeof h=="number"&&h>=c),d<0&&(d=f.length);let p;if(u!==void 0){if(u<0)throw new ie(`${a}[@]: substring expression < 0`);p=f.slice(d,d+u).map(([,h])=>h)}else p=f.slice(d).map(([,h])=>h);if(p.length===0)return{values:[],quoted:!0};if(o){let h=U(e.state.env);return{values:[p.join(h)],quoted:!0}}return{values:p,quoted:!0}}function cl(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion"||n.parts[0].operation?.type!=="Transform")return null;let r=n.parts[0],s=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!s)return null;let i=s[1],a=s[2]==="*",o=r.operation,l=z(e,i);if(l.length===0){let d=e.state.env.get(i);if(d!==void 0){let p;switch(o.operator){case"a":p="";break;case"P":p=Wn(e,d);break;case"Q":p=Rt(d);break;default:p=d}if(T(p)>e.limits.maxStringLength)throw new $(`array transform string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return{values:[p],quoted:!0}}return a?{values:[""],quoted:!0}:{values:[],quoted:!0}}let c=It(e,i),u=[],f=0;for(let[,d]of l){let p;switch(o.operator){case"a":p=c;break;case"P":p=Wn(e,d);break;case"Q":p=Rt(d);break;case"u":p=d.charAt(0).toUpperCase()+d.slice(1);break;case"U":p=d.toUpperCase();break;case"L":p=d.toLowerCase();break;default:p=d}let h=T(p);if(h>e.limits.maxStringLength-f)throw new $(`array transform string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");u.push(p),f+=h}if(a){let d=U(e.state.env);if(Math.max(0,u.length-1)*T(d)>e.limits.maxStringLength-f)throw new $(`array transform string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return{values:[u.join(d)],quoted:!0}}return{values:u,quoted:!0}}function ul(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion")return null;let r=n.parts[0];if(r.operation)return null;let s=r.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(@)\]$/);if(!s)return null;let i=s[1];if(ae(e,i)){let l=Kt(e,i);if(l?.endsWith("[@]")||l?.endsWith("[*]"))return{values:[],quoted:!0}}let a=z(e,i);if(a.length>0)return{values:a.map(([,l])=>l),quoted:!0};let o=e.state.env.get(i);return o!==void 0?{values:[o],quoted:!0}:{values:[],quoted:!0}}function fl(e,t){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let n=t[0];if(n.parts.length!==1||n.parts[0].type!=="ParameterExpansion"||n.parts[0].operation)return null;let s=n.parts[0].parameter;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)||!ae(e,s))return null;let i=Kt(e,s);if(!i)return null;let a=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(@)\]$/);if(!a)return null;let o=a[1],l=z(e,o);if(l.length>0)return{values:l.map(([,u])=>u),quoted:!0};let c=e.state.env.get(o);return c!==void 0?{values:[c],quoted:!0}:{values:[],quoted:!0}}async function dl(e,t,n,r,s){if(!n||t.length!==1||t[0].type!=="DoubleQuoted")return null;let i=t[0];if(i.parts.length!==1||i.parts[0].type!=="ParameterExpansion"||i.parts[0].operation?.type!=="Indirection")return null;let a=i.parts[0],o=a.operation,l=await re(e,a.parameter),c=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!c){if(!o.innerOp&&(l==="@"||l==="*")){let h=Number.parseInt(e.state.env.get("#")||"0",10),m=[];for(let E=1;E<=h;E++)m.push(e.state.env.get(String(E))||"");return l==="*"?{values:[m.join(U(e.state.env))],quoted:!0}:{values:m,quoted:!0}}return null}let u=c[1],f=c[2]==="*",d=z(e,u);if(o.innerOp){if(o.innerOp.type==="Substring")return Ff(e,d,u,f,o.innerOp);if(o.innerOp.type==="DefaultValue"||o.innerOp.type==="UseAlternative"||o.innerOp.type==="AssignDefault"||o.innerOp.type==="ErrorIfUnset")return Vf(e,d,u,f,o.innerOp,s);if(o.innerOp.type==="Transform"&&o.innerOp.operator==="a"){let m=It(e,u),E=d.map(()=>m);return f?{values:[E.join(U(e.state.env))],quoted:!0}:{values:E,quoted:!0}}let h=[];for(let[,m]of d){let E={type:"ParameterExpansion",parameter:"_indirect_elem_",operation:o.innerOp},b=e.state.env.get("_indirect_elem_");e.state.env.set("_indirect_elem_",m);try{let g=await r(e,E,!0);h.push(g)}finally{b!==void 0?e.state.env.set("_indirect_elem_",b):e.state.env.delete("_indirect_elem_")}}return f?{values:[h.join(U(e.state.env))],quoted:!0}:{values:h,quoted:!0}}if(d.length>0){let h=d.map(([,m])=>m);return f?{values:[h.join(U(e.state.env))],quoted:!0}:{values:h,quoted:!0}}let p=e.state.env.get(u);return p!==void 0?{values:[p],quoted:!0}:{values:[],quoted:!0}}async function Ff(e,t,n,r,s){let i=s.offset?await Z(e,s.offset.expression):0,a=s.length?await Z(e,s.length.expression):void 0,o=0;if(i<0){if(t.length>0){let u=t[t.length-1][0],d=(typeof u=="number"?u:0)+1+i;if(d<0)return{values:[],quoted:!0};if(o=t.findIndex(([p])=>typeof p=="number"&&p>=d),o<0)return{values:[],quoted:!0}}}else if(o=t.findIndex(([u])=>typeof u=="number"&&u>=i),o<0)return{values:[],quoted:!0};let l;if(a!==void 0){if(a<0)throw new ie(`${n}[@]: substring expression < 0`);l=t.slice(o,o+a)}else l=t.slice(o);let c=l.map(([,u])=>u);return r?{values:[c.join(U(e.state.env))],quoted:!0}:{values:c,quoted:!0}}async function Vf(e,t,n,r,s,i){let a=s.checkEmpty??!1,o=t.map(([,u])=>u),l=t.length===0,c=t.length===0;if(s.type==="UseAlternative")return!c&&!(a&&l)&&s.word?{values:[await i(e,s.word.parts,!0)],quoted:!0}:{values:[],quoted:!0};if(s.type==="DefaultValue")return(c||a&&l)&&s.word?{values:[await i(e,s.word.parts,!0)],quoted:!0}:r?{values:[o.join(U(e.state.env))],quoted:!0}:{values:o,quoted:!0};if(s.type==="AssignDefault"){if((c||a&&l)&&s.word){let f=await i(e,s.word.parts,!0);return F(e,n,0,f),{values:[f],quoted:!0}}return r?{values:[o.join(U(e.state.env))],quoted:!0}:{values:o,quoted:!0}}return r?{values:[o.join(U(e.state.env))],quoted:!0}:{values:o,quoted:!0}}async function pl(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="UseAlternative"&&t[0].operation?.type!=="DefaultValue")return null;let n=t[0],r=n.operation,s=r?.word;if(!s||s.parts.length!==1||s.parts[0].type!=="DoubleQuoted")return null;let i=s.parts[0];if(i.parts.length!==1||i.parts[0].type!=="ParameterExpansion"||i.parts[0].operation?.type!=="Indirection")return null;let a=i.parts[0],l=(await re(e,a.parameter)).match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!l)return null;let c=await dt(e,n.parameter),u=await re(e,n.parameter)==="",f=r.checkEmpty??!1,d;if(r.type==="UseAlternative"?d=c&&!(f&&u):d=!c||f&&u,d){let p=l[1],h=l[2]==="*",m=z(e,p);if(m.length>0){let b=m.map(([,g])=>g);return h?{values:[b.join(U(e.state.env))],quoted:!0}:{values:b,quoted:!0}}let E=e.state.env.get(p);return E!==void 0?{values:[E],quoted:!0}:{values:[],quoted:!0}}return{values:[],quoted:!1}}async function hl(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="Indirection")return null;let n=t[0],s=n.operation.innerOp;if(!s||s.type!=="UseAlternative"&&s.type!=="DefaultValue")return null;let i=s.word;if(!i||i.parts.length!==1||i.parts[0].type!=="DoubleQuoted")return null;let a=i.parts[0];if(a.parts.length!==1||a.parts[0].type!=="ParameterExpansion"||a.parts[0].operation?.type!=="Indirection")return null;let o=a.parts[0],c=(await re(e,o.parameter)).match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!c)return null;let u=await re(e,n.parameter),f=await dt(e,n.parameter),d=u==="",p=s.checkEmpty??!1,h;if(s.type==="UseAlternative"?h=f&&!(p&&d):h=!f||p&&d,h){let m=c[1],E=c[2]==="*",b=z(e,m);if(b.length>0){let w=b.map(([,S])=>S);return E?{values:[w.join(U(e.state.env))],quoted:!0}:{values:w,quoted:!0}}let g=e.state.env.get(m);return g!==void 0?{values:[g],quoted:!0}:{values:[],quoted:!0}}return{values:[],quoted:!1}}function ml(e){let t=Number.parseInt(e.state.env.get("#")||"0",10);if(t>e.limits.maxArrayElements)throw new $(`positional parameter element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let n=[],r=0;for(let s=1;s<=t;s++){let i=e.state.env.get(String(s))||"",a=T(i);if(a>e.limits.maxStringLength-r)throw new $(`positional parameter string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");n.push(i),r+=a}return n}function $r(e,t,n){if(T(t)>n-T(e))throw new $(`positional expansion string limit exceeded (${n} bytes)`,"string_length");return e+t}function ri(e,t,n,r){if(e.length>=r.limits.maxArrayElements)throw new $(`positional expansion element limit exceeded (${r.limits.maxArrayElements})`,"array_elements");let s=T(t);if(s>r.limits.maxStringLength-n.value)throw new $(`positional expansion string limit exceeded (${r.limits.maxStringLength} bytes)`,"string_length");e.push(t),n.value+=s}async function yl(e,t,n,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0],i=-1,a=!1;for(let g=0;g<s.parts.length;g++){let w=s.parts[g];if(w.type==="ParameterExpansion"&&(w.parameter==="@"||w.parameter==="*")&&w.operation?.type==="Substring"){i=g,a=w.parameter==="*";break}}if(i===-1)return null;let l=s.parts[i].operation,c=l.offset?await n(e,l.offset.expression):0,u=l.length?await n(e,l.length.expression):void 0,f=Number.parseInt(e.state.env.get("#")||"0",10),d=[];for(let g=1;g<=f;g++)d.push(e.state.env.get(String(g))||"");let p=e.state.env.get("0")||"bash",h;if(c<=0){let g=[p,...d],w=g.length+c;if(w<0)h=[];else{let S=c<0?w:0;if(u!==void 0){let v=u<0?g.length+u:S+u;h=g.slice(S,Math.max(S,v))}else h=g.slice(S)}}else{let g=c-1;if(g>=d.length)h=[];else if(u!==void 0){let w=u<0?d.length+u:g+u;h=d.slice(g,Math.max(g,w))}else h=d.slice(g)}let m="";for(let g=0;g<i;g++)m+=await r(e,s.parts[g]);let E="";for(let g=i+1;g<s.parts.length;g++)E+=await r(e,s.parts[g]);if(h.length===0){let g=m+E;return{values:g?[g]:[],quoted:!0}}if(a){let g=U(e.state.env);return{values:[m+h.join(g)+E],quoted:!0}}return h.length===1?{values:[m+h[0]+E],quoted:!0}:{values:[m+h[0],...h.slice(1,-1),h[h.length-1]+E],quoted:!0}}async function gl(e,t,n,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0],i=-1,a=!1;for(let g=0;g<s.parts.length;g++){let w=s.parts[g];if(w.type==="ParameterExpansion"&&(w.parameter==="@"||w.parameter==="*")&&w.operation?.type==="PatternReplacement"){i=g,a=w.parameter==="*";break}}if(i===-1)return null;let l=s.parts[i].operation,c=ml(e),u="";for(let g=0;g<i;g++)u=$r(u,await n(e,s.parts[g]),e.limits.maxStringLength);let f="";for(let g=i+1;g<s.parts.length;g++)f=$r(f,await n(e,s.parts[g]),e.limits.maxStringLength);if(c.length===0){let g=u+f;return{values:g?[g]:[],quoted:!0}}let d="";if(l.pattern)for(let g of l.pattern.parts)if(g.type==="Glob")d+=Q(g.pattern,!0,e.state.shoptOptions.extglob);else if(g.type==="Literal")d+=Q(g.value,!0,e.state.shoptOptions.extglob);else if(g.type==="SingleQuoted"||g.type==="Escaped")d+=ee(g.value);else if(g.type==="DoubleQuoted"){let w=await r(e,g.parts);d+=ee(w)}else if(g.type==="ParameterExpansion"){let w=await n(e,g);d+=Q(w,!0,e.state.shoptOptions.extglob)}else{let w=await n(e,g);d+=ee(w)}let p=l.replacement?await r(e,l.replacement.parts):"",h=d;l.anchor==="start"?h=`^${d}`:l.anchor==="end"&&(h=`${d}$`);let m=[],E={value:0};try{let g=he(h,l.all?"g":"");for(let w of c){let S=0;g.lastIndex=0;for(let I=g.exec(w);I&&(S++,!!l.all);I=g.exec(w))I[0].length===0&&g.lastIndex++;let v=T(w),A=T(p),x=0,P=/\$(?:\$|&|\d+|<[^>]+>|`|')/g;for(;P.exec(p)!==null;)x++;if(v+S*A+S*x*v>e.limits.maxStringLength-E.value)throw new $(`positional expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");ri(m,g.replace(w,p),E,e)}}catch(g){if(g instanceof $)throw g;for(let w of c)ri(m,w,E,e)}if(a){let g=U(e.state.env);if(E.value+Math.max(0,m.length-1)*T(g)+T(u)+T(f)>e.limits.maxStringLength)throw new $(`positional expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return{values:[u+m.join(g)+f],quoted:!0}}if(T(u)+E.value+T(f)>e.limits.maxStringLength)throw new $(`positional expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return m.length===1?{values:[u+m[0]+f],quoted:!0}:{values:[u+m[0],...m.slice(1,-1),m[m.length-1]+f],quoted:!0}}async function wl(e,t,n,r){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let s=t[0],i=-1,a=!1;for(let b=0;b<s.parts.length;b++){let g=s.parts[b];if(g.type==="ParameterExpansion"&&(g.parameter==="@"||g.parameter==="*")&&g.operation?.type==="PatternRemoval"){i=b,a=g.parameter==="*";break}}if(i===-1)return null;let l=s.parts[i].operation,c=ml(e),u="";for(let b=0;b<i;b++)u=$r(u,await n(e,s.parts[b]),e.limits.maxStringLength);let f="";for(let b=i+1;b<s.parts.length;b++)f=$r(f,await n(e,s.parts[b]),e.limits.maxStringLength);if(c.length===0){let b=u+f;return{values:b?[b]:[],quoted:!0}}let d="",p=e.state.shoptOptions.extglob;if(l.pattern)for(let b of l.pattern.parts)if(b.type==="Glob")d+=Q(b.pattern,l.greedy,p);else if(b.type==="Literal")d+=Q(b.value,l.greedy,p);else if(b.type==="SingleQuoted"||b.type==="Escaped")d+=ee(b.value);else if(b.type==="DoubleQuoted"){let g=await r(e,b.parts);d+=ee(g)}else if(b.type==="ParameterExpansion"){let g=await n(e,b);d+=Q(g,l.greedy,p)}else{let g=await n(e,b);d+=ee(g)}let h=[],m={value:0};for(let b of c)ri(h,rt(e,b,d,l.side,l.greedy),m,e);if(a){let b=U(e.state.env);if(m.value+Math.max(0,h.length-1)*T(b)+T(u)+T(f)>e.limits.maxStringLength)throw new $(`positional expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return{values:[u+h.join(b)+f],quoted:!0}}if(T(u)+m.value+T(f)>e.limits.maxStringLength)throw new $(`positional expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return h.length===1?{values:[u+h[0]+f],quoted:!0}:{values:[u+h[0],...h.slice(1,-1),h[h.length-1]+f],quoted:!0}}async function El(e,t,n){if(t.length!==1||t[0].type!=="DoubleQuoted")return null;let r=t[0],s=-1,i=!1;for(let d=0;d<r.parts.length;d++){let p=r.parts[d];if(p.type==="ParameterExpansion"&&(p.parameter==="@"||p.parameter==="*")){s=d,i=p.parameter==="*";break}}if(s===-1)return null;let a=r.parts[s];if(a.type==="ParameterExpansion"&&a.operation)return null;let o=Number.parseInt(e.state.env.get("#")||"0",10),l="";for(let d=0;d<s;d++)l+=await n(e,r.parts[d]);let c="";for(let d=s+1;d<r.parts.length;d++)c+=await n(e,r.parts[d]);if(o===0){if(i)return{values:[l+c],quoted:!0};let d=l+c;return{values:d?[d]:[],quoted:!0}}let u=[];for(let d=1;d<=o;d++)u.push(e.state.env.get(String(d))||"");if(i){let d=U(e.state.env);return{values:[l+u.join(d)+c],quoted:!0}}return u.length===1?{values:[l+u[0]+c],quoted:!0}:{values:[l+u[0],...u.slice(1,-1),u[u.length-1]+c],quoted:!0}}function ht(e,t,n,r){if(t.length>=e.limits.maxArrayElements)throw new $(`unquoted expansion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let s=T(n);if(s>e.limits.maxStringLength-r.value)throw new $(`unquoted expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");t.push(n),r.value+=s}function si(e,t,n,r){let s=T(n),i=Math.max(0,t.length-1);if(s>0&&i>Math.floor((e.limits.maxStringLength-r)/s))throw new $(`unquoted expansion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");return t.join(n)}function zf(e){return new Dt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations,consumeOperation:()=>e.executionScope.consumeLimited("glob_operations",1,e.limits.maxGlobOperations,"glob expansion")})}async function kr(e,t){if(e.state.options.noglob)return t;let n=zf(e),r=[];for(let s of t)if(pt(s,e.state.shoptOptions.extglob)){let i=await n.expand(s);if(i.length>0)Ne(r,i,e.limits.maxArrayElements,"unquoted glob expansion");else{if(n.hasFailglob())throw new bt(s);n.hasNullglob()||r.push(s)}}else r.push(s);return r}async function bl(e,t,n,r){let s=-1,i="",a=!1;for(let S=0;S<t.length;S++){let v=t[S];if(v.type==="ParameterExpansion"&&v.operation?.type==="PatternReplacement"){let A=v.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(A){s=S,i=A[1],a=A[2]==="*";break}}}if(s===-1)return null;let l=t[s].operation,c=z(e,i),u=c.map(([,S])=>S);if(c.length===0){let S=e.state.env.get(i);S!==void 0&&(u=[S])}if(u.length===0)return{values:[],quoted:!1};let f="";if(l.pattern)for(let S of l.pattern.parts)if(S.type==="Glob")f+=Q(S.pattern,!0,e.state.shoptOptions.extglob);else if(S.type==="Literal")f+=Q(S.value,!0,e.state.shoptOptions.extglob);else if(S.type==="SingleQuoted"||S.type==="Escaped")f+=ee(S.value);else if(S.type==="DoubleQuoted"){let v=await n(e,S.parts);f+=ee(v)}else if(S.type==="ParameterExpansion"){let v=await r(e,S);f+=Q(v,!0,e.state.shoptOptions.extglob)}else{let v=await r(e,S);f+=ee(v)}let d=l.replacement?await n(e,l.replacement.parts):"",p=f;l.anchor==="start"?p=`^${f}`:l.anchor==="end"&&(p=`${f}$`);let h=[],m={value:0};try{let S=he(p,l.all?"g":"");for(let v of u)ht(e,h,Ar(e,v,S,d,l.all),m)}catch(S){if(S instanceof $)throw S;for(let v of u)ht(e,h,v,m)}let E=be(e.state.env),b=ke(e.state.env);if(a){let S=U(e.state.env),v=si(e,h,S,m.value);return b?{values:v?[v]:[],quoted:!1}:{values:le(v,E,e.limits.maxArrayElements),quoted:!1}}if(b)return{values:h,quoted:!1};let g=[],w={value:0};for(let S of h)if(S==="")ht(e,g,"",w);else for(let v of le(S,E,e.limits.maxArrayElements))ht(e,g,v,w);return{values:g,quoted:!1}}async function Sl(e,t,n,r){let s=-1,i="",a=!1;for(let w=0;w<t.length;w++){let S=t[w];if(S.type==="ParameterExpansion"&&S.operation?.type==="PatternRemoval"){let v=S.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(v){s=w,i=v[1],a=v[2]==="*";break}}}if(s===-1)return null;let l=t[s].operation,c=z(e,i),u=c.map(([,w])=>w);if(c.length===0){let w=e.state.env.get(i);w!==void 0&&(u=[w])}if(u.length===0)return{values:[],quoted:!1};let f="",d=e.state.shoptOptions.extglob;if(l.pattern)for(let w of l.pattern.parts)if(w.type==="Glob")f+=Q(w.pattern,l.greedy,d);else if(w.type==="Literal")f+=Q(w.value,l.greedy,d);else if(w.type==="SingleQuoted"||w.type==="Escaped")f+=ee(w.value);else if(w.type==="DoubleQuoted"){let S=await n(e,w.parts);f+=ee(S)}else if(w.type==="ParameterExpansion"){let S=await r(e,w);f+=Q(S,l.greedy,d)}else{let S=await r(e,w);f+=ee(S)}let p=[],h={value:0};for(let w of u)ht(e,p,rt(e,w,f,l.side,l.greedy),h);let m=be(e.state.env),E=ke(e.state.env);if(a){let w=U(e.state.env),S=si(e,p,w,h.value);return E?{values:S?[S]:[],quoted:!1}:{values:le(S,m,e.limits.maxArrayElements),quoted:!1}}if(E)return{values:p,quoted:!1};let b=[],g={value:0};for(let w of p)if(w==="")ht(e,b,"",g);else for(let S of le(w,m,e.limits.maxArrayElements))ht(e,b,S,g);return{values:b,quoted:!1}}async function Al(e,t,n,r){let s=-1,i=!1;for(let g=0;g<t.length;g++){let w=t[g];if(w.type==="ParameterExpansion"&&(w.parameter==="@"||w.parameter==="*")&&w.operation?.type==="PatternRemoval"){s=g,i=w.parameter==="*";break}}if(s===-1)return null;let o=t[s].operation,l=Number.parseInt(e.state.env.get("#")||"0",10),c=[];for(let g=1;g<=l;g++)c.push(e.state.env.get(String(g))||"");if(c.length===0)return{values:[],quoted:!1};let u="",f=e.state.shoptOptions.extglob;if(o.pattern)for(let g of o.pattern.parts)if(g.type==="Glob")u+=Q(g.pattern,o.greedy,f);else if(g.type==="Literal")u+=Q(g.value,o.greedy,f);else if(g.type==="SingleQuoted"||g.type==="Escaped")u+=ee(g.value);else if(g.type==="DoubleQuoted"){let w=await n(e,g.parts);u+=ee(w)}else if(g.type==="ParameterExpansion"){let w=await r(e,g);u+=Q(w,o.greedy,f)}else{let w=await r(e,g);u+=ee(w)}let d=[],p={value:0};for(let g of c)ht(e,d,rt(e,g,u,o.side,o.greedy),p);let h=be(e.state.env),m=ke(e.state.env);if(i){let g=U(e.state.env),w=si(e,d,g,p.value);return m?{values:w?[w]:[],quoted:!1}:{values:le(w,h,e.limits.maxArrayElements),quoted:!1}}if(m)return{values:d,quoted:!1};let E=[],b={value:0};for(let g of d)if(g==="")ht(e,E,"",b);else for(let w of le(g,h,e.limits.maxArrayElements))ht(e,E,w,b);return{values:E,quoted:!1}}async function vl(e,t,n,r){let s=-1,i=!1;for(let w=0;w<t.length;w++){let S=t[w];if(S.type==="ParameterExpansion"&&(S.parameter==="@"||S.parameter==="*")&&S.operation?.type==="Substring"){s=w,i=S.parameter==="*";break}}if(s===-1)return null;let o=t[s].operation,l=o.offset?await n(e,o.offset.expression):0,c=o.length?await n(e,o.length.expression):void 0,u=Number.parseInt(e.state.env.get("#")||"0",10),f=[];for(let w=1;w<=u;w++)f.push(e.state.env.get(String(w))||"");let d=e.state.env.get("0")||"bash",p;if(l<=0){let w=[d,...f],S=w.length+l;if(S<0)p=[];else{let v=l<0?S:0;if(c!==void 0){let A=c<0?w.length+c:v+c;p=w.slice(v,Math.max(v,A))}else p=w.slice(v)}}else{let w=l-1;if(w>=f.length)p=[];else if(c!==void 0){let S=c<0?f.length+c:w+c;p=f.slice(w,Math.max(w,S))}else p=f.slice(w)}let h="";for(let w=0;w<s;w++)h+=await r(e,t[w]);let m="";for(let w=s+1;w<t.length;w++)m+=await r(e,t[w]);let E=be(e.state.env),b=ke(e.state.env);if(p.length===0){let w=h+m;return w?b?{values:[w],quoted:!1}:{values:le(w,E,e.limits.maxArrayElements),quoted:!1}:{values:[],quoted:!1}}let g;if(i){let w=U(e.state.env),S=h+p.join(w)+m;b?g=S?[S]:[]:g=le(S,E,e.limits.maxArrayElements)}else if(b)p.length===1?g=[h+p[0]+m]:g=[h+p[0],...p.slice(1,-1),p[p.length-1]+m];else{g=[];for(let w=0;w<p.length;w++){let S=p[w];if(w===0&&(S=h+S),w===p.length-1&&(S=S+m),S==="")g.push("");else{let v=le(S,E,e.limits.maxArrayElements);Ne(g,v,e.limits.maxArrayElements,"unquoted expansion")}}}return{values:await kr(e,g),quoted:!1}}async function xl(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].parameter!=="@"&&t[0].parameter!=="*"||t[0].operation)return null;let n=t[0].parameter==="*",r=Number.parseInt(e.state.env.get("#")||"0",10);if(r===0)return{values:[],quoted:!1};let s=[];for(let c=1;c<=r;c++)s.push(e.state.env.get(String(c))||"");let i=be(e.state.env),a=ke(e.state.env),o=gr(e.state.env),l;if(n)if(a)l=s.filter(c=>c!=="");else{let c=U(e.state.env),u=s.join(c);l=le(u,i,e.limits.maxArrayElements)}else if(a)l=s.filter(c=>c!=="");else if(o){l=[];for(let c of s){if(c==="")continue;let u=le(c,i,e.limits.maxArrayElements);Ne(l,u,e.limits.maxArrayElements,"unquoted expansion")}}else{l=[];for(let c of s)if(c==="")l.push("");else{let u=le(c,i,e.limits.maxArrayElements);Ne(l,u,e.limits.maxArrayElements,"unquoted expansion")}for(;l.length>0&&l[l.length-1]==="";)l.pop()}return{values:await kr(e,l),quoted:!1}}async function $l(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation)return null;let n=t[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(!n)return null;let r=n[1],s=n[2]==="*",i=z(e,r),a;if(i.length===0){let f=e.state.env.get(r);if(f!==void 0)a=[f];else return{values:[],quoted:!1}}else a=i.map(([,f])=>f);let o=be(e.state.env),l=ke(e.state.env),c=gr(e.state.env),u;if(s)if(l)u=a.filter(f=>f!=="");else{let f=U(e.state.env),d=a.join(f);u=le(d,o,e.limits.maxArrayElements)}else if(l)u=a.filter(f=>f!=="");else if(c){u=[];for(let f of a){if(f==="")continue;let d=le(f,o,e.limits.maxArrayElements);Ne(u,d,e.limits.maxArrayElements,"unquoted expansion")}}else{u=[];for(let f of a)if(f==="")u.push("");else{let d=le(f,o,e.limits.maxArrayElements);Ne(u,d,e.limits.maxArrayElements,"unquoted expansion")}for(;u.length>0&&u[u.length-1]==="";)u.pop()}return{values:await kr(e,u),quoted:!1}}function kl(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="VarNamePrefix")return null;let n=t[0].operation,r=hn(e,n.prefix);if(r.length===0)return{values:[],quoted:!1};let s=be(e.state.env),i=ke(e.state.env),a;if(n.star)if(i)a=r;else{let o=U(e.state.env),l=r.join(o);a=le(l,s,e.limits.maxArrayElements)}else if(i)a=r;else{a=[];for(let o of r){let l=le(o,s,e.limits.maxArrayElements);Ne(a,l,e.limits.maxArrayElements,"unquoted expansion")}}return{values:a,quoted:!1}}function Nl(e,t){if(t.length!==1||t[0].type!=="ParameterExpansion"||t[0].operation?.type!=="ArrayKeys")return null;let n=t[0].operation,s=z(e,n.array).map(([l])=>String(l));if(s.length===0)return{values:[],quoted:!1};let i=be(e.state.env),a=ke(e.state.env),o;if(n.star)if(a)o=s;else{let l=U(e.state.env),c=s.join(l);o=le(c,i,e.limits.maxArrayElements)}else if(a)o=s;else{o=[];for(let l of s){let c=le(l,i,e.limits.maxArrayElements);Ne(o,c,e.limits.maxArrayElements,"unquoted expansion")}}return{values:o,quoted:!1}}async function Pl(e,t,n){let r=-1;for(let d=0;d<t.length;d++){let p=t[d];if(p.type==="ParameterExpansion"&&(p.parameter==="@"||p.parameter==="*")&&!p.operation){r=d;break}}if(r===-1||t.length<=1)return null;let s=Number.parseInt(e.state.env.get("#")||"0",10),i=[];for(let d=1;d<=s;d++)i.push(e.state.env.get(String(d))||"");let a="";for(let d=0;d<r;d++)a+=await n(e,t[d]);let o="";for(let d=r+1;d<t.length;d++)o+=await n(e,t[d]);let l=be(e.state.env),c=ke(e.state.env),u=gr(e.state.env);if(s===0){let d=a+o;return{values:d?[d]:[],quoted:!1}}let f;{let d=[];for(let p=0;p<i.length;p++){let h=i[p];p===0&&(h=a+h),p===i.length-1&&(h=h+o),d.push(h)}if(c)f=d.filter(p=>p!=="");else if(u){f=[];for(let p of d){if(p==="")continue;let h=le(p,l,e.limits.maxArrayElements);Ne(f,h,e.limits.maxArrayElements,"unquoted expansion")}}else{f=[];for(let p of d)if(p==="")f.push("");else{let h=le(p,l,e.limits.maxArrayElements);Ne(f,h,e.limits.maxArrayElements,"unquoted expansion")}for(;f.length>0&&f[f.length-1]==="";)f.pop()}}return f.length===0?{values:[],quoted:!1}:{values:await kr(e,f),quoted:!1}}async function Rl(e,t,n){e.coverage?.hit("bash:expansion:word_glob");let r=t.parts,{hasQuoted:s,hasCommandSub:i,hasArrayVar:a,hasArrayAtExpansion:o,hasParamExpansion:l,hasVarNamePrefixExpansion:c,hasIndirection:u}=Tn(r),d=n.hasBraceExpansion(r)?await n.expandWordWithBracesAsync(e,t):null;if(d&&d.length>1)return qf(e,d,s);let p=await Uf(e,r,o,c,u,n);if(p!==null)return p;let h=await Gf(e,r,n);if(h!==null)return h;let m=await Zf(e,r,n);if(m!==null)return m;let E=await Qf(e,r,n.expandPart);if(E!==null)return Dl(e,E);if((i||a||l)&&!ke(e.state.env)){let g=be(e.state.env),w=n.buildIfsCharClassPattern(g),S=await n.smartWordSplit(e,r,g,w,n.expandPart);return Dl(e,S)}let b=await n.expandWordAsync(e,t);return Kf(e,t,r,b,s,n.expandWordForGlobbing)}async function qf(e,t,n){let r=[];for(let s of t)if(!(!n&&s===""))if(!n&&!e.state.options.noglob&&pt(s,e.state.shoptOptions.extglob)){let i=await Nr(e,s);Ne(r,i,e.limits.maxArrayElements,"brace/glob expansion")}else r.push(s);return{values:r,quoted:!1}}async function Uf(e,t,n,r,s,i){if(n){let a=ul(e,t);if(a!==null)return a}{let a=fl(e,t);if(a!==null)return a}{let a=await il(e,t);if(a!==null)return a}{let a=await al(e,t,n,i.expandPart,i.expandWordPartsAsync);if(a!==null)return a}{let a=await ol(e,t,n,i.expandPart);if(a!==null)return a}{let a=await ll(e,t,i.evaluateArithmetic);if(a!==null)return a}{let a=cl(e,t);if(a!==null)return a}{let a=await rl(e,t,i.expandWordPartsAsync,i.expandPart);if(a!==null)return a}{let a=await sl(e,t,i.expandWordPartsAsync,i.expandPart);if(a!==null)return a}if(r&&t.length===1&&t[0].type==="DoubleQuoted"){let a=jf(e,t);if(a!==null)return a}{let a=await dl(e,t,s,i.expandParameterAsync,i.expandWordPartsAsync);if(a!==null)return a}{let a=await pl(e,t);if(a!==null)return a}{let a=await hl(e,t);if(a!==null)return a}return null}function jf(e,t){let n=t[0];if(n.type!=="DoubleQuoted")return null;if(n.parts.length===1&&n.parts[0].type==="ParameterExpansion"&&n.parts[0].operation?.type==="VarNamePrefix"){let r=n.parts[0].operation,s=hn(e,r.prefix);return r.star?{values:[s.join(U(e.state.env))],quoted:!0}:{values:s,quoted:!0}}if(n.parts.length===1&&n.parts[0].type==="ParameterExpansion"&&n.parts[0].operation?.type==="ArrayKeys"){let r=n.parts[0].operation,i=z(e,r.array).map(([a])=>String(a));return r.star?{values:[i.join(U(e.state.env))],quoted:!0}:{values:i,quoted:!0}}return null}async function Gf(e,t,n){{let r=await yl(e,t,n.evaluateArithmetic,n.expandPart);if(r!==null)return r}{let r=await gl(e,t,n.expandPart,n.expandWordPartsAsync);if(r!==null)return r}{let r=await wl(e,t,n.expandPart,n.expandWordPartsAsync);if(r!==null)return r}{let r=await El(e,t,n.expandPart);if(r!==null)return r}return null}async function Zf(e,t,n){{let r=await bl(e,t,n.expandWordPartsAsync,n.expandPart);if(r!==null)return r}{let r=await Sl(e,t,n.expandWordPartsAsync,n.expandPart);if(r!==null)return r}{let r=await Al(e,t,n.expandWordPartsAsync,n.expandPart);if(r!==null)return r}{let r=await vl(e,t,n.evaluateArithmetic,n.expandPart);if(r!==null)return r}{let r=await xl(e,t);if(r!==null)return r}{let r=await $l(e,t);if(r!==null)return r}{let r=kl(e,t);if(r!==null)return r}{let r=Nl(e,t);if(r!==null)return r}{let r=await Pl(e,t,n.expandPart);if(r!==null)return r}return null}function Cl(e){if(e.type!=="DoubleQuoted")return null;for(let t=0;t<e.parts.length;t++){let n=e.parts[t];if(n.type!=="ParameterExpansion"||n.operation)continue;let r=n.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(r)return{type:"array",name:r[1],atIndex:t,isStar:r[2]==="*"};if(n.parameter==="@"||n.parameter==="*")return{type:"positional",atIndex:t,isStar:n.parameter==="*"}}return null}async function Hf(e,t,n,r){let s="";for(let o=0;o<n.atIndex;o++)s+=await r(e,t.parts[o]);let i="";for(let o=n.atIndex+1;o<t.parts.length;o++)i+=await r(e,t.parts[o]);let a;if(n.type==="array"){if(a=z(e,n.name).map(([,l])=>l),a.length===0){let l=e.state.env.get(n.name);l!==void 0&&(a=[l])}}else{let o=Number.parseInt(e.state.env.get("#")||"0",10);a=[];for(let l=1;l<=o;l++)a.push(e.state.env.get(String(l))||"")}if(n.isStar){let o=U(e.state.env),l=a.join(o);return[s+l+i]}if(a.length===0){let o=s+i;return o?[o]:[]}return a.length===1?[s+a[0]+i]:[s+a[0],...a.slice(1,-1),a[a.length-1]+i]}async function Qf(e,t,n){if(t.length<2)return null;let r=!1;for(let l of t)if(Cl(l)){r=!0;break}if(!r)return null;let s=be(e.state.env),i=ke(e.state.env),a=[];for(let l of t){let c=Cl(l);if(c&&l.type==="DoubleQuoted"){let u=await Hf(e,l,c,n);a.push(u)}else if(l.type==="DoubleQuoted"||l.type==="SingleQuoted"){let u=await n(e,l);a.push([u])}else if(l.type==="Literal")a.push([l.value]);else if(l.type==="ParameterExpansion"){let u=await n(e,l);if(i)a.push(u?[u]:[]);else{let f=le(u,s,e.limits.maxArrayElements);a.push(f)}}else{let u=await n(e,l);if(i)a.push(u?[u]:[]);else{let f=le(u,s,e.limits.maxArrayElements);a.push(f)}}}let o=[];for(let l of a)if(l.length!==0)if(o.length===0)Ne(o,l,e.limits.maxArrayElements,"word expansion");else{let c=o.length-1;o[c]=o[c]+l[0];for(let u=1;u<l.length;u++)o.push(l[u])}return o}async function Dl(e,t){if(e.state.options.noglob)return{values:t,quoted:!1};let n=[];for(let r of t)if(pt(r,e.state.shoptOptions.extglob)){let s=await Nr(e,r);Ne(n,s,e.limits.maxArrayElements,"glob expansion")}else n.push(r);return{values:n,quoted:!1}}async function Nr(e,t){let n=new Dt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations,consumeOperation:()=>e.executionScope.consumeLimited("glob_operations",1,e.limits.maxGlobOperations,"glob expansion")}),r=await n.expand(t);if(r.length>0)return r;if(n.hasFailglob())throw new bt(t);return n.hasNullglob()?[]:[t]}async function Kf(e,t,n,r,s,i){let a=n.some(o=>o.type==="Glob");if(!e.state.options.noglob&&a){let o=await i(e,t);if(pt(o,e.state.shoptOptions.extglob)){let c=await Nr(e,o);if(c.length>0&&c[0]!==o)return{values:c,quoted:!1};if(c.length===0)return{values:[],quoted:!1}}let l=ei(r);if(!ke(e.state.env)){let c=be(e.state.env);return{values:le(l,c,e.limits.maxArrayElements),quoted:!1}}return{values:[l],quoted:!1}}if(!s&&!e.state.options.noglob&&pt(r,e.state.shoptOptions.extglob)){let o=await i(e,t);if(pt(o,e.state.shoptOptions.extglob)){let l=await Nr(e,o);if(l.length>0&&l[0]!==o)return{values:l,quoted:!1}}}if(r===""&&!s)return{values:[],quoted:!1};if(a&&!s){let o=ei(r);if(!ke(e.state.env)){let l=be(e.state.env);return{values:le(o,l,e.limits.maxArrayElements),quoted:!1}}return{values:[o],quoted:!1}}return{values:[r],quoted:s}}function Ce(e,t,n){if(t.length>=e.limits.maxArrayElements)throw new $(`word splitting element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");t.push(n)}async function _l(e,t){let n=t.operation;if(!n||n.type!=="DefaultValue"&&n.type!=="AssignDefault"&&n.type!=="UseAlternative")return null;let r=n.word;if(!r||r.parts.length===0)return null;let s=await dt(e,t.parameter),a=await re(e,t.parameter,!1)==="",o=n.checkEmpty??!1,l;return n.type==="UseAlternative"?l=s&&!(o&&a):l=!s||o&&a,l?r.parts:null}function Xf(e){return e.type==="SingleQuoted"?!0:e.type==="DoubleQuoted"?e.parts.every(n=>n.type==="Literal"):!1}async function Yf(e,t){if(t.type!=="ParameterExpansion")return null;let n=await _l(e,t);if(!n||n.length<=1)return null;let r=n.some(i=>Xf(i)),s=n.some(i=>i.type==="Literal"||i.type==="ParameterExpansion"||i.type==="CommandSubstitution"||i.type==="ArithmeticExpansion");return r&&s?n:null}function Jf(e){return e.type==="DoubleQuoted"||e.type==="SingleQuoted"||e.type==="Literal"?!1:e.type==="Glob"?Gs(e.pattern):!(!(e.type==="ParameterExpansion"||e.type==="CommandSubstitution"||e.type==="ArithmeticExpansion")||e.type==="ParameterExpansion"&&Do(e))}async function Ol(e,t,n,r,s){if(e.coverage?.hit("bash:expansion:word_split"),t.length===1&&t[0].type==="ParameterExpansion"){let d=t[0],p=await _l(e,d);if(p&&p.length>0&&p.length>1&&p.some(m=>m.type==="DoubleQuoted"||m.type==="SingleQuoted")&&p.some(m=>m.type==="Literal"||m.type==="ParameterExpansion"||m.type==="CommandSubstitution"||m.type==="ArithmeticExpansion"))return Il(e,p,n,r,s)}let i=[],a=!1;for(let d of t){let p=Jf(d),h=d.type==="DoubleQuoted"||d.type==="SingleQuoted",m=p?await Yf(e,d):null,E=await s(e,d);i.push({value:E,isSplittable:p,isQuoted:h,mixedDefaultParts:m??void 0}),p&&(a=!0)}if(!a){let d=i.map(p=>p.value).join("");return d?[d]:[]}let o=[],l="",c=!1,u=!1,f=!1;for(let d of i)if(!d.isSplittable)u?d.isQuoted&&d.value===""?(l!==""&&Ce(e,o,l),Ce(e,o,""),c=!0,l="",u=!1,f=!0):d.value!==""?(l!==""&&Ce(e,o,l),l=d.value,u=!1,f=!1):(l+=d.value,f=!1):(l+=d.value,f=d.isQuoted&&d.value==="");else if(d.mixedDefaultParts){let p=await Il(e,d.mixedDefaultParts,n,r,s);if(p.length!==0)if(p.length===1)l+=p[0],c=!0;else{l+=p[0],Ce(e,o,l),c=!0;for(let h=1;h<p.length-1;h++)Ce(e,o,p[h]);l=p[p.length-1]}u=!1,f=!1}else{let{words:p,hadLeadingDelimiter:h,hadTrailingDelimiter:m}=wr(d.value,n,e.limits.maxArrayElements);if(f&&h&&l===""&&(Ce(e,o,""),c=!0),p.length===0)m&&(u=!0);else if(p.length===1)l+=p[0],c=!0,u=m;else{l+=p[0],Ce(e,o,l),c=!0;for(let E=1;E<p.length-1;E++)Ce(e,o,p[E]);l=p[p.length-1],u=m}f=!1}return l!==""?Ce(e,o,l):o.length===0&&c&&Ce(e,o,""),o}function ed(e,t){return e.length>0&&t.includes(e[0])}async function Il(e,t,n,r,s){let i=[];for(let u of t){let d=!(u.type==="DoubleQuoted"||u.type==="SingleQuoted"),p=await s(e,u);i.push({value:p,isSplittable:d})}let a=[],o="",l=!1,c=!1;for(let u of i)if(!u.isSplittable)c&&u.value!==""?(o!==""&&Ce(e,a,o),o=u.value,c=!1):o+=u.value;else{ed(u.value,n)&&o!==""&&(Ce(e,a,o),o="",l=!0);let{words:d,hadTrailingDelimiter:p}=wr(u.value,n,e.limits.maxArrayElements);if(d.length===0)p&&(c=!0);else if(d.length===1)o+=d[0],l=!0,c=p;else{o+=d[0],Ce(e,a,o),l=!0;for(let h=1;h<d.length-1;h++)Ce(e,a,d[h]);o=d[d.length-1],c=p}}return o!==""?Ce(e,a,o):a.length===0&&l&&Ce(e,a,""),a}function Ll(e){switch(e.type){case"Literal":return e.value;case"SingleQuoted":return e.value;case"Escaped":return e.value;default:return null}}function Tl(e){switch(e.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return e.value==="";default:return!1}}function Ot(e,t,n){if(e.length>t)throw new $(`${n}: string length limit exceeded (${t} bytes)`,"string_length")}async function it(e,t,n=!1){let r=[];for(let s of t)r.push(await He(e,s,n));return r.join("")}function td(e){return Tl(e)}function Bl(e){if(e.parts.length===0)return!0;for(let t of e.parts)if(!td(t))return!1;return!0}function nd(e,t,n=!1){let r=Ll(t);if(r!==null)return r;switch(t.type){case"TildeExpansion":return n?t.user===null?"~":`~${t.user}`:(e.coverage?.hit("bash:expansion:tilde"),t.user===null?e.state.env.get("HOME")??"/home/user":t.user==="root"?"/root":`~${t.user}`);case"Glob":return ti(e,t.pattern);default:return null}}async function W(e,t){return ii(e,t)}async function Wl(e,t){let n=[];for(let r of t.parts)if(r.type==="Escaped")n.push(`\\${r.value}`);else if(r.type==="SingleQuoted")n.push(r.value);else if(r.type==="DoubleQuoted"){let s=await it(e,r.parts);n.push(s)}else if(r.type==="TildeExpansion"){let s=await He(e,r);n.push(Bn(s))}else n.push(await He(e,r));return n.join("")}async function Fl(e,t){let n=[];for(let r of t.parts)if(r.type==="Escaped"){let s=r.value;"()|*?[]".includes(s)?n.push(`\\${s}`):n.push(s)}else if(r.type==="SingleQuoted")n.push(Ze(r.value));else if(r.type==="DoubleQuoted"){let s=await it(e,r.parts);n.push(Ze(s))}else n.push(await He(e,r));return n.join("")}async function Vl(e,t){let n=[];for(let r of t.parts)if(r.type==="SingleQuoted")n.push(Ze(r.value));else if(r.type==="Escaped"){let s=r.value;"*?[]\\()|".includes(s)?n.push(`\\${s}`):n.push(s)}else if(r.type==="DoubleQuoted"){let s=await it(e,r.parts);n.push(Ze(s))}else r.type==="Glob"?el(r.pattern)?n.push(await nl(e,r.pattern)):n.push(ti(e,r.pattern)):r.type==="Literal"?n.push(r.value):n.push(await He(e,r));return n.join("")}function Cr(e){for(let t of e)if(t.type==="BraceExpansion"||t.type==="DoubleQuoted"&&Cr(t.parts))return!0;return!1}var Ml=1e5;async function zl(e,t,n={count:0}){let r=()=>{n.count++,e.executionScope.consumeLimited("brace_operations",1,Math.min(Ml,e.limits.maxBraceExpansionResults),"brace expansion")},s=(a,o)=>{if(a.length>=e.limits.maxBraceExpansionResults)throw new $(`brace expansion result limit exceeded (${e.limits.maxBraceExpansionResults})`,"array_elements");r(),a.push(o)},i=[[]];for(let a of t)if(a.type==="BraceExpansion"){let o=[],l=!1,c="";for(let d of a.items)if(d.type==="Range"){let p=Js(d.start,d.end,d.step,d.startStr,d.endStr,{maxResults:e.limits.maxBraceExpansionResults,maxStringBytes:e.limits.maxStringLength});if(p.expanded)for(let h of p.expanded)s(o,h);else{l=!0,c=p.literal;break}}else{let p=await zl(e,d.word.parts,n);for(let h of p){let m=[];for(let E of h)typeof E=="string"?m.push(E):m.push(await He(e,E));s(o,m.join(""))}}if(l){for(let d of i)r(),d.push(c);continue}if(i.length*o.length>e.limits.maxBraceExpansionResults||n.count>Ml)throw new $(`brace expansion result limit exceeded (${e.limits.maxBraceExpansionResults})`,"array_elements");let f=[];for(let d of i)for(let p of o){if(f.length>=e.limits.maxBraceExpansionResults)throw new $(`brace expansion result limit exceeded (${e.limits.maxBraceExpansionResults})`,"array_elements");r(),f.push([...d,p])}i=f}else for(let o of i)r(),o.push(a);return i}async function ql(e,t){let n=t.parts;if(!Cr(n))return[await W(e,t)];let r=await zl(e,n),s=[];for(let i of r){let a=[];for(let o of i)typeof o=="string"?a.push(o):a.push(await He(e,o));s.push(ni(e,a.join("")))}return s}function rd(){return{expandWordAsync:ii,expandWordForGlobbing:Vl,expandWordWithBracesAsync:ql,expandWordPartsAsync:it,expandPart:He,expandParameterAsync:Pr,hasBraceExpansion:Cr,evaluateArithmetic:Z,buildIfsCharClassPattern:Ro,smartWordSplit:Ol}}async function at(e,t){return Rl(e,t,rd())}function sd(e){for(let t of e){if(t.type==="ParameterExpansion")return t.parameter;if(t.type==="Literal")return t.value}return""}function Fn(e,t){if(Number.parseInt(e.state.env.get("#")||"0",10)<2)return!1;function r(s){for(let i of s)if(i.type==="DoubleQuoted"){for(let a of i.parts)if(a.type==="ParameterExpansion"&&a.parameter==="@"&&!a.operation)return!0}return!1}return r(t.parts)}async function Dr(e,t){if(Fn(e,t))return{error:`bash: $@: ambiguous redirect
78
+ `};let n=t.parts,{hasQuoted:r}=Tn(n);if(Cr(n)&&(await ql(e,t)).length>1)return{error:`bash: ${n.map(p=>p.type==="Literal"?p.value:p.type==="BraceExpansion"?`{${p.items.map(m=>{if(m.type==="Range"){let E=m.step?`..${m.step}`:"";return`${m.startStr??m.start}..${m.endStr??m.end}${E}`}return m.word.parts.map(E=>E.type==="Literal"?E.value:"").join("")}).join(",")}}`:"").join("")}: ambiguous redirect
79
+ `};let s=await ii(e,t),{hasParamExpansion:i,hasCommandSub:a}=Tn(n);if((i||a)&&!r&&!ke(e.state.env)){let f=be(e.state.env);if(le(s,f,e.limits.maxArrayElements).length>1)return{error:`bash: $${sd(n)}: ambiguous redirect
80
+ `}}if(r||e.state.options.noglob)return{target:s};let l=await Vl(e,t);if(!pt(l,e.state.shoptOptions.extglob))return{target:s};let c=new Dt(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations,consumeOperation:()=>e.executionScope.consumeLimited("glob_operations",1,e.limits.maxGlobOperations,"glob expansion")}),u=await c.expand(l);return u.length===0?c.hasFailglob()?{error:`bash: no match: ${s}
81
+ `}:{target:s}:u.length===1?{target:u[0]}:{error:`bash: ${s}: ambiguous redirect
82
+ `}}async function ii(e,t){let n=t.parts,r=n.length;if(r===1){let a=await He(e,n[0]);return Ot(a,e.limits.maxStringLength,"word expansion"),a}let s=[];for(let a=0;a<r;a++)s.push(await He(e,n[a]));let i=s.join("");return Ot(i,e.limits.maxStringLength,"word expansion"),i}async function He(e,t,n=!1){if(t.type==="ParameterExpansion")return Pr(e,t,n);let r=nd(e,t,n);if(r!==null)return r;switch(t.type){case"DoubleQuoted":{let s=[];for(let i of t.parts)s.push(await He(e,i,!0));return s.join("")}case"CommandSubstitution":{let s=Bo(t.body);if(s)try{let p=await W(e,s.target),h=p.startsWith("/")?p:`${e.state.cwd}/${p}`,m=await e.fs.readFile(h);e.state.lastExitCode=0,e.state.env.set("?","0");let E=m.replace(/\n+$/,"");return Ot(E,e.limits.maxStringLength,"command substitution"),E}catch(p){if(p instanceof $)throw p;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}let i=e.substitutionDepth??0,a=e.limits.maxSubstitutionDepth;if(i>=a)throw new $(`Command substitution nesting limit exceeded (${a})`,"substitution_depth");let o=e.substitutionDepth;e.substitutionDepth=i+1;let l=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=ct(e.state.arrays),f=e.state.cwd,d=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let p=await e.executeScript(t.body),h=p.exitCode;e.state.env=c,e.state.arrays=u,e.state.cwd=f,e.state.suppressVerbose=d,e.state.lastExitCode=h,e.state.env.set("?",String(h)),p.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+p.stderr),e.state.bashPid=l,e.substitutionDepth=o;let m=p.stdout.replace(/\n+$/,"");return Ot(m,e.limits.maxStringLength,"command substitution"),m}catch(p){if(e.state.env=c,e.state.arrays=u,e.state.cwd=f,e.state.bashPid=l,e.substitutionDepth=o,e.state.suppressVerbose=d,p instanceof $)throw p;if(p instanceof j){e.state.lastExitCode=p.exitCode,e.state.env.set("?",String(p.exitCode)),p.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+p.stderr);let h=p.stdout.replace(/\n+$/,"");return Ot(h,e.limits.maxStringLength,"command substitution"),h}throw p}}case"ArithmeticExpansion":{let s=t.expression.originalText;if(s&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(s)){let a=await Mo(e,s),o=new V,l=ne(o,a);return String(await Z(e,l.expression,!0))}return String(await Z(e,t.expression.expression,!0))}case"BraceExpansion":{let s=[];for(let i of t.items)if(i.type==="Range"){let a=Js(i.start,i.end,i.step,i.startStr,i.endStr,{maxResults:e.limits.maxBraceExpansionResults,maxStringBytes:e.limits.maxStringLength});if(a.expanded)s.push(...a.expanded);else return a.literal}else s.push(await W(e,i.word));return s.join(" ")}default:return""}}async function Pr(e,t,n=!1){let{parameter:r}=t,{operation:s}=t,i=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(i){let[,d,p]=i;if(e.state.associativeArrays?.has(d)||p.includes("$(")||p.includes("`")||p.includes("${")){let m=await Xs(e,p);r=`${d}[${m}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)&&ae(e,r)){let d=Re(e,r);if(d&&d!==r){let p=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(p){let[,h,m]=p;if(e.state.associativeArrays?.has(h)||m.includes("$(")||m.includes("`")||m.includes("${")){let b=await Xs(e,m);r=`${h}[${b}]`}}}}let a=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=await re(e,r,!a);if(!s)return o;let l=!await dt(e,r),{isEmpty:c,effectiveValue:u}=Jo(e,r,o,n),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:n};switch(s.type){case"DefaultValue":return Fo(e,s,f,it);case"AssignDefault":return Vo(e,r,s,f,it);case"ErrorIfUnset":return zo(e,r,s,f,it);case"UseAlternative":return qo(e,s,f,it);case"PatternRemoval":{let d=await Uo(e,o,s,it,He);return Ot(d,e.limits.maxStringLength,"pattern removal"),d}case"PatternReplacement":{let d=await jo(e,o,s,it,He);return Ot(d,e.limits.maxStringLength,"pattern replacement"),d}case"Length":return Go(e,r,o);case"LengthSliceError":throw new je(r);case"BadSubstitution":throw new je(s.text);case"Substring":return Zo(e,r,o,s);case"CaseModification":{let d=await Ho(e,o,s,it,Pr);return Ot(d,e.limits.maxStringLength,"case modification"),d}case"Transform":return Qo(e,r,o,l,s);case"Indirection":return Ko(e,r,o,l,s,Pr,n);case"ArrayKeys":return Xo(e,s);case"VarNamePrefix":return Yo(e,s);default:return o}}function jl(){return{visited:new Set,depth:0}}function id(e,t,n){switch(n){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":if(t===0)throw new ie("division by 0");return Math.trunc(e/t);case"%":if(t===0)throw new ie("division by 0");return e%t;case"**":if(t<0)throw new ie("exponent less than 0");return e**t;case"<<":return e<<t;case">>":return e>>t;case"<":return e<t?1:0;case"<=":return e<=t?1:0;case">":return e>t?1:0;case">=":return e>=t?1:0;case"==":return e===t?1:0;case"!=":return e!==t?1:0;case"&":return e&t;case"|":return e|t;case"^":return e^t;case",":return t;default:return 0}}function Ul(e,t,n){switch(n){case"=":return t;case"+=":return e+t;case"-=":return e-t;case"*=":return e*t;case"/=":return t!==0?Math.trunc(e/t):0;case"%=":return t!==0?e%t:0;case"<<=":return e<<t;case">>=":return e>>t;case"&=":return e&t;case"|=":return e|t;case"^=":return e^t;default:return t}}function ad(e,t){switch(t){case"-":return-e;case"+":return+e;case"!":return e===0?1:0;case"~":return~e;default:return e}}async function od(e,t){let n=e.state.env.get(t);if(n!==void 0)return n;let r=se(e,t,0);return r!==void 0?r:await re(e,t)}async function ld(e,t,n){if(!t)return 0;let r=Number.parseInt(t,10);if(!Number.isNaN(r)&&/^-?\d+$/.test(t.trim()))return r;let s=t.trim();if(!s)return 0;let i=new V,{expr:a,pos:o}=pn(i,s,0);if(o<s.length){let l=s.slice(o).trim(),c=l.split(/\s+/)[0]||l;throw new ie(`syntax error in expression (error token is "${c}")`,"","")}return await yn(e,a,!1,n)}async function Rr(e,t,n,r){if(r.depth>100)throw new ie("maximum variable indirection depth exceeded");if(r.visited.has(t))throw new ie(`arithmetic variable cycle detected at ${t}`);r.visited.add(t),r.depth++;try{return await ld(e,n,r)}finally{r.depth--,r.visited.delete(t)}}async function ai(e,t,n){if(n.depth>100)throw new ie("maximum variable indirection depth exceeded");if(n.visited.has(t))throw new ie(`arithmetic variable cycle detected at ${t}`);n.visited.add(t),n.depth++;try{let r=await od(e,t);if(!r)return 0;let s=Number.parseInt(r,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(r.trim()))return s;let i=r.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return await ai(e,i,n);let a=new V,{expr:o,pos:l}=pn(a,i,0);if(l<i.length){let c=i.slice(l).trim(),u=c.split(/\s+/)[0]||c;throw new ie(`${i}: syntax error in expression (error token is "${u}")`)}return await yn(e,o,!1,n)}finally{n.depth--,n.visited.delete(t)}}async function Ir(e,t){if(t.startsWith("#")){let f=t.slice(1),d=f.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(d){let h=d[1],m=z(e,h);return String(m.length)}let p=e.state.env.get(f)||"";return String(p.length)}if(t.startsWith("!")){let f=t.slice(1),d=e.state.env.get(f)||"";return e.state.env.get(d)||""}let n=[":-",":=",":?",":+","-","=","?","+"],r=-1,s="";for(let f of n){let d=t.indexOf(f);d>0&&(r===-1||d<r)&&(r=d,s=f)}if(r===-1)return await re(e,t);let i=t.slice(0,r),a=t.slice(r+s.length),o=e.state.env.get(i),l=o===void 0,c=o==="",u=s.startsWith(":");switch(s){case":-":case"-":return l||u&&c?a:o||"";case":=":case"=":return l||u&&c?(e.state.env.set(i,a),a):o||"";case":+":case"+":return!(l||u&&c)?a:"";case":?":case"?":{if(l||u&&c)throw new Error(a||`${i}: parameter null or not set`);return o||""}default:return o||""}}async function Z(e,t,n=!1){return yn(e,t,n,jl())}async function yn(e,t,n,r){let s=(i,a=n)=>yn(e,i,a,r);switch(t.type){case"ArithNumber":if(Number.isNaN(t.value))throw new ie("value too great for base");return t.value;case"ArithVariable":return await ai(e,t.name,r);case"ArithSpecialVar":{let a=(await re(e,t.name)).trim();if(!a)return 0;let o=Number.parseInt(a,10);if(!Number.isNaN(o)&&/^-?\d+$/.test(a))return o;let l=new V,{expr:c}=pn(l,a,0);return await s(c)}case"ArithNested":return await s(t.expression);case"ArithCommandSubst":{if(e.execFn){let i=await e.execFn(t.command,{signal:e.state.signal});i.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+i.stderr);let a=i.stdout.trim();return Number.parseInt(a,10)||0}return 0}case"ArithBracedExpansion":{let i=await Ir(e,t.content);return Number.parseInt(i,10)||0}case"ArithDynamicBase":{let i=await Ir(e,t.baseExpr),a=Number.parseInt(i,10);if(a<2||a>64)return 0;let o=`${a}#${t.value}`;return _n(o)}case"ArithDynamicNumber":{let a=await Ir(e,t.prefix)+t.suffix;return _n(a)}case"ArithArrayElement":{let i=e.state.associativeArrays?.has(t.array),a=async o=>{let l=se(e,t.array,o);return l!==void 0?await Rr(e,`${t.array}[${o}]`,l,r):0};if(t.stringKey!==void 0)return await a(t.stringKey);if(i&&t.index?.type==="ArithVariable"&&!t.index.hasDollarPrefix)return await a(t.index.name);if(i&&t.index?.type==="ArithVariable"&&t.index.hasDollarPrefix){let o=await re(e,t.index.name);return await a(o)}if(t.index){let o=await s(t.index);if(o<0){let u=z(e,t.array),f=e.state.currentLine;if(u.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${f}: ${t.array}: bad array subscript
83
+ `,0;let p=Math.max(...u.map(([h])=>typeof h=="number"?h:0))+1+o;if(p<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${f}: ${t.array}: bad array subscript
84
+ `,0;o=p}let l=`${t.array}[${o}]`,c=se(e,t.array,o);if(c!==void 0)return Rr(e,l,c,r);if(o===0){let u=e.state.env.get(t.array);if(u!==void 0)return Rr(e,t.array,u,r)}if(e.state.options.nounset&&!(e.state.env.has(t.array)||$e(e,t.array)))throw new Le(`${t.array}[${o}]`);return 0}return 0}case"ArithDoubleSubscript":throw new ie("double subscript","","");case"ArithNumberSubscript":throw new ie(`${t.number}${t.errorToken}: syntax error: invalid arithmetic operator (error token is "${t.errorToken}")`);case"ArithSyntaxError":throw new ie(t.message,"","",!0);case"ArithSingleQuote":{if(n)throw new ie(`syntax error: operand expected (error token is "'${t.content}'")`);return t.value}case"ArithBinary":{if(t.operator==="||")return await s(t.left)||await s(t.right)?1:0;if(t.operator==="&&")return await s(t.left)&&await s(t.right)?1:0;let i=await s(t.left),a=await s(t.right);return id(i,a,t.operator)}case"ArithUnary":{let i=await s(t.operand);if(t.operator==="++"||t.operator==="--"){if(t.operand.type==="ArithVariable"){let a=t.operand.name,o=Number.parseInt(await re(e,a),10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}if(t.operand.type==="ArithArrayElement"){let a=t.operand.array,o=e.state.associativeArrays?.has(a),l;if(t.operand.stringKey!==void 0)l=t.operand.stringKey;else if(o&&t.operand.index?.type==="ArithVariable"&&!t.operand.index.hasDollarPrefix)l=t.operand.index.name;else if(o&&t.operand.index?.type==="ArithVariable"&&t.operand.index.hasDollarPrefix)l=await re(e,t.operand.index.name);else if(t.operand.index){let f=await s(t.operand.index);l=String(f)}else return i;let c=Number.parseInt(se(e,a,l)||"0",10)||0,u=t.operator==="++"?c+1:c-1;return F(e,a,l,String(u),o?"associative":"indexed"),t.prefix?u:c}if(t.operand.type==="ArithConcat"){let a="";for(let o of t.operand.parts)a+=await mn(e,o,n,r);if(a&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){let o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}}if(t.operand.type==="ArithDynamicElement"){let a="";if(t.operand.nameExpr.type==="ArithConcat")for(let o of t.operand.nameExpr.parts)a+=await mn(e,o,n,r);else t.operand.nameExpr.type==="ArithVariable"&&(a=t.operand.nameExpr.hasDollarPrefix?await re(e,t.operand.nameExpr.name):t.operand.nameExpr.name);if(a&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){let o=await s(t.operand.subscript),l=Number.parseInt(se(e,a,o)||"0",10)||0,c=t.operator==="++"?l+1:l-1;return F(e,a,o,String(c)),t.prefix?c:l}}return i}return ad(i,t.operator)}case"ArithTernary":return await s(t.condition)?await s(t.consequent):await s(t.alternate);case"ArithAssignment":{let i=t.variable,a=i,o;if(t.stringKey!==void 0)o=t.stringKey;else if(t.subscript){let d=e.state.associativeArrays?.has(i);if(d&&t.subscript.type==="ArithVariable"&&!t.subscript.hasDollarPrefix)o=t.subscript.name;else if(d&&t.subscript.type==="ArithVariable"&&t.subscript.hasDollarPrefix)o=await re(e,t.subscript.name)||"\\";else if(d){let p=await s(t.subscript);o=String(p)}else{let p=await s(t.subscript);if(p<0){let h=z(e,i);h.length>0&&(p=Math.max(...h.map(([E])=>typeof E=="number"?E:0))+1+p)}o=String(p)}}let l=o===void 0?e.state.env.get(a):se(e,i,o),c=Number.parseInt(l||"0",10)||0,u=await s(t.value),f=Ul(c,u,t.operator);return o===void 0?e.state.env.set(a,String(f)):F(e,i,o,String(f),e.state.associativeArrays?.has(i)?"associative":"indexed"),f}case"ArithGroup":return await s(t.expression);case"ArithConcat":{let i="";for(let a of t.parts)i+=await mn(e,a,n,r);return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i)?await ai(e,i,r):Number.parseInt(i,10)||0}case"ArithDynamicAssignment":{let i="";if(t.target.type==="ArithConcat")for(let u of t.target.parts)i+=await mn(e,u,n,r);else t.target.type==="ArithVariable"&&(i=t.target.hasDollarPrefix?await re(e,t.target.name):t.target.name);if(!i||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return 0;let a=i;if(t.subscript){let u=await s(t.subscript);a=`${i}_${u}`}let o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=await s(t.value),c=Ul(o,l,t.operator);return e.state.env.set(a,String(c)),c}case"ArithDynamicElement":{let i="";if(t.nameExpr.type==="ArithConcat")for(let c of t.nameExpr.parts)i+=await mn(e,c,n,r);else t.nameExpr.type==="ArithVariable"&&(i=t.nameExpr.hasDollarPrefix?await re(e,t.nameExpr.name):t.nameExpr.name);if(!i||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return 0;let a=await s(t.subscript),o=`${i}_${a}`,l=e.state.env.get(o);return l!==void 0?Rr(e,o,l,r):0}default:return 0}}async function mn(e,t,n=!1,r=jl()){switch(t.type){case"ArithNumber":return String(t.value);case"ArithSingleQuote":return String(await yn(e,t,n,r));case"ArithVariable":return t.hasDollarPrefix?await re(e,t.name):t.name;case"ArithSpecialVar":return await re(e,t.name);case"ArithBracedExpansion":return await Ir(e,t.content);case"ArithCommandSubst":return e.execFn?(await e.execFn(t.command,{signal:e.state.signal})).stdout.trim():"0";case"ArithConcat":{let s="";for(let i of t.parts)s+=await mn(e,i,n,r);return s}default:return String(await yn(e,t,n,r))}}async function Gl(e,t){let n="",r=0;for(let v of t.parts){let A=v.type==="Literal"?v.value:"\0",x=T(A);if(x>e.limits.maxStringLength-r)throw new $(`array assignment string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");n+=A,r+=x}let s=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!s||!n.endsWith(")"))return null;let i=s[1],a=[],o=[],l=!1,c="",u=0,f=0,d=!1,p=!0,h=v=>{let A=T(v);if(A>e.limits.maxStringLength-f-u)throw new $(`array assignment string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");c+=v,u+=A},m=(v,A=!1)=>{if(a.length>=e.limits.maxArrayElements)throw new $(`array assignment element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let x=T(v);if(x>e.limits.maxStringLength-f)throw new $(`array assignment string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");a.push(v),o.push(A),f+=x},E=()=>{m(c,p),c="",u=0,d=!1,p=!0};for(let v of t.parts)if(v.type==="Literal"){let A=v.value;if(!l){let x=A.indexOf("=(");x!==-1&&(l=!0,A=A.slice(x+2))}if(l){A.endsWith(")")&&(A=A.slice(0,-1));for(let x of A)/\s/.test(x)?(c||d)&&E():h(x)}}else if(l)if(v.type==="BraceExpansion")if(/^\[.+\]=/.test(c))h(fn({type:"Word",parts:[v]}));else{(c||d)&&E();let x=await at(e,{type:"Word",parts:[v]});for(let P of x.values)m(P)}else{(v.type==="SingleQuoted"||v.type==="DoubleQuoted"||v.type==="Escaped")&&(d=!0),p=!1;let A=await W(e,{type:"Word",parts:[v]});h(A)}(c||d)&&E();let b=a.splice(0),g=o.splice(0);f=0;for(let v=0;v<b.length;v++){let A=b[v];if(!g[v]){m(A);continue}let x=A.match(/^(\[[^\]]+\]=)(.*)$/s);if(x){let P=_t(e,x[2]);A=x[1]+P}if(A.includes("{")&&A.includes("}")){let P=new V().parseWordFromString(A,!1,!1);if(P.parts.some(D=>D.type==="BraceExpansion")){let D=await at(e,P);for(let I of D.values)m(I);continue}}m(A)}let w=[`${i}=(`],S=T(w[0]);for(let v=0;v<a.length;v++){let A=a[v],x;/^\[.+\]=/.test(A)?x=A:A===""?x="''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(A)&&!A.startsWith("'")&&!A.startsWith('"')?x=`'${A.replace(/'/g,"'\\''")}'`:x=A;let P=`${v>0?" ":""}${x}`,D=T(P);if(D+1>e.limits.maxStringLength-S)throw new $(`array assignment string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");w.push(P),S+=D}return w.push(")"),w.join("")}async function Zl(e,t){let n=-1,r=-1,s=!1;for(let m=0;m<t.parts.length;m++){let E=t.parts[m];if(E.type==="Literal"){let b=E.value.indexOf("+=");if(b!==-1){let w=E.value.slice(0,b);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)){n=m,r=b,s=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(w)){n=m,r=b,s=!0;break}}let g=E.value.indexOf("=");if(g!==-1&&(g===0||E.value[g-1]!=="+")){let w=E.value.slice(0,g);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(w)){n=m,r=g;break}}}}if(n===-1)return null;let i=t.parts.slice(0,n),a=t.parts[n];if(a.type!=="Literal")return null;let o=s?2:1,l=a.value.slice(0,r),c=a.value.slice(r+o),u=t.parts.slice(n+1),f="";for(let m of i)f+=await W(e,{type:"Word",parts:[m]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},p=d.parts.length>0?await W(e,d):"";return`${f}${s?"+=":"="}${p}`}var cd=["tar","yq","xan","sqlite3","python3","python"];function Hl(e){return cd.includes(e)}var te=Object.freeze({stdout:"",stderr:"",exitCode:0});function X(e=""){return{stdout:e,stderr:"",exitCode:0}}function R(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function _(e,t,n){return{stdout:e,stderr:t,exitCode:n}}function ye(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function Lt(e,t,n="",r=""){throw new $(e,t,n,r)}function Ve(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new $(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function oi(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new St;return te}if(t.length>1)throw new j(1,"",`bash: break: too many arguments
85
+ `);let n=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new j(128,"",`bash: break: ${t[0]}: numeric argument required
86
+ `);n=r}throw new qe(n)}async function li(e,t){let n,r=!1,s=!1,i=0;for(;i<t.length;)if(t[i]==="--"){i++;break}else if(t[i]==="-L")s=!1,i++;else if(t[i]==="-P")s=!0,i++;else if(t[i].startsWith("-")&&t[i]!=="-")i++;else break;let a=t.slice(i);if(a.length===0||a[0]==="~"?n=e.state.env.get("HOME")||"/":a[0]==="-"?(n=e.state.previousDir,r=!0):n=a[0],!n.startsWith("/")&&!n.startsWith("./")&&!n.startsWith("../")&&n!=="."&&n!==".."){let f=e.state.env.get("CDPATH");if(f){let d=f.split(":").filter(p=>p);for(let p of d){let h=p.startsWith("/")?`${p}/${n}`:`${e.state.cwd}/${p}/${n}`;try{if((await e.fs.stat(h)).isDirectory){n=h,r=!0;break}}catch{}}}}let l=(n.startsWith("/")?n:`${e.state.cwd}/${n}`).split("/").filter(f=>f&&f!=="."),c="";for(let f of l)if(f==="..")c=c.split("/").slice(0,-1).join("/")||"/";else{c=c?`${c}/${f}`:`/${f}`;try{if(!(await e.fs.stat(c)).isDirectory)return R(`bash: cd: ${n}: Not a directory
87
+ `)}catch{return R(`bash: cd: ${n}: No such file or directory
88
+ `)}}let u=c||"/";if(s)try{u=await e.fs.realpath(u)}catch{}return e.state.previousDir=e.state.cwd,e.state.cwd=u,e.state.env.set("PWD",e.state.cwd),e.state.env.set("OLDPWD",e.state.previousDir),X(r?`${u}
89
+ `:"")}function ci(e,t){return e.fs.resolvePath(e.state.cwd,t)}var ud=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function _r(e){return ud.includes(e)}async function Or(e,t,n){let r=ci(e,n);switch(t){case"-e":case"-a":return e.fs.exists(r);case"-f":return await e.fs.exists(r)?(await e.fs.stat(r)).isFile:!1;case"-d":return await e.fs.exists(r)?(await e.fs.stat(r)).isDirectory:!1;case"-r":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&256)!==0:!1;case"-w":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&128)!==0:!1;case"-x":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&64)!==0:!1;case"-s":return await e.fs.exists(r)?(await e.fs.stat(r)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(r)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&512)!==0:!1;case"-g":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(r);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].includes(r);case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return e.fs.exists(r);default:return!1}}var fd=["-nt","-ot","-ef"];function Lr(e){return fd.includes(e)}async function Tr(e,t,n,r){let s=ci(e,n),i=ci(e,r);switch(t){case"-nt":{let[a,o]=await Promise.all([e.fs.stat(s).catch(()=>null),e.fs.stat(i).catch(()=>null)]);return a!==null&&(o===null||a.mtime>o.mtime)}case"-ot":{let[a,o]=await Promise.all([e.fs.stat(s).catch(()=>null),e.fs.stat(i).catch(()=>null)]);return o!==null&&(a===null||a.mtime<o.mtime)}case"-ef":try{let[a,o]=await Promise.all([e.fs.realpath(s),e.fs.realpath(i)]);if(a===o)return!0;let[l,c]=await Promise.all([e.fs.stat(s),e.fs.stat(i)]);return l.dev!==void 0&&l.ino!==void 0&&c.dev!==void 0&&c.ino!==void 0?l.dev===c.dev&&l.ino===c.ino:l.identity&&c.identity?l.identity===c.identity:!1}catch{return!1}default:return!1}}var dd=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function Mr(e){return dd.has(e)}function Br(e,t,n){switch(e){case"-eq":return t===n;case"-ne":return t!==n;case"-lt":return t<n;case"-le":return t<=n;case"-gt":return t>n;case"-ge":return t>=n}}function Vn(e){return e==="="||e==="=="||e==="!="}function Wr(e,t,n,r=!1,s=!1,i=!1,a=256){if(r){let l=gn(t,n,s,i,a);return e==="!="?!l:l}if(s){let l=t.toLowerCase()===n.toLowerCase();return e==="!="?!l:l}let o=t===n;return e==="!="?!o:o}var pd=new Set(["-z","-n"]);function Fr(e){return pd.has(e)}function Vr(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}async function zr(e,t){let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(n){let r=n[1],s=n[2];if(e.state.associativeArrays?.has(r)){let o=s;return(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),o=o.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(l,c)=>e.state.env.get(c)||""),Nt(e,r,o)}let a;try{let o=new V,l=ne(o,s);a=await Z(e,l.expression)}catch{if(/^-?\d+$/.test(s))a=Number.parseInt(s,10);else{let o=e.state.env.get(s);a=o?Number.parseInt(o,10):0}}if(a<0){let o=Ee(e,r),l=e.state.currentLine;if(o.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
90
+ `,!1;if(a=Math.max(...o)+1+a,a<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
91
+ `,!1}return Nt(e,r,a)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?ut(e,t).length>0:Ee(e,t).length>0}async function Tt(e,t){switch(t.type){case"CondBinary":{let n=await W(e,t.left),r=t.right.parts.length>0&&t.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped"&&t.operator!=="=~"),s;if(t.operator==="=~")if(r){let i=await W(e,t.right);s=Bn(i)}else s=await Wl(e,t.right);else Vn(t.operator)&&!r?s=await Fl(e,t.right):s=await W(e,t.right);if(Vn(t.operator)){let i=e.state.shoptOptions.nocasematch;return Wr(t.operator,n,s,!r,i,!0,e.limits.maxCallDepth)}if(Mr(t.operator))return Br(t.operator,await Kl(e,n),await Kl(e,s));if(Lr(t.operator))return Tr(e,t.operator,n,s);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,a=wd(s),l=he(a,i?"i":"").match(n);if(me(e,"BASH_REMATCH"),l)for(let c=0;c<l.length;c++)F(e,"BASH_REMATCH",c,l[c]||"");return l!==null}catch{throw new Error("syntax error in regular expression")}case"<":return n<s;case">":return n>s;default:return!1}}case"CondUnary":{let n=await W(e,t.operand);return _r(t.operator)?Or(e,t.operator,n):Fr(t.operator)?Vr(t.operator,n):t.operator==="-v"?await zr(e,n):t.operator==="-o"?fi(e,n):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await W(e,t.operand.expression.word)})`!=="":!await Tt(e,t.operand);case"CondAnd":return await Tt(e,t.left)?await Tt(e,t.right):!1;case"CondOr":return await Tt(e,t.left)?!0:await Tt(e,t.right);case"CondGroup":return await Tt(e,t.expression);case"CondWord":return await W(e,t.word)!=="";default:return!1}}async function zn(e,t){if(t.length===0)return _("","",1);if(t.length===1)return ye(!!t[0]);if(t.length===2){let r=t[0],s=t[1];return r==="("?R(`test: '(' without matching ')'
92
+ `,2):_r(r)?ye(await Or(e,r,s)):Fr(r)?ye(Vr(r,s)):r==="!"?ye(!s):r==="-v"?ye(await zr(e,s)):r==="-o"?ye(fi(e,s)):r==="="||r==="=="||r==="!="||r==="<"||r===">"||r==="-eq"||r==="-ne"||r==="-lt"||r==="-le"||r==="-gt"||r==="-ge"||r==="-nt"||r==="-ot"||r==="-ef"?R(`test: ${r}: unary operator expected
93
+ `,2):_("","",1)}if(t.length===3){let r=t[0],s=t[1],i=t[2];if(Vn(s))return ye(Wr(s,r,i));if(Mr(s)){let a=qr(r),o=qr(i);return!a.valid||!o.valid?_("","",2):ye(Br(s,a.value,o.value))}if(Lr(s))return ye(await Tr(e,s,r,i));switch(s){case"-a":return ye(r!==""&&i!=="");case"-o":return ye(r!==""||i!=="");case">":return ye(r>i);case"<":return ye(r<i)}if(r==="!"){let a=await zn(e,[s,i]);return _("",a.stderr,a.exitCode===0?1:a.exitCode===1?0:a.exitCode)}if(r==="("&&i===")")return ye(s!=="")}if(t.length===4){if(t[0]==="!"){let r=await zn(e,t.slice(1));return _("",r.stderr,r.exitCode===0?1:r.exitCode===1?0:r.exitCode)}if(t[0]==="("&&t[3]===")")return zn(e,[t[1],t[2]])}let n=await Yl(e,t,0);return n.pos<t.length?R(`test: too many arguments
94
+ `,2):ye(n.value)}async function Yl(e,t,n){return hd(e,t,n)}async function hd(e,t,n){let{value:r,pos:s}=await Ql(e,t,n);for(;t[s]==="-o";){let i=await Ql(e,t,s+1);r=r||i.value,s=i.pos}return{value:r,pos:s}}async function Ql(e,t,n){let{value:r,pos:s}=await ui(e,t,n);for(;t[s]==="-a";){let i=await ui(e,t,s+1);r=r&&i.value,s=i.pos}return{value:r,pos:s}}async function ui(e,t,n){let r=e.executionScope.enterDepth("test_expression",e.limits.maxCallDepth,"test expression");try{if(t[n]==="!"){let{value:s,pos:i}=await ui(e,t,n+1);return{value:!s,pos:i}}return md(e,t,n)}finally{r.release()}}async function md(e,t,n){let r=t[n];if(r==="("){let{value:i,pos:a}=await Yl(e,t,n+1);return{value:i,pos:t[a]===")"?a+1:a}}let s=t[n+1];if(Vn(s)){let i=r,a=t[n+2]??"";return{value:Wr(s,i,a),pos:n+3}}if(Mr(s)){let i=qr(r),a=qr(t[n+2]??"0");return!i.valid||!a.valid?{value:!1,pos:n+3}:{value:Br(s,i.value,a.value),pos:n+3}}if(Lr(s)){let i=r,a=t[n+2]??"";return{value:await Tr(e,s,i,a),pos:n+3}}if(_r(r)){let i=t[n+1]??"";return{value:await Or(e,r,i),pos:n+2}}if(Fr(r)){let i=t[n+1]??"";return{value:Vr(r,i),pos:n+2}}if(r==="-v"){let i=t[n+1]??"";return{value:await zr(e,i),pos:n+2}}if(r==="-o"){let i=t[n+1]??"";return{value:fi(e,i),pos:n+2}}return{value:r!==void 0&&r!=="",pos:n+1}}function gn(e,t,n=!1,r=!1,s=256){r&&yd(t,s);let i=`^${Jl(t,r)}$`;return he(i,n?"is":"s").test(e)}function yd(e,t){let n=0,r=[];for(let s=0;s<e.length;s++){if(e[s]==="\\"){s++;continue}if(e[s]==="("){let i=s>0&&"@*+?!".includes(e[s-1]);if(r.push(i),i&&n++,n>t)throw new $(`extglob maximum depth (${t}) exceeded`,"recursion")}else e[s]===")"&&r.length>0&&r.pop()&&n--}}function Jl(e,t){let n="";for(let r=0;r<e.length;r++){let s=e[r];if(t&&(s==="@"||s==="*"||s==="+"||s==="?"||s==="!")&&r+1<e.length&&e[r+1]==="("){let i=ec(e,r+1);if(i!==-1){let a=e.slice(r+2,i),o=tc(a),l=o.map(u=>Jl(u,t)),c=l.length>0?l.join("|"):"(?:)";if(s==="@")n+=`(?:${c})`;else if(s==="*")n+=`(?:${c})*`;else if(s==="+")n+=`(?:${c})+`;else if(s==="?")n+=`(?:${c})?`;else if(s==="!")if(i<e.length-1){let f=o.map(p=>nc(p,t));if(f.every(p=>p!==null)&&f.every(p=>p===f[0])&&f[0]!==null){let p=f[0];if(p===0)n+="(?:.+)";else{let h=[];p>0&&h.push(`.{0,${p-1}}`),h.push(`.{${p+1},}`),h.push(`(?!(?:${c})).{${p}}`),n+=`(?:${h.join("|")})`}}else n+=`(?:(?!(?:${c})).)*?`}else n+=`(?!(?:${c})$).*`;r=i;continue}}if(s==="\\")if(r+1<e.length){let i=e[r+1];/[\\^$.|+(){}[\]*?]/.test(i)?n+=`\\${i}`:n+=i,r++}else n+="\\\\";else if(s==="*")n+=".*";else if(s==="?")n+=".";else if(s==="["){let i=e.indexOf("]",r+1);i!==-1?(n+=e.slice(r,i+1),r=i):n+="\\["}else/[\\^$.|+(){}]/.test(s)?n+=`\\${s}`:n+=s}return n}function ec(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;){let s=e[r];if(s==="\\"){r+=2;continue}if(s==="(")n++;else if(s===")"&&(n--,n===0))return r;r++}return-1}function tc(e){let t=[],n="",r=0,s=0;for(;s<e.length;){let i=e[s];if(i==="\\"){n+=i,s+1<e.length?(n+=e[s+1],s+=2):s++;continue}i==="("?(r++,n+=i):i===")"?(r--,n+=i):i==="|"&&r===0?(t.push(n),n=""):n+=i,s++}return t.push(n),t}function nc(e,t){let n=0,r=0;for(;r<e.length;){let s=e[r];if(t&&(s==="@"||s==="*"||s==="+"||s==="?"||s==="!")&&r+1<e.length&&e[r+1]==="("){let i=ec(e,r+1);if(i!==-1){if(s==="@"){let a=e.slice(r+2,i),l=tc(a).map(c=>nc(c,t));if(l.every(c=>c!==null)&&l.every(c=>c===l[0])){n+=l[0],r=i+1;continue}return null}return null}}if(s==="*")return null;if(s==="?"){n+=1,r++;continue}if(s==="["){let i=e.indexOf("]",r+1);if(i!==-1){n+=1,r=i+1;continue}n+=1,r++;continue}if(s==="\\"){n+=1,r+=2;continue}n+=1,r++}return n}function fi(e,t){let r=new Map([["errexit",()=>e.state.options.errexit===!0],["nounset",()=>e.state.options.nounset===!0],["pipefail",()=>e.state.options.pipefail===!0],["xtrace",()=>e.state.options.xtrace===!0],["e",()=>e.state.options.errexit===!0],["u",()=>e.state.options.nounset===!0],["x",()=>e.state.options.xtrace===!0]]).get(t);return r?r():!1}async function Kl(e,t){if(t=t.trim(),t==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(t))return Xl(t);try{let n=new V,r=ne(n,t);return await Z(e,r.expression)}catch{return Xl(t)}}function gd(e,t){let n=0;for(let r of e){let s;if(r>="0"&&r<="9")s=r.charCodeAt(0)-48;else if(r>="a"&&r<="z")s=r.charCodeAt(0)-97+10;else if(r>="A"&&r<="Z")s=r.charCodeAt(0)-65+36;else if(r==="@")s=62;else if(r==="_")s=63;else return Number.NaN;if(s>=t)return Number.NaN;n=n*t+s}return n}function Xl(e){if(e=e.trim(),e==="")return 0;let t=!1;e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1));let n,r=e.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(r){let s=Number.parseInt(r[1],10);s>=2&&s<=64?n=gd(r[2],s):n=0}else/^0[xX][0-9a-fA-F]+$/.test(e)?n=Number.parseInt(e,16):/^0[0-7]+$/.test(e)?n=Number.parseInt(e,8):n=Number.parseInt(e,10);return Number.isNaN(n)&&(n=0),t?-n:n}function qr(e){if(e=e.trim(),e==="")return{value:0,valid:!0};let t=!1;if(e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1)),!/^\d+$/.test(e))return{value:0,valid:!1};let n=Number.parseInt(e,10);return Number.isNaN(n)?{value:0,valid:!1}:{value:t?-n:n,valid:!0}}function wd(e){let t="",n=0;for(;n<e.length;)if(e[n]==="\\"&&n+1<e.length)t+=e[n]+e[n+1],n+=2;else if(e[n]==="["){let r=Ed(e,n);t+=r.converted,n=r.endIndex}else t+=e[n],n++;return t}function Ed(e,t){let n=t+1,r="[";n<e.length&&(e[n]==="^"||e[n]==="!")&&(r+="^",n++);let s=!1;n<e.length&&e[n]==="]"&&(s=!0,n++);let i=!1;n<e.length&&e[n]==="["&&n+1<e.length&&e[n+1]!==":"&&(i=!0,n++);let a="",o=!1;for(;n<e.length;){let l=e[n];if(l==="]"){o=!0,n++;break}if(l==="["&&n+1<e.length&&e[n+1]===":"){let c=e.indexOf(":]",n+2);if(c!==-1){let u=e.slice(n+2,c);a+=bd(u),n=c+2;continue}}if(l==="["&&n+1<e.length){let c=e[n+1];if(c==="."||c==="="){let u=`${c}]`,f=e.indexOf(u,n+2);if(f!==-1){let d=e.slice(n+2,f);a+=d,n=f+2;continue}}}if(l==="\\"&&n+1<e.length){a+=l+e[n+1],n+=2;continue}a+=l,n++}return o?(s&&(r+="\\]"),i&&(r+="\\["),r+=a,r+="]",{converted:r,endIndex:n}):{converted:"\\[",endIndex:t+1}}function bd(e){return new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]).get(e)??""}function di(e,t,n){if(n&&e.length>=n.maxElements)throw new $(`array element limit exceeded (${n.maxElements})`,"array_elements");e.push(t)}function Et(e,t){if(t&&T(e)>t.maxStringBytes)throw new $(`array assignment string limit exceeded (${t.maxStringBytes} bytes)`,"string_length");let n=[],r="",s=!1,i=!1,a=!1,o=!1;for(let l of e){if(a){r+=l,a=!1,o=!0;continue}if(l==="\\"){a=!0;continue}if(l==="'"&&!i){s||(o=!0),s=!s;continue}if(l==='"'&&!s){i||(o=!0),i=!i;continue}if((l===" "||l===" "||l===`
95
+ `)&&!s&&!i){o&&(di(n,r,t),r="",o=!1);continue}r+=l,o=!0}return o&&di(n,r,t),n}function Ur(e,t){if(t&&T(e)>t.maxStringBytes)throw new $(`array assignment string limit exceeded (${t.maxStringBytes} bytes)`,"string_length");let n=[],r=0;for(;r<e.length;){for(;r<e.length&&/\s/.test(e[r]);)r++;if(r>=e.length)break;if(e[r]!=="["){r++;continue}r++;let s="";if(e[r]==="'"||e[r]==='"'){let a=e[r];for(r++;r<e.length&&e[r]!==a;)s+=e[r],r++;e[r]===a&&r++}else for(;r<e.length&&e[r]!=="]"&&e[r]!=="=";)s+=e[r],r++;for(;r<e.length&&e[r]!=="]";)r++;if(e[r]==="]"&&r++,e[r]!=="=")continue;r++;let i="";if(e[r]==="'"||e[r]==='"'){let a=e[r];for(r++;r<e.length&&e[r]!==a;)e[r]==="\\"&&r+1<e.length&&r++,i+=e[r],r++;e[r]===a&&r++}else for(;r<e.length&&!/\s/.test(e[r]);)i+=e[r],r++;di(n,[s,i],t)}return n}function rc(e,t){let n=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(n)return{name:n[1],isArray:!0,arrayElements:Et(n[2],t)};let r=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(r)return{name:r[1],isArray:!1,arrayIndex:r[2],value:r[3]};if(e.includes("=")){let s=e.indexOf("=");return{name:e.slice(0,s),isArray:!1,value:e.slice(s+1)}}return{name:e,isArray:!1}}async function Sd(e,t){try{let n=new V,r=ne(n,t);return await Z(e,r.expression)}catch{let n=parseInt(t,10);return Number.isNaN(n)?0:n}}async function sc(e,t,n={}){let{name:r,isArray:s,arrayElements:i,value:a,arrayIndex:o}=t,{makeReadonly:l=!1,checkReadonly:c=!0}=n;if(c){let u=oe(e,r);if(u)return u}if(s&&i){e.executionScope.consumeWork(i.length,"array assignment");let u=Se(e,r),f=u?De(u):void 0,d=e.state.env.get(r);try{me(e,r);for(let p=0;p<i.length;p++)F(e,r,p,i[p]);e.state.env.delete(r)}catch(p){throw e.state.arrays??=new Map,f?e.state.arrays.set(r,f):e.state.arrays.delete(r),d===void 0?e.state.env.delete(r):e.state.env.set(r,d),p}}else if(o!==void 0&&a!==void 0){let u=await Sd(e,o);F(e,r,u,a)}else a!==void 0&&e.state.env.set(r,a);return l&&Fe(e,r),null}function Mt(e,t){e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,e.state.callDepth)}function pi(e,t){return e.state.localVarDepth?.get(t)}function jr(e,t){e.state.localVarDepth?.delete(t)}function ic(e,t,n){e.state.localVarStack=e.state.localVarStack||new Map;let r=e.state.localVarStack.get(t)||[];r.push({value:n,scopeIndex:e.state.localScopes.length-1}),e.state.localVarStack.set(t,r)}function Gr(e,t){let n=e.state.localVarStack?.get(t);if(!(!n||n.length===0))return n.pop()}function ac(e,t){if(e.state.localVarStack)for(let[n,r]of e.state.localVarStack.entries()){for(;r.length>0&&r[r.length-1].scopeIndex===t;)r.pop();r.length===0&&e.state.localVarStack.delete(n)}}var hi=new Set([":",".","break","continue","eval","exec","exit","export","readonly","return","set","shift","trap","unset"]);function oc(e){return hi.has(e)}var mi=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),wn=new Set([":","true","false","cd","export","unset","exit","local","set","break","continue","return","eval","shift","getopts","compgen","complete","compopt","pushd","popd","dirs","source",".","read","mapfile","readarray","declare","typeset","readonly","let","command","shopt","exec","test","[","echo","printf","pwd","alias","unalias","type","hash","ulimit","umask","trap","times","wait","kill","jobs","fg","bg","disown","suspend","fc","history","help","enable","builtin","caller"]);var Zr=class extends Error{};async function qn(e,t,n,r){try{if(!await e.fs.exists(t))return null;if((await e.fs.stat(t)).isDirectory)return`bash: ${n}: Is a directory
96
+ `;if(r.checkNoclobber&&e.state.options.noclobber&&!r.isClobber&&n!=="/dev/null")return`bash: ${n}: cannot overwrite existing file
97
+ `}catch{return`bash: ${n}: cannot open redirect target
98
+ `}return null}function En(e){let n=Math.min(e.length,8192);for(let r=0;r<n;r++)if(e.charCodeAt(r)>127)return"utf8";return"binary"}function Ad(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),n=t.indexOf(":");if(n===-1)return null;let r=Number.parseInt(t.slice(0,n),10);if(Number.isNaN(r)||r<0)return null;let s=n+1,i=t.slice(s,s+r),a=s+r+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}async function yi(e,t){let n=new Map;for(let r=0;r<t.length;r++){let s=t[r];if(s.target.type==="HereDoc")continue;if(s.operator===">&"||s.operator==="<&"){if(Fn(e,s.target))return{targets:n,error:`bash: $@: ambiguous redirect
99
+ `};n.set(r,await W(e,s.target))}else{let a=await Dr(e,s.target);if("error"in a)return{targets:n,error:a.error};n.set(r,a.target)}}return{targets:n}}function vd(e){e.state.nextFd===void 0&&(e.state.nextFd=10);let t=e.state.nextFd,n=e.limits.maxFileDescriptors;if(t>=n)throw new Error(`bash: cannot allocate file descriptor: too many open files (max ${n})`);return e.state.nextFd++,t}async function Hr(e,t,n){for(let r=0;r<t.length;r++){let s=t[r];if(!s.fdVariable||s.target.type!=="Word")continue;oe(e,s.fdVariable);let i=s.operator===">&"||s.operator==="<&",a=n?.get(r);if(a===void 0)if(i){if(Fn(e,s.target))return _("",`bash: $@: ambiguous redirect
100
+ `,1);a=await W(e,s.target)}else{let c=await Dr(e,s.target);if("error"in c)return _("",c.error,1);a=c.target}if(a.includes("\0"))return _("",`bash: ${a.replace(/\0/g,"")}: No such file or directory
101
+ `,1);if(e.state.fileDescriptors??=new Map,i&&a==="-"){let c=e.state.env.get(s.fdVariable);if(c!==void 0){let u=Number.parseInt(c,10);Number.isNaN(u)||e.state.fileDescriptors.delete(u)}continue}let o;if(i){let c=Number.parseInt(a,10);Number.isNaN(c)||(o=e.state.fileDescriptors.get(c))}else if(s.operator===">"||s.operator===">>"||s.operator===">|"||s.operator==="&>"||s.operator==="&>>"){let c=e.fs.resolvePath(e.state.cwd,a),u=s.operator===">>"||s.operator==="&>>",f=u?{checkNoclobber:!1}:{checkNoclobber:!0,isClobber:s.operator===">|"},d=await qn(e,c,a,f);if(d)return _("",d,1);Ve(e),u?await e.fs.appendFile(c,"","binary"):await e.fs.writeFile(c,"","binary"),o=`__file__:${c}`}else if(s.operator==="<<<")o=`${a}
102
+ `;else if(s.operator==="<"||s.operator==="<>")try{let c=e.fs.resolvePath(e.state.cwd,a);o=await e.fs.readFile(c)}catch{return _("",`bash: ${a}: No such file or directory
103
+ `,1)}Ve(e);let l=vd(e);e.state.env.set(s.fdVariable,String(l)),o!==void 0&&e.state.fileDescriptors.set(l,o)}return null}async function ot(e,t){for(let s of t)s.fdVariable&&oe(e,s.fdVariable);let n=await yi(e,t);if(n.error)return{targets:n.targets,error:_("",n.error,1)};let r=[];for(let s=0;s<t.length;s++){let i=t[s];if(i.target.type==="HereDoc")continue;let a=i.operator===">&";if(i.operator!==">"&&i.operator!==">|"&&i.operator!=="&>"&&!a)continue;let o=n.targets.get(s);if(o===void 0||a&&(o==="-"||!Number.isNaN(Number.parseInt(o,10))||i.fd!=null))continue;let l=e.fs.resolvePath(e.state.cwd,o),c=i.operator===">|";if(l.includes("\0"))return{targets:n.targets,error:_("",`bash: ${o}: No such file or directory
104
+ `,1)};try{if(!await e.fs.exists(l))throw new Zr;let f=await e.fs.stat(l);if(f.isDirectory)return{targets:n.targets,error:_("",`bash: ${o}: Is a directory
105
+ `,1)};if(e.state.options.noclobber&&!c&&!f.isDirectory&&o!=="/dev/null")return{targets:n.targets,error:_("",`bash: ${o}: cannot overwrite existing file
106
+ `,1)}}catch(u){if(!(u instanceof Zr))return{targets:n.targets,error:_("",`bash: ${o}: cannot open redirect target
107
+ `,1)}}if(o==="/dev/full")return{targets:n.targets,error:_("",`bash: /dev/full: No space left on device
108
+ `,1)};o!=="/dev/null"&&o!=="/dev/stdout"&&o!=="/dev/stderr"&&r.push({filePath:l,target:o})}for(let{filePath:s,target:i}of r)try{await e.fs.writeFile(s,"","binary")}catch{return{targets:n.targets,error:_("",`bash: ${i}: cannot open redirect target
109
+ `,1)}}return{targets:n.targets,error:null}}async function pe(e,t,n,r){n.length>0&&(t=e.executionScope.accountResult(t,"redirection"));let{stdout:s,stderr:i,exitCode:a}=t,l=t.stdoutKind==="bytes"||t.stdoutKind===void 0&&t.stdoutEncoding==="binary"?"binary":"utf8",c=E=>l,u={kind:"live-stdout"},f={kind:"live-stderr"};for(let E=0;E<n.length;E++){let b=n[E];if(b.target.type==="HereDoc")continue;let g,w=r?.get(E);if(w!==void 0)g=w;else if(b.operator===">&"||b.operator==="<&"){if(Fn(e,b.target)){i+=`bash: $@: ambiguous redirect
110
+ `,a=1,s="";continue}g=await W(e,b.target)}else{let v=await Dr(e,b.target);if("error"in v){i+=v.error,a=1,s="";continue}g=v.target}if(!b.fdVariable){if(g.includes("\0")){i+=`bash: ${g.replace(/\0/g,"")}: No such file or directory
111
+ `,a=1,s="";continue}switch(b.operator){case">":case">|":case">>":{let S=b.fd??1;if(S!==1&&S!==2)break;let v=b.operator===">>",A=b.operator===">|";if(g==="/dev/stdout"){S===2&&(f=u);break}if(g==="/dev/stderr"){S===1&&(u=f);break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
112
+ `,a=1,S===1&&(s="");break}if(g==="/dev/null"&&S===2){f={kind:"discard"};break}let x=e.fs.resolvePath(e.state.cwd,g),P=await qn(e,x,g,{...v?{}:{checkNoclobber:!0,isClobber:A}});if(P){i+=P,a=1,S===1&&(s="");break}v?await e.fs.appendFile(x,"","binary"):await e.fs.writeFile(x,"","binary"),S===1?u={kind:"file",path:x,append:v}:f={kind:"file",path:x,append:v};break}case">&":case"<&":{let S=b.fd??1;if(g==="-")break;if(g.endsWith("-")){let v=g.slice(0,-1),A=Number.parseInt(v,10);if(!Number.isNaN(A)){let x=e.state.fileDescriptors?.get(A);x!==void 0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(S,x),A>=3&&e.state.fileDescriptors?.delete(A)):A===1||A===2?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(S,`__dupout__:${A}`)):A===0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(S,`__dupin__:${A}`)):A>=3&&(i+=`bash: ${A}: Bad file descriptor
113
+ `,a=1)}break}if(g==="2"||g==="&2")S===1&&(u=f);else if(g==="1"||g==="&1")S===2?f=u:(s+=i,i="");else{let v=Number.parseInt(g,10);if(Number.isNaN(v)){if(b.operator===">&"){let A=e.fs.resolvePath(e.state.cwd,g),x=await qn(e,A,g,{checkNoclobber:!0});if(x){i=x,a=1,s="";break}await e.fs.writeFile(A,"","binary"),b.fd==null?(u={kind:"file",path:A,append:!1},f=u):S===1?u={kind:"file",path:A,append:!1}:S===2&&(f={kind:"file",path:A,append:!1})}}else{let A=e.state.fileDescriptors?.get(v);if(A?.startsWith("__file__:")){let x=A.slice(9);S===1?(await e.fs.appendFile(x,s,c(s)),s=""):S===2&&(await e.fs.appendFile(x,i,En(i)),i="")}else if(A?.startsWith("__rw__:")){let x=Ad(A);x&&(S===1?(await e.fs.appendFile(x.path,s,c(s)),s=""):S===2&&(await e.fs.appendFile(x.path,i,En(i)),i=""))}else if(A?.startsWith("__dupout__:")){let x=Number.parseInt(A.slice(11),10);if(x!==1)if(x===2)S===1&&(i+=s,s="");else{let P=e.state.fileDescriptors?.get(x);if(P?.startsWith("__file__:")){let D=P.slice(9);S===1?(await e.fs.appendFile(D,s,c(s)),s=""):S===2&&(await e.fs.appendFile(D,i,En(i)),i="")}}}else A?.startsWith("__dupin__:")?(i+=`bash: ${v}: Bad file descriptor
114
+ `,a=1,s=""):v>=3&&(i+=`bash: ${v}: Bad file descriptor
115
+ `,a=1,s="")}}break}case"&>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
116
+ `,a=1,s="";break}let S=e.fs.resolvePath(e.state.cwd,g),v=await qn(e,S,g,{checkNoclobber:!0});if(v){i=v,a=1,s="";break}await e.fs.writeFile(S,"","binary"),u={kind:"file",path:S,append:!1},f=u;break}case"&>>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
117
+ `,a=1,s="";break}let S=e.fs.resolvePath(e.state.cwd,g),v=await qn(e,S,g,{});if(v){i=v,a=1,s="";break}await e.fs.appendFile(S,"","binary"),u={kind:"file",path:S,append:!0},f=u;break}}}}if(s!==""||i!==""){let E=s,b=i;s="",i="";let g=async(w,S,v)=>{w.append?await e.fs.appendFile(w.path,S,v):await e.fs.writeFile(w.path,S,v)};if(u===f&&u.kind==="file"){let w=E+b;w!==""&&await g(u,w,c(w))}else for(let[w,S,v]of[[E,u,!0],[b,f,!1]])if(w!=="")switch(S.kind){case"live-stdout":s+=w;break;case"live-stderr":i+=w;break;case"file":await g(S,w,v?c(w):En(w));break;case"discard":break}}let d=e.state.fileDescriptors?.get(1);if(d){if(d==="__dupout__:2")i+=s,s="";else if(d.startsWith("__file__:")){let E=d.slice(9);await e.fs.appendFile(E,s,c(s)),s=""}else if(d.startsWith("__file_append__:")){let E=d.slice(16);await e.fs.appendFile(E,s,c(s)),s=""}}let p=e.state.fileDescriptors?.get(2);if(p){if(p==="__dupout__:1")s+=i,i="";else if(p.startsWith("__file__:")){let E=p.slice(9);await e.fs.appendFile(E,i,En(i)),i=""}else if(p.startsWith("__file_append__:")){let E=p.slice(16);await e.fs.appendFile(E,i,En(i)),i=""}}let h=_(s,i,a);if(t.stdoutKind&&(h.stdoutKind=t.stdoutKind),t.stdoutEncoding==="binary"&&(h.stdoutEncoding="binary"),t.internalPipeStatusOverride&&(h.internalPipeStatusOverride=t.internalPipeStatusOverride),n.length>0||e.state.fileDescriptors?.has(1)===!0||e.state.fileDescriptors?.has(2)===!0){let E=(t.internalOutputAccounting?.stdout??0)+(t.internalOutputAccounting?.stderr??0),b=T(h.stdout),g=T(h.stderr),w=Math.min(b,E);h.internalOutputAccounting={stdout:w,stderr:Math.min(g,E-w)},e.executionScope.accountResult(h,"redirection")}else t.internalOutputAccounting&&(h.internalOutputAccounting=t.internalOutputAccounting);return h}function lc(e,t){if(e.state.options.posix&&hi.has(t.name)){let r=`bash: line ${e.state.currentLine}: \`${t.name}': is a special builtin
118
+ `;throw new j(2,"",r)}let n={...t,sourceFile:t.sourceFile??e.state.currentSource??"main"};return e.state.functions.set(t.name,n),te}async function xd(e,t){let n="";for(let r of t)if((r.operator==="<<"||r.operator==="<<-")&&r.target.type==="HereDoc"){let s=r.target,i=await W(e,s.content);s.stripTabs&&(i=i.split(`
119
+ `).map(o=>o.replace(/^\t+/,"")).join(`
120
+ `)),(r.fd??0)===0&&(n=i)}else if(r.operator==="<<<"&&r.target.type==="Word")n=`${await W(e,r.target)}
121
+ `;else if(r.operator==="<"&&r.target.type==="Word"){let s=await W(e,r.target),i=e.fs.resolvePath(e.state.cwd,s);try{n=await e.fs.readFile(i)}catch{}}return n}async function Qr(e,t,n,r="",s){e.state.callDepth++,e.state.callDepth>e.limits.maxCallDepth&&(e.state.callDepth--,Lt(`${t.name}: maximum recursion depth (${e.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),e.state.funcNameStack||(e.state.funcNameStack=[]),e.state.callLineStack||(e.state.callLineStack=[]),e.state.sourceStack||(e.state.sourceStack=[]),e.state.funcNameStack.unshift(t.name),e.state.callLineStack.unshift(s??e.state.currentLine),e.state.sourceStack.unshift(t.sourceFile??"main"),e.state.localScopes.push(new Map),e.state.localArrayScopes??=[],e.state.localArrayScopes.push(new Map),e.state.localExportedVars||(e.state.localExportedVars=[]),e.state.localExportedVars.push(new Set);let i=new Map,a=Number.parseInt(e.state.env.get("#")??"0",10),o=Math.max(n.length,a);for(let f=0;f<o;f++){let d=String(f+1);i.set(d,e.state.env.get(d)),f<n.length?e.state.env.set(d,n[f]):e.state.env.delete(d)}i.set("@",e.state.env.get("@")),i.set("#",e.state.env.get("#")),e.state.env.set("@",n.join(" ")),e.state.env.set("#",String(n.length));let l=!1,c=()=>{if(l)return;l=!0;let f=e.state.localScopes.length-1,d=e.state.localScopes.pop(),p=e.state.localArrayScopes?.pop();if(d)for(let[h,m]of d)m===void 0?e.state.env.delete(h):e.state.env.set(h,m);if(p){e.state.arrays??=new Map;for(let[h,m]of p)m===void 0?(e.state.arrays.delete(h),e.state.associativeArrays?.delete(h)):(e.state.arrays.set(h,De(m)),e.state.associativeArrays??=new Set,m.kind==="associative"?e.state.associativeArrays.add(h):e.state.associativeArrays.delete(h))}if(ac(e,f),e.state.fullyUnsetLocals)for(let[h,m]of e.state.fullyUnsetLocals.entries())m===f&&e.state.fullyUnsetLocals.delete(h);if(e.state.localExportedVars&&e.state.localExportedVars.length>0){let h=e.state.localExportedVars.pop();if(h)for(let m of h)e.state.exportedVars?.delete(m)}for(let[h,m]of i)m===void 0?e.state.env.delete(h):e.state.env.set(h,m);e.state.funcNameStack?.shift(),e.state.callLineStack?.shift(),e.state.sourceStack?.shift(),e.state.callDepth--},u=new Map;try{let{targets:f,error:d}=await yi(e,t.redirections);if(u=f,d)return _("",d,1);let p=await xd(e,t.redirections),h=r||p,m=await e.executeCommand(t.body,h);return pe(e,m,t.redirections,u)}catch(f){if(f instanceof Oe){let d=_(f.stdout,f.stderr,f.exitCode);return pe(e,d,t.redirections,u)}throw f}finally{c()}}var uc=["!","[[","]]","case","do","done","elif","else","esac","fi","for","function","if","in","then","time","until","while","{","}"],Ei=[".",":","[","alias","bg","bind","break","builtin","caller","cd","command","compgen","complete","compopt","continue","declare","dirs","disown","echo","enable","eval","exec","exit","export","false","fc","fg","getopts","hash","help","history","jobs","kill","let","local","logout","mapfile","popd","printf","pushd","pwd","read","readarray","readonly","return","set","shift","shopt","source","suspend","test","times","trap","true","type","typeset","ulimit","umask","unalias","unset","wait"],$d=["autocd","assoc_expand_once","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","dotglob","execfail","expand_aliases","extdebug","extglob","extquote","failglob","force_fignore","globasciiranges","globstar","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lastpipe","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","nocaseglob","nocasematch","nullglob","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath","xpg_echo"],kd=Ei;async function bi(e,t){let n=[],r=null,s="",i="",a=null,o=!1,l=!1,c=!1,u=null,f=null,d=null,p=[],h=["alias","arrayvar","binding","builtin","command","directory","disabled","enabled","export","file","function","group","helptopic","hostname","job","keyword","running","service","setopt","shopt","signal","stopped","user","variable"];for(let A=0;A<t.length;A++){let x=t[A];if(x==="-v")n.push("variable");else if(x==="-e")n.push("export");else if(x==="-f")n.push("file");else if(x==="-d")n.push("directory");else if(x==="-k")n.push("keyword");else if(x==="-A"){if(A++,A>=t.length)return R(`compgen: -A: option requires an argument
122
+ `,2);let P=t[A];if(!h.includes(P))return R(`compgen: ${P}: invalid action name
123
+ `,2);n.push(P)}else if(x==="-W"){if(A++,A>=t.length)return R(`compgen: -W: option requires an argument
124
+ `,2);r=t[A]}else if(x==="-P"){if(A++,A>=t.length)return R(`compgen: -P: option requires an argument
125
+ `,2);s=t[A]}else if(x==="-S"){if(A++,A>=t.length)return R(`compgen: -S: option requires an argument
126
+ `,2);i=t[A]}else if(x==="-o"){if(A++,A>=t.length)return R(`compgen: -o: option requires an argument
127
+ `,2);let P=t[A];if(P==="plusdirs")o=!0;else if(P==="dirnames")l=!0;else if(P==="default")c=!0;else if(!(P==="filenames"||P==="nospace"||P==="bashdefault"||P==="noquote"))return R(`compgen: ${P}: invalid option name
128
+ `,2)}else if(x==="-F"){if(A++,A>=t.length)return R(`compgen: -F: option requires an argument
129
+ `,2);f=t[A]}else if(x==="-C"){if(A++,A>=t.length)return R(`compgen: -C: option requires an argument
130
+ `,2);d=t[A]}else if(x==="-X"){if(A++,A>=t.length)return R(`compgen: -X: option requires an argument
131
+ `,2);u=t[A]}else if(x==="-G"){if(A++,A>=t.length)return R(`compgen: -G: option requires an argument
132
+ `,2)}else if(x==="--"){p.push(...t.slice(A+1));break}else x.startsWith("-")||p.push(x)}a=p[0]??null;let m=[],E=new Set,b=()=>e.limits.maxArrayElements-m.length,g=A=>{for(let x of A){if(m.length>=e.limits.maxArrayElements)throw new $(`compgen: completion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");if(T(x)>e.limits.maxStringLength)throw new $(`compgen: completion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");e.executionScope.consumeWork(1,"compgen completion"),m.push(x),E.add(x)}};if(l){let A=await gi(e,a,b());g(A)}if(c){let A=await cc(e,a,b());g(A)}for(let A of n)if(A==="variable"){let x=Nd(e,a,b());g(x)}else if(A==="export"){let x=Pd(e,a,b());g(x)}else if(A==="function"){let x=Cd(e,a,b());g(x)}else if(A==="builtin"){let x=Dd(e,a,b());g(x)}else if(A==="keyword"){let x=Rd(e,a,b());g(x)}else if(A==="alias"){let x=Id(e,a,b());g(x)}else if(A==="shopt"){let x=_d(e,a,b());g(x)}else if(A==="helptopic"){let x=Od(e,a,b());g(x)}else if(A==="directory"){let x=await gi(e,a,b());g(x)}else if(A==="file"){let x=await cc(e,a,b());g(x)}else if(A==="user"){let x=Ld(e,a,b());g(x)}else if(A==="command"){let x=await Td(e,a,b());g(x)}if(r!==null)try{let A=await Md(e,r),x=Bd(e,A,b(),a);for(let P of x)g([P])}catch(A){if(A instanceof $)throw A;return _("","",1)}if(o){let A=await gi(e,a,b(),E);for(let x of A)E.has(x)||g([x])}let w="";if(f!==null){let A=e.state.functions.get(f);if(A){let x=new Map,P=Se(e,"COMP_WORDS"),D=P?De(P):void 0;me(e,"COMP_WORDS"),Dn(e,"COMP_WORDS"),x.set("COMP_CWORD",e.state.env.get("COMP_CWORD")),e.state.env.set("COMP_CWORD","-1"),x.set("COMP_LINE",e.state.env.get("COMP_LINE")),e.state.env.set("COMP_LINE",""),x.set("COMP_POINT",e.state.env.get("COMP_POINT")),e.state.env.set("COMP_POINT","0");let I=Se(e,"COMPREPLY"),O=I?De(I):void 0,B=e.state.env.get("COMPREPLY");me(e,"COMPREPLY"),e.state.env.delete("COMPREPLY");let Y=["compgen",p[0]??"",""];try{let J=await Qr(e,A,Y,"");if(J.exitCode!==0)return wi(e,x),bn(e,"COMP_WORDS",D),bn(e,"COMPREPLY",O),B!==void 0&&e.state.env.set("COMPREPLY",B),_("",J.stderr,1);w=J.stdout;let C=Wd(e,b());g(C)}catch(J){if(J instanceof $)throw J;return wi(e,x),bn(e,"COMP_WORDS",D),bn(e,"COMPREPLY",O),B!==void 0&&e.state.env.set("COMPREPLY",B),_("","",1)}wi(e,x),bn(e,"COMP_WORDS",D),bn(e,"COMPREPLY",O),B!==void 0&&e.state.env.set("COMPREPLY",B)}}if(d!==null)try{let A=tt(d),x=await e.executeScript(A);if(x.exitCode!==0)return _("",x.stderr,x.exitCode);if(x.stdout)for(let P of Fd(x.stdout))P.length>0&&g([P])}catch(A){if(A.name==="ParseException")return R(`compgen: -C: ${A.message}
133
+ `,2);throw A}let S=m;if(u!==null){let A=u.startsWith("!"),x=A?u.slice(1):u;S=m.filter(P=>{let D=gn(P,x,!1,!0,e.limits.maxCallDepth);return A?D:!D})}if(S.length===0&&a!==null)return _(w,"",1);let v=new tn(e.limits.maxOutputSize,"compgen");v.append(w);for(let A of S)v.append(s).append(A).append(i).append(`
134
+ `);return X(v.build())}function Nd(e,t,n){let r=Xe(e,t,n);for(let s of e.state.env.keys())/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&r.add(s);for(let s of e.state.arrays?.keys()??[])r.add(s);return r.build()}function Pd(e,t,n){let r=Xe(e,t,n),s=e.state.exportedVars??new Set;for(let i of s)e.state.env.has(i)&&r.add(i);return r.build()}function Cd(e,t,n){let r=Xe(e,t,n);for(let s of e.state.functions.keys())r.add(s);return r.build()}function Dd(e,t,n){let r=Xe(e,t,n);for(let s of Ei)r.add(s);return r.build()}function Rd(e,t,n){let r=Xe(e,t,n);for(let s of uc)r.add(s);return r.build()}function Id(e,t,n){let r=Xe(e,t,n);for(let s of e.state.env.keys())if(s.startsWith("BASH_ALIAS_")){let i=s.slice(11);r.add(i)}return r.build()}function _d(e,t,n){let r=Xe(e,t,n);for(let s of $d)r.add(s);return r.build()}function Od(e,t,n){let r=Xe(e,t,n);for(let s of kd)r.add(s);return r.build()}async function gi(e,t,n=e.limits.maxArrayElements,r){let s=Xe(e,null,n,r);try{let i=e.state.cwd,a=t??"";if(t){let l=t.lastIndexOf("/");if(l!==-1){let c=t.slice(0,l)||"/";a=t.slice(l+1),c.startsWith("/")?i=c:i=`${e.state.cwd}/${c}`}}let o=await e.fs.readdir(i);for(let l of o){e.executionScope.consumeWork(1,"compgen directory scan");let c=`${i}/${l}`;try{if((await e.fs.stat(c)).isDirectory&&(!a||l.startsWith(a)))if(t?.includes("/")){let f=t.lastIndexOf("/"),d=t.slice(0,f+1);s.add(d+l)}else s.add(l)}catch(u){if(u instanceof $)throw u}}}catch(i){if(i instanceof $)throw i}return s.build()}async function cc(e,t,n=e.limits.maxArrayElements){let r=Xe(e,null,n);try{let s=e.state.cwd,i=t??"";if(t){let o=t.lastIndexOf("/");if(o!==-1){let l=t.slice(0,o)||"/";i=t.slice(o+1),l.startsWith("/")?s=l:s=`${e.state.cwd}/${l}`}}let a=await e.fs.readdir(s);for(let o of a)if(e.executionScope.consumeWork(1,"compgen file scan"),!i||o.startsWith(i))if(t?.includes("/")){let l=t.lastIndexOf("/"),c=t.slice(0,l+1);r.add(c+o)}else r.add(o)}catch(s){if(s instanceof $)throw s}return r.build()}function Ld(e,t,n){let r=Xe(e,t,n);return r.add("root"),r.add("nobody"),r.build()}async function Td(e,t,n){let r=Xe(e,t,n);for(let i of Ei)r.add(i);for(let i of e.state.functions.keys())r.add(i);for(let i of e.state.env.keys())i.startsWith("BASH_ALIAS_")&&r.add(i.slice(11));for(let i of uc)r.add(i);let s=e.state.env.get("PATH")??"/usr/bin:/bin";for(let i of s.split(":"))if(i)try{let a=await e.fs.readdir(i);for(let o of a)r.add(o)}catch(a){if(a instanceof $)throw a}return r.build()}function Xe(e,t,n,r){let s=new Set;return{add(i){if(e.executionScope.consumeWork(1,"compgen candidate collection"),!(t!==null&&!i.startsWith(t))&&!r?.has(i)&&!s.has(i)){if(s.size>=n)throw new $(`compgen: completion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");if(T(i)>e.limits.maxStringLength)throw new $(`compgen: completion string limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");s.add(i)}},build(){return Array.from(s).sort()}}}async function Md(e,t){let r=new V().parseWordFromString(t,!1,!1);return await W(e,r)}function Bd(e,t,n,r){let s=e.state.env.get("IFS")??`
135
+ `;if(s.length===0){if(r!==null&&!t.startsWith(r))return[];if(n===0)throw new $(`compgen: completion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");return[t]}let i=new Set(s.split("")),a=[],o=u=>{if(!(r!==null&&!u.startsWith(r))){if(a.length>=n)throw new $(`compgen: completion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");a.push(u)}},l="",c=0;for(;c<t.length;){let u=t[c];if(u==="\\"&&c+1<t.length){let f=t[c+1];l+=f,c+=2}else i.has(u)?(l.length>0&&(o(l),l=""),c++):(l+=u,c++)}return l.length>0&&o(l),a}function wi(e,t){for(let[n,r]of t)r===void 0?e.state.env.delete(n):e.state.env.set(n,r)}function bn(e,t,n){e.state.arrays??=new Map,n?e.state.arrays.set(t,De(n)):e.state.arrays.delete(t)}function Wd(e,t){let n=[],r=s=>{if(n.length>=t)throw new $(`compgen: completion element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");n.push(s)};if($e(e,"COMPREPLY")){let s=z(e,"COMPREPLY");for(let[,i]of s)r(i)}else{let s=e.state.env.get("COMPREPLY");s!==void 0&&r(s)}return n}function*Fd(e){let t=0;for(;t<=e.length;){let n=e.indexOf(`
136
+ `,t),r=n===-1?e.length:n;if(r>t&&(yield e.slice(t,r)),n===-1)return;t=n+1}}function Un(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n===127)return!0}return!1}function Si(e){let t="$'";for(let n=0;n<e.length;n++){let r=e[n],s=e.charCodeAt(n);s===7?t+="\\a":s===8?t+="\\b":s===9?t+="\\t":s===10?t+="\\n":s===11?t+="\\v":s===12?t+="\\f":s===13?t+="\\r":s===27?t+="\\e":s===39?t+="\\'":s===92?t+="\\\\":s<32||s===127?t+=`\\${s.toString(8).padStart(3,"0")}`:t+=r}return t+="'",t}function fc(e){if(Un(e))return dc(e);if(e==="")return 2;if(/^[a-zA-Z0-9_/.:\-@%+,=]+$/.test(e))return T(e);let t=T(e)+2;for(let n of e)n==="'"&&(t+=3);return t}function ge(e){return Un(e)?Si(e):e===""?"''":/^[a-zA-Z0-9_/.:\-@%+,=]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function Kr(e){if(Un(e))return dc(e);let t=T(e)+2;for(let n of e)(n==="\\"||n==='"'||n==="$"||n==="`")&&t++;return t}function Bt(e){return Un(e)?Si(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\$/g,"\\$").replace(/`/g,"\\`")}"`}function dc(e){let t=3;for(let n of e){let r=n.codePointAt(0)??0;r===7||r===8||r===9||r===10||r===11||r===12||r===13||r===27||r===39||r===92?t+=2:r<32||r===127?t+=4:t+=T(n)}return t}function jn(e){return Un(e)?Si(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\$/g,"\\$").replace(/`/g,"\\`")}"`}var Vd=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function vi(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let n=!1,r=!1,s=!1,i,a,o,l=[],c=[],u=[];for(let f=0;f<t.length;f++){let d=t[f];if(d==="-p")n=!0;else if(d==="-r")r=!0;else if(d==="-D")s=!0;else if(d==="-W"){if(f++,f>=t.length)return R(`complete: -W: option requires an argument
137
+ `,2);i=t[f]}else if(d==="-F"){if(f++,f>=t.length)return R(`complete: -F: option requires an argument
138
+ `,2);a=t[f]}else if(d==="-o"){if(f++,f>=t.length)return R(`complete: -o: option requires an argument
139
+ `,2);let p=t[f];if(!Vd.includes(p))return R(`complete: ${p}: invalid option name
140
+ `,2);l.push(p)}else if(d==="-A"){if(f++,f>=t.length)return R(`complete: -A: option requires an argument
141
+ `,2);c.push(t[f])}else if(d==="-C"){if(f++,f>=t.length)return R(`complete: -C: option requires an argument
142
+ `,2);o=t[f]}else if(d==="-G"){if(f++,f>=t.length)return R(`complete: -G: option requires an argument
143
+ `,2)}else if(d==="-P"){if(f++,f>=t.length)return R(`complete: -P: option requires an argument
144
+ `,2)}else if(d==="-S"){if(f++,f>=t.length)return R(`complete: -S: option requires an argument
145
+ `,2)}else if(d==="-X"){if(f++,f>=t.length)return R(`complete: -X: option requires an argument
146
+ `,2)}else if(d==="--"){u.push(...t.slice(f+1));break}else d.startsWith("-")||u.push(d)}if(r){if(u.length===0)return e.state.completionSpecs.clear(),e.state.defaultCompletionSpec=void 0,e.state.emptyCompletionSpec=void 0,X("");for(let f of u)e.state.completionSpecs.delete(f);return X("")}if(n)return u.length===0?Ai(e):Ai(e,u);if(t.length===0||u.length===0&&!i&&!a&&!o&&l.length===0&&c.length===0&&!s)return Ai(e);if(a&&u.length===0&&!s)return R(`complete: -F: option requires a command name
147
+ `,2);if(s){let f={isDefault:!0};return i!==void 0&&(f.wordlist=i),a!==void 0&&(f.function=a),o!==void 0&&(f.command=o),l.length>0&&(f.options=l),c.length>0&&(f.actions=c),e.state.defaultCompletionSpec=f,X("")}for(let f of u){let d=Object.create(null);i!==void 0&&(d.wordlist=i),a!==void 0&&(d.function=a),o!==void 0&&(d.command=o),l.length>0&&(d.options=l),c.length>0&&(d.actions=c),e.state.completionSpecs.set(f,d)}return X("")}function Ai(e,t){let n=e.state.completionSpecs??new Map;if(n.size===0&&!e.state.defaultCompletionSpec){if(t&&t.length>0){let i="";for(let a of t)i+=`complete: ${a}: no completion specification
148
+ `;return _("",i,1)}return X("")}let r=[],s=t||Array.from(n.keys());for(let i of s){let a=n.get(i);if(!a){if(t)return _(r.join(`
143
149
  `)+(r.length>0?`
144
150
  `:""),`complete: ${i}: no completion specification
145
- `,1);continue}let l="complete";if(a.options)for(let o of a.options)l+=` -o ${o}`;if(a.actions)for(let o of a.actions)l+=` -A ${o}`;a.wordlist!==void 0&&(a.wordlist.includes(" ")||a.wordlist.includes("'")?l+=` -W '${a.wordlist}'`:l+=` -W ${a.wordlist}`),a.function!==void 0&&(l+=` -F ${a.function}`),a.isDefault&&(l+=" -D"),l+=` ${i}`,r.push(l)}return r.length===0?Z(""):Z(`${r.join(`
151
+ `,1);continue}let o="complete";if(a.options)for(let l of a.options)o+=` -o ${ge(l)}`;if(a.actions)for(let l of a.actions)o+=` -A ${ge(l)}`;a.wordlist!==void 0&&(a.wordlist.includes(" ")||a.wordlist.includes("'")?o+=` -W ${ge(a.wordlist)}`:o+=` -W ${ge(a.wordlist)}`),a.function!==void 0&&(o+=` -F ${ge(a.function)}`),a.command!==void 0&&(o+=` -C ${ge(a.command)}`),a.isDefault&&(o+=" -D"),o+=`${i.startsWith("-")?" -- ":" "}${ge(i)}`,r.push(o)}if(!t&&e.state.defaultCompletionSpec){let i=e.state.defaultCompletionSpec,a="complete";for(let o of i.options??[])a+=` -o ${ge(o)}`;for(let o of i.actions??[])a+=` -A ${ge(o)}`;i.wordlist!==void 0&&(a+=` -W ${ge(i.wordlist)}`),i.function!==void 0&&(a+=` -F ${ge(i.function)}`),i.command!==void 0&&(a+=` -C ${ge(i.command)}`),a+=" -D",r.push(a)}return r.length===0?X(""):X(`${r.join(`
146
152
  `)}
147
- `)}var Yo=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function kr(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,r=!1,n=[],i=[],a=[];for(let l=0;l<t.length;l++){let o=t[l];if(o==="-D")s=!0;else if(o==="-E")r=!0;else if(o==="-o"){if(l++,l>=t.length)return _(`compopt: -o: option requires an argument
148
- `,2);let u=t[l];if(!Yo.includes(u))return _(`compopt: ${u}: invalid option name
149
- `,2);n.push(u)}else if(o==="+o"){if(l++,l>=t.length)return _(`compopt: +o: option requires an argument
150
- `,2);let u=t[l];if(!Yo.includes(u))return _(`compopt: ${u}: invalid option name
151
- `,2);i.push(u)}else if(o==="--"){a.push(...t.slice(l+1));break}else!o.startsWith("-")&&!o.startsWith("+")&&a.push(o)}if(s){let l=e.state.completionSpecs.get("__default__")??{isDefault:!0},o=new Set(l.options??[]);for(let u of n)o.add(u);for(let u of i)o.delete(u);return l.options=o.size>0?Array.from(o):void 0,e.state.completionSpecs.set("__default__",l),Z("")}if(r){let l=e.state.completionSpecs.get("__empty__")??{},o=new Set(l.options??[]);for(let u of n)o.add(u);for(let u of i)o.delete(u);return l.options=o.size>0?Array.from(o):void 0,e.state.completionSpecs.set("__empty__",l),Z("")}if(a.length>0){for(let l of a){let o=e.state.completionSpecs.get(l)??{},u=new Set(o.options??[]);for(let c of n)u.add(c);for(let c of i)u.delete(c);o.options=u.size>0?Array.from(u):void 0,e.state.completionSpecs.set(l,o)}return Z("")}return _(`compopt: not currently executing completion function
152
- `,1)}function _r(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new ut;return G}if(t.length>1)throw new j(1,"",`bash: continue: too many arguments
153
- `);let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new j(1,"",`bash: continue: ${t[0]}: numeric argument required
154
- `);s=r}throw new Ie(s)}function ue(e,t){let s=e.state.env.get("HOME")||"/home/user";return t.split(":").map(i=>i==="~"?s:i==="~root"?"/root":i.startsWith("~/")?s+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function Pr(e){for(let t=0;t<e.length;t++){let s=e.charCodeAt(t);if(s<32||s===127)return!0}return!1}function Dr(e){let t="$'";for(let s=0;s<e.length;s++){let r=e[s],n=e.charCodeAt(s);n===7?t+="\\a":n===8?t+="\\b":n===9?t+="\\t":n===10?t+="\\n":n===11?t+="\\v":n===12?t+="\\f":n===13?t+="\\r":n===27?t+="\\e":n===39?t+="\\'":n===92?t+="\\\\":n<32||n===127?t+=`\\${n.toString(8).padStart(3,"0")}`:t+=r}return t+="'",t}function on(e){return Pr(e)?Dr(e):/^[a-zA-Z0-9_/.:\-@%+,=]*$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function kt(e){return Pr(e)?Dr(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ir(e){return Pr(e)?Dr(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Jo(e,t){let s="";return e.state.integerVars?.has(t)&&(s+="i"),e.state.lowercaseVars?.has(t)&&(s+="l"),ee(e,t)&&(s+="n"),e.state.readonlyVars?.has(t)&&(s+="r"),e.state.uppercaseVars?.has(t)&&(s+="u"),e.state.exportedVars?.has(t)&&(s+="x"),s===""?"--":`-${s}`}function Cr(e){return e===""?"''":/[\s'\\]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}function el(e,t){let s="",r="",n=!1;for(let i of t){let a=Jo(e,i);if(e.state.associativeArrays?.has(i)){let c=je(e,i);if(c.length===0)s+=`declare -A ${i}=()
155
- `;else{let f=c.map(d=>{let h=e.state.env.get(`${i}_${d}`)??"",p=Cr(h);return`['${d}']=${p}`});s+=`declare -A ${i}=(${f.join(" ")})
156
- `}continue}let o=fe(e,i);if(o.length>0){let c=o.map(f=>{let d=e.state.env.get(`${i}_${f}`)??"";return`[${f}]=${kt(d)}`});s+=`declare -a ${i}=(${c.join(" ")})
157
- `;continue}if(e.state.env.has(`${i}__length`)){s+=`declare -a ${i}=()
158
- `;continue}let u=e.state.env.get(i);if(u!==void 0)s+=`declare ${a} ${i}=${Ir(u)}
159
- `;else{let c=e.state.declaredVars?.has(i),f=e.state.localVarDepth?.has(i);c||f?s+=`declare ${a} ${i}
153
+ `)}var pc=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function xi(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let n=!1,r=!1,s=[],i=[],a=[];for(let o=0;o<t.length;o++){let l=t[o];if(l==="-D")n=!0;else if(l==="-E")r=!0;else if(l==="-o"){if(o++,o>=t.length)return R(`compopt: -o: option requires an argument
154
+ `,2);let c=t[o];if(!pc.includes(c))return R(`compopt: ${c}: invalid option name
155
+ `,2);s.push(c)}else if(l==="+o"){if(o++,o>=t.length)return R(`compopt: +o: option requires an argument
156
+ `,2);let c=t[o];if(!pc.includes(c))return R(`compopt: ${c}: invalid option name
157
+ `,2);i.push(c)}else if(l==="--"){a.push(...t.slice(o+1));break}else!l.startsWith("-")&&!l.startsWith("+")&&a.push(l)}if(n){let o=e.state.defaultCompletionSpec??{isDefault:!0},l=new Set(o.options??[]);for(let c of s)l.add(c);for(let c of i)l.delete(c);return o.options=l.size>0?Array.from(l):void 0,e.state.defaultCompletionSpec=o,X("")}if(r){let o=e.state.emptyCompletionSpec??Object.create(null),l=new Set(o.options??[]);for(let c of s)l.add(c);for(let c of i)l.delete(c);return o.options=l.size>0?Array.from(l):void 0,e.state.emptyCompletionSpec=o,X("")}if(a.length>0){for(let o of a){let l=e.state.completionSpecs.get(o)??{},c=new Set(l.options??[]);for(let u of s)c.add(u);for(let u of i)c.delete(u);l.options=c.size>0?Array.from(c):void 0,e.state.completionSpecs.set(o,l)}return X("")}return R(`compopt: not currently executing completion function
158
+ `,1)}function $i(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new St;return te}if(t.length>1)throw new j(1,"",`bash: continue: too many arguments
159
+ `);let n=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new j(1,"",`bash: continue: ${t[0]}: numeric argument required
160
+ `);n=r}throw new Ue(n)}function hc(e,t){let n="";return e.state.integerVars?.has(t)&&(n+="i"),e.state.lowercaseVars?.has(t)&&(n+="l"),ae(e,t)&&(n+="n"),e.state.readonlyVars?.has(t)&&(n+="r"),e.state.uppercaseVars?.has(t)&&(n+="u"),e.state.exportedVars?.has(t)&&(n+="x"),n===""?"--":`-${n}`}function ki(e){return ge(e)}function Ni(e){return`'${e.replace(/'/g,"'\\''")}'`}function mc(e,t){let n="",r="",s=!1;for(let i of t){let a=hc(e,i);if(e.state.associativeArrays?.has(i)){let u=ut(e,i);if(u.length===0)n+=`declare -A ${i}=()
161
+ `;else{let f=u.map(d=>{let p=se(e,i,d)??"",h=ki(p);return`[${Ni(d)}]=${h}`});n+=`declare -A ${i}=(${f.join(" ")})
162
+ `}continue}let l=Ee(e,i);if(l.length>0){let u=l.map(f=>{let d=se(e,i,f)??"";return`[${f}]=${Bt(d)}`});n+=`declare -a ${i}=(${u.join(" ")})
163
+ `;continue}if($e(e,i)){n+=`declare -a ${i}=()
164
+ `;continue}let c=e.state.env.get(i);if(c!==void 0)n+=`declare ${a} ${i}=${jn(c)}
165
+ `;else{let u=e.state.declaredVars?.has(i),f=e.state.localVarDepth?.has(i);u||f?n+=`declare ${a} ${i}
160
166
  `:(r+=`bash: declare: ${i}: not found
161
- `,n=!0)}}return P(s,r,n?1:0)}function tl(e,t){let{filterExport:s,filterReadonly:r,filterNameref:n,filterIndexedArray:i,filterAssocArray:a}=t,l=s||r||n||i||a,o="",u=new Set;for(let f of e.state.env.keys()){if(f.startsWith("BASH_"))continue;if(f.endsWith("__length")){let h=f.slice(0,-8);u.add(h);continue}let d=f.lastIndexOf("_");if(d>0){let h=f.slice(0,d),p=f.slice(d+1);if(/^\d+$/.test(p)||e.state.associativeArrays?.has(h)){u.add(h);continue}}u.add(f)}if(e.state.localVarDepth)for(let f of e.state.localVarDepth.keys())u.add(f);if(e.state.associativeArrays)for(let f of e.state.associativeArrays)u.add(f);let c=Array.from(u).sort();for(let f of c){let d=Jo(e,f),h=e.state.associativeArrays?.has(f),p=fe(e,f),m=!h&&(p.length>0||e.state.env.has(`${f}__length`));if(l&&(a&&!h||i&&!m||s&&!e.state.exportedVars?.has(f)||r&&!e.state.readonlyVars?.has(f)||n&&!ee(e,f)))continue;if(h){let b=je(e,f);if(b.length===0)o+=`declare -A ${f}=()
162
- `;else{let v=b.map(E=>{let w=e.state.env.get(`${f}_${E}`)??"",S=Cr(w);return`['${E}']=${S}`});o+=`declare -A ${f}=(${v.join(" ")})
163
- `}continue}if(p.length>0){let b=p.map(v=>{let E=e.state.env.get(`${f}_${v}`)??"";return`[${v}]=${kt(E)}`});o+=`declare -a ${f}=(${b.join(" ")})
164
- `;continue}if(e.state.env.has(`${f}__length`)){o+=`declare -a ${f}=()
165
- `;continue}let y=e.state.env.get(f);y!==void 0&&(o+=`declare ${d} ${f}=${Ir(y)}
166
- `)}return Z(o)}function sl(e){let t="",s=Array.from(e.state.associativeArrays??[]).sort();for(let r of s){let n=je(e,r);if(n.length===0)t+=`declare -A ${r}=()
167
- `;else{let i=n.map(a=>{let l=e.state.env.get(`${r}_${a}`)??"",o=Cr(l);return`['${a}']=${o}`});t+=`declare -A ${r}=(${i.join(" ")})
168
- `}}return Z(t)}function nl(e){let t="",s=new Set;for(let n of e.state.env.keys()){if(n.startsWith("BASH_"))continue;if(n.endsWith("__length")){let a=n.slice(0,-8);e.state.associativeArrays?.has(a)||s.add(a);continue}let i=n.lastIndexOf("_");if(i>0){let a=n.slice(0,i),l=n.slice(i+1);/^\d+$/.test(l)&&(e.state.associativeArrays?.has(a)||s.add(a))}}let r=Array.from(s).sort();for(let n of r){let i=fe(e,n);if(i.length===0)t+=`declare -a ${n}=()
169
- `;else{let a=i.map(l=>{let o=e.state.env.get(`${n}_${l}`)??"";return`[${l}]=${kt(o)}`});t+=`declare -a ${n}=(${a.join(" ")})
170
- `}}return Z(t)}function rl(e){let t="",s=new Set;for(let n of e.state.env.keys()){if(n.startsWith("BASH_"))continue;if(n.endsWith("__length")){let a=n.slice(0,-8);s.add(a);continue}let i=n.lastIndexOf("_");if(i>0){let a=n.slice(0,i),l=n.slice(i+1);if(/^\d+$/.test(l)||e.state.associativeArrays?.has(a)){s.add(a);continue}}s.add(n)}let r=Array.from(s).sort();for(let n of r){if(e.state.associativeArrays?.has(n)||fe(e,n).length>0||e.state.env.has(`${n}__length`))continue;let l=e.state.env.get(n);l!==void 0&&(t+=`${n}=${on(l)}
171
- `)}return Z(t)}function xr(e,t){e.state.integerVars??=new Set,e.state.integerVars.add(t)}function ls(e,t){return e.state.integerVars?.has(t)??!1}function Rr(e,t){e.state.lowercaseVars??=new Set,e.state.lowercaseVars.add(t),e.state.uppercaseVars?.delete(t)}function Nf(e,t){return e.state.lowercaseVars?.has(t)??!1}function Or(e,t){e.state.uppercaseVars??=new Set,e.state.uppercaseVars.add(t),e.state.lowercaseVars?.delete(t)}function kf(e,t){return e.state.uppercaseVars?.has(t)??!1}function Zt(e,t,s){return Nf(e,t)?s.toLowerCase():kf(e,t)?s.toUpperCase():s}async function il(e,t){try{let s=new V,r=X(s,t),n=await L(e,r.expression);return String(n)}catch{return"0"}}function _f(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return null;let s=t[0],r=s.length;if(e[r]!=="[")return null;let n=0,i=r+1;for(;r<e.length;r++)if(e[r]==="[")n++;else if(e[r]==="]"&&(n--,n===0))break;if(n!==0)return null;let a=e.slice(i,r);if(r++,e[r]!=="=")return null;r++;let l=e.slice(r);return{name:s,indexExpr:a,value:l}}async function Lr(e,t){let s=!1,r=!1,n=!1,i=!1,a=!1,l=!1,o=!1,u=!1,c=!1,f=!1,d=!1,h=!1,p=!1,m=!1,y=!1,b=[];for(let I=0;I<t.length;I++){let T=t[I];if(T==="-a")s=!0;else if(T==="-A")r=!0;else if(T==="-r")n=!0;else if(T==="-x")i=!0;else if(T==="-p")a=!0;else if(T==="-n")l=!0;else if(T==="+n")o=!0;else if(T==="+a")u=!0;else if(T==="+x")c=!0;else if(T==="--"){b.push(...t.slice(I+1));break}else if(T.startsWith("+")){for(let k of T.slice(1))if(k==="n")o=!0;else if(k==="a")u=!0;else if(k==="x")c=!0;else if(k!=="r"){if(k!=="i"){if(!(k==="f"||k==="F"))return P("",`bash: typeset: +${k}: invalid option
172
- `,2)}}}else if(T==="-i")f=!0;else if(T==="-l")d=!0;else if(T==="-u")h=!0;else if(T==="-f")p=!0;else if(T==="-F")m=!0;else if(T==="-g")y=!0;else if(T.startsWith("-"))for(let k of T.slice(1))if(k==="a")s=!0;else if(k==="A")r=!0;else if(k==="r")n=!0;else if(k==="x")i=!0;else if(k==="p")a=!0;else if(k==="n")l=!0;else if(k==="i")f=!0;else if(k==="l")d=!0;else if(k==="u")h=!0;else if(k==="f")p=!0;else if(k==="F")m=!0;else if(k==="g")y=!0;else return P("",`bash: typeset: -${k}: invalid option
173
- `,2);else b.push(T)}let E=e.state.localScopes.length>0&&!y,w=I=>{if(!E)return;let T=e.state.localScopes[e.state.localScopes.length-1];T.has(I)||T.set(I,e.state.env.get(I))},S=I=>{if(!E)return;let T=e.state.localScopes[e.state.localScopes.length-1];T.has(I)||T.set(I,e.state.env.get(I));let k=`${I}_`;for(let C of e.state.env.keys())C.startsWith(k)&&!C.includes("__")&&(T.has(C)||T.set(C,e.state.env.get(C)));let D=`${I}__length`;e.state.env.has(D)&&!T.has(D)&&T.set(D,e.state.env.get(D))},A=I=>{E&&bt(e,I)};if(m){if(b.length===0){let k=Array.from(e.state.functions.keys()).sort(),D="";for(let C of k)D+=`declare -f ${C}
174
- `;return Z(D)}let I=!0,T="";for(let k of b)e.state.functions.has(k)?T+=`${k}
175
- `:I=!1;return P(T,"",I?0:1)}if(p){if(b.length===0){let T="",k=Array.from(e.state.functions.keys()).sort();for(let D of k)T+=`${D} ()
167
+ `,s=!0)}}return _(n,r,s?1:0)}function yc(e,t){let{filterExport:n,filterReadonly:r,filterNameref:s,filterIndexedArray:i,filterAssocArray:a}=t,o=n||r||s||i||a,l="",c=new Set;for(let f of e.state.env.keys())f.startsWith("BASH_")||c.add(f);for(let f of e.state.arrays?.keys()??[])c.add(f);if(e.state.localVarDepth)for(let f of e.state.localVarDepth.keys())c.add(f);if(e.state.associativeArrays)for(let f of e.state.associativeArrays)c.add(f);let u=Array.from(c).sort();for(let f of u){let d=hc(e,f),p=e.state.associativeArrays?.has(f),h=Ee(e,f),m=!p&&$e(e,f);if(o&&(a&&!p||i&&!m||n&&!e.state.exportedVars?.has(f)||r&&!e.state.readonlyVars?.has(f)||s&&!ae(e,f)))continue;if(p){let b=ut(e,f);if(b.length===0)l+=`declare -A ${f}=()
168
+ `;else{let g=b.map(w=>{let S=se(e,f,w)??"",v=ki(S);return`[${Ni(w)}]=${v}`});l+=`declare -A ${f}=(${g.join(" ")})
169
+ `}continue}if(h.length>0){let b=h.map(g=>{let w=se(e,f,g)??"";return`[${g}]=${Bt(w)}`});l+=`declare -a ${f}=(${b.join(" ")})
170
+ `;continue}if($e(e,f)){l+=`declare -a ${f}=()
171
+ `;continue}let E=e.state.env.get(f);E!==void 0&&(l+=`declare ${d} ${f}=${jn(E)}
172
+ `)}return X(l)}function gc(e){let t="",n=Array.from(e.state.associativeArrays??[]).sort();for(let r of n){let s=ut(e,r);if(s.length===0)t+=`declare -A ${r}=()
173
+ `;else{let i=s.map(a=>{let o=se(e,r,a)??"",l=ki(o);return`[${Ni(a)}]=${l}`});t+=`declare -A ${r}=(${i.join(" ")})
174
+ `}}return X(t)}function wc(e){let t="",n=new Set(Array.from(e.state.arrays??[]).filter(([,s])=>s.kind==="indexed").map(([s])=>s)),r=Array.from(n).sort();for(let s of r){let i=Ee(e,s);if(i.length===0)t+=`declare -a ${s}=()
175
+ `;else{let a=i.map(o=>{let l=se(e,s,o)??"";return`[${o}]=${Bt(l)}`});t+=`declare -a ${s}=(${a.join(" ")})
176
+ `}}return X(t)}function Ec(e){let t="",n=new Set;for(let s of e.state.env.keys())s.startsWith("BASH_")||n.add(s);let r=Array.from(n).sort();for(let s of r){if(e.state.associativeArrays?.has(s)||Ee(e,s).length>0||$e(e,s))continue;let o=e.state.env.get(s);o!==void 0&&(t+=`${s}=${ge(o)}
177
+ `)}return X(t)}function Pi(e,t){e.state.integerVars??=new Set,e.state.integerVars.add(t)}function Gn(e,t){return e.state.integerVars?.has(t)??!1}function Ci(e,t){e.state.lowercaseVars??=new Set,e.state.lowercaseVars.add(t),e.state.uppercaseVars?.delete(t)}function zd(e,t){return e.state.lowercaseVars?.has(t)??!1}function Di(e,t){e.state.uppercaseVars??=new Set,e.state.uppercaseVars.add(t),e.state.lowercaseVars?.delete(t)}function qd(e,t){return e.state.uppercaseVars?.has(t)??!1}function Sn(e,t,n){return zd(e,t)?n.toLowerCase():qd(e,t)?n.toUpperCase():n}async function bc(e,t){try{let n=new V,r=ne(n,t),s=await Z(e,r.expression);return String(s)}catch{return"0"}}function Ud(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return null;let n=t[0],r=n.length;if(e[r]!=="[")return null;let s=0,i=r+1;for(;r<e.length;r++)if(e[r]==="[")s++;else if(e[r]==="]"&&(s--,s===0))break;if(s!==0)return null;let a=e.slice(i,r);if(r++,e[r]!=="=")return null;r++;let o=e.slice(r);return{name:n,indexExpr:a,value:o}}async function Ri(e,t){let n={maxElements:e.limits.maxArrayElements,maxStringBytes:e.limits.maxStringLength},r=!1,s=!1,i=!1,a=!1,o=!1,l=!1,c=!1,u=!1,f=!1,d=!1,p=!1,h=!1,m=!1,E=!1,b=!1,g=[];for(let I=0;I<t.length;I++){let O=t[I];if(O==="-a")r=!0;else if(O==="-A")s=!0;else if(O==="-r")i=!0;else if(O==="-x")a=!0;else if(O==="-p")o=!0;else if(O==="-n")l=!0;else if(O==="+n")c=!0;else if(O==="+a")u=!0;else if(O==="+x")f=!0;else if(O==="--"){g.push(...t.slice(I+1));break}else if(O.startsWith("+")){for(let B of O.slice(1))if(B==="n")c=!0;else if(B==="a")u=!0;else if(B==="x")f=!0;else if(B!=="r"){if(B!=="i"){if(!(B==="f"||B==="F"))return _("",`bash: typeset: +${B}: invalid option
178
+ `,2)}}}else if(O==="-i")d=!0;else if(O==="-l")p=!0;else if(O==="-u")h=!0;else if(O==="-f")m=!0;else if(O==="-F")E=!0;else if(O==="-g")b=!0;else if(O.startsWith("-"))for(let B of O.slice(1))if(B==="a")r=!0;else if(B==="A")s=!0;else if(B==="r")i=!0;else if(B==="x")a=!0;else if(B==="p")o=!0;else if(B==="n")l=!0;else if(B==="i")d=!0;else if(B==="l")p=!0;else if(B==="u")h=!0;else if(B==="f")m=!0;else if(B==="F")E=!0;else if(B==="g")b=!0;else return _("",`bash: typeset: -${B}: invalid option
179
+ `,2);else g.push(O)}let S=e.state.localScopes.length>0&&!b,v=I=>{if(!S)return;let O=e.state.localScopes[e.state.localScopes.length-1];O.has(I)||O.set(I,e.state.env.get(I))},A=I=>{if(!S)return;let O=e.state.localScopes[e.state.localScopes.length-1];for(O.has(I)||O.set(I,e.state.env.get(I)),e.state.localArrayScopes??=[];e.state.localArrayScopes.length<e.state.localScopes.length;)e.state.localArrayScopes.push(new Map);let B=e.state.localArrayScopes.at(-1);if(B&&!B.has(I)){let Y=Se(e,I);B.set(I,Y?De(Y):void 0)}},x=I=>{S&&Mt(e,I)};if(E){if(g.length===0){let B=Array.from(e.state.functions.keys()).sort(),Y="";for(let J of B)Y+=`declare -f ${J}
180
+ `;return X(Y)}let I=!0,O="";for(let B of g)e.state.functions.has(B)?O+=`${B}
181
+ `:I=!1;return _(O,"",I?0:1)}if(m){if(g.length===0){let O="",B=Array.from(e.state.functions.keys()).sort();for(let Y of B)O+=`${Y} ()
176
182
  {
177
183
  # function body
178
184
  }
179
- `;return Z(T)}let I=!0;for(let T of b)e.state.functions.has(T)||(I=!1);return P("","",I?0:1)}if(a&&b.length>0)return el(e,b);if(a&&b.length===0)return tl(e,{filterExport:i,filterReadonly:n,filterNameref:l,filterIndexedArray:s,filterAssocArray:r});if(b.length===0&&r&&!a)return sl(e);if(b.length===0&&s&&!a)return nl(e);if(b.length===0&&!a)return rl(e);let $="",x=0;for(let I of b){let T=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(T&&!u){let N=T[1],O=T[2];if(r&&fe(e,N).length>0){$+=`bash: declare: ${N}: cannot convert indexed to associative array
180
- `,x=1;continue}if((s||!r&&!s)&&e.state.associativeArrays?.has(N)){$+=`bash: declare: ${N}: cannot convert associative to indexed array
181
- `,x=1;continue}if(S(N),r&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(N)),Ke(e,N),e.state.env.delete(N),e.state.env.delete(`${N}__length`),r&&O.includes("[")){let M=en(O);for(let[q,J]of M){let ce=ue(e,J);e.state.env.set(`${N}_${q}`,ce)}}else if(r){let M=st(O);for(let q=0;q<M.length;q+=2){let J=M[q],ce=q+1<M.length?ue(e,M[q+1]):"";e.state.env.set(`${N}_${J}`,ce)}}else{let M=st(O);if(M.some(J=>/^\[[^\]]+\]=/.test(J))){let J=0;for(let ce of M){let pe=ce.match(/^\[([^\]]+)\]=(.*)$/);if(pe){let Pe=pe[1],Dt=pe[2],mc=ue(e,Dt),Kt;if(/^-?\d+$/.test(Pe))Kt=Number.parseInt(Pe,10);else try{let gc=new V,yc=X(gc,Pe);Kt=await L(e,yc.expression)}catch{Kt=0}e.state.env.set(`${N}_${Kt}`,mc),J=Kt+1}else{let Pe=ue(e,ce);e.state.env.set(`${N}_${J}`,Pe),J++}}}else{for(let J=0;J<M.length;J++)e.state.env.set(`${N}_${J}`,M[J]);e.state.env.set(`${N}__length`,String(M.length))}}A(N),n&&_e(e,N),i&&Ze(e,N);continue}if(o){let N=I.includes("=")?I.slice(0,I.indexOf("=")):I;if(ba(e,N),!I.includes("="))continue}if(c){let N=I.includes("=")?I.slice(0,I.indexOf("=")):I;if(Os(e,N),!I.includes("="))continue}let k=_f(I);if(k){let{name:N,indexExpr:O,value:M}=k,q=me(e,N);if(q)return q;S(N);let J;try{let pe=new V,Pe=X(pe,O);J=await L(e,Pe.expression)}catch{let pe=parseInt(O,10);J=Number.isNaN(pe)?0:pe}e.state.env.set(`${N}_${J}`,M);let ce=parseInt(e.state.env.get(`${N}__length`)??"0",10);J>=ce&&e.state.env.set(`${N}__length`,String(J+1)),A(N),n&&_e(e,N),i&&Ze(e,N);continue}let D=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(D&&!u){let N=D[1],O=D[2],M=me(e,N);if(M)return M;S(N);let q=st(O);if(e.state.associativeArrays?.has(N)){let J=en(O);for(let[ce,pe]of J){let Pe=ue(e,pe);e.state.env.set(`${N}_${ce}`,Pe)}}else{let J=fe(e,N),ce=0,pe=e.state.env.get(N);J.length===0&&pe!==void 0?(e.state.env.set(`${N}_0`,pe),e.state.env.delete(N),ce=1):J.length>0&&(ce=Math.max(...J)+1);for(let Dt=0;Dt<q.length;Dt++)e.state.env.set(`${N}_${ce+Dt}`,ue(e,q[Dt]));let Pe=ce+q.length;e.state.env.set(`${N}__length`,String(Pe))}A(N),n&&_e(e,N),i&&Ze(e,N);continue}let C=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(C){let N=C[1],O=ue(e,C[2]),M=me(e,N);if(M)return M;w(N),f&&xr(e,N),d&&Rr(e,N),h&&Or(e,N);let J=fe(e,N).length>0||e.state.associativeArrays?.has(N);if(ls(e,N)){let ce=e.state.env.get(N)??"0",pe=parseInt(ce,10)||0,Pe=parseInt(await il(e,O),10)||0;O=String(pe+Pe),e.state.env.set(N,O)}else if(J){O=Zt(e,N,O);let ce=`${N}_0`,pe=e.state.env.get(ce)??"";e.state.env.set(ce,pe+O)}else{O=Zt(e,N,O);let ce=e.state.env.get(N)??"";e.state.env.set(N,ce+O)}A(N),n&&_e(e,N),i&&Ze(e,N),e.state.options.allexport&&!c&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(N));continue}if(I.includes("=")){let N=I.indexOf("="),O=I.slice(0,N),M=I.slice(N+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(O)){$+=`bash: typeset: \`${O}': not a valid identifier
182
- `,x=1;continue}let q=me(e,O);if(q)return q;if(w(O),l){if(M!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(M)){$+=`bash: declare: \`${M}': invalid variable name for name reference
183
- `,x=1;continue}e.state.env.set(O,M),ot(e,O),M!==""&&xs(e,M)&&ir(e,O),A(O),n&&_e(e,O),i&&Ze(e,O);continue}if(f&&xr(e,O),d&&Rr(e,O),h&&Or(e,O),ls(e,O)&&(M=await il(e,M)),M=Zt(e,O,M),ee(e,O)){let J=ve(e,O);J&&J!==O?e.state.env.set(J,M):e.state.env.set(O,M)}else e.state.env.set(O,M);A(O),n&&_e(e,O),i&&Ze(e,O),e.state.options.allexport&&!c&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(O))}else{let N=I;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(N)){$+=`bash: typeset: \`${N}': not a valid identifier
184
- `,x=1;continue}if(s||r?S(N):w(N),l){ot(e,N);let M=e.state.env.get(N);M!==void 0&&M!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(M)?va(e,N):M&&xs(e,M)&&ir(e,N),A(N),n&&_e(e,N),i&&Ze(e,N);continue}if(f&&xr(e,N),d&&Rr(e,N),h&&Or(e,N),r){if(fe(e,N).length>0){$+=`bash: declare: ${N}: cannot convert indexed to associative array
185
- `,x=1;continue}e.state.associativeArrays??=new Set,e.state.associativeArrays.add(N)}let O=Array.from(e.state.env.keys()).some(M=>M.startsWith(`${N}_`)&&!M.startsWith(`${N}__length`));!e.state.env.has(N)&&!O&&(s||r?e.state.env.set(`${N}__length`,"0"):(e.state.declaredVars??=new Set,e.state.declaredVars.add(N))),A(N),n&&_e(e,N),i&&Ze(e,N)}}return P("",$,x)}async function Tr(e,t){let s=!1,r=!1,n=!1,i=[];for(let a=0;a<t.length;a++){let l=t[a];if(l==="-a")s=!0;else if(l==="-A")r=!0;else if(l==="-p")n=!0;else if(l==="--"){i.push(...t.slice(a+1));break}else l.startsWith("-")||i.push(l)}if(i.length===0){let a="",l=Array.from(e.state.readonlyVars||[]).sort();for(let o of l){let u=e.state.env.get(o);if(u!==void 0){let c=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');a+=`declare -r ${o}="${c}"
186
- `}}return Z(a)}for(let a of i){let l=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(l){let f=l[1],d=l[2],h=me(e,f);if(h)return h;let p=st(d);if(e.state.associativeArrays?.has(f)){let m=en(d);for(let[y,b]of m){let v=ue(e,b);e.state.env.set(`${f}_${y}`,v)}}else{let m=fe(e,f),y=0,b=e.state.env.get(f);m.length===0&&b!==void 0?(e.state.env.set(`${f}_0`,b),e.state.env.delete(f),y=1):m.length>0&&(y=Math.max(...m)+1);for(let E=0;E<p.length;E++)e.state.env.set(`${f}_${y+E}`,ue(e,p[E]));let v=y+p.length;e.state.env.set(`${f}__length`,String(v))}_e(e,f);continue}let o=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(o){let f=o[1],d=ue(e,o[2]),h=me(e,f);if(h)return h;let p=e.state.env.get(f)??"";e.state.env.set(f,p+d),_e(e,f);continue}let u=qo(a);if(u.value===void 0&&!u.isArray){_e(e,u.name);continue}let c=await jo(e,u,{makeReadonly:!0});if(c)return c}return G}function Wr(e){return e.state.directoryStack??=[],e.state.directoryStack}function cs(e,t){return t&&e===t?"~":t&&e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e}function Pf(e){let t=e.split("/").filter(r=>r&&r!=="."),s=[];for(let r of t)r===".."?s.pop():s.push(r);return`/${s.join("/")}`}async function Mr(e,t){let s=Wr(e),r;for(let l=0;l<t.length;l++){let o=t[l];if(o==="--"){if(l+1<t.length){if(r!==void 0)return _(`bash: pushd: too many arguments
187
- `,2);r=t[l+1],l++}}else{if(o.startsWith("-")&&o!=="-")return _(`bash: pushd: ${o}: invalid option
188
- `,2);if(r!==void 0)return _(`bash: pushd: too many arguments
189
- `,2);r=o}}if(r===void 0){if(s.length<2)return _(`bash: pushd: no other directory
190
- `,1);let l=s[0];s[0]=s[1],s[1]=l,r=s[0]}let n;if(r.startsWith("/"))n=r;else if(r===".."){let l=e.state.cwd.split("/").filter(o=>o);l.pop(),n=`/${l.join("/")}`}else r==="."?n=e.state.cwd:r.startsWith("~")?n=(e.state.env.get("HOME")||"/")+r.slice(1):n=`${e.state.cwd}/${r}`;n=Pf(n);try{if(!(await e.fs.stat(n)).isDirectory)return _(`bash: pushd: ${r}: Not a directory
191
- `,1)}catch{return _(`bash: pushd: ${r}: No such file or directory
192
- `,1)}s.unshift(e.state.cwd),e.state.previousDir=e.state.cwd,e.state.cwd=n,e.state.env.set("PWD",n),e.state.env.set("OLDPWD",e.state.previousDir);let i=e.state.env.get("HOME")||"",a=`${[n,...s].map(l=>cs(l,i)).join(" ")}
193
- `;return Z(a)}function Fr(e,t){let s=Wr(e);for(let a of t)if(a!=="--")return a.startsWith("-")&&a!=="-"?_(`bash: popd: ${a}: invalid option
194
- `,2):_(`bash: popd: too many arguments
195
- `,2);if(s.length===0)return _(`bash: popd: directory stack empty
196
- `,1);let r=s.shift();if(!r)return _(`bash: popd: directory stack empty
197
- `,1);e.state.previousDir=e.state.cwd,e.state.cwd=r,e.state.env.set("PWD",r),e.state.env.set("OLDPWD",e.state.previousDir);let n=e.state.env.get("HOME")||"",i=`${[r,...s].map(a=>cs(a,n)).join(" ")}
198
- `;return Z(i)}function Vr(e,t){let s=Wr(e),r=!1,n=!1,i=!1,a=!1;for(let c of t)if(c!=="--")if(c.startsWith("-"))for(let f of c.slice(1))if(f==="c")r=!0;else if(f==="l")n=!0;else if(f==="p")i=!0;else if(f==="v")i=!0,a=!0;else return _(`bash: dirs: -${f}: invalid option
199
- `,2);else return _(`bash: dirs: too many arguments
200
- `,1);if(r)return e.state.directoryStack=[],G;let l=[e.state.cwd,...s],o=e.state.env.get("HOME")||"",u;return a?(u=l.map((c,f)=>{let d=n?c:cs(c,o);return` ${f} ${d}`}).join(`
201
- `),u+=`
202
- `):i?u=l.map(c=>n?c:cs(c,o)).join(`
185
+ `;return X(O)}let I=!0;for(let O of g)e.state.functions.has(O)||(I=!1);return _("","",I?0:1)}if(o&&g.length>0)return mc(e,g);if(o&&g.length===0)return yc(e,{filterExport:a,filterReadonly:i,filterNameref:l,filterIndexedArray:r,filterAssocArray:s});if(g.length===0&&s&&!o)return gc(e);if(g.length===0&&r&&!o)return wc(e);if(g.length===0&&!o)return Ec(e);let P="",D=0;for(let I of g){let O=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(O&&!u){let C=O[1],k=O[2],N=oe(e,C);if(N)return N;if(s&&Ee(e,C).length>0){P+=`bash: declare: ${C}: cannot convert indexed to associative array
186
+ `,D=1;continue}if((r||!s&&!r)&&e.state.associativeArrays?.has(C)){P+=`bash: declare: ${C}: cannot convert associative to indexed array
187
+ `,D=1;continue}let M=s&&k.includes("[")?Ur(k,n):void 0,G=M===void 0?Et(k,{...n,maxElements:s?n.maxElements*2:n.maxElements}):void 0;if(e.executionScope.consumeWork(M?.length??G?.length??0,"declare array assignment"),A(C),s?(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(C),kt(e,C,"associative")):kt(e,C,"indexed"),me(e,C),e.state.env.delete(C),s&&k.includes("["))for(let[q,xe]of M??[])F(e,C,q,_t(e,xe),"associative");else if(s){let q=G??[];for(let xe=0;xe<q.length;xe+=2){let we=q[xe],Jt=xe+1<q.length?q[xe+1]:"";F(e,C,we,Jt,"associative")}}else{let q=G??[];if(q.some(we=>/^\[[^\]]+\]=/.test(we))){let we=0;for(let Jt of q){let ls=Jt.match(/^\[([^\]]+)\]=(.*)$/);if(ls){let cs=ls[1],Pu=ls[2],$n;if(/^-?\d+$/.test(cs))$n=Number.parseInt(cs,10);else try{let Cu=new V,Du=ne(Cu,cs);$n=await Z(e,Du.expression)}catch{$n=0}F(e,C,$n,_t(e,Pu)),we=$n+1}else F(e,C,we,Jt),we++}}else for(let we=0;we<q.length;we++)F(e,C,we,q[we])}x(C),i&&Fe(e,C),a&&st(e,C);continue}if(c){let C=I.includes("=")?I.slice(0,I.indexOf("=")):I;if(_o(e,C),!I.includes("="))continue}if(f){let C=I.includes("=")?I.slice(0,I.indexOf("=")):I;if(vr(e,C),!I.includes("="))continue}let B=Ud(I);if(B){let{name:C,indexExpr:k,value:N}=B,M=oe(e,C);if(M)return M;A(C);let G;try{let q=new V,xe=ne(q,k);G=await Z(e,xe.expression)}catch{let q=parseInt(k,10);G=Number.isNaN(q)?0:q}F(e,C,G,N),x(C),i&&Fe(e,C),a&&st(e,C);continue}let Y=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(Y&&!u){let C=Y[1],k=Y[2],N=oe(e,C);if(N)return N;A(C);let M=Et(k,n);if(e.state.associativeArrays?.has(C)){let G=Ur(k,n);e.executionScope.consumeWork(G.length,"declare array append"),jt(e,C,G.map(([q])=>q));for(let[q,xe]of G)F(e,C,q,xe,"associative")}else{e.executionScope.consumeWork(M.length,"declare array append");let G=Ee(e,C),q=0,xe=e.state.env.get(C);G.length===0&&xe!==void 0?(F(e,C,0,xe),e.state.env.delete(C),q=1):G.length>0&&(q=Math.max(...G)+1),jt(e,C,Array.from({length:M.length},(we,Jt)=>q+Jt));for(let we=0;we<M.length;we++)F(e,C,q+we,M[we])}x(C),i&&Fe(e,C),a&&st(e,C);continue}let J=I.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(J){let C=J[1],k=J[2],N=oe(e,C);if(N)return N;v(C),d&&Pi(e,C),p&&Ci(e,C),h&&Di(e,C);let G=Ee(e,C).length>0||e.state.associativeArrays?.has(C);if(Gn(e,C)){let q=e.state.env.get(C)??"0",xe=parseInt(q,10)||0,we=parseInt(await bc(e,k),10)||0;k=String(xe+we),e.state.env.set(C,k)}else if(G){k=Sn(e,C,k);let q=se(e,C,0)??"";F(e,C,0,At([q,k],"",e.limits.maxStringLength,"declare append"))}else{k=Sn(e,C,k);let q=e.state.env.get(C)??"";e.state.env.set(C,At([q,k],"",e.limits.maxStringLength,"declare append"))}x(C),i&&Fe(e,C),a&&st(e,C),e.state.options.allexport&&!f&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(C));continue}if(I.includes("=")){let C=I.indexOf("="),k=I.slice(0,C),N=I.slice(C+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(k)){P+=`bash: typeset: \`${k}': not a valid identifier
188
+ `,D=1;continue}let M=oe(e,k);if(M)return M;if(v(k),l){if(N!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(N)){P+=`bash: declare: \`${N}': invalid variable name for name reference
189
+ `,D=1;continue}e.state.env.set(k,N),wt(e,k),N!==""&&Er(e,N)&&Ks(e,k),x(k),i&&Fe(e,k),a&&st(e,k);continue}if(d&&Pi(e,k),p&&Ci(e,k),h&&Di(e,k),Gn(e,k)&&(N=await bc(e,N)),N=Sn(e,k,N),ae(e,k)){let G=Re(e,k);G&&G!==k?e.state.env.set(G,N):e.state.env.set(k,N)}else e.state.env.set(k,N);x(k),i&&Fe(e,k),a&&st(e,k),e.state.options.allexport&&!f&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(k))}else{let C=I;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(C)){P+=`bash: typeset: \`${C}': not a valid identifier
190
+ `,D=1;continue}if(r||s?A(C):v(C),l){wt(e,C);let N=e.state.env.get(C);N!==void 0&&N!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(N)?Oo(e,C):N&&Er(e,N)&&Ks(e,C),x(C),i&&Fe(e,C),a&&st(e,C);continue}if(d&&Pi(e,C),p&&Ci(e,C),h&&Di(e,C),s){if(Ee(e,C).length>0){P+=`bash: declare: ${C}: cannot convert indexed to associative array
191
+ `,D=1;continue}e.state.associativeArrays??=new Set,e.state.associativeArrays.add(C),kt(e,C,"associative")}let k=$e(e,C);!e.state.env.has(C)&&!k&&(r||s?kt(e,C,s?"associative":"indexed"):(e.state.declaredVars??=new Set,e.state.declaredVars.add(C))),x(C),i&&Fe(e,C),a&&st(e,C)}}return _("",P,D)}async function Ii(e,t){let n={maxElements:e.limits.maxArrayElements,maxStringBytes:e.limits.maxStringLength},r=!1,s=!1,i=!1,a=[];for(let o=0;o<t.length;o++){let l=t[o];if(l==="-a")r=!0;else if(l==="-A")s=!0;else if(l==="-p")i=!0;else if(l==="--"){a.push(...t.slice(o+1));break}else l.startsWith("-")||a.push(l)}if(a.length===0){let o="",l=Array.from(e.state.readonlyVars||[]).sort();for(let c of l){let u=e.state.env.get(c);if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');o+=`declare -r ${c}="${f}"
192
+ `}}return X(o)}for(let o of a){let l=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(l){let d=l[1],p=l[2],h=oe(e,d);if(h)return h;let m=Et(p,n);if(e.state.associativeArrays?.has(d)){let E=Ur(p,n);e.executionScope.consumeWork(E.length,"readonly array append"),jt(e,d,E.map(([b])=>b));for(let[b,g]of E)F(e,d,b,g,"associative")}else{e.executionScope.consumeWork(m.length,"readonly array append");let E=Ee(e,d),b=0,g=e.state.env.get(d);E.length===0&&g!==void 0?(F(e,d,0,g),e.state.env.delete(d),b=1):E.length>0&&(b=Math.max(...E)+1),jt(e,d,Array.from({length:m.length},(w,S)=>b+S));for(let w=0;w<m.length;w++)F(e,d,b+w,m[w])}Fe(e,d);continue}let c=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(c){let d=c[1],p=c[2],h=oe(e,d);if(h)return h;let m=e.state.env.get(d)??"";e.state.env.set(d,At([m,p],"",e.limits.maxStringLength,"readonly append")),Fe(e,d);continue}let u=rc(o,n);if(u.value===void 0&&!u.isArray){Fe(e,u.name);continue}let f=await sc(e,u,{makeReadonly:!0});if(f)return f}return te}function _i(e){return e.state.directoryStack??=[],e.state.directoryStack}function Zn(e,t){return t&&e===t?"~":t&&e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e}function jd(e){let t=e.split("/").filter(r=>r&&r!=="."),n=[];for(let r of t)r===".."?n.pop():n.push(r);return`/${n.join("/")}`}async function Oi(e,t){let n=_i(e),r;for(let o=0;o<t.length;o++){let l=t[o];if(l==="--"){if(o+1<t.length){if(r!==void 0)return R(`bash: pushd: too many arguments
193
+ `,2);r=t[o+1],o++}}else{if(l.startsWith("-")&&l!=="-")return R(`bash: pushd: ${l}: invalid option
194
+ `,2);if(r!==void 0)return R(`bash: pushd: too many arguments
195
+ `,2);r=l}}if(r===void 0){if(n.length<2)return R(`bash: pushd: no other directory
196
+ `,1);let o=n[0];n[0]=n[1],n[1]=o,r=n[0]}let s;if(r.startsWith("/"))s=r;else if(r===".."){let o=e.state.cwd.split("/").filter(l=>l);o.pop(),s=`/${o.join("/")}`}else r==="."?s=e.state.cwd:r.startsWith("~")?s=(e.state.env.get("HOME")||"/")+r.slice(1):s=`${e.state.cwd}/${r}`;s=jd(s);try{if(!(await e.fs.stat(s)).isDirectory)return R(`bash: pushd: ${r}: Not a directory
197
+ `,1)}catch{return R(`bash: pushd: ${r}: No such file or directory
198
+ `,1)}n.unshift(e.state.cwd),e.state.previousDir=e.state.cwd,e.state.cwd=s,e.state.env.set("PWD",s),e.state.env.set("OLDPWD",e.state.previousDir);let i=e.state.env.get("HOME")||"",a=`${[s,...n].map(o=>Zn(o,i)).join(" ")}
199
+ `;return X(a)}function Li(e,t){let n=_i(e);for(let a of t)if(a!=="--")return a.startsWith("-")&&a!=="-"?R(`bash: popd: ${a}: invalid option
200
+ `,2):R(`bash: popd: too many arguments
201
+ `,2);if(n.length===0)return R(`bash: popd: directory stack empty
202
+ `,1);let r=n.shift();if(!r)return R(`bash: popd: directory stack empty
203
+ `,1);e.state.previousDir=e.state.cwd,e.state.cwd=r,e.state.env.set("PWD",r),e.state.env.set("OLDPWD",e.state.previousDir);let s=e.state.env.get("HOME")||"",i=`${[r,...n].map(a=>Zn(a,s)).join(" ")}
204
+ `;return X(i)}function Ti(e,t){let n=_i(e),r=!1,s=!1,i=!1,a=!1;for(let u of t)if(u!=="--")if(u.startsWith("-"))for(let f of u.slice(1))if(f==="c")r=!0;else if(f==="l")s=!0;else if(f==="p")i=!0;else if(f==="v")i=!0,a=!0;else return R(`bash: dirs: -${f}: invalid option
205
+ `,2);else return R(`bash: dirs: too many arguments
206
+ `,1);if(r)return e.state.directoryStack=[],te;let o=[e.state.cwd,...n],l=e.state.env.get("HOME")||"",c;return a?(c=o.map((u,f)=>{let d=s?u:Zn(u,l);return` ${f} ${d}`}).join(`
207
+ `),c+=`
208
+ `):i?c=o.map(u=>s?u:Zn(u,l)).join(`
203
209
  `)+`
204
- `:u=l.map(c=>n?c:cs(c,o)).join(" ")+`
205
- `,Z(u)}async function ln(e,t,s){let r=t;if(r.length>0){let l=r[0];if(l==="--")r=r.slice(1);else if(l.startsWith("-")&&l!=="-"&&l.length>1)return _(`bash: eval: ${l}: invalid option
210
+ `:c=o.map(u=>s?u:Zn(u,l)).join(" ")+`
211
+ `,X(c)}async function Xr(e,t,n){let r=t;if(r.length>0){let o=r[0];if(o==="--")r=r.slice(1);else if(o.startsWith("-")&&o!=="-"&&o.length>1)return R(`bash: eval: ${o}: invalid option
206
212
  eval: usage: eval [arg ...]
207
- `,2)}if(r.length===0)return G;let n=r.join(" ");if(n.trim()==="")return G;let i=e.state.groupStdin,a=s??e.state.groupStdin;a!==void 0&&(e.state.groupStdin=a);try{let l=qe(n);return await e.executeScript(l)}catch(l){if(l instanceof De||l instanceof Ie||l instanceof $e||l instanceof j)throw l;if(l.name==="ParseException")return _(`bash: eval: ${l.message}
208
- `);throw l}finally{e.state.groupStdin=i}}function zr(e,t){let s,r="";if(t.length===0)s=e.state.lastExitCode;else{let n=t[0],i=Number.parseInt(n,10);n===""||Number.isNaN(i)||!/^-?\d+$/.test(n)?(r=`bash: exit: ${n}: numeric argument required
209
- `,s=2):s=(i%256+256)%256}throw new j(s,"",r)}function Br(e,t){let s=!1,r=[];for(let a of t)a==="-n"?s=!0:a==="-p"||a==="--"||r.push(a);if(r.length===0&&!s){let a="",l=e.state.exportedVars??new Set,o=Array.from(l).sort();for(let u of o){let c=e.state.env.get(u);if(c!==void 0){let f=c.replace(/\\/g,"\\\\").replace(/"/g,'\\"');a+=`declare -x ${u}="${f}"
210
- `}}return Z(a)}if(s){for(let a of r){let l,o;if(a.includes("=")){let u=a.indexOf("=");l=a.slice(0,u),o=ue(e,a.slice(u+1)),e.state.env.set(l,o)}else l=a;Os(e,l)}return G}let n="",i=0;for(let a of r){let l,o,u=!1,c=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(c)l=c[1],o=ue(e,c[2]),u=!0;else if(a.includes("=")){let f=a.indexOf("=");l=a.slice(0,f),o=ue(e,a.slice(f+1))}else l=a;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(l)){n+=`bash: export: \`${a}': not a valid identifier
211
- `,i=1;continue}if(o!==void 0)if(u){let f=e.state.env.get(l)??"";e.state.env.set(l,f+o)}else e.state.env.set(l,o);else e.state.env.has(l)||e.state.env.set(l,"");Ze(e,l)}return P("",n,i)}function cn(e,t){if(t.length<2)return _(`bash: getopts: usage: getopts optstring name [arg ...]
212
- `);let s=t[0],r=t[1],n=!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r),i=s.startsWith(":"),a=i?s.slice(1):s,l;if(t.length>2)l=t.slice(2);else{let m=Number.parseInt(e.state.env.get("#")||"0",10);l=[];for(let y=1;y<=m;y++)l.push(e.state.env.get(String(y))||"")}let o=Number.parseInt(e.state.env.get("OPTIND")||"1",10);o<1&&(o=1);let u=Number.parseInt(e.state.env.get("__GETOPTS_CHARINDEX")||"0",10);if(e.state.env.set("OPTARG",""),o>l.length)return n||e.state.env.set(r,"?"),e.state.env.set("OPTIND",String(l.length+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:n?2:1,stdout:"",stderr:""};let c=l[o-1];if(!c||c==="-"||!c.startsWith("-"))return n||e.state.env.set(r,"?"),{exitCode:n?2:1,stdout:"",stderr:""};if(c==="--")return e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),n||e.state.env.set(r,"?"),{exitCode:n?2:1,stdout:"",stderr:""};let f=u===0?1:u,d=c[f];if(!d)return e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),cn(e,t);let h=a.indexOf(d);if(h===-1){let m="";return i?e.state.env.set("OPTARG",d):m=`bash: illegal option -- ${d}
213
- `,n||e.state.env.set(r,"?"),f+1<c.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(o))):(e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0")),{exitCode:n?2:0,stdout:"",stderr:m}}if(h+1<a.length&&a[h+1]===":")if(f+1<c.length)e.state.env.set("OPTARG",c.slice(f+1)),e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0");else{if(o>=l.length){let m="";return i?(e.state.env.set("OPTARG",d),n||e.state.env.set(r,":")):(m=`bash: option requires an argument -- ${d}
214
- `,n||e.state.env.set(r,"?")),e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:n?2:0,stdout:"",stderr:m}}e.state.env.set("OPTARG",l[o]),e.state.env.set("OPTIND",String(o+2)),e.state.env.set("__GETOPTS_CHARINDEX","0")}else f+1<c.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(o))):(e.state.env.set("OPTIND",String(o+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"));return n||e.state.env.set(r,d),{exitCode:n?2:0,stdout:"",stderr:""}}async function qr(e,t){e.state.hashTable||(e.state.hashTable=new Map);let s=!1,r=!1,n=!1,i=!1,a=!1,l="",o=[],u=0;for(;u<t.length;){let p=t[u];if(p==="--"){u++,o.push(...t.slice(u));break}if(p==="-r")s=!0,u++;else if(p==="-d")r=!0,u++;else if(p==="-l")n=!0,u++;else if(p==="-t")a=!0,u++;else if(p==="-p"){if(i=!0,u++,u>=t.length)return _(`bash: hash: -p: option requires an argument
215
- `,1);l=t[u],u++}else if(p.startsWith("-")&&p.length>1){for(let m of p.slice(1))if(m==="r")s=!0;else if(m==="d")r=!0;else if(m==="l")n=!0;else if(m==="t")a=!0;else return m==="p"?_(`bash: hash: -p: option requires an argument
216
- `,1):_(`bash: hash: -${m}: invalid option
217
- `,1);u++}else o.push(p),u++}if(s)return e.state.hashTable.clear(),G;if(r){if(o.length===0)return _(`bash: hash: -d: option requires an argument
218
- `,1);let p=!1,m="";for(let y of o)e.state.hashTable.has(y)?e.state.hashTable.delete(y):(m+=`bash: hash: ${y}: not found
219
- `,p=!0);return p?_(m,1):G}if(a){if(o.length===0)return _(`bash: hash: -t: option requires an argument
220
- `,1);let p="",m=!1,y="";for(let b of o){let v=e.state.hashTable.get(b);v?o.length>1?p+=`${b} ${v}
221
- `:p+=`${v}
222
- `:(y+=`bash: hash: ${b}: not found
223
- `,m=!0)}return m?{exitCode:1,stdout:p,stderr:y}:Z(p)}if(i){if(o.length===0)return _(`bash: hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]
224
- `,1);let p=o[0];return e.state.hashTable.set(p,l),G}if(o.length===0){if(e.state.hashTable.size===0)return Z(`hash: hash table empty
225
- `);let p="";if(n)for(let[m,y]of e.state.hashTable)p+=`builtin hash -p ${y} ${m}
226
- `;else{p=`hits command
227
- `;for(let[,m]of e.state.hashTable)p+=` 1 ${m}
228
- `}return Z(p)}let c=!1,f="",h=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let p of o){if(p.includes("/")){f+=`bash: hash: ${p}: cannot use / in name
229
- `,c=!0;continue}let m=!1;for(let y of h){if(!y)continue;let b=`${y}/${p}`;if(await e.fs.exists(b)){e.state.hashTable.set(p,b),m=!0;break}}m||(f+=`bash: hash: ${p}: not found
230
- `,c=!0)}return c?_(f,1):G}var al=new Map([[":",[": [arguments]",`Null command.
213
+ `,2)}if(r.length===0)return te;let s=r.join(" ");if(s.trim()==="")return te;let i=e.state.groupStdin,a=n??e.state.groupStdin;a!==void 0&&(e.state.groupStdin=a);try{let o=tt(s);return await e.executeScript(o)}catch(o){if(o instanceof qe||o instanceof Ue||o instanceof Oe||o instanceof j)throw o;if(o.name==="ParseException")return R(`bash: eval: ${o.message}
214
+ `);throw o}finally{e.state.groupStdin=i}}function Mi(e,t){let n,r="";if(t.length===0)n=e.state.lastExitCode;else{let s=t[0];if(s===""||!/^-?\d+$/.test(s))r=`bash: exit: ${s}: numeric argument required
215
+ `,n=2;else{let i=BigInt(s);n=Number((i%256n+256n)%256n)}}throw new j(n,"",r)}function Bi(e,t){let n=!1,r=[];for(let a of t)a==="-n"?n=!0:a==="-p"||a==="--"||r.push(a);if(r.length===0&&!n){let a="",o=e.state.exportedVars??new Set,l=Array.from(o).sort();for(let c of l){let u=e.state.env.get(c);u!==void 0&&(a+=`declare -x ${c}=${jn(u)}
216
+ `)}return X(a)}if(n){for(let a of r){let o,l;if(a.includes("=")){let c=a.indexOf("=");o=a.slice(0,c),l=a.slice(c+1)}else o=a;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o))return _("",`bash: export: \`${a}': not a valid identifier
217
+ `,1);l!==void 0&&(oe(e,o),e.state.env.set(o,l)),vr(e,o)}return te}let s="",i=0;for(let a of r){let o,l,c=!1,u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(u)o=u[1],l=u[2],c=!0;else if(a.includes("=")){let f=a.indexOf("=");o=a.slice(0,f),l=a.slice(f+1)}else o=a;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){s+=`bash: export: \`${a}': not a valid identifier
218
+ `,i=1;continue}if(l!==void 0)if(oe(e,o),c){let f=e.state.env.get(o)??"";e.state.env.set(o,f+l)}else e.state.env.set(o,l);else e.state.env.has(o)||e.state.env.set(o,"");st(e,o)}return _("",s,i)}function Yr(e,t){if(t.length<2)return R(`bash: getopts: usage: getopts optstring name [arg ...]
219
+ `);let n=t[0],r=t[1],s=!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r),i=n.startsWith(":"),a=i?n.slice(1):n,o;if(t.length>2)o=t.slice(2);else{let m=Number.parseInt(e.state.env.get("#")||"0",10);o=[];for(let E=1;E<=m;E++)o.push(e.state.env.get(String(E))||"")}let l=Number.parseInt(e.state.env.get("OPTIND")||"1",10);l<1&&(l=1);let c=Number.parseInt(e.state.env.get("__GETOPTS_CHARINDEX")||"0",10);if(e.state.env.set("OPTARG",""),l>o.length)return s||e.state.env.set(r,"?"),e.state.env.set("OPTIND",String(o.length+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:s?2:1,stdout:"",stderr:""};let u=o[l-1];if(!u||u==="-"||!u.startsWith("-"))return s||e.state.env.set(r,"?"),{exitCode:s?2:1,stdout:"",stderr:""};if(u==="--")return e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),s||e.state.env.set(r,"?"),{exitCode:s?2:1,stdout:"",stderr:""};let f=c===0?1:c,d=u[f];if(!d)return e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),Yr(e,t);let p=a.indexOf(d);if(p===-1){let m="";return i?e.state.env.set("OPTARG",d):m=`bash: illegal option -- ${d}
220
+ `,s||e.state.env.set(r,"?"),f+1<u.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(l))):(e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0")),{exitCode:s?2:0,stdout:"",stderr:m}}if(p+1<a.length&&a[p+1]===":")if(f+1<u.length)e.state.env.set("OPTARG",u.slice(f+1)),e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0");else{if(l>=o.length){let m="";return i?(e.state.env.set("OPTARG",d),s||e.state.env.set(r,":")):(m=`bash: option requires an argument -- ${d}
221
+ `,s||e.state.env.set(r,"?")),e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:s?2:0,stdout:"",stderr:m}}e.state.env.set("OPTARG",o[l]),e.state.env.set("OPTIND",String(l+2)),e.state.env.set("__GETOPTS_CHARINDEX","0")}else f+1<u.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(l))):(e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"));return s||e.state.env.set(r,d),{exitCode:s?2:0,stdout:"",stderr:""}}async function Wi(e,t){e.state.hashTable||(e.state.hashTable=new Map);let n=!1,r=!1,s=!1,i=!1,a=!1,o="",l=[],c=0;for(;c<t.length;){let h=t[c];if(h==="--"){c++,l.push(...t.slice(c));break}if(h==="-r")n=!0,c++;else if(h==="-d")r=!0,c++;else if(h==="-l")s=!0,c++;else if(h==="-t")a=!0,c++;else if(h==="-p"){if(i=!0,c++,c>=t.length)return R(`bash: hash: -p: option requires an argument
222
+ `,1);o=t[c],c++}else if(h.startsWith("-")&&h.length>1){for(let m of h.slice(1))if(m==="r")n=!0;else if(m==="d")r=!0;else if(m==="l")s=!0;else if(m==="t")a=!0;else return m==="p"?R(`bash: hash: -p: option requires an argument
223
+ `,1):R(`bash: hash: -${m}: invalid option
224
+ `,1);c++}else l.push(h),c++}if(n)return e.state.hashTable.clear(),te;if(r){if(l.length===0)return R(`bash: hash: -d: option requires an argument
225
+ `,1);let h=!1,m="";for(let E of l)e.state.hashTable.has(E)?e.state.hashTable.delete(E):(m+=`bash: hash: ${E}: not found
226
+ `,h=!0);return h?R(m,1):te}if(a){if(l.length===0)return R(`bash: hash: -t: option requires an argument
227
+ `,1);let h="",m=!1,E="";for(let b of l){let g=e.state.hashTable.get(b);g?l.length>1?h+=`${b} ${g}
228
+ `:h+=`${g}
229
+ `:(E+=`bash: hash: ${b}: not found
230
+ `,m=!0)}return m?{exitCode:1,stdout:h,stderr:E}:X(h)}if(i){if(l.length===0)return R(`bash: hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]
231
+ `,1);let h=l[0];return e.state.hashTable.set(h,o),te}if(l.length===0){if(e.state.hashTable.size===0)return X(`hash: hash table empty
232
+ `);let h="";if(s)for(let[m,E]of e.state.hashTable){let b=m.startsWith("-")?" --":"";h+=`builtin hash -p ${ge(E)}${b} ${ge(m)}
233
+ `}else{h=`hits command
234
+ `;for(let[,m]of e.state.hashTable)h+=` 1 ${m}
235
+ `}return X(h)}let u=!1,f="",p=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let h of l){if(h.includes("/")){f+=`bash: hash: ${h}: cannot use / in name
236
+ `,u=!0;continue}let m=!1;for(let E of p){if(!E)continue;let b=`${E}/${h}`;if(await e.fs.exists(b)){e.state.hashTable.set(h,b),m=!0;break}}m||(f+=`bash: hash: ${h}: not found
237
+ `,u=!0)}return u?R(f,1):te}var Sc=new Map([[":",[": [arguments]",`Null command.
231
238
  No effect; the command does nothing.
232
239
  Exit Status:
233
240
  Always succeeds.`]],[".",[". filename [arguments]",`Execute commands from a file in the current shell.
@@ -572,32 +579,35 @@ eval: usage: eval [arg ...]
572
579
  job specification, and reports its termination status.
573
580
  Exit Status:
574
581
  Returns the status of the last ID; fails if ID is invalid or an invalid
575
- option is given.`]]]),ol=[...al.keys()].sort();function jr(e,t){let s=!1,r=[],n=0;for(;n<t.length;){let o=t[n];if(o==="--"){for(n++;n<t.length;)r.push(t[n]),n++;break}if(o.startsWith("-")&&o.length>1){for(let u=1;u<o.length;u++){let c=o[u];if(c==="s")s=!0;else return _(`bash: help: -${c}: invalid option
576
- `,2)}n++}else r.push(o),n++}if(r.length===0)return If();let i="",a=!1,l="";for(let o of r){let u=Df(o);if(u.length===0){l+=`bash: help: no help topics match \`${o}'. Try \`help help' or \`man -k ${o}' or \`info ${o}'.
577
- `,a=!0;continue}for(let c of u){let f=al.get(c);if(!f)continue;let[d,h]=f;s?i+=`${c}: ${d}
578
- `:i+=`${c}: ${d}
579
- ${h}
580
- `}}return{exitCode:a?1:0,stdout:i,stderr:l}}function Df(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,"."),s=ae(`^${t}$`);return ol.filter(r=>s.test(r))}function If(){let e=[];e.push("just-bash shell builtins"),e.push("These shell commands are defined internally. Type `help' to see this list."),e.push("Type `help name' to find out more about the function `name'."),e.push("");let t=36,s=ol.slice(),r=Math.ceil(s.length/2);for(let n=0;n<r;n++){let i=s[n]||"",a=s[n+r]||"",l=i.padEnd(t);e.push(a?`${l}${a}`:i)}return Z(`${e.join(`
582
+ option is given.`]]]),Ac=[...Sc.keys()].sort();function Fi(e,t){let n=!1,r=[],s=0;for(;s<t.length;){let l=t[s];if(l==="--"){for(s++;s<t.length;)r.push(t[s]),s++;break}if(l.startsWith("-")&&l.length>1){for(let c=1;c<l.length;c++){let u=l[c];if(u==="s")n=!0;else return R(`bash: help: -${u}: invalid option
583
+ `,2)}s++}else r.push(l),s++}if(r.length===0)return Zd();let i="",a=!1,o="";for(let l of r){let c=Gd(l);if(c.length===0){o+=`bash: help: no help topics match \`${l}'. Try \`help help' or \`man -k ${l}' or \`info ${l}'.
584
+ `,a=!0;continue}for(let u of c){let f=Sc.get(u);if(!f)continue;let[d,p]=f;n?i+=`${u}: ${d}
585
+ `:i+=`${u}: ${d}
586
+ ${p}
587
+ `}}return{exitCode:a?1:0,stdout:i,stderr:o}}function Gd(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,"."),n=he(`^${t}$`);return Ac.filter(r=>n.test(r))}function Zd(){let e=[];e.push("just-bash shell builtins"),e.push("These shell commands are defined internally. Type `help' to see this list."),e.push("Type `help name' to find out more about the function `name'."),e.push("");let t=36,n=Ac.slice(),r=Math.ceil(n.length/2);for(let s=0;s<r;s++){let i=n[s]||"",a=n[s+r]||"",o=i.padEnd(t);e.push(a?`${o}${a}`:i)}return X(`${e.join(`
581
588
  `)}
582
- `)}function Cf(e){let t=[],s="",r=0;for(let n of e){for(let i of n)i==="("?r++:i===")"&&r--;s?s+=` ${n}`:s=n,r===0&&(t.push(s),s="")}return s&&t.push(s),t}async function Ur(e,t){if(t.length===0)return _(`bash: let: expression expected
583
- `);let s=Cf(t),r=0;for(let n of s)try{let a=qe(`(( ${n} ))`).statements[0];if(a&&a.pipelines.length>0&&a.pipelines[0].commands.length>0){let l=a.pipelines[0].commands[0];l.type==="ArithmeticCommand"&&(r=await L(e,l.expression.expression))}}catch(i){return _(`bash: let: ${n}: ${i.message}
584
- `)}return P("","",r===0?1:0)}async function Zr(e,t){if(e.state.localScopes.length===0)return _(`bash: local: can only be used in a function
585
- `);let s=e.state.localScopes[e.state.localScopes.length-1],r="",n=0,i=!1,a=!1,l=!1,o=[];for(let u of t)if(u==="-n")i=!0;else if(u==="-a")a=!0;else if(u==="-p")l=!0;else if(u.startsWith("-")&&!u.includes("="))for(let c of u.slice(1))c==="n"?i=!0:c==="a"?a=!0:c==="p"&&(l=!0);else o.push(u);if(o.length===0){let u="",c=Array.from(s.keys()).filter(f=>!f.includes("_")||!f.match(/_\d+$/)).filter(f=>!f.includes("__length")).sort();for(let f of c){let d=e.state.env.get(f);d!==void 0&&(u+=`${f}=${d}
586
- `)}return P(u,"",0)}for(let u of o){let c,f,d=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(d){c=d[1];let b=d[2];if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(c)){r+=`bash: local: \`${u}': not a valid identifier
587
- `,n=1;continue}if(me(e,c,"bash"),!s.has(c)){s.set(c,e.state.env.get(c));let w=`${c}_`;for(let S of e.state.env.keys())S.startsWith(w)&&!S.includes("__")&&(s.has(S)||s.set(S,e.state.env.get(S)))}let v=`${c}_`;for(let w of e.state.env.keys())w.startsWith(v)&&!w.includes("__")&&e.state.env.delete(w);let E=st(b);for(let w=0;w<E.length;w++)e.state.env.set(`${c}_${w}`,E[w]);e.state.env.set(`${c}__length`,String(E.length)),bt(e,c),i&&ot(e,c);continue}let h=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(h){c=h[1];let b=h[2];if(me(e,c,"bash"),!s.has(c)){s.set(c,e.state.env.get(c));let $=`${c}_`;for(let I of e.state.env.keys())I.startsWith($)&&!I.includes("__")&&(s.has(I)||s.set(I,e.state.env.get(I)));let x=`${c}__length`;e.state.env.has(x)&&!s.has(x)&&s.set(x,e.state.env.get(x))}let v=st(b),E=fe(e,c),w=0,S=e.state.env.get(c);E.length===0&&S!==void 0?(e.state.env.set(`${c}_0`,S),e.state.env.delete(c),w=1):E.length>0&&(w=Math.max(...E)+1);for(let $=0;$<v.length;$++)e.state.env.set(`${c}_${w+$}`,ue(e,v[$]));let A=w+v.length;e.state.env.set(`${c}__length`,String(A)),bt(e,c),i&&ot(e,c);continue}let p=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(p){c=p[1];let b=ue(e,p[2]);me(e,c,"bash"),s.has(c)||s.set(c,e.state.env.get(c));let v=e.state.env.get(c)??"";e.state.env.set(c,v+b),bt(e,c),i&&ot(e,c);continue}let m=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(m){c=m[1];let b=m[2],v=ue(e,m[3]);if(me(e,c,"bash"),!s.has(c)){s.set(c,e.state.env.get(c));let S=`${c}_`;for(let $ of e.state.env.keys())$.startsWith(S)&&!$.includes("__")&&(s.has($)||s.set($,e.state.env.get($)));let A=`${c}__length`;e.state.env.has(A)&&!s.has(A)&&s.set(A,e.state.env.get(A))}let E;try{let S=new V,A=X(S,b);E=await L(e,A.expression)}catch{let S=parseInt(b,10);E=Number.isNaN(S)?0:S}e.state.env.set(`${c}_${E}`,v);let w=parseInt(e.state.env.get(`${c}__length`)??"0",10);E>=w&&e.state.env.set(`${c}__length`,String(E+1)),bt(e,c),i&&ot(e,c);continue}if(u.includes("=")){let b=u.indexOf("=");c=u.slice(0,b),f=ue(e,u.slice(b+1))}else c=u;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(c)){r+=`bash: local: \`${u}': not a valid identifier
588
- `,n=1;continue}let y=s.has(c);if(f!==void 0){let b=e.state.env.get(c);if(e.state.tempEnvBindings){let v=e.state.accessedTempEnvVars?.has(c),E=e.state.mutatedTempEnvVars?.has(c);if(!v&&!E)for(let w=e.state.tempEnvBindings.length-1;w>=0;w--){let S=e.state.tempEnvBindings[w];if(S.has(c)){b=S.get(c);break}}}Uo(e,c,b)}if(!y){let b=e.state.env.get(c);if(e.state.tempEnvBindings)for(let v=e.state.tempEnvBindings.length-1;v>=0;v--){let E=e.state.tempEnvBindings[v];if(E.has(c)){b=E.get(c);break}}if(s.set(c,b),a){let v=`${c}_`;for(let w of e.state.env.keys())w.startsWith(v)&&!w.includes("__")&&(s.has(w)||s.set(w,e.state.env.get(w)));let E=`${c}__length`;e.state.env.has(E)&&!s.has(E)&&s.set(E,e.state.env.get(E))}}if(a&&f===void 0){let b=`${c}_`;for(let v of e.state.env.keys())v.startsWith(b)&&!v.includes("__")&&e.state.env.delete(v);e.state.env.set(`${c}__length`,"0")}else if(f!==void 0){if(me(e,c,"bash"),i&&f!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(f)){r+=`bash: local: \`${f}': invalid variable name for name reference
589
- `,n=1;continue}e.state.env.set(c,f),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(c))}else{let b=e.state.tempEnvBindings?.some(v=>v.has(c));!y&&!b&&e.state.env.delete(c)}bt(e,c),i&&ot(e,c)}return P("",r,n)}function Hr(e,t,s){let r=`
590
- `,n=0,i=0,a=0,l=!1,o="MAPFILE",u=0;for(;u<t.length;){let v=t[u];v==="-d"&&u+1<t.length?(r=t[u+1]===""?"\0":t[u+1]||`
591
- `,u+=2):v==="-n"&&u+1<t.length?(n=Number.parseInt(t[u+1],10)||0,u+=2):v==="-O"&&u+1<t.length?(i=Number.parseInt(t[u+1],10)||0,u+=2):v==="-s"&&u+1<t.length?(a=Number.parseInt(t[u+1],10)||0,u+=2):v==="-t"?(l=!0,u++):v==="-u"||v==="-C"||v==="-c"?u+=2:(v.startsWith("-")||(o=v),u++)}let c=s;!c&&e.state.groupStdin!==void 0&&(c=e.state.groupStdin);let f=[],d=c,h=0,p=0,m=e.limits?.maxArrayElements??1e5;for(;d.length>0;){let v=d.indexOf(r);if(v===-1){if(d.length>0){if(p<a)p++;else if(n===0||h<n){if(i+h>=m)return P("",`mapfile: array element limit exceeded (${m})
592
- `,1);let S=d,A=S.indexOf("\0");A!==-1&&(S=S.substring(0,A)),f.push(S),h++}}break}let E=d.substring(0,v),w=E.indexOf("\0");if(w!==-1&&(E=E.substring(0,w)),!l&&r!=="\0"&&(E+=r),d=d.substring(v+r.length),p<a){p++;continue}if(n>0&&h>=n)break;if(i+h>=m)return P("",`mapfile: array element limit exceeded (${m})
593
- `,1);f.push(E),h++}i===0&&Ke(e,o);for(let v=0;v<f.length;v++)e.state.env.set(`${o}_${i+v}`,f[v]);let y=parseInt(e.state.env.get(`${o}__length`)||"0",10),b=i+f.length;return e.state.env.set(`${o}__length`,String(Math.max(y,b))),e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=""),P("","",0)}function xf(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),a=n+r+1,l=t.slice(a),o=l.indexOf(":");if(o===-1)return null;let u=Number.parseInt(l.slice(0,o),10);if(Number.isNaN(u)||u<0)return null;let c=l.slice(o+1);return{path:i,position:u,content:c}}function Rf(e,t,s){return`__rw__:${e.length}:${e}:${t}:${s}`}function Gr(e,t,s,r=-1){let n=!1,i=`
594
- `,a="",l=-1,o=-1,u=null,c=-1,f=-1,d=[],h=0,p=!1,m=(k,D)=>{let C=1;for(;C<k.length;){let N=k[C];if(N==="r")n=!0,C++;else if(N==="s")C++;else{if(N==="d")return C+1<k.length?(i=k.substring(C+1),{nextArgIndex:D+1}):D+1<t.length?(i=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(N==="n"){if(C+1<k.length){let O=k.substring(C+1);return l=Number.parseInt(O,10),(Number.isNaN(l)||l<0)&&(p=!0,l=0),{nextArgIndex:D+1}}else if(D+1<t.length)return l=Number.parseInt(t[D+1],10),(Number.isNaN(l)||l<0)&&(p=!0,l=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(N==="N"){if(C+1<k.length){let O=k.substring(C+1);return o=Number.parseInt(O,10),(Number.isNaN(o)||o<0)&&(p=!0,o=0),{nextArgIndex:D+1}}else if(D+1<t.length)return o=Number.parseInt(t[D+1],10),(Number.isNaN(o)||o<0)&&(p=!0,o=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else{if(N==="a")return C+1<k.length?(u=k.substring(C+1),{nextArgIndex:D+1}):D+1<t.length?(u=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(N==="p")return C+1<k.length?(a=k.substring(C+1),{nextArgIndex:D+1}):D+1<t.length?(a=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(N==="u"){if(C+1<k.length){let O=k.substring(C+1);return c=Number.parseInt(O,10),Number.isNaN(c)||c<0?{nextArgIndex:-2}:{nextArgIndex:D+1}}else if(D+1<t.length)return c=Number.parseInt(t[D+1],10),Number.isNaN(c)||c<0?{nextArgIndex:-2}:{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(N==="t"){if(C+1<k.length){let O=k.substring(C+1);return f=Number.parseFloat(O),Number.isNaN(f)&&(f=0),{nextArgIndex:D+1}}else if(D+1<t.length)return f=Number.parseFloat(t[D+1]),Number.isNaN(f)&&(f=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(N==="e"||N==="i"||N==="P"){if(N==="i"&&D+1<t.length)return{nextArgIndex:D+2};C++}else C++}}}return{nextArgIndex:D+1}};for(;h<t.length;){let k=t[h];if(k.startsWith("-")&&k.length>1&&k!=="--"){let D=m(k,h);if(D.nextArgIndex===-1)return{stdout:"",stderr:"",exitCode:2};if(D.nextArgIndex===-2)return{stdout:"",stderr:"",exitCode:1};h=D.nextArgIndex}else if(k==="--")for(h++;h<t.length;)d.push(t[h]),h++;else d.push(k),h++}if(p)return P("","",1);if(d.length===0&&u===null&&d.push("REPLY"),f===0){if(u)Ke(e,u);else{for(let k of d)e.state.env.set(k,"");d.length===0&&e.state.env.set("REPLY","")}return P("","",0)}if(f<0&&f!==-1)return P("","",1);let y=s;c>=0?e.state.fileDescriptors?y=e.state.fileDescriptors.get(c)||"":y="":!y&&e.state.groupStdin!==void 0&&(y=e.state.groupStdin);let b=i===""?"\0":i,v="",E=0,w=!0,S=k=>{if(c>=0&&e.state.fileDescriptors)e.state.fileDescriptors.set(c,y.substring(k));else if(r>=0&&e.state.fileDescriptors){let D=e.state.fileDescriptors.get(r);if(D?.startsWith("__rw__:")){let C=xf(D);if(C){let N=C.position+k;e.state.fileDescriptors.set(r,Rf(C.path,N,C.content))}}}else e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=y.substring(k))};if(o>=0){let k=Math.min(o,y.length);v=y.substring(0,k),E=k,w=k>=o,S(E);let D=d[0]||"REPLY";e.state.env.set(D,v);for(let C=1;C<d.length;C++)e.state.env.set(d[C],"");return P("","",w?0:1)}else if(l>=0){let k=0,D=0,C=!1;for(;D<y.length&&k<l;){let N=y[D];if(N===b){E=D+1,C=!0;break}if(!n&&N==="\\"&&D+1<y.length){let O=y[D+1];if(O===b&&b===`
595
- `){D+=2,E=D;continue}if(O===b){D+=2,k++,v+=O,E=D;continue}v+=O,D+=2,k++,E=D}else v+=N,D++,k++,E=D}w=k>=l||C,S(E)}else{E=0;let k=0;for(;k<y.length;){let D=y[k];if(D===b){E=k+b.length,w=!0;break}if(!n&&D==="\\"&&k+1<y.length){let C=y[k+1];if(C===`
596
- `){k+=2;continue}if(C===b){v+=C,k+=2;continue}v+=D,v+=C,k+=2;continue}v+=D,k++}if(k>=y.length&&(w=!1,E=k,v.length===0&&y.length===0)){for(let D of d)e.state.env.set(D,"");return u&&Ke(e,u),P("","",1)}S(E)}b===`
597
- `&&v.endsWith(`
598
- `)&&(v=v.slice(0,-1));let A=k=>n?k:k.replace(/\\(.)/g,"$1");if(d.length===1&&d[0]==="REPLY")return e.state.env.set("REPLY",A(v)),P("","",w?0:1);let $=he(e.state.env);if(u){let{words:k}=rr(v,$,void 0,n),D=e.limits?.maxArrayElements??1e5;if(k.length>D)return P("",`read: array element limit exceeded (${D})
599
- `,1);Ke(e,u);for(let C=0;C<k.length;C++)e.state.env.set(`${u}_${C}`,A(k[C]));return P("","",w?0:1)}let x=d.length,{words:I,wordStarts:T}=rr(v,$,x,n);for(let k=0;k<d.length;k++){let D=d[k];if(k<d.length-1)e.state.env.set(D,A(I[k]??""));else if(k<T.length){let C=v.substring(T[k]);C=Ea(C,$,n),C=A(C),e.state.env.set(D,C)}else e.state.env.set(D,"")}return P("","",w?0:1)}function Qr(e,t){if(e.state.callDepth===0&&e.state.sourceDepth===0)return _("bash: return: can only `return' from a function or sourced script\n");let s=e.state.lastExitCode;if(t.length>0){let r=t[0],n=Number.parseInt(r,10);if(r===""||Number.isNaN(n)||!/^-?\d+$/.test(r))return _(`bash: return: ${r}: numeric argument required
600
- `,2);s=(n%256+256)%256}throw new $e(s)}var us=`set: usage: set [-eux] [+eux] [-o option] [+o option]
589
+ `)}function Hd(e){let t=[],n="",r=0;for(let s of e){for(let i of s)i==="("?r++:i===")"&&r--;n?n+=` ${s}`:n=s,r===0&&(t.push(n),n="")}return n&&t.push(n),t}async function Vi(e,t){if(t.length===0)return R(`bash: let: expression expected
590
+ `);let n=Hd(t),r=0;for(let s of n)try{let a=tt(`(( ${s} ))`).statements[0];if(a&&a.pipelines.length>0&&a.pipelines[0].commands.length>0){let o=a.pipelines[0].commands[0];o.type==="ArithmeticCommand"&&(r=await Z(e,o.expression.expression))}}catch(i){return R(`bash: let: ${s}: ${i.message}
591
+ `)}return _("","",r===0?1:0)}async function zi(e,t){let n={maxElements:e.limits.maxArrayElements,maxStringBytes:e.limits.maxStringLength};if(e.state.localScopes.length===0)return R(`bash: local: can only be used in a function
592
+ `);let r=e.state.localScopes[e.state.localScopes.length-1];for(e.state.localArrayScopes??=[];e.state.localArrayScopes.length<e.state.localScopes.length;)e.state.localArrayScopes.push(new Map);let s=e.state.localArrayScopes.at(-1),i=d=>{if(r.has(d)||r.set(d,e.state.env.get(d)),s&&!s.has(d)){let p=Se(e,d);s.set(d,p?De(p):void 0)}},a="",o=0,l=!1,c=!1,u=!1,f=[];for(let d of t)if(d==="-n")l=!0;else if(d==="-a")c=!0;else if(d==="-p")u=!0;else if(d.startsWith("-")&&!d.includes("="))for(let p of d.slice(1))p==="n"?l=!0:p==="a"?c=!0:p==="p"&&(u=!0);else f.push(d);if(f.length===0){let d="",p=Array.from(r.keys()).sort();for(let h of p){let m=e.state.env.get(h);m!==void 0&&(d+=`${h}=${m}
593
+ `)}return _(d,"",0)}for(let d of f){let p,h,m=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(m){p=m[1];let S=m[2];if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(p)){a+=`bash: local: \`${d}': not a valid identifier
594
+ `,o=1;continue}oe(e,p,"bash");let v=Et(S,n);e.executionScope.consumeWork(v.length,"local array assignment"),i(p),me(e,p),kt(e,p,"indexed");for(let A=0;A<v.length;A++)F(e,p,A,v[A]);Mt(e,p),l&&wt(e,p);continue}let E=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(E){p=E[1];let S=E[2];oe(e,p,"bash"),i(p);let v=Et(S,n);e.executionScope.consumeWork(v.length,"local array append");let A=Ee(e,p),x=0,P=e.state.env.get(p);A.length===0&&P!==void 0?(F(e,p,0,P),e.state.env.delete(p),x=1):A.length>0&&(x=Math.max(...A)+1),jt(e,p,Array.from({length:v.length},(D,I)=>x+I));for(let D=0;D<v.length;D++)F(e,p,x+D,v[D]);Mt(e,p),l&&wt(e,p);continue}let b=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(b){p=b[1];let S=b[2];oe(e,p,"bash"),r.has(p)||r.set(p,e.state.env.get(p));let v=e.state.env.get(p)??"";e.state.env.set(p,At([v,S],"",e.limits.maxStringLength,"local append")),Mt(e,p),l&&wt(e,p);continue}let g=d.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(g){p=g[1];let S=g[2],v=g[3];oe(e,p,"bash"),i(p);let A;try{let x=new V,P=ne(x,S);A=await Z(e,P.expression)}catch{let x=parseInt(S,10);A=Number.isNaN(x)?0:x}F(e,p,A,v),Mt(e,p),l&&wt(e,p);continue}if(d.includes("=")){let S=d.indexOf("=");p=d.slice(0,S),h=d.slice(S+1)}else p=d;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(p)){a+=`bash: local: \`${d}': not a valid identifier
595
+ `,o=1;continue}let w=r.has(p);if(h!==void 0){let S=e.state.env.get(p);if(e.state.tempEnvBindings){let v=e.state.accessedTempEnvVars?.has(p),A=e.state.mutatedTempEnvVars?.has(p);if(!v&&!A)for(let x=e.state.tempEnvBindings.length-1;x>=0;x--){let P=e.state.tempEnvBindings[x];if(P.has(p)){S=P.get(p);break}}}ic(e,p,S)}if(!w){let S=e.state.env.get(p);if(e.state.tempEnvBindings)for(let v=e.state.tempEnvBindings.length-1;v>=0;v--){let A=e.state.tempEnvBindings[v];if(A.has(p)){S=A.get(p);break}}r.set(p,S),c&&i(p)}if(c&&h===void 0)me(e,p),kt(e,p,"indexed");else if(h!==void 0){if(oe(e,p,"bash"),l&&h!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(h)){a+=`bash: local: \`${h}': invalid variable name for name reference
596
+ `,o=1;continue}e.state.env.set(p,h),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(p))}else{let S=e.state.tempEnvBindings?.some(v=>v.has(p));!w&&!S&&e.state.env.delete(p)}Mt(e,p),l&&wt(e,p)}return _("",a,o)}function qi(e,t,n){let r=`
597
+ `,s=0,i=0,a=0,o=!1,l="MAPFILE",c=0;for(;c<t.length;){let g=t[c];g==="-d"&&c+1<t.length?(r=t[c+1]===""?"\0":t[c+1]||`
598
+ `,c+=2):g==="-n"&&c+1<t.length?(s=Number.parseInt(t[c+1],10)||0,c+=2):g==="-O"&&c+1<t.length?(i=Number.parseInt(t[c+1],10)||0,c+=2):g==="-s"&&c+1<t.length?(a=Number.parseInt(t[c+1],10)||0,c+=2):g==="-t"?(o=!0,c++):g==="-u"||g==="-C"||g==="-c"?c+=2:(g.startsWith("-")||(l=g),c++)}if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(l))return _("",`mapfile: ${l}: not a valid identifier
599
+ `,1);if(!Number.isSafeInteger(i)||i<0)return _("",`mapfile: invalid array origin
600
+ `,1);oe(e,l,"mapfile");let u=n;!u&&e.state.groupStdin!==void 0&&(u=e.state.groupStdin);let f=[],d=0,p=0,h=0,m=e.limits.maxArrayElements,E=g=>{if(T(g)>e.limits.maxStringLength)throw new $(`mapfile: string length limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");f.push(g)};for(;d<u.length;){e.executionScope.consumeWork(1,"mapfile input");let g=u.indexOf(r,d);if(g===-1){if(d<u.length){if(h<a)h++;else if(s===0||p<s){let v=u.slice(d),A=v.indexOf("\0");if(A!==-1&&(v=v.substring(0,A)),f.length>=m)return _("",`mapfile: array element limit exceeded (${m})
601
+ `,1);E(v),p++}}break}let w=u.slice(d,g),S=w.indexOf("\0");if(S!==-1&&(w=w.substring(0,S)),!o&&r!=="\0"&&(w+=r),d=g+r.length,h<a){h++;continue}if(s>0&&p>=s)break;if(f.length>=m)return _("",`mapfile: array element limit exceeded (${m})
602
+ `,1);E(w),p++}let b=new Set(i===0?[]:e.state.arrays?.get(l)?.elements.keys()??[]);for(let g=0;g<f.length;g++)if(b.add(String(i+g)),b.size>m)return _("",`mapfile: array element limit exceeded (${m})
603
+ `,1);i===0&&me(e,l);for(let g=0;g<f.length;g++)F(e,l,i+g,f[g]);return e.state.groupStdin!==void 0&&!n&&(e.state.groupStdin=""),_("","",0)}function Qd(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),n=t.indexOf(":");if(n===-1)return null;let r=Number.parseInt(t.slice(0,n),10);if(Number.isNaN(r)||r<0)return null;let s=n+1,i=t.slice(s,s+r),a=s+r+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}function Kd(e,t,n){return`__rw__:${e.length}:${e}:${t}:${n}`}function Ui(e,t,n,r=-1){let s=!1,i=`
604
+ `,a="",o=-1,l=-1,c=null,u=-1,f=-1,d=[],p=0,h=!1,m=(k,N)=>{let M=1;for(;M<k.length;){let G=k[M];if(G==="r")s=!0,M++;else if(G==="s")M++;else{if(G==="d")return M+1<k.length?(i=k.substring(M+1),{nextArgIndex:N+1}):N+1<t.length?(i=t[N+1],{nextArgIndex:N+2}):{nextArgIndex:N+1};if(G==="n"){if(M+1<k.length){let q=k.substring(M+1);return o=Number.parseInt(q,10),(Number.isNaN(o)||o<0)&&(h=!0,o=0),{nextArgIndex:N+1}}else if(N+1<t.length)return o=Number.parseInt(t[N+1],10),(Number.isNaN(o)||o<0)&&(h=!0,o=0),{nextArgIndex:N+2};return{nextArgIndex:N+1}}else if(G==="N"){if(M+1<k.length){let q=k.substring(M+1);return l=Number.parseInt(q,10),(Number.isNaN(l)||l<0)&&(h=!0,l=0),{nextArgIndex:N+1}}else if(N+1<t.length)return l=Number.parseInt(t[N+1],10),(Number.isNaN(l)||l<0)&&(h=!0,l=0),{nextArgIndex:N+2};return{nextArgIndex:N+1}}else{if(G==="a")return M+1<k.length?(c=k.substring(M+1),{nextArgIndex:N+1}):N+1<t.length?(c=t[N+1],{nextArgIndex:N+2}):{nextArgIndex:N+1};if(G==="p")return M+1<k.length?(a=k.substring(M+1),{nextArgIndex:N+1}):N+1<t.length?(a=t[N+1],{nextArgIndex:N+2}):{nextArgIndex:N+1};if(G==="u"){if(M+1<k.length){let q=k.substring(M+1);return u=Number.parseInt(q,10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:N+1}}else if(N+1<t.length)return u=Number.parseInt(t[N+1],10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:N+2};return{nextArgIndex:N+1}}else if(G==="t"){if(M+1<k.length){let q=k.substring(M+1);return f=Number.parseFloat(q),Number.isNaN(f)&&(f=0),{nextArgIndex:N+1}}else if(N+1<t.length)return f=Number.parseFloat(t[N+1]),Number.isNaN(f)&&(f=0),{nextArgIndex:N+2};return{nextArgIndex:N+1}}else if(G==="e"||G==="i"||G==="P"){if(G==="i"&&N+1<t.length)return{nextArgIndex:N+2};M++}else M++}}}return{nextArgIndex:N+1}};for(;p<t.length;){let k=t[p];if(k.startsWith("-")&&k.length>1&&k!=="--"){let N=m(k,p);if(N.nextArgIndex===-1)return{stdout:"",stderr:"",exitCode:2};if(N.nextArgIndex===-2)return{stdout:"",stderr:"",exitCode:1};p=N.nextArgIndex}else if(k==="--")for(p++;p<t.length;)d.push(t[p]),p++;else d.push(k),p++}if(h)return _("","",1);d.length===0&&c===null&&d.push("REPLY");let E=new Set;c&&E.add(c);for(let k of d)E.add(k);l>=0&&d.length===0&&E.add("REPLY");for(let k of E){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(k))return _("",`bash: read: \`${k}': not a valid identifier
605
+ `,1);oe(e,k,"bash")}if(f===0){if(c)me(e,c);else{for(let k of d)e.state.env.set(k,"");d.length===0&&e.state.env.set("REPLY","")}return _("","",0)}if(f<0&&f!==-1)return _("","",1);let b=n;u>=0?e.state.fileDescriptors?b=e.state.fileDescriptors.get(u)||"":b="":!b&&e.state.groupStdin!==void 0&&(b=e.state.groupStdin);let g=i===""?"\0":i,w="",S=0,v=k=>{let N=T(k);if(N>e.limits.maxStringLength-S)throw new $(`read: string length limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length");w+=k,S+=N},A=k=>{if(T(k)>e.limits.maxStringLength)throw new $(`read: string length limit exceeded (${e.limits.maxStringLength} bytes)`,"string_length")},x=0,P=!0,D=k=>{if(u>=0&&e.state.fileDescriptors)e.state.fileDescriptors.set(u,b.substring(k));else if(r>=0&&e.state.fileDescriptors){let N=e.state.fileDescriptors.get(r);if(N?.startsWith("__rw__:")){let M=Qd(N);if(M){let G=M.position+k;e.state.fileDescriptors.set(r,Kd(M.path,G,M.content))}}}else e.state.groupStdin!==void 0&&!n&&(e.state.groupStdin=b.substring(k))};if(l>=0){let k=Math.min(l,b.length);w=b.substring(0,k),A(w),x=k,P=k>=l,D(x);let N=d[0]||"REPLY";e.state.env.set(N,w);for(let M=1;M<d.length;M++)e.state.env.set(d[M],"");return _("","",P?0:1)}else if(o>=0){let k=0,N=0,M=!1;for(;N<b.length&&k<o;){let G=b[N];if(G===g){x=N+1,M=!0;break}if(!s&&G==="\\"&&N+1<b.length){let q=b[N+1];if(q===g&&g===`
606
+ `){N+=2,x=N;continue}if(q===g){N+=2,k++,v(q),x=N;continue}v(q),N+=2,k++,x=N}else v(G),N++,k++,x=N}P=k>=o||M,D(x)}else{x=0;let k=0;for(;k<b.length;){let N=b[k];if(N===g){x=k+g.length,P=!0;break}if(!s&&N==="\\"&&k+1<b.length){let M=b[k+1];if(M===`
607
+ `){k+=2;continue}if(M===g){v(M),k+=2;continue}v(N),v(M),k+=2;continue}v(N),k++}if(k>=b.length&&(P=!1,x=k,w.length===0&&b.length===0)){for(let N of d)e.state.env.set(N,"");return c&&me(e,c),_("","",1)}D(x)}g===`
608
+ `&&w.endsWith(`
609
+ `)&&(w=w.slice(0,-1));let I=k=>s?k:k.replace(/\\(.)/g,"$1");if(d.length===1&&d[0]==="REPLY")return e.state.env.set("REPLY",I(w)),_("","",P?0:1);let O=be(e.state.env),B=e.limits.maxArrayElements;if(c){let{words:k}=Qs(w,O,B,void 0,s);me(e,c);for(let N=0;N<k.length;N++)F(e,c,N,I(k[N]));return _("","",P?0:1)}let Y=d.length,{words:J,wordStarts:C}=Qs(w,O,B,Y,s);for(let k=0;k<d.length;k++){let N=d[k];if(k<d.length-1)e.state.env.set(N,I(J[k]??""));else if(k<C.length){let M=w.substring(C[k]);M=Io(M,O,s),M=I(M),e.state.env.set(N,M)}else e.state.env.set(N,"")}return _("","",P?0:1)}function ji(e,t){if(e.state.callDepth===0&&e.state.sourceDepth===0)return R("bash: return: can only `return' from a function or sourced script\n");let n=e.state.lastExitCode;if(t.length>0){let r=t[0],s=Number.parseInt(r,10);if(r===""||Number.isNaN(s)||!/^-?\d+$/.test(r))return R(`bash: return: ${r}: numeric argument required
610
+ `,2);n=(s%256+256)%256}throw new Oe(n)}var Hn=`set: usage: set [-eux] [+eux] [-o option] [+o option]
601
611
  Options:
602
612
  -e Exit immediately if a command exits with non-zero status
603
613
  +e Disable -e
@@ -613,176 +623,187 @@ Options:
613
623
  +o pipefail Disable pipefail
614
624
  -o xtrace Same as -x
615
625
  +o xtrace Disable xtrace
616
- `,ll=new Map([["e","errexit"],["u","nounset"],["x","xtrace"],["v","verbose"],["f","noglob"],["C","noclobber"],["a","allexport"],["n","noexec"],["h",null],["b",null],["m",null],["B",null],["H",null],["P",null],["T",null],["E",null],["p",null]]),un=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["noclobber","noclobber"],["noglob","noglob"],["allexport","allexport"],["noexec","noexec"],["posix","posix"],["vi","vi"],["emacs","emacs"],["notify",null],["monitor",null],["braceexpand",null],["histexpand",null],["physical",null],["functrace",null],["errtrace",null],["privileged",null],["hashall",null],["ignoreeof",null],["interactive-comments",null],["keyword",null],["onecmd",null]]),fl=["errexit","nounset","pipefail","verbose","xtrace","posix","allexport","noclobber","noglob","noexec","vi","emacs"],dl=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"];function Kr(e,t,s){t!==null&&(s&&(t==="vi"?e.state.options.emacs=!1:t==="emacs"&&(e.state.options.vi=!1)),e.state.options[t]=s,Wt(e))}function Of(e,t){return t+1<e.length&&!e[t+1].startsWith("-")&&!e[t+1].startsWith("+")}function Lf(e,t){let s=fe(e,t);if(s.length===0)return`${t}=()`;let r=s.map(n=>{let i=e.state.env.get(`${t}_${n}`)??"";return`[${n}]=${kt(i)}`});return`${t}=(${r.join(" ")})`}function Tf(e){return/^[a-zA-Z0-9_]+$/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Wf(e,t){let s=je(e,t);if(s.length===0)return`${t}=()`;let r=s.map(n=>{let i=e.state.env.get(`${t}_${n}`)??"";return`[${Tf(n)}]=${kt(i)}`});return`${t}=(${r.join(" ")} )`}function Mf(e){let t=new Set,s=e.state.associativeArrays??new Set;for(let r of e.state.env.keys()){let n=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(n){let i=n[1];s.has(i)||t.add(i)}}return t}function Ff(e){return e.state.associativeArrays??new Set}function cl(e){let t=fl.map(r=>`${r.padEnd(16)}${e.state.options[r]?"on":"off"}`),s=dl.map(r=>`${r.padEnd(16)}off`);return`${[...t,...s].sort().join(`
626
+ `,vc=new Map([["e","errexit"],["u","nounset"],["x","xtrace"],["v","verbose"],["f","noglob"],["C","noclobber"],["a","allexport"],["n","noexec"],["h",null],["b",null],["m",null],["B",null],["H",null],["P",null],["T",null],["E",null],["p",null]]),Jr=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["noclobber","noclobber"],["noglob","noglob"],["allexport","allexport"],["noexec","noexec"],["posix","posix"],["vi","vi"],["emacs","emacs"],["notify",null],["monitor",null],["braceexpand",null],["histexpand",null],["physical",null],["functrace",null],["errtrace",null],["privileged",null],["hashall",null],["ignoreeof",null],["interactive-comments",null],["keyword",null],["onecmd",null]]),kc=["errexit","nounset","pipefail","verbose","xtrace","posix","allexport","noclobber","noglob","noexec","vi","emacs"],Nc=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"];function Gi(e,t,n){t!==null&&(n&&(t==="vi"?e.state.options.emacs=!1:t==="emacs"&&(e.state.options.vi=!1)),e.state.options[t]=n,dn(e))}function Xd(e,t){return t+1<e.length&&!e[t+1].startsWith("-")&&!e[t+1].startsWith("+")}function Yd(e,t,n){let r=Ee(e,n);if(r.length===0){t.append(n).append("=()");return}t.append(n).append("=(");for(let s=0;s<r.length;s++){let i=r[s],a=se(e,n,i)??"";s>0&&t.append(" "),t.append(`[${i}]=`),t.reserve(Kr(a)),t.append(Bt(a))}t.append(")")}function Jd(e,t){if(/^[a-zA-Z0-9_]+$/.test(t)){e.append(t);return}e.reserve(Kr(t)),e.append(Bt(t))}function ep(e,t,n){let r=ut(e,n);if(r.length===0){t.append(n).append("=()");return}t.append(n).append("=(");for(let s=0;s<r.length;s++){let i=r[s],a=se(e,n,i)??"";s>0&&t.append(" "),t.append("["),Jd(t,i),t.append("]="),t.reserve(Kr(a)),t.append(Bt(a))}t.append(" )")}function tp(e){let t=new Set,n=e.state.associativeArrays??new Set;for(let[r,s]of e.state.arrays??[])s.kind==="indexed"&&!n.has(r)&&t.add(r);return t}function np(e){return e.state.associativeArrays??new Set}function xc(e){let t=kc.map(r=>`${r.padEnd(16)}${e.state.options[r]?"on":"off"}`),n=Nc.map(r=>`${r.padEnd(16)}off`);return`${[...t,...n].sort().join(`
617
627
  `)}
618
- `}function ul(e){let t=fl.map(r=>`set ${e.state.options[r]?"-o":"+o"} ${r}`),s=dl.map(r=>`set +o ${r}`);return`${[...t,...s].sort().join(`
628
+ `}function $c(e){let t=kc.map(r=>`set ${e.state.options[r]?"-o":"+o"} ${r}`),n=Nc.map(r=>`set +o ${r}`);return`${[...t,...n].sort().join(`
619
629
  `)}
620
- `}function Yr(e,t){if(t.includes("--help"))return Z(us);if(t.length===0){let i=Mf(e),a=Ff(e),l=c=>{for(let f of a){let d=`${f}_`,h=`${f}__length`;if(c!==h&&c.startsWith(d)){if(c.slice(d.length).startsWith("_length"))continue;return!0}}return!1},o=[];for(let[c,f]of e.state.env){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(c)||i.has(c)||a.has(c))continue;let d=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(d&&i.has(d[1]))continue;let h=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)__length$/);h&&i.has(h[1])||l(c)||h&&a.has(h[1])||o.push([c,f])}let u=[];for(let[c,f]of o.sort(([d],[h])=>d<h?-1:d>h?1:0))u.push(`${c}=${on(f)}`);for(let c of[...i].sort((f,d)=>f<d?-1:f>d?1:0))u.push(Lf(e,c));for(let c of[...a].sort((f,d)=>f<d?-1:f>d?1:0))u.push(Wf(e,c));return u.sort((c,f)=>{let d=c.split("=")[0],h=f.split("=")[0];return d<h?-1:d>h?1:0}),Z(u.length>0?`${u.join(`
630
+ `}function Hi(e,t){if(t.includes("--help"))return X(Hn);if(t.length===0){let i=tp(e),a=np(e),o=[];for(let[u,f]of e.state.env)/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)&&(i.has(u)||a.has(u)||o.push([u,f]));let l=[...o.map(([u,f])=>({kind:"scalar",name:u,value:f})),...Array.from(i,u=>({kind:"indexed",name:u})),...Array.from(a,u=>({kind:"associative",name:u}))];l.sort((u,f)=>u.name<f.name?-1:u.name>f.name?1:0);let c=new tn(e.limits.maxOutputSize,"set");for(let u of l)e.executionScope.consumeWork(1,"set variable listing"),u.kind==="scalar"?(c.append(u.name).append("="),c.reserve(fc(u.value)),c.append(ge(u.value))):u.kind==="indexed"?Yd(e,c,u.name):ep(e,c,u.name),c.append(`
631
+ `);return X(c.build())}let n=[],r=()=>n.length>0?X(n.join("")):te,s=0;for(;s<t.length;){let i=t[s];if((i==="-o"||i==="+o")&&Xd(t,s)){let a=t[s+1];if(!Jr.has(a)){let o=`bash: set: ${a}: invalid option name
632
+ ${Hn}`;if(e.state.options.posix)throw new Ke(1,"",o);return R(o)}Gi(e,Jr.get(a)??null,i==="-o"),s+=2;continue}if(i==="-o"){n.push(xc(e)),s++;continue}if(i==="+o"){n.push($c(e)),s++;continue}if(i.length>1&&(i[0]==="-"||i[0]==="+")&&i[1]!=="-"){let a=i[0]==="-",o=0;for(let l=1;l<i.length;l++){let c=i[l];if(c==="o"){let u=s+1+o;if(u<t.length&&!t[u].startsWith("-")&&!t[u].startsWith("+")){let d=t[u];if(!Jr.has(d)){let p=`bash: set: ${d}: invalid option name
633
+ ${Hn}`;if(e.state.options.posix)throw new Ke(1,"",p);return R(p)}Gi(e,Jr.get(d)??null,a),o++;continue}n.push(a?xc(e):$c(e));continue}if(!vc.has(c)){let u=`bash: set: ${i[0]}${c}: invalid option
634
+ ${Hn}`;if(e.state.options.posix)throw new Ke(1,"",u);return R(u)}Gi(e,vc.get(c)??null,a)}s+=1+o;continue}if(i==="--")return Zi(e,t.slice(s+1)),r();if(i==="-"){if(e.state.options.xtrace=!1,e.state.options.verbose=!1,dn(e),s+1<t.length)return Zi(e,t.slice(s+1)),r();s++;continue}if(i==="+"){s++;continue}if(i.startsWith("-")||i.startsWith("+")){let a=`bash: set: ${i}: invalid option
635
+ ${Hn}`;if(e.state.options.posix)throw new Ke(1,"",a);return R(a)}return Zi(e,t.slice(s)),r()}return r()}function Zi(e,t){let n=1;for(;e.state.env.has(String(n));)e.state.env.delete(String(n)),n++;for(let r=0;r<t.length;r++)e.state.env.set(String(r+1),t[r]);e.state.env.set("#",String(t.length)),e.state.env.set("@",t.join(" ")),e.state.env.set("*",t.join(" "))}function Qi(e,t){let n=1;if(t.length>0){let a=Number.parseInt(t[0],10);if(Number.isNaN(a)||a<0){let o=`bash: shift: ${t[0]}: numeric argument required
636
+ `;if(e.state.options.posix)throw new Ke(1,"",o);return R(o)}n=a}let r=Number.parseInt(e.state.env.get("#")||"0",10);if(n>r){let a=`bash: shift: shift count out of range
637
+ `;if(e.state.options.posix)throw new Ke(1,"",a);return R(a)}if(n===0)return te;let s=[];for(let a=1;a<=r;a++)s.push(e.state.env.get(String(a))||"");let i=s.slice(n);for(let a=1;a<=r;a++)e.state.env.delete(String(a));for(let a=0;a<i.length;a++)e.state.env.set(String(a+1),i[a]);return e.state.env.set("#",String(i.length)),e.state.env.set("@",i.join(" ")),te}async function Ki(e,t){let n=t;if(n.length>0&&n[0]==="--"&&(n=n.slice(1)),n.length===0)return _("",`bash: source: filename argument required
638
+ `,2);let r=n[0],s=null,i=null;if(r.includes("/")){let c=e.fs.resolvePath(e.state.cwd,r);try{i=await e.fs.readFile(c),s=c}catch{}}else{let u=(e.state.env.get("PATH")||"").split(":").filter(f=>f);for(let f of u){let d=e.fs.resolvePath(e.state.cwd,`${f}/${r}`);try{if((await e.fs.stat(d)).isDirectory)continue;i=await e.fs.readFile(d),s=d;break}catch{}}if(i===null){let f=e.fs.resolvePath(e.state.cwd,r);try{i=await e.fs.readFile(f),s=f}catch{}}}if(i===null)return R(`bash: ${r}: No such file or directory
639
+ `);let a=new Map;if(n.length>1){for(let u=1;u<=9;u++)a.set(String(u),e.state.env.get(String(u)));a.set("#",e.state.env.get("#")),a.set("@",e.state.env.get("@"));let c=n.slice(1);e.state.env.set("#",String(c.length)),e.state.env.set("@",c.join(" "));for(let u=0;u<c.length&&u<9;u++)e.state.env.set(String(u+1),c[u]);for(let u=c.length+1;u<=9;u++)e.state.env.delete(String(u))}let o=e.state.currentSource,l=()=>{if(e.state.sourceDepth--,e.state.currentSource=o,n.length>1)for(let[c,u]of a)u===void 0?e.state.env.delete(c):e.state.env.set(c,u)};if(e.state.sourceDepth++,e.state.sourceDepth>e.limits.maxSourceDepth)throw e.state.sourceDepth--,new $(`source: maximum nesting depth (${e.limits.maxSourceDepth}) exceeded, increase executionLimits.maxSourceDepth`,"recursion");e.state.currentSource=r;try{let c=tt(i),u=await e.executeScript(c);return l(),u}catch(c){if(l(),c instanceof j)throw c;if(c instanceof Oe)return _(c.stdout,c.stderr,c.exitCode);if(c.name==="ParseException")return R(`bash: ${r}: ${c.message}
640
+ `);throw c}}function Pc(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function rp(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')}async function Cc(e,t){if(rp(t))return null;try{let n=new V,r=ne(n,t);return await Z(e,r.expression)}catch{let n=parseInt(t,10);return Number.isNaN(n)?0:n}}function Dc(e,t){if(e.state.localVarStack?.has(t)){let r=Gr(e,t);if(r){r.value===void 0?e.state.env.delete(t):e.state.env.set(t,r.value);let s=e.state.localVarStack?.get(t);if(!s||s.length===0)jr(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,r.scopeIndex),Xi(e,t);else{let i=s[s.length-1];e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,i.scopeIndex+1)}return!0}return e.state.env.delete(t),jr(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,0),!0}for(let r=e.state.localScopes.length-1;r>=0;r--){let s=e.state.localScopes[r];if(s.has(t)){let i=s.get(t);i===void 0?e.state.env.delete(t):e.state.env.set(t,i),s.delete(t);let a=!1;for(let o=r-1;o>=0;o--)if(e.state.localScopes[o].has(t)){e.state.localVarDepth&&e.state.localVarDepth.set(t,o+1),a=!0;break}return a||jr(e,t),!0}}return!1}function Xi(e,t){if(!e.state.tempEnvBindings||e.state.tempEnvBindings.length===0)return!1;for(let n=e.state.tempEnvBindings.length-1;n>=0;n--){let r=e.state.tempEnvBindings[n];if(r.has(t)){let s=r.get(t);return s===void 0?e.state.env.delete(t):e.state.env.set(t,s),r.delete(t),!0}}return!1}async function Rc(e,t){if(t.startsWith("'")&&t.endsWith("'"))return t.slice(1,-1);if(t.startsWith('"')&&t.endsWith('"')){let n=t.slice(1,-1),s=new V().parseWordFromString(n,!0,!1);return W(e,s)}if(t.includes("$")){let r=new V().parseWordFromString(t,!1,!1);return W(e,r)}return t}async function Yi(e,t){let n="both",r="",s=0;for(let i of t){if(i==="-v"){n="variable";continue}if(i==="-f"){n="function";continue}if(n==="function"){e.state.functions.delete(i);continue}if(n==="variable"){let c=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(c){let d=c[1],p=c[2];if(Ie(e,d)){r+=`bash: unset: ${d}: cannot unset: readonly variable
641
+ `,s=1;continue}if(p==="@"||p==="*"){Rn(e,d),e.state.env.delete(d);continue}let h=e.state.associativeArrays?.has(d);if(h){let w=await Rc(e,p);Gt(e,d,w);continue}let m=nt(e,d),E=e.state.declaredVars?.has(d);if((e.state.env.has(d)||E)&&!m&&!h){r+=`bash: unset: ${d}: not an array variable
642
+ `,s=1;continue}let g=await Cc(e,p);if(g===null&&m){r+=`bash: unset: ${p}: not a valid identifier
643
+ `,s=1;continue}if(g===null)continue;if(g<0){let w=z(e,d),S=w.length,v=e.state.currentLine;if(S===0){r+=`bash: line ${v}: unset: [${g}]: bad array subscript
644
+ `,s=1;continue}let A=S+g;if(A<0){r+=`bash: line ${v}: unset: [${g}]: bad array subscript
645
+ `,s=1;continue}let x=w[A][0];Gt(e,d,x);continue}Gt(e,d,g);continue}if(!Pc(i)){r+=`bash: unset: \`${i}': not a valid identifier
646
+ `,s=1;continue}let u=i;if(ae(e,i)){let d=Re(e,i);d&&d!==i&&(u=d)}if(Ie(e,u)){r+=`bash: unset: ${u}: cannot unset: readonly variable
647
+ `,s=1;continue}Rn(e,u);let f=pi(e,u);if(f!==void 0&&f!==e.state.callDepth)Dc(e,u);else if(e.state.fullyUnsetLocals?.has(u))e.state.env.delete(u);else if(f!==void 0){let d=e.state.accessedTempEnvVars?.has(u),p=e.state.mutatedTempEnvVars?.has(u);if((d||p)&&e.state.localVarStack?.has(u)){let h=Gr(e,u);h?h.value===void 0?e.state.env.delete(u):e.state.env.set(u,h.value):e.state.env.delete(u)}else e.state.env.delete(u)}else Xi(e,u)||e.state.env.delete(u);e.state.exportedVars?.delete(u);continue}let a=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let c=a[1],u=a[2];if(Ie(e,c)){r+=`bash: unset: ${c}: cannot unset: readonly variable
648
+ `,s=1;continue}if(u==="@"||u==="*"){Rn(e,c),e.state.env.delete(c);continue}let f=e.state.associativeArrays?.has(c);if(f){let m=await Rc(e,u);Gt(e,c,m);continue}let d=nt(e,c);if(e.state.env.has(c)&&!d&&!f){r+=`bash: unset: ${c}: not an array variable
649
+ `,s=1;continue}let h=await Cc(e,u);if(h===null&&d){r+=`bash: unset: ${u}: not a valid identifier
650
+ `,s=1;continue}if(h===null)continue;if(h<0){let m=z(e,c),E=m.length,b=e.state.currentLine;if(E===0){r+=`bash: line ${b}: unset: [${h}]: bad array subscript
651
+ `,s=1;continue}let g=E+h;if(g<0){r+=`bash: line ${b}: unset: [${h}]: bad array subscript
652
+ `,s=1;continue}let w=m[g][0];Gt(e,c,w);continue}Gt(e,c,h);continue}if(!Pc(i)){r+=`bash: unset: \`${i}': not a valid identifier
653
+ `,s=1;continue}let o=i;if(ae(e,i)){let c=Re(e,i);c&&c!==i&&(o=c)}if(Ie(e,o)){r+=`bash: unset: ${o}: cannot unset: readonly variable
654
+ `,s=1;continue}Rn(e,o);let l=pi(e,o);if(l!==void 0&&l!==e.state.callDepth)Dc(e,o);else if(e.state.fullyUnsetLocals?.has(o))e.state.env.delete(o);else if(l!==void 0){let c=e.state.accessedTempEnvVars?.has(o),u=e.state.mutatedTempEnvVars?.has(o);if((c||u)&&e.state.localVarStack?.has(o)){let f=Gr(e,o);f?f.value===void 0?e.state.env.delete(o):e.state.env.set(o,f.value):e.state.env.delete(o)}else e.state.env.delete(o)}else Xi(e,o)||e.state.env.delete(o);e.state.exportedVars?.delete(o),e.state.functions.delete(i)}return _("",r,s)}function mt(e,t,n,r){let s=n+T(t)+1;if(s>r)throw new $(`shopt: output size limit exceeded (${r} bytes)`,"output_size");return e.push(t),s}var Ji=["extglob","dotglob","nullglob","failglob","globstar","globskipdots","nocaseglob","nocasematch","expand_aliases","lastpipe","xpg_echo"],sp=["autocd","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","execfail","extdebug","extquote","force_fignore","globasciiranges","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath"];function es(e){return Ji.includes(e)}function ip(e){return sp.includes(e)}function Ic(e,t){let n=e.limits.maxArrayElements;if(t.length>n)throw new $(`shopt: argument limit exceeded (${n})`,"array_elements");let r=Math.min(e.limits.maxOutputSize,e.limits.maxStringLength),s=!1,i=!1,a=!1,o=!1,l=!1,c=[],u=0;for(;u<t.length;){let E=t[u];if(E==="--"){u++;break}if(E.startsWith("-")&&E.length>1){for(let b=1;b<E.length;b++){let g=E[b];switch(g){case"s":s=!0;break;case"u":i=!0;break;case"p":a=!0;break;case"q":o=!0;break;case"o":l=!0;break;default:return{exitCode:2,stdout:"",stderr:`shopt: -${g}: invalid option
655
+ `}}}u++}else break}for(;u<t.length;)c.push(t[u]),u++;if(l)return ap(e,c,s,i,a,o);if(s&&i)return{exitCode:1,stdout:"",stderr:`shopt: cannot set and unset shell options simultaneously
656
+ `};if(c.length===0){if(s||i){let b=[];for(let g of Ji){let w=e.state.shoptOptions[g];s&&w?b.push(a?`shopt -s ${g}`:`${g} on`):i&&!w&&b.push(a?`shopt -u ${g}`:`${g} off`)}return{exitCode:0,stdout:b.length>0?`${b.join(`
621
657
  `)}
622
- `:"")}let s=[],r=()=>s.length>0?Z(s.join("")):G,n=0;for(;n<t.length;){let i=t[n];if((i==="-o"||i==="+o")&&Of(t,n)){let a=t[n+1];if(!un.has(a)){let l=`bash: set: ${a}: invalid option name
623
- ${us}`;if(e.state.options.posix)throw new Me(1,"",l);return _(l)}Kr(e,un.get(a)??null,i==="-o"),n+=2;continue}if(i==="-o"){s.push(cl(e)),n++;continue}if(i==="+o"){s.push(ul(e)),n++;continue}if(i.length>1&&(i[0]==="-"||i[0]==="+")&&i[1]!=="-"){let a=i[0]==="-",l=0;for(let o=1;o<i.length;o++){let u=i[o];if(u==="o"){let c=n+1+l;if(c<t.length&&!t[c].startsWith("-")&&!t[c].startsWith("+")){let d=t[c];if(!un.has(d)){let h=`bash: set: ${d}: invalid option name
624
- ${us}`;if(e.state.options.posix)throw new Me(1,"",h);return _(h)}Kr(e,un.get(d)??null,a),l++;continue}s.push(a?cl(e):ul(e));continue}if(!ll.has(u)){let c=`bash: set: ${i[0]}${u}: invalid option
625
- ${us}`;if(e.state.options.posix)throw new Me(1,"",c);return _(c)}Kr(e,ll.get(u)??null,a)}n+=1+l;continue}if(i==="--")return Xr(e,t.slice(n+1)),r();if(i==="-"){if(e.state.options.xtrace=!1,e.state.options.verbose=!1,Wt(e),n+1<t.length)return Xr(e,t.slice(n+1)),r();n++;continue}if(i==="+"){n++;continue}if(i.startsWith("-")||i.startsWith("+")){let a=`bash: set: ${i}: invalid option
626
- ${us}`;if(e.state.options.posix)throw new Me(1,"",a);return _(a)}return Xr(e,t.slice(n)),r()}return r()}function Xr(e,t){let s=1;for(;e.state.env.has(String(s));)e.state.env.delete(String(s)),s++;for(let r=0;r<t.length;r++)e.state.env.set(String(r+1),t[r]);e.state.env.set("#",String(t.length)),e.state.env.set("@",t.join(" ")),e.state.env.set("*",t.join(" "))}function Jr(e,t){let s=1;if(t.length>0){let a=Number.parseInt(t[0],10);if(Number.isNaN(a)||a<0){let l=`bash: shift: ${t[0]}: numeric argument required
627
- `;if(e.state.options.posix)throw new Me(1,"",l);return _(l)}s=a}let r=Number.parseInt(e.state.env.get("#")||"0",10);if(s>r){let a=`bash: shift: shift count out of range
628
- `;if(e.state.options.posix)throw new Me(1,"",a);return _(a)}if(s===0)return G;let n=[];for(let a=1;a<=r;a++)n.push(e.state.env.get(String(a))||"");let i=n.slice(s);for(let a=1;a<=r;a++)e.state.env.delete(String(a));for(let a=0;a<i.length;a++)e.state.env.set(String(a+1),i[a]);return e.state.env.set("#",String(i.length)),e.state.env.set("@",i.join(" ")),G}async function ei(e,t){let s=t;if(s.length>0&&s[0]==="--"&&(s=s.slice(1)),s.length===0)return P("",`bash: source: filename argument required
629
- `,2);let r=s[0],n=null,i=null;if(r.includes("/")){let u=e.fs.resolvePath(e.state.cwd,r);try{i=await e.fs.readFile(u),n=u}catch{}}else{let c=(e.state.env.get("PATH")||"").split(":").filter(f=>f);for(let f of c){let d=e.fs.resolvePath(e.state.cwd,`${f}/${r}`);try{if((await e.fs.stat(d)).isDirectory)continue;i=await e.fs.readFile(d),n=d;break}catch{}}if(i===null){let f=e.fs.resolvePath(e.state.cwd,r);try{i=await e.fs.readFile(f),n=f}catch{}}}if(i===null)return _(`bash: ${r}: No such file or directory
630
- `);let a=new Map;if(s.length>1){for(let c=1;c<=9;c++)a.set(String(c),e.state.env.get(String(c)));a.set("#",e.state.env.get("#")),a.set("@",e.state.env.get("@"));let u=s.slice(1);e.state.env.set("#",String(u.length)),e.state.env.set("@",u.join(" "));for(let c=0;c<u.length&&c<9;c++)e.state.env.set(String(c+1),u[c]);for(let c=u.length+1;c<=9;c++)e.state.env.delete(String(c))}let l=e.state.currentSource,o=()=>{if(e.state.sourceDepth--,e.state.currentSource=l,s.length>1)for(let[u,c]of a)c===void 0?e.state.env.delete(u):e.state.env.set(u,c)};if(e.state.sourceDepth++,e.state.sourceDepth>e.limits.maxSourceDepth)throw e.state.sourceDepth--,new Q(`source: maximum nesting depth (${e.limits.maxSourceDepth}) exceeded, increase executionLimits.maxSourceDepth`,"recursion");e.state.currentSource=r;try{let u=qe(i),c=await e.executeScript(u);return o(),c}catch(u){if(o(),u instanceof j)throw u;if(u instanceof $e)return P(u.stdout,u.stderr,u.exitCode);if(u.name==="ParseException")return _(`bash: ${r}: ${u.message}
631
- `);throw u}}function hl(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function Vf(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')}async function pl(e,t){if(Vf(t))return null;try{let s=new V,r=X(s,t);return await L(e,r.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}function ml(e,t){if(e.state.localVarStack?.has(t)){let r=sn(e,t);if(r){r.value===void 0?e.state.env.delete(t):e.state.env.set(t,r.value);let n=e.state.localVarStack?.get(t);if(!n||n.length===0)tn(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,r.scopeIndex),ti(e,t);else{let i=n[n.length-1];e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,i.scopeIndex+1)}return!0}return e.state.env.delete(t),tn(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,0),!0}for(let r=e.state.localScopes.length-1;r>=0;r--){let n=e.state.localScopes[r];if(n.has(t)){let i=n.get(t);i===void 0?e.state.env.delete(t):e.state.env.set(t,i),n.delete(t);let a=!1;for(let l=r-1;l>=0;l--)if(e.state.localScopes[l].has(t)){e.state.localVarDepth&&e.state.localVarDepth.set(t,l+1),a=!0;break}return a||tn(e,t),!0}}return!1}function ti(e,t){if(!e.state.tempEnvBindings||e.state.tempEnvBindings.length===0)return!1;for(let s=e.state.tempEnvBindings.length-1;s>=0;s--){let r=e.state.tempEnvBindings[s];if(r.has(t)){let n=r.get(t);return n===void 0?e.state.env.delete(t):e.state.env.set(t,n),r.delete(t),!0}}return!1}async function gl(e,t){if(t.startsWith("'")&&t.endsWith("'"))return t.slice(1,-1);if(t.startsWith('"')&&t.endsWith('"')){let s=t.slice(1,-1),n=new V().parseWordFromString(s,!0,!1);return W(e,n)}if(t.includes("$")){let r=new V().parseWordFromString(t,!1,!1);return W(e,r)}return t}async function si(e,t){let s="both",r="",n=0;for(let i of t){if(i==="-v"){s="variable";continue}if(i==="-f"){s="function";continue}if(s==="function"){e.state.functions.delete(i);continue}if(s==="variable"){let u=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(u){let d=u[1],h=u[2];if(h==="@"||h==="*"){let E=F(e,d);for(let[w]of E)e.state.env.delete(`${d}_${w}`);e.state.env.delete(d);continue}let p=e.state.associativeArrays?.has(d);if(p){let E=await gl(e,h);e.state.env.delete(`${d}_${E}`);continue}let m=Ue(e,d),y=e.state.declaredVars?.has(d);if((e.state.env.has(d)||y)&&!m&&!p){r+=`bash: unset: ${d}: not an array variable
632
- `,n=1;continue}let v=await pl(e,h);if(v===null&&m){r+=`bash: unset: ${h}: not a valid identifier
633
- `,n=1;continue}if(v===null)continue;if(v<0){let E=F(e,d),w=E.length,S=e.state.currentLine;if(w===0){r+=`bash: line ${S}: unset: [${v}]: bad array subscript
634
- `,n=1;continue}let A=w+v;if(A<0){r+=`bash: line ${S}: unset: [${v}]: bad array subscript
635
- `,n=1;continue}let $=E[A][0];e.state.env.delete(`${d}_${$}`);continue}e.state.env.delete(`${d}_${v}`);continue}if(!hl(i)){r+=`bash: unset: \`${i}': not a valid identifier
636
- `,n=1;continue}let c=i;if(ee(e,i)){let d=ve(e,i);d&&d!==i&&(c=d)}if(Je(e,c)){r+=`bash: unset: ${c}: cannot unset: readonly variable
637
- `,n=1;continue}let f=Bt(e,c);if(f!==void 0&&f!==e.state.callDepth)ml(e,c);else if(e.state.fullyUnsetLocals?.has(c))e.state.env.delete(c);else if(f!==void 0){let d=e.state.accessedTempEnvVars?.has(c),h=e.state.mutatedTempEnvVars?.has(c);if((d||h)&&e.state.localVarStack?.has(c)){let p=sn(e,c);p?p.value===void 0?e.state.env.delete(c):e.state.env.set(c,p.value):e.state.env.delete(c)}else e.state.env.delete(c)}else ti(e,c)||e.state.env.delete(c);e.state.exportedVars?.delete(c);continue}let a=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let u=a[1],c=a[2];if(c==="@"||c==="*"){let m=F(e,u);for(let[y]of m)e.state.env.delete(`${u}_${y}`);e.state.env.delete(u);continue}let f=e.state.associativeArrays?.has(u);if(f){let m=await gl(e,c);e.state.env.delete(`${u}_${m}`);continue}let d=Ue(e,u);if(e.state.env.has(u)&&!d&&!f){r+=`bash: unset: ${u}: not an array variable
638
- `,n=1;continue}let p=await pl(e,c);if(p===null&&d){r+=`bash: unset: ${c}: not a valid identifier
639
- `,n=1;continue}if(p===null)continue;if(p<0){let m=F(e,u),y=m.length,b=e.state.currentLine;if(y===0){r+=`bash: line ${b}: unset: [${p}]: bad array subscript
640
- `,n=1;continue}let v=y+p;if(v<0){r+=`bash: line ${b}: unset: [${p}]: bad array subscript
641
- `,n=1;continue}let E=m[v][0];e.state.env.delete(`${u}_${E}`);continue}e.state.env.delete(`${u}_${p}`);continue}if(!hl(i)){r+=`bash: unset: \`${i}': not a valid identifier
642
- `,n=1;continue}let l=i;if(ee(e,i)){let u=ve(e,i);u&&u!==i&&(l=u)}if(Je(e,l)){r+=`bash: unset: ${l}: cannot unset: readonly variable
643
- `,n=1;continue}let o=Bt(e,l);if(o!==void 0&&o!==e.state.callDepth)ml(e,l);else if(e.state.fullyUnsetLocals?.has(l))e.state.env.delete(l);else if(o!==void 0){let u=e.state.accessedTempEnvVars?.has(l),c=e.state.mutatedTempEnvVars?.has(l);if((u||c)&&e.state.localVarStack?.has(l)){let f=sn(e,l);f?f.value===void 0?e.state.env.delete(l):e.state.env.set(l,f.value):e.state.env.delete(l)}else e.state.env.delete(l)}else ti(e,l)||e.state.env.delete(l);e.state.exportedVars?.delete(l),e.state.functions.delete(i)}return P("",r,n)}var ni=["extglob","dotglob","nullglob","failglob","globstar","globskipdots","nocaseglob","nocasematch","expand_aliases","lastpipe","xpg_echo"],zf=["autocd","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","execfail","extdebug","extquote","force_fignore","globasciiranges","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath"];function fn(e){return ni.includes(e)}function Bf(e){return zf.includes(e)}function yl(e,t){let s=!1,r=!1,n=!1,i=!1,a=!1,l=[],o=0;for(;o<t.length;){let d=t[o];if(d==="--"){o++;break}if(d.startsWith("-")&&d.length>1){for(let h=1;h<d.length;h++){let p=d[h];switch(p){case"s":s=!0;break;case"u":r=!0;break;case"p":n=!0;break;case"q":i=!0;break;case"o":a=!0;break;default:return{exitCode:2,stdout:"",stderr:`shopt: -${p}: invalid option
644
- `}}}o++}else break}for(;o<t.length;)l.push(t[o]),o++;if(a)return qf(e,l,s,r,n,i);if(s&&r)return{exitCode:1,stdout:"",stderr:`shopt: cannot set and unset shell options simultaneously
645
- `};if(l.length===0){if(s||r){let h=[];for(let p of ni){let m=e.state.shoptOptions[p];s&&m?h.push(n?`shopt -s ${p}`:`${p} on`):r&&!m&&h.push(n?`shopt -u ${p}`:`${p} off`)}return{exitCode:0,stdout:h.length>0?`${h.join(`
658
+ `:"",stderr:""}}let E=[];for(let b of Ji){let g=e.state.shoptOptions[b];E.push(a?`shopt ${g?"-s":"-u"} ${b}`:`${b} ${g?"on":"off"}`)}return{exitCode:0,stdout:`${E.join(`
646
659
  `)}
647
- `:"",stderr:""}}let d=[];for(let h of ni){let p=e.state.shoptOptions[h];d.push(n?`shopt ${p?"-s":"-u"} ${h}`:`${h} ${p?"on":"off"}`)}return{exitCode:0,stdout:`${d.join(`
660
+ `,stderr:""}}let f=!1,d=[],p=0,h=[],m=0;for(let E of c){if(!es(E)&&!ip(E)){p=mt(d,`shopt: ${E}: invalid shell option name`,p,r),f=!0;continue}if(s)es(E)&&(e.state.shoptOptions[E]=!0,vs(e));else if(i)es(E)&&(e.state.shoptOptions[E]=!1,vs(e));else if(es(E)){let b=e.state.shoptOptions[E];o?b||(f=!0):a?(m=mt(h,`shopt ${b?"-s":"-u"} ${E}`,m,r),b||(f=!0)):(m=mt(h,`${E} ${b?"on":"off"}`,m,r),b||(f=!0))}else o?f=!0:a?(m=mt(h,`shopt -u ${E}`,m,r),f=!0):(m=mt(h,`${E} off`,m,r),f=!0)}return{exitCode:f?1:0,stdout:h.length>0?`${h.join(`
648
661
  `)}
649
- `,stderr:""}}let u=!1,c="",f=[];for(let d of l){if(!fn(d)&&!Bf(d)){c+=`shopt: ${d}: invalid shell option name
650
- `,u=!0;continue}if(s)fn(d)&&(e.state.shoptOptions[d]=!0,Dn(e));else if(r)fn(d)&&(e.state.shoptOptions[d]=!1,Dn(e));else if(fn(d)){let h=e.state.shoptOptions[d];i?h||(u=!0):n?(f.push(`shopt ${h?"-s":"-u"} ${d}`),h||(u=!0)):(f.push(`${d} ${h?"on":"off"}`),h||(u=!0))}else i?u=!0:n?(f.push(`shopt -u ${d}`),u=!0):(f.push(`${d} off`),u=!0)}return{exitCode:u?1:0,stdout:f.length>0?`${f.join(`
662
+ `:"",stderr:d.length>0?`${d.join(`
651
663
  `)}
652
- `:"",stderr:c}}function qf(e,t,s,r,n,i){let a=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["posix","posix"],["allexport","allexport"],["noclobber","noclobber"],["noglob","noglob"],["noexec","noexec"],["vi","vi"],["emacs","emacs"]]),l=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"],o=[...a.keys(),...l].sort();if(t.length===0){let d=[];for(let h of o){let p=l.includes(h),m=a.get(h),y=p||!m?!1:e.state.options[m];s&&!y||r&&y||d.push(n?`set ${y?"-o":"+o"} ${h}`:`${h} ${y?"on":"off"}`)}return{exitCode:0,stdout:d.length>0?`${d.join(`
664
+ `:""}}function ap(e,t,n,r,s,i){let a=Math.min(e.limits.maxOutputSize,e.limits.maxStringLength),o=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["posix","posix"],["allexport","allexport"],["noclobber","noclobber"],["noglob","noglob"],["noexec","noexec"],["vi","vi"],["emacs","emacs"]]),l=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"],c=[...o.keys(),...l].sort();if(t.length===0){let m=[];for(let E of c){let b=l.includes(E),g=o.get(E),w=b||!g?!1:e.state.options[g];n&&!w||r&&w||m.push(s?`set ${w?"-o":"+o"} ${E}`:`${E} ${w?"on":"off"}`)}return{exitCode:0,stdout:m.length>0?`${m.join(`
653
665
  `)}
654
- `:"",stderr:""}}let u=!1,c="",f=[];for(let d of t){let h=a.has(d),p=l.includes(d);if(!h&&!p){c+=`shopt: ${d}: invalid option name
655
- `,u=!0;continue}if(p){s||r||(i?u=!0:n?(f.push(`set +o ${d}`),u=!0):(f.push(`${d} off`),u=!0));continue}let m=a.get(d);if(m)if(s)m==="vi"?e.state.options.emacs=!1:m==="emacs"&&(e.state.options.vi=!1),e.state.options[m]=!0,Wt(e);else if(r)e.state.options[m]=!1,Wt(e);else{let y=e.state.options[m];i?y||(u=!0):n?(f.push(`set ${y?"-o":"+o"} ${d}`),y||(u=!0)):(f.push(`${d} ${y?"on":"off"}`),y||(u=!0))}}return{exitCode:u?1:0,stdout:f.length>0?`${f.join(`
666
+ `:"",stderr:""}}let u=!1,f=[],d=0,p=[],h=0;for(let m of t){let E=o.has(m),b=l.includes(m);if(!E&&!b){d=mt(f,`shopt: ${m}: invalid option name`,d,a),u=!0;continue}if(b){n||r||(i?u=!0:s?(h=mt(p,`set +o ${m}`,h,a),u=!0):(h=mt(p,`${m} off`,h,a),u=!0));continue}let g=o.get(m);if(g)if(n)g==="vi"?e.state.options.emacs=!1:g==="emacs"&&(e.state.options.vi=!1),e.state.options[g]=!0,dn(e);else if(r)e.state.options[g]=!1,dn(e);else{let w=e.state.options[g];i?w||(u=!0):s?(h=mt(p,`set ${w?"-o":"+o"} ${m}`,h,a),w||(u=!0)):(h=mt(p,`${m} ${w?"on":"off"}`,h,a),w||(u=!0))}}return{exitCode:u?1:0,stdout:p.length>0?`${p.join(`
656
667
  `)}
657
- `:"",stderr:c}}async function wl(e,t,s){if(t.includes("/")){let a=e.fs.resolvePath(e.state.cwd,t);if(!await e.fs.exists(a))return{error:"not_found",path:a};let l=a.split("/").pop()||t,o=e.commands.get(l);try{let u=await e.fs.stat(a);return u.isDirectory?{error:"permission_denied",path:a}:o?{cmd:o,path:a}:(u.mode&73)!==0?{script:!0,path:a}:{error:"permission_denied",path:a}}catch{return{error:"not_found",path:a}}}if(!s&&e.state.hashTable){let a=e.state.hashTable.get(t);if(a)if(await e.fs.exists(a)){let l=e.commands.get(t);if(l)return{cmd:l,path:a};try{let o=await e.fs.stat(a);if(!o.isDirectory&&(o.mode&73)!==0)return{script:!0,path:a}}catch{}}else e.state.hashTable.delete(t)}let n=(s??e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let a of n){if(!a)continue;let o=`${a.startsWith("/")?a:e.fs.resolvePath(e.state.cwd,a)}/${t}`;if(await e.fs.exists(o))try{let u=await e.fs.stat(o);if(u.isDirectory)continue;let c=(u.mode&73)!==0,f=e.commands.get(t),d=a==="/bin"||a==="/usr/bin";if(f&&d)return{cmd:f,path:o};if(c){if(f&&!d)return{script:!0,path:o};if(!f)return{script:!0,path:o}}}catch{}}if(!await e.fs.exists("/usr/bin")){let a=e.commands.get(t);if(a)return{cmd:a,path:`/usr/bin/${t}`}}return null}async function dn(e,t){let s=[];if(t.includes("/")){let i=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(i))try{let a=await e.fs.stat(i);a.isDirectory||(a.mode&73)!==0&&s.push(t)}catch{}return s}let n=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let i of n){if(!i)continue;let l=`${i.startsWith("/")?i:e.fs.resolvePath(e.state.cwd,i)}/${t}`;if(await e.fs.exists(l)){try{if((await e.fs.stat(l)).isDirectory)continue}catch{continue}s.push(i.startsWith("/")?l:`${i}/${t}`)}}return s}function jf(e){return e!==null&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function ie(e,t,s,r){return((...n)=>{Xt(t,s,`${r} call`);let i=e(...n);return jf(i)?i.then(a=>(Xt(t,s,`${r} post-await`),a),a=>{throw Xt(t,s,`${r} post-await`),a}):(Xt(t,s,`${r} return`),i)})}function Uf(e,t,s){let r={readFile:ie(e.readFile.bind(e),t,s,"fs.readFile"),...typeof e.readFileBytes=="function"?{readFileBytes:ie(e.readFileBytes.bind(e),t,s,"fs.readFileBytes")}:Object.create(null),readFileBuffer:ie(e.readFileBuffer.bind(e),t,s,"fs.readFileBuffer"),writeFile:ie(e.writeFile.bind(e),t,s,"fs.writeFile"),appendFile:ie(e.appendFile.bind(e),t,s,"fs.appendFile"),exists:ie(e.exists.bind(e),t,s,"fs.exists"),stat:ie(e.stat.bind(e),t,s,"fs.stat"),mkdir:ie(e.mkdir.bind(e),t,s,"fs.mkdir"),readdir:ie(e.readdir.bind(e),t,s,"fs.readdir"),rm:ie(e.rm.bind(e),t,s,"fs.rm"),cp:ie(e.cp.bind(e),t,s,"fs.cp"),mv:ie(e.mv.bind(e),t,s,"fs.mv"),resolvePath:ie(e.resolvePath.bind(e),t,s,"fs.resolvePath"),getAllPaths:ie(e.getAllPaths.bind(e),t,s,"fs.getAllPaths"),chmod:ie(e.chmod.bind(e),t,s,"fs.chmod"),symlink:ie(e.symlink.bind(e),t,s,"fs.symlink"),link:ie(e.link.bind(e),t,s,"fs.link"),readlink:ie(e.readlink.bind(e),t,s,"fs.readlink"),lstat:ie(e.lstat.bind(e),t,s,"fs.lstat"),realpath:ie(e.realpath.bind(e),t,s,"fs.realpath"),utimes:ie(e.utimes.bind(e),t,s,"fs.utimes")};return e.readdirWithFileTypes&&(r.readdirWithFileTypes=ie(e.readdirWithFileTypes.bind(e),t,s,"fs.readdirWithFileTypes")),r}function El(e,t){if(!e.requireDefenseContext)return e;let s=`command:${t}`,r={...e,fs:Uf(e.fs,e.requireDefenseContext,s)};return e.exec&&(r.exec=ie(e.exec,e.requireDefenseContext,s,"exec")),e.fetch&&(r.fetch=ie(e.fetch,e.requireDefenseContext,s,"fetch")),e.sleep&&(r.sleep=ie(e.sleep,e.requireDefenseContext,s,"sleep")),e.getRegisteredCommands&&(r.getRegisteredCommands=ie(e.getRegisteredCommands,e.requireDefenseContext,s,"getRegisteredCommands")),r}async function Al(e,t,s,r){let n=!1,i=!1,a=!1,l=!1,o=!1,u=[];for(let m of t)if(m.startsWith("-")&&m.length>1)for(let y of m.slice(1))y==="t"?n=!0:y==="p"?i=!0:y==="P"?a=!0:y==="a"?l=!0:y==="f"&&(o=!0);else u.push(m);let c="",f="",d=0,h=!1,p=!1;for(let m of u){let y=!1;if(a){if(l){let A=await r(m);if(A.length>0){for(let $ of A)c+=`${$}
658
- `;h=!0,y=!0}}else{let A=await s(m);A&&(c+=`${A}
659
- `,h=!0,y=!0)}y||(p=!0);continue}let b=!o&&e.state.functions.has(m);if(l&&b){if(!i)if(n)c+=`function
660
- `;else{let A=e.state.functions.get(m),$=A?bl(m,A):`${m} is a function
661
- `;c+=$}y=!0}let v=e.state.env.get(`BASH_ALIAS_${m}`);if(v!==void 0&&(l||!y)&&(i||(n?c+=`alias
662
- `:c+=`${m} is aliased to \`${v}'
663
- `),y=!0,!l)||br.has(m)&&(l||!y)&&(i||(n?c+=`keyword
664
- `:c+=`${m} is a shell keyword
665
- `),y=!0,!l))continue;if(!l&&b&&!y){if(!i)if(n)c+=`function
666
- `;else{let A=e.state.functions.get(m),$=A?bl(m,A):`${m} is a function
667
- `;c+=$}y=!0;continue}if(!(qt.has(m)&&(l||!y)&&(i||(n?c+=`builtin
668
- `:c+=`${m} is a shell builtin
669
- `),y=!0,!l))){if(l){let A=await r(m);for(let $ of A)i?c+=`${$}
670
- `:n?c+=`file
671
- `:c+=`${m} is ${$}
672
- `,h=!0,y=!0}else if(!y){let A=await s(m);A&&(i?c+=`${A}
673
- `:n?c+=`file
674
- `:c+=`${m} is ${A}
675
- `,h=!0,y=!0)}if(!y&&(p=!0,!n&&!i)){let A=!0;if(m.includes("/")){let $=e.fs.resolvePath(e.state.cwd,m);await e.fs.exists($)&&(A=!1)}A&&(f+=`bash: type: ${m}: not found
676
- `)}}}return i?d=p&&!h?1:0:d=p?1:0,P(c,f,d)}function bl(e,t){let s;return t.body.type==="Group"?s=t.body.body.map(n=>fs(n)).join("; "):s=fs(t.body),`${e} is a function
668
+ `:"",stderr:f.length>0?`${f.join(`
669
+ `)}
670
+ `:""}}function ts(e,t){return e===`/bin/${t}`||e===`/usr/bin/${t}`}async function _c(e,t,n){if(t.includes("/")){let a=e.fs.resolvePath(e.state.cwd,t);if(!await e.fs.exists(a))return{error:"not_found",path:a};try{let o=await e.fs.stat(a);if(o.isDirectory)return{error:"permission_denied",path:a};let l=a.split("/").pop()||t,c=e.commands.get(l);return c&&ts(a,l)?{cmd:c,path:a}:(o.mode&73)!==0?{script:!0,path:a}:{error:"permission_denied",path:a}}catch{return{error:"not_found",path:a}}}if(!n&&e.state.hashTable){let a=e.state.hashTable.get(t);if(a){try{let o=await e.fs.stat(a);if(!o.isDirectory){let l=e.commands.get(t);if(l&&ts(a,t))return{cmd:l,path:a};if((o.mode&73)!==0)return{script:!0,path:a}}}catch{}e.state.hashTable.delete(t)}}let s=(n??e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let a of s){if(!a)continue;let l=`${a.startsWith("/")?a:e.fs.resolvePath(e.state.cwd,a)}/${t}`;if(await e.fs.exists(l))try{let c=await e.fs.stat(l);if(c.isDirectory)continue;let u=(c.mode&73)!==0,f=e.commands.get(t),d=ts(l,t);if(f&&d)return{cmd:f,path:l};if(u){if(f&&!d)return{script:!0,path:l};if(!f)return{script:!0,path:l}}}catch{}}if(!await e.fs.exists("/usr/bin")){let a=e.commands.get(t);if(a)return{cmd:a,path:`/usr/bin/${t}`}}return null}async function ns(e,t){let n=[];if(t.includes("/")){let i=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(i))try{let a=await e.fs.stat(i);a.isDirectory||(a.mode&73)!==0&&n.push(t)}catch{}return n}let s=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let i of s){if(!i)continue;let o=`${i.startsWith("/")?i:e.fs.resolvePath(e.state.cwd,i)}/${t}`;if(ts(o,t)&&e.commands.has(t)){n.push(o);continue}if(await e.fs.exists(o)){try{let l=await e.fs.stat(o);if(l.isDirectory||(l.mode&73)===0)continue}catch{continue}n.push(i.startsWith("/")?o:`${i}/${t}`)}}return n}function op(e){return e!==null&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function fe(e,t,n,r){return((...s)=>{Pn(t,n,`${r} call`);let i=e(...s);return op(i)?i.then(a=>(Pn(t,n,`${r} post-await`),a),a=>{throw Pn(t,n,`${r} post-await`),a}):(Pn(t,n,`${r} return`),i)})}function lp(e,t,n){let r={readFile:fe(e.readFile.bind(e),t,n,"fs.readFile"),...typeof e.readFileBytes=="function"?{readFileBytes:fe(e.readFileBytes.bind(e),t,n,"fs.readFileBytes")}:Object.create(null),readFileBuffer:fe(e.readFileBuffer.bind(e),t,n,"fs.readFileBuffer"),writeFile:fe(e.writeFile.bind(e),t,n,"fs.writeFile"),appendFile:fe(e.appendFile.bind(e),t,n,"fs.appendFile"),exists:fe(e.exists.bind(e),t,n,"fs.exists"),stat:fe(e.stat.bind(e),t,n,"fs.stat"),mkdir:fe(e.mkdir.bind(e),t,n,"fs.mkdir"),readdir:fe(e.readdir.bind(e),t,n,"fs.readdir"),rm:fe(e.rm.bind(e),t,n,"fs.rm"),cp:fe(e.cp.bind(e),t,n,"fs.cp"),mv:fe(e.mv.bind(e),t,n,"fs.mv"),resolvePath:fe(e.resolvePath.bind(e),t,n,"fs.resolvePath"),getAllPaths:fe(e.getAllPaths.bind(e),t,n,"fs.getAllPaths"),chmod:fe(e.chmod.bind(e),t,n,"fs.chmod"),symlink:fe(e.symlink.bind(e),t,n,"fs.symlink"),link:fe(e.link.bind(e),t,n,"fs.link"),readlink:fe(e.readlink.bind(e),t,n,"fs.readlink"),lstat:fe(e.lstat.bind(e),t,n,"fs.lstat"),realpath:fe(e.realpath.bind(e),t,n,"fs.realpath"),utimes:fe(e.utimes.bind(e),t,n,"fs.utimes")};return e.readdirWithFileTypes&&(r.readdirWithFileTypes=fe(e.readdirWithFileTypes.bind(e),t,n,"fs.readdirWithFileTypes")),r}function Oc(e,t){if(!e.requireDefenseContext)return e;let n=`command:${t}`,r={...e,fs:lp(e.fs,e.requireDefenseContext,n)};return e.exec&&(r.exec=fe(e.exec,e.requireDefenseContext,n,"exec")),e.fetch&&(r.fetch=fe(e.fetch,e.requireDefenseContext,n,"fetch")),e.sleep&&(r.sleep=fe(e.sleep,e.requireDefenseContext,n,"sleep")),e.getRegisteredCommands&&(r.getRegisteredCommands=fe(e.getRegisteredCommands,e.requireDefenseContext,n,"getRegisteredCommands")),r}var Lc="+ ";async function Tc(e){let t=e.state.env.get("PS4");if(t===void 0)return Lc;if(t==="")return"";let n=e.state.options.xtrace;e.state.options.xtrace=!1;try{let s=new V().parseWordFromString(t,!1,!1);return await W(e,s)}catch(r){if(r instanceof ie&&!r.fatal)return t;if(r instanceof ma||r instanceof Error&&r.name==="AbortError")throw r;return e.state.expansionStderr=`${e.state.expansionStderr||""}bash: ${t}: bad substitution
671
+ `,t||Lc}finally{e.state.options.xtrace=n}}function cp(e){return e.map(t=>up(t)).join(" ")}function up(e){if(e==="")return"''";if(!/[\s'"\\$`!*?[\]{}|&;<>()~#\n\t]/.test(e))return e;let n=/[\x00-\x1f\x7f]/.test(e),r=e.includes(`
672
+ `),s=e.includes(" "),i=e.includes("\\"),a=e.includes("'");if(n||r||s||i){let l="";for(let c of e){let u=c.charCodeAt(0);c===`
673
+ `?l+="\\n":c===" "?l+="\\t":c==="\\"?l+="\\\\":c==="'"?l+="'":c==='"'?l+='"':u<32||u===127?u<256?l+=`\\x${u.toString(16).padStart(2,"0")}`:l+=`\\u${u.toString(16).padStart(4,"0")}`:l+=c}return`$'${l}'`}return a?`"${e.replace(/([\\$`"])/g,"\\$1")}"`:`'${e}'`}async function Mc(e,t,n){if(!e.state.options.xtrace)return"";let r=await Tc(e),s=[t,...n],i=cp(s);return`${r}${i}
674
+ `}async function Bc(e,t,n){return e.state.options.xtrace?`${await Tc(e)}${t}=${n}
675
+ `:""}function rs(e,t,n){return At([t,n],"",e.limits.maxStringLength,"array assignment")}async function Wc(e,t){let n=new Map,r="";for(let s of t.assignments){let i=s.name;if(s.array){let u=await fp(e,t,i,s.array,s.append,n);if(u.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:n,error:u.error};if(r+=u.xtraceOutput,u.continueToNext)continue}let a=s.value?await W(e,s.value):"";if(i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return{continueToNext:!1,xtraceOutput:r,tempAssignments:n,error:_("",`bash: ${i}: bad array subscript
676
+ `,1)};let l=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(l){let u=await yp(e,t,l[1],l[2],a,s.append,n);if(u.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:n,error:u.error};if(u.continueToNext)continue}let c=await gp(e,t,i,a,s.append,n);if(c.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:n,error:c.error};r+=c.xtraceOutput,c.continueToNext}return{continueToNext:!1,xtraceOutput:r,tempAssignments:n}}async function fp(e,t,n,r,s,i){let a="";if(/\[.+\]$/.test(n))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${n}: cannot assign list to array member
677
+ `,1)};if(ae(e,n)){let h=Kt(e,n);if(h===void 0||h==="")throw new j(1,"","");let m=Re(e,n);if(m&&/^[a-zA-Z_][a-zA-Z0-9_]*\[@\]$/.test(m))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${n}: cannot assign list to array member
678
+ `,1)}}if(Ie(e,n)){if(t.name)return a+=`bash: ${n}: readonly variable
679
+ `,{continueToNext:!0,xtraceOutput:a};let h=oe(e,n);if(h)return{continueToNext:!1,xtraceOutput:"",error:h}}let o=e.state.associativeArrays?.has(n),l=Se(e,n),c=l?De(l):void 0,u=e.state.env.get(n),f=()=>{e.state.arrays??=new Map,c?e.state.arrays.set(n,c):e.state.arrays.delete(n),u===void 0?e.state.env.delete(n):e.state.env.set(n,u)},d=dp(r),p=()=>{me(e,n),e.state.env.delete(n)};try{o&&d?await pp(e,t,n,r,s,p,h=>{a+=h}):d?await hp(e,n,r,s,p):await mp(e,n,r,s,p)}catch(h){throw f(),h}if(t.name){i.set(n,e.state.env.get(n));let m=`(${r.map(E=>fn(E)).join(" ")})`;e.state.env.set(n,m)}return{continueToNext:!0,xtraceOutput:a}}function dp(e){return e.some(t=>{if(t.parts.length>=2){let n=t.parts[0],r=t.parts[1];if(n.type!=="Glob"||!n.pattern.startsWith("["))return!1;if(n.pattern==="["&&(r.type==="DoubleQuoted"||r.type==="SingleQuoted")){if(t.parts.length<3)return!1;let s=t.parts[2];return s.type!=="Literal"?!1:s.value.startsWith("]=")||s.value.startsWith("]+=")}return r.type!=="Literal"?!1:r.value.startsWith("]")?r.value.startsWith("]=")||r.value.startsWith("]+="):n.pattern.endsWith("]")?r.value.startsWith("=")||r.value.startsWith("+="):!1}return!1})}async function pp(e,t,n,r,s,i,a){let o=[];for(let l of r){if(o.length>=e.limits.maxArrayElements)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let c=bs(l);if(c){let{key:u,valueParts:f,append:d}=c,p;f.length>0?(p=await W(e,{type:"Word",parts:f}),f.every(m=>m.type==="Literal"||m.type==="TildeExpansion")&&(p=_t(e,p))):p="",o.push({type:"keyed",key:u,value:p,append:d})}else{let u=await W(e,l);o.push({type:"invalid",expandedValue:u})}}e.executionScope.consumeWork(o.length,"associative array assignment"),s||i();for(let l of o)if(l.type==="keyed")if(l.append){let c=se(e,n,l.key)??"";F(e,n,l.key,rs(e,c,l.value),"associative")}else F(e,n,l.key,l.value,"associative");else{let c=t.line??e.state.currentLine??1;a(`bash: line ${c}: ${n}: ${l.expandedValue}: must use subscript when assigning associative array
680
+ `)}}async function hp(e,t,n,r,s){let i=[],a=0;for(let l of n){let c=bs(l);if(c){if(a>=e.limits.maxArrayElements)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");let{key:u,valueParts:f,append:d}=c,p;f.length>0?(p=await W(e,{type:"Word",parts:f}),f.every(m=>m.type==="Literal"||m.type==="TildeExpansion")&&(p=_t(e,p))):p="",i.push({type:"keyed",indexExpr:u,value:p,append:d}),a++}else{let u=await at(e,l);if(u.values.length>e.limits.maxArrayElements-a)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");i.push({type:"non-keyed",values:u.values}),a+=u.values.length}}e.executionScope.consumeWork(a,"indexed array assignment"),r||s();let o=0;for(let l of i)if(l.type==="keyed"){let c;try{let u=new V,f=ne(u,l.indexExpr);c=await Z(e,f.expression,!1)}catch{if(/^-?\d+$/.test(l.indexExpr))c=Number.parseInt(l.indexExpr,10);else{let u=e.state.env.get(l.indexExpr);c=u?Number.parseInt(u,10):0,Number.isNaN(c)&&(c=0)}}if(l.append){let u=se(e,t,c)??"";F(e,t,c,rs(e,u,l.value))}else F(e,t,c,l.value);o=c+1}else for(let c of l.values)F(e,t,o++,c)}async function mp(e,t,n,r,s){let i=[];for(let o of n){let l=await at(e,o);for(let c of l.values){if(i.length>=e.limits.maxArrayElements)throw new $(`array element limit exceeded (${e.limits.maxArrayElements})`,"array_elements");i.push(c)}}let a=0;if(e.executionScope.consumeWork(i.length,"indexed array assignment"),r){let o=z(e,t);if(o.length>0)a=Math.max(...o.map(([c])=>typeof c=="number"?c:0))+1;else{let l=e.state.env.get(t);l!==void 0&&(F(e,t,0,l),e.state.env.delete(t),a=1)}}else s();for(let o=0;o<i.length;o++)F(e,t,a+o,i[o])}async function yp(e,t,n,r,s,i,a){let o=n;if(ae(e,n)){let f=Re(e,n);if(f&&f!==n){if(f.includes("["))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: \`${f}': not a valid identifier
681
+ `,1)};o=f}}if(Ie(e,o)){if(t.name)return{continueToNext:!0,xtraceOutput:""};let f=oe(e,o);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let l=e.state.associativeArrays?.has(o),c;if(l)c=await Fc(e,r);else{let f=await ea(e,o,r);if(f.error)return{continueToNext:!1,xtraceOutput:"",error:f.error};c=String(f.index)}let u=i?rs(e,se(e,o,c)||"",s):s;return t.name||F(e,o,c,u,l?"associative":"indexed"),{continueToNext:!0,xtraceOutput:""}}async function Fc(e,t){let n;if(t.startsWith("'")&&t.endsWith("'"))n=t.slice(1,-1);else if(t.startsWith('"')&&t.endsWith('"')){let r=t.slice(1,-1),i=new V().parseWordFromString(r,!0,!1);n=await W(e,i)}else if(t.includes("$")){let s=new V().parseWordFromString(t,!1,!1);n=await W(e,s)}else n=t;return n}async function ea(e,t,n){let r=n;n.startsWith('"')&&n.endsWith('"')&&n.length>=2&&(r=n.slice(1,-1));let s;if(/^-?\d+$/.test(r))s=Number.parseInt(r,10);else{try{let i=new V,a=ne(i,r);s=await Z(e,a.expression,!1)}catch(i){if(i instanceof j)throw i;if(i instanceof ie){let l=`bash: line ${e.state.currentLine}: ${n}: ${i.message}
682
+ `;if(i.fatal)throw new j(1,"",l);return{index:0,error:_("",l,1)}}let a=e.state.currentLine;return{index:0,error:_("",`bash: line ${a}: ${t}[${n}]: bad array subscript
683
+ `,1)}}Number.isNaN(s)&&(s=0)}if(s<0){let i=z(e,t);if(i.length===0){let o=e.state.currentLine;return{index:0,error:_("",`bash: line ${o}: ${t}[${n}]: bad array subscript
684
+ `,1)}}if(s=Math.max(...i.map(([o])=>typeof o=="number"?o:0))+1+s,s<0){let o=e.state.currentLine;return{index:0,error:_("",`bash: line ${o}: ${t}[${n}]: bad array subscript
685
+ `,1)}}}return{index:s}}async function gp(e,t,n,r,s,i){let a="",o=n,l=null;if(ae(e,n)){let f=br(e,n,r);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${n}: circular name reference
686
+ `,1)};if(f===null)return{continueToNext:!0,xtraceOutput:""};o=f;let d=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);d&&(l={arrayName:d[1],subscriptExpr:d[2]},o=d[1])}if(Ie(e,o)){if(t.name)return a+=`bash: ${o}: readonly variable
687
+ `,{continueToNext:!0,xtraceOutput:a};let f=oe(e,o);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let c;if(Gn(e,o))try{let f=new V;if(s){let p=`(${e.state.env.get(o)||"0"}) + (${r})`,h=ne(f,p);c=String(await Z(e,h.expression))}else{let d=ne(f,r);c=String(await Z(e,d.expression))}}catch{c="0"}else{let f=nt(e,o)?se(e,o,0):e.state.env.get(o);c=s?rs(e,f||"",r):r}c=Sn(e,o,c),a+=await Bc(e,o,c);let u;return l?u=await wp(e,l):nt(e,o)&&(u="0"),t.name?u===void 0&&(i.set(o,e.state.env.get(o)),e.state.env.set(o,c)):(u===void 0?e.state.env.set(o,c):F(e,o,u,c),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(o)),e.state.tempEnvBindings?.some(f=>f.has(o))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(o))),{continueToNext:!1,xtraceOutput:a}}async function wp(e,t){let{arrayName:n,subscriptExpr:r}=t;if(e.state.associativeArrays?.has(n))return Fc(e,r);let i;if(/^-?\d+$/.test(r))i=Number.parseInt(r,10);else{try{let a=new V,o=ne(a,r);i=await Z(e,o.expression,!1)}catch{let a=e.state.env.get(r);i=a?Number.parseInt(a,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let a=z(e,n);a.length>0&&(i=Math.max(...a.map(l=>l[0]))+1+i)}return String(i)}async function Uc(e,t,n,r){let s=!1,i=!1,a=!1,o=!1,l=!1,c=[];for(let m of t)if(m.startsWith("-")&&m.length>1)for(let E of m.slice(1))E==="t"?s=!0:E==="p"?i=!0:E==="P"?a=!0:E==="a"?o=!0:E==="f"&&(l=!0);else c.push(m);let u="",f="",d=0,p=!1,h=!1;for(let m of c){let E=!1;if(a){if(o){let A=await r(m);if(A.length>0){for(let x of A)u+=`${x}
688
+ `;p=!0,E=!0}}else{let A=await n(m);A&&(u+=`${A}
689
+ `,p=!0,E=!0)}E||(h=!0);continue}let b=!l&&e.state.functions.has(m);if(o&&b){if(!i)if(s)u+=`function
690
+ `;else{let A=e.state.functions.get(m),x=A?Vc(m,A):`${m} is a function
691
+ `;u+=x}E=!0}let g=e.state.env.get(`BASH_ALIAS_${m}`);if(g!==void 0&&(o||!E)&&(i||(s?u+=`alias
692
+ `:u+=`${m} is aliased to \`${g}'
693
+ `),E=!0,!o)||mi.has(m)&&(o||!E)&&(i||(s?u+=`keyword
694
+ `:u+=`${m} is a shell keyword
695
+ `),E=!0,!o))continue;if(!o&&b&&!E){if(!i)if(s)u+=`function
696
+ `;else{let A=e.state.functions.get(m),x=A?Vc(m,A):`${m} is a function
697
+ `;u+=x}E=!0;continue}if(!(wn.has(m)&&(o||!E)&&(i||(s?u+=`builtin
698
+ `:u+=`${m} is a shell builtin
699
+ `),E=!0,!o))){if(o){let A=await r(m);for(let x of A)i?u+=`${x}
700
+ `:s?u+=`file
701
+ `:u+=`${m} is ${x}
702
+ `,p=!0,E=!0}else if(!E){let A=await n(m);A&&(i?u+=`${A}
703
+ `:s?u+=`file
704
+ `:u+=`${m} is ${A}
705
+ `,p=!0,E=!0)}if(!E&&(h=!0,!s&&!i)){let A=!0;if(m.includes("/")){let x=e.fs.resolvePath(e.state.cwd,m);await e.fs.exists(x)&&(A=!1)}A&&(f+=`bash: type: ${m}: not found
706
+ `)}}}return i?d=h&&!p?1:0:d=h?1:0,_(u,f,d)}function Vc(e,t){let n;return t.body.type==="Group"?n=t.body.body.map(s=>Qn(s)).join("; "):n=Qn(t.body),`${e} is a function
677
707
  ${e} ()
678
708
  {
679
- ${s}
709
+ ${n}
680
710
  }
681
- `}function fs(e){if(Array.isArray(e))return e.map(t=>fs(t)).join("; ");if(e.type==="Statement"){let t=[];for(let s=0;s<e.pipelines.length;s++){let r=e.pipelines[s];t.push(Zf(r)),e.operators[s]&&t.push(e.operators[s])}return t.join(" ")}if(e.type==="SimpleCommand"){let t=e,s=[];t.name&&s.push(vl(t.name));for(let r of t.args)s.push(vl(r));return s.join(" ")}return e.type==="Group"?`{ ${e.body.map(r=>fs(r)).join("; ")}; }`:"..."}function Zf(e){let t=e.commands.map(s=>fs(s));return(e.negated?"! ":"")+t.join(" | ")}function vl(e){let t="";for(let s of e.parts)s.type==="Literal"?t+=s.value:s.type==="DoubleQuoted"?t+=`"${s.parts.map(r=>Sl(r)).join("")}"`:s.type==="SingleQuoted"?t+=`'${s.value}'`:t+=Sl(s);return t}function Sl(e){let t=e;return t.type==="Literal"?t.value??"":t.type==="Variable"?`$${t.name}`:""}async function $l(e,t,s,r){let n="",i="",a=0;for(let l of t){if(!l){a=1;continue}let o=e.state.env.get(`BASH_ALIAS_${l}`);if(o!==void 0)r?n+=`${l} is an alias for "${o}"
682
- `:n+=`alias ${l}='${o}'
683
- `;else if(br.has(l))r?n+=`${l} is a shell keyword
684
- `:n+=`${l}
685
- `;else if(qt.has(l))r?n+=`${l} is a shell builtin
686
- `:n+=`${l}
687
- `;else if(e.state.functions.has(l))r?n+=`${l} is a function
688
- `:n+=`${l}
689
- `;else if(l.includes("/")){let u=e.fs.resolvePath(e.state.cwd,l),c=!1;if(await e.fs.exists(u))try{let f=await e.fs.stat(u);f.isDirectory||(f.mode&73)!==0&&(r?n+=`${l} is ${l}
690
- `:n+=`${l}
691
- `,c=!0)}catch{}c||(r&&(i+=`${l}: not found
692
- `),a=1)}else if(e.commands.has(l)){let c=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":"),f=null;for(let d of c){if(!d)continue;let h=`${d}/${l}`;try{let p=await e.fs.stat(h);if(!p.isDirectory&&(p.mode&73)!==0){f=h;break}}catch{}}f||(f=`/usr/bin/${l}`),r?n+=`${l} is ${f}
693
- `:n+=`${f}
694
- `}else r&&(i+=`${l}: not found
695
- `),a=1}return P(n,i,a)}async function Nl(e,t){if(t.includes("/")){let n=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(n)){try{let i=await e.fs.stat(n);if(i.isDirectory||!((i.mode&73)!==0))return null}catch{return null}return t}return null}let r=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let n of r){if(!n)continue;let a=`${n.startsWith("/")?n:e.fs.resolvePath(e.state.cwd,n)}/${t}`;if(await e.fs.exists(a)){try{if((await e.fs.stat(a)).isDirectory)continue}catch{continue}return`${n}/${t}`}}if(e.commands.has(t)){for(let n of r)if(n==="/usr/bin"||n==="/bin")return`${n}/${t}`;return`/usr/bin/${t}`}return null}async function kl(e,t,s,r,n,i,a,l){let{ctx:o,runCommand:u}=e;if(o.coverage&&qt.has(t)&&o.coverage.hit(`bash:builtin:${t}`),t==="export")return Br(o,s);if(t==="unset")return si(o,s);if(t==="exit")return zr(o,s);if(t==="local")return Zr(o,s);if(t==="set")return Yr(o,s);if(t==="break")return pr(o,s);if(t==="continue")return _r(o,s);if(t==="return")return Qr(o,s);if(t==="eval"&&o.state.options.posix)return ln(o,s,n);if(t==="shift")return Jr(o,s);if(t==="getopts")return cn(o,s);if(t==="compgen")return Ar(o,s);if(t==="complete")return Nr(o,s);if(t==="compopt")return kr(o,s);if(t==="pushd")return await Mr(o,s);if(t==="popd")return Fr(o,s);if(t==="dirs")return Vr(o,s);if(t==="source"||t===".")return ei(o,s);if(t==="read")return Gr(o,s,n,l);if(t==="mapfile"||t==="readarray")return Hr(o,s,n);if(t==="declare"||t==="typeset")return Lr(o,s);if(t==="readonly")return Tr(o,s);if(!i){let c=o.state.functions.get(t);if(c)return an(o,c,s,n)}if(t==="eval")return ln(o,s,n);if(t==="cd")return await mr(o,s);if(t===":"||t==="true")return G;if(t==="false")return de(!1);if(t==="let")return Ur(o,s);if(t==="command")return Hf(e,s,n);if(t==="builtin")return Gf(e,s,n);if(t==="shopt")return yl(o,s);if(t==="exec"){if(s.length===0)return G;let[c,...f]=s;return u(c,f,[],n,!1,!1,-1)}if(t==="wait")return G;if(t==="type")return await Al(o,s,c=>Nl(o,c),c=>dn(o,c));if(t==="hash")return qr(o,s);if(t==="help")return jr(o,s);if(t==="["||t==="test"){let c=s;if(t==="["){if(s[s.length-1]!=="]")return _("[: missing `]'\n",2);c=s.slice(0,-1)}return os(o,c)}return null}async function Hf(e,t,s){let{ctx:r,runCommand:n}=e;if(t.length===0)return G;let i=!1,a=!1,l=!1,o=t;for(;o.length>0&&o[0].startsWith("-");){let f=o[0];if(f==="--"){o=o.slice(1);break}for(let d of f.slice(1))d==="p"?i=!0:d==="V"?a=!0:d==="v"&&(l=!0);o=o.slice(1)}if(o.length===0)return G;if(l||a)return await $l(r,o,l,a);let[u,...c]=o;return n(u,c,[],s,!0,i,-1)}async function Gf(e,t,s){let{runCommand:r}=e;if(t.length===0)return G;let n=t;if(n[0]==="--"&&(n=n.slice(1),n.length===0))return G;let i=n[0];if(!qt.has(i))return _(`bash: builtin: ${i}: not a shell builtin
696
- `);let[,...a]=n;return r(i,a,[],s,!0,!1,-1)}async function _l(e,t,s,r,n){let{ctx:i,buildExportedEnv:a,executeUserScript:l}=e,u=await wl(i,t,n?"/usr/bin:/bin":void 0);if(!u)return Oo(t)?_(`bash: ${t}: command not available in browser environments. Exclude '${t}' from your commands or use the Node.js bundle.
697
- `,127):_(`bash: ${t}: command not found
698
- `,127);if("error"in u)return u.error==="permission_denied"?_(`bash: ${t}: Permission denied
699
- `,126):_(`bash: ${t}: No such file or directory
700
- `,127);if("script"in u)return t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,u.path)),await l(u.path,s,r);let{cmd:c,path:f}=u;t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,f));let d=r||i.state.groupStdin||"",h=a(),p={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:h,stdin:d,limits:i.limits,exec:i.execFn,fetch:i.fetch,getRegisteredCommands:()=>Array.from(i.commands.keys()),sleep:i.sleep,trace:i.trace,fileDescriptors:i.state.fileDescriptors,xpgEcho:i.state.shoptOptions.xpg_echo,coverage:i.coverage,signal:i.state.signal,requireDefenseContext:i.requireDefenseContext,jsBootstrapCode:i.jsBootstrapCode,invokeTool:i.invokeTool},m=El(p,t);try{let y=()=>pi(i.requireDefenseContext,"command",`${t} execution`,()=>c.execute(s,m));return c.trusted?await Be.runTrustedAsync(()=>y()):await y()}catch(y){if(y instanceof Q||y instanceof It)throw y;return _(`${t}: ${Re(it(y))}
701
- `)}}async function ri(e,t){let s=e.state.inCondition;e.state.inCondition=!0;let r="",n="",i=0;try{for(let a of t){let l=await e.executeStatement(a);r+=l.stdout,n+=l.stderr,i=l.exitCode}}finally{e.state.inCondition=s}return{stdout:r,stderr:n,exitCode:i}}function ds(e,t,s,r){if(e instanceof De)return t+=e.stdout,s+=e.stderr,e.levels>1&&r>1?(e.levels--,e.stdout=t,e.stderr=s,{action:"rethrow",stdout:t,stderr:s,error:e}):{action:"break",stdout:t,stderr:s};if(e instanceof Ie)return t+=e.stdout,s+=e.stderr,e.levels>1&&r>1?(e.levels--,e.stdout=t,e.stderr=s,{action:"rethrow",stdout:t,stderr:s,error:e}):{action:"continue",stdout:t,stderr:s};if(e instanceof $e||e instanceof We||e instanceof j||e instanceof Q)return e.prependOutput(t,s),{action:"rethrow",stdout:t,stderr:s,error:e};let n=it(e);return{action:"error",stdout:t,stderr:`${s}${n}
702
- `,exitCode:1}}async function hn(e,t,s="",r=""){let n=s,i=r,a=0;try{for(let l of t){let o=await e.executeStatement(l);n+=o.stdout,i+=o.stderr,a=o.exitCode}}catch(l){if(bs(l)||l instanceof We||l instanceof j||l instanceof Q||l instanceof ut)throw l.prependOutput(n,i),l;return{stdout:n,stderr:`${i}${it(l)}
703
- `,exitCode:1}}return{stdout:n,stderr:i,exitCode:a}}async function Pl(e,t){let s="",r="";for(let n of t.clauses){let i=await ri(e,n.condition);if(s+=i.stdout,r+=i.stderr,i.exitCode===0)return hn(e,n.body,s,r)}return t.elseBody?hn(e,t.elseBody,s,r):P(s,r,0)}async function Dl(e,t){let s=await nt(e,t.redirections);if(s)return s;let r="",n="",i=0,a=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t.variable))return _(`bash: \`${t.variable}': not a valid identifier
704
- `);let l=[];if(t.words===null)l=(e.state.env.get("@")||"").split(" ").filter(Boolean);else if(t.words.length===0)l=[];else try{for(let u of t.words){let c=await et(e,u);l.push(...c.values)}}catch(u){if(u instanceof ct)return{stdout:"",stderr:u.stderr,exitCode:1};throw u}e.state.loopDepth++;try{for(let u of l){a++,a>e.limits.maxLoopIterations&&tt(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),e.state.env.set(t.variable,u);try{for(let c of t.body){let f=await e.executeStatement(c);r+=f.stdout,n+=f.stderr,i=f.exitCode}}catch(c){let f=ds(c,r,n,e.state.loopDepth);if(r=f.stdout,n=f.stderr,f.action==="break")break;if(f.action==="continue")continue;if(f.action==="error"){let d=P(r,n,f.exitCode??1);return le(e,d,t.redirections)}throw f.error}}}finally{e.state.loopDepth--}let o=P(r,n,i);return le(e,o,t.redirections)}async function Il(e,t){let s=await nt(e,t.redirections);if(s)return s;let r=t.line;r!==void 0&&(e.state.currentLine=r);let n="",i="",a=0,l=0;t.init&&await L(e,t.init.expression),e.state.loopDepth++;try{for(;l++,l>e.limits.maxLoopIterations&&tt(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,i),!(t.condition&&(r!==void 0&&(e.state.currentLine=r),await L(e,t.condition.expression)===0));){try{for(let u of t.body){let c=await e.executeStatement(u);n+=c.stdout,i+=c.stderr,a=c.exitCode}}catch(u){let c=ds(u,n,i,e.state.loopDepth);if(n=c.stdout,i=c.stderr,c.action==="break")break;if(c.action==="continue"){t.update&&await L(e,t.update.expression);continue}if(c.action==="error"){let f=P(n,i,c.exitCode??1);return le(e,f,t.redirections)}throw c.error}t.update&&await L(e,t.update.expression)}}finally{e.state.loopDepth--}let o=P(n,i,a);return le(e,o,t.redirections)}async function Cl(e,t,s=""){let r="",n="",i=0,a=0,l=s;for(let u of t.redirections)if((u.operator==="<<"||u.operator==="<<-")&&u.target.type==="HereDoc"){let c=u.target,f=await W(e,c.content);c.stripTabs&&(f=f.split(`
705
- `).map(d=>d.replace(/^\t+/,"")).join(`
706
- `)),l=f}else if(u.operator==="<<<"&&u.target.type==="Word")l=`${await W(e,u.target)}
707
- `;else if(u.operator==="<"&&u.target.type==="Word")try{let c=await W(e,u.target),f=e.fs.resolvePath(e.state.cwd,c);l=await e.fs.readFile(f)}catch{let c=await W(e,u.target);return _(`bash: ${c}: No such file or directory
708
- `)}let o=e.state.groupStdin;l&&(e.state.groupStdin=l),e.state.loopDepth++;try{for(;;){a++,a>e.limits.maxLoopIterations&&tt(`while loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let u=0,c=!1,f=!1,d=e.state.inCondition;e.state.inCondition=!0;try{for(let h of t.condition){let p=await e.executeStatement(h);r+=p.stdout,n+=p.stderr,u=p.exitCode}}catch(h){if(h instanceof De){if(r+=h.stdout,n+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=r,h.stderr=n,e.state.inCondition=d,h;c=!0}else if(h instanceof Ie){if(r+=h.stdout,n+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=r,h.stderr=n,e.state.inCondition=d,h;f=!0}else throw e.state.inCondition=d,h}finally{e.state.inCondition=d}if(c)break;if(!f){if(u!==0)break;try{for(let h of t.body){let p=await e.executeStatement(h);r+=p.stdout,n+=p.stderr,i=p.exitCode}}catch(h){let p=ds(h,r,n,e.state.loopDepth);if(r=p.stdout,n=p.stderr,p.action==="break")break;if(p.action==="continue")continue;if(p.action==="error")return P(r,n,p.exitCode??1);throw p.error}}}}finally{e.state.loopDepth--,e.state.groupStdin=o}return P(r,n,i)}async function xl(e,t){let s="",r="",n=0,i=0;e.state.loopDepth++;try{for(;;){i++,i>e.limits.maxLoopIterations&&tt(`until loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",s,r);let a=await ri(e,t.condition);if(s+=a.stdout,r+=a.stderr,a.exitCode===0)break;try{for(let l of t.body){let o=await e.executeStatement(l);s+=o.stdout,r+=o.stderr,n=o.exitCode}}catch(l){let o=ds(l,s,r,e.state.loopDepth);if(s=o.stdout,r=o.stderr,o.action==="break")break;if(o.action==="continue")continue;if(o.action==="error")return P(s,r,o.exitCode??1);throw o.error}}}finally{e.state.loopDepth--}return P(s,r,n)}async function Rl(e,t){let s=await nt(e,t.redirections);if(s)return s;let r="",n="",i=0,a=await W(e,t.word),l=!1;for(let u=0;u<t.items.length;u++){let c=t.items[u],f=l;if(!l)for(let d of c.patterns){let h=await W(e,d);No(d)&&(h=Le(h));let p=e.state.shoptOptions.nocasematch,m=e.state.shoptOptions.extglob;if(zt(a,h,p,m)){f=!0;break}}if(f){let d=await hn(e,c.body,r,n);if(r=d.stdout,n=d.stderr,i=d.exitCode,c.terminator===";;")break;c.terminator===";&"?l=!0:l=!1}else l=!1}let o=P(r,n,i);return le(e,o,t.redirections)}function ii(e,t){if(e.parts.length!==1)return!1;let s=e.parts[0];return s.type!=="Literal"?!1:t.includes(s.value)}function Ol(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),a=n+r+1,l=t.slice(a),o=l.indexOf(":");if(o===-1)return null;let u=Number.parseInt(l.slice(0,o),10);if(Number.isNaN(u)||u<0)return null;let c=l.slice(o+1);return{path:i,position:u,content:c}}var Ll="+ ";async function Tl(e){let t=e.state.env.get("PS4");if(t===void 0)return Ll;if(t==="")return"";try{let r=new V().parseWordFromString(t,!1,!1);return await W(e,r)}catch{return e.state.expansionStderr=`${e.state.expansionStderr||""}bash: ${t}: bad substitution
709
- `,t||Ll}}function Qf(e){return e.map(t=>Kf(t)).join(" ")}function Kf(e){if(e==="")return"''";if(!/[\s'"\\$`!*?[\]{}|&;<>()~#\n\t]/.test(e))return e;let s=/[\x00-\x1f\x7f]/.test(e),r=e.includes(`
710
- `),n=e.includes(" "),i=e.includes("\\"),a=e.includes("'");if(s||r||n||i){let o="";for(let u of e){let c=u.charCodeAt(0);u===`
711
- `?o+="\\n":u===" "?o+="\\t":u==="\\"?o+="\\\\":u==="'"?o+="'":u==='"'?o+='"':c<32||c===127?c<256?o+=`\\x${c.toString(16).padStart(2,"0")}`:o+=`\\u${c.toString(16).padStart(4,"0")}`:o+=u}return`$'${o}'`}return a?`"${e.replace(/([\\$`"])/g,"\\$1")}"`:`'${e}'`}async function Wl(e,t,s){if(!e.state.options.xtrace)return"";let r=await Tl(e),n=[t,...s],i=Qf(n);return`${r}${i}
712
- `}async function Ml(e,t,s){return e.state.options.xtrace?`${await Tl(e)}${t}=${s}
713
- `:""}async function Vl(e,t,s){let r=t.timed?Sn():0,n="",i=G,a=0,l=[],o="",u=t.commands.length>1,c=e.state.lastArg;for(let d=0;d<t.commands.length;d++){let h=t.commands[d],p=d===t.commands.length-1,m=d===0;u&&(e.state.lastArg="",m||(e.state.groupStdin=void 0));let b=u&&(!p||!e.state.shoptOptions.lastpipe)?new Map(e.state.env):null,v;try{v=await s(h,n)}catch(E){if(E instanceof xe)v={stdout:E.stdout,stderr:E.stderr,exitCode:1};else if(E instanceof j&&t.commands.length>1)v={stdout:E.stdout,stderr:E.stderr,exitCode:E.exitCode};else if(E instanceof We&&t.commands.length>1)v={stdout:E.stdout,stderr:E.stderr,exitCode:E.exitCode};else throw b&&(e.state.env=b),E}b&&(e.state.env=b),l.push(v.exitCode),v.exitCode!==0&&(a=v.exitCode),p?i=v:(t.pipeStderr?.[d]??!1?n=St(v.stderr)+En(v):(n=En(v),o+=v.stderr),i={stdout:"",stderr:"",exitCode:v.exitCode})}if(o&&(i={...i,stderr:o+i.stderr}),t.commands.length>1||t.commands.length===1&&t.commands[0].type==="SimpleCommand"){for(let d of e.state.env.keys())d.startsWith("PIPESTATUS_")&&e.state.env.delete(d);for(let d=0;d<l.length;d++)e.state.env.set(`PIPESTATUS_${d}`,String(l[d]));e.state.env.set("PIPESTATUS__length",String(l.length))}if(e.state.options.pipefail&&a!==0&&(i={...i,exitCode:a}),t.negated&&(i={...i,exitCode:i.exitCode===0?1:0}),t.timed){let h=(Sn()-r)/1e3,p=Math.floor(h/60),m=h%60,y;t.timePosix?y=`real ${h.toFixed(2)}
711
+ `}function Qn(e){if(Array.isArray(e))return e.map(t=>Qn(t)).join("; ");if(e.type==="Statement"){let t=[];for(let n=0;n<e.pipelines.length;n++){let r=e.pipelines[n];t.push(Ep(r)),e.operators[n]&&t.push(e.operators[n])}return t.join(" ")}if(e.type==="SimpleCommand"){let t=e,n=[];t.name&&n.push(zc(t.name));for(let r of t.args)n.push(zc(r));return n.join(" ")}return e.type==="Group"?`{ ${e.body.map(r=>Qn(r)).join("; ")}; }`:"..."}function Ep(e){let t=e.commands.map(n=>Qn(n));return(e.negated?"! ":"")+t.join(" | ")}function zc(e){let t="";for(let n of e.parts)n.type==="Literal"?t+=n.value:n.type==="DoubleQuoted"?t+=`"${n.parts.map(r=>qc(r)).join("")}"`:n.type==="SingleQuoted"?t+=`'${n.value}'`:t+=qc(n);return t}function qc(e){let t=e;return t.type==="Literal"?t.value??"":t.type==="Variable"?`$${t.name}`:""}async function jc(e,t,n,r){let s="",i="",a=0;for(let o of t){if(!o){a=1;continue}let l=e.state.env.get(`BASH_ALIAS_${o}`);if(l!==void 0)r?s+=`${o} is an alias for "${l}"
712
+ `:s+=`alias ${o}='${l}'
713
+ `;else if(mi.has(o))r?s+=`${o} is a shell keyword
714
+ `:s+=`${o}
715
+ `;else if(wn.has(o))r?s+=`${o} is a shell builtin
716
+ `:s+=`${o}
717
+ `;else if(e.state.functions.has(o))r?s+=`${o} is a function
718
+ `:s+=`${o}
719
+ `;else if(o.includes("/")){let c=e.fs.resolvePath(e.state.cwd,o),u=!1;if(await e.fs.exists(c))try{let f=await e.fs.stat(c);f.isDirectory||(f.mode&73)!==0&&(r?s+=`${o} is ${o}
720
+ `:s+=`${o}
721
+ `,u=!0)}catch{}u||(r&&(i+=`${o}: not found
722
+ `),a=1)}else if(e.commands.has(o)){let u=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":"),f=null;for(let d of u){if(!d)continue;let p=`${d}/${o}`;try{let h=await e.fs.stat(p);if(!h.isDirectory&&(h.mode&73)!==0){f=p;break}}catch{}}f||(f=`/usr/bin/${o}`),r?s+=`${o} is ${f}
723
+ `:s+=`${f}
724
+ `}else r&&(i+=`${o}: not found
725
+ `),a=1}return _(s,i,a)}async function Gc(e,t){if(t.includes("/")){let s=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(s)){try{let i=await e.fs.stat(s);if(i.isDirectory||!((i.mode&73)!==0))return null}catch{return null}return t}return null}let r=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let s of r){if(!s)continue;let a=`${s.startsWith("/")?s:e.fs.resolvePath(e.state.cwd,s)}/${t}`;if(await e.fs.exists(a)){try{let o=await e.fs.stat(a);if(o.isDirectory||(o.mode&73)===0)continue}catch{continue}return`${s}/${t}`}}if(e.commands.has(t)){for(let s of r)if(s==="/usr/bin"||s==="/bin")return`${s}/${t}`;return`/usr/bin/${t}`}return null}function bp(e,t){let n=!0,r=e.signal?new AbortController:void 0,s=new WeakMap,i=()=>{if(!n)throw new Te("",`bash: ${t} used its context after cancellation
726
+ `)},a=c=>{if(c===null||typeof c!="object"&&typeof c!="function")return c;let u=s.get(c);if(u!==void 0)return u;if(typeof c=="object"&&$a(c))return c;if(c instanceof Uint8Array){let h=new Uint8Array(c);return s.set(c,h),h}if(c instanceof ArrayBuffer){let h=c.slice(0);return s.set(c,h),h}if(c instanceof Promise){let h=c.then(m=>(i(),a(m)));return s.set(c,h),h}if(typeof c=="function"){let h=function(...m){return i(),a(Reflect.apply(c,this,m))};return s.set(c,h),h}let f=Object.getPrototypeOf(c);if(Array.isArray(c)||f===Object.prototype||f===null){let h=Array.isArray(c)?[]:Object.create(f);s.set(c,h);let m=Object.getOwnPropertyDescriptors(c);for(let E of Object.values(m)){if("value"in E){let b=E.value;E.value=typeof b=="function"?(...g)=>(i(),a(Reflect.apply(b,c,g))):a(b)}if(E.get){let b=E.get;E.get=()=>(i(),a(Reflect.apply(b,c,[])))}if(E.set){let b=E.set;E.set=g=>{i(),Reflect.apply(b,c,[g])}}}return Object.defineProperties(h,m),h}let d=new Map,p=new ga(c,{get(h,m){if(i(),m==="constructor"||m==="prototype"||m==="__proto__")throw new Error(`${t}: unsafe context property access`);let E=Reflect.get(h,m,h);if(typeof E!="function")return a(E);if(d.has(m))return d.get(m);let b=(...g)=>(i(),a(Reflect.apply(E,h,g)));return d.set(m,b),b},set(h,m,E){if(i(),m==="constructor"||m==="prototype"||m==="__proto__")throw new Error(`${t}: unsafe context property access`);return Reflect.set(h,m,E,h)}});return s.set(c,p),p},o=c=>a(c),l=c=>c&&((...u)=>(i(),a(c(...u))));return{context:{...e,fs:o(e.fs),env:o(e.env),limits:Object.freeze({...e.limits}),exportedEnv:e.exportedEnv?Object.freeze({...e.exportedEnv}):void 0,executionScope:e.executionScope?o(e.executionScope):void 0,fileDescriptors:e.fileDescriptors?o(e.fileDescriptors):void 0,coverage:e.coverage?o(e.coverage):void 0,assignShellVariable:l(e.assignShellVariable),exec:l(e.exec),execWithInheritedStdin:l(e.execWithInheritedStdin),fetch:l(e.fetch),getRegisteredCommands:l(e.getRegisteredCommands),sleep:l(e.sleep),trace:l(e.trace),invokeTool:l(e.invokeTool),signal:r?.signal},revoke(){n=!1,r?.signal.aborted||r?.abort(new Te("",`bash: ${t} context revoked
727
+ `))}}}async function Sp(e,t,n,r,s,i){let a=s.remainingTimeMs()??t.limits.maxExecutionTimeMs,o=t.limits.maxExtensionCleanupTimeMs,l,c,u,d=Promise.resolve().then(e).then(h=>({kind:"result",result:h}),h=>({kind:"error",error:h})),p=new Promise(h=>{let m=()=>{n(),h({kind:"abort"})};c=m,i?.addEventListener("abort",m,{once:!0}),i?.aborted&&m(),l=kn(()=>{n(),h({kind:"deadline"})},a)});try{let h=await Promise.race([d,p]);if(h.kind==="result")return h.result;if(h.kind==="error")throw h.error;n();let m=await Promise.race([d.then(()=>!0),new Promise(b=>{u=kn(()=>b(!1),o)})]),E=h.kind==="deadline"?new Te("",`bash: ${r} exceeded its execution deadline
728
+ `):new Te("",`bash: execution aborted
729
+ `);throw m||s.poisonAfterAbort(E),E}finally{n(),Nn(l),Nn(u),c&&i?.removeEventListener("abort",c)}}async function Zc(e,t,n,r,s,i,a,o){let{ctx:l,runCommand:c}=e;if(l.coverage&&wn.has(t)&&l.coverage.hit(`bash:builtin:${t}`),t==="export")return Bi(l,n);if(t==="unset")return Yi(l,n);if(t==="exit")return Mi(l,n);if(t==="local")return zi(l,n);if(t==="set")return Hi(l,n);if(t==="break")return oi(l,n);if(t==="continue")return $i(l,n);if(t==="return")return ji(l,n);if(t==="eval"&&l.state.options.posix)return Xr(l,n,s);if(t==="shift")return Qi(l,n);if(t==="getopts")return Yr(l,n);if(t==="compgen")return bi(l,n);if(t==="complete")return vi(l,n);if(t==="compopt")return xi(l,n);if(t==="pushd")return await Oi(l,n);if(t==="popd")return Li(l,n);if(t==="dirs")return Ti(l,n);if(t==="source"||t===".")return Ki(l,n);if(t==="read")return Ui(l,n,s,o);if(t==="mapfile"||t==="readarray")return qi(l,n,s);if(t==="declare"||t==="typeset")return Ri(l,n);if(t==="readonly")return Ii(l,n);if(!i){let u=l.state.functions.get(t);if(u)return Qr(l,u,n,s)}if(t==="__just_bash_tee_restore"){if(n.length===0||n.length>l.limits.maxArrayElements)return R(`bash: invalid internal pipeline status restore
730
+ `,2);let u=[];for(let p of n){if(!/^(?:0|[1-9][0-9]{0,2})$/.test(p))return R(`bash: invalid internal pipeline status restore
731
+ `,2);let h=Number(p);if(!Number.isSafeInteger(h)||h>255)return R(`bash: invalid internal pipeline status restore
732
+ `,2);u.push(h)}let f=u[u.length-1]??0,d=[...u].reverse().find(p=>p!==0);return{stdout:"",stderr:"",exitCode:l.state.options.pipefail&&d!==void 0?d:f,internalPipeStatusOverride:u}}if(t==="eval")return Xr(l,n,s);if(t==="cd")return await li(l,n);if(t===":"||t==="true")return te;if(t==="false")return ye(!1);if(t==="let")return Vi(l,n);if(t==="command")return Ap(e,n,s);if(t==="builtin")return vp(e,n,s);if(t==="shopt")return Ic(l,n);if(t==="exec"){if(n.length===0)return te;let[u,...f]=n;return c(u,f,[],s,!1,!1,-1)}if(t==="wait")return te;if(t==="type")return await Uc(l,n,u=>Gc(l,u),u=>ns(l,u));if(t==="hash")return Wi(l,n);if(t==="help")return Fi(l,n);if(t==="["||t==="test"){let u=n;if(t==="["){if(n[n.length-1]!=="]")return R("[: missing `]'\n",2);u=n.slice(0,-1)}return zn(l,u)}return null}async function Ap(e,t,n){let{ctx:r,runCommand:s}=e;if(t.length===0)return te;let i=!1,a=!1,o=!1,l=t;for(;l.length>0&&l[0].startsWith("-");){let f=l[0];if(f==="--"){l=l.slice(1);break}for(let d of f.slice(1))d==="p"?i=!0:d==="V"?a=!0:d==="v"&&(o=!0);l=l.slice(1)}if(l.length===0)return te;if(o||a)return await jc(r,l,o,a);let[c,...u]=l;return s(c,u,[],n,!0,i,-1)}async function vp(e,t,n){let{runCommand:r}=e;if(t.length===0)return te;let s=t;if(s[0]==="--"&&(s=s.slice(1),s.length===0))return te;let i=s[0];if(i!=="__just_bash_tee_restore"&&!wn.has(i))return R(`bash: builtin: ${i}: not a shell builtin
733
+ `);let[,...a]=s;return r(i,a,[],n,!0,!1,-1)}async function Hc(e,t,n,r,s){let{ctx:i,buildExportedEnv:a,executeUserScript:o}=e,c=await _c(i,t,s?"/usr/bin:/bin":void 0);if(!c)return Hl(t)?R(`bash: ${t}: command not available in browser environments. Exclude '${t}' from your commands or use the Node.js bundle.
734
+ `,127):R(`bash: ${t}: command not found
735
+ `,127);if("error"in c)return c.error==="permission_denied"?R(`bash: ${t}: Permission denied
736
+ `,126):R(`bash: ${t}: No such file or directory
737
+ `,127);if("script"in c)return t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,c.path)),await o(c.path,n,r);let{cmd:u,path:f}=c;t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,f));let d=r||i.state.groupStdin||"",p=a();i.state.fileDescriptors??=new Map;let h={fs:i.fs,fsIdentity:ys(i.fs),cwd:i.state.cwd,env:i.state.env,assignShellVariable:async(b,g,w)=>{if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(b))throw new Error(`${b}: not a valid identifier`);let S=w===void 0?b:`${b}[${w}]`,v=br(i,b,g);if(v===void 0)throw new Error(`${b}: circular name reference`);if(v===null)return;let A=v.match(/^([a-zA-Z_][a-zA-Z0-9_]*)(?:\[(.*)\])?$/);if(!A)throw new Error(`${S}: not a valid identifier`);let x=A[1],P=A[2]??w;if(Ie(i,b)||Ie(i,x))throw new Error(`${x}: readonly variable`);if(P===void 0)i.state.env.set(x,g);else{let D=i.state.associativeArrays?.has(x)?"associative":"indexed";if(D==="associative"){F(i,x,P,g,D);return}let I=await ea(i,x,P);if(I.error)throw new j(I.error.exitCode,I.error.stdout,I.error.stderr);F(i,x,I.index,g,D)}},exportedEnv:p,stdin:d,limits:i.limits,executionScope:u.internalIsExtension?Da(i.executionScope):i.executionScope,exec:(b,g)=>i.execFn(b,g,!1),execWithInheritedStdin:(b,g)=>i.execFn(b,{...g,stdin:d,stdinKind:"bytes"},!0),fetch:i.fetch,getRegisteredCommands:()=>Array.from(i.commands.keys()),sleep:i.sleep,trace:i.trace,fileDescriptors:i.state.fileDescriptors,xpgEcho:i.state.shoptOptions.xpg_echo,coverage:i.coverage,signal:i.state.signal,requireDefenseContext:i.requireDefenseContext,jsBootstrapCode:i.jsBootstrapCode,invokeTool:i.invokeTool},m=bp(h,t),E=Oc(m.context,t);try{let b=()=>ya(i.requireDefenseContext,"command",`${t} execution`,()=>u.execute(n,E)),g=()=>Sp(b,E,m.revoke,t,i.executionScope,i.state.signal);return u.trusted?await ze.runTrustedAsync(g):await g()}catch(b){if(b instanceof $||b instanceof Te||b instanceof en)throw b;return R(`${t}: ${Me(yt(b))}
738
+ `)}}async function na(e,t){let n=e.state.inCondition;e.state.inCondition=!0;let r=new xt(e.executionScope,"condition"),s=0;try{for(let i of t){let a=await e.executeStatement(i);r.appendResult(a),s=a.exitCode}}catch(i){throw r.prependTo(i),i}finally{e.state.inCondition=n}return r.build(s)}function Kn(e,t,n,r){if(e instanceof qe)return t+=e.stdout,n+=e.stderr,e.levels>1&&r>1?(e.levels--,e.stdout=t,e.stderr=n,{action:"rethrow",stdout:t,stderr:n,error:e}):{action:"break",stdout:t,stderr:n};if(e instanceof Ue)return t+=e.stdout,n+=e.stderr,e.levels>1&&r>1?(e.levels--,e.stdout=t,e.stderr=n,{action:"rethrow",stdout:t,stderr:n,error:e}):{action:"continue",stdout:t,stderr:n};if(e instanceof Oe||e instanceof Qe||e instanceof j||e instanceof $)return e.prependOutput(t,n),{action:"rethrow",stdout:t,stderr:n,error:e};let s=yt(e);return{action:"error",stdout:t,stderr:`${n}${s}
739
+ `,exitCode:1}}var Wt=class{ctx;stdoutChunks=[];stderrChunks=[];totalBytes=0;constructor(t){this.ctx=t}append(t,n){let r=T(t)+T(n);r>this.ctx.limits.maxOutputSize-this.totalBytes&&Lt(`total output size exceeded (>${this.ctx.limits.maxOutputSize} bytes), increase executionLimits.maxOutputSize`,"output_size"),t&&this.stdoutChunks.push(t),n&&this.stderrChunks.push(n),this.totalBytes+=r}appendUnaccounted(t,n){this.ctx.executionScope.appendOutput("stdout",t,"control-flow"),this.ctx.executionScope.appendOutput("stderr",n,"control-flow"),this.append(t,n)}replace(t,n){this.stdoutChunks=[],this.stderrChunks=[],this.totalBytes=0,this.append(t,n)}get stdout(){return this.stdoutChunks.join("")}get stderr(){return this.stderrChunks.join("")}build(t){let n=this.stdout,r=this.stderr;return{stdout:n,stderr:r,exitCode:t,internalOutputAccounting:{stdout:T(n),stderr:T(r)}}}};async function ra(e,t,n){let r=0;try{for(let s of t){let i=await e.executeStatement(s);n.append(i.stdout,i.stderr),r=i.exitCode}}catch(s){if(sr(s)||s instanceof Qe||s instanceof j||s instanceof $||s instanceof St)throw s.prependOutput(n.stdout,n.stderr),s;return n.appendUnaccounted("",`${yt(s)}
740
+ `),n.build(1)}return n.build(r)}async function Qc(e,t){let n=new Wt(e);for(let r of t.clauses){let s=await na(e,r.condition);if(n.append(s.stdout,s.stderr),s.exitCode===0)return ra(e,r.body,n)}return t.elseBody?ra(e,t.elseBody,n):n.build(0)}async function Kc(e,t){let n=await ot(e,t.redirections);if(n.error)return n.error;let r=new Wt(e),s=0,i=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t.variable))return R(`bash: \`${t.variable}': not a valid identifier
741
+ `);let a=[];if(t.words===null)a=(e.state.env.get("@")||"").split(" ").filter(Boolean);else if(t.words.length===0)a=[];else try{for(let l of t.words){let c=await at(e,l);Ne(a,c.values,e.limits.maxArrayElements,"for-loop expansion")}}catch(l){if(l instanceof bt)return{stdout:"",stderr:l.stderr,exitCode:1};throw l}e.state.loopDepth++;try{for(let l of a){i++,i>e.limits.maxLoopIterations&&Lt(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r.stdout,r.stderr),e.state.env.set(t.variable,l);try{for(let c of t.body){let u=await e.executeStatement(c);r.append(u.stdout,u.stderr),s=u.exitCode}}catch(c){let u=Kn(c,r.stdout,r.stderr,e.state.loopDepth);if(r.replace(u.stdout,u.stderr),u.action==="break")break;if(u.action==="continue")continue;if(u.action==="error"){let f=r.build(u.exitCode??1);return pe(e,f,t.redirections,n.targets)}throw u.error}}}finally{e.state.loopDepth--}let o=r.build(s);return pe(e,o,t.redirections,n.targets)}async function Xc(e,t){let n=await ot(e,t.redirections);if(n.error)return n.error;let r=t.line;r!==void 0&&(e.state.currentLine=r);let s=new Wt(e),i=0,a=0;t.init&&await Z(e,t.init.expression),e.state.loopDepth++;try{for(;a++,a>e.limits.maxLoopIterations&&Lt(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",s.stdout,s.stderr),!(t.condition&&(r!==void 0&&(e.state.currentLine=r),await Z(e,t.condition.expression)===0));){try{for(let l of t.body){let c=await e.executeStatement(l);s.append(c.stdout,c.stderr),i=c.exitCode}}catch(l){let c=Kn(l,s.stdout,s.stderr,e.state.loopDepth);if(s.replace(c.stdout,c.stderr),c.action==="break")break;if(c.action==="continue"){t.update&&await Z(e,t.update.expression);continue}if(c.action==="error"){let u=s.build(c.exitCode??1);return pe(e,u,t.redirections,n.targets)}throw c.error}t.update&&await Z(e,t.update.expression)}}finally{e.state.loopDepth--}let o=s.build(i);return pe(e,o,t.redirections,n.targets)}async function Yc(e,t,n=""){let r=new Wt(e),s=0,i=0,a=n;for(let l of t.redirections)if((l.operator==="<<"||l.operator==="<<-")&&l.target.type==="HereDoc"){let c=l.target,u=await W(e,c.content);c.stripTabs&&(u=u.split(`
742
+ `).map(f=>f.replace(/^\t+/,"")).join(`
743
+ `)),a=u}else if(l.operator==="<<<"&&l.target.type==="Word")a=`${await W(e,l.target)}
744
+ `;else if(l.operator==="<"&&l.target.type==="Word")try{let c=await W(e,l.target),u=e.fs.resolvePath(e.state.cwd,c);a=await e.fs.readFile(u)}catch{let c=await W(e,l.target);return R(`bash: ${c}: No such file or directory
745
+ `)}let o=e.state.groupStdin;a&&(e.state.groupStdin=a),e.state.loopDepth++;try{for(;;){i++,i>e.limits.maxLoopIterations&&Lt(`while loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r.stdout,r.stderr);let l=0,c=!1,u=!1,f=e.state.inCondition;e.state.inCondition=!0;try{for(let d of t.condition){let p=await e.executeStatement(d);r.append(p.stdout,p.stderr),l=p.exitCode}}catch(d){if(d instanceof qe){if(r.append(d.stdout,d.stderr),d.levels>1&&e.state.loopDepth>1)throw d.levels--,d.stdout=r.stdout,d.stderr=r.stderr,e.state.inCondition=f,d;c=!0}else if(d instanceof Ue){if(r.append(d.stdout,d.stderr),d.levels>1&&e.state.loopDepth>1)throw d.levels--,d.stdout=r.stdout,d.stderr=r.stderr,e.state.inCondition=f,d;u=!0}else throw e.state.inCondition=f,d}finally{e.state.inCondition=f}if(c)break;if(!u){if(l!==0)break;try{for(let d of t.body){let p=await e.executeStatement(d);r.append(p.stdout,p.stderr),s=p.exitCode}}catch(d){let p=Kn(d,r.stdout,r.stderr,e.state.loopDepth);if(r.replace(p.stdout,p.stderr),p.action==="break")break;if(p.action==="continue")continue;if(p.action==="error")return r.build(p.exitCode??1);throw p.error}}}}finally{e.state.loopDepth--,e.state.groupStdin=o}return r.build(s)}async function Jc(e,t){let n=new Wt(e),r=0,s=0;e.state.loopDepth++;try{for(;;){s++,s>e.limits.maxLoopIterations&&Lt(`until loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n.stdout,n.stderr);let i=await na(e,t.condition);if(n.append(i.stdout,i.stderr),i.exitCode===0)break;try{for(let a of t.body){let o=await e.executeStatement(a);n.append(o.stdout,o.stderr),r=o.exitCode}}catch(a){let o=Kn(a,n.stdout,n.stderr,e.state.loopDepth);if(n.replace(o.stdout,o.stderr),o.action==="break")break;if(o.action==="continue")continue;if(o.action==="error")return n.build(o.exitCode??1);throw o.error}}}finally{e.state.loopDepth--}return n.build(r)}async function eu(e,t){let n=await ot(e,t.redirections);if(n.error)return n.error;let r=new Wt(e),s=0,i=await W(e,t.word),a=!1;for(let l=0;l<t.items.length;l++){let c=t.items[l],u=a;if(!a)for(let f of c.patterns){let d=await W(e,f);Bl(f)&&(d=Ze(d));let p=e.state.shoptOptions.nocasematch,h=e.state.shoptOptions.extglob;if(gn(i,d,p,h,e.limits.maxCallDepth)){u=!0;break}}if(u){let f=await ra(e,c.body,r);if(r.replace(f.stdout,f.stderr),s=f.exitCode,c.terminator===";;")break;c.terminator===";&"?a=!0:a=!1}else a=!1}let o=r.build(s);return pe(e,o,t.redirections,n.targets)}function sa(e,t){if(e.parts.length!==1)return!1;let n=e.parts[0];return n.type!=="Literal"?!1:t.includes(n.value)}function tu(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),n=t.indexOf(":");if(n===-1)return null;let r=Number.parseInt(t.slice(0,n),10);if(Number.isNaN(r)||r<0)return null;let s=n+1,i=t.slice(s,s+r),a=s+r+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}async function nu(e,t,n){let r=t.timed?ps():0,s="",i=te,a=0,o=[],l="",c=0,u=t.commands.length>1,f=e.state.lastArg;for(let E=0;E<t.commands.length;E++){let b=t.commands[E],g=E===t.commands.length-1,w=E===0;u&&(e.state.lastArg="",w||(e.state.groupStdin=void 0));let S=u&&(!g||!e.state.shoptOptions.lastpipe),v=S?new Map(e.state.env):null,A=S?ct(e.state.arrays):null,x,P=e.executionScope.outputBytesUsed;try{e.state.commandCount=e.executionScope.chargeCommand(),x=await n(b,s)}catch(D){if(D instanceof je)x={stdout:D.stdout,stderr:D.stderr,exitCode:1};else if(D instanceof j&&t.commands.length>1)x={stdout:D.stdout,stderr:D.stderr,exitCode:D.exitCode};else if(D instanceof Qe&&t.commands.length>1)x={stdout:D.stdout,stderr:D.stderr,exitCode:D.exitCode};else throw v&&(e.state.env=v,e.state.arrays=A??new Map),D}if(v&&(e.state.env=v,e.state.arrays=A??new Map),x=e.executionScope.accountResult(x,"pipeline",e.executionScope.outputBytesUsed-P),!g){let D=t.pipeStderr?.[E]??!1,I=x.internalOutputAccounting?.stdout??0,O=D?x.internalOutputAccounting?.stderr??0:0;Ra(e.executionScope,I+O,"pipeline"),x={...x,internalOutputAccounting:{stdout:0,stderr:D?0:x.internalOutputAccounting?.stderr??0}}}o.push(x.exitCode),x.exitCode!==0&&(a=x.exitCode),g?i=x:(t.pipeStderr?.[E]??!1?s=qt(x.stderr)+us(x):(s=us(x),l+=x.stderr,c+=x.internalOutputAccounting?.stderr??0),i={stdout:"",stderr:"",exitCode:x.exitCode})}l&&(i={...i,stderr:l+i.stderr,internalOutputAccounting:{stdout:i.internalOutputAccounting?.stdout??0,stderr:c+(i.internalOutputAccounting?.stderr??0)}});let d=t.commands.length>1||t.commands.length===1&&t.commands[0].type==="SimpleCommand",p=i.internalPipeStatusOverride??o;if(d){me(e,"PIPESTATUS");for(let E=0;E<p.length;E++)F(e,"PIPESTATUS",E,String(p[E]))}if(e.state.options.pipefail&&a!==0&&(i={...i,exitCode:a}),t.negated&&(i={...i,exitCode:i.exitCode===0?1:0}),t.timed){let b=(ps()-r)/1e3,g=Math.floor(b/60),w=b%60,S;t.timePosix?S=`real ${b.toFixed(2)}
714
746
  user 0.00
715
747
  sys 0.00
716
- `:y=`
717
- real ${`${p}m${m.toFixed(3)}s`}
748
+ `:S=`
749
+ real ${`${g}m${w.toFixed(3)}s`}
718
750
  user 0m0.000s
719
751
  sys 0m0.000s
720
- `,i={...i,stderr:i.stderr+y}}return u&&!e.state.shoptOptions.lastpipe&&(e.state.lastArg=c),i}async function zl(e,t){let s=new Map,r="";for(let n of t.assignments){let i=n.name;if(n.array){let c=await Xf(e,t,i,n.array,n.append,s);if(c.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:c.error};if(r+=c.xtraceOutput,c.continueToNext)continue}let a=n.value?await W(e,n.value):"";if(i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:P("",`bash: ${i}: bad array subscript
721
- `,1)};let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let c=await sd(e,t,o[1],o[2],a,n.append,s);if(c.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:c.error};if(c.continueToNext)continue}let u=await rd(e,t,i,a,n.append,s);if(u.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:u.error};r+=u.xtraceOutput,u.continueToNext}return{continueToNext:!1,xtraceOutput:r,tempAssignments:s}}async function Xf(e,t,s,r,n,i){let a="";if(/\[.+\]$/.test(s))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: cannot assign list to array member
722
- `,1)};if(ee(e,s)){let c=Nt(e,s);if(c===void 0||c==="")throw new j(1,"","");let f=ve(e,s);if(f&&/^[a-zA-Z_][a-zA-Z0-9_]*\[@\]$/.test(f))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: cannot assign list to array member
723
- `,1)}}if(Je(e,s)){if(t.name)return a+=`bash: ${s}: readonly variable
724
- `,{continueToNext:!0,xtraceOutput:a};let c=me(e,s);if(c)return{continueToNext:!1,xtraceOutput:"",error:c}}let l=e.state.associativeArrays?.has(s),o=Yf(r),u=()=>{let c=`${s}_`;for(let f of e.state.env.keys())f.startsWith(c)&&!f.includes("__")&&e.state.env.delete(f);e.state.env.delete(s)};if(l&&o?await Jf(e,t,s,r,n,u,c=>{a+=c}):o?await ed(e,s,r,n,u):await td(e,s,r,n,u),t.name){i.set(s,e.state.env.get(s));let f=`(${r.map(d=>Mt(d)).join(" ")})`;e.state.env.set(s,f)}return{continueToNext:!0,xtraceOutput:a}}function Yf(e){return e.some(t=>{if(t.parts.length>=2){let s=t.parts[0],r=t.parts[1];if(s.type!=="Glob"||!s.pattern.startsWith("["))return!1;if(s.pattern==="["&&(r.type==="DoubleQuoted"||r.type==="SingleQuoted")){if(t.parts.length<3)return!1;let n=t.parts[2];return n.type!=="Literal"?!1:n.value.startsWith("]=")||n.value.startsWith("]+=")}return r.type!=="Literal"?!1:r.value.startsWith("]")?r.value.startsWith("]=")||r.value.startsWith("]+="):s.pattern.endsWith("]")?r.value.startsWith("=")||r.value.startsWith("+="):!1}return!1})}async function Jf(e,t,s,r,n,i,a){let l=[];for(let o of r){let u=sr(o);if(u){let{key:c,valueParts:f,append:d}=u,h;f.length>0?h=await W(e,{type:"Word",parts:f}):h="",h=ue(e,h),l.push({type:"keyed",key:c,value:h,append:d})}else{let c=await W(e,o);l.push({type:"invalid",expandedValue:c})}}n||i();for(let o of l)if(o.type==="keyed")if(o.append){let u=e.state.env.get(`${s}_${o.key}`)??"";e.state.env.set(`${s}_${o.key}`,u+o.value)}else e.state.env.set(`${s}_${o.key}`,o.value);else{let u=t.line??e.state.currentLine??1;a(`bash: line ${u}: ${s}: ${o.expandedValue}: must use subscript when assigning associative array
725
- `)}}async function ed(e,t,s,r,n){let i=[];for(let l of s){let o=sr(l);if(o){let{key:u,valueParts:c,append:f}=o,d;c.length>0?d=await W(e,{type:"Word",parts:c}):d="",d=ue(e,d),i.push({type:"keyed",indexExpr:u,value:d,append:f})}else{let u=await et(e,l);i.push({type:"non-keyed",values:u.values})}}r||n();let a=0;for(let l of i)if(l.type==="keyed"){let o;try{let u=new V,c=X(u,l.indexExpr);o=await L(e,c.expression,!1)}catch{if(/^-?\d+$/.test(l.indexExpr))o=Number.parseInt(l.indexExpr,10);else{let u=e.state.env.get(l.indexExpr);o=u?Number.parseInt(u,10):0,Number.isNaN(o)&&(o=0)}}if(l.append){let u=e.state.env.get(`${t}_${o}`)??"";e.state.env.set(`${t}_${o}`,u+l.value)}else e.state.env.set(`${t}_${o}`,l.value);a=o+1}else for(let o of l.values)e.state.env.set(`${t}_${a++}`,o)}async function td(e,t,s,r,n){let i=[];for(let l of s){let o=await et(e,l);i.push(...o.values)}let a=0;if(r){let l=F(e,t);if(l.length>0)a=Math.max(...l.map(([u])=>typeof u=="number"?u:0))+1;else{let o=e.state.env.get(t);o!==void 0&&(e.state.env.set(`${t}_0`,o),e.state.env.delete(t),a=1)}}else n();for(let l=0;l<i.length;l++)e.state.env.set(`${t}_${a+l}`,i[l]);r||e.state.env.set(`${t}__length`,String(i.length))}async function sd(e,t,s,r,n,i,a){let l=s;if(ee(e,s)){let f=ve(e,s);if(f&&f!==s){if(f.includes("["))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: \`${f}': not a valid identifier
726
- `,1)};l=f}}if(Je(e,l)){if(t.name)return{continueToNext:!0,xtraceOutput:""};let f=me(e,l);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let o=e.state.associativeArrays?.has(l),u;if(o)u=await Bl(e,l,r);else{let f=await nd(e,l,r);if(f.error)return{continueToNext:!1,xtraceOutput:"",error:f.error};u=`${l}_${f.index}`}let c=i?(e.state.env.get(u)||"")+n:n;if(t.name)a.set(u,e.state.env.get(u)),e.state.env.set(u,c);else{let f=Bt(e,l);if(f!==void 0&&f===e.state.callDepth&&e.state.localScopes.length>0){let d=e.state.localScopes[e.state.localScopes.length-1];d.has(u)||d.set(u,e.state.env.get(u))}e.state.env.set(u,c)}return{continueToNext:!0,xtraceOutput:""}}async function Bl(e,t,s){let r;if(s.startsWith("'")&&s.endsWith("'"))r=s.slice(1,-1);else if(s.startsWith('"')&&s.endsWith('"')){let n=s.slice(1,-1),a=new V().parseWordFromString(n,!0,!1);r=await W(e,a)}else if(s.includes("$")){let i=new V().parseWordFromString(s,!1,!1);r=await W(e,i)}else r=s;return`${t}_${r}`}async function nd(e,t,s){let r=s;s.startsWith('"')&&s.endsWith('"')&&s.length>=2&&(r=s.slice(1,-1));let n;if(/^-?\d+$/.test(r))n=Number.parseInt(r,10);else{try{let i=new V,a=X(i,r);n=await L(e,a.expression,!1)}catch(i){if(i instanceof te){let o=`bash: line ${e.state.currentLine}: ${s}: ${i.message}
727
- `;if(i.fatal)throw new j(1,"",o);return{index:0,error:P("",o,1)}}let a=e.state.env.get(s);n=a?Number.parseInt(a,10):0}Number.isNaN(n)&&(n=0)}if(n<0){let i=F(e,t);if(i.length===0){let l=e.state.currentLine;return{index:0,error:P("",`bash: line ${l}: ${t}[${s}]: bad array subscript
728
- `,1)}}if(n=Math.max(...i.map(([l])=>typeof l=="number"?l:0))+1+n,n<0){let l=e.state.currentLine;return{index:0,error:P("",`bash: line ${l}: ${t}[${s}]: bad array subscript
729
- `,1)}}}return{index:n}}async function rd(e,t,s,r,n,i){let a="",l=s,o=null;if(ee(e,s)){let f=Aa(e,s,r);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: circular name reference
730
- `,1)};if(f===null)return{continueToNext:!0,xtraceOutput:""};l=f;let d=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);d&&(o={arrayName:d[1],subscriptExpr:d[2]},l=d[1])}if(Je(e,l)){if(t.name)return a+=`bash: ${l}: readonly variable
731
- `,{continueToNext:!0,xtraceOutput:a};let f=me(e,l);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let u;if(ls(e,l))try{let f=new V;if(n){let h=`(${e.state.env.get(l)||"0"}) + (${r})`,p=X(f,h);u=String(await L(e,p.expression))}else{let d=X(f,r);u=String(await L(e,d.expression))}}catch{u="0"}else{let f=Ue(e,l)?`${l}_0`:l;u=n?(e.state.env.get(f)||"")+r:r}u=Zt(e,l,u),a+=await Ml(e,l,u);let c=l;return o?c=await id(e,o):Ue(e,l)&&(c=`${l}_0`),t.name?(i.set(c,e.state.env.get(c)),e.state.env.set(c,u)):(e.state.env.set(c,u),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(l)),e.state.tempEnvBindings?.some(f=>f.has(l))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(l))),{continueToNext:!1,xtraceOutput:a}}async function id(e,t){let{arrayName:s,subscriptExpr:r}=t;if(e.state.associativeArrays?.has(s))return Bl(e,s,r);let i;if(/^-?\d+$/.test(r))i=Number.parseInt(r,10);else{try{let a=new V,l=X(a,r);i=await L(e,l.expression,!1)}catch{let a=e.state.env.get(r);i=a?Number.parseInt(a,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let a=F(e,s);a.length>0&&(i=Math.max(...a.map(o=>o[0]))+1+i)}return`${s}_${i}`}async function ql(e,t,s,r){let n=await nt(e,t.redirections);if(n)return n;let i=new Map(e.state.env),a=e.state.cwd,l={...e.state.options},o=new Map(e.state.functions),u=e.state.localScopes,c=e.state.localVarStack,f=e.state.localVarDepth,d=e.state.fullyUnsetLocals;if(e.state.localScopes=u.map($=>new Map($)),c){e.state.localVarStack=new Map;for(let[$,x]of c.entries())e.state.localVarStack.set($,x.map(I=>({...I})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,p=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let m=e.state.lastArg,y=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let b=e.state.groupStdin;s&&(e.state.groupStdin=s);let v="",E="",w=0,S=()=>{e.state.env=i,e.state.cwd=a,e.state.options=l,e.state.functions=o,e.state.localScopes=u,e.state.localVarStack=c,e.state.localVarDepth=f,e.state.fullyUnsetLocals=d,e.state.loopDepth=h,e.state.parentHasLoopContext=p,e.state.groupStdin=b,e.state.bashPid=y,e.state.lastArg=m};try{for(let $ of t.body){let x=await r($);v+=x.stdout,E+=x.stderr,w=x.exitCode}}catch($){if(S(),$ instanceof Q)throw $;if($ instanceof ut){v+=$.stdout,E+=$.stderr;let I=P(v,E,0);return le(e,I,t.redirections)}if($ instanceof De||$ instanceof Ie){v+=$.stdout,E+=$.stderr;let I=P(v,E,0);return le(e,I,t.redirections)}if($ instanceof j){v+=$.stdout,E+=$.stderr;let I=P(v,E,$.exitCode);return le(e,I,t.redirections)}if($ instanceof $e){v+=$.stdout,E+=$.stderr;let I=P(v,E,$.exitCode);return le(e,I,t.redirections)}if($ instanceof We){let I=P(v+$.stdout,E+$.stderr,$.exitCode);return le(e,I,t.redirections)}let x=P(v,`${E}${it($)}
732
- `,1);return le(e,x,t.redirections)}S();let A=P(v,E,w);return le(e,A,t.redirections)}async function jl(e,t,s,r){let n="",i="",a=0,l=await rn(e,t.redirections);if(l)return l;let o=s;for(let f of t.redirections)if((f.operator==="<<"||f.operator==="<<-")&&f.target.type==="HereDoc"){let d=f.target,h=await W(e,d.content);d.stripTabs&&(h=h.split(`
752
+ `,i={...i,stderr:i.stderr+S}}u&&!e.state.shoptOptions.lastpipe&&(e.state.lastArg=f),i=e.executionScope.accountResult(i,"pipeline");let{internalPipeStatusOverride:h,...m}=i;return m}function ia(e){return e?{...e,options:e.options?[...e.options]:void 0,actions:e.actions?[...e.actions]:void 0}:void 0}function xp(e){return e?new Map(Array.from(e,([t,n])=>[t,ia(n)])):void 0}function $p(e){return e?.map(t=>new Map(Array.from(t,([n,r])=>[n,r?{kind:r.kind,elements:new Map(r.elements)}:void 0])))}function kp(e){return e?new Map(Array.from(e,([t,n])=>[t,n.map(r=>({...r}))])):void 0}function aa(e){let t={env:e.env,arrays:e.arrays,cwd:e.cwd,previousDir:e.previousDir,lastExitCode:e.lastExitCode,lastArg:e.lastArg,currentLine:e.currentLine,options:e.options,shoptOptions:e.shoptOptions,fileDescriptors:e.fileDescriptors,nextFd:e.nextFd,readonlyVars:e.readonlyVars,associativeArrays:e.associativeArrays,namerefs:e.namerefs,boundNamerefs:e.boundNamerefs,invalidNamerefs:e.invalidNamerefs,integerVars:e.integerVars,lowercaseVars:e.lowercaseVars,uppercaseVars:e.uppercaseVars,exportedVars:e.exportedVars,tempExportedVars:e.tempExportedVars,localExportedVars:e.localExportedVars,declaredVars:e.declaredVars,localScopes:e.localScopes,localArrayScopes:e.localArrayScopes,localVarDepth:e.localVarDepth,localVarStack:e.localVarStack,fullyUnsetLocals:e.fullyUnsetLocals,tempEnvBindings:e.tempEnvBindings,mutatedTempEnvVars:e.mutatedTempEnvVars,accessedTempEnvVars:e.accessedTempEnvVars,functions:e.functions,callDepth:e.callDepth,sourceDepth:e.sourceDepth,callLineStack:e.callLineStack,funcNameStack:e.funcNameStack,sourceStack:e.sourceStack,currentSource:e.currentSource,inCondition:e.inCondition,loopDepth:e.loopDepth,parentHasLoopContext:e.parentHasLoopContext,errexitSafe:e.errexitSafe,directoryStack:e.directoryStack,hashTable:e.hashTable,completionSpecs:e.completionSpecs,defaultCompletionSpec:e.defaultCompletionSpec,emptyCompletionSpec:e.emptyCompletionSpec,groupStdin:e.groupStdin,bashPid:e.bashPid,expansionExitCode:e.expansionExitCode,expansionStderr:e.expansionStderr};e.env=new Map(e.env),e.arrays=ct(e.arrays),e.options={...e.options},e.shoptOptions={...e.shoptOptions},e.fileDescriptors=e.fileDescriptors?new Map(e.fileDescriptors):void 0,e.readonlyVars=new Set(e.readonlyVars),e.associativeArrays=new Set(e.associativeArrays),e.namerefs=new Set(e.namerefs),e.boundNamerefs=new Set(e.boundNamerefs),e.invalidNamerefs=new Set(e.invalidNamerefs),e.integerVars=new Set(e.integerVars),e.lowercaseVars=new Set(e.lowercaseVars),e.uppercaseVars=new Set(e.uppercaseVars),e.exportedVars=new Set(e.exportedVars),e.tempExportedVars=new Set(e.tempExportedVars),e.localExportedVars=e.localExportedVars?.map(r=>new Set(r)),e.declaredVars=new Set(e.declaredVars),e.localScopes=e.localScopes.map(r=>new Map(r)),e.localArrayScopes=$p(e.localArrayScopes),e.localVarDepth=e.localVarDepth?new Map(e.localVarDepth):void 0,e.localVarStack=kp(e.localVarStack),e.fullyUnsetLocals=e.fullyUnsetLocals?new Map(e.fullyUnsetLocals):void 0,e.tempEnvBindings=e.tempEnvBindings?.map(r=>new Map(r)),e.mutatedTempEnvVars=e.mutatedTempEnvVars?new Set(e.mutatedTempEnvVars):void 0,e.accessedTempEnvVars=e.accessedTempEnvVars?new Set(e.accessedTempEnvVars):void 0,e.functions=new Map(e.functions),e.callLineStack=e.callLineStack?[...e.callLineStack]:void 0,e.funcNameStack=e.funcNameStack?[...e.funcNameStack]:void 0,e.sourceStack=e.sourceStack?[...e.sourceStack]:void 0,e.directoryStack=e.directoryStack?[...e.directoryStack]:void 0,e.hashTable=e.hashTable?new Map(e.hashTable):void 0,e.completionSpecs=xp(e.completionSpecs),e.defaultCompletionSpec=ia(e.defaultCompletionSpec),e.emptyCompletionSpec=ia(e.emptyCompletionSpec);let n=!1;return()=>{n||(n=!0,Object.assign(e,t))}}async function ru(e,t,n,r){let s=await ot(e,t.redirections);if(s.error)return s.error;let i=e.state.loopDepth,a=aa(e.state);e.state.parentHasLoopContext=i>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,n&&(e.state.groupStdin=n);let o=new xt(e.executionScope,"subshell"),l=0;try{for(let u of t.body){let f=await r(u);o.appendResult(f),l=f.exitCode}}catch(u){if(a(),u instanceof $)throw o.prependTo(u),u;if(u instanceof St){o.append("stdout",u.stdout,u.internalOutputAccounting.stdout),o.append("stderr",u.stderr,u.internalOutputAccounting.stderr);let d=o.build(0);return pe(e,d,t.redirections,s.targets)}if(u instanceof qe||u instanceof Ue){o.append("stdout",u.stdout,u.internalOutputAccounting.stdout),o.append("stderr",u.stderr,u.internalOutputAccounting.stderr);let d=o.build(0);return pe(e,d,t.redirections,s.targets)}if(u instanceof j){o.append("stdout",u.stdout,u.internalOutputAccounting.stdout),o.append("stderr",u.stderr,u.internalOutputAccounting.stderr);let d=o.build(u.exitCode);return pe(e,d,t.redirections,s.targets)}if(u instanceof Oe){o.append("stdout",u.stdout,u.internalOutputAccounting.stdout),o.append("stderr",u.stderr,u.internalOutputAccounting.stderr);let d=o.build(u.exitCode);return pe(e,d,t.redirections,s.targets)}if(u instanceof Qe){o.append("stdout",u.stdout,u.internalOutputAccounting.stdout),o.append("stderr",u.stderr,u.internalOutputAccounting.stderr);let d=o.build(u.exitCode);return pe(e,d,t.redirections,s.targets)}o.append("stderr",`${yt(u)}
753
+ `);let f=o.build(1);return pe(e,f,t.redirections,s.targets)}a();let c=o.build(l);return pe(e,c,t.redirections,s.targets)}async function su(e,t,n,r){let s=new xt(e.executionScope,"group"),i=0,a=await ot(e,t.redirections);if(a.error)return a.error;let o=await Hr(e,t.redirections,a.targets);if(o)return o;let l=n;for(let f of t.redirections)if((f.operator==="<<"||f.operator==="<<-")&&f.target.type==="HereDoc"){let d=f.target,p=await W(e,d.content);d.stripTabs&&(p=p.split(`
733
754
  `).map(m=>m.replace(/^\t+/,"")).join(`
734
- `));let p=f.fd??0;p!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),be(e),e.state.fileDescriptors.set(p,h)):o=h}else if(f.operator==="<<<"&&f.target.type==="Word")o=`${await W(e,f.target)}
735
- `;else if(f.operator==="<"&&f.target.type==="Word")try{let d=await W(e,f.target),h=e.fs.resolvePath(e.state.cwd,d);o=await e.fs.readFile(h)}catch{let d=await W(e,f.target);return P("",`bash: ${d}: No such file or directory
736
- `,1)}let u=e.state.groupStdin;o&&(e.state.groupStdin=o);try{for(let f of t.body){let d=await r(f);n+=d.stdout,i+=d.stderr,a=d.exitCode}}catch(f){if(e.state.groupStdin=u,f instanceof Q)throw f;if(bs(f)||f instanceof We||f instanceof j)throw f.prependOutput(n,i),f;return P(n,`${i}${it(f)}
737
- `,1)}e.state.groupStdin=u;let c=P(n,i,a);return le(e,c,t.redirections)}async function Ul(e,t,s,r,n){let i;try{i=await e.fs.readFile(t)}catch{return _(`bash: ${t}: No such file or directory
738
- `,127)}if(i.startsWith("#!")){let y=i.indexOf(`
739
- `);y!==-1&&(i=i.slice(y+1))}let a=new Map(e.state.env),l=e.state.cwd,o={...e.state.options},u=e.state.loopDepth,c=e.state.parentHasLoopContext,f=e.state.lastArg,d=e.state.bashPid,h=e.state.groupStdin,p=e.state.currentSource;e.state.parentHasLoopContext=u>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,r&&(e.state.groupStdin=r),e.state.currentSource=t,e.state.env.set("0",t),e.state.env.set("#",String(s.length)),e.state.env.set("@",s.join(" ")),e.state.env.set("*",s.join(" "));for(let y=0;y<s.length&&y<9;y++)e.state.env.set(String(y+1),s[y]);for(let y=s.length+1;y<=9;y++)e.state.env.delete(String(y));let m=()=>{e.state.env=a,e.state.cwd=l,e.state.options=o,e.state.loopDepth=u,e.state.parentHasLoopContext=c,e.state.lastArg=f,e.state.bashPid=d,e.state.groupStdin=h,e.state.currentSource=p};try{let b=new V().parse(i),v=await n(b);return m(),v}catch(y){if(m(),y instanceof j||y instanceof Q)throw y;if(y.name==="ParseException")return _(`bash: ${t}: ${y.message}
740
- `);throw y}}var hs=class{ctx;constructor(t,s){this.ctx={state:s,fs:t.fs,commands:t.commands,limits:t.limits,execFn:t.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:t.fetch,sleep:t.sleep,trace:t.trace,coverage:t.coverage,requireDefenseContext:t.requireDefenseContext??!1,jsBootstrapCode:t.jsBootstrapCode,invokeTool:t.invokeTool}}assertDefenseContext(t){if(!this.ctx.requireDefenseContext||Be.isInSandboxedContext())return;let s=`interpreter ${t} attempted outside defense context`;throw new It(s,{timestamp:Date.now(),type:"missing_defense_context",message:s,path:"DefenseInDepthBox.context",stack:new Error().stack,executionId:Be.getCurrentExecutionId()})}buildExportedEnv(){let t=this.ctx.state.exportedVars,s=this.ctx.state.tempExportedVars,r=new Set;if(t)for(let i of t)r.add(i);if(s)for(let i of s)r.add(i);if(r.size===0)return Object.create(null);let n=Object.create(null);for(let i of r){let a=this.ctx.state.env.get(i);a!==void 0&&(n[i]=a)}return n}async executeScript(t){this.assertDefenseContext("execution");let s="",r="",n=0,i=this.ctx.limits.maxOutputSize,a=(l,o)=>{s.length+r.length+l.length+o.length>i&&tt(`total output size exceeded (>${i} bytes), increase executionLimits.maxOutputSize`,"output_size"),s+=l,r+=o};for(let l of t.statements)try{let o=await this.executeStatement(l);a(bn(o),o.stderr),n=o.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n))}catch(o){if(o instanceof j)throw o.prependOutput(s,r),o;if(o instanceof Me)return a(o.stdout,o.stderr),n=o.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:ft(this.ctx.state.env)};if(o instanceof Q)throw o;if(o instanceof We)return a(o.stdout,o.stderr),n=o.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:ft(this.ctx.state.env)};if(o instanceof Ce)return a(o.stdout,o.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:ft(this.ctx.state.env)};if(o instanceof xe)return a(o.stdout,o.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:ft(this.ctx.state.env)};if(o instanceof te){a(o.stdout,o.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(o instanceof ws){a(o.stdout,o.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(o instanceof De||o instanceof Ie){if(this.ctx.state.loopDepth>0)throw o.prependOutput(s,r),o;a(o.stdout,o.stderr);continue}throw o instanceof $e&&o.prependOutput(s,r),o}return{stdout:s,stderr:r,exitCode:n,env:ft(this.ctx.state.env)}}async executeUserScript(t,s,r=""){return Ul(this.ctx,t,s,r,n=>this.executeScript(n))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Es;if(this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&tt(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands"),t.deferredError)throw new ye(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return G;this.ctx.state.errexitSafe=!1;let s="",r="";this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&(r+=`${t.sourceText}
741
- `);let n=0,i=-1,a=!1;for(let u=0;u<t.pipelines.length;u++){let c=t.pipelines[u],f=u>0?t.operators[u-1]:null;if(f==="&&"&&n!==0||f==="||"&&n===0)continue;let d=await this.executePipeline(c);s+=bn(d),r+=d.stderr,n=d.exitCode,i=u,a=c.negated,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n))}let l=i<t.pipelines.length-1,o=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=l||a||o,this.ctx.state.options.errexit&&n!==0&&i===t.pipelines.length-1&&!a&&!this.ctx.state.inCondition&&!o)throw new We(n,s,r);return P(s,r,n)}async executePipeline(t){return Vl(this.ctx,t,(s,r)=>this.executeCommand(s,r))}async executeCommand(t,s){switch(this.assertDefenseContext("command"),this.ctx.coverage?.hit(`bash:cmd:${t.type}`),t.type){case"SimpleCommand":return this.executeSimpleCommand(t,s);case"If":return Pl(this.ctx,t);case"For":return Dl(this.ctx,t);case"CStyleFor":return Il(this.ctx,t);case"While":return Cl(this.ctx,t,s);case"Until":return xl(this.ctx,t);case"Case":return Rl(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Qo(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return G}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(r){if(r instanceof ct)return _(r.stderr);throw r}}async executeSimpleCommandInner(t,s){if(t.line!==void 0&&(this.ctx.state.currentLine=t.line),this.ctx.state.shoptOptions.expand_aliases&&t.name){let w=t,S=100;for(;S>0;){let A=this.expandAlias(w);if(A===w)break;w=A,S--}this.aliasExpansionStack.clear(),w!==t&&(t=w)}this.ctx.state.expansionStderr="";let r=await zl(this.ctx,t);if(r.error)return r.error;let n=r.tempAssignments,i=r.xtraceOutput;if(!t.name){if(t.redirections.length>0){let S=await nt(this.ctx,t.redirections);if(S)return S;let A=P("",i,0);return le(this.ctx,A,t.redirections)}this.ctx.state.lastArg="";let w=(this.ctx.state.expansionStderr||"")+i;return this.ctx.state.expansionStderr="",P("",w,this.ctx.state.lastExitCode)}let a=t.name&&ii(t.name,["local","declare","typeset","export","readonly"]),l=Array.from(n.keys());if(l.length>0&&!a){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let w of l)this.ctx.state.tempExportedVars.add(w)}let o=await rn(this.ctx,t.redirections);if(o){for(let[w,S]of n)S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S);return o}let u=-1;for(let w of t.redirections){if((w.operator==="<<"||w.operator==="<<-")&&w.target.type==="HereDoc"){let S=w.target,A=await W(this.ctx,S.content);S.stripTabs&&(A=A.split(`
742
- `).map(x=>x.replace(/^\t+/,"")).join(`
743
- `)),A=St(A);let $=w.fd??0;$!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),be(this.ctx),this.ctx.state.fileDescriptors.set($,A)):s=A;continue}if(w.operator==="<<<"&&w.target.type==="Word"){s=St(`${await W(this.ctx,w.target)}
744
- `);continue}if(w.operator==="<"&&w.target.type==="Word")try{let S=await W(this.ctx,w.target),A=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);s=await hi(this.ctx.fs,A)}catch{let S=await W(this.ctx,w.target);for(let[A,$]of n)$===void 0?this.ctx.state.env.delete(A):this.ctx.state.env.set(A,$);return _(`bash: ${S}: No such file or directory
745
- `)}if(w.operator==="<&"&&w.target.type==="Word"){let S=await W(this.ctx,w.target),A=Number.parseInt(S,10);if(!Number.isNaN(A)&&this.ctx.state.fileDescriptors){let $=this.ctx.state.fileDescriptors.get(A);if($!==void 0)if($.startsWith("__rw__:")){let x=Ol($);x&&(s=x.content.slice(x.position),u=A)}else $.startsWith("__file__:")||$.startsWith("__file_append__:")||(s=$)}}}let c=await W(this.ctx,t.name),f=[],d=[];if(ii(t.name,["local","declare","typeset","export","readonly"])&&(c==="local"||c==="declare"||c==="typeset"||c==="export"||c==="readonly"))for(let w of t.args){let S=await xo(this.ctx,w);if(S)f.push(S),d.push(!0);else{let A=await Ro(this.ctx,w);if(A!==null)f.push(A),d.push(!0);else{let $=await et(this.ctx,w);for(let x of $.values)f.push(x),d.push($.quoted)}}}else for(let w of t.args){let S=await et(this.ctx,w);for(let A of S.values)f.push(A),d.push(S.quoted)}if(!c){if(t.name.parts.every(S=>S.type==="CommandSubstitution"||S.type==="ParameterExpansion"||S.type==="ArithmeticExpansion")){if(f.length>0){let S=f.shift();return d.shift(),await this.runCommand(S,f,d,s,!1,!1,u)}return P("","",this.ctx.state.lastExitCode)}return _(`bash: : command not found
746
- `,127)}if(c==="exec"&&(f.length===0||f[0]==="--")){for(let w of t.redirections){if(w.target.type==="HereDoc"||w.fdVariable)continue;let S=await W(this.ctx,w.target),A=w.fd??(w.operator==="<"||w.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),w.operator){case">":case">|":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);await this.ctx.fs.writeFile($,"","utf8"),be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__file__:${$}`);break}case">>":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__file_append__:${$}`);break}case"<":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let x=await this.ctx.fs.readFile($);be(this.ctx),this.ctx.state.fileDescriptors.set(A,x)}catch{return _(`bash: ${S}: No such file or directory
747
- `)}break}case"<>":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let x=await this.ctx.fs.readFile($);be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__rw__:${$.length}:${$}:0:${x}`)}catch{await this.ctx.fs.writeFile($,"","utf8"),be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__rw__:${$.length}:${$}:0:`)}break}case">&":{if(S==="-")this.ctx.state.fileDescriptors.delete(A);else if(S.endsWith("-")){let $=S.slice(0,-1),x=Number.parseInt($,10);if(!Number.isNaN(x)){let I=this.ctx.state.fileDescriptors.get(x);I!==void 0?this.ctx.state.fileDescriptors.set(A,I):this.ctx.state.fileDescriptors.set(A,`__dupout__:${x}`),this.ctx.state.fileDescriptors.delete(x)}}else{let $=Number.parseInt(S,10);Number.isNaN($)||(be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__dupout__:${$}`))}break}case"<&":{if(S==="-")this.ctx.state.fileDescriptors.delete(A);else if(S.endsWith("-")){let $=S.slice(0,-1),x=Number.parseInt($,10);if(!Number.isNaN(x)){let I=this.ctx.state.fileDescriptors.get(x);I!==void 0?this.ctx.state.fileDescriptors.set(A,I):this.ctx.state.fileDescriptors.set(A,`__dupin__:${x}`),this.ctx.state.fileDescriptors.delete(x)}}else{let $=Number.parseInt(S,10);Number.isNaN($)||(be(this.ctx),this.ctx.state.fileDescriptors.set(A,`__dupin__:${$}`))}break}}}for(let[w,S]of n)S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S);if(this.ctx.state.tempExportedVars)for(let w of n.keys())this.ctx.state.tempExportedVars.delete(w);return G}if(this.ctx.state.extraArgs){f.push(...this.ctx.state.extraArgs);for(let w=0;w<this.ctx.state.extraArgs.length;w++)d.push(!0);this.ctx.state.extraArgs=void 0}let p=await Wl(this.ctx,c,f);n.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(n)));let m,y=null;try{m=await this.runCommand(c,f,d,s,!1,!1,u)}catch(w){if(w instanceof De||w instanceof Ie)y=w,m=G;else throw w}let b=i+p;if(b&&(m={...m,stderr:b+m.stderr}),m=await le(this.ctx,m,t.redirections),y)throw y;if(f.length>0){let w=f[f.length-1];if((c==="declare"||c==="local"||c==="typeset")&&/^[a-zA-Z_][a-zA-Z0-9_]*=\(/.test(w)){let S=w.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);S&&(w=S[1])}this.ctx.state.lastArg=w}else this.ctx.state.lastArg=c;let v=Ho(c)&&c!=="unset"&&c!=="eval";if(!this.ctx.state.options.posix||!v)for(let[w,S]of n)this.ctx.state.fullyUnsetLocals?.has(w)||(S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S));if(this.ctx.state.tempExportedVars)for(let w of n.keys())this.ctx.state.tempExportedVars.delete(w);return n.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(m={...m,stderr:this.ctx.state.expansionStderr+m.stderr},this.ctx.state.expansionStderr=""),m}async runCommand(t,s,r,n,i=!1,a=!1,l=-1){let o={ctx:this.ctx,runCommand:(c,f,d,h,p,m,y)=>this.runCommand(c,f,d,h,p,m,y),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(c,f,d)=>this.executeUserScript(c,f,d)},u=await kl(o,t,s,r,n,i,a,l);return u!==null?u:_l(o,t,s,n,a)}aliasExpansionStack=new Set;expandAlias(t){return Xn(this.ctx.state,t,this.aliasExpansionStack)}async findCommandInPath(t){return dn(this.ctx,t)}async executeSubshell(t,s=""){return ql(this.ctx,t,s,r=>this.executeStatement(r))}async executeGroup(t,s=""){return jl(this.ctx,t,s,r=>this.executeStatement(r))}async executeArithmeticCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await nt(this.ctx,t.redirections);if(s)return s;try{let r=await L(this.ctx,t.expression.expression),n=de(r!==0);return this.ctx.state.expansionStderr&&(n={...n,stderr:this.ctx.state.expansionStderr+n.stderr},this.ctx.state.expansionStderr=""),le(this.ctx,n,t.redirections)}catch(r){let n=_(`bash: arithmetic expression: ${r.message}
748
- `);return le(this.ctx,n,t.redirections)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await nt(this.ctx,t.redirections);if(s)return s;try{let r=await Et(this.ctx,t.expression),n=de(r);return this.ctx.state.expansionStderr&&(n={...n,stderr:this.ctx.state.expansionStderr+n.stderr},this.ctx.state.expansionStderr=""),le(this.ctx,n,t.redirections)}catch(r){let n=r instanceof te?1:2,i=_(`bash: conditional expression: ${r.message}
749
- `,n);return le(this.ctx,i,t.redirections)}}};var ge={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3,maxPythonTimeoutMs:1e4,maxJsTimeoutMs:1e4,maxGlobOperations:1e5,maxStringLength:10485760,maxArrayElements:1e5,maxHeredocSize:10485760,maxSubstitutionDepth:50,maxBraceExpansionResults:1e4,maxOutputSize:10485760,maxFileDescriptors:1024,maxSourceDepth:100};function Zl(e){return e?{maxCallDepth:e.maxCallDepth??ge.maxCallDepth,maxCommandCount:e.maxCommandCount??ge.maxCommandCount,maxLoopIterations:e.maxLoopIterations??ge.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??ge.maxAwkIterations,maxSedIterations:e.maxSedIterations??ge.maxSedIterations,maxJqIterations:e.maxJqIterations??ge.maxJqIterations,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??ge.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??ge.maxPythonTimeoutMs,maxJsTimeoutMs:e.maxJsTimeoutMs??ge.maxJsTimeoutMs,maxGlobOperations:e.maxGlobOperations??ge.maxGlobOperations,maxStringLength:e.maxStringLength??ge.maxStringLength,maxArrayElements:e.maxArrayElements??ge.maxArrayElements,maxHeredocSize:e.maxHeredocSize??ge.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??ge.maxSubstitutionDepth,maxBraceExpansionResults:e.maxBraceExpansionResults??ge.maxBraceExpansionResults,maxOutputSize:e.maxOutputSize??ge.maxOutputSize,maxFileDescriptors:e.maxFileDescriptors??ge.maxFileDescriptors,maxSourceDepth:e.maxSourceDepth??ge.maxSourceDepth}:{...ge}}import{lookup as md}from"node:dns";function ai(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function ad(e){let t=ai(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function Hl(e){if(e.includes("\\"))return!0;let t=e.toLowerCase();return t.includes("%2f")||t.includes("%5c")}function od(e,t){return t==="/"||t===""?!0:t.endsWith("/")?e.startsWith(t):e===t||e.startsWith(`${t}/`)}function oi(e,t){let s=ai(e);if(!s)return!1;let r=ad(t);return!r||s.origin!==r.origin||r.pathPrefix!=="/"&&r.pathPrefix!==""&&Hl(s.pathname)?!1:od(s.pathname,r.pathPrefix)}function Gl(e){return typeof e=="string"?e:e.url}function Ql(e,t){return!t||t.length===0?!1:t.some(s=>oi(e,Gl(s)))}function li(e){let t=ld(e);if(t==="localhost"||t.endsWith(".localhost"))return!0;let s=Kl(t);if(s)return pn(s);let r=ud(t);return r?fd(r):!1}function ld(e){let t=e.trim().toLowerCase();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function cd(e){if(!e)return null;let t=10,s=e;if(s.startsWith("0x")||s.startsWith("0X")?(t=16,s=s.slice(2)):s.length>1&&s.startsWith("0")&&(t=8),!s||t===16&&!/^[0-9a-fA-F]+$/.test(s)||t===10&&!/^\d+$/.test(s)||t===8&&!/^[0-7]+$/.test(s))return null;let r=Number.parseInt(s,t);return!Number.isFinite(r)||r<0?null:r}function Kl(e){let t=e.split(".");if(t.length===0||t.length>4)return null;let s=t.map(o=>cd(o));if(s.some(o=>o===null))return null;let r=s;if(t.length===1){let o=r[0];return o>4294967295?null:[o>>>24&255,o>>>16&255,o>>>8&255,o&255]}if(t.length===2){let[o,u]=r;return o>255||u>16777215?null:[o,u>>>16&255,u>>>8&255,u&255]}if(t.length===3){let[o,u,c]=r;return o>255||u>255||c>65535?null:[o,u,c>>>8&255,c&255]}let[n,i,a,l]=r;return n>255||i>255||a>255||l>255?null:[n,i,a,l]}function ud(e){let t=e,s=null;if(t.includes(".")){let m=t.lastIndexOf(":");if(m<0)return null;let y=t.slice(m+1),b=Kl(y);if(!b)return null;s=b,t=t.slice(0,m)}let r=t.includes("::")?t.split("::").length-1:0;if(r>1)return null;let[n,i]=t.split("::"),a=n?n.split(":").filter(Boolean):[],l=i?i.split(":").filter(Boolean):[],o=m=>/^[0-9a-f]{1,4}$/i.test(m)?Number.parseInt(m,16):null,u=a.map(o),c=l.map(o);if(u.some(m=>m===null)||c.some(m=>m===null))return null;let f=s?2:0,d=u.length+c.length+f,h=0;if(r===1){if(h=8-d,h<0)return null}else if(d!==8)return null;let p=[...u,...new Array(h).fill(0),...c];return s&&(p.push(s[0]<<8|s[1]),p.push(s[2]<<8|s[3])),p.length===8?p:null}function pn(e){let[t,s]=e;return t===127||t===10||t===172&&s>=16&&s<=31||t===192&&s===168||t===169&&s===254||t===0||t===100&&s>=64&&s<=127||t===198&&(s===18||s===19)||t===192&&s===0&&e[2]===0||t===192&&s===0&&e[2]===2||t===198&&s===51&&e[2]===100||t===203&&s===0&&e[2]===113||t>=240}function fd(e){if(e.every(n=>n===0)||e.slice(0,7).every(n=>n===0)&&e[7]===1||(e[0]&65472)===65152||(e[0]&65024)===64512)return!0;if(e[0]===0&&e[1]===0&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===65535){let n=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return pn(n)}if(e[0]===8193&&e[1]===3512)return!0;if(e[0]===100&&e[1]===65435&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===0){let n=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return pn(n)}if(e[0]===100&&e[1]===65435&&e[2]===1)return!0;if(e[0]===8194){let n=[e[1]>>>8&255,e[1]&255,e[2]>>>8&255,e[2]&255];return pn(n)}return!1}function Xl(e){let t=[];for(let s of e){if(typeof s!="string"&&(s===null||typeof s!="object"||!("url"in s)||typeof s.url!="string")){t.push('Invalid allow-list entry: must be a string URL or an object with a "url" string property');continue}let r=Gl(s);if(!ai(r)){t.push(`Invalid URL in allow-list: "${r}" - must be a valid URL with scheme and host (e.g., "https://example.com")`);continue}let i=new URL(r);if(i.protocol!=="http:"&&i.protocol!=="https:"){t.push(`Only http and https URLs are allowed in allow-list: "${r}"`);continue}if(!i.hostname){t.push(`Allow-list entry must include a hostname: "${r}"`);continue}if(i.pathname!=="/"&&i.pathname!==""&&Hl(i.pathname)){t.push(`Allow-list entry contains ambiguous path separators: "${r}"`);continue}(i.search||i.hash)&&t.push(`Query strings and fragments are ignored in allow-list entries: "${r}"`)}return t}var dd=typeof __BROWSER__<"u"&&__BROWSER__,Ht=null,mn=null,Yl=!1;function hd(){if(Ht===null&&!dd)try{let e=ui("node:async_hooks");mn=ui("node:dns"),Ht=new e.AsyncLocalStorage}catch{}}function pd(){if(Yl||(hd(),!Ht||!mn))return;Yl=!0;let e=Ht,t=mn.lookup;function s(...r){let n=r[0],i=e.getStore();if(typeof n!="string"||!i||i.hostname.toLowerCase()!==n.toLowerCase())return t.apply(this,r);let a={},l;if(r.length===2)l=r[1];else if(r.length>=3){let u=r[1];typeof u=="number"?a={family:u}:u&&typeof u=="object"&&(a=u),l=r[2]}if(typeof l!="function")return t.apply(this,r);let o=l;if(a.family!==void 0&&a.family!==0&&a.family!==i.family){let u=new Error(`ENOTFOUND ${n}`);u.code="ENOTFOUND",u.errno=-3008,u.syscall="getaddrinfo",u.hostname=n,process.nextTick(()=>o(u));return}process.nextTick(()=>{a.all?o(null,[{address:i.address,family:i.family}]):o(null,i.address,i.family)})}Object.defineProperty(mn,"lookup",{value:s,writable:!0,configurable:!0})}function Jl(e,t){return pd(),Ht?Ht.run(e,t):t()}var rt=class extends Error{constructor(t,s){let r=s??"URL not in allow-list";super(`Network access denied: ${r}: ${t}`),this.name="NetworkAccessDeniedError"}},ps=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},ms=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},gn=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},Gt=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};function gd(e){return new Promise((t,s)=>{md(e,{all:!0},(r,n)=>{r?s(r):t(n)})})}var yd=20,wd=3e4,Ed=10485760,bd=["GET","HEAD"],vd=new Set(["GET","HEAD","OPTIONS"]),Sd=new Set([301,302,303,307,308]);function ci(e){let t=e.allowedUrlPrefixes??[];if(!e.dangerouslyAllowFullInternetAccess){let h=Xl(t);if(h.length>0)throw new Error(`Invalid network allow-list:
750
- ${h.join(`
751
- `)}`)}let s=[];for(let h of t)typeof h=="object"&&h.transform&&h.transform.length>0&&s.push(h);function r(h){if(s.length===0)return null;let p=null;for(let m of s)if(oi(h,m.url)&&m.transform){p||(p=new Headers);for(let y of m.transform)for(let[b,v]of Object.entries(y.headers))p.set(b,v)}return p}let n=e.maxRedirects??yd,i=e.timeoutMs??wd,a=e.maxResponseSize??Ed,l=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??bd,o=e.denyPrivateRanges??(typeof process<"u"&&process.env?.NODE_ENV==="production"),u=e._dnsResolve??gd;async function c(h){if(!e.dangerouslyAllowFullInternetAccess&&!Ql(h,t))throw new rt(h);if(o)try{let p=new URL(h);if(li(p.hostname))throw new rt(h,"private/loopback IP address blocked");let m=p.hostname;if(/[a-zA-Z]/.test(m))try{let b=await u(m);for(let{address:E}of b)if(li(E))throw new rt(h,"hostname resolves to private/loopback IP address");let v=b[0];if(v)return{hostname:m,address:v.address,family:v.family===6?6:4}}catch(b){if(b instanceof rt)throw b;let v=b?.code;if(!(v==="ENOTFOUND"||v==="ENODATA"))throw new rt(h,"DNS resolution failed for private IP check")}}catch(p){if(p instanceof rt)throw p}return null}function f(h){if(e.dangerouslyAllowFullInternetAccess)return;let p=h.toUpperCase();if(!l.includes(p))throw new gn(p,l)}async function d(h,p={}){let m=p.method?.toUpperCase()??"GET",y=await c(h);f(m);let b=h,v=0,E=p.followRedirects??!0,w=p.timeoutMs!==void 0?Math.min(p.timeoutMs,i):i;for(;;){let S=new AbortController,A=fi(()=>S.abort(),w);try{let $=await Be.runTrustedAsync(()=>{let x=r(b),I=Ad(p.headers,x),T={method:m,headers:I,signal:S.signal,redirect:"manual"};return p.body&&!vd.has(m)&&(T.body=p.body),y?Jl(y,()=>fetch(b,T)):fetch(b,T)});if(Sd.has($.status)&&E){let x=$.headers.get("location");if(!x)return await ec($,b,a);let I=new URL(x,b).href;try{y=await c(I)}catch{throw new ms(I)}if(v++,v>n)throw new ps(n);b=I;continue}return await ec($,b,a)}finally{di(A)}}}return d}function Ad(e,t){if(!e&&!t)return;if(!t)return e;let s=e instanceof Headers?new Headers(e):new Headers(e);for(let[r,n]of t)s.set(r,n);return s}async function ec(e,t,s){let r=Object.create(null);if(e.headers.forEach((i,a)=>{r[a.toLowerCase()]=i}),s>0){let i=e.headers.get("content-length");if(i){let a=parseInt(i,10);if(!Number.isNaN(a)&&a>s)throw new Gt(s)}}let n;if(s>0&&e.body){let i=e.body.getReader(),a=[],l=0;for(;;){let{done:u,value:c}=await i.read();if(u)break;if(c){if(l+=c.byteLength,l>s)throw i.cancel(),new Gt(s);a.push(c)}}n=new Uint8Array(l);let o=0;for(let u of a)n.set(u,o),o+=u.byteLength}else{let i=await e.arrayBuffer();if(s>0&&i.byteLength>s)throw new Gt(s);n=new Uint8Array(i)}return{status:e.status,statusText:e.statusText,headers:r,body:n,url:t}}function tc(e){return Pt(e)}function Pt(e){return e.statements.map(sc).join(`
752
- `)}function sc(e){let t=[];for(let r=0;r<e.pipelines.length;r++)t.push($d(e.pipelines[r])),r<e.operators.length&&t.push(e.operators[r]);let s=t.join(" ");return e.background&&(s+=" &"),s}function $d(e){let t=[];e.timed&&t.push(e.timePosix?"time -p":"time"),e.negated&&t.push("!");let s=[];for(let n=0;n<e.commands.length;n++)if(s.push(nc(e.commands[n])),n<e.commands.length-1){let i=e.pipeStderr?.[n];s.push(i?"|&":"|")}return(t.length>0?`${t.join(" ")} `:"")+s.join(" ")}function nc(e){switch(e.type){case"SimpleCommand":return Nd(e);case"If":return Od(e);case"For":return Ld(e);case"CStyleFor":return Td(e);case"While":return Wd(e);case"Until":return Md(e);case"Case":return Fd(e);case"Subshell":return zd(e);case"Group":return Bd(e);case"ArithmeticCommand":return qd(e);case"ConditionalCommand":return jd(e);case"FunctionDef":return Ud(e);default:{let t=e;throw new Error(`Unsupported command type: ${t.type}`)}}}function Nd(e){let t=[];for(let s of e.assignments)t.push(kd(s));e.name&&t.push(Se(e.name));for(let s of e.args)t.push(Se(s));for(let s of e.redirections)t.push(ac(s));return t.join(" ")}function kd(e){let t=e.append?"+=":"=";if(e.array){let s=e.array.map(Se).join(" ");return`${e.name}${t}(${s})`}return e.value?`${e.name}${t}${Se(e.value)}`:`${e.name}${t}`}function Se(e){return e.parts.map(t=>yn(t,!1)).join("")}function vt(e){return e.parts.map(t=>yn(t,!0)).join("")}function yn(e,t){switch(e.type){case"Literal":return t?Pd(e.value):_d(e.value);case"SingleQuoted":return`'${e.value}'`;case"DoubleQuoted":return`"${e.parts.map(s=>yn(s,!0)).join("")}"`;case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return rc(e);case"CommandSubstitution":return e.legacy?`\`${Pt(e.body)}\``:`$(${Pt(e.body)})`;case"ArithmeticExpansion":return`$((${ne(e.expression.expression)}))`;case"ProcessSubstitution":return e.direction==="input"?`<(${Pt(e.body)})`:`>(${Pt(e.body)})`;case"BraceExpansion":return xd(e);case"TildeExpansion":return e.user!==null?`~${e.user}`:"~";case"Glob":return e.pattern;default:{let s=e;throw new Error(`Unsupported word part type: ${s.type}`)}}}function _d(e){return e.replace(/[\s\\'"`!|&;()<>{}[\]*?~#]/g,"\\$&")}function Pd(e){return e.replace(/[$`"\\]/g,"\\$&")}function Dd(e,t){return e.parts.map(s=>Id(s,t)).join("")}function Id(e,t){switch(e.type){case"Literal":return t?e.value:e.value.replace(/[$`]/g,"\\$&");case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return rc(e);case"CommandSubstitution":return e.legacy?`\`${Pt(e.body)}\``:`$(${Pt(e.body)})`;case"ArithmeticExpansion":return`$((${ne(e.expression.expression)}))`;default:return yn(e,!1)}}function rc(e){return e.operation?`\${${ic(e.parameter,e.operation)}}`:Cd(e.parameter)?`\${${e.parameter}}`:`$${e.parameter}`}function Cd(e){return!(/^[?#@*$!\-0-9]$/.test(e)||/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e))}function ic(e,t){switch(t.type){case"Length":return`#${e}`;case"LengthSliceError":return`#${e}:`;case"BadSubstitution":return t.text;case"DefaultValue":return`${e}${t.checkEmpty?":":""}-${vt(t.word)}`;case"AssignDefault":return`${e}${t.checkEmpty?":":""}=${vt(t.word)}`;case"ErrorIfUnset":return`${e}${t.checkEmpty?":":""}?${t.word?vt(t.word):""}`;case"UseAlternative":return`${e}${t.checkEmpty?":":""}+${vt(t.word)}`;case"Substring":{let s=ne(t.offset.expression);return t.length?`${e}:${s}:${ne(t.length.expression)}`:`${e}:${s}`}case"PatternRemoval":{let s=t.side==="prefix"?"#":"%",r=t.greedy?`${s}${s}`:s;return`${e}${r}${vt(t.pattern)}`}case"PatternReplacement":{let s="/";t.all?s="//":t.anchor==="start"?s="/#":t.anchor==="end"&&(s="/%");let r=t.replacement?`/${vt(t.replacement)}`:"";return`${e}${s}${vt(t.pattern)}${r}`}case"CaseModification":{let s=t.direction==="upper"?"^":",",r=t.all?`${s}${s}`:s,n=t.pattern?vt(t.pattern):"";return`${e}${r}${n}`}case"Transform":return`${e}@${t.operator}`;case"Indirection":return t.innerOp?`!${ic(e,t.innerOp)}`:`!${e}`;case"ArrayKeys":return`!${t.array}[${t.star?"*":"@"}]`;case"VarNamePrefix":return`!${t.prefix}${t.star?"*":"@"}`;default:{let s=t;throw new Error(`Unsupported parameter operation type: ${s.type}`)}}}function xd(e){return`{${e.items.map(Rd).join(",")}}`}function Rd(e){if(e.type==="Word")return Se(e.word);let t=e.startStr??String(e.start),s=e.endStr??String(e.end);return e.step!==void 0?`${t}..${s}..${e.step}`:`${t}..${s}`}function ac(e){let t=e.fdVariable?`{${e.fdVariable}}`:e.fd!==null?String(e.fd):"";if(e.operator==="<<"||e.operator==="<<-"){let s=e.target,r=s.quoted?`'${s.delimiter}'`:s.delimiter,n=Dd(s.content,s.quoted);return`${t}${e.operator}${r}
753
- ${n}${s.delimiter}`}return e.operator==="<<<"?`${t}<<< ${Se(e.target)}`:e.operator==="&>"||e.operator==="&>>"?`${e.operator} ${Se(e.target)}`:`${t}${e.operator} ${Se(e.target)}`}function Ge(e){return e.length===0?"":` ${e.map(ac).join(" ")}`}function Ve(e){return e.map(sc).join(`
754
- `)}function Od(e){let t=[];for(let s=0;s<e.clauses.length;s++){let r=e.clauses[s],n=s===0?"if":"elif";t.push(`${n} ${Ve(r.condition)}; then
755
- ${Ve(r.body)}`)}return e.elseBody&&t.push(`else
756
- ${Ve(e.elseBody)}`),`${t.join(`
755
+ `));let h=f.fd??0;h!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),Ve(e),e.state.fileDescriptors.set(h,p)):l=p}else if(f.operator==="<<<"&&f.target.type==="Word")l=`${a.targets.get(t.redirections.indexOf(f))??""}
756
+ `;else if(f.operator==="<"&&f.target.type==="Word")try{let d=a.targets.get(t.redirections.indexOf(f))??"",p=e.fs.resolvePath(e.state.cwd,d);l=await e.fs.readFile(p)}catch{let d=a.targets.get(t.redirections.indexOf(f))??"";return _("",`bash: ${d}: No such file or directory
757
+ `,1)}let c=e.state.groupStdin;l&&(e.state.groupStdin=l);try{for(let f of t.body){let d=await r(f);s.appendResult(d),i=d.exitCode}}catch(f){if(e.state.groupStdin=c,f instanceof $)throw s.prependTo(f),f;if(sr(f)||f instanceof Qe||f instanceof j)throw f.prependOutput(s.stdout,s.stderr),f;return s.append("stderr",`${yt(f)}
758
+ `),s.build(1)}e.state.groupStdin=c;let u=s.build(i);return pe(e,u,t.redirections,a.targets)}async function iu(e,t,n,r,s){let i;try{i=await e.fs.readFile(t)}catch{return R(`bash: ${t}: No such file or directory
759
+ `,127)}if(i.startsWith("#!")){let l=i.indexOf(`
760
+ `);l!==-1&&(i=i.slice(l+1))}let a=e.state.loopDepth,o=aa(e.state);e.state.parentHasLoopContext=a>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,r&&(e.state.groupStdin=r),e.state.currentSource=t,e.state.env.set("0",t),e.state.env.set("#",String(n.length)),e.state.env.set("@",n.join(" ")),e.state.env.set("*",n.join(" "));for(let l=0;l<n.length&&l<9;l++)e.state.env.set(String(l+1),n[l]);for(let l=n.length+1;l<=9;l++)e.state.env.delete(String(l));try{let c=new V().parse(i),u=await s(c);return o(),u}catch(l){if(o(),l instanceof j)return _(l.stdout,l.stderr,l.exitCode);if(l instanceof $)throw l;if(l.name==="ParseException")return R(`bash: ${t}: ${l.message}
761
+ `);throw l}}var Xn=class{ctx;constructor(t,n){this.ctx={state:n,fs:t.fs,commands:t.commands,limits:t.limits,executionScope:t.executionScope,execFn:t.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:t.fetch,sleep:t.sleep,trace:t.trace,coverage:t.coverage,requireDefenseContext:t.requireDefenseContext??!1,jsBootstrapCode:t.jsBootstrapCode,invokeTool:t.invokeTool}}assertDefenseContext(t){if(!this.ctx.requireDefenseContext||ze.isInSandboxedContext())return;let n=`interpreter ${t} attempted outside defense context`;throw new en(n,{timestamp:Date.now(),type:"missing_defense_context",message:n,path:"DefenseInDepthBox.context",stack:new Error().stack,executionId:ze.getCurrentExecutionId()})}buildExportedEnv(){let t=this.ctx.state.exportedVars,n=this.ctx.state.tempExportedVars,r=new Set;if(t)for(let i of t)r.add(i);if(n)for(let i of n)r.add(i);if(r.size===0)return Object.create(null);let s=Object.create(null);for(let i of r){let a=this.ctx.state.env.get(i);a!==void 0&&(s[i]=a)}return s}async executeScript(t){this.assertDefenseContext("execution");let n=0,r=new xt(this.ctx.executionScope,"script");for(let s of t.statements)try{let i=await this.executeStatement(s);r.appendResult(i,fs(i)),n=i.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n))}catch(i){if(i instanceof j)throw i.prependOutput(r.stdout,r.stderr),i;if(i instanceof Ke)return r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=i.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{...r.build(n),exitCode:n,env:vt(this.ctx.state.env)};if(i instanceof $)throw r.prependTo(i),i;if(i instanceof Qe)return r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=i.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{...r.build(n),exitCode:n,env:vt(this.ctx.state.env)};if(i instanceof Le)return r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{...r.build(n),exitCode:n,env:vt(this.ctx.state.env)};if(i instanceof je)return r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{...r.build(n),exitCode:n,env:vt(this.ctx.state.env)};if(i instanceof ie){r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(i instanceof rr){r.append("stdout",i.stdout,i.internalOutputAccounting.stdout),r.append("stderr",i.stderr,i.internalOutputAccounting.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(i instanceof qe||i instanceof Ue){if(this.ctx.state.loopDepth>0)throw i.prependOutput(r.stdout,r.stderr),i;r.append("stdout",i.stdout),r.append("stderr",i.stderr);continue}throw i instanceof Oe&&i.prependOutput(r.stdout,r.stderr),i}return{...r.build(n),env:vt(this.ctx.state.env)}}async executeUserScript(t,n,r=""){return iu(this.ctx,t,n,r,s=>this.executeScript(s))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Te;if(t.deferredError)throw new Ae(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return te;this.ctx.state.errexitSafe=!1;let n=new xt(this.ctx.executionScope,"statement");this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&n.append("stderr",`${t.sourceText}
762
+ `);let r=0,s=-1,i=!1;try{for(let l=0;l<t.pipelines.length;l++){let c=t.pipelines[l],u=l>0?t.operators[l-1]:null;if(u==="&&"&&r!==0||u==="||"&&r===0)continue;let f=await this.executePipeline(c);n.appendResult(f,fs(f)),r=f.exitCode,s=l,i=c.negated,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}}catch(l){throw n.prependTo(l),l}let a=s<t.pipelines.length-1,o=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=a||i||o,this.ctx.state.options.errexit&&r!==0&&s===t.pipelines.length-1&&!i&&!this.ctx.state.inCondition&&!o){let l=new Qe(r);throw l.prependOutput(n.stdout,n.stderr),l}return n.build(r)}async executePipeline(t){return nu(this.ctx,t,(n,r)=>this.executeCommand(n,r))}async executeCommand(t,n){switch(this.assertDefenseContext("command"),this.ctx.coverage?.hit(`bash:cmd:${t.type}`),t.type){case"SimpleCommand":return this.executeSimpleCommand(t,n);case"If":return Qc(this.ctx,t);case"For":return Kc(this.ctx,t);case"CStyleFor":return Xc(this.ctx,t);case"While":return Yc(this.ctx,t,n);case"Until":return Jc(this.ctx,t);case"Case":return eu(this.ctx,t);case"Subshell":return this.executeSubshell(t,n);case"Group":return this.executeGroup(t,n);case"FunctionDef":return lc(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return te}}async executeSimpleCommand(t,n){try{return await this.executeSimpleCommandInner(t,n)}catch(r){if(r instanceof bt)return R(r.stderr);throw r}}async executeSimpleCommandInner(t,n){if(t.line!==void 0&&(this.ctx.state.currentLine=t.line),this.ctx.state.shoptOptions.expand_aliases&&t.name){let v=t,A=0;for(;;){let x=this.expandAlias(v);if(x===v)break;if(A>=this.ctx.limits.maxCallDepth)throw new $(`alias expansion depth limit exceeded (${this.ctx.limits.maxCallDepth})`,"recursion");A++,v=x}this.aliasExpansionStack.clear(),v!==t&&(t=v)}this.ctx.state.expansionStderr="";let r=await Wc(this.ctx,t);if(r.error)return r.error;let s=r.tempAssignments,i=r.xtraceOutput;if(!t.name){if(t.redirections.length>0){let A=await ot(this.ctx,t.redirections);if(A.error)return A.error;let x=_("",i,0);return pe(this.ctx,x,t.redirections,A.targets)}this.ctx.state.lastArg="";let v=(this.ctx.state.expansionStderr||"")+i;return this.ctx.state.expansionStderr="",_("",v,this.ctx.state.lastExitCode)}let a=t.name&&sa(t.name,["local","declare","typeset","export","readonly"]),o=Array.from(s.keys());if(o.length>0&&!a){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let v of o)this.ctx.state.tempExportedVars.add(v)}let l=await Hr(this.ctx,t.redirections);if(l){for(let[v,A]of s)A===void 0?this.ctx.state.env.delete(v):this.ctx.state.env.set(v,A);return l}let c=-1;for(let v of t.redirections){if((v.operator==="<<"||v.operator==="<<-")&&v.target.type==="HereDoc"){let A=v.target,x=await W(this.ctx,A.content);A.stripTabs&&(x=x.split(`
763
+ `).map(D=>D.replace(/^\t+/,"")).join(`
764
+ `)),x=qt(x);let P=v.fd??0;P!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),Ve(this.ctx),this.ctx.state.fileDescriptors.set(P,x)):n=x;continue}if(v.operator==="<<<"&&v.target.type==="Word"){n=qt(`${await W(this.ctx,v.target)}
765
+ `);continue}if(v.operator==="<"&&v.target.type==="Word")try{let A=await W(this.ctx,v.target),x=this.ctx.fs.resolvePath(this.ctx.state.cwd,A);n=await ha(this.ctx.fs,x)}catch{let A=await W(this.ctx,v.target);for(let[x,P]of s)P===void 0?this.ctx.state.env.delete(x):this.ctx.state.env.set(x,P);return R(`bash: ${A}: No such file or directory
766
+ `)}if(v.operator==="<&"&&v.target.type==="Word"){let A=await W(this.ctx,v.target),x=Number.parseInt(A,10);if(!Number.isNaN(x)&&this.ctx.state.fileDescriptors){let P=this.ctx.state.fileDescriptors.get(x);if(P!==void 0)if(P.startsWith("__rw__:")){let D=tu(P);D&&(n=D.content.slice(D.position),c=x)}else P.startsWith("__file__:")||P.startsWith("__file_append__:")||(n=P)}}}let u=await W(this.ctx,t.name),f=[],d=[],p=(v,A)=>{if(f.length>=this.ctx.limits.maxArrayElements)throw new $(`expanded argument element limit exceeded (${this.ctx.limits.maxArrayElements})`,"array_elements");f.push(v),d.push(A)};if(sa(t.name,["local","declare","typeset","export","readonly"])&&(u==="local"||u==="declare"||u==="typeset"||u==="export"||u==="readonly"))for(let v of t.args){let A=await Gl(this.ctx,v);if(A)p(A,!0);else{let x=await Zl(this.ctx,v);if(x!==null)p(x,!0);else{let P=await at(this.ctx,v);for(let D of P.values)p(D,P.quoted)}}}else for(let v of t.args){let A=await at(this.ctx,v);for(let x of A.values)p(x,A.quoted)}if(!u){if(t.name.parts.every(A=>A.type==="CommandSubstitution"||A.type==="ParameterExpansion"||A.type==="ArithmeticExpansion")){if(f.length>0){let A=f.shift();return d.shift(),await this.runCommand(A,f,d,n,!1,!1,c)}return _("","",this.ctx.state.lastExitCode)}return R(`bash: : command not found
767
+ `,127)}if(u==="exec"&&(f.length===0||f[0]==="--")){for(let v of t.redirections){if(v.target.type==="HereDoc"||v.fdVariable)continue;let A=await W(this.ctx,v.target),x=v.fd??(v.operator==="<"||v.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),v.operator){case">":case">|":{let P=this.ctx.fs.resolvePath(this.ctx.state.cwd,A);await this.ctx.fs.writeFile(P,"","utf8"),Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__file__:${P}`);break}case">>":{let P=this.ctx.fs.resolvePath(this.ctx.state.cwd,A);Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__file_append__:${P}`);break}case"<":{let P=this.ctx.fs.resolvePath(this.ctx.state.cwd,A);try{let D=await this.ctx.fs.readFile(P);Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,D)}catch{return R(`bash: ${A}: No such file or directory
768
+ `)}break}case"<>":{let P=this.ctx.fs.resolvePath(this.ctx.state.cwd,A);try{let D=await this.ctx.fs.readFile(P);Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__rw__:${P.length}:${P}:0:${D}`)}catch{await this.ctx.fs.writeFile(P,"","utf8"),Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__rw__:${P.length}:${P}:0:`)}break}case">&":{if(A==="-")this.ctx.state.fileDescriptors.delete(x);else if(A.endsWith("-")){let P=A.slice(0,-1),D=Number.parseInt(P,10);if(!Number.isNaN(D)){let I=this.ctx.state.fileDescriptors.get(D);I!==void 0?this.ctx.state.fileDescriptors.set(x,I):this.ctx.state.fileDescriptors.set(x,`__dupout__:${D}`),this.ctx.state.fileDescriptors.delete(D)}}else{let P=Number.parseInt(A,10);Number.isNaN(P)||(Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__dupout__:${P}`))}break}case"<&":{if(A==="-")this.ctx.state.fileDescriptors.delete(x);else if(A.endsWith("-")){let P=A.slice(0,-1),D=Number.parseInt(P,10);if(!Number.isNaN(D)){let I=this.ctx.state.fileDescriptors.get(D);I!==void 0?this.ctx.state.fileDescriptors.set(x,I):this.ctx.state.fileDescriptors.set(x,`__dupin__:${D}`),this.ctx.state.fileDescriptors.delete(D)}}else{let P=Number.parseInt(A,10);Number.isNaN(P)||(Ve(this.ctx),this.ctx.state.fileDescriptors.set(x,`__dupin__:${P}`))}break}}}for(let[v,A]of s)A===void 0?this.ctx.state.env.delete(v):this.ctx.state.env.set(v,A);if(this.ctx.state.tempExportedVars)for(let v of s.keys())this.ctx.state.tempExportedVars.delete(v);return te}if(this.ctx.state.extraArgs){let v=this.ctx.state.extraArgs;this.ctx.state.extraArgs=void 0;for(let A of v)p(A,!0)}let m=await Mc(this.ctx,u,f);s.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(s)));let E,b=null;try{E=await this.runCommand(u,f,d,n,!1,!1,c)}catch(v){if(v instanceof qe||v instanceof Ue)b=v,E=te;else throw v}let g=i+m;if(g&&(E={...E,stderr:g+E.stderr}),E=await pe(this.ctx,E,t.redirections),b)throw b;if(f.length>0){let v=f[f.length-1];if((u==="declare"||u==="local"||u==="typeset")&&/^[a-zA-Z_][a-zA-Z0-9_]*=\(/.test(v)){let A=v.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);A&&(v=A[1])}this.ctx.state.lastArg=v}else this.ctx.state.lastArg=u;let w=oc(u)&&u!=="unset"&&u!=="eval";if(!this.ctx.state.options.posix||!w)for(let[v,A]of s)this.ctx.state.fullyUnsetLocals?.has(v)||(A===void 0?this.ctx.state.env.delete(v):this.ctx.state.env.set(v,A));if(this.ctx.state.tempExportedVars)for(let v of s.keys())this.ctx.state.tempExportedVars.delete(v);return s.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(E={...E,stderr:this.ctx.state.expansionStderr+E.stderr},this.ctx.state.expansionStderr=""),E}async runCommand(t,n,r,s,i=!1,a=!1,o=-1){let l={ctx:this.ctx,runCommand:(u,f,d,p,h,m,E)=>this.runCommand(u,f,d,p,h,m,E),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(u,f,d)=>this.executeUserScript(u,f,d)},c=await Zc(l,t,n,r,s,i,a,o);return c!==null?c:Hc(l,t,n,s,a)}aliasExpansionStack=new Set;expandAlias(t){return xo({env:this.ctx.state.env,limits:this.ctx.limits},t,this.aliasExpansionStack)}async findCommandInPath(t){return ns(this.ctx,t)}async executeSubshell(t,n=""){return ru(this.ctx,t,n,r=>this.executeStatement(r))}async executeGroup(t,n=""){return su(this.ctx,t,n,r=>this.executeStatement(r))}async executeArithmeticCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let n=await ot(this.ctx,t.redirections);if(n.error)return n.error;try{let r=await Z(this.ctx,t.expression.expression),s=ye(r!==0);return this.ctx.state.expansionStderr&&(s={...s,stderr:this.ctx.state.expansionStderr+s.stderr},this.ctx.state.expansionStderr=""),pe(this.ctx,s,t.redirections,n.targets)}catch(r){let s=R(`bash: arithmetic expression: ${r.message}
769
+ `);return pe(this.ctx,s,t.redirections,n.targets)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let n=await ot(this.ctx,t.redirections);if(n.error)return n.error;try{let r=await Tt(this.ctx,t.expression),s=ye(r);return this.ctx.state.expansionStderr&&(s={...s,stderr:this.ctx.state.expansionStderr+s.stderr},this.ctx.state.expansionStderr=""),pe(this.ctx,s,t.redirections,n.targets)}catch(r){let s=r instanceof ie?1:2,i=R(`bash: conditional expression: ${r.message}
770
+ `,s);return pe(this.ctx,i,t.redirections,n.targets)}}};import{lookup as Mp}from"node:dns";function oa(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function Np(e){let t=oa(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}var Pp=3;function au(e){let t=e;for(let n=0;n<Pp;n++){if(t.includes("\\")||t.includes(";")||/%(?![0-9a-f]{2})/i.test(t))return!0;let r=t.toLowerCase();if(r.includes("%2f")||r.includes("%2e")||r.includes("%5c")||r.includes("%3b"))return!0;let s;try{s=decodeURIComponent(t)}catch{return!0}if(s===t)return!1;t=s}return t.includes("%")}function Cp(e,t){return t==="/"||t===""?!0:t.endsWith("/")?e.startsWith(t):e===t||e.startsWith(`${t}/`)}function la(e,t){let n=oa(e);if(!n)return!1;let r=Np(t);return!r||n.origin!==r.origin||r.pathPrefix!=="/"&&r.pathPrefix!==""&&au(n.pathname)?!1:Cp(n.pathname,r.pathPrefix)}function ou(e){return typeof e=="string"?e:e.url}function lu(e,t){return!t||t.length===0?!1:t.some(n=>la(e,ou(n)))}function ca(e){let t=Dp(e);if(t==="localhost"||t.endsWith(".localhost"))return!0;let n=cu(t);if(n)return ss(n);let r=Ip(t);return r?_p(r):!1}function Dp(e){let t=e.trim().toLowerCase();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function Rp(e){if(!e)return null;let t=10,n=e;if(n.startsWith("0x")||n.startsWith("0X")?(t=16,n=n.slice(2)):n.length>1&&n.startsWith("0")&&(t=8),!n||t===16&&!/^[0-9a-fA-F]+$/.test(n)||t===10&&!/^\d+$/.test(n)||t===8&&!/^[0-7]+$/.test(n))return null;let r=Number.parseInt(n,t);return!Number.isFinite(r)||r<0?null:r}function cu(e){let t=e.split(".");if(t.length===0||t.length>4)return null;let n=t.map(l=>Rp(l));if(n.some(l=>l===null))return null;let r=n;if(t.length===1){let l=r[0];return l>4294967295?null:[l>>>24&255,l>>>16&255,l>>>8&255,l&255]}if(t.length===2){let[l,c]=r;return l>255||c>16777215?null:[l,c>>>16&255,c>>>8&255,c&255]}if(t.length===3){let[l,c,u]=r;return l>255||c>255||u>65535?null:[l,c,u>>>8&255,u&255]}let[s,i,a,o]=r;return s>255||i>255||a>255||o>255?null:[s,i,a,o]}function Ip(e){let t=e,n=null;if(t.includes(".")){let m=t.lastIndexOf(":");if(m<0)return null;let E=t.slice(m+1),b=cu(E);if(!b)return null;n=b,t=t.slice(0,m)}let r=t.includes("::")?t.split("::").length-1:0;if(r>1)return null;let[s,i]=t.split("::"),a=s?s.split(":").filter(Boolean):[],o=i?i.split(":").filter(Boolean):[],l=m=>/^[0-9a-f]{1,4}$/i.test(m)?Number.parseInt(m,16):null,c=a.map(l),u=o.map(l);if(c.some(m=>m===null)||u.some(m=>m===null))return null;let f=n?2:0,d=c.length+u.length+f,p=0;if(r===1){if(p=8-d,p<0)return null}else if(d!==8)return null;let h=[...c,...new Array(p).fill(0),...u];return n&&(h.push(n[0]<<8|n[1]),h.push(n[2]<<8|n[3])),h.length===8?h:null}function ss(e){let[t,n]=e;return t===127||t===10||t===172&&n>=16&&n<=31||t===192&&n===168||t===169&&n===254||t===0||t===100&&n>=64&&n<=127||t===198&&(n===18||n===19)||t===192&&n===0&&e[2]===0||t===192&&n===0&&e[2]===2||t===198&&n===51&&e[2]===100||t===203&&n===0&&e[2]===113||t>=240}function _p(e){if(e.every(s=>s===0)||e.slice(0,7).every(s=>s===0)&&e[7]===1||(e[0]&65472)===65152||(e[0]&65024)===64512)return!0;if(e[0]===0&&e[1]===0&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===65535){let s=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return ss(s)}if(e[0]===8193&&e[1]===3512)return!0;if(e[0]===100&&e[1]===65435&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===0){let s=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return ss(s)}if(e[0]===100&&e[1]===65435&&e[2]===1)return!0;if(e[0]===8194){let s=[e[1]>>>8&255,e[1]&255,e[2]>>>8&255,e[2]&255];return ss(s)}return!1}function uu(e){let t=[];for(let n of e){if(typeof n!="string"&&(n===null||typeof n!="object"||!("url"in n)||typeof n.url!="string")){t.push('Invalid allow-list entry: must be a string URL or an object with a "url" string property');continue}let r=ou(n);if(!oa(r)){t.push(`Invalid URL in allow-list: "${r}" - must be a valid URL with scheme and host (e.g., "https://example.com")`);continue}let i=new URL(r);if(i.protocol!=="http:"&&i.protocol!=="https:"){t.push(`Only http and https URLs are allowed in allow-list: "${r}"`);continue}if(!i.hostname){t.push(`Allow-list entry must include a hostname: "${r}"`);continue}if(i.pathname!=="/"&&i.pathname!==""&&au(i.pathname)){t.push(`Allow-list entry contains ambiguous path separators: "${r}"`);continue}(i.search||i.hash)&&t.push(`Query strings and fragments are ignored in allow-list entries: "${r}"`)}return t}var Op=typeof __BROWSER__<"u"&&__BROWSER__,Ft=class extends Error{constructor(){super("DNS pinning is unavailable in this runtime"),this.name="DnsPinningUnavailableError"}};function Lp(e){let t=new Error(`ENOTFOUND ${e}`);return t.code="ENOTFOUND",t.errno=-3008,t.syscall="getaddrinfo",t.hostname=e,t}function Tp(e){return(t,n,r)=>{let s=n.family==="IPv4"?4:n.family==="IPv6"?6:n.family;if(t.toLowerCase()!==e.hostname.toLowerCase()||s!==void 0&&s!==0&&s!==e.family){r(Lp(t),"");return}n.all?r(null,[{address:e.address,family:e.family}]):r(null,e.address,e.family)}}var fu=async e=>{if(Op)throw new Ft;try{let t=await import("./chunks/undici-JES22UVU.js"),n=new t.Agent({connections:1,pipelining:0,connect:{lookup:Tp(e)}}),r=!1;return{async fetch(s,i){if(r)throw new Ft;let a=t.fetch;return await a(s,{...i,dispatcher:n})},async close(){r||(r=!0,await n.destroy())}}}catch(t){throw t instanceof Ft?t:new Ft}};var Ye=class extends Error{constructor(t,n){let r=n??"URL not in allow-list";super(`Network access denied: ${r}: ${t}`),this.name="NetworkAccessDeniedError"}},Yn=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},Jn=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},is=class extends Error{constructor(t,n){super(`HTTP method '${t}' not allowed. Allowed methods: ${n.join(", ")}`),this.name="MethodNotAllowedError"}},An=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};function Bp(e){return new Promise((t,n)=>{Mp(e,{all:!0},(r,s)=>{r?n(r):t(s)})})}var Wp=20,Fp=3e4,Vp=10485760,zp=["GET","HEAD"],qp=new Set(["GET","HEAD","OPTIONS"]),Up=new Set([301,302,303,307,308]);function vn(e){return e.reason instanceof Error?e.reason:new DOMException("The operation was aborted","AbortError")}function du(e){if(e?.aborted)throw vn(e)}async function Vt(e,t){if(!t)return e;if(t.aborted)throw e.catch(()=>{}),vn(t);let n,r=new Promise((s,i)=>{n=()=>i(vn(t)),t.addEventListener("abort",n,{once:!0})});try{return await Promise.race([e,r])}finally{n&&t.removeEventListener("abort",n)}}async function jp(e,t){try{return await Vt(e,t)}catch(n){throw t?.aborted&&e.then(r=>ze.runTrustedAsync(()=>r.close())).catch(()=>{}),n}}async function Gp(e){e.body&&!e.body.locked&&await e.body.cancel()}function ua(e){let t=e.allowedUrlPrefixes??[];if(!e.dangerouslyAllowFullInternetAccess){let E=uu(t);if(E.length>0)throw new Error(`Invalid network allow-list:
771
+ ${E.join(`
772
+ `)}`)}let n=[];for(let E of t)typeof E=="object"&&E.transform&&E.transform.length>0&&n.push(E);function r(E){if(n.length===0)return null;let b=null;for(let g of n)if(la(E,g.url)&&g.transform){b||(b=new Headers);for(let w of g.transform)for(let[S,v]of Object.entries(w.headers))b.set(S,v)}return b}if(e.maxRedirects!==void 0&&(!Number.isSafeInteger(e.maxRedirects)||e.maxRedirects<0))throw new RangeError("maxRedirects must be a non-negative safe integer");let s=e.maxRedirects??Wp,i=e.timeoutMs??Fp,a=e.maxResponseSize??Vp,o=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??zp,l=e.denyPrivateRanges??(typeof process<"u"&&process.env?.NODE_ENV==="production"),c=e._dnsResolve??Bp,u=e._createConnectionOwner??fu;function f(E){let b=E.startsWith("[")&&E.endsWith("]")?E.slice(1,-1):E;if(/^(?:0|[1-9]\d{0,2})(?:\.(?:0|[1-9]\d{0,2})){3}$/.test(b)&&b.split(".").every(w=>Number(w)<=255))return 4;if(b.includes(":")&&!b.includes("%"))try{if(new URL(`http://[${b}]/`).hostname.length>2)return 6}catch{}return null}function d(E,b,g){let{address:w,family:S}=g;if(f(w)!==S)throw new Ye(E,"DNS returned an invalid address for private IP check");return{hostname:b,address:w,family:S}}async function p(E,b){if(du(b),!e.dangerouslyAllowFullInternetAccess&&!lu(E,t))throw new Ye(E);if(!l)return null;let g;try{g=new URL(E)}catch{throw new Ye(E,"invalid URL")}if(ca(g.hostname))throw new Ye(E,"private/loopback IP address blocked");let w=g.hostname;if(f(w)!==null)return null;let S;try{S=await Vt(c(w),b)}catch{throw b?.aborted?vn(b):new Ye(E,"DNS resolution failed for private IP check")}if(!Array.isArray(S)||S.length===0)throw new Ye(E,"DNS resolution returned no addresses for private IP check");let v=S.map(A=>d(E,w,A));for(let{address:A}of v)if(ca(A))throw new Ye(E,"hostname resolves to private/loopback IP address");return v[0]}function h(E){if(e.dangerouslyAllowFullInternetAccess)return;let b=E.toUpperCase();if(!o.includes(b))throw new is(b,o)}async function m(E,b={}){let g=b.method?.toUpperCase()??"GET",w=b.followRedirects??!0;if(b.maxRedirects!==void 0&&(!Number.isSafeInteger(b.maxRedirects)||b.maxRedirects<0))throw new RangeError("maxRedirects must be a non-negative safe integer");let S=b.maxRedirects??s,v=Math.min(s,S),A=b.timeoutMs!==void 0?Math.min(b.timeoutMs,i):i,x=new AbortController,P=da(()=>x.abort(new DOMException("The operation was aborted","AbortError")),A),D=nr(b.signal,x.signal);try{let I=await p(E,D.signal);h(g);let O=E,B=0;for(;;){du(D.signal);let Y;try{let J=await ze.runTrustedAsync(async()=>{let C=r(O),k=Zp(b.headers,C),N={method:g,headers:k,signal:D.signal,redirect:"manual"};if(b.body&&!qp.has(g)&&(N.body=b.body),!I)return await Vt(fetch(O,N),D.signal);try{return Y=await jp(u(I),D.signal),await Vt(Y.fetch(O,N),D.signal)}catch(M){throw M instanceof Ft?new Ye(O,"DNS pinning unavailable for private IP enforcement"):M}});if(Up.has(J.status)&&w){let C=J.headers.get("location");if(!C)return await pu(J,O,a,D.signal);let k=new URL(C,O).href;await Vt(Gp(J),D.signal);try{I=await p(k,D.signal)}catch{throw D.signal?.aborted?vn(D.signal):new Jn(k)}if(B++,B>v)throw new Yn(v);O=k;continue}return await pu(J,O,a,D.signal)}finally{if(Y){let J=Y,C=ze.runTrustedAsync(()=>J.close());await Vt(C,D.signal)}}}}finally{pa(P),D.cleanup()}}return m}function Zp(e,t){if(!e&&!t)return;if(!t)return e;let n=e instanceof Headers?new Headers(e):new Headers(e);for(let[r,s]of t)n.set(r,s);return n}async function pu(e,t,n,r){let s=Object.create(null);if(e.headers.forEach((a,o)=>{s[o.toLowerCase()]=a}),n>0){let a=e.headers.get("content-length");if(a){let o=parseInt(a,10);if(!Number.isNaN(o)&&o>n)throw new An(n)}}let i;if(n>0&&e.body){let a=e.body.getReader(),o=[],l=0;try{for(;;){let{done:u,value:f}=await Vt(a.read(),r);if(u)break;if(f){if(l+=f.byteLength,l>n)throw await a.cancel(),new An(n);o.push(f)}}}catch(u){throw r?.aborted&&await a.cancel(vn(r)).catch(()=>{}),u}i=new Uint8Array(l);let c=0;for(let u of o)i.set(u,c),c+=u.byteLength}else{let a=await Vt(e.arrayBuffer(),r);if(n>0&&a.byteLength>n)throw new An(n);i=new Uint8Array(a)}return{status:e.status,statusText:e.statusText,headers:s,body:i,url:t}}function fa(e,t){if(e.length>t||T(e)>t)throw new $(`script input size limit exceeded (${t} bytes)`,"string_length")}function hu(e){return Yt(e)}function Yt(e){return e.statements.map(mu).join(`
773
+ `)}function mu(e){let t=[];for(let r=0;r<e.pipelines.length;r++)t.push(Hp(e.pipelines[r])),r<e.operators.length&&t.push(e.operators[r]);let n=t.join(" ");return e.background&&(n+=" &"),n}function Hp(e){let t=[];e.timed&&t.push(e.timePosix?"time -p":"time"),e.negated&&t.push("!");let n=[];for(let s=0;s<e.commands.length;s++)if(n.push(yu(e.commands[s])),s<e.commands.length-1){let i=e.pipeStderr?.[s];n.push(i?"|&":"|")}return(t.length>0?`${t.join(" ")} `:"")+n.join(" ")}function yu(e){switch(e.type){case"SimpleCommand":return Qp(e);case"If":return sh(e);case"For":return ih(e);case"CStyleFor":return ah(e);case"While":return oh(e);case"Until":return lh(e);case"Case":return ch(e);case"Subshell":return fh(e);case"Group":return dh(e);case"ArithmeticCommand":return ph(e);case"ConditionalCommand":return hh(e);case"FunctionDef":return mh(e);default:{let t=e;throw new Error(`Unsupported command type: ${t.type}`)}}}function Qp(e){let t=[];for(let n of e.assignments)t.push(Kp(n));e.name&&t.push(_e(e.name));for(let n of e.args)t.push(_e(n));for(let n of e.redirections)t.push(Eu(n));return t.join(" ")}function Kp(e){let t=e.append?"+=":"=";if(e.array){let n=e.array.map(_e).join(" ");return`${e.name}${t}(${n})`}return e.value?`${e.name}${t}${_e(e.value)}`:`${e.name}${t}`}function _e(e){return e.parts.map(t=>as(t,!1)).join("")}function zt(e){return e.parts.map(t=>as(t,!0)).join("")}function as(e,t){switch(e.type){case"Literal":return t?Yp(e.value):Xp(e.value);case"SingleQuoted":return`'${e.value}'`;case"DoubleQuoted":return`"${e.parts.map(n=>as(n,!0)).join("")}"`;case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return gu(e);case"CommandSubstitution":return e.legacy?`\`${Yt(e.body)}\``:`$(${Yt(e.body)})`;case"ArithmeticExpansion":return`$((${ce(e.expression.expression)}))`;case"ProcessSubstitution":return e.direction==="input"?`<(${Yt(e.body)})`:`>(${Yt(e.body)})`;case"BraceExpansion":return nh(e);case"TildeExpansion":return e.user!==null?`~${e.user}`:"~";case"Glob":return e.pattern;default:{let n=e;throw new Error(`Unsupported word part type: ${n.type}`)}}}function Xp(e){return e.replace(/[\s\\'"`!|&;()<>{}[\]*?~#]/g,"\\$&")}function Yp(e){return e.replace(/[$`"\\]/g,"\\$&")}function Jp(e,t){return e.parts.map(n=>eh(n,t)).join("")}function eh(e,t){switch(e.type){case"Literal":return t?e.value:e.value.replace(/[$`]/g,"\\$&");case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return gu(e);case"CommandSubstitution":return e.legacy?`\`${Yt(e.body)}\``:`$(${Yt(e.body)})`;case"ArithmeticExpansion":return`$((${ce(e.expression.expression)}))`;default:return as(e,!1)}}function gu(e){return e.operation?`\${${wu(e.parameter,e.operation)}}`:th(e.parameter)?`\${${e.parameter}}`:`$${e.parameter}`}function th(e){return!(/^[?#@*$!\-0-9]$/.test(e)||/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e))}function wu(e,t){switch(t.type){case"Length":return`#${e}`;case"LengthSliceError":return`#${e}:`;case"BadSubstitution":return t.text;case"DefaultValue":return`${e}${t.checkEmpty?":":""}-${zt(t.word)}`;case"AssignDefault":return`${e}${t.checkEmpty?":":""}=${zt(t.word)}`;case"ErrorIfUnset":return`${e}${t.checkEmpty?":":""}?${t.word?zt(t.word):""}`;case"UseAlternative":return`${e}${t.checkEmpty?":":""}+${zt(t.word)}`;case"Substring":{let n=ce(t.offset.expression);return t.length?`${e}:${n}:${ce(t.length.expression)}`:`${e}:${n}`}case"PatternRemoval":{let n=t.side==="prefix"?"#":"%",r=t.greedy?`${n}${n}`:n;return`${e}${r}${zt(t.pattern)}`}case"PatternReplacement":{let n="/";t.all?n="//":t.anchor==="start"?n="/#":t.anchor==="end"&&(n="/%");let r=t.replacement?`/${zt(t.replacement)}`:"";return`${e}${n}${zt(t.pattern)}${r}`}case"CaseModification":{let n=t.direction==="upper"?"^":",",r=t.all?`${n}${n}`:n,s=t.pattern?zt(t.pattern):"";return`${e}${r}${s}`}case"Transform":return`${e}@${t.operator}`;case"Indirection":return t.innerOp?`!${wu(e,t.innerOp)}`:`!${e}`;case"ArrayKeys":return`!${t.array}[${t.star?"*":"@"}]`;case"VarNamePrefix":return`!${t.prefix}${t.star?"*":"@"}`;default:{let n=t;throw new Error(`Unsupported parameter operation type: ${n.type}`)}}}function nh(e){return`{${e.items.map(rh).join(",")}}`}function rh(e){if(e.type==="Word")return _e(e.word);let t=e.startStr??String(e.start),n=e.endStr??String(e.end);return e.step!==void 0?`${t}..${n}..${e.step}`:`${t}..${n}`}function Eu(e){let t=e.fdVariable?`{${e.fdVariable}}`:e.fd!==null?String(e.fd):"";if(e.operator==="<<"||e.operator==="<<-"){let n=e.target,r=n.quoted?`'${n.delimiter}'`:n.delimiter,s=Jp(n.content,n.quoted);return`${t}${e.operator}${r}
774
+ ${s}${n.delimiter}`}return e.operator==="<<<"?`${t}<<< ${_e(e.target)}`:e.operator==="&>"||e.operator==="&>>"?`${e.operator} ${_e(e.target)}`:`${t}${e.operator} ${_e(e.target)}`}function lt(e){return e.length===0?"":` ${e.map(Eu).join(" ")}`}function Je(e){return e.map(mu).join(`
775
+ `)}function sh(e){let t=[];for(let n=0;n<e.clauses.length;n++){let r=e.clauses[n],s=n===0?"if":"elif";t.push(`${s} ${Je(r.condition)}; then
776
+ ${Je(r.body)}`)}return e.elseBody&&t.push(`else
777
+ ${Je(e.elseBody)}`),`${t.join(`
757
778
  `)}
758
- fi${Ge(e.redirections)}`}function Ld(e){let t;if(e.words===null)t=`for ${e.variable}`;else{let s=e.words.map(Se).join(" ");t=`for ${e.variable} in ${s}`}return`${t}; do
759
- ${Ve(e.body)}
760
- done${Ge(e.redirections)}`}function Td(e){let t=e.init?ne(e.init.expression):"",s=e.condition?ne(e.condition.expression):"",r=e.update?ne(e.update.expression):"";return`for ((${t}; ${s}; ${r})); do
761
- ${Ve(e.body)}
762
- done${Ge(e.redirections)}`}function Wd(e){return`while ${Ve(e.condition)}; do
763
- ${Ve(e.body)}
764
- done${Ge(e.redirections)}`}function Md(e){return`until ${Ve(e.condition)}; do
765
- ${Ve(e.body)}
766
- done${Ge(e.redirections)}`}function Fd(e){let t=e.items.map(Vd).join(`
767
- `);return`case ${Se(e.word)} in
779
+ fi${lt(e.redirections)}`}function ih(e){let t;if(e.words===null)t=`for ${e.variable}`;else{let n=e.words.map(_e).join(" ");t=`for ${e.variable} in ${n}`}return`${t}; do
780
+ ${Je(e.body)}
781
+ done${lt(e.redirections)}`}function ah(e){let t=e.init?ce(e.init.expression):"",n=e.condition?ce(e.condition.expression):"",r=e.update?ce(e.update.expression):"";return`for ((${t}; ${n}; ${r})); do
782
+ ${Je(e.body)}
783
+ done${lt(e.redirections)}`}function oh(e){return`while ${Je(e.condition)}; do
784
+ ${Je(e.body)}
785
+ done${lt(e.redirections)}`}function lh(e){return`until ${Je(e.condition)}; do
786
+ ${Je(e.body)}
787
+ done${lt(e.redirections)}`}function ch(e){let t=e.items.map(uh).join(`
788
+ `);return`case ${_e(e.word)} in
768
789
  ${t}
769
- esac${Ge(e.redirections)}`}function Vd(e){let t=e.patterns.map(Se).join(" | "),s=Ve(e.body);return s?`${t})
770
- ${s}
790
+ esac${lt(e.redirections)}`}function uh(e){let t=e.patterns.map(_e).join(" | "),n=Je(e.body);return n?`${t})
791
+ ${n}
771
792
  ${e.terminator}`:`${t})
772
- ${e.terminator}`}function zd(e){return`(${Ve(e.body)})${Ge(e.redirections)}`}function Bd(e){return`{ ${Ve(e.body)}; }${Ge(e.redirections)}`}function qd(e){return`((${ne(e.expression.expression)}))${Ge(e.redirections)}`}function jd(e){return`[[ ${_t(e.expression)} ]]${Ge(e.redirections)}`}function Ud(e){let t=nc(e.body);return`${e.name}() ${t}${Ge(e.redirections)}`}function ne(e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return e.hasDollarPrefix?`$${e.name}`:e.name;case"ArithSpecialVar":return`$${e.name}`;case"ArithBinary":return`${ne(e.left)} ${e.operator} ${ne(e.right)}`;case"ArithUnary":return e.prefix?`${e.operator}${ne(e.operand)}`:`${ne(e.operand)}${e.operator}`;case"ArithTernary":return`${ne(e.condition)} ? ${ne(e.consequent)} : ${ne(e.alternate)}`;case"ArithAssignment":return`${e.subscript?`${e.variable}[${ne(e.subscript)}]`:e.stringKey!==void 0?`${e.variable}[${e.stringKey}]`:e.variable} ${e.operator} ${ne(e.value)}`;case"ArithDynamicAssignment":return`${e.subscript?`${ne(e.target)}[${ne(e.subscript)}]`:ne(e.target)} ${e.operator} ${ne(e.value)}`;case"ArithDynamicElement":return`${ne(e.nameExpr)}[${ne(e.subscript)}]`;case"ArithGroup":return`(${ne(e.expression)})`;case"ArithNested":return`$((${ne(e.expression)}))`;case"ArithCommandSubst":return`$(${e.command})`;case"ArithBracedExpansion":return`\${${e.content}}`;case"ArithArrayElement":return e.stringKey!==void 0?`${e.array}[${e.stringKey}]`:e.index?`${e.array}[${ne(e.index)}]`:e.array;case"ArithDynamicBase":return`\${${e.baseExpr}}#${e.value}`;case"ArithDynamicNumber":return`\${${e.prefix}}${e.suffix}`;case"ArithConcat":return e.parts.map(ne).join("");case"ArithDoubleSubscript":return`${e.array}[${ne(e.index)}]`;case"ArithNumberSubscript":return`${e.number}[${e.errorToken}]`;case"ArithSyntaxError":return e.errorToken;case"ArithSingleQuote":return`'${e.content}'`;default:{let t=e;throw new Error(`Unsupported arithmetic expression type: ${t.type}`)}}}function _t(e){switch(e.type){case"CondBinary":return`${Se(e.left)} ${e.operator} ${Se(e.right)}`;case"CondUnary":return`${e.operator} ${Se(e.operand)}`;case"CondNot":return`! ${_t(e.operand)}`;case"CondAnd":return`${_t(e.left)} && ${_t(e.right)}`;case"CondOr":return`${_t(e.left)} || ${_t(e.right)}`;case"CondGroup":return`( ${_t(e.expression)} )`;case"CondWord":return Se(e.word);default:{let t=e;throw new Error(`Unsupported conditional expression type: ${t.type}`)}}}var wn=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;defenseInDepthConfig;coverageWriter;jsBootstrapCode;invokeToolFn;transformPlugins=[];state;constructor(t={}){let s=t.fs??new Jt(t.files);this.fs=s,this.useDefaultLayout=!t.cwd&&!t.files;let r=t.cwd||(this.useDefaultLayout?"/home/user":"/"),n=new Map([["HOME",this.useDefaultLayout?"/home/user":"/"],["PATH","/usr/bin:/bin"],["IFS",`
773
- `],["OSTYPE","linux-gnu"],["MACHTYPE","x86_64-pc-linux-gnu"],["HOSTTYPE","x86_64"],["HOSTNAME","localhost"],["PWD",r],["OLDPWD",r],["OPTIND","1"],...Object.entries(t.env??{})]);if(this.limits=Zl({...t.executionLimits,...t.maxCallDepth!==void 0&&{maxCallDepth:t.maxCallDepth},...t.maxCommandCount!==void 0&&{maxCommandCount:t.maxCommandCount},...t.maxLoopIterations!==void 0&&{maxLoopIterations:t.maxLoopIterations}}),t.fetch?this.secureFetch=t.fetch:t.network&&(this.secureFetch=ci(t.network)),this.sleepFn=t.sleep,this.traceFn=t.trace,this.logger=t.logger,this.defenseInDepthConfig=t.defenseInDepth??!0,this.coverageWriter=t.coverage,this.state={env:n,cwd:r,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,virtualPid:t.processInfo?.pid??1,virtualPpid:t.processInfo?.ppid??0,virtualUid:t.processInfo?.uid??1e3,virtualGid:t.processInfo?.gid??1e3,bashPid:t.processInfo?.pid??1,nextVirtualPid:(t.processInfo?.pid??1)+1,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1,posix:!1,allexport:!1,noclobber:!1,noglob:!1,noexec:!1,vi:!1,emacs:!1},shoptOptions:{extglob:!1,dotglob:!1,nullglob:!1,failglob:!1,globstar:!1,globskipdots:!0,nocaseglob:!1,nocasematch:!1,expand_aliases:!1,lastpipe:!1,xpg_echo:!1},inCondition:!1,loopDepth:0,exportedVars:new Set(["HOME","PATH","PWD","OLDPWD",...Object.keys(t.env||{})]),readonlyVars:new Set(["SHELLOPTS","BASHOPTS"]),hashTable:new Map},this.state.env.set("SHELLOPTS",_n(this.state.options)),this.state.env.set("BASHOPTS",Pn(this.state.shoptOptions)),Ni(s,this.useDefaultLayout,{pid:this.state.virtualPid,ppid:this.state.virtualPpid,uid:this.state.virtualUid,gid:this.state.virtualGid}),r!=="/"&&s instanceof Jt)try{s.mkdirSync(r,{recursive:!0})}catch{}for(let a of gi(t.commands))this.registerCommand(a);if(t.fetch||t.network)for(let a of yi())this.registerCommand(a);if(t.python)for(let a of wi())this.registerCommand(a);let i=typeof t.javascript=="object"?t.javascript:Object.create(null);if(t.javascript||i.invokeTool){for(let a of Ei())this.registerCommand(a);i.bootstrap&&(this.jsBootstrapCode=i.bootstrap),i.invokeTool&&(this.invokeToolFn=i.invokeTool)}if(t.customCommands)for(let a of t.customCommands)bi(a)?this.registerCommand(vi(a)):this.registerCommand({...a,trusted:a.trusted??!0})}registerCommand(t){this.commands.set(t.name,t);let s=this.fs;if(typeof s.writeFileSync=="function"){let r=`#!/bin/bash
793
+ ${e.terminator}`}function fh(e){return`(${Je(e.body)})${lt(e.redirections)}`}function dh(e){return`{ ${Je(e.body)}; }${lt(e.redirections)}`}function ph(e){return`((${ce(e.expression.expression)}))${lt(e.redirections)}`}function hh(e){return`[[ ${Xt(e.expression)} ]]${lt(e.redirections)}`}function mh(e){let t=yu(e.body);return`${e.name}() ${t}${lt(e.redirections)}`}function ce(e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return e.hasDollarPrefix?`$${e.name}`:e.name;case"ArithSpecialVar":return`$${e.name}`;case"ArithBinary":return`${ce(e.left)} ${e.operator} ${ce(e.right)}`;case"ArithUnary":return e.prefix?`${e.operator}${ce(e.operand)}`:`${ce(e.operand)}${e.operator}`;case"ArithTernary":return`${ce(e.condition)} ? ${ce(e.consequent)} : ${ce(e.alternate)}`;case"ArithAssignment":return`${e.subscript?`${e.variable}[${ce(e.subscript)}]`:e.stringKey!==void 0?`${e.variable}[${e.stringKey}]`:e.variable} ${e.operator} ${ce(e.value)}`;case"ArithDynamicAssignment":return`${e.subscript?`${ce(e.target)}[${ce(e.subscript)}]`:ce(e.target)} ${e.operator} ${ce(e.value)}`;case"ArithDynamicElement":return`${ce(e.nameExpr)}[${ce(e.subscript)}]`;case"ArithGroup":return`(${ce(e.expression)})`;case"ArithNested":return`$((${ce(e.expression)}))`;case"ArithCommandSubst":return`$(${e.command})`;case"ArithBracedExpansion":return`\${${e.content}}`;case"ArithArrayElement":return e.stringKey!==void 0?`${e.array}[${e.stringKey}]`:e.index?`${e.array}[${ce(e.index)}]`:e.array;case"ArithDynamicBase":return`\${${e.baseExpr}}#${e.value}`;case"ArithDynamicNumber":return`\${${e.prefix}}${e.suffix}`;case"ArithConcat":return e.parts.map(ce).join("");case"ArithDoubleSubscript":return`${e.array}[${ce(e.index)}]`;case"ArithNumberSubscript":return`${e.number}[${e.errorToken}]`;case"ArithSyntaxError":return e.errorToken;case"ArithSingleQuote":return`'${e.content}'`;default:{let t=e;throw new Error(`Unsupported arithmetic expression type: ${t.type}`)}}}function Xt(e){switch(e.type){case"CondBinary":return`${_e(e.left)} ${e.operator} ${_e(e.right)}`;case"CondUnary":return`${e.operator} ${_e(e.operand)}`;case"CondNot":return`! ${Xt(e.operand)}`;case"CondAnd":return`${Xt(e.left)} && ${Xt(e.right)}`;case"CondOr":return`${Xt(e.left)} || ${Xt(e.right)}`;case"CondGroup":return`( ${Xt(e.expression)} )`;case"CondWord":return _e(e.word);default:{let t=e;throw new Error(`Unsupported conditional expression type: ${t.type}`)}}}var os=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;defenseInDepthConfig;coverageWriter;jsBootstrapCode;invokeToolFn;transformPlugins=[];state;constructor(t={}){this.limits=gs({...t.executionLimits,...t.maxCallDepth!==void 0&&{maxCallDepth:t.maxCallDepth},...t.maxCommandCount!==void 0&&{maxCommandCount:t.maxCommandCount},...t.maxLoopIterations!==void 0&&{maxLoopIterations:t.maxLoopIterations}},t.executionLimitProfile);let n=t.fs??new Cn(t.files,{maxTotalBytes:this.limits.maxFileSystemBytes});this.fs=n,this.useDefaultLayout=!t.cwd&&!t.files;let r=t.cwd||(this.useDefaultLayout?"/home/user":"/"),s=new Map([["HOME",this.useDefaultLayout?"/home/user":"/"],["PATH","/usr/bin:/bin"],["IFS",`
794
+ `],["OSTYPE","linux-gnu"],["MACHTYPE","x86_64-pc-linux-gnu"],["HOSTTYPE","x86_64"],["HOSTNAME","localhost"],["PWD",r],["OLDPWD",r],["OPTIND","1"],...Object.entries(t.env??{})]);if(t.fetch?this.secureFetch=t.fetch:t.network&&(this.secureFetch=ua(t.network)),this.sleepFn=t.sleep,this.traceFn=t.trace,this.logger=t.logger,this.defenseInDepthConfig=t.defenseInDepth??!0,this.coverageWriter=t.coverage,this.state={env:s,arrays:new Map,cwd:r,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,virtualPid:t.processInfo?.pid??1,virtualPpid:t.processInfo?.ppid??0,virtualUid:t.processInfo?.uid??1e3,virtualGid:t.processInfo?.gid??1e3,bashPid:t.processInfo?.pid??1,nextVirtualPid:(t.processInfo?.pid??1)+1,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1,posix:!1,allexport:!1,noclobber:!1,noglob:!1,noexec:!1,vi:!1,emacs:!1},shoptOptions:{extglob:!1,dotglob:!1,nullglob:!1,failglob:!1,globstar:!1,globskipdots:!0,nocaseglob:!1,nocasematch:!1,expand_aliases:!1,lastpipe:!1,xpg_echo:!1},inCondition:!1,loopDepth:0,exportedVars:new Set(["HOME","PATH","PWD","OLDPWD",...Object.keys(t.env||{})]),readonlyVars:new Set(["SHELLOPTS","BASHOPTS"]),hashTable:new Map},this.state.env.set("SHELLOPTS",Ss(this.state.options)),this.state.env.set("BASHOPTS",As(this.state.shoptOptions)),La(n,this.useDefaultLayout,{pid:this.state.virtualPid,ppid:this.state.virtualPpid,uid:this.state.virtualUid,gid:this.state.virtualGid}),r!=="/"&&n instanceof Cn)try{n.mkdirSync(r,{recursive:!0})}catch{}for(let a of Ea(t.commands))this.registerBundledCommand(a);if(t.fetch||t.network)for(let a of ba())this.registerBundledCommand(a);if(t.python)for(let a of Sa())this.registerBundledCommand(a);let i=typeof t.javascript=="object"?t.javascript:Object.create(null);if(t.javascript||i.invokeTool){for(let a of Aa())this.registerBundledCommand(a);i.bootstrap&&(this.jsBootstrapCode=i.bootstrap),i.invokeTool&&(this.invokeToolFn=i.invokeTool)}if(t.customCommands)for(let a of t.customCommands)if(Na(a)){let o=Pa(a);this.registerCommandInternal(o,!0)}else this.registerCommandInternal(a,!0)}registerCommand(t){this.registerCommandInternal(t,!0)}registerBundledCommand(t){this.registerCommandInternal(t,!1)}registerCommandInternal(t,n,r=n?t.trusted??!0:t.trusted){this.commands.set(t.name,{name:t.name,trusted:r,internalIsExtension:n,execute:(i,a)=>t.execute(i,a)});let s=this.fs;if(typeof s.writeFileSync=="function"){let i=`#!/bin/bash
774
795
  # Built-in command: ${t.name}
775
- `;try{s.writeFileSync(`/bin/${t.name}`,r)}catch{}try{s.writeFileSync(`/usr/bin/${t.name}`,r)}catch{}}}logResult(t){return this.logger&&(t.stdout&&this.logger.debug("stdout",{output:t.stdout}),t.stderr&&this.logger.info("stderr",{output:t.stderr}),this.logger.info("exit",{exitCode:t.exitCode})),t.stdout=lc(t.stdout),t.stderr=lc(t.stderr),t}async exec(t,s){if(this.state.callDepth===0&&(this.state.commandCount=0),this.state.commandCount++,this.state.commandCount>this.limits.maxCommandCount)return{stdout:"",stderr:`bash: maximum command count (${this.limits.maxCommandCount}) exceeded (possible infinite loop). Increase with executionLimits.maxCommandCount option.
776
- `,exitCode:1,env:Fe(this.state.env,s?.env)};if(!t.trim())return{stdout:"",stderr:"",exitCode:0,env:Fe(this.state.env,s?.env)};this.logger?.info("exec",{command:t});let r=s?.cwd??this.state.cwd,n,i=r;if(s?.cwd)if(s.env&&"PWD"in s.env)n=s.env.PWD;else if(s?.env&&!("PWD"in s.env))try{n=await this.fs.realpath(r),i=n}catch{n=r}else n=r;let a=s?.replaceEnv?new Map:new Map(this.state.env);if(s?.env)for(let[f,d]of Object.entries(s.env))a.set(f,d);n!==void 0&&a.set("PWD",n);let l={...this.state,env:a,cwd:i,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options},hashTable:this.state.hashTable,groupStdin:Gd(s?.stdin,s?.stdinKind),signal:s?.signal,extraArgs:s?.args},o=t;s?.rawScript||(o=oc(t));let u=this.defenseInDepthConfig?Be.getInstance(this.defenseInDepthConfig):null,c=u?.activate();try{let f=async()=>{let d=qe(o,{maxHeredocSize:this.limits.maxHeredocSize}),h;if(this.transformPlugins.length>0){let v=Object.create(null);for(let E of this.transformPlugins){let w=E.transform({ast:d,metadata:v});d=w.ast,w.metadata&&(v=vn(v,w.metadata))}h=v}let p={fs:this.fs,commands:this.commands,limits:this.limits,exec:this.exec.bind(this),fetch:this.secureFetch,sleep:this.sleepFn,trace:this.traceFn,coverage:this.coverageWriter,requireDefenseContext:u?.isEnabled()===!0,jsBootstrapCode:this.jsBootstrapCode,invokeTool:this.invokeToolFn},b=await new hs(p,l).executeScript(d);return h&&(b.metadata=h),this.logResult(b)};return c?await c.run(f):await f()}catch(f){if(f instanceof j)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:Fe(this.state.env,s?.env)});if(f instanceof Me)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:Fe(this.state.env,s?.env)});if(f instanceof te)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:1,env:Fe(this.state.env,s?.env)});if(f instanceof Es)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:124,env:Fe(this.state.env,s?.env)});if(f instanceof Q)return this.logResult({stdout:f.stdout,stderr:Re(f.stderr),exitCode:Q.EXIT_CODE,env:Fe(this.state.env,s?.env)});if(f instanceof It)return this.logResult({stdout:"",stderr:`bash: security violation: ${Re(f.message)}
777
- `,exitCode:1,env:Fe(this.state.env,s?.env)});if(f.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${Re(f.message)}
778
- `,exitCode:2,env:Fe(this.state.env,s?.env)});if(f instanceof ht)return this.logResult({stdout:"",stderr:`bash: ${Re(f.message)}
779
- `,exitCode:2,env:Fe(this.state.env,s?.env)});if(f instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${Re(f.message)}
780
- `,exitCode:1,env:Fe(this.state.env,s?.env)});throw f}finally{c?.deactivate()}}async readFile(t){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,t))}async writeFile(t,s){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,t),s)}getCwd(){return this.state.cwd}getEnv(){return ft(this.state.env)}registerTransformPlugin(t){this.transformPlugins.push(t)}transform(t){let s=oc(t),r=qe(s,{maxHeredocSize:this.limits.maxHeredocSize}),n=Object.create(null);for(let i of this.transformPlugins){let a=i.transform({ast:r,metadata:n});r=a.ast,a.metadata&&(n=vn(n,a.metadata))}return{script:tc(r),ast:r,metadata:n}}};function Zd(e,t){let s=t;for(let r=0;r<e.length;r++){let n=e[r];if(s==="single")n==="'"&&(s="none");else if(s==="double")n==="\\"?r++:n==='"'&&(s="none");else if(n==="'")s="single";else if(n==='"')s="double";else if(n==="\\")r++;else if(n==="#"&&(r===0||/\s/.test(e[r-1])))break}return s}function oc(e){let t=e.split(`
781
- `),s=[],r=[],n="none";for(let i=0;i<t.length;i++){let a=t[i];if(r.length>0){let c=r[r.length-1];if((c.stripTabs?a.replace(/^\t+/,""):a)===c.delimiter){s.push(a.trimStart()),r.pop();continue}s.push(a);continue}let l=n,o=l==="none"?a.trimStart():a;if(s.push(o),n=Zd(a,l),l!=="none")continue;let u=/<<(-?)\s*(['"]?)([\w-]+)\2/g;for(let c of o.matchAll(u)){let f=c[1]==="-",d=c[3];r.push({delimiter:d,stripTabs:f})}}return s.join(`
782
- `)}var Hd=new TextDecoder("utf-8",{fatal:!0});function lc(e){if(!e)return e;let t=!1;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>255)return e;n>127&&(t=!0)}if(!t)return e;let s=new Uint8Array(e.length);for(let r=0;r<e.length;r++)s[r]=e.charCodeAt(r);try{return Hd.decode(s)}catch{return e}}function Gd(e,t){if(e!==void 0)return t==="bytes"?e:St(e)}import*as re from"node:fs";import*as Ee from"node:path";import*as ze from"node:fs";import*as Ae from"node:path";function ys(e,t){if(e===t)return!0;let s=e[t.length];return(s==="/"||s==="\\")&&e.startsWith(t)}function gs(e,t){try{let s=ze.realpathSync(e);return ys(s,t)?s:null}catch(s){if(s.code==="ENOENT"){let r=Ae.dirname(e);if(r===e)return null;let n=gs(r,t);if(n===null)return null;try{if(ze.lstatSync(e).isSymbolicLink()){let a=ze.readlinkSync(e),l=Ae.isAbsolute(a)?a:Ae.resolve(Ae.dirname(e),a);if(gs(l,t)===null)return null}}catch{}return Ae.join(n,Ae.basename(e))}return null}}function cc(e,t,s){let r=gs(e,s);if(r===null)return null;let n=Ae.resolve(e),i=n.slice(t.length),a=r.slice(s.length);if(i!==a)return null;try{if(ze.lstatSync(n).isSymbolicLink())return null}catch{}return r}function uc(e,t){if(!ze.existsSync(e))throw new Error(`${t} root does not exist`);if(!ze.statSync(e).isDirectory())throw new Error(`${t} root is not a directory`)}function fc(e,t){if(!Ae.isAbsolute(e))return{withinRoot:!0,relativePath:e};let s;try{s=ze.realpathSync(e)}catch{s=Ae.resolve(e)}return ys(s,t)?{withinRoot:!0,relativePath:s.slice(t.length).replace(/\\/g,"/")||"/"}:{withinRoot:!1,safeName:Ae.basename(e)}}function dc(e,t,s,r){let n=e;if(n.path===void 0){for(let a of r)if(n.message?.includes(a))throw e}let i=n.code||"EIO";throw new Error(`${i}: ${s} '${t}'`)}var Qd=["ELOOP","EFBIG","EPERM"],Kd="/home/user/project",Qt=class{root;canonicalRoot;mountPoint;readOnly;maxFileReadSize;allowSymlinks;memory=new Map;deleted=new Set;constructor(t){this.root=Ee.resolve(t.root);let s=t.mountPoint??Kd;if(this.mountPoint=s==="/"?"/":s.replace(/\/+$/,""),!this.mountPoint.startsWith("/"))throw new Error(`Mount point must be an absolute path: ${s}`);this.readOnly=t.readOnly??!1,this.maxFileReadSize=t.maxFileReadSize??10485760,this.allowSymlinks=t.allowSymlinks??!1,uc(this.root,"OverlayFs"),this.canonicalRoot=re.realpathSync(this.root),this.createMountPointDirs()}assertWritable(t){if(this.readOnly)throw new Error(`EROFS: read-only file system, ${t}`)}createMountPointDirs(){let t=this.mountPoint.split("/").filter(Boolean),s="";for(let r of t)s+=`/${r}`,this.memory.has(s)||this.memory.set(s,{type:"directory",mode:493,mtime:new Date});this.memory.has("/")||this.memory.set("/",{type:"directory",mode:493,mtime:new Date})}getMountPoint(){return this.mountPoint}mkdirSync(t,s){let n=B(t).split("/").filter(Boolean),i="";for(let a of n)i+=`/${a}`,this.memory.has(i)||this.memory.set(i,{type:"directory",mode:493,mtime:new Date})}writeFileSync(t,s){let r=B(t),n=this.getDirname(r);n!=="/"&&this.mkdirSync(n);let i=s instanceof Uint8Array?s:new TextEncoder().encode(s);this.memory.set(r,{type:"file",content:i,mode:420,mtime:new Date})}getDirname(t){let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}getRelativeToMount(t){return this.mountPoint==="/"?t:t===this.mountPoint?"/":t.startsWith(`${this.mountPoint}/`)?t.slice(this.mountPoint.length):null}toRealPath(t){let s=B(t),r=this.getRelativeToMount(s);if(r===null)return null;let n=Ee.join(this.root,r),i=Ee.resolve(n);return ys(i,this.root)?i:null}resolveRealPath_(t){return t?this.allowSymlinks?gs(t,this.canonicalRoot):cc(t,this.root,this.canonicalRoot):null}resolveRealPathParent_(t){if(!t)return null;let s=Ee.dirname(t),r=this.resolveRealPath_(s);return r===null?null:Ee.join(r,Ee.basename(t))}sanitizeError(t,s,r){dc(t,s,r,Qd)}ensureParentDirs(t){let s=At(t);s!=="/"&&(this.memory.has(s)||(this.ensureParentDirs(s),this.memory.set(s,{type:"directory",mode:493,mtime:new Date})),this.deleted.delete(s))}async existsInOverlay(t){let s=B(t);if(this.deleted.has(s))return!1;if(this.memory.has(s))return!0;let r=this.resolveRealPathParent_(this.toRealPath(s));if(!r)return!1;try{return await re.promises.lstat(r),!0}catch{return!1}}async readFile(t,s){let r=await this.readFileBuffer(t),n=dt(s);return xt(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return xt(s,"binary")}async readFileBuffer(t,s=new Set){K(t,"open");let r=B(t);if(s.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);if(s.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, open '${t}'`);let n=this.memory.get(r);if(n){if(n.type==="symlink"){let a=this.resolveSymlink(r,n.target);return this.readFileBuffer(a,s)}if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, open '${t}'`);try{let a=await re.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, open '${t}'`);let u=await re.promises.readlink(i),c=this.realTargetToVirtual(r,u),f=this.resolveSymlink(r,c);return this.readFileBuffer(f,s)}if(a.isDirectory())throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(this.maxFileReadSize>0&&a.size>this.maxFileReadSize)throw new Error(`EFBIG: file too large, read '${t}' (${a.size} bytes, max ${this.maxFileReadSize})`);let l=this.allowSymlinks?re.constants.O_RDONLY:re.constants.O_RDONLY|re.constants.O_NOFOLLOW,o=await re.promises.open(i,l);try{let u=await o.readFile();return new Uint8Array(u)}finally{await o.close()}}catch(a){let l=a.code;if(l==="ENOENT")throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(l==="ELOOP")throw new Error(`ENOENT: no such file or directory, open '${t}'`);this.sanitizeError(a,t,"open")}}async writeFile(t,s,r){K(t,"write"),this.assertWritable(`write '${t}'`);let n=B(t);this.ensureParentDirs(n);let i=dt(r),a=Ct(s,i);this.memory.set(n,{type:"file",content:a,mode:420,mtime:new Date}),this.deleted.delete(n)}async appendFile(t,s,r){K(t,"append"),this.assertWritable(`append '${t}'`);let n=B(t),i=dt(r),a=Ct(s,i),l;try{l=await this.readFileBuffer(n)}catch{l=new Uint8Array(0)}let o=new Uint8Array(l.length+a.length);o.set(l),o.set(a,l.length),this.ensureParentDirs(n),this.memory.set(n,{type:"file",content:o,mode:420,mtime:new Date}),this.deleted.delete(n)}async exists(t){return t.includes("\0")?!1:this.existsInOverlay(t)}async stat(t,s=new Set){K(t,"stat");let r=B(t);if(s.has(r))throw new Error(`ELOOP: too many levels of symbolic links, stat '${t}'`);if(s.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let n=this.memory.get(r);if(n){if(n.type==="symlink"){let l=this.resolveSymlink(r,n.target);return this.stat(l,s)}let a=0;return n.type==="file"&&(a=n.content.length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:a,mtime:n.mtime}}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);try{let a=await re.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let l=await re.promises.readlink(i),o=this.realTargetToVirtual(r,l),u=this.resolveSymlink(r,o);return this.stat(u,s)}return{isFile:a.isFile(),isDirectory:a.isDirectory(),isSymbolicLink:!1,mode:a.mode,size:a.size,mtime:a.mtime}}catch(a){if(a.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, stat '${t}'`);this.sanitizeError(a,t,"stat")}}async lstat(t){K(t,"lstat");let s=B(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);let r=this.memory.get(s);if(r){if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime};let i=0;return r.type==="file"&&(i=r.content.length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:i,mtime:r.mtime}}let n=this.resolveRealPathParent_(this.toRealPath(s));if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);try{let i=await re.promises.lstat(n);return{isFile:i.isFile(),isDirectory:i.isDirectory(),isSymbolicLink:i.isSymbolicLink(),mode:i.mode,size:i.size,mtime:i.mtime}}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);this.sanitizeError(i,t,"lstat")}}resolveSymlink(t,s){return Ot(t,s)}realTargetToVirtual(t,s){let r=fc(s,this.canonicalRoot);if(r.withinRoot){if(!Ee.isAbsolute(s))return s;let n=r.relativePath;return this.mountPoint==="/"?n:`${this.mountPoint}${n}`}return r.safeName}async mkdir(t,s){K(t,"mkdir"),this.assertWritable(`mkdir '${t}'`);let r=B(t);if(await this.existsInOverlay(r)){if(!s?.recursive)throw new Error(`EEXIST: file already exists, mkdir '${t}'`);return}let i=At(r);if(i!=="/"&&!await this.existsInOverlay(i))if(s?.recursive)await this.mkdir(i,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.memory.set(r,{type:"directory",mode:493,mtime:new Date}),this.deleted.delete(r)}async readdirCore(t,s){if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Map,n=new Set,i=s==="/"?"/":`${s}/`;for(let l of this.deleted)if(l.startsWith(i)){let o=l.slice(i.length),u=o.split("/")[0];u&&!o.includes("/",u.length)&&n.add(u)}for(let[l,o]of this.memory)if(l!==s&&l.startsWith(i)){let u=l.slice(i.length),c=u.split("/")[0];c&&!n.has(c)&&!u.includes("/",1)&&r.set(c,{name:c,isFile:o.type==="file",isDirectory:o.type==="directory",isSymbolicLink:o.type==="symlink"})}let a=this.resolveRealPath_(this.toRealPath(s));if(a)try{if(!this.allowSymlinks&&(await re.promises.lstat(a)).isSymbolicLink()){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);return r}let l=await re.promises.readdir(a,{withFileTypes:!0});for(let o of l)!n.has(o.name)&&!r.has(o.name)&&r.set(o.name,{name:o.name,isFile:o.isFile(),isDirectory:o.isDirectory(),isSymbolicLink:o.isSymbolicLink()})}catch(l){if(l.code==="ENOENT"){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`)}else l.code!=="ENOTDIR"&&this.sanitizeError(l,t,"scandir")}return r}async resolveForReaddir(t,s=!1){let r=B(t),n=new Set,i=s,a=this.memory.get(r);for(;a&&a.type==="symlink";){if(n.has(r))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(r),i=!0,r=this.resolveSymlink(r,a.target),a=this.memory.get(r)}if(a)return{normalized:r,outsideOverlay:!1};if(this.getRelativeToMount(r)===null)return{normalized:r,outsideOverlay:!0};let o=this.resolveRealPath_(this.toRealPath(r));if(!o)return{normalized:r,outsideOverlay:!0};try{if((await re.promises.lstat(o)).isSymbolicLink()){if(!this.allowSymlinks)return{normalized:r,outsideOverlay:!0};let c=await re.promises.readlink(o),f=this.realTargetToVirtual(r,c),d=this.resolveSymlink(r,f);return this.resolveForReaddir(d,!0)}return{normalized:r,outsideOverlay:!1}}catch{return i?{normalized:r,outsideOverlay:!0}:{normalized:r,outsideOverlay:!1}}}async readdir(t){K(t,"scandir");let{normalized:s,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let n=await this.readdirCore(t,s);return Array.from(n.keys()).sort((i,a)=>i<a?-1:i>a?1:0)}async readdirWithFileTypes(t){K(t,"scandir");let{normalized:s,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let n=await this.readdirCore(t,s);return Array.from(n.values()).sort((i,a)=>i.name<a.name?-1:i.name>a.name?1:0)}async rm(t,s){K(t,"rm"),this.assertWritable(`rm '${t}'`);let r=B(t);if(!await this.existsInOverlay(r)){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}try{if((await this.stat(r)).isDirectory){let a=await this.readdir(r);if(a.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let l of a){let o=r==="/"?`/${l}`:`${r}/${l}`;await this.rm(o,s)}}}}catch(i){if(i instanceof Error&&(i.message.includes("ENOTEMPTY")||i.message.includes("EISDIR")))throw i}this.memory.delete(r),this.existsOnRealFs(r)&&this.deleted.add(r)}existsOnRealFs(t){let s=this.toRealPath(t),r=this.resolveRealPathParent_(s);if(!r)return!1;try{return re.lstatSync(r),!0}catch{return!1}}async cp(t,s,r){K(t,"cp"),K(s,"cp"),this.assertWritable(`cp '${s}'`);let n=B(t),i=B(s);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, cp '${t}'`);let l=await this.stat(n);if(l.isFile){let o=await this.readFileBuffer(n);await this.writeFile(i,o)}else if(l.isDirectory){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let o=await this.readdir(n);for(let u of o){let c=n==="/"?`/${u}`:`${n}/${u}`,f=i==="/"?`/${u}`:`${i}/${u}`;await this.cp(c,f,r)}}}async mv(t,s){this.assertWritable(`mv '${s}'`),await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}resolvePath(t,s){return Ss(t,s)}getAllPaths(){let t=new Set(this.memory.keys());for(let s of this.deleted)t.delete(s);return this.scanRealFs("/",t),Array.from(t)}scanRealFs(t,s){if(this.deleted.has(t))return;let r=this.resolveRealPath_(this.toRealPath(t));if(r)try{let n=re.readdirSync(r);for(let i of n){let a=t==="/"?`/${i}`:`${t}/${i}`;if(this.deleted.has(a))continue;s.add(a);let l=Ee.join(r,i);re.lstatSync(l).isDirectory()&&this.scanRealFs(a,s)}}catch{}}async chmod(t,s){K(t,"chmod"),this.assertWritable(`chmod '${t}'`);let r=B(t);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);let i=this.memory.get(r);if(i){i.mode=s;return}let a=await this.stat(r);if(a.isFile){let l=await this.readFileBuffer(r);this.memory.set(r,{type:"file",content:l,mode:s,mtime:new Date})}else a.isDirectory&&this.memory.set(r,{type:"directory",mode:s,mtime:new Date})}async symlink(t,s){if(!this.allowSymlinks)throw new Error(`EPERM: operation not permitted, symlink '${s}'`);K(s,"symlink"),this.assertWritable(`symlink '${s}'`);let r=B(s);if(await this.existsInOverlay(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.memory.set(r,{type:"symlink",target:t,mode:511,mtime:new Date}),this.deleted.delete(r)}async link(t,s){K(t,"link"),K(s,"link"),this.assertWritable(`link '${s}'`);let r=B(t),n=B(s);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, link '${t}'`);let a=await this.stat(r);if(!a.isFile)throw new Error(`EPERM: operation not permitted, link '${t}'`);if(await this.existsInOverlay(n))throw new Error(`EEXIST: file already exists, link '${s}'`);let o=await this.readFileBuffer(r);this.ensureParentDirs(n),this.memory.set(n,{type:"file",content:o,mode:a.mode,mtime:new Date}),this.deleted.delete(n)}async readlink(t){K(t,"readlink");let s=B(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);let r=this.memory.get(s);if(r){if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}let n=this.resolveRealPathParent_(this.toRealPath(s));if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);try{let i=await re.promises.readlink(n);if(!Ee.isAbsolute(i)){let a=Ee.resolve(Ee.dirname(n),i),l;try{l=re.realpathSync(a)}catch{l=a}if(!ys(l,this.canonicalRoot))return Ee.basename(i)}return this.realTargetToVirtual(s,i)}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(i.code==="EINVAL")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);this.sanitizeError(i,t,"readlink")}}async realpath(t){K(t,"realpath");let s=B(t),r=new Set,n=async l=>{let o=l==="/"?[]:l.slice(1).split("/"),u="";for(let c of o){if(u=`${u}/${c}`,r.has(u))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(u))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let f=this.memory.get(u),d=0,h=40;for(;f&&f.type==="symlink"&&d<h;){if(r.add(u),u=this.resolveSymlink(u,f.target),d++,r.has(u))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(u))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);f=this.memory.get(u)}if(d>=h)throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(!f){let p=this.toRealPath(u),m=this.resolveRealPath_(p);if(m)try{if((await re.promises.lstat(m)).isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let b=await re.promises.readlink(m),v=this.realTargetToVirtual(u,b);return r.add(u),u=this.resolveSymlink(u,v),n(u)}}catch(y){if(y.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(y,t,"realpath")}else if(!this.allowSymlinks){let y=this.resolveRealPathParent_(p);if(y)try{if((await re.promises.lstat(y)).isSymbolicLink())throw new Error(`ENOENT: no such file or directory, realpath '${t}'`)}catch(b){if(b.message?.includes("ENOENT")||b.message?.includes("ELOOP"))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(b,t,"realpath")}}}}return u||"/"},i=await n(s);if(!await this.existsInOverlay(i))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return i}async utimes(t,s,r){K(t,"utimes"),this.assertWritable(`utimes '${t}'`);let n=B(t);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);let a=this.memory.get(n);if(a){a.mtime=r;return}let l=await this.stat(n);if(l.isFile){let o=await this.readFileBuffer(n);this.memory.set(n,{type:"file",content:o,mode:l.mode,mtime:r})}else l.isDirectory&&this.memory.set(n,{type:"directory",mode:l.mode,mtime:r})}};function pc(){console.log(`just-bash - A secure bash environment for AI agents
796
+ `;try{s.writeFileSync(`/bin/${t.name}`,i)}catch{}try{s.writeFileSync(`/usr/bin/${t.name}`,i)}catch{}}}logResult(t){return this.logger&&(t.stdout&&this.logger.debug("stdout",{output:t.stdout}),t.stderr&&this.logger.info("stderr",{output:t.stderr}),this.logger.info("exit",{exitCode:t.exitCode})),t.stdout=Su(t.stdout),t.stderr=Su(t.stderr),t}async exec(t,n){let r=new or(this.limits,n?.signal),s;try{s=await this.execInScope(t,n,r,0,n?.signal,!1,!1)}catch(a){try{await r.close()}catch{}throw a}let i=s;try{await r.close()}catch{i={...s,stderr:`${s.stderr}bash: execution cleanup failed
797
+ `,exitCode:126}}return t.trim()?this.logResult(i):i}async execInScope(t,n,r,s,i,a=!1,o=!0){let l=f=>o?this.logResult(f):f,c=nr(i,n?.signal),u=n?{...n,signal:c.signal}:{signal:c.signal};try{if(r.assertExecDepth(s),fa(t,this.limits.maxSourceBytes),!t.trim())return{stdout:"",stderr:"",exitCode:0,env:Ge(this.state.env,u.env)};this.logger?.info("exec",{command:t});let f=u.cwd??this.state.cwd,d,p=f;if(u.cwd)if(u.env&&"PWD"in u.env)d=u.env.PWD;else if(u.env&&!("PWD"in u.env))try{d=await this.fs.realpath(f),p=d}catch{d=f}else d=f;let h=u.replaceEnv?new Map:new Map(this.state.env);if(u.env)for(let[w,S]of Object.entries(u.env))h.set(w,S);d!==void 0&&h.set("PWD",d);let m={...this.state,env:h,arrays:u.replaceEnv?new Map:ct(this.state.arrays),cwd:p,previousDir:u.env?.OLDPWD??this.state.previousDir,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options},hashTable:this.state.hashTable,groupStdin:wh(u.stdin,u.stdinKind,this.limits.maxInputBytes,this.limits.maxStringLength,r,a),signal:u.signal,extraArgs:u.args},E=t;u.rawScript||(E=bu(t));let b=this.defenseInDepthConfig?ze.getInstance(this.defenseInDepthConfig):null,g=b?.activate();try{let w=async()=>{let S=tt(E,{maxHeredocSize:this.limits.maxHeredocSize}),v;if(this.transformPlugins.length>0){let I=Object.create(null);for(let O of this.transformPlugins){let B=O.transform({ast:S,metadata:I});S=B.ast,B.metadata&&(I=ds(I,B.metadata))}v=I}let A={fs:this.fs,commands:this.commands,limits:this.limits,executionScope:r,exec:(I,O,B=!1)=>this.execInScope(I,O,r,s+1,u.signal,B),fetch:this.secureFetch,sleep:this.sleepFn,trace:this.traceFn,coverage:this.coverageWriter,requireDefenseContext:b?.isEnabled()===!0,jsBootstrapCode:this.jsBootstrapCode,invokeTool:this.invokeToolFn},D=await new Xn(A,m).executeScript(S);return v&&(D.metadata=v),l(D)};return g?await g.run(w):await w()}catch(w){if(w instanceof j)return l({stdout:w.stdout,stderr:w.stderr,exitCode:w.exitCode,env:Ge(this.state.env,u.env)});if(w instanceof Ke)return l({stdout:w.stdout,stderr:w.stderr,exitCode:w.exitCode,env:Ge(this.state.env,u.env)});if(w instanceof ie)return l({stdout:w.stdout,stderr:w.stderr,exitCode:1,env:Ge(this.state.env,u.env)});if(w instanceof Te)return l({stdout:w.stdout,stderr:w.stderr,exitCode:124,env:Ge(this.state.env,u.env)});if(w instanceof $)return l({stdout:w.stdout,stderr:Me(w.stderr),exitCode:$.EXIT_CODE,env:Ge(this.state.env,u.env)});if(w instanceof en)return l({stdout:"",stderr:`bash: security violation: ${Me(w.message)}
798
+ `,exitCode:1,env:Ge(this.state.env,u.env)});if(w.name==="ParseException")return l({stdout:"",stderr:`bash: syntax error: ${Me(w.message)}
799
+ `,exitCode:2,env:Ge(this.state.env,u.env)});if(w instanceof Pt)return l({stdout:"",stderr:`bash: ${Me(w.message)}
800
+ `,exitCode:2,env:Ge(this.state.env,u.env)});if(w instanceof RangeError)return l({stdout:"",stderr:`bash: ${Me(w.message)}
801
+ `,exitCode:1,env:Ge(this.state.env,u.env)});throw w}finally{g?.deactivate()}}catch(f){if(f instanceof Te)return l({stdout:f.stdout,stderr:f.stderr,exitCode:124,env:Ge(this.state.env,u.env)});if(f instanceof $)return l({stdout:f.stdout,stderr:Me(f.stderr),exitCode:$.EXIT_CODE,env:Ge(this.state.env,u.env)});throw f}finally{c.cleanup()}}async readFile(t){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,t))}async writeFile(t,n){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,t),n)}getCwd(){return this.state.cwd}getEnv(){return vt(this.state.env)}registerTransformPlugin(t){this.transformPlugins.push(t)}transform(t){fa(t,this.limits.maxSourceBytes);let n=bu(t),r=tt(n,{maxHeredocSize:this.limits.maxHeredocSize}),s=Object.create(null);for(let i of this.transformPlugins){let a=i.transform({ast:r,metadata:s});r=a.ast,a.metadata&&(s=ds(s,a.metadata))}return{script:hu(r),ast:r,metadata:s}}};function yh(e,t){let n=t;for(let r=0;r<e.length;r++){let s=e[r];if(n==="single")s==="'"&&(n="none");else if(n==="double")s==="\\"?r++:s==='"'&&(n="none");else if(s==="'")n="single";else if(s==='"')n="double";else if(s==="\\")r++;else if(s==="#"&&(r===0||/\s/.test(e[r-1])))break}return n}function bu(e){let t=e.split(`
802
+ `),n=[],r=[],s="none";for(let i=0;i<t.length;i++){let a=t[i];if(r.length>0){let u=r[r.length-1];if((u.stripTabs?a.replace(/^\t+/,""):a)===u.delimiter){n.push(a.trimStart()),r.pop();continue}n.push(a);continue}let o=s,l=o==="none"?a.trimStart():a;if(n.push(l),s=yh(a,o),o!=="none")continue;let c=/<<(-?)\s*(['"]?)([\w-]+)\2/g;for(let u of l.matchAll(c)){let f=u[1]==="-",d=u[3];r.push({delimiter:d,stripTabs:f})}}return n.join(`
803
+ `)}var gh=new TextDecoder("utf-8",{fatal:!0});function Su(e){if(!e)return e;let t=!1;for(let r=0;r<e.length;r++){let s=e.charCodeAt(r);if(s>255)return e;s>127&&(t=!0)}if(!t)return e;let n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);try{return gh.decode(n)}catch{return e}}function wh(e,t,n,r,s,i){if(e===void 0)return;let a=t==="bytes"?e.length:T(e);if(a>n||a>r)throw new $(`stdin size limit exceeded (${Math.min(n,r)} bytes)`,"string_length");return i||s.consumeInput(a,"stdin"),t==="bytes"?e:qt(e)}import*as ue from"node:fs";import*as Pe from"node:path";import*as et from"node:fs";import*as ve from"node:path";function tr(e,t){let n=/^[A-Za-z]:[\\/]/.test(t)?ve.win32:ve.posix,r=n.relative(t,e);return r===""||r!==".."&&!r.startsWith(`..${n.sep}`)&&!n.isAbsolute(r)}function er(e,t){try{let n=et.realpathSync(e);return tr(n,t)?n:null}catch(n){if(n.code==="ENOENT"){let r=ve.dirname(e);if(r===e)return null;let s=er(r,t);if(s===null)return null;try{if(et.lstatSync(e).isSymbolicLink()){let a=et.readlinkSync(e),o=ve.isAbsolute(a)?a:ve.resolve(ve.dirname(e),a);if(er(o,t)===null)return null}}catch{}return ve.join(s,ve.basename(e))}return null}}function Au(e,t,n){let r=er(e,n);if(r===null)return null;let s=ve.resolve(e),i=s.slice(t.length),a=r.slice(n.length);if(i!==a)return null;try{if(et.lstatSync(s).isSymbolicLink())return null}catch{}return r}function vu(e,t){if(!et.existsSync(e))throw new Error(`${t} root does not exist`);if(!et.statSync(e).isDirectory())throw new Error(`${t} root is not a directory`)}function xu(e,t){if(!ve.isAbsolute(e))return{withinRoot:!0,relativePath:e};let n;try{n=et.realpathSync(e)}catch{n=ve.resolve(e)}return tr(n,t)?{withinRoot:!0,relativePath:n.slice(t.length).replace(/\\/g,"/")||"/"}:{withinRoot:!1,safeName:ve.basename(e)}}function $u(e,t,n,r){let s=e;if(s.path===void 0){for(let a of r)if(s.message?.includes(a))throw e}let i=s.code||"EIO";throw new Error(`${i}: ${n} '${t}'`)}var Eh=["ELOOP","EFBIG","EPERM"],bh="/home/user/project",xn=class{root;canonicalRoot;mountPoint;readOnly;maxFileReadSize;maxMemoryBytes;allowSymlinks;memory=new Map;deleted=new Set;nextMemoryIdentity=1;retainedMemoryBytes=0;memoryEntryBytes(t){if(!t||t.type!=="file")return 0;let n=t.content.byteLength;for(let r of t.appendChunks??[])n+=r.byteLength;return n}assertMemoryCapacity(t,n=0){if(!Number.isSafeInteger(t)||t<0||t>this.maxMemoryBytes-this.retainedMemoryBytes+n)throw new Error(`ENOSPC: overlay memory byte limit exceeded (${this.maxMemoryBytes} bytes)`)}setMemoryEntry(t,n){let r=this.memoryEntryBytes(this.memory.get(t)),s=this.memoryEntryBytes(n);this.assertMemoryCapacity(s,r),this.memory.set(t,n),this.retainedMemoryBytes+=s-r}deleteMemoryEntry(t){let n=this.memory.get(t);n&&(this.retainedMemoryBytes-=this.memoryEntryBytes(n),this.memory.delete(t))}identityFor(t){return t.type==="symlink"?"":(t.identity||(t.identity=`overlay:${this.nextMemoryIdentity++}`),t.identity)}constructor(t){this.root=Pe.resolve(t.root);let n=t.mountPoint??bh;if(this.mountPoint=n==="/"?"/":n.replace(/\/+$/,""),!this.mountPoint.startsWith("/"))throw new Error(`Mount point must be an absolute path: ${n}`);if(this.readOnly=t.readOnly??!1,this.maxFileReadSize=t.maxFileReadSize??10485760,this.maxMemoryBytes=t.maxMemoryBytes??1024*1024*1024,!Number.isSafeInteger(this.maxMemoryBytes)||this.maxMemoryBytes<0)throw new Error("OverlayFs: invalid maxMemoryBytes");this.allowSymlinks=t.allowSymlinks??!1,vu(this.root,"OverlayFs"),this.canonicalRoot=ue.realpathSync(this.root),this.createMountPointDirs()}assertWritable(t){if(this.readOnly)throw new Error(`EROFS: read-only file system, ${t}`)}createMountPointDirs(){let t=this.mountPoint.split("/").filter(Boolean),n="";for(let r of t)n+=`/${r}`,this.memory.has(n)||this.setMemoryEntry(n,{type:"directory",mode:493,mtime:new Date});this.memory.has("/")||this.setMemoryEntry("/",{type:"directory",mode:493,mtime:new Date})}getMountPoint(){return this.mountPoint}mkdirSync(t,n){let s=H(t).split("/").filter(Boolean),i="";for(let a of s)i+=`/${a}`,this.memory.has(i)||this.setMemoryEntry(i,{type:"directory",mode:493,mtime:new Date})}writeFileSync(t,n){let r=H(t),s=this.getDirname(r);s!=="/"&&this.mkdirSync(s);let i=n instanceof Uint8Array?n:new TextEncoder().encode(n);this.setMemoryEntry(r,{type:"file",content:i,mode:420,mtime:new Date})}getDirname(t){let n=t.lastIndexOf("/");return n===0?"/":t.slice(0,n)}getRelativeToMount(t){return this.mountPoint==="/"?t:t===this.mountPoint?"/":t.startsWith(`${this.mountPoint}/`)?t.slice(this.mountPoint.length):null}toRealPath(t){let n=H(t),r=this.getRelativeToMount(n);if(r===null)return null;let s=Pe.join(this.root,r),i=Pe.resolve(s);return tr(i,this.root)?i:null}resolveRealPath_(t){return t?this.allowSymlinks?er(t,this.canonicalRoot):Au(t,this.root,this.canonicalRoot):null}resolveRealPathParent_(t){if(!t)return null;let n=Pe.dirname(t),r=this.resolveRealPath_(n);return r===null?null:Pe.join(r,Pe.basename(t))}sanitizeError(t,n,r){$u(t,n,r,Eh)}ensureParentDirs(t){let n=rn(t);n!=="/"&&(this.memory.has(n)||(this.ensureParentDirs(n),this.setMemoryEntry(n,{type:"directory",mode:493,mtime:new Date})),this.deleted.delete(n))}async existsInOverlay(t){let n=H(t);if(this.deleted.has(n))return!1;if(this.memory.has(n))return!0;let r=this.resolveRealPathParent_(this.toRealPath(n));if(!r)return!1;try{return await ue.promises.lstat(r),!0}catch{return!1}}async readFile(t,n){let r=await this.readFileBuffer(t),s=$t(n);return ln(r,s)}async readFileBytes(t){let n=await this.readFileBuffer(t);return ln(n,"binary")}async readFileBuffer(t,n=new Set){K(t,"open");let r=H(t);if(n.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);if(n.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, open '${t}'`);let s=this.memory.get(r);if(s){if(s.type==="symlink"){let c=this.resolveSymlink(r,s.target);return this.readFileBuffer(c,n)}if(s.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(!s.appendChunks||s.appendChunks.length===0)return s.content;let a=s.appendChunks.reduce((c,u)=>c+u.byteLength,s.content.byteLength);if(!Number.isSafeInteger(a))throw new Error(`EFBIG: file too large, read '${t}'`);let o=new Uint8Array(a);o.set(s.content);let l=s.content.byteLength;for(let c of s.appendChunks)o.set(c,l),l+=c.byteLength;return s.content=o,s.appendChunks=void 0,o}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, open '${t}'`);try{let a=await ue.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, open '${t}'`);let c=await ue.promises.readlink(i),u=this.realTargetToVirtual(r,c),f=this.resolveSymlink(r,u);return this.readFileBuffer(f,n)}if(a.isDirectory())throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(this.maxFileReadSize>0&&a.size>this.maxFileReadSize)throw new Error(`EFBIG: file too large, read '${t}' (${a.size} bytes, max ${this.maxFileReadSize})`);let o=this.allowSymlinks?ue.constants.O_RDONLY:ue.constants.O_RDONLY|ue.constants.O_NOFOLLOW,l=await ue.promises.open(i,o);try{let c=await l.readFile();return new Uint8Array(c)}finally{await l.close()}}catch(a){let o=a.code;if(o==="ENOENT")throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(o==="ELOOP")throw new Error(`ENOENT: no such file or directory, open '${t}'`);this.sanitizeError(a,t,"open")}}async writeFile(t,n,r){K(t,"write"),this.assertWritable(`write '${t}'`);let s=H(t);this.ensureParentDirs(s);let i=$t(r),a=on(n,i);this.setMemoryEntry(s,{type:"file",content:a,mode:420,mtime:new Date}),this.deleted.delete(s)}async appendFile(t,n,r){K(t,"append"),this.assertWritable(`append '${t}'`);let s=H(t),i=$t(r),a=on(n,i),o=this.memory.get(s);if(o?.type==="file"){this.assertMemoryCapacity(a.byteLength),o.appendChunks||(o.appendChunks=[]),o.appendChunks.push(a),this.retainedMemoryBytes+=a.byteLength,o.mtime=new Date,this.deleted.delete(s);return}let l;try{l=await this.readFileBuffer(s)}catch{l=new Uint8Array(0)}this.ensureParentDirs(s),this.setMemoryEntry(s,{type:"file",content:l,appendChunks:[a],mode:420,mtime:new Date}),this.deleted.delete(s)}async exists(t){return t.includes("\0")?!1:this.existsInOverlay(t)}async stat(t,n=new Set){K(t,"stat");let r=H(t);if(n.has(r))throw new Error(`ELOOP: too many levels of symbolic links, stat '${t}'`);if(n.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let s=this.memory.get(r);if(s){if(s.type==="symlink"){let o=this.resolveSymlink(r,s.target);return this.stat(o,n)}let a=0;return s.type==="file"&&(a=s.content.length+(s.appendChunks?.reduce((o,l)=>o+l.byteLength,0)??0)),{isFile:s.type==="file",isDirectory:s.type==="directory",isSymbolicLink:!1,mode:s.mode,size:a,mtime:s.mtime,identity:this.identityFor(s)}}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);try{let a=await ue.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let o=await ue.promises.readlink(i),l=this.realTargetToVirtual(r,o),c=this.resolveSymlink(r,l);return this.stat(c,n)}return{isFile:a.isFile(),isDirectory:a.isDirectory(),isSymbolicLink:!1,mode:a.mode,size:a.size,mtime:a.mtime,dev:a.dev,ino:a.ino}}catch(a){if(a.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, stat '${t}'`);this.sanitizeError(a,t,"stat")}}async lstat(t){K(t,"lstat");let n=H(t);if(this.deleted.has(n))throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);let r=this.memory.get(n);if(r){if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime};let i=0;return r.type==="file"&&(i=r.content.length+(r.appendChunks?.reduce((a,o)=>a+o.byteLength,0)??0)),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:i,mtime:r.mtime,identity:this.identityFor(r)}}let s=this.resolveRealPathParent_(this.toRealPath(n));if(!s)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);try{let i=await ue.promises.lstat(s);return{isFile:i.isFile(),isDirectory:i.isDirectory(),isSymbolicLink:i.isSymbolicLink(),mode:i.mode,size:i.size,mtime:i.mtime,dev:i.dev,ino:i.ino}}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);this.sanitizeError(i,t,"lstat")}}resolveSymlink(t,n){return an(t,n)}realTargetToVirtual(t,n){let r=xu(n,this.canonicalRoot);if(r.withinRoot){if(!Pe.isAbsolute(n))return n;let s=r.relativePath;return this.mountPoint==="/"?s:`${this.mountPoint}${s}`}return r.safeName}async mkdir(t,n){K(t,"mkdir"),this.assertWritable(`mkdir '${t}'`);let r=H(t);if(await this.existsInOverlay(r)){if(!n?.recursive)throw new Error(`EEXIST: file already exists, mkdir '${t}'`);return}let i=rn(r);if(i!=="/"&&!await this.existsInOverlay(i))if(n?.recursive)await this.mkdir(i,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.setMemoryEntry(r,{type:"directory",mode:493,mtime:new Date}),this.deleted.delete(r)}async readdirCore(t,n){if(this.deleted.has(n))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Map,s=new Set,i=n==="/"?"/":`${n}/`;for(let o of this.deleted)if(o.startsWith(i)){let l=o.slice(i.length),c=l.split("/")[0];c&&!l.includes("/",c.length)&&s.add(c)}for(let[o,l]of this.memory)if(o!==n&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!s.has(u)&&!c.includes("/",1)&&r.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}let a=this.resolveRealPath_(this.toRealPath(n));if(a)try{if(!this.allowSymlinks&&(await ue.promises.lstat(a)).isSymbolicLink()){if(!this.memory.has(n))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);return r}let o=await ue.promises.readdir(a,{withFileTypes:!0});for(let l of o)!s.has(l.name)&&!r.has(l.name)&&r.set(l.name,{name:l.name,isFile:l.isFile(),isDirectory:l.isDirectory(),isSymbolicLink:l.isSymbolicLink()})}catch(o){if(o.code==="ENOENT"){if(!this.memory.has(n))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`)}else o.code!=="ENOTDIR"&&this.sanitizeError(o,t,"scandir")}return r}async resolveForReaddir(t,n=!1){let r=H(t),s=new Set,i=n,a=this.memory.get(r);for(;a&&a.type==="symlink";){if(s.has(r))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);s.add(r),i=!0,r=this.resolveSymlink(r,a.target),a=this.memory.get(r)}if(a)return{normalized:r,outsideOverlay:!1};if(this.getRelativeToMount(r)===null)return{normalized:r,outsideOverlay:!0};let l=this.resolveRealPath_(this.toRealPath(r));if(!l)return{normalized:r,outsideOverlay:!0};try{if((await ue.promises.lstat(l)).isSymbolicLink()){if(!this.allowSymlinks)return{normalized:r,outsideOverlay:!0};let u=await ue.promises.readlink(l),f=this.realTargetToVirtual(r,u),d=this.resolveSymlink(r,f);return this.resolveForReaddir(d,!0)}return{normalized:r,outsideOverlay:!1}}catch{return i?{normalized:r,outsideOverlay:!0}:{normalized:r,outsideOverlay:!1}}}async readdir(t){K(t,"scandir");let{normalized:n,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let s=await this.readdirCore(t,n);return Array.from(s.keys()).sort((i,a)=>i<a?-1:i>a?1:0)}async readdirWithFileTypes(t){K(t,"scandir");let{normalized:n,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let s=await this.readdirCore(t,n);return Array.from(s.values()).sort((i,a)=>i.name<a.name?-1:i.name>a.name?1:0)}async rm(t,n){K(t,"rm"),this.assertWritable(`rm '${t}'`);let r=H(t);if(!await this.existsInOverlay(r)){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}try{if((await this.stat(r)).isDirectory){let a=await this.readdir(r);if(a.length>0){if(!n?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of a){let l=r==="/"?`/${o}`:`${r}/${o}`;await this.rm(l,n)}}}}catch(i){if(i instanceof Error&&(i.message.includes("ENOTEMPTY")||i.message.includes("EISDIR")))throw i}this.deleteMemoryEntry(r),this.existsOnRealFs(r)&&this.deleted.add(r)}existsOnRealFs(t){let n=this.toRealPath(t),r=this.resolveRealPathParent_(n);if(!r)return!1;try{return ue.lstatSync(r),!0}catch{return!1}}async cp(t,n,r){K(t,"cp"),K(n,"cp"),this.assertWritable(`cp '${n}'`);let s=H(t),i=H(n);if(!await this.existsInOverlay(s))throw new Error(`ENOENT: no such file or directory, cp '${t}'`);let o=await this.stat(s);if(o.isFile){let l=await this.readFileBuffer(s);await this.writeFile(i,l)}else if(o.isDirectory){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);if(nn(s,i))throw new Error(`EINVAL: cannot copy '${t}' into itself, '${n}'`);await this.mkdir(i,{recursive:!0});let l=await this.readdir(s);for(let c of l){let u=s==="/"?`/${c}`:`${s}/${c}`,f=i==="/"?`/${c}`:`${i}/${c}`;await this.cp(u,f,r)}}}async mv(t,n){this.assertWritable(`mv '${n}'`),await this.cp(t,n,{recursive:!0}),await this.rm(t,{recursive:!0})}resolvePath(t,n){return ir(t,n)}getAllPaths(){let t=new Set(this.memory.keys());for(let n of this.deleted)t.delete(n);return this.scanRealFs("/",t),Array.from(t)}scanRealFs(t,n){if(this.deleted.has(t))return;let r=this.resolveRealPath_(this.toRealPath(t));if(r)try{let s=ue.readdirSync(r);for(let i of s){let a=t==="/"?`/${i}`:`${t}/${i}`;if(this.deleted.has(a))continue;n.add(a);let o=Pe.join(r,i);ue.lstatSync(o).isDirectory()&&this.scanRealFs(a,n)}}catch{}}async chmod(t,n){K(t,"chmod"),this.assertWritable(`chmod '${t}'`);let r=H(t);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);let i=this.memory.get(r);if(i){i.mode=n;return}let a=await this.stat(r);if(a.isFile){let o=await this.readFileBuffer(r);this.setMemoryEntry(r,{type:"file",content:o,mode:n,mtime:new Date})}else a.isDirectory&&this.setMemoryEntry(r,{type:"directory",mode:n,mtime:new Date})}async symlink(t,n){if(!this.allowSymlinks)throw new Error(`EPERM: operation not permitted, symlink '${n}'`);K(n,"symlink"),this.assertWritable(`symlink '${n}'`);let r=H(n);if(await this.existsInOverlay(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParentDirs(r),this.setMemoryEntry(r,{type:"symlink",target:t,mode:511,mtime:new Date}),this.deleted.delete(r)}async link(t,n){K(t,"link"),K(n,"link"),this.assertWritable(`link '${n}'`);let r=H(t),s=H(n);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, link '${t}'`);let a=await this.stat(r);if(!a.isFile)throw new Error(`EPERM: operation not permitted, link '${t}'`);if(await this.existsInOverlay(s))throw new Error(`EEXIST: file already exists, link '${n}'`);let l=await this.readFileBuffer(r);this.ensureParentDirs(s),this.setMemoryEntry(s,{type:"file",content:l,mode:a.mode,mtime:new Date,identity:a.identity??`overlay:${this.nextMemoryIdentity++}`}),this.deleted.delete(s)}async readlink(t){K(t,"readlink");let n=H(t);if(this.deleted.has(n))throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);let r=this.memory.get(n);if(r){if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}let s=this.resolveRealPathParent_(this.toRealPath(n));if(!s)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);try{let i=await ue.promises.readlink(s);if(!Pe.isAbsolute(i)){let a=Pe.resolve(Pe.dirname(s),i),o;try{o=ue.realpathSync(a)}catch{o=a}if(!tr(o,this.canonicalRoot))return Pe.basename(i)}return this.realTargetToVirtual(n,i)}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(i.code==="EINVAL")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);this.sanitizeError(i,t,"readlink")}}async realpath(t){K(t,"realpath");let n=H(t),r=new Set,s=async o=>{let l=o==="/"?[]:o.slice(1).split("/"),c="";for(let u of l){if(c=`${c}/${u}`,r.has(c))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(c))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let f=this.memory.get(c),d=0,p=40;for(;f&&f.type==="symlink"&&d<p;){if(r.add(c),c=this.resolveSymlink(c,f.target),d++,r.has(c))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(c))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);f=this.memory.get(c)}if(d>=p)throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(!f){let h=this.toRealPath(c),m=this.resolveRealPath_(h);if(m)try{if((await ue.promises.lstat(m)).isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let b=await ue.promises.readlink(m),g=this.realTargetToVirtual(c,b);return r.add(c),c=this.resolveSymlink(c,g),s(c)}}catch(E){if(E.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(E,t,"realpath")}else if(!this.allowSymlinks){let E=this.resolveRealPathParent_(h);if(E)try{if((await ue.promises.lstat(E)).isSymbolicLink())throw new Error(`ENOENT: no such file or directory, realpath '${t}'`)}catch(b){if(b.message?.includes("ENOENT")||b.message?.includes("ELOOP"))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(b,t,"realpath")}}}}return c||"/"},i=await s(n);if(!await this.existsInOverlay(i))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return i}async utimes(t,n,r){K(t,"utimes"),this.assertWritable(`utimes '${t}'`);let s=H(t);if(!await this.existsInOverlay(s))throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);let a=this.memory.get(s);if(a){a.mtime=r;return}let o=await this.stat(s);if(o.isFile){let l=await this.readFileBuffer(s);this.setMemoryEntry(s,{type:"file",content:l,mode:o.mode,mtime:r})}else o.isDirectory&&this.setMemoryEntry(s,{type:"directory",mode:o.mode,mtime:r})}};function Nu(){console.log(`just-bash - A secure bash environment for AI agents
783
804
 
784
805
  Usage:
785
- just-bash [options] [script-file]
806
+ just-bash [options] [script-file] [root]
786
807
  just-bash -c 'script' [options]
787
808
  echo 'script' | just-bash [options]
788
809
 
@@ -798,6 +819,10 @@ Options:
798
819
  -h, --help Show this help message
799
820
  -v, --version Show version
800
821
 
822
+ Arguments:
823
+ script-file Script file to execute from the mounted root
824
+ root Legacy positional root (prefer --root)
825
+
801
826
  Security:
802
827
  - Reads from the real filesystem (read-only via OverlayFS)
803
828
  - Write operations are blocked by default (use --allow-write to enable)
@@ -826,5 +851,5 @@ Examples:
826
851
 
827
852
  # Allow write operations (writes stay in memory)
828
853
  just-bash -c 'echo test > /tmp/file.txt && cat /tmp/file.txt' --allow-write
829
- `)}function Xd(){console.log("just-bash 1.0.0")}function Yd(e){let t={root:process.cwd(),cwd:"/",cwdOverridden:!1,errexit:!1,allowWrite:!1,python:!1,javascript:!1,json:!1,help:!1,version:!1},s=0;for(;s<e.length;){let r=e[s];if(r==="-h"||r==="--help")t.help=!0,s++;else if(r==="-v"||r==="--version")t.version=!0,s++;else if(r==="-c")s+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[s+1],s+=2;else if(r==="-e"||r==="--errexit")t.errexit=!0,s++;else if(r==="--root")s+1>=e.length&&(console.error("Error: --root requires a path argument"),process.exit(1)),t.root=hc(e[s+1]),s+=2;else if(r==="--cwd")s+1>=e.length&&(console.error("Error: --cwd requires a path argument"),process.exit(1)),t.cwd=e[s+1],t.cwdOverridden=!0,s+=2;else if(r==="--json")t.json=!0,s++;else if(r==="--allow-write")t.allowWrite=!0,s++;else if(r==="--python")t.python=!0,s++;else if(r==="--javascript")t.javascript=!0,s++;else if(r.startsWith("-"))if(r.length>2&&!r.startsWith("--")){let n=r.slice(1);for(let i of n)if(i==="e")t.errexit=!0;else if(i==="h")t.help=!0;else if(i==="v")t.version=!0;else if(i==="c"){s+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[s+1],s++;break}else console.error(`Error: Unknown option: -${i}`),process.exit(1);s++}else console.error(`Error: Unknown option: ${r}`),process.exit(1);else!t.scriptFile&&!t.script?t.scriptFile=r:t.scriptFile&&t.root===process.cwd()&&(t.root=hc(r)),s++}return t}function Jd(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(n=>n&&n!=="."),r=[];for(let n of s)n===".."?r.pop():r.push(n);return`/${r.join("/")}`||"/"}async function eh(){let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf-8")}async function th(){let e=process.argv.slice(2),t=Yd(e);t.help&&(pc(),process.exit(0)),t.version&&(Xd(),process.exit(0));let s;if(t.script)s=t.script;else if(t.scriptFile){let l=new Qt({root:t.root}),o=l.getMountPoint();try{let u=t.scriptFile.startsWith("/")?t.scriptFile:`${o}/${t.scriptFile}`;s=await l.readFile(u,"utf-8")}catch(u){console.error(`Error: Cannot read script file: ${t.scriptFile}`),console.error(Re(u instanceof Error?u.message:String(u))),process.exit(1)}}else process.stdin.isTTY?(pc(),process.exit(1)):s=await eh();s.trim()||(t.json&&console.log(JSON.stringify({stdout:"",stderr:"",exitCode:0})),process.exit(0));let r=new Qt({root:t.root,readOnly:!t.allowWrite}),n=r.getMountPoint(),i=t.cwdOverridden?Jd(t.cwd):n,a=new wn({fs:r,cwd:i,python:t.python,javascript:t.javascript});t.errexit&&(s=`set -e
830
- ${s}`);try{let l=await a.exec(s);t.json?console.log(JSON.stringify({stdout:l.stdout,stderr:l.stderr,exitCode:l.exitCode})):(l.stdout&&process.stdout.write(l.stdout),l.stderr&&process.stderr.write(l.stderr)),process.exit(l.exitCode)}catch(l){let o=Re(l instanceof Error?l.message:String(l));t.json?console.log(JSON.stringify({stdout:"",stderr:o,exitCode:1})):console.error(o),process.exit(1)}}th().catch(e=>{console.error("Fatal error:",Re(e instanceof Error?e.message:String(e))),process.exit(1)});
854
+ `)}function Sh(){console.log("just-bash 1.0.0")}function Ah(e){let t={root:process.cwd(),cwd:"/",cwdOverridden:!1,errexit:!1,allowWrite:!1,python:!1,javascript:!1,json:!1,help:!1,version:!1},n=0,r=[],s=!1;for(;n<e.length;){let a=e[n];if(a==="--"){r.push(...e.slice(n+1));break}else if(a==="-h"||a==="--help")t.help=!0,n++;else if(a==="-v"||a==="--version")t.version=!0,n++;else if(a==="-c")n+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[n+1],n+=2;else if(a==="-e"||a==="--errexit")t.errexit=!0,n++;else if(a==="--root")n+1>=e.length&&(console.error("Error: --root requires a path argument"),process.exit(1)),t.root=ku(e[n+1]),s=!0,n+=2;else if(a==="--cwd")n+1>=e.length&&(console.error("Error: --cwd requires a path argument"),process.exit(1)),t.cwd=e[n+1],t.cwdOverridden=!0,n+=2;else if(a==="--json")t.json=!0,n++;else if(a==="--allow-write")t.allowWrite=!0,n++;else if(a==="--python")t.python=!0,n++;else if(a==="--javascript")t.javascript=!0,n++;else if(a.startsWith("-"))if(a.length>2&&!a.startsWith("--")){let o=a.slice(1);for(let l of o)if(l==="e")t.errexit=!0;else if(l==="h")t.help=!0;else if(l==="v")t.version=!0;else if(l==="c"){n+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[n+1],n++;break}else console.error(`Error: Unknown option: -${l}`),process.exit(1);n++}else console.error(`Error: Unknown option: ${a}`),process.exit(1);else r.push(a),n++}let i=a=>{console.error(`Error: ${a}`),process.exit(1)};if(t.script&&r.length>0&&i("script file cannot be combined with -c"),r.length>2&&i("unexpected extra positional argument"),r.length>=1&&(t.scriptFile=r[0]),r.length===2){let a=ku(r[1]);s&&a!==t.root&&i("conflicting positional root and --root"),t.root=a}return t}function vh(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let n=t.split("/").filter(s=>s&&s!=="."),r=[];for(let s of n)s===".."?r.pop():r.push(s);return`/${r.join("/")}`||"/"}async function xh(){let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf-8")}async function $h(){let e=process.argv.slice(2),t=Ah(e);t.help&&(Nu(),process.exit(0)),t.version&&(Sh(),process.exit(0));let n;if(t.script)n=t.script;else if(t.scriptFile){let o=new xn({root:t.root}),l=o.getMountPoint();try{let c=t.scriptFile.startsWith("/")?t.scriptFile:`${l}/${t.scriptFile}`;n=await o.readFile(c,"utf-8")}catch(c){console.error(`Error: Cannot read script file: ${t.scriptFile}`),console.error(Me(c instanceof Error?c.message:String(c))),process.exit(1)}}else process.stdin.isTTY?(Nu(),process.exit(1)):n=await xh();n.trim()||(t.json&&console.log(JSON.stringify({stdout:"",stderr:"",exitCode:0})),process.exit(0));let r=new xn({root:t.root,readOnly:!t.allowWrite}),s=r.getMountPoint(),i=t.cwdOverridden?vh(t.cwd):s,a=new os({fs:r,cwd:i,python:t.python,javascript:t.javascript});t.errexit&&(n=`set -e
855
+ ${n}`);try{let o=await a.exec(n);t.json?console.log(JSON.stringify({stdout:o.stdout,stderr:o.stderr,exitCode:o.exitCode})):(o.stdout&&process.stdout.write(o.stdout),o.stderr&&process.stderr.write(o.stderr)),process.exit(o.exitCode)}catch(o){let l=Me(o instanceof Error?o.message:String(o));t.json?console.log(JSON.stringify({stdout:"",stderr:l,exitCode:1})):console.error(l),process.exit(1)}}$h().catch(e=>{console.error("Fatal error:",Me(e instanceof Error?e.message:String(e))),process.exit(1)});