@preventive/triage 1.0.0-alpha.44 → 1.0.0-alpha.46
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.
- package/client/linked-findings.js +3 -0
- package/common/bundle-metadata.d.ts +1 -0
- package/common/bundle-metadata.js +1 -1
- package/common/bundle-sources.js +25 -2
- package/common/default-scan-models.ts +1 -1
- package/common/dependency-reviews.d.ts +0 -5
- package/common/dependency-reviews.js +0 -17
- package/common/line-diff.js +5 -4
- package/common/managed/agent-tasks.ts +292 -0
- package/common/managed/github-agents.ts +92 -0
- package/common/managed/github-logins.ts +49 -0
- package/common/managed/roles.ts +7 -0
- package/common/managed/routes.js +88 -7
- package/common/managed/team-app.d.ts +5 -2
- package/common/managed/team-app.js +2 -2
- package/common/server-info.ts +3 -0
- package/common/workspace-app.js +6 -3
- package/out/brotli-fallback.js +3 -3
- package/out/chunk-2XUEZHIP.js +18 -18
- package/out/chunk-2ZDZWLFY.js +1 -0
- package/out/chunk-3PS4KWD2.js +10 -0
- package/out/chunk-4HI2MSAV.js +17 -0
- package/out/chunk-4UFAMJAX.js +1 -0
- package/out/chunk-7C7DWL7I.js +1 -0
- package/out/chunk-7XRR4OFU.js +1 -0
- package/out/chunk-BC2UCLFJ.js +1 -0
- package/out/chunk-BOIXMUU5.js +3 -0
- package/out/chunk-C4Z6ZBXV.js +6 -6
- package/out/chunk-CC4OM6TZ.js +3 -0
- package/out/chunk-G24A42V6.js +2 -0
- package/out/chunk-GDPCLSOS.js +2 -0
- package/out/chunk-GO7FT4OD.js +1 -0
- package/out/chunk-I2MDGSQX.js +3 -0
- package/out/chunk-IYPY47MC.js +1 -0
- package/out/chunk-IZ7POWI3.js +18 -0
- package/out/chunk-JCIIBLKR.js +1 -1
- package/out/chunk-JKGQ3O7O.js +6 -0
- package/out/chunk-LE5ZWLG4.js +235 -0
- package/out/chunk-MSION3G4.js +36 -0
- package/out/chunk-NRPC74AM.js +1 -1
- package/out/chunk-OKRLLE5I.js +17 -0
- package/out/chunk-OOJM4CTU.js +1 -1
- package/out/chunk-PNHBZGDD.js +1 -1
- package/out/chunk-PXK7EU4V.js +1 -0
- package/out/chunk-QB4CBOX2.js +1 -0
- package/out/chunk-R3NZFXVR.js +1 -0
- package/out/chunk-R5O6FAW4.js +1 -1
- package/out/chunk-S6GIXWQW.js +52 -0
- package/out/chunk-SXV2T5C4.js +80 -0
- package/out/chunk-TUII34K2.js +1 -1
- package/out/chunk-V3KWNNMY.js +1 -0
- package/out/chunk-VFWMQ3LG.js +2 -0
- package/out/chunk-VH4XMZIW.js +2 -0
- package/out/chunk-WFYLMF6Z.js +10 -0
- package/out/chunk-WQ74ZBZF.js +7 -0
- package/out/client-managed-import.js +3 -3
- package/out/client-managed.js +31 -35
- package/out/client-sync.js +11 -11
- package/out/compare.js +35 -0
- package/out/dialogs.js +51 -0
- package/out/github-issue-authorized.html +1 -1
- package/out/github-issue-authorized.js +1 -1
- package/out/graph.js +17 -17
- package/out/index.html +30 -34
- package/out/prism.js +14 -14
- package/out/scan.js +2 -0
- package/out/terminal.js +294 -293
- package/out/view.css +1 -1
- package/out/view.js +16 -107
- package/package.json +53 -6
- package/risk/actions/findings.js +161 -0
- package/risk/actions/resolve.js +219 -0
- package/risk/actions/scripts/commands.js +182 -0
- package/risk/actions/scripts/grade.js +113 -0
- package/risk/actions/scripts/packages.js +123 -0
- package/risk/actions/scripts/shell.js +169 -0
- package/risk/actions/uses.js +76 -0
- package/risk/actions/workflow.js +110 -0
- package/risk/files/hosts.js +6 -6
- package/risk/files/readability.js +23 -17
- package/risk/files/runs-code.js +18 -6
- package/risk/files/script.js +7 -3
- package/risk/files/stamps.js +8 -7
- package/risk/index.d.ts +71 -1
- package/risk/index.js +6 -2
- package/risk/npm/assess.js +1 -1
- package/risk/npm/compare.js +34 -10
- package/risk/npm/files.js +413 -2
- package/risk/npm/tarball.js +56 -73
- package/server-e2e/app.ts +5 -4
- package/server-e2e/http.ts +5 -2
- package/server-managed/agent-merges.ts +198 -0
- package/server-managed/app-agents.ts +30 -0
- package/server-managed/avatar-store.ts +1 -0
- package/server-managed/bundle-cache.ts +7 -1
- package/server-managed/combined.ts +3 -2
- package/server-managed/commit-coauthors.ts +83 -0
- package/server-managed/commit-lockfiles.ts +72 -0
- package/server-managed/config.ts +6 -0
- package/server-managed/db-methods.ts +66 -19
- package/server-managed/db-neon.ts +89 -21
- package/server-managed/db-schema.ts +13 -2
- package/server-managed/db.ts +9 -1
- package/server-managed/dependabot-access.ts +60 -0
- package/server-managed/dependabot-alerts.ts +185 -0
- package/server-managed/dependency-review-comments.ts +97 -0
- package/server-managed/dependency-reviews.ts +78 -18
- package/server-managed/github-accounts.ts +33 -0
- package/server-managed/github-actions.ts +71 -0
- package/server-managed/github-app.ts +33 -13
- package/server-managed/github-errors.ts +2 -0
- package/server-managed/github-issue-links.ts +11 -5
- package/server-managed/github-link-oauth.ts +69 -0
- package/server-managed/github-links.ts +204 -0
- package/server-managed/github-oauth.ts +5 -2
- package/server-managed/github-pulls.ts +2 -2
- package/server-managed/github-requests.ts +39 -0
- package/server-managed/github-users.ts +30 -0
- package/server-managed/http-response.ts +10 -2
- package/server-managed/http.ts +1251 -97
- package/server-managed/index.ts +13 -8
- package/server-managed/kept-briefly.ts +37 -0
- package/server-managed/locked-packages.ts +37 -16
- package/server-managed/lockfile-scope.ts +49 -0
- package/server-managed/npm-delta-worker.js +23 -0
- package/server-managed/npm-delta.ts +178 -0
- package/server-managed/npm-insights.ts +20 -11
- package/server-managed/npm-kept.ts +83 -6
- package/server-managed/npm-loads.ts +114 -37
- package/server-managed/npm-packages.ts +110 -64
- package/server-managed/npm-risk.ts +4 -1
- package/server-managed/pretty-print.ts +67 -23
- package/server-managed/pull-comment-reviews.ts +161 -0
- package/server-managed/pull-dependencies.ts +300 -0
- package/server-managed/pull-dependency-reviews.ts +318 -0
- package/server-managed/pull-reviews.ts +205 -0
- package/server-managed/queue.ts +16 -0
- package/server-managed/release-commits.ts +84 -0
- package/server-managed/rename-diff.ts +22 -13
- package/server-managed/report-sources.ts +1 -1
- package/server-managed/report-store.ts +42 -9
- package/server-managed/repository-actions.ts +218 -0
- package/server-managed/repository-agents.ts +220 -0
- package/server-managed/repository-browser.ts +166 -37
- package/server-managed/repository-changes.ts +284 -0
- package/server-managed/repository-code.ts +52 -0
- package/server-managed/repository-dependency-reviews.ts +157 -0
- package/server-managed/repository-history.ts +461 -0
- package/server-managed/repository-issues.ts +181 -0
- package/server-managed/repository-pulse.ts +439 -0
- package/server-managed/repository-risk-audit.ts +13 -0
- package/server-managed/repository-risk-read.ts +170 -0
- package/server-managed/repository-risk.ts +133 -118
- package/server-managed/reviewed-dependencies.ts +149 -0
- package/server-managed/session.ts +27 -9
- package/server-managed/sql.ts +6 -3
- package/server-managed/storage-stores.ts +5 -0
- package/server-managed/storage.ts +4 -2
- package/server-managed/team-app.ts +19 -3
- package/server-managed/team-reports.ts +24 -12
- package/server-managed/upstream-cache.ts +12 -0
- package/server-managed/workspace-shares.ts +4 -1
- package/server.ts +25 -5
- package/out/chunk-2ABLKCOY.js +0 -46
- package/out/chunk-2KBF5TZ7.js +0 -2
- package/out/chunk-35VE6CDH.js +0 -2
- package/out/chunk-3BZ7JERB.js +0 -1
- package/out/chunk-4XCDFGDP.js +0 -10
- package/out/chunk-5LSXOLUS.js +0 -1
- package/out/chunk-5RCM2J63.js +0 -1
- package/out/chunk-7B6HB4D7.js +0 -1
- package/out/chunk-AJ4GTATZ.js +0 -3
- package/out/chunk-CH4UN6WK.js +0 -225
- package/out/chunk-CMQA4DM6.js +0 -1
- package/out/chunk-CVVJAXVY.js +0 -2
- package/out/chunk-DIJJNTRH.js +0 -10
- package/out/chunk-EDKLBQQN.js +0 -17
- package/out/chunk-F47DXCEV.js +0 -33
- package/out/chunk-FK3DZEKL.js +0 -1
- package/out/chunk-G6AJWENO.js +0 -1
- package/out/chunk-GJ4IUCNS.js +0 -1
- package/out/chunk-GNXOKIGP.js +0 -80
- package/out/chunk-GZ4MS3TE.js +0 -13
- package/out/chunk-GZWM7UQM.js +0 -2
- package/out/chunk-IU3CCINR.js +0 -3
- package/out/chunk-K3X5EJBQ.js +0 -2
- package/out/chunk-KEX2ATEW.js +0 -2
- package/out/chunk-KYCNJVB7.js +0 -1
- package/out/chunk-LPCTJYNA.js +0 -7
- package/out/chunk-O4RJY5TP.js +0 -2
- package/out/chunk-OD4LPN3H.js +0 -1
- package/out/chunk-QWDWTBM7.js +0 -1
- package/out/chunk-QYWKC557.js +0 -1
- package/out/chunk-R75XOKUP.js +0 -1
- package/out/chunk-SWTLADW5.js +0 -1
- package/out/chunk-T7OKH4VW.js +0 -1
- package/out/chunk-TZ5KB2Y5.js +0 -10
- package/out/chunk-UNTRGE26.js +0 -2
- package/out/chunk-UTR2LVME.js +0 -2
- package/out/chunk-UYAXVRVL.js +0 -1
- package/out/chunk-V3ME6FI5.js +0 -2
- package/out/chunk-V5O7M2YT.js +0 -1
- package/out/chunk-VIHGO77Y.js +0 -1
- package/out/chunk-W4J3MGLB.js +0 -1
- package/out/chunk-WGG7KQUH.js +0 -1
- package/out/chunk-XYFXXB2G.js +0 -10
- package/out/chunk-ZESLQCTF.js +0 -6
package/out/terminal.js
CHANGED
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
import{a as _o}from"./chunk-FK3DZEKL.js";import{b as fc,c as hr,d as Kt,e as dc,f as Xe,g as et,h as Fs,i as pc,j as On,k as Co,l as Jt,m as hc,n as Qt,o as T,p as mr,q as mc,r as Rs,s as Ms,t as Ds,v as gc,w as Us,z as Lo}from"./chunk-EDKLBQQN.js";import{a as cc}from"./chunk-TZ5KB2Y5.js";import"./chunk-XYFXXB2G.js";import"./chunk-C4Z6ZBXV.js";import{a as uc,c as Ge,g as Ls,j as lc}from"./chunk-2XUEZHIP.js";import{b as nx}from"./chunk-OOJM4CTU.js";var rx={__proto__:null,ENOENT:"No such file or directory",ENOTDIR:"Not a directory",EISDIR:"Is a directory",EEXIST:"File exists",ENOTEMPTY:"Directory not empty",ELOOP:"Too many levels of symbolic links",EINVAL:"Invalid argument",EPERM:"Operation not permitted",EBUSY:"Device or resource busy",EILSEQ:"Invalid or incomplete multibyte or wide character",ENAMETOOLONG:"File name too long"},ox=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}]/gu,ix=e=>`${e}`.replaceAll(ox,t=>`\\u${t.codePointAt(0).toString(16).padStart(4,"0")}`),Ue=(e,t,n="a string")=>new TypeError(`${e} must be ${n}, not ${t===null?"null":typeof t}`),F=class extends Error{constructor(t,n){super(`${ix(n)}: ${rx[t]??t}`),this.name="VfsError",this.code=t,this.path=n}};var wc=(e,t="path")=>{if(typeof e!="string")throw Ue(t,e);return e};function yc(e,t){let n=Math.min(wc(e).length,wc(t).length);for(let r=0;r<n;r++)if(e[r]!==t[r])return e.codePointAt(r)-t.codePointAt(r);return e.length-t.length}var gr=e=>[...e.entries.keys()].sort(yc),Fo=(e,t)=>t===""?e:e==="/"?`/${t}`:`${e}/${t}`;function*en(e,t=r=>r,n=()=>!0){let r=[{name:"",node:e,depth:0}];for(;r.length>0;){let o=r.pop();if(yield t(o),o.node.type!=="directory"||!n(o))continue;let i=gr(o.node);for(let s=i.length-1;s>=0;s--){let a=o.name===""?i[s]:`${o.name}/${i[s]}`;r.push({name:a,leaf:i[s],parent:o.node,node:o.node.entries.get(i[s]),depth:o.depth+1})}}}var sx=new Set(["error","keep","replace"]);function xc(e,t,n="'error', 'keep' or 'replace'"){if(typeof e!="string")throw Ue(t,e,n);if(!sx.has(e))throw new RangeError(`${t} must be ${n}, not ${JSON.stringify(e)}`);return e}function bc({clash:e="error",fold:t}){if(typeof e!="function"&&xc(e,"clash","'error', 'keep', 'replace' or a function"),t!==void 0&&typeof t!="function")throw Ue("fold",t,"a function");return{fold:t,settle:typeof e=="function"?(n,r)=>xc(e(n,r),"what clash returns"):()=>e}}function kc(e,t,n,{settle:r,fold:o},i){let s=ax(t,i.copy),a=new Map([[s,{into:e}]]),u=[];for(let{name:l,leaf:c,parent:f,node:d}of en(s,void 0,p=>a.has(p.node))){if(f===void 0)continue;let p=a.get(f),h=p.into.entries.get(c);if(h?.type==="directory"&&d.type==="directory"){a.set(d,{into:h});continue}let m=h===void 0?ux(p,f,c,o):[c];if(m.length>0){let g=Fo(n,l),w=r(g,m.map(y=>g.slice(0,-c.length)+y));if(w==="error")throw new F("EEXIST",g);if(w==="keep")continue}u.push({dir:p.into,name:c,node:d,taken:m})}for(let{dir:l,name:c,node:f,taken:d}of u){for(let p of en(f))i.number(p.node);for(let p of d)l.entries.delete(p);l.entries.set(c,f)}}function*vc(e,t,n){for(let{name:r,node:o}of en(e))if(o.type==="directory")for(let i of Map.groupBy(gr(o),s=>n(s)).values())i.length>1&&(yield{path:Fo(t,r),names:i})}function ax(e,t){let n=new Map;for(let{node:r,parent:o,leaf:i}of en(e))n.has(r)||n.set(r,t(r)),o!==void 0&&n.get(o).entries.set(i,n.get(r));return n.get(e)}function ux(e,t,n,r){return r===void 0?[]:(e.keys??=Map.groupBy(gr(e.into).filter(o=>!t.entries.has(o)),o=>r(o)),e.keys.get(r(n))??[])}var lx=40,cx=255,Sc=4096,fx=new Uint8Array,Ac={file:420,directory:493,symlink:511},dx=new TextEncoder,px=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),Ro=e=>typeof e=="string"&&e.endsWith("/"),In=class{#t;#s=0;constructor(){this.#t=this.#e()}#n(t,n,r=Ac[t],o=0){return{ino:++this.#s,type:t,mode:Uo(r),mtime:Po(o),...n}}#e(t,n){return this.#n("directory",{entries:new Map},t,n)}#i(t,{follow:n=!0,mkdirs:r=!1,create:o=!1}={}){if(typeof t!="string")throw Ue("a path",t);if(t.includes("\0"))throw new F("EINVAL",t);if(t==="")throw new F("ENOENT",t);let i=t.endsWith("/"),s=[Ec(t)],a=[{name:"",node:this.#t}],u=lx,l,c,f,d;for(;;){for(;s.length>1&&Ps(s.at(-1));)s.pop();if(Ps(s.at(-1))){({name:f,node:d}=a.pop()),l=void 0;break}if(c=s.length>1,f=hx(s.at(-1)),f===".")continue;if(f===".."){a.length>1&&a.pop();continue}l=a.at(-1).node;let p=s.every(Ps);if(d=l.entries.get(f),o&&!p&&s.every(zs)){i=!0;break}if(d===void 0){if(p)break;if(!r||c)throw new F("ENOENT",t);Do(f,t),d=this.#e(),l.entries.set(f,d)}if(d.type==="symlink"&&(!p||n)){if(u--===0)throw new F("ELOOP",t);d.target.startsWith("/")&&(a.length=1),s.push(Ec(d.target,!0));continue}if(p){if(i&&!o&&d.type!=="directory")throw new F("ENOTDIR",t);break}if(d.type!=="directory")throw new F("ENOTDIR",t);a.push({name:f,node:d})}return{dir:l,name:f,node:d,trailing:i,chain:a,linked:c}}#r(t,n=!0){let r=this.#i(t,{follow:n});if(r.node===void 0)throw new F("ENOENT",t);return r}#o(t,n){return this.#r(t,n).node}#u(t,n,r){Do(t.name,r),t.dir.entries.set(t.name,n)}#a(t,n){if(t.dir!==void 0)return t.dir;throw new F(Bs(n,0)===n.length?"EBUSY":"EINVAL",n)}#l(t,n,r){try{return this.#o(t,r).type===n}catch(o){if(o instanceof F)return!1;throw o}}stat(t){return $c(this.#o(t,!0))}lstat(t){return $c(this.#o(t,Ro(t)))}isFile(t){return this.#l(t,"file",!0)}isDirectory(t){return this.#l(t,"directory",!0)}isSymlink(t){return this.#l(t,"symlink",!1)}realpath(t){return Mo(this.#r(t))}readFile(t){let n=this.#o(t,!0);if(n.type==="directory")throw new F("EISDIR",t);return n.bytes}readText(t){let n=this.readFile(t);try{return px.decode(n)}catch{throw new F("EILSEQ",t)}}readlink(t){let n=this.#o(t,Ro(t));if(n.type!=="symlink")throw new F("EINVAL",t);return n.target}readdir(t){let n=this.#o(t,!0);if(n.type!=="directory")throw new F("ENOTDIR",t);return gr(n)}#c(t,n,r,o,i){let s=Ic(n,t),a=this.#i(t,{follow:!Ro(t),create:!0});if(a.trailing||a.node?.type==="directory")throw new F("EISDIR",t);a.node===void 0?this.#u(a,this.#n("file",{bytes:s},o,i),t):r(a.node,s)}writeFile(t,n,{mode:r,mtime:o}={}){this.#c(t,n,(i,s)=>Object.assign(i,{bytes:s,...mx(i,r,o)}),r,o)}appendFile(t,n){this.#c(t,n,(r,o)=>{r.bytes=wx(r.bytes,o)})}mkdir(t,{recursive:n=!1,mode:r,mtime:o}={}){let i=this.#i(t,{follow:n,mkdirs:n,create:!n});if(i.node===void 0){if(i.linked)throw new F("ENOENT",t);this.#u(i,this.#e(r,o),t)}else if(!n||i.node.type!=="directory")throw new F("EEXIST",t)}symlink(t,n,{mode:r,mtime:o}={}){if(typeof t!="string")throw Ue("a link target",t);if(t===""||t.includes("\0"))throw new F("EINVAL",n);Do(t,n,Sc),this.#u(this.#f(n),this.#n("symlink",{target:t,size:Nc(t)},r,o),n)}hardlink(t,n){let r=this.#o(t,Ro(t)),o=this.#f(n);if(r.type==="directory")throw new F("EPERM",t);this.#u(o,r,n)}#f(t){let n=this.#i(t,{follow:!1,create:!0});if(n.node!==void 0)throw new F("EEXIST",t);if(n.trailing)throw new F("ENOENT",t);return n}unlink(t){this.rm(t)}rmdir(t){let n=this.#r(t,!1);if(n.node.type!=="directory")throw new F("ENOTDIR",t);let r=this.#a(n,t);if(n.node.entries.size>0)throw new F("ENOTEMPTY",t);r.entries.delete(n.name)}rm(t,{recursive:n=!1}={}){let r=this.#r(t,!1);if(r.node.type==="directory"&&!n)throw new F("EISDIR",t);this.#a(r,t).entries.delete(r.name)}rename(t,n){let r=this.#i(t,{follow:!1,create:!0}),o=this.#i(n,{follow:!1,create:!0}),i=this.#a(r,t),s=this.#a(o,n);if(r.node===void 0)throw new F("ENOENT",t);Do(o.name,n);let a=r.node.type==="directory";if(!a&&(r.trailing||o.trailing))throw new F("ENOTDIR",r.trailing?t:n);if(o.chain.some(u=>u.node===r.node))throw new F("EINVAL",n);if(r.chain.some(u=>u.node===o.node))throw new F("ENOTEMPTY",n);if(o.node!==r.node){if(o.node!==void 0&&o.node.type==="directory"!==a)throw new F(a?"ENOTDIR":"EISDIR",n);if(o.node?.type==="directory"&&o.node.entries.size>0)throw new F("ENOTEMPTY",n);i.entries.delete(r.name),s.entries.set(o.name,r.node)}}chmod(t,n){this.#o(t,!0).mode=Uo(n)}utimes(t,n){this.#o(t,!0).mtime=Po(n)}mount(t,n="/",r={}){if(t===null||typeof t!="object"||!(#t in t))throw Ue("a tree",t,"a Vfs");let o=bc(r),i=this.#r(n);if(i.node.type!=="directory")throw new F("ENOTDIR",n);kc(i.node,t.#t,Mo(i),o,{copy:gx,number:s=>{s.ino||=++this.#s}})}walk(t="/"){let n=this.#r(t),r=Mo(n);return en(n.node,({name:o,node:i,depth:s})=>({path:Fo(r,o),type:i.type,depth:s}))}collisions(t,n="/"){if(typeof t!="function")throw Ue("fold",t,"a function");let r=this.#r(n);return vc(r.node,Mo(r),t)}entries(t="/"){let n=this.#r(t),r=n.node.type==="directory"?".":n.name,o=new Map;return en(n.node,({name:i,node:s})=>{let a=i===""?r:i,u={name:a,type:s.type,mode:s.mode,mtime:s.mtime,linkname:"",data:fx},l=o.get(s);return l!==void 0?(u.type="hardlink",u.linkname=l):s.type==="symlink"?(o.set(s,a),u.linkname=s.target):s.type==="file"&&(o.set(s,a),u.data=s.bytes),u})}},Ec=(e,t=!1)=>({text:e,at:Bs(e,0),dot:t&&e.endsWith("/")}),zs=e=>e.at===e.text.length,Ps=e=>zs(e)&&!e.dot,Bs=(e,t)=>{let n=t;for(;e[n]==="/";)n++;return n};function hx(e){if(zs(e))return e.dot=!1,".";let t=e.text.indexOf("/",e.at),n=t===-1?e.text.length:t,r=e.text.slice(e.at,n);return e.at=Bs(e.text,n),r}var Mo=({chain:e,name:t})=>`/${[...e.slice(1).map(n=>n.name),t].filter(Boolean).join("/")}`,$c=e=>({type:e.type,ino:e.ino,mode:e.mode,mtime:e.mtime,size:e.bytes?.length??e.size??0}),mx=(e,t=e.mode,n=e.mtime)=>({mode:Uo(t),mtime:Po(n)});function Do(e,t,n=cx){if(!e.isWellFormed())throw new F("EILSEQ",t);if(Oc(e,n))throw new F("ENAMETOOLONG",t)}function Nc(e){let t=0;for(let n of e){let r=n.codePointAt(0);t+=r<128?1:r<2048?2:r<65536?3:4}return t}var Oc=(e,t)=>e.length>t||e.length*3>t&&Nc(e)>t;function Uo(e){if(!Number.isInteger(e)||e<0||e>4095)throw new RangeError(`a mode must be an integer from 0 to 0o7777, not ${e}`);return e}function Po(e){if(!Number.isSafeInteger(e))throw new RangeError(`an mtime must be an integer of whole seconds, not ${e}`);return e}function Ic(e,t){if(typeof e=="string"){if(!e.isWellFormed())throw new F("EILSEQ",t);return dx.encode(e)}if(e instanceof Uint8Array)return new Uint8Array(e);throw Ue("file contents",e,"a string or a Uint8Array")}function gx({type:e,mode:t,mtime:n,bytes:r,target:o,size:i}){let s={ino:0,type:e,mode:t,mtime:n};return e==="directory"?s.entries=new Map:e==="symlink"?Object.assign(s,{target:o,size:i}):s.bytes=r.byteOffset+r.length===r.buffer.byteLength?r:r.slice(),s}function wx(e,t){let n=e.length+t.length,r=e.byteOffset+n<=e.buffer.byteLength,o=r?new Uint8Array(e.buffer,e.byteOffset,n):new Uint8Array(Math.max(n,e.length*2)).subarray(0,n);return r||o.set(e),o.set(t,e.length),o}function zo(e){if(Object.keys(e).length>0)throw new TypeError("Unexpected extra options")}var p4=Object.getPrototypeOf(Uint8Array);var Cc=globalThis.atob,_c=Uint8Array.prototype.toBase64,Tc=8192,yx=_c&&Cc;function js(e,t=0,n=e.length){t|=0,n|=0;let r=n-t;if(r===0)return"";if(yx&&r>=256&&r<1e8&&e.toBase64===_c&&e.BYTES_PER_ELEMENT===1){let i=t===0&&n===e.length?e:e.subarray(t,n);return Cc(i.toBase64())}if(r>Tc){let i="";for(let s=t;s<n;){let a=Math.min(n,s+Tc);i+=String.fromCharCode.apply(String,e.subarray(s,a)),s=a}return i}let o=t===0&&n===e.length?e:e.subarray(t,n);return String.fromCharCode.apply(String,o)}var Tn=hr?e=>e.byteLength>=768&&!dc?hr.from(e.buffer,e.byteOffset,e.byteLength).latin1Slice(0,e.byteLength):et.decode(e):Fs?e=>Fs.decode(e):e=>js(e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength));var Lc=e=>fc(e,new Uint8Array(e.length)),xx=Kt&&Xe?.encodeInto,wr=xx?(e,t)=>{let n=new Uint8Array(e.length+4),r=Xe.encodeInto(e,n);if(r.read!==e.length||r.written!==e.length)throw new SyntaxError(t);return n.subarray(0,e.length)}:hr?(e,t)=>{let n=hr.from(e,"utf8");if(n.length!==e.length)throw new SyntaxError(t);return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}:(e,t)=>{let n=Xe.encode(e);if(n.length!==e.length)throw new SyntaxError(t);return n};var Gs={};nx(Gs,{E_CHAR:()=>Cn,E_LAST:()=>Ws,E_LENGTH:()=>Pc,E_PADDING:()=>Uc,fromBase64:()=>Hs,toBase64:()=>qs});var Fc=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"],Rc=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"],Mc={},Dc={},Cn="Invalid character in base64 input",Uc="Invalid base64 padding",Pc="Invalid base64 length",Ws="Invalid last chunk";function qs(e,t,n){let r=e.length/3|0,o=r*3,i="",s=0,a=t?Rc:Fc,u=t?Dc:Mc;if(!u.pairs)if(u.pairs=[],et){u.codepairs=new Uint16Array(4096);let h=u.codepairs,m=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);for(let g=0;g<64;g++){let w=a[g].charCodeAt(0);for(let y=0;y<64;y++)m[g<<7|y<<1]=m[y<<7|(g<<1)+1]=w}}else{let h=u.pairs;for(let m=0;m<64;m++)for(let g=0;g<64;g++)h.push(`${a[m]}${a[g]}`)}let{pairs:l,codepairs:c}=u;if(et){let h=new Uint16Array(r*2),m=0;for(let g=e.length-11;s<g;s+=12,m+=8){let w=e[s],y=e[s+1],$=e[s+2],S=e[s+3],_=e[s+4],W=e[s+5],H=e[s+6],re=e[s+7],le=e[s+8],ce=e[s+9],An=e[s+10],Nn=e[s+11];h[m]=c[w<<4|y>>4],h[m+1]=c[(y&15)<<8|$],h[m+2]=c[S<<4|_>>4],h[m+3]=c[(_&15)<<8|W],h[m+4]=c[H<<4|re>>4],h[m+5]=c[(re&15)<<8|le],h[m+6]=c[ce<<4|An>>4],h[m+7]=c[(An&15)<<8|Nn]}for(let g=e.length-2;s<g;s+=3,m+=2){let w=e[s],y=e[s+1],$=e[s+2];h[m]=c[w<<4|y>>4],h[m+1]=c[(y&15)<<8|$]}i=Tn(h)}else for(;s<o;s+=3){let h=e[s],m=e[s+1],g=e[s+2];i+=l[h<<4|m>>4],i+=l[(m&15)<<8|g]}let f=0,d=2,p=e.length;for(;s<p;s++){let h=e[s];i+=a[f|h>>d],d===6&&(d=0,i+=a[h&63]),f=h<<6-d&63,d+=2}return d!==2&&(i+=a[f]),n&&(i+=["","==","="][p-o]),i}var bx=Xe?128:65536;function Hs(e,t){let n=e.length;for(;e[n-1]==="=";)n--;let r=e.length-n,o=n%4,i=n-o;if(o===1)throw new SyntaxError(Pc);if(r>3||r!==0&&e.length%4!==0)throw new SyntaxError(Uc);let s=t?Rc:Fc,a=t?Dc:Mc;a.fromMap||(a.fromMap=new Int8Array(bx).fill(-1),s.forEach((h,m)=>a.fromMap[h.charCodeAt(0)]=m));let u=a.fromMap,l=new Uint8Array(Math.floor(n*3/4)),c=0,f=0;if(Xe){let h=wr(e,Cn);for(;f<i;f+=4){let m=h[f],g=h[f+1],w=h[f+2],y=h[f+3],$=u[m]<<18|u[g]<<12|u[w]<<6|u[y];if($<0)throw new SyntaxError(Cn);l[c]=$>>16,l[c+1]=$>>8&255,l[c+2]=$&255,c+=3}}else for(;f<i;f+=4){let h=e.charCodeAt(f),m=e.charCodeAt(f+1),g=e.charCodeAt(f+2),w=e.charCodeAt(f+3),y=u[h]<<18|u[m]<<12|u[g]<<6|u[w];if(y<0)throw new SyntaxError(Cn);l[c]=y>>16,l[c+1]=y>>8&255,l[c+2]=y&255,c+=3}if(o<2)return l;let d=u[e.charCodeAt(f++)]<<6|u[e.charCodeAt(f++)];if(d<0)throw new SyntaxError(Cn);if(l[c++]=d>>4,o<3){if(d&15)throw new SyntaxError(Ws);return l}let p=u[e.charCodeAt(f++)];if(p<0)throw new SyntaxError(Cn);if(l[c++]=d<<4&255|p>>2,p&3)throw new SyntaxError(Ws);return l}var{Buffer:tn,atob:Hc,btoa:Gc}=globalThis,Xc=tn&&!tn.TYPED_ARRAY_SUPPORT,{toBase64:zc}=Uint8Array.prototype,{E_CHAR:yr,E_PADDING:br,E_LENGTH:kx,E_LAST:vx}=Gs,Ex=Gc&&Kt,$x=Hc&&Kt,Sx=e=>e.constructor===tn&&tn.isBuffer(e),Ax=e=>Sx(e)?e:tn.from(e.buffer,e.byteOffset,e.byteLength);function Bc(e,t){if(t)return e;let n=e.indexOf("=",e.length-3);return n===-1?e:e.slice(0,n)}function jc(e,t){return t&&e.length%4!==0?e+"=".repeat(4-e.length%4):e}var Nx=e=>zc&&e.toBase64===zc;function kr(e,{padding:t=!0}={}){return On(e),Nx(e)?t?e.toBase64():e.toBase64({omitPadding:!t}):Xc?Bc(Ax(e).base64Slice(0,e.byteLength),t):Ex?Bc(Gc(js(e)),t):qs(e,!1,t)}function vr(e,t){if(typeof t=="string"&&(t={format:t}),!t)return Wc(e,!1,"both","uint8",null);let{format:n="uint8",padding:r="both",...o}=t;return Wc(e,!1,r,n,o)}function Wc(e,t,n,r,o){if(typeof e!="string")throw new TypeError(Co);o!==null&&zo(o);let i=n==="both"?e.endsWith("="):void 0;if(n===!0||i===!0){if(e.length%4!==0)throw new SyntaxError(br);if(e[e.length-3]==="=")throw new SyntaxError(br)}else if(n===!1||i===!1){if(e.length%4===1)throw new SyntaxError(kx);if(n===!1&&e.endsWith("="))throw new SyntaxError("Did not expect padding in base64 input")}else throw new TypeError("Invalid padding option");return xr(e,t,n,r)}var Ox=/[\t\n\f\r ]/;function qc(e,t){let n=e.indexOf("=",e.length-3),r=n>=0?e.length-n:0,o=e.length-r,i=o%4,s=t.length-(o-i)/4*3;return i===0&&s===0||i===2&&s===1||i===3&&s===2}var xr;Uint8Array.fromBase64?xr=(e,t,n,r)=>{let o=t?"base64url":"base64",i;if(n===!0)i=Uint8Array.fromBase64(e,{alphabet:o,lastChunkHandling:"strict"});else try{let s=e.length%4>0?`${e}${"=".repeat(4-e.length%4)}`:e;i=Uint8Array.fromBase64(s,{alphabet:o,lastChunkHandling:"strict"})}catch(s){throw Ox.test(e)?new SyntaxError(yr):s}if(!qc(e,i))throw new SyntaxError(yr);return Jt(i,r)}:Xc?xr=(e,t,n,r)=>{let o=tn.byteLength(e,"base64"),i=tn.allocUnsafeSlow(o);if(i.base64Write(e)!==o)throw new SyntaxError(br);let s=t?i.base64urlSlice(0,i.length):i.base64Slice(0,i.length);if(e!==s){if(n===!t)throw new SyntaxError(br);if(jc(e,!0)!==jc(s,t))throw new SyntaxError(br)}return hc(i,r)}:$x?xr=(e,t,n,r)=>{let o;if(t){if(/[\t\n\f\r +/]/.test(e))throw new SyntaxError(yr);e=e.replaceAll("-","+").replaceAll("_","/")}try{o=Lc(Hc(e))}catch{throw new SyntaxError(yr)}if(!t&&!qc(e,o))throw new SyntaxError(yr);if(o.length%3!==0){let i=kr(o.subarray(-(o.length%3))),s=e.length%4===0?e.slice(-4):e.slice(-(e.length%4)).padEnd(4,"=");if(i!==s)throw new SyntaxError(vx)}return Jt(o,r)}:xr=(e,t,n,r)=>Jt(Hs(e,t),r);var R=(e="")=>({stdout:e,stderr:"",exitCode:0}),b=(e,t=1)=>({stdout:"",stderr:e.endsWith(`
|
|
1
|
+
import{a as e,b as t,c as n,e as r,f as i}from"./chunk-2ZDZWLFY.js";import{a}from"./chunk-GO7FT4OD.js";import{a as o,b as s,c,d as l,e as u,h as d,i as f,j as p,k as m,l as h}from"./chunk-4HI2MSAV.js";import"./chunk-PXK7EU4V.js";import{c as g,d as _}from"./chunk-OKRLLE5I.js";import"./chunk-C4Z6ZBXV.js";import{a as ee,c as v,g as te,j as ne}from"./chunk-2XUEZHIP.js";import"./chunk-OOJM4CTU.js";var re={__proto__:null,ENOENT:`No such file or directory`,ENOTDIR:`Not a directory`,EISDIR:`Is a directory`,EEXIST:`File exists`,ENOTEMPTY:`Directory not empty`,ELOOP:`Too many levels of symbolic links`,EINVAL:`Invalid argument`,EPERM:`Operation not permitted`,EBUSY:`Device or resource busy`,EILSEQ:`Invalid or incomplete multibyte or wide character`,ENAMETOOLONG:`File name too long`},ie=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}]/gu,ae=e=>`${e}`.replaceAll(ie,e=>`\\u${e.codePointAt(0).toString(16).padStart(4,`0`)}`),oe=(e,t,n=`a string`)=>TypeError(`${e} must be ${n}, not ${t===null?`null`:typeof t}`),y=class extends Error{constructor(e,t){super(`${ae(t)}: ${re[e]??e}`),this.name=`VfsError`,this.code=e,this.path=t}},se=(e,t=`path`)=>{if(typeof e!=`string`)throw oe(t,e);return e};function ce(e,t){let n=Math.min(se(e).length,se(t).length);for(let r=0;r<n;r++)if(e[r]!==t[r])return e.codePointAt(r)-t.codePointAt(r);return e.length-t.length}var le=e=>[...e.entries.keys()].sort(ce),ue=(e,t)=>t===``?e:e===`/`?`/${t}`:`${e}/${t}`;function*de(e,t=e=>e,n=()=>!0){let r=[{name:``,node:e,depth:0}];for(;r.length>0;){let e=r.pop();if(yield t(e),e.node.type!==`directory`||!n(e))continue;let i=le(e.node);for(let t=i.length-1;t>=0;t--){let n=e.name===``?i[t]:`${e.name}/${i[t]}`;r.push({name:n,leaf:i[t],parent:e.node,node:e.node.entries.get(i[t]),depth:e.depth+1})}}}var fe=new Set([`error`,`keep`,`replace`]);function pe(e,t,n=`'error', 'keep' or 'replace'`){if(typeof e!=`string`)throw oe(t,e,n);if(!fe.has(e))throw RangeError(`${t} must be ${n}, not ${JSON.stringify(e)}`);return e}function me({clash:e=`error`,fold:t}){if(typeof e!=`function`&&pe(e,`clash`,`'error', 'keep', 'replace' or a function`),t!==void 0&&typeof t!=`function`)throw oe(`fold`,t,`a function`);return{fold:t,settle:typeof e==`function`?(t,n)=>pe(e(t,n),`what clash returns`):()=>e}}function he(e,t,n,{settle:r,fold:i},a){let o=_e(t,a.copy),s=new Map([[o,{into:e}]]),c=[];for(let{name:e,leaf:t,parent:a,node:l}of de(o,void 0,e=>s.has(e.node))){if(a===void 0)continue;let o=s.get(a),u=o.into.entries.get(t);if(u?.type===`directory`&&l.type===`directory`){s.set(l,{into:u});continue}let d=u===void 0?ve(o,a,t,i):[t];if(d.length>0){let i=ue(n,e),a=r(i,d.map(e=>i.slice(0,-t.length)+e));if(a===`error`)throw new y(`EEXIST`,i);if(a===`keep`)continue}c.push({dir:o.into,name:t,node:l,taken:d})}for(let{dir:e,name:t,node:n,taken:r}of c){for(let e of de(n))a.number(e.node);for(let t of r)e.entries.delete(t);e.entries.set(t,n)}}function*ge(e,t,n){for(let{name:r,node:i}of de(e))if(i.type===`directory`)for(let e of Map.groupBy(le(i),e=>n(e)).values())e.length>1&&(yield{path:ue(t,r),names:e})}function _e(e,t){let n=new Map;for(let{node:r,parent:i,leaf:a}of de(e))n.has(r)||n.set(r,t(r)),i!==void 0&&n.get(i).entries.set(a,n.get(r));return n.get(e)}function ve(e,t,n,r){return r===void 0?[]:(e.keys??=Map.groupBy(le(e.into).filter(e=>!t.entries.has(e)),e=>r(e)),e.keys.get(r(n))??[])}var ye=40,be=255,xe=4096,Se=new Uint8Array,Ce={file:420,directory:493,symlink:511},we=new TextEncoder,Te=new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0}),Ee=e=>typeof e==`string`&&e.endsWith(`/`),De=class{#e;#t=0;constructor(){this.#e=this.#r()}#n(e,t,n=Ce[e],r=0){return{ino:++this.#t,type:e,mode:ze(n),mtime:Be(r),...t}}#r(e,t){return this.#n(`directory`,{entries:new Map},e,t)}#i(e,{follow:t=!0,mkdirs:n=!1,create:r=!1}={}){if(typeof e!=`string`)throw oe(`a path`,e);if(e.includes(`\0`))throw new y(`EINVAL`,e);if(e===``)throw new y(`ENOENT`,e);let i=e.endsWith(`/`),a=[Oe(e)],o=[{name:``,node:this.#e}],s=ye,c,l,u,d;for(;;){for(;a.length>1&&Ae(a.at(-1));)a.pop();if(Ae(a.at(-1))){({name:u,node:d}=o.pop()),c=void 0;break}if(l=a.length>1,u=Me(a.at(-1)),u===`.`)continue;if(u===`..`){o.length>1&&o.pop();continue}c=o.at(-1).node;let f=a.every(Ae);if(d=c.entries.get(u),r&&!f&&a.every(ke)){i=!0;break}if(d===void 0){if(f)break;if(!n||l)throw new y(`ENOENT`,e);Ie(u,e),d=this.#r(),c.entries.set(u,d)}if(d.type===`symlink`&&(!f||t)){if(s--===0)throw new y(`ELOOP`,e);d.target.startsWith(`/`)&&(o.length=1),a.push(Oe(d.target,!0));continue}if(f){if(i&&!r&&d.type!==`directory`)throw new y(`ENOTDIR`,e);break}if(d.type!==`directory`)throw new y(`ENOTDIR`,e);o.push({name:u,node:d})}return{dir:c,name:u,node:d,trailing:i,chain:o,linked:l}}#a(e,t=!0){let n=this.#i(e,{follow:t});if(n.node===void 0)throw new y(`ENOENT`,e);return n}#o(e,t){return this.#a(e,t).node}#s(e,t,n){Ie(e.name,n),e.dir.entries.set(e.name,t)}#c(e,t){if(e.dir!==void 0)return e.dir;throw new y(je(t,0)===t.length?`EBUSY`:`EINVAL`,t)}#l(e,t,n){try{return this.#o(e,n).type===t}catch(e){if(e instanceof y)return!1;throw e}}stat(e){return Pe(this.#o(e,!0))}lstat(e){return Pe(this.#o(e,Ee(e)))}isFile(e){return this.#l(e,`file`,!0)}isDirectory(e){return this.#l(e,`directory`,!0)}isSymlink(e){return this.#l(e,`symlink`,!1)}realpath(e){return Ne(this.#a(e))}readFile(e){let t=this.#o(e,!0);if(t.type===`directory`)throw new y(`EISDIR`,e);return t.bytes}readText(e){let t=this.readFile(e);try{return Te.decode(t)}catch{throw new y(`EILSEQ`,e)}}readlink(e){let t=this.#o(e,Ee(e));if(t.type!==`symlink`)throw new y(`EINVAL`,e);return t.target}readdir(e){let t=this.#o(e,!0);if(t.type!==`directory`)throw new y(`ENOTDIR`,e);return le(t)}#u(e,t,n,r,i){let a=Ve(t,e),o=this.#i(e,{follow:!Ee(e),create:!0});if(o.trailing||o.node?.type===`directory`)throw new y(`EISDIR`,e);o.node===void 0?this.#s(o,this.#n(`file`,{bytes:a},r,i),e):n(o.node,a)}writeFile(e,t,{mode:n,mtime:r}={}){this.#u(e,t,(e,t)=>Object.assign(e,{bytes:t,...Fe(e,n,r)}),n,r)}appendFile(e,t){this.#u(e,t,(e,t)=>{e.bytes=Ue(e.bytes,t)})}mkdir(e,{recursive:t=!1,mode:n,mtime:r}={}){let i=this.#i(e,{follow:t,mkdirs:t,create:!t});if(i.node===void 0){if(i.linked)throw new y(`ENOENT`,e);this.#s(i,this.#r(n,r),e)}else if(!t||i.node.type!==`directory`)throw new y(`EEXIST`,e)}symlink(e,t,{mode:n,mtime:r}={}){if(typeof e!=`string`)throw oe(`a link target`,e);if(e===``||e.includes(`\0`))throw new y(`EINVAL`,t);Ie(e,t,xe),this.#s(this.#d(t),this.#n(`symlink`,{target:e,size:Le(e)},n,r),t)}hardlink(e,t){let n=this.#o(e,Ee(e)),r=this.#d(t);if(n.type===`directory`)throw new y(`EPERM`,e);this.#s(r,n,t)}#d(e){let t=this.#i(e,{follow:!1,create:!0});if(t.node!==void 0)throw new y(`EEXIST`,e);if(t.trailing)throw new y(`ENOENT`,e);return t}unlink(e){this.rm(e)}rmdir(e){let t=this.#a(e,!1);if(t.node.type!==`directory`)throw new y(`ENOTDIR`,e);let n=this.#c(t,e);if(t.node.entries.size>0)throw new y(`ENOTEMPTY`,e);n.entries.delete(t.name)}rm(e,{recursive:t=!1}={}){let n=this.#a(e,!1);if(n.node.type===`directory`&&!t)throw new y(`EISDIR`,e);this.#c(n,e).entries.delete(n.name)}rename(e,t){let n=this.#i(e,{follow:!1,create:!0}),r=this.#i(t,{follow:!1,create:!0}),i=this.#c(n,e),a=this.#c(r,t);if(n.node===void 0)throw new y(`ENOENT`,e);Ie(r.name,t);let o=n.node.type===`directory`;if(!o&&(n.trailing||r.trailing))throw new y(`ENOTDIR`,n.trailing?e:t);if(r.chain.some(e=>e.node===n.node))throw new y(`EINVAL`,t);if(n.chain.some(e=>e.node===r.node))throw new y(`ENOTEMPTY`,t);if(r.node!==n.node){if(r.node!==void 0&&r.node.type===`directory`!==o)throw new y(o?`ENOTDIR`:`EISDIR`,t);if(r.node?.type===`directory`&&r.node.entries.size>0)throw new y(`ENOTEMPTY`,t);i.entries.delete(n.name),a.entries.set(r.name,n.node)}}chmod(e,t){this.#o(e,!0).mode=ze(t)}utimes(e,t){this.#o(e,!0).mtime=Be(t)}mount(e,t=`/`,n={}){if(typeof e!=`object`||!e||!(#e in e))throw oe(`a tree`,e,`a Vfs`);let r=me(n),i=this.#a(t);if(i.node.type!==`directory`)throw new y(`ENOTDIR`,t);he(i.node,e.#e,Ne(i),r,{copy:He,number:e=>{e.ino||=++this.#t}})}walk(e=`/`){let t=this.#a(e),n=Ne(t);return de(t.node,({name:e,node:t,depth:r})=>({path:ue(n,e),type:t.type,depth:r}))}collisions(e,t=`/`){if(typeof e!=`function`)throw oe(`fold`,e,`a function`);let n=this.#a(t);return ge(n.node,Ne(n),e)}entries(e=`/`){let t=this.#a(e),n=t.node.type===`directory`?`.`:t.name,r=new Map;return de(t.node,({name:e,node:t})=>{let i=e===``?n:e,a={name:i,type:t.type,mode:t.mode,mtime:t.mtime,linkname:``,data:Se},o=r.get(t);return o===void 0?t.type===`symlink`?(r.set(t,i),a.linkname=t.target):t.type===`file`&&(r.set(t,i),a.data=t.bytes):(a.type=`hardlink`,a.linkname=o),a})}},Oe=(e,t=!1)=>({text:e,at:je(e,0),dot:t&&e.endsWith(`/`)}),ke=e=>e.at===e.text.length,Ae=e=>ke(e)&&!e.dot,je=(e,t)=>{let n=t;for(;e[n]===`/`;)n++;return n};function Me(e){if(ke(e))return e.dot=!1,`.`;let t=e.text.indexOf(`/`,e.at),n=t===-1?e.text.length:t,r=e.text.slice(e.at,n);return e.at=je(e.text,n),r}var Ne=({chain:e,name:t})=>`/${[...e.slice(1).map(e=>e.name),t].filter(Boolean).join(`/`)}`,Pe=e=>({type:e.type,ino:e.ino,mode:e.mode,mtime:e.mtime,size:e.bytes?.length??e.size??0}),Fe=(e,t=e.mode,n=e.mtime)=>({mode:ze(t),mtime:Be(n)});function Ie(e,t,n=be){if(!e.isWellFormed())throw new y(`EILSEQ`,t);if(Re(e,n))throw new y(`ENAMETOOLONG`,t)}function Le(e){let t=0;for(let n of e){let e=n.codePointAt(0);t+=e<128?1:e<2048?2:e<65536?3:4}return t}var Re=(e,t)=>e.length>t||e.length*3>t&&Le(e)>t;function ze(e){if(!Number.isInteger(e)||e<0||e>4095)throw RangeError(`a mode must be an integer from 0 to 0o7777, not ${e}`);return e}function Be(e){if(!Number.isSafeInteger(e))throw RangeError(`an mtime must be an integer of whole seconds, not ${e}`);return e}function Ve(e,t){if(typeof e==`string`){if(!e.isWellFormed())throw new y(`EILSEQ`,t);return we.encode(e)}if(e instanceof Uint8Array)return new Uint8Array(e);throw oe(`file contents`,e,`a string or a Uint8Array`)}function He({type:e,mode:t,mtime:n,bytes:r,target:i,size:a}){let o={ino:0,type:e,mode:t,mtime:n};return e===`directory`?o.entries=new Map:e===`symlink`?Object.assign(o,{target:i,size:a}):o.bytes=r.byteOffset+r.length===r.buffer.byteLength?r:r.slice(),o}function Ue(e,t){let n=e.length+t.length,r=e.byteOffset+n<=e.buffer.byteLength,i=r?new Uint8Array(e.buffer,e.byteOffset,n):new Uint8Array(Math.max(n,e.length*2)).subarray(0,n);return r||i.set(e),i.set(t,e.length),i}var b=(e=``)=>({stdout:e,stderr:``,exitCode:0}),x=(e,t=1)=>({stdout:``,stderr:e.endsWith(`
|
|
2
2
|
`)?e:e+`
|
|
3
|
-
`,exitCode:t}),xe=(e,t=1)=>b(`usage: ${e}`,t);var Zc=Symbol("unsupported");function C(e){if(e==null)return null;try{return e[Zc]??null}catch{return null}}function v(e,t,n,r,o=1){return X(b(r,o),e,t,n,r)}function X(e,t,n,r,o){return Object.defineProperty(e,Zc,{value:{kind:t,command:n,detail:r,message:o},enumerable:!1,configurable:!0}),e}function Q(e,t,n,r){let o=C(e);return o?v(o.kind,t,o.detail,n,r):b(n,r)}var x=class extends Error{constructor(t,n,r){super(r),this.name="UnsupportedError",X(this,t,null,n,r)}};function Xs(){let e=new Set,t=[];return{entries:t,add(n,r=n.command){let o=JSON.stringify([n.kind,r,n.detail]);e.has(o)||(e.add(o),t.push(Object.freeze(n)))}}}function I(e){try{return Qt(e)}catch(t){throw t instanceof TypeError?new x("feature","unpaired surrogate","unpaired UTF-16 surrogates cannot be encoded as UTF-8"):t}}var Ix=e=>e<128?1:e>=194&&e<=223?2:e>=224&&e<=239?3:e>=240&&e<=244?4:0;function*Bo(e){for(let t=0;t<e.length;){let n=Kc[e[t]],r=n===1?e[t]:n===0?-1:Vc(e,t,n);yield r,t+=r<0?1:n}}var Tx=[0,0,128,2048,65536];function Vc(e,t,n){if(t+n>e.length)return-1;let r=e[t]&127>>n;for(let o=1;o<n;o++){if((e[t+o]&192)!==128)return-1;r=r<<6|e[t+o]&63}return r<Tx[n]||r>1114111||r>=55296&&r<=57343?-1:r}var Ys=e=>mc(e);function ve(e){let t;try{t=mr(e)}catch{}return t}function Vs(e){let t=ve(e);if(t!==void 0)return t;let n=new Uint16Array(e.length),r=0;for(let i=0;i<e.length;){let s=Kc[e[i]],a=s===1?e[i]:s===0?-1:Vc(e,i,s);if(a<0){n[r++]=56320+e[i++];continue}a>65535?(n[r++]=55232+(a>>10),n[r++]=56320+(a&1023)):n[r++]=a,i+=s}let o="";for(let i=0;i<r;i+=Yc)o+=String.fromCharCode.apply(null,n.subarray(i,Math.min(r,i+Yc)));return o}var Yc=4096,Kc=Uint8Array.from({length:256},(e,t)=>Ix(t)),nn="\\uDC80-\\uDCFF",_n=new RegExp(`[${nn}]`,"u"),_t=e=>e>=56448&&e<=56575;function Ks(e){if(!_n.test(e))return I(e);let t=new Uint8Array(e.length*3),n=0;for(let r=0;r<e.length;r++){let o=e.codePointAt(r);if(o<128)t[n++]=o;else if(_t(o))t[n++]=o-56320;else if(o<2048)n=Zs(t,n,192|o>>6,o,1);else if(o<65536){if(o>=55296&&o<=57343)return I(e);n=Zs(t,n,224|o>>12,o,2)}else n=Zs(t,n,240|o>>18,o,3),r++}return t.slice(0,n)}function Zs(e,t,n,r,o){e[t++]=n;for(let i=o-1;i>=0;i--)e[t++]=128|r>>6*i&63;return t}function Ze(e){if(e.length===1)return e[0];let t=new Uint8Array(e.reduce((r,o)=>r+o.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function G(e){try{return mr(e)}catch{throw new x("feature","partial UTF-8 byte sequence","byte output that is not valid UTF-8 cannot be represented by this string-based terminal")}}function Ln(e){let t=e.startsWith("/"),n=e.split("/").filter(Boolean),r=[];for(let o of n)if(o!=="."){if(o===".."){r.length>0&&r.at(-1)!==".."?r.pop():t||r.push("..");continue}r.push(o)}return t?"/"+r.join("/"):r.length===0?".":r.join("/")}function j(e,t){return t.startsWith("/")?Ln(t):Ln(e+"/"+t)}var Cx=40,jo=(e,t)=>e.isLink?.(t)===!0;function E(e,t,n,{follow:r=!0}={}){let o=tt(e,t,n,{follow:r});return o.error?{path:null,error:o.error}:t.endsWith("/")&&!n.isDir(o.path)?{path:null,error:"Not a directory"}:{path:o.path,error:null}}function tt(e,t,n,{follow:r=!0,lenient:o=!1}={}){if(t===""||t.includes("\0"))return{path:"/",error:"No such file or directory",rest:[]};let i=(t.startsWith("/")?t:e+"/"+t).split("/").filter(Boolean),s=r||t.endsWith("/"),a=Cx,u="/";for(;i.length>0;){let c=i.shift();if(!n.isDir(u)){if(!o){let d=n.isFile(u)||jo(n,u)?"Not a directory":"No such file or directory";return{path:u,error:d,rest:[c,...i]}}c===".."?u=oe(u):c!=="."&&(u=he(u,c));continue}if(c===".."){u=oe(u);continue}if(c!=="."&&(u=he(u,c)),!jo(n,u)||i.length===0&&!s)continue;if(a--===0)return{path:u,error:"Too many levels of symbolic links",rest:[...i]};let f=n.readLink(u);u=f.startsWith("/")?"/":oe(u),i.unshift(...f.split("/").filter(Boolean),...f.endsWith("/")?["."]:[])}let l=!n.isDir(u)&&!n.isFile(u)&&!jo(n,u);return{path:u,error:l?"No such file or directory":null,rest:[]}}var me=(e,t,n,r=!0)=>n===""||n.includes("\0")?j(t,n):tt(t,n,e,{follow:r,lenient:!0}).path;function gt(e,t,n,r=E(e,t,n)){if(r.path!==null)return null;if(t===""||t.includes("\0")||t.endsWith("/")||r.error!=="No such file or directory")return r.error;let o=tt(e,t,n);return o.rest.length>0?o.error:n.isDir(oe(o.path))?null:"Not a directory"}function oe(e){let t=Ln(e);if(t==="/")return"/";let n=t.lastIndexOf("/");return n<0?".":n===0?"/":t.slice(0,n)}function Ne(e){let t=Ln(e);if(t==="/")return"/";let n=t.lastIndexOf("/");return t.slice(n+1)}function q(e,t){for(let n=0;n<Math.min(e.length,t.length);n++)if(e[n]!==t[n])return e.codePointAt(n)-t.codePointAt(n);return e.length-t.length}function he(e,t){return e==="/"?"/"+t:e+"/"+t}function nt(e,t){return e==="/"?t.slice(1):t.slice(e.length+1)}function Lt(e,t,n="reading them as text"){let r=ve(e);if(r===void 0)throw new x("feature","binary file",`${t} holds bytes that spell no text, and ${n} is not supported`);return r}var Er=(e,t)=>e!==void 0&&t!==void 0&&e.length===t.length&&e.every((n,r)=>n===t[r]);function*rt(e,t,n=Number.POSITIVE_INFINITY,r=()=>!0){if(e.isFile(t)){yield{path:t,kind:"file",depth:0};return}if(!e.isDir(t)){jo(e,t)&&(yield{path:t,kind:"link",depth:0});return}let o=[{path:t,kind:"dir",depth:0}];for(;o.length;){let i=o.pop();if(yield i,i.kind!=="dir"||i.depth>=n||!r(i.path))continue;let{dirs:s,files:a,links:u=[]}=e.listDir(i.path),l=s.length-1,c=a.length-1,f=u.length-1;for(;l>=0||c>=0||f>=0;){let d=l>=0?"dir":null,p=l>=0?s[l]:null;c>=0&&(p===null||q(a[c],p)>=0)&&(d="file",p=a[c]),f>=0&&(p===null||q(u[f],p)>=0)&&(d="link",p=u[f]),d==="dir"?l--:d==="file"?c--:f--,o.push({path:he(i.path,p),kind:d,depth:i.depth+1})}}}function*Jc(e,t){for(let n of rt(e,t))n.kind==="file"&&(yield n.path)}function rf(e,t="/"){let n=new In;try{n.mkdir(t,{recursive:!0})}catch(o){throw Js(o,`mount ${JSON.stringify(t)}`)}let r={declared:new Map,made:new Set(["/",t])};for(let[o,i]of Mx(e)){let s=String(o);if(s.includes("\0"))throw new TypeError("createTerminal: source paths must not contain NUL characters");let a=Ux(i,s),u=Ln("/"+s);_x(n,r,t==="/"?u:u==="/"?t:t+u,a,s)}return Fx(n)}function _x(e,t,n,r,o){let i=t.declared.get(n);if(i!==void 0){if(i===r.type&&Lx(e,n,r))return;throw new TypeError(`createTerminal: source ${JSON.stringify(o)} names the same path as an earlier source, which declared something else there`)}t.declared.set(n,r.type);let s=n.slice(0,n.lastIndexOf("/"))||"/";if(!t.made.has(s)){try{e.mkdir(s,{recursive:!0})}catch(a){throw a?.code==="ENOENT"?Qc(o):Js(a?.code==="EEXIST"?new F("ENOTDIR",s):a,`source ${JSON.stringify(o)}`)}if(e.realpath(s)!==s)throw Qc(o);t.made.add(s)}try{if(r.type==="file")e.writeFile(n,r.data);else if(r.type==="symlink")e.symlink(r.target,n);else{try{e.mkdir(n)}catch(a){if(a?.code!=="EEXIST"||e.lstat(n).type!=="directory")throw a}t.made.add(n)}}catch(a){throw Js(a,`source ${JSON.stringify(o)}`)}}var Qc=e=>new TypeError(`createTerminal: source ${JSON.stringify(e)} is declared through a symbolic link; declare it where the link leads`);function Js(e,t){return e instanceof F?new TypeError(`createTerminal: ${t}: ${e.message}`,{cause:e}):e}function Lx(e,t,n){return n.type==="directory"?!0:n.type==="symlink"?e.readlink(t)===n.target:Er(e.readFile(t),typeof n.data=="string"?I(n.data):n.data)}var of={directory:"dirs",file:"files",symlink:"links"},Wo=e=>e.slice(0,e.lastIndexOf("/"))||"/",Qs=()=>({dirs:[],files:[],links:[]});function Fx(e){let t=null,n=null,r={children:new Map,types:new Map},o=()=>n??=Rx(e,s),i=new WeakMap,s=d=>t!==null&&(d===t||d.startsWith(t+"/")),a=d=>{let p=r.children.get(d);if(p!==void 0)return p;p={listing:Qs(),types:new Map};for(let h of e.readdir(d)){let{type:m}=e.lstat(he(d,h));p.types.set(h,m),p.listing[of[m]].push(h)}return r.children.set(d,p),p},u=d=>{if(typeof d!="string"||!d.startsWith("/"))return;if(d==="/")return"directory";let p=[],h=d;for(;s(Wo(h))&&!r.types.has(h);)p.push(h),h=Wo(h);let m=s(Wo(h))?r.types.get(h):o().types.get(h)??"";for(let g=p.length-1;g>=0;g--){let w=p[g];m=m==="directory"?a(Wo(w)).types.get(w.slice(w.lastIndexOf("/")+1))??"":"",r.types.set(w,m)}return m||void 0},l=d=>u(d)===void 0?void 0:e.lstat(d),c=d=>u(d)==="file"?e.readFile(d):void 0,f={vfs:e,writableAt:d=>{t=d,n=null,r={children:new Map,types:new Map}},reshaped:()=>{r={children:new Map,types:new Map}},isFile:d=>u(d)==="file",isDir:d=>u(d)==="directory",isLink:d=>u(d)==="symlink",readLink:d=>u(d)==="symlink"?e.readlink(d):void 0,readFile:d=>{let p=c(d),h=p&&i.get(p);return p&&h===void 0&&i.set(p,h=Lt(p,JSON.stringify(d))),h},readBytes:d=>c(d),fileSize:d=>{let p=l(d);return p===void 0||p.type==="directory"?void 0:p.size},sameFileContents:(d,p)=>Er(c(d),c(p)),exactBytes:c,isBytes:d=>u(d)==="file",isEmptyFile:d=>{let p=l(d);return p?.type==="file"&&p.size===0},listDir:d=>{if(u(d)!=="directory")throw new Error(`not a directory: ${d}`);return s(d)?a(d).listing:o().children.get(d)},walkFiles:d=>Jc(f,d)};return f}function Rx(e,t){let n=new Map([["/",Qs()]]),r=new Map([["/","directory"]]),o=["/"];for(let{path:i,type:s,depth:a}of e.walk("/")){if(a===0)continue;let u=o[a-1];s==="directory"&&(o[a]=i),!t(u)&&(s==="directory"&&n.set(i,Qs()),n.get(u)[of[s]].push(i.slice(u.length+(u==="/"?0:1))),r.set(i,s))}return{children:n,types:r}}function Mx(e){try{return Map.prototype.entries.call(e)}catch{return Object.entries(e??{})}}var ef={file:["data"],directory:[],symlink:["target"]},Dx=new Set(["mode","mtime"]);function Ux(e,t){let n=JSON.stringify(t);if(typeof e=="string")return{type:"file",data:tf(e,t)};if(ArrayBuffer.isView(e))return{type:"file",data:nf(e,t)};if(e instanceof ArrayBuffer)throw new TypeError(`createTerminal: source ${n} is an ArrayBuffer; declare a file's bytes as a Uint8Array over it`);if(e===null||typeof e!="object"||Array.isArray(e)){let i=e===null?"null":Array.isArray(e)?"an array":e===void 0?"undefined":`a ${typeof e}`;throw new TypeError(`createTerminal: source ${n} is ${i}; a source is text, a Uint8Array, or an object declaring its type`)}if(e.format!==void 0)return{type:"file",data:Px(e,t)};let{type:r}=e;if(r==="link")throw new TypeError(`createTerminal: source ${n} declares type "link"; a symbolic link is declared as { type: 'symlink', target }`);if(r==="hardlink")throw new TypeError(`createTerminal: source ${n} declares a hard link, which is not supported: each file here has the one name`);if(r===void 0)throw new TypeError(`createTerminal: source ${n} declares no type; an object declares { type: 'file' | 'directory' | 'symlink' } or { format: 'base64', data }`);if(!Object.hasOwn(ef,r))throw new TypeError(`createTerminal: source ${n} declares type ${JSON.stringify(r)}; the types are 'file', 'directory' and 'symlink'`);for(let i of Object.keys(e))if(!(i==="type"||ef[r].includes(i)))throw new TypeError(Dx.has(i)?`createTerminal: source ${n} declares \`${i}\`, which this terminal does not keep yet`:`createTerminal: source ${n} declares \`${i}\`, which a ${r} does not have`);if(r==="directory")return{type:r};if(r==="symlink"){let{target:i}=e;if(typeof i!="string"||i===""||i.includes("\0"))throw new TypeError(`createTerminal: link ${n} must declare a non-empty target without NUL characters`);return{type:r,target:i}}let{data:o=""}=e;if(typeof o=="string")return{type:r,data:tf(o,t)};if(ArrayBuffer.isView(o))return{type:r,data:nf(o,t)};throw new TypeError(`createTerminal: source ${n} declares \`data\` that is neither text nor a Uint8Array`)}function tf(e,t){if(!e.isWellFormed())throw new TypeError(`createTerminal: source ${JSON.stringify(t)} holds a lone surrogate, which no UTF-8 spells; declare the file's bytes as a Uint8Array`);return e}function Px(e,t){let n=JSON.stringify(t);if(e.format!=="base64")throw new TypeError(`createTerminal: source ${n} declares format ${JSON.stringify(e.format)}; the only format is { format: 'base64', data }`);let r=Object.keys(e).find(o=>o!=="format"&&o!=="data");if(r!==void 0)throw new TypeError(`createTerminal: source ${n} declares \`${r}\`, which base64 contents do not have`);if(typeof e.data!="string")throw new TypeError(`createTerminal: source ${n} must declare its base64 as a string in \`data\``);try{return vr(e.data)}catch(o){throw o instanceof SyntaxError?new TypeError(`createTerminal: source ${n} declares base64 that does not decode`,{cause:o}):o}}function nf(e,t){if(e.BYTES_PER_ELEMENT!==1)throw new TypeError(`createTerminal: source ${JSON.stringify(t)} is a ${e[Symbol.toStringTag]??"view"}; declare a file's bytes as a Uint8Array`);return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var rn={__proto__:null,alpha:"A-Za-z",digit:"0-9",alnum:"0-9A-Za-z",upper:"A-Z",lower:"a-z",space:" \\t\\n\\v\\f\\r",blank:" \\t",punct:"!-\\/:-@\\[-`{-~",xdigit:"0-9A-Fa-f",cntrl:"\\x00-\\x1F\\x7F",print:"\\x20-\\x7E",graph:"\\x21-\\x7E",word:"0-9A-Za-z_"},$r={__proto__:null};for(let[e,t]of Object.entries(rn)){let n=new RegExp(`[${t}]`,"u"),r=[];for(let o=0;o<128;o++){if(!n.test(String.fromCodePoint(o)))continue;let i=r.at(-1);i&&i[1]===o-1?i[1]=o:r.push([o,o])}$r[e]=r}var qo=32767;function sf(e,t){if(e>qo||t!==void 0&&t>qo)throw new Error("Regular expression too big")}function Ho(e,t,n=!1){let r=t+1;e[r]==="^"&&r++;let o=!0,i=!1;for(;r<e.length;){let s=e[r];if(s==="]"&&!o)return r;if(o=!1,s==="["&&":.=".includes(e[r+1]??"")){let l=e[r+1],c=e.indexOf(l+"]",r+2);if(c===-1)throw new Error("Unmatched [, [^, [:, [., or [=");if(l===":"&&!(e.slice(r+2,c)in rn))throw new Error("Invalid character class name");if(l!==":"&&n&&/\P{ASCII}/u.test(e.slice(r+2,c)))throw new Error("Invalid collation character");r=c+2,i=l!==".";continue}if(s==="-"&&i&&r+1<e.length&&e[r+1]!=="]")throw new Error("Invalid range end");let a=s==="\\"&&r+1<e.length?2:1;if(e[r+a]==="-"&&e[r+a+1]!==void 0&&e[r+a+1]!=="]"){let l=r+a+1,c=e[l]==="["?e[l+1]:void 0;if(c===":"||c==="=")throw new Error("Invalid range end");let f=c==="."?e.indexOf(".]",l+2):-1;if(c==="."&&f===-1)throw new Error("Unmatched [, [^, [:, [., or [=");let d=c==="."?l+2:l+(e[l]==="\\"?1:0);if(n&&(e.codePointAt(r+a-1)>127||e.codePointAt(d)>127))throw new Error("Invalid collation character");r=f===-1?l+(e[l]==="\\"?2:1):f+2,i=!0;continue}r+=a,i=!1}throw new Error("Unmatched [, [^, [:, [., or [=")}function Fn(e,t,n={}){let r=/^\[:([a-z]+):\]/u.exec(e.slice(t));if(!r)return null;let o=n.classes?n.classes.body(r[1]):rn[r[1]];if(o===void 0){if(n?.unknown!=="empty")throw new Error(`invalid character class \`[:${r[1]}:]\``);return{body:"",end:t+r[0].length}}return{body:o,end:t+r[0].length}}var Go={alpha:"1t:p,6:p,1b:0,a:0,4:0,5:m,1:u,1:cp,4:b,e:4,7:0,1:0,2e:0,16:4,1:1,2:3,1:0,6:0,1:2,1:0,1:j,1:2a,1:3u,8:4l,1:11,2:0,6:14,13:d,1:0,1:1,1:1,1:0,8:q,4:3,t:a,5:1j,1:g,4:2t,1:7,4:7,4:f,2:0,g:1b,d:2s,e:16,9:1,4:0,5:n,2:i,j:o,7:a,5:n,1:5,h:15,a:b,3:6,6:23,1:f,1:2,4:e,2:9,1:i,1:7,2:1,2:l,1:6,1:0,3:3,3:7,2:1,2:1,1:0,8:0,4:1,1:4,2:b,a:0,4:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,4:4,4:1,2:1,4:0,7:3,1:0,7:f,b:2,1:8,1:2,1:l,1:6,1:1,1:4,3:8,1:2,1:1,3:0,f:3,2:9,9:3,4:2,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,9:1,4:1,1:4,2:9,1:0,g:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:2,3:0,6:0,e:9,g:c,1:2,1:m,1:f,3:7,1:2,1:2,8:1,1:2,2:0,2:3,2:9,g:3,1:7,1:2,1:m,1:9,1:4,3:7,1:2,1:2,8:1,6:1,1:3,2:9,1:2,c:c,1:2,1:14,2:7,1:2,1:2,1:0,5:3,7:4,2:9,a:5,1:2,1:h,3:n,1:8,1:0,2:6,8:5,1:0,1:7,6:9,2:1,d:1l,5:6,6:0,2:9,13:1,1:0,1:4,1:n,1:0,1:i,1:2,2:4,1:0,6:0,2:9,2:3,w:0,v:9,m:7,1:z,4:i,4:f,1:z,1v:1i,1:0,2:e,6:25,2:11,1:0,5:0,2:16,1:98,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,11:f,g:2d,2:5,3:h7,2:g,1:p,5:22,3:a,7:j,b:k,c:j,c:c,1:2,1:1,c:1f,2:i,e:0,4:0,3:9,12:9,6:2g,7:16,5:1x,a:u,1:b,4:8,d:13,2:4,b:17,4:p,6:9,12:r,4:1q,2:j,b:9,6:9,d:0,n:1,b:2,1d:1f,1:e,1:7,3:9,12:15,2:1l,1:a,e:1i,9:9,3:1c,2:8,7:16,2:2,15:3,1:5,1:1,3:0,5:5b,13:d,b:7p,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:6,1:0,3:2,1:6,3:3,2:5,4:c,5:2,1:6,38:0,d:0,g:c,2t:0,4:0,2:9,1:0,3:4,6:0,1:0,1:0,1:3,1:a,2:3,5:4,4:0,h:14,ml:1f,1ee:6c,6:3,3:1,c:11,1:0,5:0,2:1j,7:0,g:m,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:v,1b:0,d1:2,p:8,7:4,2:4,4:2d,6:2,1:2h,1:3,5:16,1:2l,h:v,1c:f,e8:533,1s:h3g,1v:19,2:7g,3:r,k:1a,5:7,3:34,13:8,2:2u,2:1r,5:1,1:0,1:4,o:j,1:w,o:1f,c:1v,1:0,a:9,o:5,3:0,1:19,5:y,d:s,3:1e,1:b,f:a,6:u,1:1i,9:d,2:9,6:m,3:1w,1:0,1:0,o:2,2:f,2:3,b:5,2:5,2:5,9:6,1:6,1:16,1:d,6:3e,5:9,6:8mb,c:m,4:1c,6is:a5,2:2x,12:6,c:4,5:b,1:c,1:4,1:0,1:1,1:1,1:2z,x:a2,i:1r,2:1h,14:b,38:4,1:3q,j:9,7:p,6:p,b:2g,3:5,2:5,2:5,2:2,z:b,1:p,1:i,1:1,1:e,2:d,y:3e,1x:1g,7f:s,3:1c,1b:v,d:t,5:16,5:t,2:z,4:7,1:4,16:4d,2:9,6:z,4:z,4:13,8:1f,c:a,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,a:m,9:u,1t:i,1:1,a:l,a:p,1y:1j,6:1,1s:3,1:1,5:7,1:2,1:s,16:s,3:s,z:7,1:r,r:1h,a:l,a:i,d:h,32:20,1j:1e,d:1e,d:13,8:9,92:15,1:1,3:1,26:s,a:0,8:l,16:h,1a:k,r:m,9:1x,w:9,1:4,a:1k,9:0,d:o,7:9,6:1e,3:9,4:3,8:y,3:0,9:1r,1:3,9:c,1:0,z:h,1:x,2:0,6:3,1q:6,1:0,1:3,1:e,1:9,7:1k,7:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,3:0,6:0,5:6,4c:1t,1:2,1:3,5:9,5:2,u:1t,2:1,1:0,8:9,4m:1h,2:6,p:5,y:1q,1:0,3:0,b:9,12:1h,2:0,7:9,1i:q,2:d,5:9,6:6,55:1k,2v:21,l:7,2:0,2:7,1:1,1:t,1:1,2:1,2:3,d:9,1y:7,2:19,2:5,1:0,1:1,r:1e,2:9,h:1z,5:0,i:20,7b:8,1:18,1:6,1:0,f:9,o:t,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:2,1:0,2:1,8:9,6:5,1:1,1:10,1:1,1:3,1:0,7:9,8m:m,9:g,1:14,3:2,f:9,2e:0,27:pl,2u:32,h:5f,218:2o,f:tr,h:5,33t:g6,6nt:fs,7:u,1:9,6:26,1:9,6:t,i:1b,g:3,c:9,9:k,5:i,j4:1r,3k:22,4:1k,7:g,1s:1,1:0,c:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,4:0,4m9:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:o,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:7,2:1d,1ds:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,a:6,2:9,4:0,8x:t,i:17,4:9,d2:r,4:9,km:6,1:3,1:1,1:e,1:5g,1n:1v,3:0,3:0,4:9,x2:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,hg:p,6:p,6:p,21y:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f",digit:"1c:9",alnum:"1c:9,7:p,6:p,1b:0,a:0,4:0,5:m,1:u,1:cp,4:b,e:4,7:0,1:0,2e:0,16:4,1:1,2:3,1:0,6:0,1:2,1:0,1:j,1:2a,1:3u,8:4l,1:11,2:0,6:14,13:d,1:0,1:1,1:1,1:0,8:q,4:3,t:a,5:1j,1:g,4:2t,1:7,4:7,4:f,2:0,g:1b,d:2s,e:16,9:1,4:0,5:n,2:i,j:o,7:a,5:n,1:5,h:15,a:b,3:6,6:23,1:f,1:2,4:e,2:9,1:i,1:7,2:1,2:l,1:6,1:0,3:3,3:7,2:1,2:1,1:0,8:0,4:1,1:4,2:b,a:0,4:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,4:4,4:1,2:1,4:0,7:3,1:0,7:f,b:2,1:8,1:2,1:l,1:6,1:1,1:4,3:8,1:2,1:1,3:0,f:3,2:9,9:3,4:2,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,9:1,4:1,1:4,2:9,1:0,g:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:2,3:0,6:0,e:9,g:c,1:2,1:m,1:f,3:7,1:2,1:2,8:1,1:2,2:0,2:3,2:9,g:3,1:7,1:2,1:m,1:9,1:4,3:7,1:2,1:2,8:1,6:1,1:3,2:9,1:2,c:c,1:2,1:14,2:7,1:2,1:2,1:0,5:3,7:4,2:9,a:5,1:2,1:h,3:n,1:8,1:0,2:6,8:5,1:0,1:7,6:9,2:1,d:1l,5:6,6:0,2:9,13:1,1:0,1:4,1:n,1:0,1:i,1:2,2:4,1:0,6:0,2:9,2:3,w:0,v:9,m:7,1:z,4:i,4:f,1:z,1v:1i,1:0,2:e,6:25,2:11,1:0,5:0,2:16,1:98,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,11:f,g:2d,2:5,3:h7,2:g,1:p,5:22,3:a,7:j,b:k,c:j,c:c,1:2,1:1,c:1f,2:i,e:0,4:0,3:9,12:9,6:2g,7:16,5:1x,a:u,1:b,4:8,d:13,2:4,b:17,4:p,6:9,12:r,4:1q,2:j,b:9,6:9,d:0,n:1,b:2,1d:1f,1:e,1:7,3:9,12:15,2:1l,1:a,e:1i,9:9,3:1c,2:8,7:16,2:2,15:3,1:5,1:1,3:0,5:5b,13:d,b:7p,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:6,1:0,3:2,1:6,3:3,2:5,4:c,5:2,1:6,38:0,d:0,g:c,2t:0,4:0,2:9,1:0,3:4,6:0,1:0,1:0,1:3,1:a,2:3,5:4,4:0,h:14,ml:1f,1ee:6c,6:3,3:1,c:11,1:0,5:0,2:1j,7:0,g:m,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:v,1b:0,d1:2,p:8,7:4,2:4,4:2d,6:2,1:2h,1:3,5:16,1:2l,h:v,1c:f,e8:533,1s:h3g,1v:19,2:7g,3:r,k:1a,5:7,3:34,13:8,2:2u,2:1r,5:1,1:0,1:4,o:j,1:w,o:1f,c:1v,1:0,a:9,o:5,3:0,1:19,5:y,d:s,3:1e,1:b,f:a,6:u,1:1i,9:d,2:9,6:m,3:1w,1:0,1:0,o:2,2:f,2:3,b:5,2:5,2:5,9:6,1:6,1:16,1:d,6:3e,5:9,6:8mb,c:m,4:1c,6is:a5,2:2x,12:6,c:4,5:b,1:c,1:4,1:0,1:1,1:1,1:2z,x:a2,i:1r,2:1h,14:b,38:4,1:3q,j:9,7:p,6:p,b:2g,3:5,2:5,2:5,2:2,z:b,1:p,1:i,1:1,1:e,2:d,y:3e,1x:1g,7f:s,3:1c,1b:v,d:t,5:16,5:t,2:z,4:7,1:4,16:4d,2:9,6:z,4:z,4:13,8:1f,c:a,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,a:m,9:u,1t:i,1:1,a:l,a:p,1y:1j,6:1,1s:3,1:1,5:7,1:2,1:s,16:s,3:s,z:7,1:r,r:1h,a:l,a:i,d:h,32:20,1j:1e,d:1e,d:13,8:9,92:15,1:1,3:1,26:s,a:0,8:l,16:h,1a:k,r:m,9:1x,w:9,1:4,a:1k,9:0,d:o,7:9,6:1e,3:9,4:3,8:y,3:0,9:1r,1:3,9:c,1:0,z:h,1:x,2:0,6:3,1q:6,1:0,1:3,1:e,1:9,7:1k,7:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,3:0,6:0,5:6,4c:1t,1:2,1:3,5:9,5:2,u:1t,2:1,1:0,8:9,4m:1h,2:6,p:5,y:1q,1:0,3:0,b:9,12:1h,2:0,7:9,1i:q,2:d,5:9,6:6,55:1k,2v:21,l:7,2:0,2:7,1:1,1:t,1:1,2:1,2:3,d:9,1y:7,2:19,2:5,1:0,1:1,r:1e,2:9,h:1z,5:0,i:20,7b:8,1:18,1:6,1:0,f:9,o:t,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:2,1:0,2:1,8:9,6:5,1:1,1:10,1:1,1:3,1:0,7:9,8m:m,9:g,1:14,3:2,f:9,2e:0,27:pl,2u:32,h:5f,218:2o,f:tr,h:5,33t:g6,6nt:fs,7:u,1:9,6:26,1:9,6:t,i:1b,g:3,c:9,9:k,5:i,j4:1r,3k:22,4:1k,7:g,1s:1,1:0,c:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,4:0,4m9:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:o,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:7,2:1d,1ds:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,a:6,2:9,4:0,8x:t,i:17,4:9,d2:r,4:9,km:6,1:3,1:1,1:e,1:5g,1n:1v,3:0,3:0,4:9,x2:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,hg:p,6:p,6:p,21y:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f",upper:"1t:p,2t:m,1:6,x:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,3:1,1:0,1:1,1:2,2:3,1:1,1:2,3:1,1:1,1:0,1:0,1:1,1:0,2:0,1:1,1:2,1:0,1:1,3:0,7:1,1:1,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:1,1:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,7:1,1:1,2:0,1:3,1:0,1:0,1:0,1:0,81:0,1:0,3:0,8:0,6:0,1:2,1:0,1:1,1:g,1:8,z:0,2:2,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,5:0,2:0,1:1,2:1e,1c:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:11,289:11,1:0,5:0,k2:2d,1p6:16,2:2,8w:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:7,8:5,a:7,8:7,8:5,b:0,1:0,1:0,1:0,8:7,o:7,8:7,8:7,8:4,b:4,b:3,c:4,b:4,79:0,4:0,3:2,2:2,2:0,3:4,6:0,1:0,1:0,1:3,2:3,a:1,5:0,q:f,j:0,mq:p,1f4:1b,1c:0,1:2,2:0,1:0,1:0,1:3,1:0,2:0,8:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,8:0,1:0,4:0,nyl:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,j:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,3r:0,1:0,1:0,1:0,1:0,1:0,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,a:0,1:0,1:1,1:0,1:0,1:0,1:0,4:0,1:0,2:0,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:4,1:4,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:3,1:0,6:0,5:0,1:0,s:0,h7v:p,xx:13,3s:z,4c:a,1:e,1:6,1:1,1d6:1e,2ct:v,gw0:v,k2o:p,q:p,q:p,q:0,1:1,2:0,2:1,2:3,1:7,q:p,q:1,1:3,2:7,1:6,r:1,1:3,1:4,1:0,3:6,r:p,q:p,q:p,q:p,q:p,q:p,u:o,x:o,x:o,x:o,x:o,x:0,3ed:x,1la:p,6:p,6:p",lower:"2p:p,1b:0,a:0,4:0,10:n,1:7,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:2,2:0,1:0,2:0,3:1,4:0,2:0,3:2,2:0,2:0,1:0,1:0,2:0,1:1,1:0,2:0,3:0,1:0,2:1,2:2,5:1,1:1,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:1,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:6,2:0,2:1,1:0,4:0,1:0,1:0,1:0,1:1w,1:z,7:1,u:4,2o:0,17:0,1:0,3:0,2:3,i:0,r:y,1:1,3:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:4,1:0,2:0,2:1,1f:1b,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1c:14,287:16,1:3,l4:5,1oi:8,3b:5b,1t:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:8,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:8,8:5,a:7,8:7,8:5,a:7,8:7,8:d,2:7,8:7,8:7,8:4,1:1,6:0,3:2,1:1,8:3,2:1,8:7,a:2,1:1,3d:0,d:0,g:c,31:0,3:1,3:0,r:0,4:0,4:0,2:1,8:3,4:0,x:f,4:0,nf:p,1fq:1b,1:0,3:1,1:0,1:0,1:0,4:0,1:1,1:7,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,7:0,1:0,4:0,c:11,1:0,5:0,nwz:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,j:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:2,3p:0,1:0,1:0,1:0,1:0,1:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:9,1:0,1:0,2:0,1:0,1:0,1:0,1:0,4:0,1:0,2:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,5:0,5:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,4:0,1:0,6:0,1:0,1:0,1:0,1:0,o:2,1:0,1:2,mt:16,1:d,6:27,fnk:6,c:4,tl:p,y5:13,3s:z,4b:a,1:e,1:6,1:1,cj:0,2:2,1:15,1:8,zp:1e,2bx:v,gw0:v,k2i:p,q:6,1:h,q:p,q:3,1:0,1:6,1:a,q:p,q:p,q:p,q:p,q:p,q:p,q:p,q:p,q:r,s:o,1:5,q:o,1:5,q:o,1:5,q:o,1:5,q:o,1:5,1:0,1f8:9,1:j,6:5,79:1p,1pw:x",space:"9:4,i:0,4f3:0,1vj:6,1:2,t:1,1h:0,334:0",blank:"9:0,m:0,4f3:0,1vj:6,1:2,2c:0,334:0",punct:"x:e,a:6,q:5,q:3,x:9,1:9,1:3,1:4,n:0,v:0,cq:3,c:d,5:6,1:0,1:2d,1:15,5:0,8:0,5:1,1:0,32:0,3v:7,5s:5,15:1,2:2,1:u,e:0,1:0,2:0,2:0,18:1,b:f,b:4,1k:0,h:3,2u:0,8:3,8:3,g:1,1:d,1:0,1c:a,4g:8,2:3,3:2,o:1,j:0,2:e,q:2,2:0,15:0,7:1,6:7,16:9,c:2,7:5,24:0,g:0,3:3,f:1,a:0,23:0,g:0,10:9,1:1,1p:0,g:0,14:0,1x:0,g:0,y:1,b:2,1o:0,g:0,7:0,q:0,1:5,2d:0,y:a,1t:0,g:0,15:8,4:0,1j:0,g:0,31:1,g:0,1:0,8:6,h:9,28:0,15:0,22:0,7:5,1:1,a:1,2m:0,d:4,1:0,1e:u,a:l,1w:3,1i:e,1:c,2k:0,1:1,f:5,26:1,2j:0,gx:v,j:9,2u:0,h8:1,18:1,26:2,12:1,u:2,3h:1,j:d,1:3,1:0,i:9,6:f,89:2,4:0,3:1,44:0,3:x,u:1,1s:0,k:7,2:0,w:6,1:5,2:e,2:a,2w:0,f:0,l:10,17:1,1m:0,b:1,8:3,1j:0,3:4,1q:1,1s:7,8:o,4:0,6:0,2:2,5i:12,e:a,cd:0,1:2,b:2,d:2,d:2,d:1,8:0,3:s,2:1g,1:4,1:a,3:a,1:e,h:w,f:w,f:1,1:3,1:1,a:0,1:2,5:5,1:0,1:0,1:0,4:0,b:1,4:4,5:3,1:g,15:2,4:ie,p:a,l:2d,1g:1ah,2:v,1:2w,6d:5,4:2,7:6,34:0,e:0,3k:1a,1:19,y:p,1:2g,c:5x,q:f,1:3,3:o,9:6,5:1,5:2,2h:3,3:0,2i:0,44:f,w:z,b:0,g:u,1:db,534:1r,h3k:1i,1j:1,7h:2,2n:4,8:2,35:7,8:m,9:1,2v:1,3f:0,x:4,3:9,1m:3,24:0,9:1,g:h,6:2,1:0,1a:4,z:0,b:0,2b:0,c:d,g:1,3g:3,n:2,1x:0,1:0,s:1,g:1,4:0,2s:0,e:1,3j:2,aaa:4xr,fd:0,3s:g,aj:h,3j:0,18:t,6:1e,1:i,1:3,43:0,1:e,a:6,q:5,q:a,3e:6,1:6,a:4,76:2,4:18,3:8,1h:p,1:c,3:0,1b:19,6a:r,10:3,3f:0,1c:0,bi:0,kn:8,n:8,13:8,23:4,m:5,3:0,v:0,3g:1,2:f,2:19,1k:2,4:9,7:8,10:2,t:2,14:0,s:1,4:b,1u:6,o:7,o:7,p:3,c:6,96:5,9s:u,1a:0,27:2,t:9,v:j,14:7,1n:6,3e:7,4:j,a:0,e:0,1l:8,b:0,2t:1,b:3,1b:2,22:0,4:8,d:0,1:2,1:j,1s:1,1:5,2z:0,1r:1,28:1,g:0,o:6,3:4,5p:0,3:0,4:4,a:1,1:1,2r:1,2:0,6w:o,2v:0,1:2,s:c,21:1,1:0,35:0,e:5,6x:2,4u:8,22:1,4:3,49:0,1:0,28:1,a:8,28:4,1:4,2l:9,8l:0,1:4,k:i,3:1,5s:0,1:1,29:0,9r:1,20:e,34:1d,d:0,vk:4,29o:1,u5:g,6:e,aoo:1,3k:5,1m:f,4:1,l:6,m6:q,93:0,1:0,f5j:1,1:4,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,nc:0,p:0,v:0,p:0,v:0,p:0,v:0,p:0,v:0,p:0,1o:i3,f:4,1:e,1a8:6,o:0,9q:0,1p:3,f:0,do:3,rb:f,31:2,1:2,j:1,lt:1v,24:1o,c2:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:1b,q:5,q:5,q:z,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,gvna:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd",xdigit:"1c:9,7:5,q:5",cntrl:"0:v,2n:w,688:1",print:"w:2m,x:k7,2:5,4:6,1:0,1:j,1:b0,1:11,2:1d,2:2,1:1i,8:q,4:5,b:7h,1:1n,2:2s,e:1m,2:1c,2:e,1:r,2:0,1:a,5:u,1:1,6:6j,1:7,2:1,2:l,1:6,1:0,3:3,2:8,2:1,2:3,8:0,4:1,1:4,2:o,2:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,2:0,1:4,4:1,2:2,3:0,7:3,1:0,7:g,a:2,1:8,1:2,1:l,1:6,1:1,1:4,2:9,1:2,1:2,2:0,f:3,2:b,7:6,1:2,1:7,2:1,2:l,1:6,1:1,1:4,2:8,2:1,2:2,7:2,4:1,1:4,2:h,a:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:3,2:0,6:0,e:k,5:c,1:2,1:m,1:f,2:8,1:2,1:3,7:1,1:2,2:0,2:3,2:9,7:l,1:2,1:m,1:9,1:4,2:8,1:2,1:3,7:1,6:1,1:3,2:9,1:2,c:c,1:2,1:1e,1:2,1:5,4:f,2:p,1:2,1:h,3:n,1:8,1:0,2:6,3:0,4:5,1:0,1:7,6:9,2:2,c:1l,4:s,11:1,1:0,1:4,1:n,1:0,1:m,2:4,1:0,1:6,1:9,2:3,w:1z,1:z,4:12,1:z,1:e,1:c,11:5h,1:0,5:0,2:ag,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,2:v,3:p,6:2d,2:5,2:ik,3:2g,7:l,9:n,9:j,c:c,1:2,1:1,c:2l,2:9,6:9,6:p,6:2g,7:16,5:1x,a:u,1:b,4:b,4:0,3:15,2:4,b:17,4:p,6:a,3:1p,2:1s,1:s,2:a,6:9,6:d,2:u,1d:24,3:1a,1:37,8:1n,3:e,3:1n,7:16,2:a,8:16,5:et,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:e,1:d,2:5,1:i,2:2,1:8,1:13,2:1m,1:b,2:q,1:c,3:w,f:w,f:3v,4:ie,p:a,l:1eb,2:v,1:9o,5:18,1:0,5:0,2:1j,7:1,e:n,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:3h,y:p,1:2g,c:5x,q:27,1:2d,2:2u,5:16,1:2l,1:2b,b:1b,1:mlo,3:1i,9:9n,k:53,8:5m,5:1,1:0,1:4,o:1m,3:9,6:1j,8:1x,8:b,6:37,b:t,3:25,1:a,4:w,1:1i,9:d,2:9,2:2u,o:r,a:5,2:5,2:5,9:6,1:6,1:1n,4:3h,2:9,6:8mb,c:m,4:1c,1l0:57x,2:2x,12:6,c:4,5:p,1:4,1:0,1:1,1:1,1:3g,g:cc,2:1h,7:0,w:15,6:1e,1:i,1:3,4:4,1:3q,2:0,1:59,3:5,2:5,2:5,2:2,3:6,1:6,a:4,2:b,1:p,1:i,1:1,1:e,2:d,y:3e,5:2,4:18,3:2f,1:c,3:0,1b:19,3m:s,3:1c,f:r,4:z,9:t,5:16,5:t,1:10,4:d,16:4d,2:9,6:z,4:z,4:13,8:1f,b:b,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,1:1z,8:8,1c:i,1:1,5:w,3:q,5:0,1s:1j,4:j,2:1d,1:1,5:7,1:2,1:s,2:2,4:9,7:8,7:1r,w:12,4:b,9:1h,3:s,2:q,5:p,7:3,c:6,28:20,1j:1e,d:1e,7:19,8:9,86:u,1:15,1:2,2:1,23:16,8:15,m:p,12:r,k:m,9:25,4:z,9:1v,a:0,2:o,7:9,6:1g,1:h,8:12,9:2n,1:j,b:h,1:1a,1q:6,1:0,1:3,1:e,1:a,6:1m,5:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,1:9,2:1,2:2,2:0,6:0,5:6,2:6,3:4,3v:2j,1:4,u:1z,8:9,4m:1h,2:11,y:1w,b:9,6:c,j:1l,6:9,1i:q,2:e,4:m,55:1n,2s:2a,c:7,2:0,2:7,1:1,1:t,1:1,2:b,9:9,1y:7,2:19,2:a,r:1z,8:2a,d:20,7:9,6u:8,1:18,1:d,a:s,3:v,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:8,8:9,6:5,1:1,1:10,1:1,1:5,7:9,8m:o,7:g,1:14,3:r,2e:0,f:1d,d:pm,2u:32,1:4,b:5f,218:2q,d:ut,33e:g6,6nt:fs,7:u,1:9,4:28,1:9,6:t,2:5,a:1x,a:9,1:6,1:k,5:i,j4:2i,2t:22,4:1k,7:g,1s:4,b:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,2:7,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,3r:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:83,2:jh,f:4,1:e,uo:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,3:d,2:9,4:1,8w:u,h:1l,5:0,cw:15,km:6,1:3,1:1,1:e,1:5g,2:f,15:23,4:9,4:1,lt:1v,24:1o,5e:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,1g:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:4t,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,11:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f,f975:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd",graph:"x:2l,x:k7,2:5,4:6,1:0,1:j,1:b0,1:11,2:1d,2:2,1:1i,8:q,4:5,b:7h,1:1n,2:2s,e:1m,2:1c,2:e,1:r,2:0,1:a,5:u,1:1,6:6j,1:7,2:1,2:l,1:6,1:0,3:3,2:8,2:1,2:3,8:0,4:1,1:4,2:o,2:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,2:0,1:4,4:1,2:2,3:0,7:3,1:0,7:g,a:2,1:8,1:2,1:l,1:6,1:1,1:4,2:9,1:2,1:2,2:0,f:3,2:b,7:6,1:2,1:7,2:1,2:l,1:6,1:1,1:4,2:8,2:1,2:2,7:2,4:1,1:4,2:h,a:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:3,2:0,6:0,e:k,5:c,1:2,1:m,1:f,2:8,1:2,1:3,7:1,1:2,2:0,2:3,2:9,7:l,1:2,1:m,1:9,1:4,2:8,1:2,1:3,7:1,6:1,1:3,2:9,1:2,c:c,1:2,1:1e,1:2,1:5,4:f,2:p,1:2,1:h,3:n,1:8,1:0,2:6,3:0,4:5,1:0,1:7,6:9,2:2,c:1l,4:s,11:1,1:0,1:4,1:n,1:0,1:m,2:4,1:0,1:6,1:9,2:3,w:1z,1:z,4:12,1:z,1:e,1:c,11:5h,1:0,5:0,2:ag,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,2:v,3:p,6:2d,2:5,2:hr,1:r,3:2g,7:l,9:n,9:j,c:c,1:2,1:1,c:2l,2:9,6:9,6:p,6:2g,7:16,5:1x,a:u,1:b,4:b,4:0,3:15,2:4,b:17,4:p,6:a,3:1p,2:1s,1:s,2:a,6:9,6:d,2:u,1d:24,3:1a,1:37,8:1n,3:e,3:1n,7:16,2:a,8:16,5:et,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:e,1:d,2:5,1:i,2:2,1:8,8:0,3:s,2:1g,1:4,1:b,2:q,1:c,3:w,f:w,f:3v,4:ie,p:a,l:1eb,2:v,1:9o,5:18,1:0,5:0,2:1j,7:1,e:n,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:3h,y:p,1:2g,c:5x,q:f,1:1q,1:2d,2:2u,5:16,1:2l,1:2b,b:1b,1:mlo,3:1i,9:9n,k:53,8:5m,5:1,1:0,1:4,o:1m,3:9,6:1j,8:1x,8:b,6:37,b:t,3:25,1:a,4:w,1:1i,9:d,2:9,2:2u,o:r,a:5,2:5,2:5,9:6,1:6,1:1n,4:3h,2:9,6:8mb,c:m,4:1c,1l0:57x,2:2x,12:6,c:4,5:p,1:4,1:0,1:1,1:1,1:3g,g:cc,2:1h,7:0,w:15,6:1e,1:i,1:3,4:4,1:3q,2:0,1:59,3:5,2:5,2:5,2:2,3:6,1:6,a:4,2:b,1:p,1:i,1:1,1:e,2:d,y:3e,5:2,4:18,3:2f,1:c,3:0,1b:19,3m:s,3:1c,f:r,4:z,9:t,5:16,5:t,1:10,4:d,16:4d,2:9,6:z,4:z,4:13,8:1f,b:b,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,1:1z,8:8,1c:i,1:1,5:w,3:q,5:0,1s:1j,4:j,2:1d,1:1,5:7,1:2,1:s,2:2,4:9,7:8,7:1r,w:12,4:b,9:1h,3:s,2:q,5:p,7:3,c:6,28:20,1j:1e,d:1e,7:19,8:9,86:u,1:15,1:2,2:1,23:16,8:15,m:p,12:r,k:m,9:25,4:z,9:1v,a:0,2:o,7:9,6:1g,1:h,8:12,9:2n,1:j,b:h,1:1a,1q:6,1:0,1:3,1:e,1:a,6:1m,5:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,1:9,2:1,2:2,2:0,6:0,5:6,2:6,3:4,3v:2j,1:4,u:1z,8:9,4m:1h,2:11,y:1w,b:9,6:c,j:1l,6:9,1i:q,2:e,4:m,55:1n,2s:2a,c:7,2:0,2:7,1:1,1:t,1:1,2:b,9:9,1y:7,2:19,2:a,r:1z,8:2a,d:20,7:9,6u:8,1:18,1:d,a:s,3:v,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:8,8:9,6:5,1:1,1:10,1:1,1:5,7:9,8m:o,7:g,1:14,3:r,2e:0,f:1d,d:pm,2u:32,1:4,b:5f,218:2q,d:ut,33e:g6,6nt:fs,7:u,1:9,4:28,1:9,6:t,2:5,a:1x,a:9,1:6,1:k,5:i,j4:2i,2t:22,4:1k,7:g,1s:4,b:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,2:7,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,3r:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:83,2:jh,f:4,1:e,uo:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,3:d,2:9,4:1,8w:u,h:1l,5:0,cw:15,km:6,1:3,1:1,1:e,1:5g,2:f,15:23,4:9,4:1,lt:1v,24:1o,5e:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,1g:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:4t,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,11:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f,f975:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd"},af="2p:q:-w:1,51:1:kn:1,68:n:-w:1,6w:7:-w:1,73:1:3d:1,75:o:-1:2,8h:1:-6g:1,8j:3:-1:2,8q:8:-1:2,97:n:-1:2,ai:3:-1:2,an:1:-8c:1,ao:1:5f:1,ar:2:-1:2,aw:1:-1:1,b0:1:-1:1,b6:1:-1:1,b9:1:2p:1,bd:1:-1:1,be:1:4j:1,bi:1:3m:1,bl:3:-1:2,bs:1:-1:1,bx:1:-1:1,c0:1:-1:1,c4:2:-1:2,c9:1:-1:1,cd:1:-1:1,cf:1:1k:1,cl:1:-1:1,cm:1:-2:1,co:1:-1:1,cp:1:-2:1,cr:1:-1:1,cs:1:-2:1,cu:8:-1:2,d9:1:-27:1,db:9:-1:2,du:1:-1:1,dv:1:-2:1,dx:1:-1:1,e1:k:-1:2,f7:9:-1:2,fw:1:-1:1,fz:2:8cf:1,g2:1:-1:1,g7:5:-1:2,gg:1:8bj:1,gh:1:8bg:1,gi:1:8bi:1,gj:1:-5u:1,gk:1:-5q:1,gm:2:-5p:1,gp:1:-5m:1,gr:1:-5n:1,gs:1:wnj:1,gw:1:-5p:1,gx:1:wnf:1,gz:1:-5r:1,h1:1:wmg:1,h2:1:wn8:1,h4:1:-5t:1,h5:1:-5v:1,h6:1:wn8:1,h7:1:8af:1,h8:1:wn5:1,hb:1:-5v:1,hd:1:8al:1,he:1:-5x:1,hh:1:-5y:1,hp:1:89z:1,hs:1:-62:1,hu:1:wn7:1,hv:1:-62:1,hz:1:wmi:1,i0:1:-62:1,i1:1:-1x:1,i2:2:-61:1,i4:1:-1z:1,ia:1:-63:1,il:1:wlx:1,im:1:wlu:1,n9:1:2c:1,oh:2:-1:2,on:1:-1:1,or:3:3m:1,q4:1:-12:1,q5:3:-11:1,q9:h:-w:1,qq:1:-v:1,qr:9:-w:1,r0:1:-1s:1,r1:2:-1r:1,r4:1:-1q:1,r5:1:-1l:1,r9:1:-1b:1,ra:1:-1i:1,rb:1:-8:1,rd:c:-1:2,s0:1:-2e:1,s1:1:-28:1,s2:1:7:1,s3:1:-38:1,s5:1:-2o:1,s8:1:-1:1,sb:1:-1:1,ts:w:-w:1,uo:g:-28:1,v5:h:-1:2,wb:r:-1:2,xu:7:-1:2,y7:1:-f:1,y9:1c:-1:2,129:12:-1c:1,3bk:17:2bk:1,3ct:3:2bk:1,3y0:6:-8:1,5mo:1:-4tq:1,5mp:1:-4tp:1,5mq:1:-4tg:1,5mr:2:-4te:1,5mt:1:-4tf:1,5mu:1:-4t8:1,5mv:1:-4rp:1,5mw:1:r7m:1,5tl:1:r9g:1,5tp:1:2xy:1,5u6:1:raw:1,5xd:23:-1:2,61n:1:-1n:1,61t:1c:-1:2,64g:8:8:1,64w:6:8:1,65c:8:8:1,65s:8:8:1,668:6:8:1,66p:4:8:2,674:8:8:1,67k:2:22:1,67m:4:2e:1,67q:2:2s:1,67s:2:3k:1,67u:2:34:1,67w:2:3i:1,680:8:8:1,68g:8:8:1,68w:8:8:1,69c:2:8:1,69f:1:9:1,69q:1:-5k5:1,69v:1:9:1,6a8:2:8:1,6ao:2:8:1,6at:1:7:1,6b7:1:9:1,6ku:1:-s:1,6ls:g:-g:1,6mc:1:-1:1,79s:q:-q:1,8q8:1c:-1c:1,8rl:1:-1:1,8rp:1:-8bv:1,8rq:1:-8bs:1,8rs:3:-1:2,8s3:1:-1:1,8s6:1:-1:1,8sh:1e:-1:2,8vg:2:-1:2,8vn:1:-1:1,8w0:12:-5ls:1,8x3:1:-5ls:1,8x9:1:-5ls:1,wu9:n:-1:2,ww1:e:-1:2,x0j:7:-1:2,x0z:v:-1:2,x2y:2:-1:2,x33:5:-1:2,x3g:1:-1:1,x3l:2:-1:2,x3o:1:1c:1,x3r:a:-1:2,x4l:8:-1:2,x54:2:-1:2,x5d:1:-1:1,x5j:2:-1:2,x6e:1:-1:1,xub:1:-ps:1,xv4:28:-tzk:1,1ef5:q:-w:1,1fe0:14:-14:1,1fiw:10:-14:1,1fo7:b:-13:1,1foj:f:-13:1,1foz:7:-13:1,1fp7:2:-13:1,1h34:1f:-1s:1,1jgg:w:-w:1,20dc:w:-w:1,2oma:y:-y:1",uf="1t:q:w:1,5c:n:w:1,60:7:w:1,74:o:1:2,8g:1:-5j:1,8i:3:1:2,8p:8:1:2,96:n:1:2,ag:1:-3d:1,ah:3:1:2,ap:1:5u:1,aq:2:1:2,au:1:5q:1,av:1:1:1,ax:2:5p:1,az:1:1:1,b2:1:27:1,b3:1:5m:1,b4:1:5n:1,b5:1:1:1,b7:1:5p:1,b8:1:5r:1,ba:1:5v:1,bb:1:5t:1,bc:1:1:1,bg:1:5v:1,bh:1:5x:1,bj:1:5y:1,bk:3:1:2,bq:1:62:1,br:1:1:1,bt:1:62:1,bw:1:1:1,by:1:62:1,bz:1:1:1,c1:2:61:1,c3:2:1:2,c7:1:63:1,c8:1:1:1,cc:1:1:1,ck:1:2:1,cl:1:1:1,cn:1:2:1,co:1:1:1,cq:1:2:1,cr:9:1:2,da:9:1:2,dt:1:2:1,du:2:1:2,dy:1:-2p:1,dz:1:-1k:1,e0:k:1:2,f4:1:-3m:1,f6:9:1:2,fu:1:8bv:1,fv:1:1:1,fx:1:-4j:1,fy:1:8bs:1,g1:1:1:1,g3:1:-5f:1,g4:1:1x:1,g5:1:1z:1,g6:5:1:2,og:2:1:2,om:1:1:1,ov:1:38:1,p2:1:12:1,p4:3:11:1,p8:1:1s:1,pa:2:1r:1,pd:h:w:1,pv:9:w:1,r3:1:8:1,rc:c:1:2,s4:1:-1o:1,s7:1:1:1,s9:1:-7:1,sa:1:1:1,sd:3:-3m:1,sg:g:28:1,sw:w:w:1,v4:h:1:2,wa:r:1:2,xs:1:f:1,xt:7:1:2,y8:1c:1:2,10x:12:1c:1,3a8:12:5ls:1,3bb:1:5ls:1,3bh:1:5ls:1,3vk:28:tzk:1,3xs:6:8:1,5n4:17:-2bk:1,5od:3:-2bk:1,5xc:23:1:2,61q:1:-5vj:1,61s:1c:1:2,64o:8:-8:1,654:6:-8:1,65k:8:-8:1,660:8:-8:1,66g:6:-8:1,66x:4:-8:2,67c:8:-8:1,688:8:-8:1,68o:8:-8:1,694:8:-8:1,69k:2:-8:1,69m:2:-22:1,69o:1:-9:1,6a0:4:-2e:1,6a4:1:-9:1,6ag:2:-8:1,6ai:2:-2s:1,6aw:2:-8:1,6ay:2:-34:1,6b0:1:-7:1,6bc:2:-3k:1,6be:2:-3i:1,6bg:1:-9:1,6jq:1:-5st:1,6ju:1:-6gv:1,6jv:1:-6di:1,6k2:1:s:1,6lc:g:g:1,6mb:1:1:1,792:q:q:1,8ow:1c:1c:1,8rk:1:1:1,8rm:1:-8af:1,8rn:1:-2xy:1,8ro:1:-89z:1,8rr:3:1:2,8rx:1:-8bg:1,8ry:1:-8al:1,8rz:1:-8bj:1,8s0:1:-8bi:1,8s2:1:1:1,8s5:1:1:1,8se:2:-8cf:1,8sg:1e:1:2,8vf:2:1:2,8vm:1:1:1,wu8:n:1:2,ww0:e:1:2,x0i:7:1:2,x0y:v:1:2,x2x:2:1:2,x31:1:-r9g:1,x32:5:1:2,x3f:1:1:1,x3h:1:-wmg:1,x3k:2:1:2,x3q:a:1:2,x4a:1:-wn8:1,x4b:1:-wnj:1,x4c:1:-wnf:1,x4d:1:-wn5:1,x4e:1:-wn8:1,x4g:1:-wlu:1,x4h:1:-wmi:1,x4i:1:-wlx:1,x4j:1:ps:1,x4k:8:1:2,x50:1:-1c:1,x51:1:-wn7:1,x52:1:-raw:1,x53:2:1:2,x5c:1:1:1,x5i:2:1:2,x6d:1:1:1,1ee9:q:w:1,1fcw:14:14:1,1fhs:10:14:1,1fn4:b:13:1,1fng:f:13:1,1fnw:7:13:1,1fo4:2:13:1,1h1c:1f:1s:1,1jfk:w:w:1,20cg:w:w:1,2olc:y:y:1";var ie="C.UTF-8",Xo="only the C.UTF-8 locale is supported",ta=e=>typeof e=="string"&&/^C\.UTF-?8$/iu.test(e),zx=new Set(["LANG","LC_ALL","LC_CTYPE"]);function ff(e){if(e.locale===void 0||ta(e.locale))return ie;throw new TypeError(`createTerminal: ${Xo} (got ${JSON.stringify(e.locale)})`)}function df(e,t){if(!(zx.has(e)?ta(t)||e!=="LANG"&&t==="":ta(t)||t==="C"||t==="POSIX"||t===""))throw new x("feature",e,`${e}: ${Xo}`)}var Zo=e=>e==="C"||e==="POSIX",ee=e=>Zo(e.locale);function lf(e){let t=[],n=-1;for(let r of e.split(",")){let[o,i]=r.split(":").map(a=>parseInt(a,36)),s=n+1+o;t.push([s,s+i]),n=s+i}return t}function Bx(e){let t=e.findIndex(([n])=>n>95);return[...e.slice(0,t),[95,95],...e.slice(t)]}function ea(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122?String.fromCodePoint(e):e<128?"\\x"+e.toString(16).padStart(2,"0"):String.fromCodePoint(e)}var jx=e=>e.map(([t,n])=>t===n?ea(t):`${ea(t)}-${ea(n)}`).join("");function Wx(e,t){let n=e.length-1,r=0;for(;r<=n;){let o=r+n>>1;if(t<e[o][0])n=o-1;else if(t>e[o][1])r=o+1;else return!0}return!1}var Yo=e=>e==="upper"||e==="lower"?"alpha":e,qx=[181,305,383,453,456,459,498,837,962,976,977,981,982,1008,1009,1010,1013,7835,8126],on=/[\u1C80-\u1C88]/u;function cf(e){let t=new Map;for(let n of e.split(",")){let[r,o,i,s]=n.split(":").map(a=>parseInt(a,36));for(let a=0;a<o;a++)t.set(r+a*s,r+a*s+i)}return t}var pf=(e,t)=>({up:e,low:t,folds:new Map});function Hx(){let e=new Map,t=new Map;for(let n=97;n<=122;n++)e.set(n,n-32),t.set(n-32,n);return pf(e,t)}function Gx(e){let t=[];for(let[n,r]of e.sort((o,i)=>o[0]-i[0])){let o=t.at(-1);o&&n<=o[1]+1?o[1]=Math.max(o[1],r):t.push([n,r])}return t}function na(e){let t=`[${e}]`;return{"<":`(?<!${t})(?=${t})`,">":`(?<=${t})(?!${t})`,boundary:`(?:(?<!${t})(?=${t})|(?<=${t})(?!${t}))`,inside:`(?:(?<=${t})(?=${t})|(?<!${t})(?!${t}))`}}function hf(e,t,n,r,o){let i=new Map,s=new Map,a=null,u=f=>(s.has(f)||s.set(f,n(f)),s.get(f)),l=()=>a??=o(),c={name:e,multibyte:t,ranges:u,body(f){return i.has(f)||i.set(f,r(f,u(f))),i.get(f)},has(f,d){let p=u(f);return p!==void 0&&Wx(p,d)},assertions(){if(c.js)return c.js;let f=c.body("space");return c.js={__proto__:null,...na(c.body("word")),word:`[${c.body("word")}]`,nonWord:`[^${c.body("word")}]`,space:`[${f}]`,nonSpace:`[^${f}]`},c.js},up:f=>l().up.get(f)??f,low:f=>l().low.get(f)??f,fold(f){let{folds:d}=l(),p=d.get(f);if(p===void 0){let h=c.up(f),m=c.low(h),g=new Set([f,h]);m!==h&&c.up(m)===h&&g.add(m);for(let w of qx)c.up(w)===h&&g.add(w);p=[...g].sort((w,y)=>w-y),d.set(f,p)}return p},foldRange(f,d){let{up:p}=l(),h=p.get(f)??f,m=p.get(d)??d;if(h>m)return null;let g=[],w=[];for(let[S,_]of p){let W=S>=h&&S<=m;W!==(_>=h&&_<=m)&&(W?g:w).push(S)}let y=[],$=h;for(let S of g.sort((_,W)=>_-W))S>$&&y.push([$,S-1]),$=S+1;return $<=m&&y.push([$,m]),Gx([...y,...w.map(S=>[S,S])])}};return c}var Xx=hf("C",!1,e=>$r[e],e=>rn[e],Hx),Zx=hf(ie,!0,e=>e==="word"?Bx(lf(Go.alnum)):Object.hasOwn(Go,e)?lf(Go[e]):void 0,(e,t)=>t===void 0?void 0:jx(t),()=>pf(cf(af),cf(uf)));function se(e){if(e===ie)return Zx;if(Zo(e))return Xx;throw new x("feature","locale",`matching in the ${e} locale is not supported`)}var ge=(1n<<63n)-1n,wt=-ge-1n,yt=(1n<<64n)-1n;function D(e,t,n,r){let o=E(e.cwd,n,e.fs,r);return P(e,t,n,o.error),o}function P(e,t,n,r){if(r!=="No such file or directory"||typeof n!="string")return;let o=n.startsWith("/"),i=o?"/":e.cwd,s=n.replace(/^\/+/u,""),a=new Set;for(let c of new Set(["/",e.mount??"/",e.home??"/"])){if(c===i)continue;let f=E(c,s,e.fs);f.error||a.add(f.path)}if(!a.size)return;let u=o?"":` from cwd ${JSON.stringify(e.cwd)}`,l=`${o?"absolute":"relative"} path ${JSON.stringify(n)} was not found${u}`;e.notes?.add(`${t}: ${l}. ${Yx(e,a)}`)}function Yx(e,t){let n=[...t].sort(q),r=n.map(a=>JSON.stringify(a));if(n.length===1)return`A ${e.fs.isDir(n[0])?"dir":"file"} exists at ${r[0]}.`;let i=n.every(a=>!e.fs.isDir(a)&&e.fs.isFile(a))&&n.some(a=>!e.fs.sameFileContents(n[0],a)),s=`${r.slice(0,-1).join(", ")} and ${r.at(-1)}`;return`${n.length===2?"Both":"All"} of ${s} exist${i?", and they differ in contents":""}.`}function Rn(){let e=new Set;return{add:t=>e.add(t),collect(t,n){for(let r of n)r.startsWith(".")&&e.add(j(t,r))},emit(t,n,r,o=""){Ft(t,{command:n,action:"omitted",noun:["hidden entry","hidden entries"],explanation:r,context:o,paths:e})}}}var mf=/^(?<command>[^:]+): (?<operand>.+): (?<reason>no such file or directory|not a directory|is a directory)$/iu;function gf(e,t){for(let n of t.split(`
|
|
4
|
-
`))
|
|
5
|
-
`){if(e
|
|
6
|
-
`:10;for(let r=e.indexOf(n);r>=0;r=e.indexOf(n,r+1))t++;return t}var
|
|
7
|
-
`)=>e.length===0
|
|
8
|
-
`){let n=[];for(let r=0;r<e.length;){let
|
|
9
|
-
`}function
|
|
10
|
-
`){r++;continue}n+=
|
|
11
|
-
`,n);return e.i=
|
|
12
|
-
`)return
|
|
13
|
-
`){e.i+=2;return}t!==void 0&&(!e.quote||'$`"\\'.includes(t))?(
|
|
14
|
-
|
|
15
|
-
`?n+=2:(t--,n++);return n}var
|
|
16
|
-
`;)
|
|
17
|
-
`;)
|
|
18
|
-
`){e.i+=2;continue}if(t
|
|
19
|
-
`,e.i);e.i=
|
|
20
|
-
`)return e.i++,{kind
|
|
21
|
-
`){e.i+=2;return}r!==void 0&&(!n||'$`"\\'.includes(r))?(
|
|
22
|
-
`;)e.line=e.line.slice(0,e.i+1)+e.line.slice(e.i+3),e.removed+=2}function
|
|
23
|
-
`;)t+=2;return t}function
|
|
24
|
-
`,r
|
|
25
|
-
`,r);let
|
|
3
|
+
`,exitCode:t}),We=(e,t=1)=>x(`usage: ${e}`,t),Ge=Symbol(`unsupported`);function S(e){if(e==null)return null;try{return e[Ge]??null}catch{return null}}function C(e,t,n,r,i=1){return w(x(r,i),e,t,n,r)}function w(e,t,n,r,i){return Object.defineProperty(e,Ge,{value:{kind:t,command:n,detail:r,message:i},enumerable:!1,configurable:!0}),e}function Ke(e,t,n,r){let i=S(e);return i?C(i.kind,t,i.detail,n,r):x(n,r)}var T=class extends Error{constructor(e,t,n){super(n),this.name=`UnsupportedError`,w(this,e,null,t,n)}};function qe(){let e=new Set,t=[];return{entries:t,add(n,r=n.command){let i=JSON.stringify([n.kind,r,n.detail]);e.has(i)||(e.add(i),t.push(Object.freeze(n)))}}}function E(e){try{return f(e)}catch(e){throw e instanceof TypeError?new T(`feature`,`unpaired surrogate`,`unpaired UTF-16 surrogates cannot be encoded as UTF-8`):e}}var Je=e=>e<128?1:e>=194&&e<=223?2:e>=224&&e<=239?3:e>=240&&e<=244?4:0;function*Ye(e){for(let t=0;t<e.length;){let n=nt[e[t]],r=n===1?e[t]:n===0?-1:Ze(e,t,n);yield r,t+=r<0?1:n}}var Xe=[0,0,128,2048,65536];function Ze(e,t,n){if(t+n>e.length)return-1;let r=e[t]&127>>n;for(let i=1;i<n;i++){if((e[t+i]&192)!=128)return-1;r=r<<6|e[t+i]&63}return r<Xe[n]||r>1114111||r>=55296&&r<=57343?-1:r}var Qe=e=>h(e);function $e(e){let t;try{t=m(e)}catch{}return t}function et(e){let t=$e(e);if(t!==void 0)return t;let n=new Uint16Array(e.length),r=0;for(let t=0;t<e.length;){let i=nt[e[t]],a=i===1?e[t]:i===0?-1:Ze(e,t,i);if(a<0){n[r++]=56320+e[t++];continue}a>65535?(n[r++]=55232+(a>>10),n[r++]=56320+(a&1023)):n[r++]=a,t+=i}let i=``;for(let e=0;e<r;e+=tt)i+=String.fromCharCode.apply(null,n.subarray(e,Math.min(r,e+tt)));return i}var tt=4096,nt=Uint8Array.from({length:256},(e,t)=>Je(t)),rt=`\\uDC80-\\uDCFF`,it=RegExp(`[${rt}]`,`u`),at=e=>e>=56448&&e<=56575;function ot(e){if(!it.test(e))return E(e);let t=new Uint8Array(e.length*3),n=0;for(let r=0;r<e.length;r++){let i=e.codePointAt(r);if(i<128)t[n++]=i;else if(at(i))t[n++]=i-56320;else if(i<2048)n=st(t,n,192|i>>6,i,1);else if(i<65536){if(i>=55296&&i<=57343)return E(e);n=st(t,n,224|i>>12,i,2)}else n=st(t,n,240|i>>18,i,3),r++}return t.slice(0,n)}function st(e,t,n,r,i){e[t++]=n;for(let n=i-1;n>=0;n--)e[t++]=128|r>>6*n&63;return t}function ct(e){if(e.length===1)return e[0];let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function D(e){try{return m(e)}catch{throw new T(`feature`,`partial UTF-8 byte sequence`,`byte output that is not valid UTF-8 cannot be represented by this string-based terminal`)}}function lt(e){let t=e.startsWith(`/`),n=e.split(`/`).filter(Boolean),r=[];for(let e of n)if(e!==`.`){if(e===`..`){r.length>0&&r.at(-1)!==`..`?r.pop():t||r.push(`..`);continue}r.push(e)}return t?`/`+r.join(`/`):r.length===0?`.`:r.join(`/`)}function O(e,t){return t.startsWith(`/`)?lt(t):lt(e+`/`+t)}var ut=40,dt=(e,t)=>e.isLink?.(t)===!0;function k(e,t,n,{follow:r=!0}={}){let i=ft(e,t,n,{follow:r});return i.error?{path:null,error:i.error}:t.endsWith(`/`)&&!n.isDir(i.path)?{path:null,error:`Not a directory`}:{path:i.path,error:null}}function ft(e,t,n,{follow:r=!0,lenient:i=!1}={}){if(t===``||t.includes(`\0`))return{path:`/`,error:`No such file or directory`,rest:[]};let a=(t.startsWith(`/`)?t:e+`/`+t).split(`/`).filter(Boolean),o=r||t.endsWith(`/`),s=ut,c=`/`;for(;a.length>0;){let e=a.shift();if(!n.isDir(c)){if(!i){let t=n.isFile(c)||dt(n,c)?`Not a directory`:`No such file or directory`;return{path:c,error:t,rest:[e,...a]}}e===`..`?c=j(c):e!==`.`&&(c=ht(c,e));continue}if(e===`..`){c=j(c);continue}if(e!==`.`&&(c=ht(c,e)),!dt(n,c)||a.length===0&&!o)continue;if(s--===0)return{path:c,error:`Too many levels of symbolic links`,rest:[...a]};let t=n.readLink(c);c=t.startsWith(`/`)?`/`:j(c),a.unshift(...t.split(`/`).filter(Boolean),...t.endsWith(`/`)?[`.`]:[])}let l=!n.isDir(c)&&!n.isFile(c)&&!dt(n,c);return{path:c,error:l?`No such file or directory`:null,rest:[]}}var A=(e,t,n,r=!0)=>n===``||n.includes(`\0`)?O(t,n):ft(t,n,e,{follow:r,lenient:!0}).path;function pt(e,t,n,r=k(e,t,n)){if(r.path!==null)return null;if(t===``||t.includes(`\0`)||t.endsWith(`/`)||r.error!==`No such file or directory`)return r.error;let i=ft(e,t,n);return i.rest.length>0?i.error:n.isDir(j(i.path))?null:`Not a directory`}function j(e){let t=lt(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return n<0?`.`:n===0?`/`:t.slice(0,n)}function mt(e){let t=lt(e);if(t===`/`)return`/`;let n=t.lastIndexOf(`/`);return t.slice(n+1)}function M(e,t){for(let n=0;n<Math.min(e.length,t.length);n++)if(e[n]!==t[n])return e.codePointAt(n)-t.codePointAt(n);return e.length-t.length}function ht(e,t){return e===`/`?`/`+t:e+`/`+t}function gt(e,t){return e===`/`?t.slice(1):t.slice(e.length+1)}function _t(e,t,n=`reading them as text`){let r=$e(e);if(r===void 0)throw new T(`feature`,`binary file`,`${t} holds bytes that spell no text, and ${n} is not supported`);return r}var vt=(e,t)=>e!==void 0&&t!==void 0&&e.length===t.length&&e.every((e,n)=>e===t[n]);function*yt(e,t,n=1/0,r=()=>!0){if(e.isFile(t)){yield{path:t,kind:`file`,depth:0};return}if(!e.isDir(t)){dt(e,t)&&(yield{path:t,kind:`link`,depth:0});return}let i=[{path:t,kind:`dir`,depth:0}];for(;i.length;){let t=i.pop();if(yield t,t.kind!==`dir`||t.depth>=n||!r(t.path))continue;let{dirs:a,files:o,links:s=[]}=e.listDir(t.path),c=a.length-1,l=o.length-1,u=s.length-1;for(;c>=0||l>=0||u>=0;){let e=c>=0?`dir`:null,n=c>=0?a[c]:null;l>=0&&(n===null||M(o[l],n)>=0)&&(e=`file`,n=o[l]),u>=0&&(n===null||M(s[u],n)>=0)&&(e=`link`,n=s[u]),e===`dir`?c--:e===`file`?l--:u--,i.push({path:ht(t.path,n),kind:e,depth:t.depth+1})}}}function*bt(e,t){for(let n of yt(e,t))n.kind===`file`&&(yield n.path)}function xt(e,t=`/`){let n=new De;try{n.mkdir(t,{recursive:!0})}catch(e){throw wt(e,`mount ${JSON.stringify(t)}`)}let r={declared:new Map,made:new Set([`/`,t])};for(let[i,a]of jt(e)){let e=String(i);if(e.includes(`\0`))throw TypeError(`createTerminal: source paths must not contain NUL characters`);let o=Pt(a,e),s=lt(`/`+e);St(n,r,t===`/`?s:s===`/`?t:t+s,o,e)}return kt(n)}function St(e,t,n,r,i){let a=t.declared.get(n);if(a!==void 0){if(a===r.type&&Tt(e,n,r))return;throw TypeError(`createTerminal: source ${JSON.stringify(i)} names the same path as an earlier source, which declared something else there`)}t.declared.set(n,r.type);let o=n.slice(0,n.lastIndexOf(`/`))||`/`;if(!t.made.has(o)){try{e.mkdir(o,{recursive:!0})}catch(e){throw e?.code===`ENOENT`?Ct(i):wt(e?.code===`EEXIST`?new y(`ENOTDIR`,o):e,`source ${JSON.stringify(i)}`)}if(e.realpath(o)!==o)throw Ct(i);t.made.add(o)}try{if(r.type===`file`)e.writeFile(n,r.data);else if(r.type===`symlink`)e.symlink(r.target,n);else{try{e.mkdir(n)}catch(t){if(t?.code!==`EEXIST`||e.lstat(n).type!==`directory`)throw t}t.made.add(n)}}catch(e){throw wt(e,`source ${JSON.stringify(i)}`)}}var Ct=e=>TypeError(`createTerminal: source ${JSON.stringify(e)} is declared through a symbolic link; declare it where the link leads`);function wt(e,t){return e instanceof y?TypeError(`createTerminal: ${t}: ${e.message}`,{cause:e}):e}function Tt(e,t,n){return n.type===`directory`?!0:n.type===`symlink`?e.readlink(t)===n.target:vt(e.readFile(t),typeof n.data==`string`?E(n.data):n.data)}var Et={directory:`dirs`,file:`files`,symlink:`links`},Dt=e=>e.slice(0,e.lastIndexOf(`/`))||`/`,Ot=()=>({dirs:[],files:[],links:[]});function kt(e){let t=null,n=null,r={children:new Map,types:new Map},i=()=>n??=At(e,o),a=new WeakMap,o=e=>t!==null&&(e===t||e.startsWith(t+`/`)),s=t=>{let n=r.children.get(t);if(n!==void 0)return n;n={listing:Ot(),types:new Map};for(let r of e.readdir(t)){let{type:i}=e.lstat(ht(t,r));n.types.set(r,i),n.listing[Et[i]].push(r)}return r.children.set(t,n),n},c=e=>{if(typeof e!=`string`||!e.startsWith(`/`))return;if(e===`/`)return`directory`;let t=[],n=e;for(;o(Dt(n))&&!r.types.has(n);)t.push(n),n=Dt(n);let a=o(Dt(n))?r.types.get(n):i().types.get(n)??``;for(let e=t.length-1;e>=0;e--){let n=t[e];a=a===`directory`?s(Dt(n)).types.get(n.slice(n.lastIndexOf(`/`)+1))??``:``,r.types.set(n,a)}return a||void 0},l=t=>c(t)===void 0?void 0:e.lstat(t),u=t=>c(t)===`file`?e.readFile(t):void 0,d={vfs:e,writableAt:e=>{t=e,n=null,r={children:new Map,types:new Map}},reshaped:()=>{r={children:new Map,types:new Map}},isFile:e=>c(e)===`file`,isDir:e=>c(e)===`directory`,isLink:e=>c(e)===`symlink`,readLink:t=>c(t)===`symlink`?e.readlink(t):void 0,readFile:e=>{let t=u(e),n=t&&a.get(t);return t&&n===void 0&&a.set(t,n=_t(t,JSON.stringify(e))),n},readBytes:e=>u(e),fileSize:e=>{let t=l(e);return t===void 0||t.type===`directory`?void 0:t.size},sameFileContents:(e,t)=>vt(u(e),u(t)),exactBytes:u,isBytes:e=>c(e)===`file`,isEmptyFile:e=>{let t=l(e);return t?.type===`file`&&t.size===0},listDir:e=>{if(c(e)!==`directory`)throw Error(`not a directory: ${e}`);return o(e)?s(e).listing:i().children.get(e)},walkFiles:e=>bt(d,e)};return d}function At(e,t){let n=new Map([[`/`,Ot()]]),r=new Map([[`/`,`directory`]]),i=[`/`];for(let{path:a,type:o,depth:s}of e.walk(`/`)){if(s===0)continue;let e=i[s-1];o===`directory`&&(i[s]=a),!t(e)&&(o===`directory`&&n.set(a,Ot()),n.get(e)[Et[o]].push(a.slice(e.length+(e===`/`?0:1))),r.set(a,o))}return{children:n,types:r}}function jt(e){try{return Map.prototype.entries.call(e)}catch{return Object.entries(e??{})}}var Mt={file:[`data`],directory:[],symlink:[`target`]},Nt=new Set([`mode`,`mtime`]);function Pt(e,t){let n=JSON.stringify(t);if(typeof e==`string`)return{type:`file`,data:Ft(e,t)};if(ArrayBuffer.isView(e))return{type:`file`,data:Lt(e,t)};if(e instanceof ArrayBuffer)throw TypeError(`createTerminal: source ${n} is an ArrayBuffer; declare a file's bytes as a Uint8Array over it`);if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`createTerminal: source ${n} is ${e===null?`null`:Array.isArray(e)?`an array`:e===void 0?`undefined`:`a ${typeof e}`}; a source is text, a Uint8Array, or an object declaring its type`);if(e.format!==void 0)return{type:`file`,data:It(e,t)};let{type:r}=e;if(r===`link`)throw TypeError(`createTerminal: source ${n} declares type "link"; a symbolic link is declared as { type: 'symlink', target }`);if(r===`hardlink`)throw TypeError(`createTerminal: source ${n} declares a hard link, which is not supported: each file here has the one name`);if(r===void 0)throw TypeError(`createTerminal: source ${n} declares no type; an object declares { type: 'file' | 'directory' | 'symlink' } or { format: 'base64', data }`);if(!Object.hasOwn(Mt,r))throw TypeError(`createTerminal: source ${n} declares type ${JSON.stringify(r)}; the types are 'file', 'directory' and 'symlink'`);for(let t of Object.keys(e))if(!(t===`type`||Mt[r].includes(t)))throw TypeError(Nt.has(t)?`createTerminal: source ${n} declares \`${t}\`, which this terminal does not keep yet`:`createTerminal: source ${n} declares \`${t}\`, which a ${r} does not have`);if(r===`directory`)return{type:r};if(r===`symlink`){let{target:t}=e;if(typeof t!=`string`||t===``||t.includes(`\0`))throw TypeError(`createTerminal: link ${n} must declare a non-empty target without NUL characters`);return{type:r,target:t}}let{data:i=``}=e;if(typeof i==`string`)return{type:r,data:Ft(i,t)};if(ArrayBuffer.isView(i))return{type:r,data:Lt(i,t)};throw TypeError(`createTerminal: source ${n} declares \`data\` that is neither text nor a Uint8Array`)}function Ft(e,t){if(!e.isWellFormed())throw TypeError(`createTerminal: source ${JSON.stringify(t)} holds a lone surrogate, which no UTF-8 spells; declare the file's bytes as a Uint8Array`);return e}function It(e,n){let r=JSON.stringify(n);if(e.format!==`base64`)throw TypeError(`createTerminal: source ${r} declares format ${JSON.stringify(e.format)}; the only format is { format: 'base64', data }`);let i=Object.keys(e).find(e=>e!==`format`&&e!==`data`);if(i!==void 0)throw TypeError(`createTerminal: source ${r} declares \`${i}\`, which base64 contents do not have`);if(typeof e.data!=`string`)throw TypeError(`createTerminal: source ${r} must declare its base64 as a string in \`data\``);try{return t(e.data)}catch(e){throw e instanceof SyntaxError?TypeError(`createTerminal: source ${r} declares base64 that does not decode`,{cause:e}):e}}function Lt(e,t){if(e.BYTES_PER_ELEMENT!==1)throw TypeError(`createTerminal: source ${JSON.stringify(t)} is a ${e[Symbol.toStringTag]??`view`}; declare a file's bytes as a Uint8Array`);return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var Rt={__proto__:null,alpha:`A-Za-z`,digit:`0-9`,alnum:`0-9A-Za-z`,upper:`A-Z`,lower:`a-z`,space:` \\t\\n\\v\\f\\r`,blank:` \\t`,punct:"!-\\/:-@\\[-`{-~",xdigit:`0-9A-Fa-f`,cntrl:`\\x00-\\x1F\\x7F`,print:`\\x20-\\x7E`,graph:`\\x21-\\x7E`,word:`0-9A-Za-z_`},zt={__proto__:null};for(let[e,t]of Object.entries(Rt)){let n=RegExp(`[${t}]`,`u`),r=[];for(let e=0;e<128;e++){if(!n.test(String.fromCodePoint(e)))continue;let t=r.at(-1);t&&t[1]===e-1?t[1]=e:r.push([e,e])}zt[e]=r}var Bt=32767;function Vt(e,t){if(e>Bt||t!==void 0&&t>Bt)throw Error(`Regular expression too big`)}function Ht(e,t,n=!1){let r=t+1;e[r]===`^`&&r++;let i=!0,a=!1;for(;r<e.length;){let t=e[r];if(t===`]`&&!i)return r;if(i=!1,t===`[`&&`:.=`.includes(e[r+1]??``)){let t=e[r+1],i=e.indexOf(t+`]`,r+2);if(i===-1)throw Error(`Unmatched [, [^, [:, [., or [=`);if(t===`:`&&!(e.slice(r+2,i)in Rt))throw Error(`Invalid character class name`);if(t!==`:`&&n&&/\P{ASCII}/u.test(e.slice(r+2,i)))throw Error(`Invalid collation character`);r=i+2,a=t!==`.`;continue}if(t===`-`&&a&&r+1<e.length&&e[r+1]!==`]`)throw Error(`Invalid range end`);let o=t===`\\`&&r+1<e.length?2:1;if(e[r+o]===`-`&&e[r+o+1]!==void 0&&e[r+o+1]!==`]`){let t=r+o+1,i=e[t]===`[`?e[t+1]:void 0;if(i===`:`||i===`=`)throw Error(`Invalid range end`);let s=i===`.`?e.indexOf(`.]`,t+2):-1;if(i===`.`&&s===-1)throw Error(`Unmatched [, [^, [:, [., or [=`);let c=i===`.`?t+2:t+ +(e[t]===`\\`);if(n&&(e.codePointAt(r+o-1)>127||e.codePointAt(c)>127))throw Error(`Invalid collation character`);r=s===-1?t+(e[t]===`\\`?2:1):s+2,a=!0;continue}r+=o,a=!1}throw Error(`Unmatched [, [^, [:, [., or [=`)}function Ut(e,t,n={}){let r=/^\[:([a-z]+):\]/u.exec(e.slice(t));if(!r)return null;let i=n.classes?n.classes.body(r[1]):Rt[r[1]];if(i===void 0){if(n?.unknown!==`empty`)throw Error(`invalid character class \`[:${r[1]}:]\``);return{body:``,end:t+r[0].length}}return{body:i,end:t+r[0].length}}var Wt={alpha:`1t:p,6:p,1b:0,a:0,4:0,5:m,1:u,1:cp,4:b,e:4,7:0,1:0,2e:0,16:4,1:1,2:3,1:0,6:0,1:2,1:0,1:j,1:2a,1:3u,8:4l,1:11,2:0,6:14,13:d,1:0,1:1,1:1,1:0,8:q,4:3,t:a,5:1j,1:g,4:2t,1:7,4:7,4:f,2:0,g:1b,d:2s,e:16,9:1,4:0,5:n,2:i,j:o,7:a,5:n,1:5,h:15,a:b,3:6,6:23,1:f,1:2,4:e,2:9,1:i,1:7,2:1,2:l,1:6,1:0,3:3,3:7,2:1,2:1,1:0,8:0,4:1,1:4,2:b,a:0,4:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,4:4,4:1,2:1,4:0,7:3,1:0,7:f,b:2,1:8,1:2,1:l,1:6,1:1,1:4,3:8,1:2,1:1,3:0,f:3,2:9,9:3,4:2,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,9:1,4:1,1:4,2:9,1:0,g:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:2,3:0,6:0,e:9,g:c,1:2,1:m,1:f,3:7,1:2,1:2,8:1,1:2,2:0,2:3,2:9,g:3,1:7,1:2,1:m,1:9,1:4,3:7,1:2,1:2,8:1,6:1,1:3,2:9,1:2,c:c,1:2,1:14,2:7,1:2,1:2,1:0,5:3,7:4,2:9,a:5,1:2,1:h,3:n,1:8,1:0,2:6,8:5,1:0,1:7,6:9,2:1,d:1l,5:6,6:0,2:9,13:1,1:0,1:4,1:n,1:0,1:i,1:2,2:4,1:0,6:0,2:9,2:3,w:0,v:9,m:7,1:z,4:i,4:f,1:z,1v:1i,1:0,2:e,6:25,2:11,1:0,5:0,2:16,1:98,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,11:f,g:2d,2:5,3:h7,2:g,1:p,5:22,3:a,7:j,b:k,c:j,c:c,1:2,1:1,c:1f,2:i,e:0,4:0,3:9,12:9,6:2g,7:16,5:1x,a:u,1:b,4:8,d:13,2:4,b:17,4:p,6:9,12:r,4:1q,2:j,b:9,6:9,d:0,n:1,b:2,1d:1f,1:e,1:7,3:9,12:15,2:1l,1:a,e:1i,9:9,3:1c,2:8,7:16,2:2,15:3,1:5,1:1,3:0,5:5b,13:d,b:7p,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:6,1:0,3:2,1:6,3:3,2:5,4:c,5:2,1:6,38:0,d:0,g:c,2t:0,4:0,2:9,1:0,3:4,6:0,1:0,1:0,1:3,1:a,2:3,5:4,4:0,h:14,ml:1f,1ee:6c,6:3,3:1,c:11,1:0,5:0,2:1j,7:0,g:m,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:v,1b:0,d1:2,p:8,7:4,2:4,4:2d,6:2,1:2h,1:3,5:16,1:2l,h:v,1c:f,e8:533,1s:h3g,1v:19,2:7g,3:r,k:1a,5:7,3:34,13:8,2:2u,2:1r,5:1,1:0,1:4,o:j,1:w,o:1f,c:1v,1:0,a:9,o:5,3:0,1:19,5:y,d:s,3:1e,1:b,f:a,6:u,1:1i,9:d,2:9,6:m,3:1w,1:0,1:0,o:2,2:f,2:3,b:5,2:5,2:5,9:6,1:6,1:16,1:d,6:3e,5:9,6:8mb,c:m,4:1c,6is:a5,2:2x,12:6,c:4,5:b,1:c,1:4,1:0,1:1,1:1,1:2z,x:a2,i:1r,2:1h,14:b,38:4,1:3q,j:9,7:p,6:p,b:2g,3:5,2:5,2:5,2:2,z:b,1:p,1:i,1:1,1:e,2:d,y:3e,1x:1g,7f:s,3:1c,1b:v,d:t,5:16,5:t,2:z,4:7,1:4,16:4d,2:9,6:z,4:z,4:13,8:1f,c:a,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,a:m,9:u,1t:i,1:1,a:l,a:p,1y:1j,6:1,1s:3,1:1,5:7,1:2,1:s,16:s,3:s,z:7,1:r,r:1h,a:l,a:i,d:h,32:20,1j:1e,d:1e,d:13,8:9,92:15,1:1,3:1,26:s,a:0,8:l,16:h,1a:k,r:m,9:1x,w:9,1:4,a:1k,9:0,d:o,7:9,6:1e,3:9,4:3,8:y,3:0,9:1r,1:3,9:c,1:0,z:h,1:x,2:0,6:3,1q:6,1:0,1:3,1:e,1:9,7:1k,7:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,3:0,6:0,5:6,4c:1t,1:2,1:3,5:9,5:2,u:1t,2:1,1:0,8:9,4m:1h,2:6,p:5,y:1q,1:0,3:0,b:9,12:1h,2:0,7:9,1i:q,2:d,5:9,6:6,55:1k,2v:21,l:7,2:0,2:7,1:1,1:t,1:1,2:1,2:3,d:9,1y:7,2:19,2:5,1:0,1:1,r:1e,2:9,h:1z,5:0,i:20,7b:8,1:18,1:6,1:0,f:9,o:t,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:2,1:0,2:1,8:9,6:5,1:1,1:10,1:1,1:3,1:0,7:9,8m:m,9:g,1:14,3:2,f:9,2e:0,27:pl,2u:32,h:5f,218:2o,f:tr,h:5,33t:g6,6nt:fs,7:u,1:9,6:26,1:9,6:t,i:1b,g:3,c:9,9:k,5:i,j4:1r,3k:22,4:1k,7:g,1s:1,1:0,c:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,4:0,4m9:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:o,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:7,2:1d,1ds:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,a:6,2:9,4:0,8x:t,i:17,4:9,d2:r,4:9,km:6,1:3,1:1,1:e,1:5g,1n:1v,3:0,3:0,4:9,x2:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,hg:p,6:p,6:p,21y:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f`,digit:`1c:9`,alnum:`1c:9,7:p,6:p,1b:0,a:0,4:0,5:m,1:u,1:cp,4:b,e:4,7:0,1:0,2e:0,16:4,1:1,2:3,1:0,6:0,1:2,1:0,1:j,1:2a,1:3u,8:4l,1:11,2:0,6:14,13:d,1:0,1:1,1:1,1:0,8:q,4:3,t:a,5:1j,1:g,4:2t,1:7,4:7,4:f,2:0,g:1b,d:2s,e:16,9:1,4:0,5:n,2:i,j:o,7:a,5:n,1:5,h:15,a:b,3:6,6:23,1:f,1:2,4:e,2:9,1:i,1:7,2:1,2:l,1:6,1:0,3:3,3:7,2:1,2:1,1:0,8:0,4:1,1:4,2:b,a:0,4:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,4:4,4:1,2:1,4:0,7:3,1:0,7:f,b:2,1:8,1:2,1:l,1:6,1:1,1:4,3:8,1:2,1:1,3:0,f:3,2:9,9:3,4:2,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,9:1,4:1,1:4,2:9,1:0,g:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:2,3:0,6:0,e:9,g:c,1:2,1:m,1:f,3:7,1:2,1:2,8:1,1:2,2:0,2:3,2:9,g:3,1:7,1:2,1:m,1:9,1:4,3:7,1:2,1:2,8:1,6:1,1:3,2:9,1:2,c:c,1:2,1:14,2:7,1:2,1:2,1:0,5:3,7:4,2:9,a:5,1:2,1:h,3:n,1:8,1:0,2:6,8:5,1:0,1:7,6:9,2:1,d:1l,5:6,6:0,2:9,13:1,1:0,1:4,1:n,1:0,1:i,1:2,2:4,1:0,6:0,2:9,2:3,w:0,v:9,m:7,1:z,4:i,4:f,1:z,1v:1i,1:0,2:e,6:25,2:11,1:0,5:0,2:16,1:98,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,11:f,g:2d,2:5,3:h7,2:g,1:p,5:22,3:a,7:j,b:k,c:j,c:c,1:2,1:1,c:1f,2:i,e:0,4:0,3:9,12:9,6:2g,7:16,5:1x,a:u,1:b,4:8,d:13,2:4,b:17,4:p,6:9,12:r,4:1q,2:j,b:9,6:9,d:0,n:1,b:2,1d:1f,1:e,1:7,3:9,12:15,2:1l,1:a,e:1i,9:9,3:1c,2:8,7:16,2:2,15:3,1:5,1:1,3:0,5:5b,13:d,b:7p,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:6,1:0,3:2,1:6,3:3,2:5,4:c,5:2,1:6,38:0,d:0,g:c,2t:0,4:0,2:9,1:0,3:4,6:0,1:0,1:0,1:3,1:a,2:3,5:4,4:0,h:14,ml:1f,1ee:6c,6:3,3:1,c:11,1:0,5:0,2:1j,7:0,g:m,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:v,1b:0,d1:2,p:8,7:4,2:4,4:2d,6:2,1:2h,1:3,5:16,1:2l,h:v,1c:f,e8:533,1s:h3g,1v:19,2:7g,3:r,k:1a,5:7,3:34,13:8,2:2u,2:1r,5:1,1:0,1:4,o:j,1:w,o:1f,c:1v,1:0,a:9,o:5,3:0,1:19,5:y,d:s,3:1e,1:b,f:a,6:u,1:1i,9:d,2:9,6:m,3:1w,1:0,1:0,o:2,2:f,2:3,b:5,2:5,2:5,9:6,1:6,1:16,1:d,6:3e,5:9,6:8mb,c:m,4:1c,6is:a5,2:2x,12:6,c:4,5:b,1:c,1:4,1:0,1:1,1:1,1:2z,x:a2,i:1r,2:1h,14:b,38:4,1:3q,j:9,7:p,6:p,b:2g,3:5,2:5,2:5,2:2,z:b,1:p,1:i,1:1,1:e,2:d,y:3e,1x:1g,7f:s,3:1c,1b:v,d:t,5:16,5:t,2:z,4:7,1:4,16:4d,2:9,6:z,4:z,4:13,8:1f,c:a,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,a:m,9:u,1t:i,1:1,a:l,a:p,1y:1j,6:1,1s:3,1:1,5:7,1:2,1:s,16:s,3:s,z:7,1:r,r:1h,a:l,a:i,d:h,32:20,1j:1e,d:1e,d:13,8:9,92:15,1:1,3:1,26:s,a:0,8:l,16:h,1a:k,r:m,9:1x,w:9,1:4,a:1k,9:0,d:o,7:9,6:1e,3:9,4:3,8:y,3:0,9:1r,1:3,9:c,1:0,z:h,1:x,2:0,6:3,1q:6,1:0,1:3,1:e,1:9,7:1k,7:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,3:7,2:1,2:1,3:0,6:0,5:6,4c:1t,1:2,1:3,5:9,5:2,u:1t,2:1,1:0,8:9,4m:1h,2:6,p:5,y:1q,1:0,3:0,b:9,12:1h,2:0,7:9,1i:q,2:d,5:9,6:6,55:1k,2v:21,l:7,2:0,2:7,1:1,1:t,1:1,2:1,2:3,d:9,1y:7,2:19,2:5,1:0,1:1,r:1e,2:9,h:1z,5:0,i:20,7b:8,1:18,1:6,1:0,f:9,o:t,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:2,1:0,2:1,8:9,6:5,1:1,1:10,1:1,1:3,1:0,7:9,8m:m,9:g,1:14,3:2,f:9,2e:0,27:pl,2u:32,h:5f,218:2o,f:tr,h:5,33t:g6,6nt:fs,7:u,1:9,6:26,1:9,6:t,i:1b,g:3,c:9,9:k,5:i,j4:1r,3k:22,4:1k,7:g,1s:1,1:0,c:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,4:0,4m9:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:o,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:u,1:o,1:7,2:1d,1ds:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,a:6,2:9,4:0,8x:t,i:17,4:9,d2:r,4:9,km:6,1:3,1:1,1:e,1:5g,1n:1v,3:0,3:0,4:9,x2:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,hg:p,6:p,6:p,21y:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f`,upper:`1t:p,2t:m,1:6,x:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,3:1,1:0,1:1,1:2,2:3,1:1,1:2,3:1,1:1,1:0,1:0,1:1,1:0,2:0,1:1,1:2,1:0,1:1,3:0,7:1,1:1,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:1,1:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,7:1,1:1,2:0,1:3,1:0,1:0,1:0,1:0,81:0,1:0,3:0,8:0,6:0,1:2,1:0,1:1,1:g,1:8,z:0,2:2,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,5:0,2:0,1:1,2:1e,1c:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:11,289:11,1:0,5:0,k2:2d,1p6:16,2:2,8w:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:7,8:5,a:7,8:7,8:5,b:0,1:0,1:0,1:0,8:7,o:7,8:7,8:7,8:4,b:4,b:3,c:4,b:4,79:0,4:0,3:2,2:2,2:0,3:4,6:0,1:0,1:0,1:3,2:3,a:1,5:0,q:f,j:0,mq:p,1f4:1b,1c:0,1:2,2:0,1:0,1:0,1:3,1:0,2:0,8:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,8:0,1:0,4:0,nyl:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,j:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,3r:0,1:0,1:0,1:0,1:0,1:0,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,a:0,1:0,1:1,1:0,1:0,1:0,1:0,4:0,1:0,2:0,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:4,1:4,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:3,1:0,6:0,5:0,1:0,s:0,h7v:p,xx:13,3s:z,4c:a,1:e,1:6,1:1,1d6:1e,2ct:v,gw0:v,k2o:p,q:p,q:p,q:0,1:1,2:0,2:1,2:3,1:7,q:p,q:1,1:3,2:7,1:6,r:1,1:3,1:4,1:0,3:6,r:p,q:p,q:p,q:p,q:p,q:p,u:o,x:o,x:o,x:o,x:o,x:0,3ed:x,1la:p,6:p,6:p`,lower:`2p:p,1b:0,a:0,4:0,10:n,1:7,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:2,2:0,1:0,2:0,3:1,4:0,2:0,3:2,2:0,2:0,1:0,1:0,2:0,1:1,1:0,2:0,3:0,1:0,2:1,2:2,5:1,1:1,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,1:1,1:0,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:6,2:0,2:1,1:0,4:0,1:0,1:0,1:0,1:1w,1:z,7:1,u:4,2o:0,17:0,1:0,3:0,2:3,i:0,r:y,1:1,3:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:4,1:0,2:0,2:1,1f:1b,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,9:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,2:0,1:0,1:0,1:0,1:0,1:0,1:1,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1c:14,287:16,1:3,l4:5,1oi:8,3b:5b,1t:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:8,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:8,8:5,a:7,8:7,8:5,a:7,8:7,8:d,2:7,8:7,8:7,8:4,1:1,6:0,3:2,1:1,8:3,2:1,8:7,a:2,1:1,3d:0,d:0,g:c,31:0,3:1,3:0,r:0,4:0,4:0,2:1,8:3,4:0,x:f,4:0,nf:p,1fq:1b,1:0,3:1,1:0,1:0,1:0,4:0,1:1,1:7,3:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:1,7:0,1:0,4:0,c:11,1:0,5:0,nwz:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,j:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:2,3p:0,1:0,1:0,1:0,1:0,1:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:9,1:0,1:0,2:0,1:0,1:0,1:0,1:0,4:0,1:0,2:0,1:2,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,5:0,5:0,1:0,1:0,1:0,1:0,1:0,1:0,1:0,4:0,1:0,6:0,1:0,1:0,1:0,1:0,o:2,1:0,1:2,mt:16,1:d,6:27,fnk:6,c:4,tl:p,y5:13,3s:z,4b:a,1:e,1:6,1:1,cj:0,2:2,1:15,1:8,zp:1e,2bx:v,gw0:v,k2i:p,q:6,1:h,q:p,q:3,1:0,1:6,1:a,q:p,q:p,q:p,q:p,q:p,q:p,q:p,q:p,q:r,s:o,1:5,q:o,1:5,q:o,1:5,q:o,1:5,q:o,1:5,1:0,1f8:9,1:j,6:5,79:1p,1pw:x`,space:`9:4,i:0,4f3:0,1vj:6,1:2,t:1,1h:0,334:0`,blank:`9:0,m:0,4f3:0,1vj:6,1:2,2c:0,334:0`,punct:`x:e,a:6,q:5,q:3,x:9,1:9,1:3,1:4,n:0,v:0,cq:3,c:d,5:6,1:0,1:2d,1:15,5:0,8:0,5:1,1:0,32:0,3v:7,5s:5,15:1,2:2,1:u,e:0,1:0,2:0,2:0,18:1,b:f,b:4,1k:0,h:3,2u:0,8:3,8:3,g:1,1:d,1:0,1c:a,4g:8,2:3,3:2,o:1,j:0,2:e,q:2,2:0,15:0,7:1,6:7,16:9,c:2,7:5,24:0,g:0,3:3,f:1,a:0,23:0,g:0,10:9,1:1,1p:0,g:0,14:0,1x:0,g:0,y:1,b:2,1o:0,g:0,7:0,q:0,1:5,2d:0,y:a,1t:0,g:0,15:8,4:0,1j:0,g:0,31:1,g:0,1:0,8:6,h:9,28:0,15:0,22:0,7:5,1:1,a:1,2m:0,d:4,1:0,1e:u,a:l,1w:3,1i:e,1:c,2k:0,1:1,f:5,26:1,2j:0,gx:v,j:9,2u:0,h8:1,18:1,26:2,12:1,u:2,3h:1,j:d,1:3,1:0,i:9,6:f,89:2,4:0,3:1,44:0,3:x,u:1,1s:0,k:7,2:0,w:6,1:5,2:e,2:a,2w:0,f:0,l:10,17:1,1m:0,b:1,8:3,1j:0,3:4,1q:1,1s:7,8:o,4:0,6:0,2:2,5i:12,e:a,cd:0,1:2,b:2,d:2,d:2,d:1,8:0,3:s,2:1g,1:4,1:a,3:a,1:e,h:w,f:w,f:1,1:3,1:1,a:0,1:2,5:5,1:0,1:0,1:0,4:0,b:1,4:4,5:3,1:g,15:2,4:ie,p:a,l:2d,1g:1ah,2:v,1:2w,6d:5,4:2,7:6,34:0,e:0,3k:1a,1:19,y:p,1:2g,c:5x,q:f,1:3,3:o,9:6,5:1,5:2,2h:3,3:0,2i:0,44:f,w:z,b:0,g:u,1:db,534:1r,h3k:1i,1j:1,7h:2,2n:4,8:2,35:7,8:m,9:1,2v:1,3f:0,x:4,3:9,1m:3,24:0,9:1,g:h,6:2,1:0,1a:4,z:0,b:0,2b:0,c:d,g:1,3g:3,n:2,1x:0,1:0,s:1,g:1,4:0,2s:0,e:1,3j:2,aaa:4xr,fd:0,3s:g,aj:h,3j:0,18:t,6:1e,1:i,1:3,43:0,1:e,a:6,q:5,q:a,3e:6,1:6,a:4,76:2,4:18,3:8,1h:p,1:c,3:0,1b:19,6a:r,10:3,3f:0,1c:0,bi:0,kn:8,n:8,13:8,23:4,m:5,3:0,v:0,3g:1,2:f,2:19,1k:2,4:9,7:8,10:2,t:2,14:0,s:1,4:b,1u:6,o:7,o:7,p:3,c:6,96:5,9s:u,1a:0,27:2,t:9,v:j,14:7,1n:6,3e:7,4:j,a:0,e:0,1l:8,b:0,2t:1,b:3,1b:2,22:0,4:8,d:0,1:2,1:j,1s:1,1:5,2z:0,1r:1,28:1,g:0,o:6,3:4,5p:0,3:0,4:4,a:1,1:1,2r:1,2:0,6w:o,2v:0,1:2,s:c,21:1,1:0,35:0,e:5,6x:2,4u:8,22:1,4:3,49:0,1:0,28:1,a:8,28:4,1:4,2l:9,8l:0,1:4,k:i,3:1,5s:0,1:1,29:0,9r:1,20:e,34:1d,d:0,vk:4,29o:1,u5:g,6:e,aoo:1,3k:5,1m:f,4:1,l:6,m6:q,93:0,1:0,f5j:1,1:4,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,nc:0,p:0,v:0,p:0,v:0,p:0,v:0,p:0,v:0,p:0,1o:i3,f:4,1:e,1a8:6,o:0,9q:0,1p:3,f:0,do:3,rb:f,31:2,1:2,j:1,lt:1v,24:1o,c2:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:1b,q:5,q:5,q:z,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,gvna:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd`,xdigit:`1c:9,7:5,q:5`,cntrl:`0:v,2n:w,688:1`,print:`w:2m,x:k7,2:5,4:6,1:0,1:j,1:b0,1:11,2:1d,2:2,1:1i,8:q,4:5,b:7h,1:1n,2:2s,e:1m,2:1c,2:e,1:r,2:0,1:a,5:u,1:1,6:6j,1:7,2:1,2:l,1:6,1:0,3:3,2:8,2:1,2:3,8:0,4:1,1:4,2:o,2:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,2:0,1:4,4:1,2:2,3:0,7:3,1:0,7:g,a:2,1:8,1:2,1:l,1:6,1:1,1:4,2:9,1:2,1:2,2:0,f:3,2:b,7:6,1:2,1:7,2:1,2:l,1:6,1:1,1:4,2:8,2:1,2:2,7:2,4:1,1:4,2:h,a:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:3,2:0,6:0,e:k,5:c,1:2,1:m,1:f,2:8,1:2,1:3,7:1,1:2,2:0,2:3,2:9,7:l,1:2,1:m,1:9,1:4,2:8,1:2,1:3,7:1,6:1,1:3,2:9,1:2,c:c,1:2,1:1e,1:2,1:5,4:f,2:p,1:2,1:h,3:n,1:8,1:0,2:6,3:0,4:5,1:0,1:7,6:9,2:2,c:1l,4:s,11:1,1:0,1:4,1:n,1:0,1:m,2:4,1:0,1:6,1:9,2:3,w:1z,1:z,4:12,1:z,1:e,1:c,11:5h,1:0,5:0,2:ag,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,2:v,3:p,6:2d,2:5,2:ik,3:2g,7:l,9:n,9:j,c:c,1:2,1:1,c:2l,2:9,6:9,6:p,6:2g,7:16,5:1x,a:u,1:b,4:b,4:0,3:15,2:4,b:17,4:p,6:a,3:1p,2:1s,1:s,2:a,6:9,6:d,2:u,1d:24,3:1a,1:37,8:1n,3:e,3:1n,7:16,2:a,8:16,5:et,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:e,1:d,2:5,1:i,2:2,1:8,1:13,2:1m,1:b,2:q,1:c,3:w,f:w,f:3v,4:ie,p:a,l:1eb,2:v,1:9o,5:18,1:0,5:0,2:1j,7:1,e:n,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:3h,y:p,1:2g,c:5x,q:27,1:2d,2:2u,5:16,1:2l,1:2b,b:1b,1:mlo,3:1i,9:9n,k:53,8:5m,5:1,1:0,1:4,o:1m,3:9,6:1j,8:1x,8:b,6:37,b:t,3:25,1:a,4:w,1:1i,9:d,2:9,2:2u,o:r,a:5,2:5,2:5,9:6,1:6,1:1n,4:3h,2:9,6:8mb,c:m,4:1c,1l0:57x,2:2x,12:6,c:4,5:p,1:4,1:0,1:1,1:1,1:3g,g:cc,2:1h,7:0,w:15,6:1e,1:i,1:3,4:4,1:3q,2:0,1:59,3:5,2:5,2:5,2:2,3:6,1:6,a:4,2:b,1:p,1:i,1:1,1:e,2:d,y:3e,5:2,4:18,3:2f,1:c,3:0,1b:19,3m:s,3:1c,f:r,4:z,9:t,5:16,5:t,1:10,4:d,16:4d,2:9,6:z,4:z,4:13,8:1f,b:b,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,1:1z,8:8,1c:i,1:1,5:w,3:q,5:0,1s:1j,4:j,2:1d,1:1,5:7,1:2,1:s,2:2,4:9,7:8,7:1r,w:12,4:b,9:1h,3:s,2:q,5:p,7:3,c:6,28:20,1j:1e,d:1e,7:19,8:9,86:u,1:15,1:2,2:1,23:16,8:15,m:p,12:r,k:m,9:25,4:z,9:1v,a:0,2:o,7:9,6:1g,1:h,8:12,9:2n,1:j,b:h,1:1a,1q:6,1:0,1:3,1:e,1:a,6:1m,5:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,1:9,2:1,2:2,2:0,6:0,5:6,2:6,3:4,3v:2j,1:4,u:1z,8:9,4m:1h,2:11,y:1w,b:9,6:c,j:1l,6:9,1i:q,2:e,4:m,55:1n,2s:2a,c:7,2:0,2:7,1:1,1:t,1:1,2:b,9:9,1y:7,2:19,2:a,r:1z,8:2a,d:20,7:9,6u:8,1:18,1:d,a:s,3:v,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:8,8:9,6:5,1:1,1:10,1:1,1:5,7:9,8m:o,7:g,1:14,3:r,2e:0,f:1d,d:pm,2u:32,1:4,b:5f,218:2q,d:ut,33e:g6,6nt:fs,7:u,1:9,4:28,1:9,6:t,2:5,a:1x,a:9,1:6,1:k,5:i,j4:2i,2t:22,4:1k,7:g,1s:4,b:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,2:7,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,3r:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:83,2:jh,f:4,1:e,uo:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,3:d,2:9,4:1,8w:u,h:1l,5:0,cw:15,km:6,1:3,1:1,1:e,1:5g,2:f,15:23,4:9,4:1,lt:1v,24:1o,5e:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,1g:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:4t,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,11:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f,f975:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd`,graph:`x:2l,x:k7,2:5,4:6,1:0,1:j,1:b0,1:11,2:1d,2:2,1:1i,8:q,4:5,b:7h,1:1n,2:2s,e:1m,2:1c,2:e,1:r,2:0,1:a,5:u,1:1,6:6j,1:7,2:1,2:l,1:6,1:0,3:3,2:8,2:1,2:3,8:0,4:1,1:4,2:o,2:2,1:5,4:1,2:l,1:6,1:1,1:1,1:1,2:0,1:4,4:1,2:2,3:0,7:3,1:0,7:g,a:2,1:8,1:2,1:l,1:6,1:1,1:4,2:9,1:2,1:2,2:0,f:3,2:b,7:6,1:2,1:7,2:1,2:l,1:6,1:1,1:4,2:8,2:1,2:2,7:2,4:1,1:4,2:h,a:1,1:5,3:2,1:3,3:1,1:0,1:1,3:1,3:2,3:b,4:4,3:2,1:3,2:0,6:0,e:k,5:c,1:2,1:m,1:f,2:8,1:2,1:3,7:1,1:2,2:0,2:3,2:9,7:l,1:2,1:m,1:9,1:4,2:8,1:2,1:3,7:1,6:1,1:3,2:9,1:2,c:c,1:2,1:1e,1:2,1:5,4:f,2:p,1:2,1:h,3:n,1:8,1:0,2:6,3:0,4:5,1:0,1:7,6:9,2:2,c:1l,4:s,11:1,1:0,1:4,1:n,1:0,1:m,2:4,1:0,1:6,1:9,2:3,w:1z,1:z,4:12,1:z,1:e,1:c,11:5h,1:0,5:0,2:ag,1:3,2:6,1:0,1:3,2:14,1:3,2:w,1:3,2:6,1:0,1:3,2:e,1:1k,1:3,2:1u,2:v,3:p,6:2d,2:5,2:hr,1:r,3:2g,7:l,9:n,9:j,c:c,1:2,1:1,c:2l,2:9,6:9,6:p,6:2g,7:16,5:1x,a:u,1:b,4:b,4:0,3:15,2:4,b:17,4:p,6:a,3:1p,2:1s,1:s,2:a,6:9,6:d,2:u,1d:24,3:1a,1:37,8:1n,3:e,3:1n,7:16,2:a,8:16,5:et,2:5,2:11,2:5,2:7,1:0,1:0,1:0,1:u,2:1g,1:e,1:d,2:5,1:i,2:2,1:8,8:0,3:s,2:1g,1:4,1:b,2:q,1:c,3:w,f:w,f:3v,4:ie,p:a,l:1eb,2:v,1:9o,5:18,1:0,5:0,2:1j,7:1,e:n,9:6,1:6,1:6,1:6,1:6,1:6,1:6,1:6,1:3h,y:p,1:2g,c:5x,q:f,1:1q,1:2d,2:2u,5:16,1:2l,1:2b,b:1b,1:mlo,3:1i,9:9n,k:53,8:5m,5:1,1:0,1:4,o:1m,3:9,6:1j,8:1x,8:b,6:37,b:t,3:25,1:a,4:w,1:1i,9:d,2:9,2:2u,o:r,a:5,2:5,2:5,9:6,1:6,1:1n,4:3h,2:9,6:8mb,c:m,4:1c,1l0:57x,2:2x,12:6,c:4,5:p,1:4,1:0,1:1,1:1,1:3g,g:cc,2:1h,7:0,w:15,6:1e,1:i,1:3,4:4,1:3q,2:0,1:59,3:5,2:5,2:5,2:2,3:6,1:6,a:4,2:b,1:p,1:i,1:1,1:e,2:d,y:3e,5:2,4:18,3:2f,1:c,3:0,1b:19,3m:s,3:1c,f:r,4:z,9:t,5:16,5:t,1:10,4:d,16:4d,2:9,6:z,4:z,4:13,8:1f,b:b,1:e,1:6,1:1,1:a,1:e,1:6,1:1,1v:8m,9:l,a:7,o:5,1:15,1:8,1x:5,2:0,1:17,1:1,3:0,2:m,1:1z,8:8,1c:i,1:1,5:w,3:q,5:0,1s:1j,4:j,2:1d,1:1,5:7,1:2,1:s,2:2,4:9,7:8,7:1r,w:12,4:b,9:1h,3:s,2:q,5:p,7:3,c:6,28:20,1j:1e,d:1e,7:19,8:9,86:u,1:15,1:2,2:1,23:16,8:15,m:p,12:r,k:m,9:25,4:z,9:1v,a:0,2:o,7:9,6:1g,1:h,8:12,9:2n,1:j,b:h,1:1a,1q:6,1:0,1:3,1:e,1:a,6:1m,5:9,6:3,1:7,2:1,2:l,1:6,1:1,1:4,1:9,2:1,2:2,2:0,6:0,5:6,2:6,3:4,3v:2j,1:4,u:1z,8:9,4m:1h,2:11,y:1w,b:9,6:c,j:1l,6:9,1i:q,2:e,4:m,55:1n,2s:2a,c:7,2:0,2:7,1:1,1:t,1:1,2:b,9:9,1y:7,2:19,2:a,r:1z,8:2a,d:20,7:9,6u:8,1:18,1:d,a:s,3:v,2:l,1:d,21:6,1:1,1:17,3:0,1:1,1:8,8:9,6:5,1:1,1:10,1:1,1:5,7:9,8m:o,7:g,1:14,3:r,2e:0,f:1d,d:pm,2u:32,1:4,b:5f,218:2q,d:ut,33e:g6,6nt:fs,7:u,1:9,4:28,1:9,6:t,2:5,a:1x,a:9,1:6,1:k,5:i,j4:2i,2t:22,4:1k,7:g,1s:4,b:1,e:4qf,8:yd,16:8,6w7:3,1:6,1:1,1:82,f:0,t:2,2:0,e:3,8:az,1s4:2y,5:c,3:8,7:9,2:7,3mk:19,2:m,9:37,1o:6t,a:12,2:5d,l:1x,3e:j,c:j,c:2e,9:o,3r:2c,1:1y,1:1,2:0,2:1,2:3,1:b,1:0,1:6,1:1s,1:3,2:7,1:6,1:r,1:3,1:4,1:0,3:6,1:9f,2:83,2:jh,f:4,1:e,uo:u,6:5,5x:6,1:g,2:6,1:1,1:4,5:1p,x:0,34:18,3:d,2:9,4:1,8w:u,h:1l,5:0,cw:15,km:6,1:3,1:1,1:e,1:5g,2:f,15:23,4:9,4:1,lt:1v,24:1o,5e:3,1:q,1:1,1:0,2:0,1:9,1:3,1:0,1:0,6:0,4:0,1:0,1:0,1:2,1:1,1:0,2:0,1:0,1:0,1:0,1:0,1:1,1:0,2:3,1:6,1:3,1:3,1:0,1:9,1:g,5:2,1:4,1:g,1g:1,7i:17,4:2r,c:e,2:e,1:e,1:10,a:4t,1k:s,d:17,4:8,7:1,e:5,4a:rb,4:g,3:c,3:3a,4:2m,6:b,4:0,f:b,4:1j,8:9,6:13,8:t,2:1,26:9f,c:d,2:c,3:8,7:19,1:6,8:d,4:8,7:8,7:42,1:1i,11:9,sm:wyn,w:37d,6:65,2:4g1,e:5rk,f:h9,1wi:f1,15u:3t6,5:38f,f975:0,u:2n,3k:6n,1e6o:1ekd,2:1ekd`},Gt=`2p:q:-w:1,51:1:kn:1,68:n:-w:1,6w:7:-w:1,73:1:3d:1,75:o:-1:2,8h:1:-6g:1,8j:3:-1:2,8q:8:-1:2,97:n:-1:2,ai:3:-1:2,an:1:-8c:1,ao:1:5f:1,ar:2:-1:2,aw:1:-1:1,b0:1:-1:1,b6:1:-1:1,b9:1:2p:1,bd:1:-1:1,be:1:4j:1,bi:1:3m:1,bl:3:-1:2,bs:1:-1:1,bx:1:-1:1,c0:1:-1:1,c4:2:-1:2,c9:1:-1:1,cd:1:-1:1,cf:1:1k:1,cl:1:-1:1,cm:1:-2:1,co:1:-1:1,cp:1:-2:1,cr:1:-1:1,cs:1:-2:1,cu:8:-1:2,d9:1:-27:1,db:9:-1:2,du:1:-1:1,dv:1:-2:1,dx:1:-1:1,e1:k:-1:2,f7:9:-1:2,fw:1:-1:1,fz:2:8cf:1,g2:1:-1:1,g7:5:-1:2,gg:1:8bj:1,gh:1:8bg:1,gi:1:8bi:1,gj:1:-5u:1,gk:1:-5q:1,gm:2:-5p:1,gp:1:-5m:1,gr:1:-5n:1,gs:1:wnj:1,gw:1:-5p:1,gx:1:wnf:1,gz:1:-5r:1,h1:1:wmg:1,h2:1:wn8:1,h4:1:-5t:1,h5:1:-5v:1,h6:1:wn8:1,h7:1:8af:1,h8:1:wn5:1,hb:1:-5v:1,hd:1:8al:1,he:1:-5x:1,hh:1:-5y:1,hp:1:89z:1,hs:1:-62:1,hu:1:wn7:1,hv:1:-62:1,hz:1:wmi:1,i0:1:-62:1,i1:1:-1x:1,i2:2:-61:1,i4:1:-1z:1,ia:1:-63:1,il:1:wlx:1,im:1:wlu:1,n9:1:2c:1,oh:2:-1:2,on:1:-1:1,or:3:3m:1,q4:1:-12:1,q5:3:-11:1,q9:h:-w:1,qq:1:-v:1,qr:9:-w:1,r0:1:-1s:1,r1:2:-1r:1,r4:1:-1q:1,r5:1:-1l:1,r9:1:-1b:1,ra:1:-1i:1,rb:1:-8:1,rd:c:-1:2,s0:1:-2e:1,s1:1:-28:1,s2:1:7:1,s3:1:-38:1,s5:1:-2o:1,s8:1:-1:1,sb:1:-1:1,ts:w:-w:1,uo:g:-28:1,v5:h:-1:2,wb:r:-1:2,xu:7:-1:2,y7:1:-f:1,y9:1c:-1:2,129:12:-1c:1,3bk:17:2bk:1,3ct:3:2bk:1,3y0:6:-8:1,5mo:1:-4tq:1,5mp:1:-4tp:1,5mq:1:-4tg:1,5mr:2:-4te:1,5mt:1:-4tf:1,5mu:1:-4t8:1,5mv:1:-4rp:1,5mw:1:r7m:1,5tl:1:r9g:1,5tp:1:2xy:1,5u6:1:raw:1,5xd:23:-1:2,61n:1:-1n:1,61t:1c:-1:2,64g:8:8:1,64w:6:8:1,65c:8:8:1,65s:8:8:1,668:6:8:1,66p:4:8:2,674:8:8:1,67k:2:22:1,67m:4:2e:1,67q:2:2s:1,67s:2:3k:1,67u:2:34:1,67w:2:3i:1,680:8:8:1,68g:8:8:1,68w:8:8:1,69c:2:8:1,69f:1:9:1,69q:1:-5k5:1,69v:1:9:1,6a8:2:8:1,6ao:2:8:1,6at:1:7:1,6b7:1:9:1,6ku:1:-s:1,6ls:g:-g:1,6mc:1:-1:1,79s:q:-q:1,8q8:1c:-1c:1,8rl:1:-1:1,8rp:1:-8bv:1,8rq:1:-8bs:1,8rs:3:-1:2,8s3:1:-1:1,8s6:1:-1:1,8sh:1e:-1:2,8vg:2:-1:2,8vn:1:-1:1,8w0:12:-5ls:1,8x3:1:-5ls:1,8x9:1:-5ls:1,wu9:n:-1:2,ww1:e:-1:2,x0j:7:-1:2,x0z:v:-1:2,x2y:2:-1:2,x33:5:-1:2,x3g:1:-1:1,x3l:2:-1:2,x3o:1:1c:1,x3r:a:-1:2,x4l:8:-1:2,x54:2:-1:2,x5d:1:-1:1,x5j:2:-1:2,x6e:1:-1:1,xub:1:-ps:1,xv4:28:-tzk:1,1ef5:q:-w:1,1fe0:14:-14:1,1fiw:10:-14:1,1fo7:b:-13:1,1foj:f:-13:1,1foz:7:-13:1,1fp7:2:-13:1,1h34:1f:-1s:1,1jgg:w:-w:1,20dc:w:-w:1,2oma:y:-y:1`,Kt=`1t:q:w:1,5c:n:w:1,60:7:w:1,74:o:1:2,8g:1:-5j:1,8i:3:1:2,8p:8:1:2,96:n:1:2,ag:1:-3d:1,ah:3:1:2,ap:1:5u:1,aq:2:1:2,au:1:5q:1,av:1:1:1,ax:2:5p:1,az:1:1:1,b2:1:27:1,b3:1:5m:1,b4:1:5n:1,b5:1:1:1,b7:1:5p:1,b8:1:5r:1,ba:1:5v:1,bb:1:5t:1,bc:1:1:1,bg:1:5v:1,bh:1:5x:1,bj:1:5y:1,bk:3:1:2,bq:1:62:1,br:1:1:1,bt:1:62:1,bw:1:1:1,by:1:62:1,bz:1:1:1,c1:2:61:1,c3:2:1:2,c7:1:63:1,c8:1:1:1,cc:1:1:1,ck:1:2:1,cl:1:1:1,cn:1:2:1,co:1:1:1,cq:1:2:1,cr:9:1:2,da:9:1:2,dt:1:2:1,du:2:1:2,dy:1:-2p:1,dz:1:-1k:1,e0:k:1:2,f4:1:-3m:1,f6:9:1:2,fu:1:8bv:1,fv:1:1:1,fx:1:-4j:1,fy:1:8bs:1,g1:1:1:1,g3:1:-5f:1,g4:1:1x:1,g5:1:1z:1,g6:5:1:2,og:2:1:2,om:1:1:1,ov:1:38:1,p2:1:12:1,p4:3:11:1,p8:1:1s:1,pa:2:1r:1,pd:h:w:1,pv:9:w:1,r3:1:8:1,rc:c:1:2,s4:1:-1o:1,s7:1:1:1,s9:1:-7:1,sa:1:1:1,sd:3:-3m:1,sg:g:28:1,sw:w:w:1,v4:h:1:2,wa:r:1:2,xs:1:f:1,xt:7:1:2,y8:1c:1:2,10x:12:1c:1,3a8:12:5ls:1,3bb:1:5ls:1,3bh:1:5ls:1,3vk:28:tzk:1,3xs:6:8:1,5n4:17:-2bk:1,5od:3:-2bk:1,5xc:23:1:2,61q:1:-5vj:1,61s:1c:1:2,64o:8:-8:1,654:6:-8:1,65k:8:-8:1,660:8:-8:1,66g:6:-8:1,66x:4:-8:2,67c:8:-8:1,688:8:-8:1,68o:8:-8:1,694:8:-8:1,69k:2:-8:1,69m:2:-22:1,69o:1:-9:1,6a0:4:-2e:1,6a4:1:-9:1,6ag:2:-8:1,6ai:2:-2s:1,6aw:2:-8:1,6ay:2:-34:1,6b0:1:-7:1,6bc:2:-3k:1,6be:2:-3i:1,6bg:1:-9:1,6jq:1:-5st:1,6ju:1:-6gv:1,6jv:1:-6di:1,6k2:1:s:1,6lc:g:g:1,6mb:1:1:1,792:q:q:1,8ow:1c:1c:1,8rk:1:1:1,8rm:1:-8af:1,8rn:1:-2xy:1,8ro:1:-89z:1,8rr:3:1:2,8rx:1:-8bg:1,8ry:1:-8al:1,8rz:1:-8bj:1,8s0:1:-8bi:1,8s2:1:1:1,8s5:1:1:1,8se:2:-8cf:1,8sg:1e:1:2,8vf:2:1:2,8vm:1:1:1,wu8:n:1:2,ww0:e:1:2,x0i:7:1:2,x0y:v:1:2,x2x:2:1:2,x31:1:-r9g:1,x32:5:1:2,x3f:1:1:1,x3h:1:-wmg:1,x3k:2:1:2,x3q:a:1:2,x4a:1:-wn8:1,x4b:1:-wnj:1,x4c:1:-wnf:1,x4d:1:-wn5:1,x4e:1:-wn8:1,x4g:1:-wlu:1,x4h:1:-wmi:1,x4i:1:-wlx:1,x4j:1:ps:1,x4k:8:1:2,x50:1:-1c:1,x51:1:-wn7:1,x52:1:-raw:1,x53:2:1:2,x5c:1:1:1,x5i:2:1:2,x6d:1:1:1,1ee9:q:w:1,1fcw:14:14:1,1fhs:10:14:1,1fn4:b:13:1,1fng:f:13:1,1fnw:7:13:1,1fo4:2:13:1,1h1c:1f:1s:1,1jfk:w:w:1,20cg:w:w:1,2olc:y:y:1`,N=`C.UTF-8`,qt=`only the C.UTF-8 locale is supported`,Jt=e=>typeof e==`string`&&/^C\.UTF-?8$/iu.test(e),Yt=new Set([`LANG`,`LC_ALL`,`LC_CTYPE`]);function Xt(e){if(e.locale===void 0||Jt(e.locale))return N;throw TypeError(`createTerminal: ${qt} (got ${JSON.stringify(e.locale)})`)}function Zt(e,t){if(!(Yt.has(e)?Jt(t)||e!==`LANG`&&t===``:Jt(t)||t===`C`||t===`POSIX`||t===``))throw new T(`feature`,e,`${e}: ${qt}`)}var Qt=e=>e===`C`||e===`POSIX`,$t=e=>Qt(e.locale);function en(e){let t=[],n=-1;for(let r of e.split(`,`)){let[e,i]=r.split(`:`).map(e=>parseInt(e,36)),a=n+1+e;t.push([a,a+i]),n=a+i}return t}function tn(e){let t=e.findIndex(([e])=>e>95);return[...e.slice(0,t),[95,95],...e.slice(t)]}function nn(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122?String.fromCodePoint(e):e<128?`\\x`+e.toString(16).padStart(2,`0`):String.fromCodePoint(e)}var rn=e=>e.map(([e,t])=>e===t?nn(e):`${nn(e)}-${nn(t)}`).join(``);function an(e,t){let n=e.length-1,r=0;for(;r<=n;){let i=r+n>>1;if(t<e[i][0])n=i-1;else if(t>e[i][1])r=i+1;else return!0}return!1}var on=e=>e===`upper`||e===`lower`?`alpha`:e,sn=[181,305,383,453,456,459,498,837,962,976,977,981,982,1008,1009,1010,1013,7835,8126],cn=/[\u1C80-\u1C88]/u;function ln(e){let t=new Map;for(let n of e.split(`,`)){let[e,r,i,a]=n.split(`:`).map(e=>parseInt(e,36));for(let n=0;n<r;n++)t.set(e+n*a,e+n*a+i)}return t}var un=(e,t)=>({up:e,low:t,folds:new Map});function dn(){let e=new Map,t=new Map;for(let n=97;n<=122;n++)e.set(n,n-32),t.set(n-32,n);return un(e,t)}function fn(e){let t=[];for(let[n,r]of e.sort((e,t)=>e[0]-t[0])){let e=t.at(-1);e&&n<=e[1]+1?e[1]=Math.max(e[1],r):t.push([n,r])}return t}function pn(e){let t=`[${e}]`;return{"<":`(?<!${t})(?=${t})`,">":`(?<=${t})(?!${t})`,boundary:`(?:(?<!${t})(?=${t})|(?<=${t})(?!${t}))`,inside:`(?:(?<=${t})(?=${t})|(?<!${t})(?!${t}))`}}function mn(e,t,n,r,i){let a=new Map,o=new Map,s=null,c=e=>(o.has(e)||o.set(e,n(e)),o.get(e)),l=()=>s??=i(),u={name:e,multibyte:t,ranges:c,body(e){return a.has(e)||a.set(e,r(e,c(e))),a.get(e)},has(e,t){let n=c(e);return n!==void 0&&an(n,t)},assertions(){if(u.js)return u.js;let e=u.body(`space`);return u.js={__proto__:null,...pn(u.body(`word`)),word:`[${u.body(`word`)}]`,nonWord:`[^${u.body(`word`)}]`,space:`[${e}]`,nonSpace:`[^${e}]`},u.js},up:e=>l().up.get(e)??e,low:e=>l().low.get(e)??e,fold(e){let{folds:t}=l(),n=t.get(e);if(n===void 0){let r=u.up(e),i=u.low(r),a=new Set([e,r]);i!==r&&u.up(i)===r&&a.add(i);for(let e of sn)u.up(e)===r&&a.add(e);n=[...a].sort((e,t)=>e-t),t.set(e,n)}return n},foldRange(e,t){let{up:n}=l(),r=n.get(e)??e,i=n.get(t)??t;if(r>i)return null;let a=[],o=[];for(let[e,t]of n){let n=e>=r&&e<=i;n!==(t>=r&&t<=i)&&(n?a:o).push(e)}let s=[],c=r;for(let e of a.sort((e,t)=>e-t))e>c&&s.push([c,e-1]),c=e+1;return c<=i&&s.push([c,i]),fn([...s,...o.map(e=>[e,e])])}};return u}var hn=mn(`C`,!1,e=>zt[e],e=>Rt[e],dn),gn=mn(N,!0,e=>e===`word`?tn(en(Wt.alnum)):Object.hasOwn(Wt,e)?en(Wt[e]):void 0,(e,t)=>t===void 0?void 0:rn(t),()=>un(ln(Gt),ln(Kt)));function _n(e){if(e===N)return gn;if(Qt(e))return hn;throw new T(`feature`,`locale`,`matching in the ${e} locale is not supported`)}var vn=(1n<<63n)-1n,yn=-vn-1n,bn=(1n<<64n)-1n;function P(e,t,n,r){let i=k(e.cwd,n,e.fs,r);return F(e,t,n,i.error),i}function F(e,t,n,r){if(r!==`No such file or directory`||typeof n!=`string`)return;let i=n.startsWith(`/`),a=i?`/`:e.cwd,o=n.replace(/^\/+/u,``),s=new Set;for(let t of new Set([`/`,e.mount??`/`,e.home??`/`])){if(t===a)continue;let n=k(t,o,e.fs);n.error||s.add(n.path)}if(!s.size)return;let c=i?``:` from cwd ${JSON.stringify(e.cwd)}`,l=`${i?`absolute`:`relative`} path ${JSON.stringify(n)} was not found${c}`;e.notes?.add(`${t}: ${l}. ${xn(e,s)}`)}function xn(e,t){let n=[...t].sort(M),r=n.map(e=>JSON.stringify(e));if(n.length===1)return`A ${e.fs.isDir(n[0])?`dir`:`file`} exists at ${r[0]}.`;let i=n.every(t=>!e.fs.isDir(t)&&e.fs.isFile(t))&&n.some(t=>!e.fs.sameFileContents(n[0],t)),a=`${r.slice(0,-1).join(`, `)} and ${r.at(-1)}`;return`${n.length===2?`Both`:`All`} of ${a} exist${i?`, and they differ in contents`:``}.`}function Sn(){let e=new Set;return{add:t=>e.add(t),collect(t,n){for(let r of n)r.startsWith(`.`)&&e.add(O(t,r))},emit(t,n,r,i=``){On(t,{command:n,action:`omitted`,noun:[`hidden entry`,`hidden entries`],explanation:r,context:i,paths:e})}}}var Cn=/^(?<command>[^:]+): (?<operand>.+): (?<reason>no such file or directory|not a directory|is a directory)$/iu;function wn(e,t){for(let n of t.split(`
|
|
4
|
+
`))Cn.test(n)&&e.discarded?.add(n)}function Tn(e,t,n){let r=new Map;for(let i of e){if(t.includes(i))continue;let{command:e,operand:a,reason:o}=Cn.exec(i).groups,s=/'([^']*)'$/u.exec(a)?.[1]??a;if([...n].some(e=>e.includes(JSON.stringify(s))))continue;let c=`${e}: ${o}`;r.has(c)||r.set(c,new Set),r.get(c).add(s)}return[...r].map(([e,t])=>`${e}: ${[...t].map(e=>JSON.stringify(e)).join(`, `)}.`)}function En(e,t){return e===`status`?null:{name:t,search:e===`search`}}function Dn(){let e=null,t=0;return{skip(n,r){!t&&n&&(e={...n,exitCode:r}),t++},flush(n){if(t&&e){let r=t===1?`the command`:`the ${t} commands`,i=e.search&&e.exitCode===1?` A search that selects no lines exits 1, which is not a failure.`:``;n.add(`${e.name}: exited ${e.exitCode}, so ${r} after && did not run.${i}`)}e=null,t=0}}}function On(e,t){kn(e,t,t.paths.size,t.paths)}function kn(e,{command:t,action:n,noun:r,explanation:i=``,context:a=``},o,s){if(!o)return;let c=o<10?`: `+[...s].sort(M).map(e=>JSON.stringify(e)).join(`, `):``,l=Array.isArray(r)?r[o===1?0:1]:r;e.add(`${t}: ${n} ${o} ${l}${a}${c}.${i?` `+i:``}`)}function An(e,t=`
|
|
5
|
+
`){if(e===``)return[];let n=e.split(t);return n.at(-1)===``&&n.pop(),n}function jn(e){let t=0,n=typeof e==`string`?`
|
|
6
|
+
`:10;for(let r=e.indexOf(n);r>=0;r=e.indexOf(n,r+1))t++;return t}var Mn=(e,t=`
|
|
7
|
+
`)=>e.length===0?``:e.join(t)+t;function Nn(e,t=`
|
|
8
|
+
`){let n=[];for(let r=0;r<e.length;){let i=e.indexOf(t,r),a=i<0?e.length:i+t.length;n.push(e.slice(r,a)),r=a}return n}var Pn=e=>e.stdinTerminal===!0,Fn=e=>(e.outputFds?.[1]===`out`||e.outputFds?.[1]===`err`)&&!e.substitutionDepth;function I(e,t=``,n=!1,r=null){e.io?.read(e.stdinHandle?.identity),!n&&e.stdinBytes&&_t(e.stdinBytes,Wn(null,e)),e.stdinLeft=t,e.stdinBytes=r}function In(e,t,n,r=``,i={}){let a=[],o=``,s=r,c=i.read??`text`,l=c===`bytes`||c===`loose-bytes`,u=l?`bytes`:`content`,d=e=>l?c===`loose-bytes`?p(e):E(e):e,f=(e,t)=>{if(l){e.bytes=zn(n.fs,t,c===`loose-bytes`);return}if(c===`text`||n.fs.isBytes?.(t)!==!0){e.content=n.fs.readFile(t);return}e.bytes=n.fs.readBytes(t),e.content=c===`maybe-text`?$e(e.bytes):void 0};for(let p of t){let t={name:p,[u]:d(``),kind:`file`},m;if(p===`/dev/stdin`&&n.stdinFile)n.io?.read(n.stdinHandle?.identity),t[u]=d(n.stdinOrigin);else if(p===`-`||p===`/dev/stdin`){let i=s===r?n.stdinBytes??null:null;Object.assign(t,i===null?Hn(s,c,l):Un(i,c,l,e,n)),t.shared=!0,s=``,I(n,``,!0)}else if(p!==`/dev/null`){let r=P(n,e,p);r.error?(t.kind=`missing`,m=r.error):n.fs.isDir(r.path)?(t.kind=`dir`,i.noRead||(m=`Is a directory`)):f(t,r.path)}if(a.push(t),m&&(o+=t.failure=Rn(e,p,m,t.kind===`dir`)),t.kind!==`file`&&(i.stopOnError||t.kind===`dir`&&i.stopOnDir))break}return{inputs:a.filter(e=>e.kind===`file`),entries:a,stderr:o,failed:o!==``}}var Ln={head:[`cannot open '%s' for reading: %r`,`error reading '%s': Is a directory`],tail:[`cannot open '%s' for reading: %r`,`error reading '%s': Is a directory`],sort:[`cannot read: %s: %r`,`read failed: %s: Is a directory`],sed:[`can't read %s: %r`,`read error on %s: Is a directory`],tac:[`failed to open '%s' for reading: %r`,`%s: read error: Invalid argument`],base32:[null,`read error: Is a directory`],base64:[null,`read error: Is a directory`],uniq:[null,`error reading '%s': Is a directory`]};function Rn(e,t,n,r=!1){let i=Ln[e]?.[+!!r];return`${e}: ${i?i.replace(/%[sr]/gu,e=>e===`%s`?t:n):`${t}: ${n}`}
|
|
9
|
+
`}function zn(e,t,n=!1){let r=e.readBytes?.(t,n);if(r!==void 0)return r;let i=e.readFile(t);if(i!==void 0)return n?p(i):E(i)}function Bn(e,t){if(e.isBytes?.(t)!==!0)return{text:e.readFile(t),bytes:void 0};let n=e.readBytes(t);return{text:$e(n),bytes:n}}function Vn(e,t,n,r,i){if(t.length===0){let t=r.stdinBytes??null;I(r,``,!0);let a=i?.read,o=a===`bytes`||a===`loose-bytes`,s=[{name:null,kind:`file`,...t===null?Hn(n,a,o):Un(t,a,o,e,r)}];return{inputs:s,entries:s,stderr:``,failed:!1}}return In(e,t,r,n,i)}var Hn=(e,t,n)=>n?{bytes:t===`loose-bytes`?p(e):E(e)}:{content:e};function Un(e,t,n,r,i){return n||t===`as-held`?{bytes:e}:t===`maybe-text`?{bytes:e,content:$e(e)}:{content:_t(e,Wn(null,i))}}function Wn(e,t){return e===null||e===`-`||e===`/dev/stdin`?t.stdinHandle?.path?JSON.stringify(t.stdinHandle.path):`standard input`:JSON.stringify(k(t.cwd,e,t.fs).path??e)}function Gn(e,t,n,r){let i=Vn(e,t,n,r);return{content:i.inputs.map(e=>e.content).join(``),stderr:i.stderr,failed:i.failed}}var Kn=(e,t)=>({stdout:e,stderr:t.stderr,exitCode:+!!t.failed});function qn(e,t,n=e,{max:r=1/0,digitsOnly:i=!1}={}){if(typeof e!=`string`||!(i?/^\d+$/u:/^[ \t\n\r\f\v]*\+?\d+$/u).test(e))return{error:x(`${t}: invalid count: ${n}`)};let a=Number(e);return a>r?{error:x(`${t}: out of range: ${n}`)}:{value:Math.min(a,2**53-1)}}function Jn(e,t){if(typeof e!=`string`)return{error:x(`${t}: invalid count: ${e}`)};let n=e[0]===`+`||e[0]===`-`?e[0]:``,r=n===`-`?e.slice(1):e,i=/^[ \t\n\r\v\f]*\+?(\d+)(b|[kKMGTPEZYRQ](?:i?B)?)?$/u.exec(r),a=!n&&/^(?:b|[kKMGTPEZYRQ](?:i?B)?)$/u.test(r);if(!i&&!a)return{error:x(`${t}: invalid count: ${e}`)};let o=i?.[2]??(a?r:``),s=Yn(BigInt(i?.[1]??`1`),o,t,e);return s.error?s:{...s,sign:n}}function Yn(e,t,n,r){let i=1n;t===`b`?i=512n:t&&(i=(t.length===2?1000n:1024n)**BigInt(`KMGTPEZYRQ`.indexOf(t[0].toUpperCase())+1));let a=e*i;return a>bn?{error:x(`${n}: count out of range: ${r}`)}:{value:Number(a>BigInt(2**53-1)?BigInt(2**53-1):a)}}function L(e){try{let t=e?.message;return typeof t==`string`&&t!==``?t:String(e)}catch{return`threw a value with no message`}}var R=e=>e===`/tmp`||e.startsWith(`/tmp/`),Xn=new Uint8Array;function Zn(e){e.vfs.mkdir(`/tmp`,{recursive:!0}),e.writableAt(`/tmp`);let t=Qn(e),n=e=>t.observer?.read(t.identity(e)??e),r={...e,observeIo:e=>{t.observer=e},fileIdentity:t.identity,readIdentity:n=>(t.observer?.read(n),D(er(e.vfs,n))),readFile:t=>(n(t),e.readFile(t)),readBytes:t=>(n(t),e.readBytes(t)),openWritable:(e,n,i=!1)=>tr(r,t,e,n,i),makeWritableDir:(e,n)=>nr(r,t,e,n),makeWritableLink:(e,n,i)=>rr(r,t,e,n,i),removeWritableDir:(e,n)=>sr(r,t,e,n),copyWritable:(e,n,i)=>ir(r,t,e,n,i),replaceWritable:(e,n,i,a)=>ar(r,t,e,n,i,a),removeWritable:(e,n)=>or(r,t,e,n)};return r}function Qn(e){let{vfs:t}=e,n=new Map;return{base:e,vfs:t,observer:void 0,identity:r=>{if(!R(String(r))||!e.isFile(r))return;let{ino:i}=t.lstat(r),a=n.get(i);return a===void 0&&n.set(i,a={path:t.realpath(r),detached:void 0}),a},leaving:r=>{let i=e.isFile(r)?t.lstat(r).ino:void 0,a=n.get(i);return a&&{cell:a,ino:i,bytes:t.readFile(r)}},release:e=>{e&&(e.cell.detached=e.bytes,n.delete(e.ino))},change:(t,n)=>{try{return n()}catch(e){throw e instanceof y?ur(t,$n(e.code)):e}finally{e.reshaped()}}}}var $n=e=>new y(e,``).message.slice(2),er=(e,t)=>t.detached??e.readFile(t.path);function tr(e,t,n,r,i){let a=A(e,n,r);if(!R(a))return null;cr(e,n,r);let o=t.identity(a);return o===void 0?(t.change(r,()=>t.vfs.writeFile(a,Xn)),o=t.identity(a)):i||(t.observer?.write(o),t.vfs.writeFile(a,Xn)),dr(t.vfs,a,o,i,()=>t.observer?.write(o))}function nr(e,t,n,r){let i=A(e,n,r,!1);if(!R(i))return!1;if(e.isDir(i))return!0;if(cr(e,n,r),e.isFile(i)||e.isLink(i))throw Error(`${r}: File exists`);return t.change(r,()=>t.vfs.mkdir(i)),!0}function rr(e,t,n,r,i){let a=A(e,n,r,!1);return a.startsWith(`/tmp/`)?(lr(e,n,r),t.change(r,()=>t.vfs.symlink(i,a)),!0):!1}function ir(e,t,n,r,i){let a=A(e,n,i);if(!a.startsWith(`/tmp/`))return!1;cr(e,n,i);let o=t.identity(r);if(r===a||o!==void 0&&o===t.identity(a))throw Error(`source and destination are the same file`);return t.observer?.read(o??r),e.openWritable(n,i).writeBytes(t.base.readBytes(r)),!0}function ar(e,t,n,r,i,a){let o=A(e,n,r,!1),s=a===void 0?null:A(e,n,a,!1);if(!o.startsWith(`/tmp/`)||s!==null&&!s.startsWith(`/tmp/`))return!1;if(cr(e,n,r),!e.isFile(o)&&!e.isLink(o))throw ur(r,`No such file or directory`);s!==null&&cr(e,n,a);let c=E(i),{vfs:l}=t;return t.change(r,()=>{if(s!==null&&s!==o){let e=t.leaving(o),n=t.leaving(s);l.rename(o,s),t.release(n),e&&(e.cell.path=s)}else{let e=t.leaving(o);l.unlink(o),t.release(e)}l.writeFile(o,c)}),!0}function or(e,t,n,r){if(!R(A(e,n,r,!1)))return!1;let i=k(n,r,e,{follow:!1});if(i.error)throw ur(r,i.error);if(e.isDir(i.path))throw Error(`${r}: Is a directory`);if(!R(i.path))return!1;let a=t.leaving(i.path);return t.change(r,()=>t.vfs.unlink(i.path)),t.release(a),!0}function sr(e,t,n,r){if(!R(A(e,n,r,!1)))return!1;let i=k(n,r,e);if(i.error)throw ur(r,i.error);if(!R(i.path)||!e.isDir(i.path))throw Error(`${r}: Not a directory`);if(i.path===`/tmp`)throw Error(`${r}: Device or resource busy`);let{dirs:a,files:o,links:s}=e.listDir(i.path);if(a.length||o.length||s.length)throw Error(`${r}: Directory not empty`);return t.change(r,()=>t.vfs.rmdir(i.path)),!0}function cr(e,t,n){let r=ft(t,n,e);if(r.error===null){if(e.isDir(r.path))throw Error(`${n}: Is a directory`);if(n.endsWith(`/`))throw ur(n,`Not a directory`);return}if(r.rest.length>0||n.endsWith(`/`)||n.includes(`\0`))throw ur(n,r.error);if(!e.isDir(j(r.path)))throw ur(n,`No such file or directory`)}function lr(e,t,n){if(n===``||n.includes(`\0`))throw ur(n,`No such file or directory`);let r=ft(t,n,e,{follow:!1});if(r.error===null)throw ur(n,`File exists`);if(r.rest.length>0||n.endsWith(`/`))throw ur(n,r.error);if(!e.isDir(j(r.path)))throw ur(n,`Not a directory`)}function ur(e,t){return Object.assign(Error(`${e}: ${t}`),{path:e,fsError:t})}function dr(e,t,n,r,i){let a=0,o=t=>{let i=er(e,n),o=r?i.length:a;n.detached===void 0?o===i.length?e.appendFile(n.path,t):e.writeFile(n.path,fr(i,o,t)):n.detached=fr(i,o,t),a=o+t.length};return{path:t,identity:n,get position(){return r?er(e,n).length:a},write(e){e!==``&&(i(),o(E(e)))},writeBytes(e){e.length!==0&&(i(),o(e))}}}function fr(e,t,n){let r=Math.max(e.length,t+n.length),i=t===e.length&&e.byteOffset+r<=e.buffer.byteLength,a=i?new Uint8Array(e.buffer,e.byteOffset,r):new Uint8Array(Math.max(r,e.length*2)).subarray(0,r);return i||a.set(e),a.set(n,t),a}var pr=[`cwd`,`home`,`user`,`inherit`];function mr(e,t){let n=gr(t,`mount`,`/`),r=gr(t,`home`,n),i=gr(t,`cwd`,n);if(t.writable!==void 0&&t.writable!==!1&&t.writable!==`/tmp/`)throw TypeError(`createTerminal: writable must be '/tmp/', false, or undefined`);let a=t.writable===`/tmp/`;if(a&&(n===`/`||n===`/tmp`||n.startsWith(`/tmp/`)))throw Error(`createTerminal: mount must not be /, /tmp, or inside /tmp when writable is '/tmp/'`);let o=xt(e,n);return{fs:a?Zn(o):o,cwd:i,home:r,mount:n,writable:a,locale:Xt(t)}}function hr(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw TypeError(`fork: options must be an object (got ${t===null?`null`:Array.isArray(t)?`an array`:typeof t})`);for(let e of Object.keys(t))if(!pr.includes(e))throw Error(`fork: unknown option \`${e}\` (known: ${pr.join(`, `)}; the sources, the mount, the /tmp/ overlay, the network and the commands come from the parent)`);if(t.inherit!==void 0&&typeof t.inherit!=`boolean`)throw TypeError(`fork: inherit must be true or false (got ${t.inherit===null?`null`:typeof t.inherit})`);return{cwd:gr(t,`cwd`,e.cwd,`fork`,e.cwd),home:gr(t,`home`,e.home,`fork`,e.cwd),user:t.user??e.user,locale:e.locale,inherit:t.inherit??!0}}function gr(e,t,n,r=`createTerminal`,i=`/`){let a=e[t]===void 0?n:e[t];if(typeof a!=`string`||a.includes(`\0`))throw TypeError(`${r}: ${t} must be a string without NUL characters`);return O(i,a)}function _r(e,t=0,n=e.value.length){return{value:e.value.slice(t,n),mask:e.mask===null?null:e.mask.slice(t,n),...e.empty?{empty:e.empty.filter(e=>e>=t&&e<=n).map(e=>e-t)}:{}}}function vr(e){let t=/^([A-Za-z_][A-Za-z0-9_]*)=/u.exec(e.value);return!t||e.mask!==null&&/[12]/u.test(e.mask.slice(0,t[0].length))||e.empty?.some(e=>e<t[0].length)?null:{name:t[1],end:t[0].length}}var yr=(e,t)=>e.mask===null?`0`:e.mask[t];function br(e,t=!1){let n=new Set;if(!e.value.includes(`~`))return n;let r=e.value,i=t=>yr(e,t)===`0`,a=t?null:vr(e)?.end??null,o=e=>t===!0||a!==null&&e>=a;for(let s=0;s<r.length;s++){let c=s===0||s===a||o(s)&&r[s-1]===`:`&&i(s-1),l=o(s)||t===`parameterAssign`;if(!c||r[s]!==`~`||!i(s)||!xr(e,s,l))continue;let u=r[s+1];if(u&&u!==`/`&&u!==`:`&&i(s+1))throw new T(`feature`,`tilde prefix`,`named-user and directory-stack tilde prefixes are not supported`);(u===void 0||i(s+1)&&(u===`/`||u===`:`&&l))&&n.add(s)}return n}function xr(e,t,n){for(let r=t;r<=e.value.length;r++){if(e.empty?.includes(r))return!1;if(r===e.value.length)return!0;if(yr(e,r)!==`0`)return!1;if(e.value[r]===`/`||n&&e.value[r]===`:`)return!0}return!0}function Sr(...e){let t=``,n=``,r=[];for(let i of e){for(let e of i.empty??[])r.push(t.length+e);t+=i.value,n+=i.mask??`0`.repeat(i.value.length)}return{value:t,mask:e.every(e=>e.mask===null)?null:n,...r.length?{empty:r}:{}}}var Cr=64;function wr(e,t){let n=``;for(let r=t+1;r<e.length;r++){let i=e[r];if(i==="`")return{command:n,raw:e.slice(t,r+1),backtick:!0};if(i!==`\\`){n+=i;continue}let a=e[r+1];if(a==="`")throw new T(`feature`,"\\`","nested backtick command substitution is not supported; use `$( )` instead");if(a===`$`||a===`\\`){n+=a,r++;continue}if(a===`
|
|
10
|
+
`){r++;continue}n+=i}throw Error(`unterminated backtick substitution`)}var Tr=()=>({value:``,quoted:!1,started:!1}),Er=()=>new T(`feature`,`command substitution depth`,`command substitution nesting above ${Cr} is not supported`);function Dr(e,t,n,r,i){if(r>=Cr)throw Er();let a={line:e,i:n+1,depth:r,helpers:i,parens:0,quote:null,word:Tr(),command:!0,target:null,heredocs:[]};for(;a.i<e.length;)if(Ar(a))return{raw:e.slice(t,a.i+1),command:e.slice(n+1,a.i)};throw a.quote?Error(`unterminated ${a.quote===`'`?`single`:`double`} quote`):Error(`unterminated command substitution`)}function Or(e,t,n=!1){e.word.value+=t,e.word.quoted||=n,e.word.started=!0}function kr(e){let t=e.word;if(t.started){if(e.target)e.target.op===`heredoc`&&(e.target.delim=t.value,e.target.quotedDelim=t.quoted),e.target=null;else if(e.command&&!t.quoted){if(t.value===`case`)throw new T(`feature`,`case`,"`case` patterns inside command substitutions are not supported");e.command=[`!`,`{`,`do`,`then`,`else`,`elif`,`if`,`while`,`until`].includes(t.value)||/^[A-Za-z_][A-Za-z0-9_]*=/u.test(t.value)}else e.command=!1;e.word=Tr()}}function Ar(e){let{line:t,i:n,quote:r}=e,i=t[n];if(r&&i===r)return e.quote=null,e.word.quoted=!0,e.i++,!1;if(r===`'`)return Or(e,i,!0),e.i++,!1;if(i===`\\`)return jr(e),!1;if(i===`$`)return Mr(e),!1;if(i==="`")return Nr(e),!1;if(r)return Or(e,i,!0),e.i++,!1;if(i===`'`||i===`"`)return e.quote=i,e.word.started=!0,e.i++,!1;if(e.command&&!e.target&&!e.word.started&&t.startsWith(`[[`,n)&&/[ \t\n()<>;&|]|^$/u.test(t[n+2]??``)){let r=e.helpers.readConditional(t,n,e.helpers,e.depth+e.parens+1);return e.i+=r.raw.length,e.command=!1,!1}if(i===`#`&&!e.word.started){let r=t.indexOf(`
|
|
11
|
+
`,n);return e.i=r===-1?t.length:r,!1}if(i===`
|
|
12
|
+
`)return Fr(e),!1;if(i===` `||i===` `)return kr(e),e.i++,!1;let a;try{a=e.helpers.readOperator(t,n,!e.word.started)}catch(t){if(!(t instanceof T))throw t;return e.i++,!1}return a?Pr(e,a):(Or(e,i),e.i++,!1)}function jr(e){let t=e.line[e.i+1];if(t===`
|
|
13
|
+
`){e.i+=2;return}t!==void 0&&(!e.quote||'$`"\\'.includes(t))?(Or(e,t,!0),e.i+=2):(Or(e,`\\`,!!e.quote),e.i++)}function Mr(e){let{line:t,i:n}=e,r=e.helpers.skipContinuations(t,n+1);if(!e.quote&&t[r]===`'`){let n=e.helpers.decodeAnsiC(t,r+1);Or(e,n.text,!0),e.i=n.end;return}if(!e.quote&&t[r]===`"`){e.quote=`"`,e.word.started=!0,e.i=r+1;return}let i=e.helpers.readExpansion(t,n,e.depth+e.parens+1,e.quote===`"`)?.raw??`$`;Or(e,i,!!e.quote),e.i+=i.length}function Nr(e){let t=e.i++;for(;e.i<e.line.length;){let n=e.line[e.i++];if(n==="`"){Or(e,e.line.slice(t,e.i),!!e.quote);return}n===`\\`&&e.i<e.line.length&&e.i++}throw Error(`unterminated backtick substitution`)}function Pr(e,t){kr(e);let n=t.token;if(n.kind===`paren_close`){if(e.parens===0){if(e.heredocs.length)throw new T(`feature`,`command substitution heredoc`,`a command substitution heredoc must finish before its closing parenthesis`);return!0}e.parens--,e.command=!1}else if(n.kind===`paren_open`){if(e.depth+ ++e.parens>=Cr)throw Er();e.command=!0}else n.kind===`redir`?(e.command=!1,n.op===`heredoc`&&e.heredocs.push(n),[`dup`,`close`].includes(n.op)||(e.target=n)):e.command=!0;return e.i=t.end,!1}function Fr(e){if(kr(e),e.heredocs.some(e=>e.delim===null))throw Error(`heredoc requires a delimiter`);e.heredocs.length&&(e.i=e.helpers.readHeredocBodies(e.line,e.i,e.heredocs),e.heredocs=[]),e.command=!0,e.i++}function Ir(e){return Number.isInteger(e)&&e>=0&&e<=1114111&&(e<55296||e>57343)}var Lr=e=>e>65535?2:1,Rr=(e,t)=>Lr(e.codePointAt(t)),zr=e=>`(?:^|(?<=[^]))(?:${e})`,Br=/^(?:[A-Za-z_][A-Za-z0-9_]*|[0-9]+|[?*@#$!-])(?![\s\S])/u,Vr=/^(?:[A-Za-z_][A-Za-z0-9_]*|[0-9]+|[?*@#$!-])/u;function Hr(e,t=`unsupported or malformed parameter expansion`){return new T(`feature`,"${",`${t}: \${${e}}`)}var Ur=e=>/^[0-9]+$/u.test(e)?e.replace(/^0+(?=[0-9])/u,``):e;function Wr(e){let t=e.replaceAll(`\\
|
|
14
|
+
`,``);if(t.startsWith(`#`)&&t.length>1&&Br.test(t.slice(1)))return{name:Ur(t.slice(1)),operator:`length`};if(/^#[A-Za-z_0-9]/u.test(t))throw Hr(e);let n=Vr.exec(t)?.[0];if(!n)throw Hr(e);let r=t.slice(n.length);if(!r)return{name:Ur(n),operator:``};if(n===`#`&&/^[%:=+/]$/u.test(r))throw Hr(e);let i=/^(?::[-+=?]|[-+=?]|##?|%%?|:|\/\/?)/u.exec(r)?.[0];if(!i)throw Hr(e);return{name:Ur(n),operator:i,word:e.slice(Gr(e,n.length+i.length))}}function Gr(e,t){let n=0;for(;t>0;)e[n]===`\\`&&e[n+1]===`
|
|
15
|
+
`?n+=2:(t--,n++);return n}var Kr=(e,t)=>new T(`feature`,e,t),qr=e=>{if(e>=64)throw Kr(`expansion depth`,`shell expansion nesting above 64 levels is not supported`)};function Jr(e,t,n,r,i,a){qr(r);let o=n+1,s=null;for(let n=o;n<e.length;n++){let c=e[n];if(s===`'`){c===`'`&&(s=null);continue}if(c===`\\`){n++;continue}if(c===`"`){s=s===`"`?null:`"`;continue}if(c===`'`&&!s){s=`'`;continue}if(c==="`")throw Kr("`",`command substitution (backticks) is not supported`);if(c===`$`){let t=n+1;for(;e[t]===`\\`&&e[t+1]===`
|
|
16
|
+
`;)t+=2;if(e[t]===`'`&&!s){let r=a.decodeAnsiC(e,t+1),s=Wr(e.slice(o,n)).operator;if(i&&/[-+?=]/u.test(s)&&/[$`"'\\}]/u.test(r.text))throw Kr("${",`active characters in ANSI-C quoted parameter operands are not supported`);n=r.end-1;continue}let c=a.readExpansion(e,n,r+1,i||s===`"`);if(c){n+=c.raw.length-1;continue}}if(c===`}`&&!s){let r=Wr(e.slice(o,n));return{raw:e.slice(t,n+1),parameter:r}}}throw Kr("${",`unterminated parameter expansion`)}function Yr(e,t,n,r,i){qr(r);let a=0;for(let o=n+1;o<e.length;o++){let s=e[o];if(s===`\\`){o++;continue}if(s===`$`){let t=i.readExpansion(e,o,r+1,!0);if(t){o+=t.raw.length-1;continue}}if(s==="`")throw Kr("`",`command substitution (backticks) is not supported`);if(s===`"`||s===`'`)throw Kr(`$((`,`quotes in arithmetic expressions are not supported`);if(s===`(`&&a++,s!==`)`)continue;if(a){a--;continue}let c=o+1;for(;e[c]===`\\`&&e[c+1]===`
|
|
17
|
+
`;)c+=2;if(e[c]!==`)`)throw Kr(`$((`,"arithmetic expansion requires a closing `))`");return{raw:e.slice(t,c+1),arithmetic:e.slice(n+1,o)}}throw Kr(`$((`,`unterminated arithmetic expansion`)}var Xr=/^-[abcdefghknoprstuvwxzGLNORS]$/u,Zr=new Set([`=`,`==`,`!=`,`=~`,`<`,`>`,`-eq`,`-ne`,`-lt`,`-le`,`-gt`,`-ge`,`-nt`,`-ot`,`-ef`]),Qr=new Set([`end`,`&&`,`||`,`)`]),$r=/^[A-Za-z_][A-Za-z0-9_]*$/u;function ei(e,t,n,r=0){let i={line:e,i:t+2,helpers:n,token:null,depth:0,terms:0,removed:0,expansionDepth:r};try{si(i,!0);let n=ti(i);return i.token.kind!==`end`&&ai(`unexpected token \`${i.token.value??i.token.kind}\``),{raw:e.slice(t,i.i+i.removed),expression:n}}catch(e){if(e instanceof T||e.conditional)throw e;ai(e.message)}}function ti(e){let t=ni(e);for(;e.token.kind===`||`;)si(e,!0),t={kind:`or`,left:t,right:ni(e)};return t}function ni(e){let t=ri(e);for(;e.token.kind===`&&`;)si(e,!0),t={kind:`and`,left:t,right:ri(e)};return t}function ri(e){if(++e.terms>128)throw new T(`feature`,`[[ complexity`,`conditional expressions above 128 terms are not supported`);if(++e.depth>64)throw new T(`feature`,`[[ nesting`,`conditional nesting above 64 levels is not supported`);try{let t=e.token;if(t.kind===`(`){si(e,!0);let t=ti(e);return e.token.kind!==`)`&&ai("expected `)`"),si(e,!0),t}if(ii(t,`!`))return si(e,!0),{kind:`not`,expression:ri(e)};if(t.kind!==`word`&&ai(`expected an operand`),si(e),!t.quoted&&Xr.test(t.value)){let n=oi(e);return si(e,!0),{kind:`unary`,op:t.value,word:n}}if(Qr.has(e.token.kind))return{kind:`unary`,op:`-n`,word:t};let n=e.token;if((n.quoted||!Zr.has(n.value))&&ai(`conditional binary operator expected`),n.value===`=~`)throw new T(`feature`,`[[ =~`,`regular expression comparisons in [[ are not supported`);si(e);let r=oi(e);return si(e,!0),{kind:`binary`,op:n.value,left:t,right:r}}finally{e.depth--}}var ii=(e,t)=>e.kind===`word`&&!e.quoted&&e.value===t,ai=e=>{throw Object.assign(Error(`[[ ${e}`),{conditional:!0})};function oi(e){return e.token.kind!==`word`&&ai(`expected an operand`),e.token}function si(e,t=!1){if(e.token=ci(e),t)for(;e.token.kind===`newline`;)e.token=ci(e)}function ci(e){for(;e.i<e.line.length;){let t=e.line[e.i];if(t===` `||t===` `){e.i++;continue}if(t===`\\`&&e.line[e.i+1]===`
|
|
18
|
+
`){e.i+=2;continue}if(t===`#`){let t=e.line.indexOf(`
|
|
19
|
+
`,e.i);e.i=t<0?e.line.length:t;continue}if(t===`
|
|
20
|
+
`)return e.i++,{kind:`newline`};let n=e.line.slice(e.i,e.i+2);if(n===`<(`||n===`>(`)throw new T(`feature`,n,`process substitution (\`${n}\u2026\`) is not supported`);if(n===`&&`||n===`||`)return e.i+=2,{kind:n};if(`()<>;&|`.includes(t))return e.i++,{kind:t,value:t};let r=li(e);return ii(r,`]]`)?{kind:`end`}:r}ai("missing `]]`")}function li(e){let t={kind:`word`,value:``,mask:``,quoted:!1,empty:[]},n=null,r=0;for(;e.i<e.line.length;){let i=e.line[e.i];if(n&&i===n){t.value.length===r&&t.empty.push(r),t.quoted=!0,n=null,e.i++;continue}if(n===`'`){ui(t,i,`1`),e.i++;continue}if(i===`\\`){di(e,t,n);continue}if(i===`$`){if(fi(e),!n&&e.line[e.i+1]===`"`){n=`"`,r=t.value.length,e.i+=2;continue}pi(e,t,n);continue}if(i==="`"){let r=wr(e.line,e.i);ui(t,"`",n?`2`:`0`),ui(t,r.raw.slice(1),`1`),e.i+=r.raw.length;continue}if(n){ui(t,i,`2`),e.i++;continue}if(i===`'`||i===`"`){n=i,r=t.value.length,e.i++;continue}if(i===`(`&&t.mask.at(-1)===`0`&&/[?*+@!]/u.test(t.value.at(-1))&&!t.empty.includes(t.value.length))throw new T(`feature`,`[[ extglob`,`extended glob patterns in [[ are not supported`);if(/[ \t\n()<>;&|]/u.test(i))break;ui(t,i,`0`),e.i++}return n&&ai(`unterminated ${n===`'`?`single`:`double`} quote`),!t.quoted&&!/[12]/u.test(t.mask)&&(t.mask=null),t.empty.length===0&&delete t.empty,t}function ui(e,t,n,r=n!==`0`){e.value+=t,e.mask+=n.repeat(t.length),e.quoted||=r}function di(e,t,n){let r=e.line[e.i+1];if(r===`
|
|
21
|
+
`){e.i+=2;return}r!==void 0&&(!n||'$`"\\'.includes(r))?(ui(t,r,`1`),e.i+=2):(ui(t,`\\`,n?`2`:`1`),e.i++)}function fi(e){for(;e.line[e.i+1]===`\\`&&e.line[e.i+2]===`
|
|
22
|
+
`;)e.line=e.line.slice(0,e.i+1)+e.line.slice(e.i+3),e.removed+=2}function pi(e,t,n){let r=n?`2`:`0`;if(!n&&e.line[e.i+1]===`'`){let n=e.helpers.decodeAnsiC(e.line,e.i+2);n.text===``&&t.empty.push(t.value.length),ui(t,n.text,`1`),e.i=n.end;return}let i=e.helpers.readExpansion(e.line,e.i,e.expansionDepth+1,!!n);if(!i){ui(t,`$`,`1`),e.i++;return}if(i.command!==void 0||i.parameter!==void 0||i.arithmetic!==void 0)ui(t,`$`,r),ui(t,i.raw.slice(1),`1`,!1);else{let n=e.line[e.i+i.raw.length];ui(t,$r.test(i.name)&&(n===`'`||n===`"`)?"${"+i.name+`}`:i.raw,r)}e.i+=i.raw.length}var mi=/^[A-Za-z_][A-Za-z0-9_]*$/u,hi=/[A-Za-z0-9_]/u,gi=/[?#@*$!0-9-]/u;function z(e,t){for(;e[t]===`\\`&&e[t+1]===`
|
|
23
|
+
`;)t+=2;return t}function _i(e,t,n=null){let r=r=>r<e.length&&(n===null||n[r]===n[t]);if(!r(t+1))return null;let i=e[t+1];if(gi.test(i))return{name:i,raw:e.slice(t,t+2)};if(!/[A-Za-z_]/u.test(i))return null;let a=t+2;for(;r(a)&&hi.test(e[a]);)a++;return{name:e.slice(t+1,a),raw:e.slice(t,a)}}function vi(e,t,n=0,r=!1,i={}){let a=(e,t,n,r)=>vi(e,t,n,r,i),o=z(e,t+1),s=e[o];if(s===`(`){let r=z(e,o+1);if(e[r]===`(`)return Yr(e,t,r,n,{readExpansion:a});let s=Dr(e,t,o,n,{readExpansion:a,decodeAnsiC:Si,readHeredocBodies:ji,readOperator:Ci,readConditional:ei,skipContinuations:z});return i.validateSubstitution?.(s.command),s}if(s===`{`)return Jr(e,t,o,n,r,{readExpansion:a,decodeAnsiC:Si});if(s===`[`)throw new T(`feature`,`$[`,"arithmetic expansion (`$[…]`) is not supported");return _i(e,t)}function yi(e,t,n={}){let r=Dr(e,t,z(e,t+1),0,{readExpansion:(e,t,r,i)=>vi(e,t,r,i,n),decodeAnsiC:Si,readHeredocBodies:ji,readOperator:Ci,readConditional:ei,skipContinuations:z});return n.validateSubstitution?.(r.command),r}var bi={a:`\x07`,b:`\b`,e:`\x1B`,E:`\x1B`,f:`\f`,n:`
|
|
24
|
+
`,r:`\r`,t:` `,v:`\v`,"\\":`\\`,"'":`'`,'"':`"`,"?":`?`};function xi(e,t){for(let n=t;n<e.length;n++)if(e[n]===`\\`)n++;else if(e[n]===`'`)return n;throw Error(`unterminated single quote`)}function Si(e,t){let n=xi(e,t),r=[],i=e=>{for(let t of p(e))r.push(t)};for(let a=t;a<n;a++){if(e[a]!==`\\`){let t=String.fromCodePoint(e.codePointAt(a));i(t),a+=t.length-1;continue}let t=e[a+1];if(t in bi){i(bi[t]),a++;continue}if(t===`x`&&e[a+2]===`{`)throw new T(`feature`,`ANSI-C hexadecimal escape`,`braced hexadecimal escapes in ANSI-C quotes are not supported`);let o=/^(?:[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{1,8})/u.exec(e.slice(a+1,n));if(o){let e=o[0],t=/^[0-7]/u.test(e),n=t?parseInt(e,8):parseInt(e.slice(1),16);if(t||e[0]===`x`)r.push(n&255);else{if(!Ir(n))throw new T(`feature`,`ANSI-C Unicode escape`,`ANSI-C escapes outside Unicode scalar values are not supported`);i(String.fromCodePoint(n))}a+=e.length;continue}if(t===`c`&&a+2<n){let t=e.codePointAt(a+2);if(t>127)throw new T(`feature`,`ANSI-C control escape`,`ANSI-C control escapes require an ASCII character`);r.push(t===63?127:t&31),a+=2,t===92&&e[a+1]===`\\`&&a++;continue}i(`\\`)}let a=r.indexOf(0);return{text:D(Uint8Array.from(a===-1?r:r.slice(0,a))),end:n+1}}function Ci(e,t,n){let r=e[t];if(n&&/[0-9]/u.test(r)){let n=``,r=t;for(;/[0-9]/u.test(e[r]??``);)n+=e[r],r=z(e,r+1);return e[r]!==`>`&&e[r]!==`<`||e[z(e,r+1)]===`(`?null:ki(e,r,Number(n))}let i=z(e,t+1),a=e[i];switch(r){case`|`:return a===`|`?Di(`or`,i+1):a===`&`?Di(`pipe_err`,i+1):Di(`pipe`,t+1);case`&`:if(a===`&`)return Di(`and`,i+1);if(a===`>`){let t=z(e,i+1),n=e[t]===`>`;return Oi(1,n?`bothAppend`:`both`,(n?t:i)+1)}return Di(`amp`,t+1);case`;`:return a===`;`?Di(`dsemi`,i+1):Di(`semi`,t+1);case`(`:return Di(`paren_open`,t+1);case`)`:return Di(`paren_close`,t+1);case`<`:case`>`:return ki(e,t,r===`<`?0:1);default:return null}}var wi={semi:`;`,dsemi:`;;`,pipe:`|`,pipe_err:`|&`,and:`&&`,or:`||`,amp:`&`,paren_open:`(`,paren_close:`)`},Ti={write:`>`,append:`>>`,read:`<`,heredoc:`<<`,herestring:`<<<`,both:`&>`,bothAppend:`&>>`,dup:`>&`,close:`>&-`};function Ei(e){if(e.kind===`word`)return e.quoted?`"${e.value}"`:e.value;if(e.kind===`redir`){let t=Ti[e.op];if(e.op===`both`||e.op===`bothAppend`)return t;let n=e.fd===(e.op===`read`||e.op===`heredoc`||e.op===`herestring`?0:1)?``:String(e.fd);return e.op===`dup`?`${n}${e.fd===0?`<&`:`>&`}${e.toFd}`:e.op===`close`?`${n}${e.fd===0?`<&-`:`>&-`}`:n+t}return wi[e.kind]}var Di=(e,t)=>({token:{kind:e},end:t}),Oi=(e,t,n,r)=>({token:{kind:`redir`,fd:e,op:t,...r},end:n});function ki(e,t,n){let r=e[t],i=z(e,t+1),a=e[i];if(a===`&`)return Ai(e,i,n,r===`<`?`<&`:`${n===1&&r===`>`?``:n}>&`);if(r===`<`){if(a===`>`)throw new T(`feature`,`<>`,`read/write file redirects are not supported`);if(a===`<`){let t=z(e,i+1);if(e[t]===`<`)return Oi(n,`herestring`,t+1);let r=e[t]===`-`;return Oi(n,`heredoc`,(r?t:i)+1,{strip:r,delim:null,body:null})}return Oi(n,`read`,t+1)}return a===`>`?Oi(n,`append`,i+1):Oi(n,`write`,(a===`|`?i:t)+1)}function Ai(e,t,n,r){let i=z(e,t+1),a=e[i],o=e[z(e,i+1)],s=o===void 0||/[ \t\n|&>;()<]/u.test(o);if(/[0-9]/u.test(a??``)&&s)return Oi(n,`dup`,i+1,{toFd:Number(a)});if(a===`-`&&s)return Oi(n,`close`,i+1);throw new T(`feature`,`redirect target`,`redirect \`${r}\` requires a file descriptor number (or \`-\`) followed by a token boundary`)}function ji(e,t,n){let r=t+1;for(let t of n){let n=[],i=!1;for(;r<e.length;){let a,o=``;for(;;){a=e.indexOf(`
|
|
25
|
+
`,r);let n=a===-1?e.length:a;if(o+=e.slice(r,n),r=n+1,t.quotedDelim||a===-1||!Mi(o))break;o=o.slice(0,-1)}if(a===-1&&o===``)break;if(t.strip&&(o=o.replace(/^\t+/u,``)),o===t.delim){i=!0;break}if(n.push(o),a===-1)break}t.body=n.length===0?``:n.join(`
|
|
26
26
|
`)+`
|
|
27
|
-
`,
|
|
28
|
-
`)}return r-1}function
|
|
29
|
-
`){if(
|
|
30
|
-
`){e.i+=2;return}t!==void 0&&(!(e.quote||e.fragmentQuoted)||'$`"\\'.includes(t)||e.fragment&&t
|
|
31
|
-
`;)e.i++}function Bb(e){_r(e),e.heredocs.length>0&&(e.i=Cr(e.line,e.i,e.heredocs),e.heredocs=[]);let t=e.tokens.at(-1);t&&!Fb.has(t.kind)?e.tokens.push({kind:"semi",newline:!0}):(t?.kind==="semi"||t?.kind==="amp")&&(t.lineEnd=!0),e.i++}function Jo(e,t,n){let r={aliases:new Set(t),hasCommand:n};return Pt(e,r),r.aliases}var Lr=(e,t)=>new Set([...e,...t]);function Pt(e,t){let n=null;for(let r of e){let o=r.gate==="and"||r.gate==="or";if(o&&n!==null&&r.gate==="and"!=(n===0))continue;let i=o&&n===null?new Set(t.aliases):null,s=r.stages.length===1?r.stages[0]:null;n=s&&!s.isolate?jb(s,t):null,r.negate&&n!==null&&(n=+(n===0)),i&&(t.aliases=Lr(i,t.aliases),n=null)}return n}function jb(e,t){if(e.group)return Pt(e.group,t);if(e.conditional)return Wb(e.conditional,t);if(e.loop){if(e.loop.condition&&Pt(e.loop.condition,t),e.loop.words===void 0||e.loop.words.length>0){let o=new Set(t.aliases);Pt(e.loop.body,t),t.aliases=Lr(o,t.aliases)}return null}let n=e.words[0]?.value;if(e.redirs.length===0&&(n==="true"||n==="false"))return+(n==="false");if(!["alias","unalias"].includes(n)||t.hasCommand(n))return null;let r=e.words.slice(1).map(o=>o.value);for(;r[0]?.startsWith("-")&&r[0]!=="-";){let o=r.shift();if(o==="--")break;if(!(n==="alias"?/^-p+$/u:/^-a+$/u).test(o))return null;if(n==="unalias")return t.aliases.clear(),null}for(let o of r)if(n==="unalias")t.aliases.delete(o);else{let i=o.indexOf("="),s=o.slice(0,i);i>0&&!/[ \t\n/$`=;'"\\|&()<>]/u.test(s)&&t.aliases.add(s)}return null}function Wb(e,t){let n=new Set;for(let r of e.branches){let o=Pt(r.condition,t);if(o===0)return Pt(r.body,t),t.aliases=Lr(n,t.aliases),null;if(o===null){let i={...t,aliases:new Set(t.aliases)};Pt(r.body,i),n=Lr(n,i.aliases)}}return e.otherwise&&Pt(e.otherwise,t),t.aliases=Lr(n,t.aliases),null}var ut=class extends Error{constructor(t){super(t.message),this.finalError=t}},zt=e=>new ut(new Error(e));function Ie(e,t=e.i){for(;t>=e.raw.length&&!e.done;){let n=e.read();e.raw=n.tokens,e.done=n.done}return e.raw[t]}function Qf(e,t,n){let r=t.validation??new Map;return{validateSubstitution(o){r.has(o)||(ga(o,!0,e,{validation:r,syntaxOnly:!0},n),r.set(o,!0))}}}function ga(e,t,n,r,o){try{return o(Ko(e,Qf(n,r,o)),t,n,r)}catch(i){throw i instanceof ut?i.finalError:i}}function qb(e,t,n,r){let o=Gf(e,Qf(n,{},r)),i=new Set,s=!1;return()=>{let a={aliases:i,aliasUsed:s,read:o.read,unit:!0},u=r([],t,n,a);return s=a.aliasUsed,i=Jo(u,i,n),o.reset(),{steps:u,done:a.done}}}function*ed(e,t,n,r){let o=qb(e,t,n,r);for(;;){let i;try{i=o()}catch(s){throw s instanceof ut?s.finalError:s}if(i.steps.length>0&&(yield i.steps),i.done)return}}var Hb=["elif","else","fi"];function nd(e,t){let n=[],r;do{lt(e);let i=t(e,"then");lt(e);let s=t(e,Hb);n.push({condition:i,body:s}),r=e.raw[e.i-1].value}while(r==="elif");let o=null;return r==="else"&&(lt(e),o=t(e,"fi")),{branches:n,otherwise:o}}function rd(e,t){let{raw:n}=e,r=e.loop;e.loop="for";let o=Ie(e);if(o?.kind==="paren_open")throw new x("feature","for ((","arithmetic `for ((\u2026))` loops are not supported; use `for NAME in WORD...`");if(o===void 0||o.kind!=="word")throw new Error("for: expected a variable name");let i=o.value;if(o.quoted||!un.test(i))throw new Error(`for: \`${i}\` is not a valid variable name`);e.i++;let s=Ie(e);s?.kind==="semi"&&e.i++;let a=Ie(e);if(s?.kind==="semi"&&!s.newline&&zn(a,"in"))throw new Error("for: unexpected `in` after `;`");if(!zn(a,"in")){if(zn(a,"do")||a===void 0){let d=new x("feature","for NAME; do",`\`for ${i}; do \u2026\` iterates the positional parameters, which this shell does not have; write \`for ${i} in WORD...\``);throw a===void 0?new ut(d):d}throw new Error(`for: expected \`in\` after \`${i}\``)}e.i++;let u=[],l=!1;for(let d;(d=Ie(e))&&d.kind!=="semi";e.i++){if(d.kind!=="word")throw new Error(`for: unexpected \`${Tr(d)}\` in word list`);zn(d,"do")&&(l=!0),u.push(Oe(d))}n[e.i]?.kind==="semi"&&e.i++;let c=Ie(e);if(!zn(c,"do"))throw c===void 0?zt(l?"for: expected `;` or newline before `do`":"for: missing `do`"):l?new Error("for: expected `;` or newline before `do`"):new Error(`for: expected \`do\`, got \`${Tr(c)}\``);e.i++,lt(e);let f={name:i,words:u,body:t(e,"done")};return e.loop=r,f}function od(e,t,n){let r=e.loop;e.loop=t,lt(e);let o=n(e,"do");lt(e);let i={until:t==="until",condition:o,body:n(e,"done")};return e.loop=r,i}function id(e,t,n){if(t.quoted||!un.test(t.value))throw new x("feature","function",`shell functions named \`${t.value}\` are not supported`);e.i+=2,lt(e);let r=Ie(e);if(!zn(r,"{"))throw new x("feature","function",`\`${t.value}()\` needs a \`{ \u2026 }\` body`);e.i++,lt(e);let o=n(e,"}");if(!ln(o))throw new x("feature","function",`\`${t.value}()\` is supported only while its body reads and writes no variable`);return{name:t.value,body:o}}var ln=e=>e.every(t=>t.stages.every(Gb));function Gb(e){return e.assigns.length>0||e.define?!1:e.test?Qo(e.test)&&e.redirs.every(td):e.group?ln(e.group):e.conditional?e.conditional.branches.every(t=>ln(t.condition)&&ln(t.body))&&ln(e.conditional.otherwise??[]):e.loop?(e.loop.words??[]).every(Bn)&&ln(e.loop.condition??[])&&ln(e.loop.body):e.words.every(Bn)&&e.redirs.every(td)}function Qo(e){return e.kind==="and"||e.kind==="or"?Qo(e.left)&&Qo(e.right):e.kind==="not"?Qo(e.expression):e.kind==="unary"?Bn(e.word):Bn(e.left)&&Bn(e.right)}var td=e=>e.op==="text"?!e.expand||!/[$`]/u.test(e.body):e.word===void 0||Bn(e.word);function Bn(e){for(let t=0;t<e.value.length;t++){let n=e.value[t];if((n==="$"||n==="`")&&(e.mask===null||e.mask[t]!=="1"))return!1}return!0}function lt(e){for(let t;(t=Ie(e))?.kind==="semi"&&t.newline;)e.i++}function zn(e,t){return e!==void 0&&e.kind==="word"&&!e.quoted&&e.value===t}var fd=(e,t=!1,n=()=>!1,r={})=>ga(e,t,n,r,pd),dd=(e,t=!1,n=()=>!1)=>ed(e,t,n,pd);function pd(e,t,n,r){let o={raw:e,i:0,done:!r.read,read:r.read,unitOnly:r.unit,emptyStage:!1,writable:t,aliases:r.aliases??new Set,aliasUsed:r.aliasUsed??!1,hasCommand:n,syntaxOnly:r.syntaxOnly};try{let i=Ie(o)?cn(o,null):[];if(o.emptyStage)throw new Error("empty pipeline stage");return r.aliasUsed=o.aliasUsed,r.done=o.done,i}catch(i){if(o.aliasUsed&&!(i instanceof x)){let s=new x("feature","alias expansion","alias expansion is not supported; input using aliases cannot be parsed");throw i instanceof ut?new ut(s):s}throw i}}function ya(e,t,n){t.stages.push(n),!ei(n)&&!xa(n)&&(e.emptyStage=!0)}var xa=e=>e.words.length>0||e.assigns.length>0||e.redirs.length>0,ei=e=>e.group||e.loop||e.conditional||e.test||e.define,sd=()=>({words:[],assigns:[],redirs:[]}),wa=e=>({gate:e,stages:[],negate:!1,bang:!1}),ad=(e,t)=>e.bang&&e.stages.length===0&&jn(t)&&t.redirs.length===0,jn=e=>!ei(e)&&e.words.length===0&&e.assigns.length===0,Xb=new Set(["for","while","until","do","done","if","{","}","!"]),Zb=new Set(["then","else","elif","fi","esac","in"]),ud=new Map([["case","`case` statements are not supported; gate on exit status with `&&` / `||` instead"],["select","`select` loops are not supported"],["function","shell functions are not supported"],["time","`time` is not supported"],["coproc","`coproc` is not supported"]]),Yb=new Set(["alias","declare","typeset","local","readonly","export","eval","let"]),Vb=new Set(["pipe","pipe_err","and","or","semi","amp"]),ld=new Set(["semi","amp"]);function cn(e,t){let{raw:n}=e,r=[wa("first")];t===null&&(e.unit=r[0]);let o=0,i=sd();for(let s;s=Ie(e);){if(s.kind==="condition"){if(!jn(i))throw new Error("unexpected `[[`");i.test=s.expression,e.i++;continue}if(s.kind==="paren_close"){if(t!==")")throw new Error("unexpected `)`");return e.i++,cd(e,r,i,t)}if(s.kind==="paren_open"){Kb(e,i);continue}if(Vb.has(s.kind)){if(s.kind==="pipe_err"&&(xa(i)||ei(i))&&i.redirs.push({fd:2,op:"dup",toFd:1}),s.kind==="semi"&&ad(r.at(-1),i)||ya(e,r.at(-1),i),s.kind==="amp"&&(r.at(-1).background=!0),i=sd(),s.kind==="and"||s.kind==="or"?r.push(wa(s.kind)):ld.has(s.kind)&&r.push(wa("seq")),t===null&&(s.newline||s.lineEnd)){if(e.unitOnly)return e.i++,r.pop(),r;e.aliases=Jo(r.slice(o,-1),e.aliases,e.hasCommand),o=r.length-1,e.unit=r.at(-1)}e.i++;continue}if(s.kind==="dsemi")throw new Error("syntax error near unexpected token `;;`");if(s.kind==="redir"){if(s.warning&&(e.unit.warnings=(e.unit.warnings??"")+s.warning),i.define)throw new x("feature","function",`\`${i.define.name}()\` with a redirect of its own is not supported`);let u=n2(e);u&&i.redirs.push(u);continue}if(i.group||i.define)throw new Error(`unexpected token after \`${i.isolate?")":"}"}\``);if(i.loop)throw new Error("unexpected token after `done`");if(i.conditional)throw new Error("unexpected token after `fi`");if(i.test)throw new Error("unexpected token after `]]`");if(!s.quoted&&i.words.length===0&&e.aliases.has(s.value)&&(e.aliasUsed=!0),!s.quoted&&jn(i)){if(Array.isArray(t)?t.includes(s.value):s.value===t)return e.i++,cd(e,r,i,t);if(Jb(s,e,r.at(-1),i))continue}let a=i.words.length===0?Or(s):null;a===null?i.words.push(Oe(s)):i.assigns.push({name:a.name,word:Oe(s,a.end)}),e.i++}if(t===")")throw zt("unmatched `(`");if(t==="}")throw zt("unmatched `{`");if(t==="do"||t==="done")throw zt(`${e.loop}: missing \`${t}\``);if(t)throw zt(`if: missing \`${t==="then"?"then":"fi"}\``);if(!e.emptyStage&&!ei(i)&&!xa(i)&&["and","or","pipe","pipe_err"].includes(n.at(-1)?.kind))throw zt("empty pipeline stage");return ld.has(n.at(-1)?.kind)?r.pop():ad(r.at(-1),i)||ya(e,r.at(-1),i),r}function Kb(e,t){let{raw:n,i:r}=e,o=Ie(e,r+1),i=n[r-1],s=t.words[0],a=t.words.at(-1);if(!(n[r-2]?.kind==="redir"&&!["dup","close"].includes(n[r-2].op))&&(t.words.length===0&&t.assigns.length>0||a&&a.value===i?.value&&(t.words.length===1||s.mask===null&&Yb.has(s.value)))&&n[r].wordAdjacent&&i?.kind==="word"&&!i.quoted&&/^[A-Za-z_][A-Za-z0-9_]*\+?=$/u.test(i.value))throw new x("feature","array assignment","shell array assignments are not supported");if(o?.kind==="paren_open"&&o.adjacent&&jn(t))throw new x("feature","((","arithmetic evaluation (`((\u2026))`) is not supported");if(t.words.length===1&&t.assigns.length===0&&t.redirs.length===0&&o?.kind==="paren_close"){t.define=id(e,t.words.pop(),cn);return}if(!jn(t))throw new Error("unexpected `(`");e.i++,t.group=cn(e,")"),t.isolate=!0}function Jb(e,t,n,r){let o=e.value;if(ud.has(o))throw new x("feature",o,ud.get(o));if(Zb.has(o))throw new Error(`syntax error near unexpected token \`${o}\``);if(!Xb.has(o))return!1;if(t.i++,o==="!"){if(n.stages.length>0||r.redirs.length>0)throw new Error("syntax error near unexpected token `!`");return n.negate=!n.negate,n.bang=!0,!0}if(o==="{")return lt(t),r.group=cn(t,"}"),r.isolate=!1,!0;if(o==="}")throw new Error("syntax error near unexpected token `}`");if(o==="done")throw new Error("unexpected `done`");if(o==="do")throw new Error("unexpected `do`");return o==="if"?r.conditional=nd(t,cn):r.loop=o==="for"?rd(t,cn):od(t,o,cn),!0}var Qb={")":"empty subshell `()`","}":"empty group `{ }`"},e2=(e,t)=>t==="do"?`${e.loop}: empty condition`:t==="done"?`${e.loop}: empty loop body`:t==="then"?"if: empty condition":"if: empty branch body";function cd(e,t,n,r){let o=t.at(-1),i=jn(n)&&n.redirs.length===0&&o.stages.length===0;if(i&&t.length===1)throw new Error(Qb[r]??e2(e,r));if(i&&o.bang)throw new Error("syntax error near unexpected token after `!`");return i&&o.gate==="seq"?t.pop():ya(e,o,n),t}var t2=new Set(["/dev/null","/dev/stdout","/dev/stderr"]);function n2(e){let t=e.raw[e.i++],n=Tr(t);if(e.syntaxOnly){if(!["dup","close"].includes(t.op)){let a=Ie(e,e.i++);if(!a||a.kind!=="word")throw new Error(`redirect \`${n}\` requires a target`)}return t}if(t.fd>2)throw new x("feature",n,`only file descriptors 0, 1 and 2 are supported (got \`${n}\`)`);if(t.op==="dup"){if(t.fd===0&&t.toFd===0)return null;if(t.fd===0||t.toFd===0)throw new x("feature",n,`duplicating file descriptor 0 (\`${n}\`) is not supported`);return{fd:t.fd,op:"dup",toFd:t.toFd}}if(t.op==="close"){if(t.fd===0)throw new x("feature","0<&-","closing standard input is not supported");return{fd:t.fd,op:"close"}}let r=Ie(e,e.i++);if(!r||r.kind!=="word")throw new Error(`redirect \`${n}\` requires a target`);if(t.op==="heredoc"||t.op==="herestring"||t.op==="read"){if(t.fd!==0)throw new x("feature",n,`reading into file descriptor ${t.fd} (\`${n}\`) is not supported`);return t.op==="heredoc"?{fd:0,op:"text",body:t.body??"",expand:!t.quotedDelim}:{fd:0,op:t.op,word:Oe(r)}}if(t.fd===0)throw new x("feature",n,`writing to file descriptor 0 (\`${n}\`) is not supported`);let o=t.op==="both"||t.op==="bothAppend",i=t.op==="append"||t.op==="bothAppend",s=Oe(r);if(r2(s))return{fd:t.fd,op:"to",word:s,both:o,append:i,label:n};if(!e.writable&&!t2.has(s.value))throw ba(n,s.value,e.writable);return{fd:t.fd,op:"to",target:s.value,both:o,append:i,label:n}}function r2(e){for(let t=0;t<e.value.length;t++){let n=e.value[t],r=e.mask===null?"0":e.mask[t];if((n==="$"||n==="`")&&r!=="1"||r==="0"&&(/[~*?[{]/u.test(n)||(n==="<"||n===">")&&e.value[t+1]==="("))return!0}return!1}function ba(e,t,n){let r=n?"only `/tmp/` is writable":"the filesystem is read-only";return new x("feature",e,`\`${e}\` cannot write to \`${t}\`: ${r}`)}var o2=/^[a-zA-Z0-9][\w.+-]*$/u,ka=["run","pipe","hidden"],va=["stdout","stderr","exitCode"];function md(e,t){let n={__proto__:null},r=[],o=[];for(let[i,s]of i2(e)){let{run:a,pipe:u,hidden:l}=s2(i,s,t);l&&r.includes(i)||(n[i]=(c,f,d)=>a2(i,a,c,f,d),!l&&(r.push(i),u&&o.push(i)))}return{handlers:n,names:r,pipeNames:o}}function i2(e){if(e==null)return[];if(Array.isArray(e))throw new TypeError("createTerminal: opts.commands must be an object or a Map (got an array)");if(typeof e!="object")throw new TypeError(`createTerminal: opts.commands must be an object or a Map (got ${typeof e})`);if(typeof e.entries=="function")return[...e.entries()];let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new TypeError("createTerminal: opts.commands must be a plain object or a Map (own enumerable properties only)");return Object.entries(e)}function s2(e,t,n){if(typeof e!="string")throw new TypeError(`createTerminal: command names must be strings (got ${typeof e})`);if(!o2.test(e))throw new Error(`createTerminal: invalid command name: ${JSON.stringify(e)}`);if(n(e))throw new Error(`createTerminal: ${e}: cannot redefine a built-in command`);if(typeof t=="function"){for(let o of Object.keys(t))if(ka.includes(o))throw new Error(`createTerminal: ${e}: \`${o}\` belongs on a { run } descriptor, not on the handler function`);return{run:t,pipe:!1,hidden:!1}}if(t===null||typeof t!="object")throw new TypeError(`createTerminal: ${e}: expected a function or a { run } object`);let r=t.run;if(typeof r!="function")throw new TypeError(`createTerminal: ${e}: \`run\` must be a function`);for(let o of Object.keys(t))if(!ka.includes(o))throw new Error(`createTerminal: ${e}: unknown option \`${o}\` (known: ${ka.join(", ")})`);return{run:r,pipe:!!t.pipe,hidden:!!t.hidden}}function a2(e,t,n,r,o){o.io?.bufferOutput(),z(o);let i={cwd:o.cwd,fs:o.fs,mount:o.mount,home:o.home,get notes(){return o.notes},command:e,stdinFile:o.stdinFile,stdinOrigin:o.stdinOrigin},s=!0,a=()=>{s=!1},u={name:e,args:r,stdin:n,cwd:i.cwd,fs:u2(i),readInputs:(c=[])=>{if(typeof c=="string")throw new TypeError(`readInputs: expected an array of paths, got a string: ${c}`);return ae(e,[...c],n,i)},run:c=>{if(!s)throw new Error("run: the command this belongs to has finished, and its turn with it");return o.runLine(c)}},l=t(u);return typeof l?.then!="function"?(a(),hd(l)):l.then(hd).finally(a)}function u2(e){let t=n=>E(e.cwd,n,e.fs).path;return{resolve:n=>j(e.cwd,n),isFile:n=>e.fs.isFile(t(n)),isDir:n=>e.fs.isDir(t(n)),isLink:n=>e.fs.isLink?.(E(e.cwd,n,e.fs,{follow:!1}).path)===!0,readLink:n=>e.fs.readLink?.(E(e.cwd,n,e.fs,{follow:!1}).path),readFile:n=>e.fs.readFile(t(n)),isBytes:n=>e.fs.isBytes?.(t(n))===!0,readBytes:n=>fe(e.fs,t(n))?.slice(),listDir:n=>{let{path:r,error:o}=D(e,e.command,n);if(!e.fs.isDir(r))throw new Error(`${n}: ${o??"Not a directory"}`);let{dirs:i,files:s,links:a=[]}=e.fs.listDir(r);return{dirs:[...i],files:[...s],links:[...a]}},walkFiles:n=>[...e.fs.walkFiles(t(n))]}}function hd(e){if(e==null)return R();if(typeof e=="string")return R(e);if(typeof e!="object")throw new TypeError(`invalid result: expected a string or an object (got ${typeof e})`);if(Array.isArray(e))throw new TypeError("invalid result: expected a string or an object, got an array (join the lines first)");let t=Object.keys(e);for(let i of t)if(!va.includes(i))throw new TypeError(`invalid result: unknown field \`${i}\` (known: ${va.join(", ")})`);if(t.length===0)throw new TypeError(`invalid result: an object with none of ${va.join(", ")} \u2014 return a string for plain output`);let{stdout:n="",stderr:r="",exitCode:o=0}=e;if(typeof n!="string")throw new TypeError(`invalid result: stdout must be a string (got ${typeof n})`);if(typeof r!="string")throw new TypeError(`invalid result: stderr must be a string (got ${typeof r})`);if(!Number.isInteger(o)||o<0)throw new TypeError(`invalid result: exitCode must be a non-negative integer (got ${o})`);return{stdout:n,stderr:r===""||r.endsWith(`
|
|
27
|
+
`,i||(t.warning=`warning: here-document delimited by end-of-file (wanted \`${t.delim}')
|
|
28
|
+
`)}return r-1}function Mi(e){let t=0;for(;t<e.length&&e[e.length-1-t]===`\\`;)t++;return t%2==1}var Ni=new Set([`semi`,`amp`,`and`,`or`,`pipe`,`pipe_err`,`paren_open`]),Pi=e=>e===` `||e===` `;function Fi(e,t={}){return Li(Ri(e,t),!1).tokens}function Ii(e,t={}){let n=Ri(e,t);return{read:()=>Li(n,!0),reset:()=>{n.tokens=[]}}}function Li(e,t){for(;e.i<e.line.length;){let n=e.line[e.i];if(e.quote&&n===e.quote){Wi(e),e.i++;continue}if(e.quote===`'`){B(e,n,`1`),e.i++;continue}if(n===`\\`){qi(e);continue}if(n===`$`){Yi(e);continue}if(n==="`"){Zi(e);continue}if(e.quote){B(e,n,`2`),e.i++;continue}if(n===`'`||n===`"`){Ui(e,n),e.i++;continue}let r=e.cur!==``||e.empty.length>0;if(!r&&e.line.startsWith(`[[`,e.i)&&/[ \t\n()<>;&|]|^$/u.test(e.line[e.i+2]??``)&&Hi(e.tokens)){let t=ei(e.line,e.i,{readExpansion:e.readExpansion,decodeAnsiC:Si});Ki(e,{kind:`condition`,expression:t.expression}),e.i+=t.raw.length;continue}if(n===`#`&&!r){Qi(e);continue}if(n===`
|
|
29
|
+
`){if($i(e),t)return{tokens:e.tokens,done:e.i>=e.line.length};continue}if(Pi(n)){Gi(e),e.i++;continue}if(n===`(`&&e.mask.at(-1)===`0`&&/[?*+@!]/u.test(e.cur.at(-1))&&!e.empty.includes(e.cur.length))throw new T(`feature`,`extglob`,`extended glob patterns are not supported`);if((n===`<`||n===`>`)&&e.line[z(e.line,e.i+1)]===`(`){Xi(e);continue}let i=Ci(e.line,e.i,!r);if(i?.token.kind===`paren_open`&&(i.token.wordAdjacent=r),i){Gi(e),Ki(e,i.token),e.i=i.end;continue}B(e,n,`0`),e.i++}if(e.quote)throw Error(`unterminated ${e.quote===`'`?`single`:`double`} quote`);return Gi(e),e.heredocs.length>0&&ji(e.line,e.line.length,e.heredocs),{tokens:e.tokens,done:!0}}function Ri(e,t={}){return{line:e,i:0,tokens:[],cur:``,mask:``,empty:[],quoted:!1,quoteStart:0,quote:null,heredocs:[],lastParenAt:-2,readExpansion:(e,n,r=0,i=!1)=>vi(e,n,r,i,t),readProcess:(e,n)=>yi(e,n,t)}}function zi(e,t=!1){let n={...Ri(e),fragment:!0,fragmentQuoted:t};for(;n.i<n.line.length;){let e=n.line[n.i];if(n.quote&&e===n.quote){Wi(n),n.i++;continue}if(n.quote===`'`){B(n,e,`1`),n.i++;continue}if(e===`\\`){qi(n);continue}if(e===`$`){Yi(n);continue}if(e==="`"){Zi(n);continue}if(n.quote){B(n,e,`2`),n.i++;continue}if(e===`"`||e===`'`&&!t){Ui(n,e),n.i++;continue}if(!t&&(e===`<`||e===`>`)&&n.line[z(n.line,n.i+1)]===`(`)throw new T(`feature`,`${e}(`,`process substitution in parameter operands is not supported`);B(n,e,t?`2`:`0`),n.i++}if(n.quote)throw new T(`feature`,"${",`unterminated quote in parameter operand`);return Gi(n),n.tokens[0]??{value:``,mask:t?``:null}}var Bi=new Set([`semi`,`and`,`or`,`pipe`,`pipe_err`,`amp`,`paren_open`]),Vi=new Set([`!`,`{`,`if`,`then`,`else`,`elif`,`while`,`until`,`do`]);function Hi(e){let t=!0,n=null,r=!1;for(let i of e){let e=Bi.has(i.kind)||i.kind===`paren_close`&&n?.kind===`paren_open`;if(n=i,e){t=!0,r=!1;continue}if(i.kind===`redir`){t=!1,r=![`dup`,`close`].includes(i.op);continue}if(r){r=!1;continue}(!t||i.kind!==`word`||i.quoted||!Vi.has(i.value))&&(t=!1)}return t&&!r}function Ui(e,t){e.quoteStart=e.cur.length,e.quote=t}function Wi(e){e.cur.length===e.quoteStart&&e.empty.push(e.cur.length),e.quote=null}function B(e,t,n,r=n!==`0`){e.cur+=t,e.mask+=n.repeat(t.length),e.quoted||=r}function Gi(e){if(e.cur!==``||e.empty.length>0){let t=e.empty.length>0||e.quoted,n={kind:`word`,value:e.cur,mask:/[12]/u.test(e.mask)||t?e.mask:null,quoted:t,...e.empty.length?{empty:e.empty}:{}};e.tokens.push(n);let r=e.heredocs.find(e=>e.delim===null);r&&(r.delim=n.value,r.quotedDelim=t)}e.cur=``,e.mask=``,e.empty=[],e.quoted=!1}function Ki(e,t){t.kind===`paren_open`&&(t.adjacent=z(e.line,e.lastParenAt+1)===e.i,e.lastParenAt=e.i),t.kind===`redir`&&t.op===`heredoc`&&e.heredocs.push(t),e.tokens.push(t)}function qi(e){let t=e.line[e.i+1];if(t===`
|
|
30
|
+
`){e.i+=2;return}t!==void 0&&(!(e.quote||e.fragmentQuoted)||'$`"\\'.includes(t)||e.fragment&&t===`}`)?(B(e,t,`1`),e.i+=2):(B(e,`\\`,e.quote||e.fragmentQuoted?`2`:`1`),e.i++)}function Ji(e,t){let n=z(e.line,t);n!==t&&(e.line=e.line.slice(0,t)+e.line.slice(n))}function Yi(e){Ji(e,e.i+1);let{line:t}=e,n=e.quote===`"`||e.fragmentQuoted?`2`:`0`,r=t[e.i+1];if((n===`0`||e.fragmentQuoted&&!e.quote)&&r===`'`){let n=Si(t,e.i+2);if(e.fragmentQuoted&&/[$`"\\]/u.test(n.text))throw new T(`feature`,"${",`active characters in ANSI-C quoted parameter operands are not supported`);n.text===``&&e.empty.push(e.cur.length),B(e,n.text,`1`),e.i=n.end;return}if((n===`0`||e.fragmentQuoted&&!e.quote)&&r===`"`){Ui(e,`"`),e.i+=2;return}let i=e.readExpansion(t,e.i,0,n===`2`);if(!i){B(e,`$`,`1`),e.i++;return}if(i.command!==void 0||i.parameter!==void 0||i.arithmetic!==void 0){B(e,`$`,n),B(e,i.raw.slice(1),`1`,!1),e.i+=i.raw.length;return}let a=t[e.i+i.raw.length];B(e,mi.test(i.name)&&(a===`"`||a===`'`)?"${"+i.name+`}`:i.raw,n),e.i+=i.raw.length}function Xi(e){Ji(e,e.i+1);let{raw:t}=e.readProcess(e.line,e.i);B(e,e.line[e.i],`0`),B(e,t.slice(1),`1`,!1),e.i+=t.length}function Zi(e){let t=e.quote===`"`||e.fragmentQuoted?`2`:`0`,{raw:n}=wr(e.line,e.i);B(e,"`",t),B(e,n.slice(1),`1`,!1),e.i+=n.length}function Qi(e){for(;e.i<e.line.length&&e.line[e.i]!==`
|
|
31
|
+
`;)e.i++}function $i(e){Gi(e),e.heredocs.length>0&&(e.i=ji(e.line,e.i,e.heredocs),e.heredocs=[]);let t=e.tokens.at(-1);t&&!Ni.has(t.kind)?e.tokens.push({kind:`semi`,newline:!0}):(t?.kind===`semi`||t?.kind===`amp`)&&(t.lineEnd=!0),e.i++}function ea(e,t,n){let r={aliases:new Set(t),hasCommand:n};return na(e,r),r.aliases}var ta=(e,t)=>new Set([...e,...t]);function na(e,t){let n=null;for(let r of e){let e=r.gate===`and`||r.gate===`or`;if(e&&n!==null&&r.gate===`and`!=(n===0))continue;let i=e&&n===null?new Set(t.aliases):null,a=r.stages.length===1?r.stages[0]:null;n=a&&!a.isolate?ra(a,t):null,r.negate&&n!==null&&(n=+(n===0)),i&&(t.aliases=ta(i,t.aliases),n=null)}return n}function ra(e,t){if(e.group)return na(e.group,t);if(e.conditional)return ia(e.conditional,t);if(e.loop){if(e.loop.condition&&na(e.loop.condition,t),e.loop.words===void 0||e.loop.words.length>0){let n=new Set(t.aliases);na(e.loop.body,t),t.aliases=ta(n,t.aliases)}return null}let n=e.words[0]?.value;if(e.redirs.length===0&&(n===`true`||n===`false`))return+(n===`false`);if(![`alias`,`unalias`].includes(n)||t.hasCommand(n))return null;let r=e.words.slice(1).map(e=>e.value);for(;r[0]?.startsWith(`-`)&&r[0]!==`-`;){let e=r.shift();if(e===`--`)break;if(!(n===`alias`?/^-p+$/u:/^-a+$/u).test(e))return null;if(n===`unalias`)return t.aliases.clear(),null}for(let e of r)if(n===`unalias`)t.aliases.delete(e);else{let n=e.indexOf(`=`),r=e.slice(0,n);n>0&&!/[ \t\n/$`=;'"\\|&()<>]/u.test(r)&&t.aliases.add(r)}return null}function ia(e,t){let n=new Set;for(let r of e.branches){let e=na(r.condition,t);if(e===0)return na(r.body,t),t.aliases=ta(n,t.aliases),null;if(e===null){let e={...t,aliases:new Set(t.aliases)};na(r.body,e),n=ta(n,e.aliases)}}return e.otherwise&&na(e.otherwise,t),t.aliases=ta(n,t.aliases),null}var aa=class extends Error{constructor(e){super(e.message),this.finalError=e}},oa=e=>new aa(Error(e));function sa(e,t=e.i){for(;t>=e.raw.length&&!e.done;){let t=e.read();e.raw=t.tokens,e.done=t.done}return e.raw[t]}function ca(e,t,n){let r=t.validation??new Map;return{validateSubstitution(t){r.has(t)||(la(t,!0,e,{validation:r,syntaxOnly:!0},n),r.set(t,!0))}}}function la(e,t,n,r,i){try{return i(Fi(e,ca(n,r,i)),t,n,r)}catch(e){throw e instanceof aa?e.finalError:e}}function ua(e,t,n,r){let i=Ii(e,ca(n,{},r)),a=new Set,o=!1;return()=>{let e={aliases:a,aliasUsed:o,read:i.read,unit:!0},s=r([],t,n,e);return o=e.aliasUsed,a=ea(s,a,n),i.reset(),{steps:s,done:e.done}}}function*da(e,t,n,r){let i=ua(e,t,n,r);for(;;){let e;try{e=i()}catch(e){throw e instanceof aa?e.finalError:e}if(e.steps.length>0&&(yield e.steps),e.done)return}}var fa=[`elif`,`else`,`fi`];function pa(e,t){let n=[],r;do{Sa(e);let i=t(e,`then`);Sa(e);let a=t(e,fa);n.push({condition:i,body:a}),r=e.raw[e.i-1].value}while(r===`elif`);let i=null;return r===`else`&&(Sa(e),i=t(e,`fi`)),{branches:n,otherwise:i}}function ma(e,t){let{raw:n}=e,r=e.loop;e.loop=`for`;let i=sa(e);if(i?.kind===`paren_open`)throw new T(`feature`,`for ((`,"arithmetic `for ((…))` loops are not supported; use `for NAME in WORD...`");if(i===void 0||i.kind!==`word`)throw Error(`for: expected a variable name`);let a=i.value;if(i.quoted||!mi.test(a))throw Error(`for: \`${a}\` is not a valid variable name`);e.i++;let o=sa(e);o?.kind===`semi`&&e.i++;let s=sa(e);if(o?.kind===`semi`&&!o.newline&&Ca(s,`in`))throw Error("for: unexpected `in` after `;`");if(!Ca(s,`in`)){if(Ca(s,`do`)||s===void 0){let e=new T(`feature`,`for NAME; do`,`\`for ${a}; do \u2026\` iterates the positional parameters, which this shell does not have; write \`for ${a} in WORD...\``);throw s===void 0?new aa(e):e}throw Error(`for: expected \`in\` after \`${a}\``)}e.i++;let c=[],l=!1;for(let t;(t=sa(e))&&t.kind!==`semi`;e.i++){if(t.kind!==`word`)throw Error(`for: unexpected \`${Ei(t)}\` in word list`);Ca(t,`do`)&&(l=!0),c.push(_r(t))}n[e.i]?.kind===`semi`&&e.i++;let u=sa(e);if(!Ca(u,`do`))throw u===void 0?oa(l?"for: expected `;` or newline before `do`":"for: missing `do`"):Error(l?"for: expected `;` or newline before `do`":`for: expected \`do\`, got \`${Ei(u)}\``);e.i++,Sa(e);let d={name:a,words:c,body:t(e,`done`)};return e.loop=r,d}function ha(e,t,n){let r=e.loop;e.loop=t,Sa(e);let i=n(e,`do`);Sa(e);let a={until:t===`until`,condition:i,body:n(e,`done`)};return e.loop=r,a}function ga(e,t,n){if(t.quoted||!mi.test(t.value))throw new T(`feature`,`function`,`shell functions named \`${t.value}\` are not supported`);if(e.i+=2,Sa(e),!Ca(sa(e),`{`))throw new T(`feature`,`function`,`\`${t.value}()\` needs a \`{ \u2026 }\` body`);e.i++,Sa(e);let r=n(e,`}`);if(!_a(r))throw new T(`feature`,`function`,`\`${t.value}()\` is supported only while its body reads and writes no variable`);return{name:t.value,body:r}}var _a=e=>e.every(e=>e.stages.every(va));function va(e){return e.assigns.length>0||e.define?!1:e.test?ya(e.test)&&e.redirs.every(ba):e.group?_a(e.group):e.conditional?e.conditional.branches.every(e=>_a(e.condition)&&_a(e.body))&&_a(e.conditional.otherwise??[]):e.loop?(e.loop.words??[]).every(xa)&&_a(e.loop.condition??[])&&_a(e.loop.body):e.words.every(xa)&&e.redirs.every(ba)}function ya(e){return e.kind===`and`||e.kind===`or`?ya(e.left)&&ya(e.right):e.kind===`not`?ya(e.expression):e.kind===`unary`?xa(e.word):xa(e.left)&&xa(e.right)}var ba=e=>e.op===`text`?!e.expand||!/[$`]/u.test(e.body):e.word===void 0||xa(e.word);function xa(e){for(let t=0;t<e.value.length;t++){let n=e.value[t];if((n===`$`||n==="`")&&(e.mask===null||e.mask[t]!==`1`))return!1}return!0}function Sa(e){for(let t;(t=sa(e))?.kind===`semi`&&t.newline;)e.i++}function Ca(e,t){return e!==void 0&&e.kind===`word`&&!e.quoted&&e.value===t}var wa=(e,t=!1,n=()=>!1,r={})=>la(e,t,n,r,Ea),Ta=(e,t=!1,n=()=>!1)=>da(e,t,n,Ea);function Ea(e,t,n,r){let i={raw:e,i:0,done:!r.read,read:r.read,unitOnly:r.unit,emptyStage:!1,writable:t,aliases:r.aliases??new Set,aliasUsed:r.aliasUsed??!1,hasCommand:n,syntaxOnly:r.syntaxOnly};try{let e=sa(i)?Ba(i,null):[];if(i.emptyStage)throw Error(`empty pipeline stage`);return r.aliasUsed=i.aliasUsed,r.done=i.done,e}catch(e){if(i.aliasUsed&&!(e instanceof T)){let t=new T(`feature`,`alias expansion`,`alias expansion is not supported; input using aliases cannot be parsed`);throw e instanceof aa?new aa(t):t}throw e}}function Da(e,t,n){t.stages.push(n),!ka(n)&&!Oa(n)&&(e.emptyStage=!0)}var Oa=e=>e.words.length>0||e.assigns.length>0||e.redirs.length>0,ka=e=>e.group||e.loop||e.conditional||e.test||e.define,Aa=()=>({words:[],assigns:[],redirs:[]}),ja=e=>({gate:e,stages:[],negate:!1,bang:!1}),Ma=(e,t)=>e.bang&&e.stages.length===0&&Na(t)&&t.redirs.length===0,Na=e=>!ka(e)&&e.words.length===0&&e.assigns.length===0,Pa=new Set([`for`,`while`,`until`,`do`,`done`,`if`,`{`,`}`,`!`]),Fa=new Set([`then`,`else`,`elif`,`fi`,`esac`,`in`]),Ia=new Map([[`case`,"`case` statements are not supported; gate on exit status with `&&` / `||` instead"],[`select`,"`select` loops are not supported"],[`function`,`shell functions are not supported`],[`time`,"`time` is not supported"],[`coproc`,"`coproc` is not supported"]]),La=new Set([`alias`,`declare`,`typeset`,`local`,`readonly`,`export`,`eval`,`let`]),Ra=new Set([`pipe`,`pipe_err`,`and`,`or`,`semi`,`amp`]),za=new Set([`semi`,`amp`]);function Ba(e,t){let{raw:n}=e,r=[ja(`first`)];t===null&&(e.unit=r[0]);let i=0,a=Aa();for(let n;n=sa(e);){if(n.kind===`condition`){if(!Na(a))throw Error("unexpected `[[`");a.test=n.expression,e.i++;continue}if(n.kind===`paren_close`){if(t!==`)`)throw Error("unexpected `)`");return e.i++,Ga(e,r,a,t)}if(n.kind===`paren_open`){Va(e,a);continue}if(Ra.has(n.kind)){if(n.kind===`pipe_err`&&(Oa(a)||ka(a))&&a.redirs.push({fd:2,op:`dup`,toFd:1}),n.kind===`semi`&&Ma(r.at(-1),a)||Da(e,r.at(-1),a),n.kind===`amp`&&(r.at(-1).background=!0),a=Aa(),n.kind===`and`||n.kind===`or`?r.push(ja(n.kind)):za.has(n.kind)&&r.push(ja(`seq`)),t===null&&(n.newline||n.lineEnd)){if(e.unitOnly)return e.i++,r.pop(),r;e.aliases=ea(r.slice(i,-1),e.aliases,e.hasCommand),i=r.length-1,e.unit=r.at(-1)}e.i++;continue}if(n.kind===`dsemi`)throw Error("syntax error near unexpected token `;;`");if(n.kind===`redir`){if(n.warning&&(e.unit.warnings=(e.unit.warnings??``)+n.warning),a.define)throw new T(`feature`,`function`,`\`${a.define.name}()\` with a redirect of its own is not supported`);let t=qa(e);t&&a.redirs.push(t);continue}if(a.group||a.define)throw Error(`unexpected token after \`${a.isolate?`)`:`}`}\``);if(a.loop)throw Error("unexpected token after `done`");if(a.conditional)throw Error("unexpected token after `fi`");if(a.test)throw Error("unexpected token after `]]`");if(!n.quoted&&a.words.length===0&&e.aliases.has(n.value)&&(e.aliasUsed=!0),!n.quoted&&Na(a)){if(Array.isArray(t)?t.includes(n.value):n.value===t)return e.i++,Ga(e,r,a,t);if(Ha(n,e,r.at(-1),a))continue}let o=a.words.length===0?vr(n):null;o===null?a.words.push(_r(n)):a.assigns.push({name:o.name,word:_r(n,o.end)}),e.i++}if(t===`)`)throw oa("unmatched `(`");if(t===`}`)throw oa("unmatched `{`");if(t===`do`||t===`done`)throw oa(`${e.loop}: missing \`${t}\``);if(t)throw oa(`if: missing \`${t===`then`?`then`:`fi`}\``);if(!e.emptyStage&&!ka(a)&&!Oa(a)&&[`and`,`or`,`pipe`,`pipe_err`].includes(n.at(-1)?.kind))throw oa(`empty pipeline stage`);return za.has(n.at(-1)?.kind)?r.pop():Ma(r.at(-1),a)||Da(e,r.at(-1),a),r}function Va(e,t){let{raw:n,i:r}=e,i=sa(e,r+1),a=n[r-1],o=t.words[0],s=t.words.at(-1);if((n[r-2]?.kind!==`redir`||[`dup`,`close`].includes(n[r-2].op))&&(t.words.length===0&&t.assigns.length>0||s&&s.value===a?.value&&(t.words.length===1||o.mask===null&&La.has(o.value)))&&n[r].wordAdjacent&&a?.kind===`word`&&!a.quoted&&/^[A-Za-z_][A-Za-z0-9_]*\+?=$/u.test(a.value))throw new T(`feature`,`array assignment`,`shell array assignments are not supported`);if(i?.kind===`paren_open`&&i.adjacent&&Na(t))throw new T(`feature`,`((`,"arithmetic evaluation (`((…))`) is not supported");if(t.words.length===1&&t.assigns.length===0&&t.redirs.length===0&&i?.kind===`paren_close`){t.define=ga(e,t.words.pop(),Ba);return}if(!Na(t))throw Error("unexpected `(`");e.i++,t.group=Ba(e,`)`),t.isolate=!0}function Ha(e,t,n,r){let i=e.value;if(Ia.has(i))throw new T(`feature`,i,Ia.get(i));if(Fa.has(i))throw Error(`syntax error near unexpected token \`${i}\``);if(!Pa.has(i))return!1;if(t.i++,i===`!`){if(n.stages.length>0||r.redirs.length>0)throw Error("syntax error near unexpected token `!`");return n.negate=!n.negate,n.bang=!0,!0}if(i===`{`)return Sa(t),r.group=Ba(t,`}`),r.isolate=!1,!0;if(i===`}`)throw Error("syntax error near unexpected token `}`");if(i===`done`)throw Error("unexpected `done`");if(i===`do`)throw Error("unexpected `do`");return i===`if`?r.conditional=pa(t,Ba):r.loop=i===`for`?ma(t,Ba):ha(t,i,Ba),!0}var Ua={")":"empty subshell `()`","}":"empty group `{ }`"},Wa=(e,t)=>t===`do`?`${e.loop}: empty condition`:t===`done`?`${e.loop}: empty loop body`:t===`then`?`if: empty condition`:`if: empty branch body`;function Ga(e,t,n,r){let i=t.at(-1),a=Na(n)&&n.redirs.length===0&&i.stages.length===0;if(a&&t.length===1)throw Error(Ua[r]??Wa(e,r));if(a&&i.bang)throw Error("syntax error near unexpected token after `!`");return a&&i.gate===`seq`?t.pop():Da(e,i,n),t}var Ka=new Set([`/dev/null`,`/dev/stdout`,`/dev/stderr`]);function qa(e){let t=e.raw[e.i++],n=Ei(t);if(e.syntaxOnly){if(![`dup`,`close`].includes(t.op)){let t=sa(e,e.i++);if(!t||t.kind!==`word`)throw Error(`redirect \`${n}\` requires a target`)}return t}if(t.fd>2)throw new T(`feature`,n,`only file descriptors 0, 1 and 2 are supported (got \`${n}\`)`);if(t.op===`dup`){if(t.fd===0&&t.toFd===0)return null;if(t.fd===0||t.toFd===0)throw new T(`feature`,n,`duplicating file descriptor 0 (\`${n}\`) is not supported`);return{fd:t.fd,op:`dup`,toFd:t.toFd}}if(t.op===`close`){if(t.fd===0)throw new T(`feature`,`0<&-`,`closing standard input is not supported`);return{fd:t.fd,op:`close`}}let r=sa(e,e.i++);if(!r||r.kind!==`word`)throw Error(`redirect \`${n}\` requires a target`);if(t.op===`heredoc`||t.op===`herestring`||t.op===`read`){if(t.fd!==0)throw new T(`feature`,n,`reading into file descriptor ${t.fd} (\`${n}\`) is not supported`);return t.op===`heredoc`?{fd:0,op:`text`,body:t.body??``,expand:!t.quotedDelim}:{fd:0,op:t.op,word:_r(r)}}if(t.fd===0)throw new T(`feature`,n,`writing to file descriptor 0 (\`${n}\`) is not supported`);let i=t.op===`both`||t.op===`bothAppend`,a=t.op===`append`||t.op===`bothAppend`,o=_r(r);if(Ja(o))return{fd:t.fd,op:`to`,word:o,both:i,append:a,label:n};if(!e.writable&&!Ka.has(o.value))throw Ya(n,o.value,e.writable);return{fd:t.fd,op:`to`,target:o.value,both:i,append:a,label:n}}function Ja(e){for(let t=0;t<e.value.length;t++){let n=e.value[t],r=e.mask===null?`0`:e.mask[t];if((n===`$`||n==="`")&&r!==`1`||r===`0`&&(/[~*?[{]/u.test(n)||(n===`<`||n===`>`)&&e.value[t+1]===`(`))return!0}return!1}function Ya(e,t,n){return new T(`feature`,e,`\`${e}\` cannot write to \`${t}\`: ${n?"only `/tmp/` is writable":`the filesystem is read-only`}`)}var Xa=/^[a-zA-Z0-9][\w.+-]*$/u,Za=[`run`,`pipe`,`hidden`],Qa=[`stdout`,`stderr`,`exitCode`];function $a(e,t){let n={__proto__:null},r=[],i=[];for(let[a,o]of eo(e)){let{run:e,pipe:s,hidden:c}=to(a,o,t);c&&r.includes(a)||(n[a]=(t,n,r)=>no(a,e,t,n,r),!c&&(r.push(a),s&&i.push(a)))}return{handlers:n,names:r,pipeNames:i}}function eo(e){if(e==null)return[];if(Array.isArray(e))throw TypeError(`createTerminal: opts.commands must be an object or a Map (got an array)`);if(typeof e!=`object`)throw TypeError(`createTerminal: opts.commands must be an object or a Map (got ${typeof e})`);if(typeof e.entries==`function`)return[...e.entries()];let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw TypeError(`createTerminal: opts.commands must be a plain object or a Map (own enumerable properties only)`);return Object.entries(e)}function to(e,t,n){if(typeof e!=`string`)throw TypeError(`createTerminal: command names must be strings (got ${typeof e})`);if(!Xa.test(e))throw Error(`createTerminal: invalid command name: ${JSON.stringify(e)}`);if(n(e))throw Error(`createTerminal: ${e}: cannot redefine a built-in command`);if(typeof t==`function`){for(let n of Object.keys(t))if(Za.includes(n))throw Error(`createTerminal: ${e}: \`${n}\` belongs on a { run } descriptor, not on the handler function`);return{run:t,pipe:!1,hidden:!1}}if(typeof t!=`object`||!t)throw TypeError(`createTerminal: ${e}: expected a function or a { run } object`);let r=t.run;if(typeof r!=`function`)throw TypeError(`createTerminal: ${e}: \`run\` must be a function`);for(let n of Object.keys(t))if(!Za.includes(n))throw Error(`createTerminal: ${e}: unknown option \`${n}\` (known: ${Za.join(`, `)})`);return{run:r,pipe:!!t.pipe,hidden:!!t.hidden}}function no(e,t,n,r,i){i.io?.bufferOutput(),I(i);let a={cwd:i.cwd,fs:i.fs,mount:i.mount,home:i.home,get notes(){return i.notes},command:e,stdinFile:i.stdinFile,stdinOrigin:i.stdinOrigin},o=!0,s=()=>{o=!1},c=t({name:e,args:r,stdin:n,cwd:a.cwd,fs:ro(a),readInputs:(t=[])=>{if(typeof t==`string`)throw TypeError(`readInputs: expected an array of paths, got a string: ${t}`);return Vn(e,[...t],n,a)},run:e=>{if(!o)throw Error(`run: the command this belongs to has finished, and its turn with it`);return i.runLine(e)}});return typeof c?.then==`function`?c.then(io).finally(s):(s(),io(c))}function ro(e){let t=t=>k(e.cwd,t,e.fs).path;return{resolve:t=>O(e.cwd,t),isFile:n=>e.fs.isFile(t(n)),isDir:n=>e.fs.isDir(t(n)),isLink:t=>e.fs.isLink?.(k(e.cwd,t,e.fs,{follow:!1}).path)===!0,readLink:t=>e.fs.readLink?.(k(e.cwd,t,e.fs,{follow:!1}).path),readFile:n=>e.fs.readFile(t(n)),isBytes:n=>e.fs.isBytes?.(t(n))===!0,readBytes:n=>zn(e.fs,t(n))?.slice(),listDir:t=>{let{path:n,error:r}=P(e,e.command,t);if(!e.fs.isDir(n))throw Error(`${t}: ${r??`Not a directory`}`);let{dirs:i,files:a,links:o=[]}=e.fs.listDir(n);return{dirs:[...i],files:[...a],links:[...o]}},walkFiles:n=>[...e.fs.walkFiles(t(n))]}}function io(e){if(e==null)return b();if(typeof e==`string`)return b(e);if(typeof e!=`object`)throw TypeError(`invalid result: expected a string or an object (got ${typeof e})`);if(Array.isArray(e))throw TypeError(`invalid result: expected a string or an object, got an array (join the lines first)`);let t=Object.keys(e);for(let e of t)if(!Qa.includes(e))throw TypeError(`invalid result: unknown field \`${e}\` (known: ${Qa.join(`, `)})`);if(t.length===0)throw TypeError(`invalid result: an object with none of ${Qa.join(`, `)} \u2014 return a string for plain output`);let{stdout:n=``,stderr:r=``,exitCode:i=0}=e;if(typeof n!=`string`)throw TypeError(`invalid result: stdout must be a string (got ${typeof n})`);if(typeof r!=`string`)throw TypeError(`invalid result: stderr must be a string (got ${typeof r})`);if(!Number.isInteger(i)||i<0)throw TypeError(`invalid result: exitCode must be a non-negative integer (got ${i})`);return{stdout:n,stderr:r===``||r.endsWith(`
|
|
32
32
|
`)?r:r+`
|
|
33
|
-
`,exitCode:o}}var $e=new Uint8Array(0),Fr=e=>e.every(t=>t<128),ti=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function ct(e){let t=new Uint8Array(e.reduce((r,o)=>r+o.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}var k=class extends Error{constructor(t,n){super(n===void 0?t:`${t} at byte ${n}`),this.name="ArchiveError",this.offset=n}};function Wn(e,t){try{return e()}catch(n){throw!(n instanceof k)||n.offset!==void 0?n:new k(n.message,t)}}var qn=class extends k{constructor(t,{bytes:n,limited:r=!1,cause:o}){super(t),this.name="CompressionError",this.bytes=n,this.limited=r,this.cause=o}};function Re(e){try{return[new CompressionStream(e),new DecompressionStream(e)].every(Boolean)}catch{return!1}}async function*l2(e){if(Symbol.asyncIterator in e)return yield*e;let t=e.getReader();for(let n=await t.read();!n.done;n=await t.read())yield n.value}function c2(e){let t=0;return new TransformStream({transform(n,r){t+=n.length,t<=e?r.enqueue(n):r.error(new RangeError(`output past ${e} bytes`))}})}async function Ea(e,t,n,r,o,i){if(!(e instanceof Uint8Array))throw new k("the data is not a Uint8Array");let s=new t(n),a=[],u=0,l=()=>i!==void 0?i.subarray(0,u):a.length===1?a[0]:ct(a);try{for await(let c of l2(new Blob([e]).stream().pipeThrough(s).pipeThrough(c2(r))))i===void 0?a.push(c):i.set(c,u),u+=c.length}catch(c){let f=c instanceof RangeError;throw new qn(f?`the data ${o}es past ${r} bytes`:`the data does not ${o}`,{bytes:l(),limited:f,cause:c})}return l()}var je=(e,t,{limit:n=1/0}={})=>Ea(e,CompressionStream,t,n,"compress"),$a=(e,t,{limit:n=1/0}={})=>Ea(e,DecompressionStream,t,n,"decompress"),gd=(e,t,n)=>Ea(e,DecompressionStream,t,n.length,"decompress",n);var $t=e=>e.type==="directory"?`${e.name}/`:e.name,ni=e=>/(?:^|\/)\.(?:\/|$)/u.test(e)?["dot-segment names","names stored with `.' segments are not supported"]:["directory names","directories stored without a trailing slash are not supported"];function ri(e){return e.name==="."||e.storedName!==$t(e)?e.storedName:e.storedLinkname!==void 0&&e.storedLinkname!==e.linkname?e.storedLinkname:null}function O(e){return e.length<=200?JSON.stringify(e):JSON.stringify(`${e.slice(0,e.codePointAt(199)>65535?199:200)}\u2026`)}var f2=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}]/u,d2=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}\\]/u,Bt=(e,t)=>(t?d2:f2).test(e);function fn(e,t){if(typeof e!="string")throw new k(`${t} is not a string`);if(!e.isWellFormed())throw new k(`${t} is not well-formed Unicode`)}function p2(e){let t=0;for(let n of e){let r=n.codePointAt(0);t+=r<128?1:r<2048?2:r<65536?3:4}return t}var oi=(e,t)=>e.length>t||e.length*3>t&&p2(e)>t;function jt(e,t){try{return Qt(e)}catch{throw new k(`${t} is not well-formed Unicode`)}}function We(e,t,n){try{return mr(e)}catch{throw new k(`${t} is not valid UTF-8`,n)}}var Hn={file:420,directory:493,symlink:511},Sa=e=>e==="file"||e==="contiguous-file",ii=e=>e.type==="directory"?`${e.name}/`:e.name;function si(e,t){if(e===null||typeof e!="object")throw new k("an entry is not an object");let n=e.type??"file";if(typeof n!="string")throw new k("entry type is not a string");if(!Object.hasOwn(t,n))throw new k(`entry type ${O(n)} is not one this package writes`);let{name:r}=e;fn(r,"entry name");let o=e.data??$e;if(!(o instanceof Uint8Array))throw new k(`data of ${O(r)} is not a Uint8Array`);if(o.length!==0&&!Sa(n))throw new k(`a ${n} cannot carry data (${O(r)})`);let i=e.linkname??"";if(fn(i,`link target of ${O(r)}`),i!==""&&n!=="hardlink"&&n!=="symlink")throw new k(`a ${n} cannot have a link target (${O(r)})`);return{name:r,type:n,data:o,linkname:i}}var Se=512,Gn=e=>e==="character-device"||e==="block-device",dn={file:48,hardlink:49,symlink:50,"character-device":51,"block-device":52,directory:53,fifo:54,"contiguous-file":55},Xn={pax:120,global:103,longname:76,longlink:75},Te=100,Zn=155,pn=32,wd=0,yd=[["mode",100,8],["uid",108,8],["gid",116,8],["size",124,12],["mtime",136,12]],ui=148,xd=156,bd=157,Na=257,kd=265,vd=297,Ed=329,$d=337,Sd=345,h2=386,m2=495,Ad="ustar\x0000",Nd="ustar \0",Oa=e=>Uint8Array.from(e,t=>t.codePointAt(0)),Od=e=>String.fromCodePoint(...e),Wt=(e,t,n,r)=>e.subarray(t,t+n).set(r),Ia=e=>8**(e-1)-1,Ta=(e,t)=>e>=0&&e<=Ia(t);function Aa(e,t,n,r,o){if(Ta(r,n)){Wt(e,t,n,Oa(r.toString(8).padStart(n-1,"0")));return}if(!o)throw new k(`${r} does not fit an octal field of ${n-1} digits`);e[t]=r<0?255:128;let i=BigInt.asUintN((n-1)*8,BigInt(r));for(let s=t+n-1;s>t;s--)e[s]=Number(i&0xffn),i>>=8n}function ai(e,t,n,r,o,i=!1){let s=e[t];if(s===128||s===255){let u=0n;for(let l=t+1;l<t+n;l++)u=u<<8n|BigInt(e[l]);if(s===255&&(u=BigInt.asIntN((n-1)*8,u)),u<0n&&!i)throw new k(`the ${r} field is negative`,o);if(u>BigInt(Number.MAX_SAFE_INTEGER)||u<-BigInt(Number.MAX_SAFE_INTEGER))throw new k(`the ${r} field is too large`,o);return Number(u)}let a=/^ *([0-7]*) *$/u.exec(Od(li(e.subarray(t,t+n))));if(!a)throw new k(`the ${r} field is not an octal number`,o);return a[1]===""?0:Number.parseInt(a[1],8)}function li(e){let t=e.indexOf(0);return t===-1?e:e.subarray(0,t)}var Rr=(e,t,n)=>li(e.subarray(t,t+n));function Id(e){let t=256;for(let n=0;n<ui;n++)t+=e[n];for(let n=ui+8;n<Se;n++)t+=e[n];return t}var Mr=e=>e.every(t=>t===0);function Ca(e){let t=new Uint8Array(Se);Wt(t,wd,Te,e.name);for(let[n,r,o]of yd)Aa(t,r,o,e[n],e.gnu);return t[xd]=e.typeflag,Wt(t,bd,Te,e.linkname),Wt(t,Na,8,Oa(e.gnu?Nd:Ad)),Wt(t,kd,pn-1,e.uname),Wt(t,vd,pn-1,e.gname),e.devmajor!==null&&Aa(t,Ed,8,e.devmajor,e.gnu),e.devminor!==null&&Aa(t,$d,8,e.devminor,e.gnu),Wt(t,Sd,Zn,e.prefix),Wt(t,ui,8,Oa(`${Id(t).toString(8).padStart(6,"0")}\0 `)),t}function Td(e,t){if(Id(e)!==ai(e,ui,8,"checksum",t))throw new k("header checksum does not match",t);let n=Od(e.subarray(Na,Na+8)),r=n===Nd;if(!r&&n!==Ad)throw new k("header is not in the ustar, pax or gnu format",t);if(r&&!Mr(e.subarray(h2,m2)))throw new k("header carries an old GNU sparse map or real size",t);let o=e[xd],i=o===dn["character-device"]||o===dn["block-device"];return{gnu:r,typeflag:o,name:Rr(e,wd,Te),prefix:r?$e:Rr(e,Sd,Zn),linkname:Rr(e,bd,Te),uname:Rr(e,kd,pn),gname:Rr(e,vd,pn),...Object.fromEntries(yd.map(([s,a,u])=>[s,ai(e,a,u,s,t,s==="mtime")])),devmajor:i?ai(e,Ed,8,"devmajor",t):0,devminor:i?ai(e,$d,8,"devminor",t):0}}var ci=4096,Cd=255;function Fd(e,t){if(fn(e,t),e==="")throw new k(`${t} is empty`);if(Bt(e,!0))throw new k(`${t} ${O(e)} holds a control or formatting character, or a backslash`);if(e.startsWith("/"))throw new k(`${t} ${O(e)} is absolute`);let n=e.split("/");if(/^[a-zA-Z]:/u.test(n.find(r=>r!==".")??""))throw new k(`${t} ${O(e)} starts with a drive letter`);if(oi(e,ci))throw new k(`${t} ${O(e)} is longer than ${ci} bytes`);for(let r of n)if(oi(r,Cd))throw new k(`${t} ${O(e)} has a segment longer than ${Cd} bytes`);return n}function _d(e,t,n=!1){let r=Fd(e,t),o=r.at(-1)==="";if(o){if(!n)throw new k(`${t} ${O(e)} ends in a slash but is not a directory`);r.pop()}let i=r.filter(a=>a!==".");for(let a of i){if(a==="")throw new k(`${t} ${O(e)} has an empty segment`);if(a==="..")throw new k(`${t} ${O(e)} has a .. segment`)}if(i.length===0){if(!n)throw new k(`${t} ${O(e)} names the archive root but is not a directory`);return"."}let s=o||i.length<r.length?i.join("/"):e;if(oi(s,ci-(n?1:0)))throw new k(`${t} ${O(e)} is longer than ${ci} bytes`);return s}function Rd(e,t){let n=Fd(t,`symlink target of ${O(e)}`).filter(o=>o!==""&&o!=="."),r=e.split("/").length-1;for(let o of n)if(r+=o===".."?-1:1,r<0)throw new k(`symlink ${O(e)} points outside the archive, to ${O(t)}`);return n}function qt(e,t,n){let r=_d(e,"entry name",t==="directory"),o=n;return t==="symlink"?Rd(r,n):t==="hardlink"&&(o=_d(n,`hard link target of ${O(r)}`)),{name:r,linkname:o}}var Md=()=>({kind:void 0,entry:void 0,symlink:void 0,first:void 0,firstNode:void 0,rest:void 0});function _a(e,t,n=!0){if(e.first===t)return e.firstNode;let r=e.rest?.get(t);return r!==void 0||!n||(r=Md(),e.first===void 0?(e.first=t,e.firstNode=r):(e.rest??=new Map,e.rest.set(t,r))),r}var Ld=["type","mode","uid","gid","mtime","uname","gname","linkname","devmajor","devminor"],ft=class{#t=Md();#s;constructor(t=!1){this.#s=t}add(t){let{name:n,type:r}=t,o=r==="symlink"?t.linkname:void 0;if(r==="hardlink"){let l=this.#r(t.linkname);if(l?.kind!=="entry")throw new k(`hard link ${O(n)} targets ${O(t.linkname)}, which is not an earlier non-directory entry`);o=l.symlink,o!==void 0&&this.#n(n,o,`hard link ${O(n)} to symlink ${O(t.linkname)}`)}let i=n.split("/"),s=this.#i(i),a=s.at(-1);if(a.kind!==void 0&&a.kind!=="implied"){let l=Ld.find(c=>a.entry[c]!==t[c]);if(l!==void 0)throw new k(`duplicate entry ${O(n)} differs in ${l}`);if(a.entry.data===void 0)throw new k(`duplicate entry ${O(n)}, which only the in-memory call can compare with the earlier one`);if(!ti(a.entry.data,t.data))throw new k(`duplicate entry ${O(n)} differs in data`);return}let u=r==="directory"?"directory":"entry";if(a.kind!==void 0&&u!=="directory")throw new k(`${O(n)} is already a directory, so it cannot be a ${r}`);for(let l=1;l<i.length;l++)this.#e(s[l],()=>`${O(n)} is inside ${O(i.slice(0,l).join("/"))}, which is not a directory`);a.kind=u,a.symlink=o,a.entry=this.#s?t:Object.fromEntries(Ld.map(l=>[l,t[l]])),r==="symlink"&&this.#n(n,t.linkname,`symlink ${O(n)}`)}#n(t,n,r){let o=Rd(t,n),i=t.split("/").slice(0,-1),s=this.#i(i);for(let[a,u]of o.entries())u===".."?(i.pop(),s.pop()):(i.push(u),s.push(_a(s.at(-1),u))),a<o.length-1&&i.length&&this.#e(s.at(-1),()=>`the target of ${r} passes through ${O(i.join("/"))}, which is not a directory`)}#e(t,n){if(t.kind==="entry")throw new k(n());t.kind??="implied"}#i(t){let n=[this.#t];for(let r of t)n.push(_a(n.at(-1),r));return n}#r(t){let n=this.#t;for(let r of t.split("/"))if(n=_a(n,r,!1),n===void 0)return;return n}};function g2(e,t){let n=Qt(` ${e}=${t}
|
|
34
|
-
`),r=String(n.length).length,o=n.length+r+(String(n.length+r).length>r?1:0);return ct([Qt(String(o)),n])}var Dd=e=>ct(e.map(([t,n])=>g2(t,n))),La="pax records cannot be changed",Dr=class extends Map{set(){throw new TypeError(La)}delete(){throw new TypeError(La)}clear(){throw new TypeError(La)}},w2=(e,t,n)=>Map.prototype.set.call(e,t,n);function Fa(e,t){let n=new Dr;for(let r=0;r<e.length;){let o=r,i=0;for(;o<e.length&&e[o]>=48&&e[o]<=57;o++)i=i*10+(e[o]-48);if(o===r||e[r]===48||e[o]!==32)throw new k("a pax record does not begin with its length",t);let s=r+i;if(s>e.length||e[s-1]!==10)throw new k("a pax record is not as long as it says",t);let a=e.indexOf(61,o+1);if(a===-1||a>=s-1)throw new k("a pax record has no keyword=value",t);let u=We(e.subarray(o+1,a),"a pax record",t);if(u===""||Bt(u,!1)||u.includes(" "))throw new k(`pax keyword ${O(u)} is malformed`,t);if(n.has(u))throw new k(`pax keyword ${u} repeats`,t);w2(n,u,We(e.subarray(a+1,s-1),"a pax record",t)),r=s}return n}var y2=new Set(["gnu","ustar","pax"]),Ud=47;function Yn(e,t,n=!1){if(!Number.isSafeInteger(e)||!n&&e<0)throw new k(`${t} ${String(e)} is not ${n?"an integer":"a non-negative integer"}`);return e}function Pd(e,t){if(fn(e,t),Bt(e,!1))throw new k(`${t} ${O(e)} holds a control or formatting character`);return e}function x2(e){let t=si(e,dn),{name:n,type:r}=t,o=Yn(e.devmajor??0,"devmajor"),i=Yn(e.devminor??0,"devminor");if((o!==0||i!==0)&&!Gn(r))throw new k(`a ${r} cannot have device numbers (${O(n)})`);let s=Yn(e.mode??Hn[r]??420,"mode");if(s>4095)throw new k(`mode ${s.toString(8)} has bits beyond the permission bits`);return{...t,mode:s,uid:Yn(e.uid??0,"uid"),gid:Yn(e.gid??0,"gid"),mtime:Yn(e.mtime??0,"mtime",!0),uname:Pd(e.uname??"","uname"),gname:Pd(e.gname??"","gname"),devmajor:o,devminor:i}}function Bd(e,t=e.length){let n=new Uint8Array(Math.ceil(t/Se)*Se);return n.set(e),n}var jd=(e,t,n,r,o)=>Ca({gnu:o,name:jt(e,"header name").subarray(0,Te),prefix:$e,linkname:$e,uname:$e,gname:$e,typeflag:r,mode:420,uid:0,gid:0,size:t,mtime:n,devmajor:null,devminor:null}),zd=(e,t)=>[jd("././@LongLink",e.length+1,0,t,!0),Bd(e,e.length+1)];function b2(e,t){let n=Dd(t),r=e.name.lastIndexOf("/"),o=r===-1?`./PaxHeaders/${e.name}`:`${e.name.slice(0,r)}/PaxHeaders/${e.name.slice(r+1)}`;return[jd(o,n.length,Math.max(0,Math.min(e.mtime,Ia(12))),Xn.pax,!1),Bd(n)]}function k2(e,t){let{length:n}=e;if(n>Zn+Te+1)throw new k(`name ${O(t)} is longer than 256 bytes, which ustar cannot hold`);let r=n;r>Zn+1?r=Zn+1:e[r-1]===Ud&&r--;let o=r-1;for(;o>0&&e[o]!==Ud;)o--;let i=n-o-1;if(o===0||i>Te||i===0)throw new k(`name ${O(t)} cannot be split into ustar's prefix and name fields`);return{prefix:e.subarray(0,o),name:e.subarray(o+1)}}function v2(e,t){let n=t==="gnu",r=[],o=[],i=ii(e),s=jt(i,"entry name"),a=$e,u=jt(e.linkname,`link target of ${O(e.name)}`);if(u.length>Te){if(n)o.push(...zd(u,Xn.longlink));else if(t==="pax")r.push(["linkpath",e.linkname]);else throw new k(`link target of ${O(e.name)} is longer than 100 bytes, which ustar cannot hold`);u=u.subarray(0,Te)}t==="pax"&&(s.length>Te||!Fr(s))&&r.push(["path",i]),s.length>Te&&(n?o.push(...zd(s,Xn.longname)):t==="ustar"&&({prefix:a,name:s}=k2(s,e.name)),s.length>Te&&(s=s.subarray(0,Te)));let l=(h,m,g)=>{if(n||Ta(m,g))return m;if(t==="pax")return r.push([h,String(m)]),0;throw new k(`${h} ${m} of ${O(e.name)} does not fit the ustar format`)},c=(h,m)=>{let g=jt(m,h);if(g.length<pn&&(t!=="pax"||Fr(g)))return g;if(t!=="pax")throw new k(`${h} of ${O(e.name)} is longer than 31 bytes, which the ${t} format cannot hold`);return r.push([h,m]),g.subarray(0,pn-1)},f=Gn(e.type),d={gnu:n,name:s,prefix:a,linkname:u,typeflag:dn[e.type],mode:e.mode,uid:l("uid",e.uid,8),gid:l("gid",e.gid,8),size:l("size",e.data.length,12),mtime:l("mtime",e.mtime,12),devmajor:f?l("devmajor",e.devmajor,8):null,devminor:f?l("devminor",e.devminor,8):null,uname:c("uname",e.uname),gname:c("gname",e.gname)};r.length&&o.push(...b2(e,r)),o.push(Ca(d));let p=e.data.length%Se;return e.data.length&&o.push(e.data),p&&o.push(new Uint8Array(Se-p)),o}function E2({format:e="gnu",blocking:t=20}={},n=!1){if(!y2.has(e))throw new k(`format ${O(String(e))} is not gnu, ustar or pax`);if(!Number.isSafeInteger(t)||t<1)throw new k("blocking is not a positive integer");let r=new ft(n),o=0;return{add(i){let s=x2(i),a={...s,...qt(s.name,s.type,s.linkname)};r.add(a);let u=v2(a,e);for(let l of u)o+=l.length;return u},end(){let i=t*Se,s=(o+2*Se)%i;return[new Uint8Array(2*Se+(s?i-s:0))]}}}function Ra(e,t){let n=E2(t,!0),r=[];for(let o of e)r.push(...n.add(o));return ct([...r,...n.end()])}var Gd=e=>Object.entries(e).map(([t,n])=>[n,t]),$2=new Map([...Gd(dn),[0,"file"]]),S2=new Map(Gd(Xn)),A2=1<<20,N2=new Set(["SCHILY.realsize","SUN.holesdata"]);function Wd(e,t){for(let n of e)if(n.startsWith("GNU.sparse.")||N2.has(n))throw new k("sparse entries are not supported",t)}function O2(e,t,n){if(!/^(?:0|[1-9][0-9]*)$/u.test(e)||!Number.isSafeInteger(Number(e)))throw new k(`pax ${t}=${O(e)} is not a whole number this package can hold`,n);return Number(e)}function I2(e,t,n){let r=/^(-?)([0-9]+)(?:\.([0-9]+))?$/u.exec(e);if(!r)throw new k(`pax ${t}=${O(e)} is not a time`,n);let[,o,i,s=""]=r,a=Number(o+i)-(o&&/[1-9]/u.test(s)?1:0);if(!Number.isSafeInteger(a))throw new k(`pax ${t}=${O(e)} is out of range`,n);return a}var qd=()=>({pax:null,longname:null,longlink:null}),Hd=new Dr,Ma=class{#t=[];#s=0;#n=0;#e=0;#i;#r=qd();#o=null;#u=null;#a=0;#l=!1;constructor(t=!1){this.#i=new ft(t)}push(t){if(!(t instanceof Uint8Array))throw new k("a chunk is not a Uint8Array");if(this.#l)return this.#f(t,this.#e),this.#e+=t.length,[];t.length&&(this.#t.push(t),this.#n+=t.length);let n=[],r=!0;for(;r&&!this.#l;)r=this.#u===null?this.#d():this.#p(n);return n}end(){if(!this.#l)throw this.#e===0&&this.#n===0?new k("the archive is empty"):this.#u===null&&this.#n===0?new k(this.#a?"the archive ends with a lone zero block":"the archive has no end marker",this.#e):new k("the archive is truncated",this.#e)}#c(t){if(this.#n<t)return null;if(t===0)return $e;let n;if(this.#s+t<=this.#t[0].length)n=this.#t[0].subarray(this.#s,this.#s+t),this.#s+=t;else{n=new Uint8Array(t);let r=0;for(let o=0,i=this.#s;o<t;r++,i=0){let s=this.#t[r].subarray(i,i+t-o);n.set(s,o),o+=s.length,this.#s=i+s.length}this.#t=this.#t.slice(r-1)}return this.#s===this.#t[0].length&&(this.#t.shift(),this.#s=0),this.#n-=t,this.#e+=t,n}#f(t,n){if(!Mr(t))throw new k("data after the end of the archive",n)}#d(){let t=this.#c(Se);if(t===null)return!1;let n=this.#e-Se;if(Mr(t)){if(Object.values(this.#r).some(i=>i!==null))throw new k("an extended header is not followed by an entry",n);if(++this.#a===2){this.#l=!0;let i=this.#e;this.#f(this.#c(this.#n),i)}return!0}if(this.#a)throw new k("a lone zero block where a header should be",n);let r=Td(t,n),o=S2.get(r.typeflag);if(o===void 0)this.#u={extended:null,at:n,...this.#h(r,n)};else{if(r.size>A2)throw new k(`a ${o} header of ${r.size} bytes is longer than any tar writes`,n);this.#u={extended:o,size:r.size,at:n,entry:null}}return!0}#p(t){let{extended:n,size:r,at:o,entry:i}=this.#u,s=Math.ceil(r/Se)*Se,a=this.#c(s);if(a===null)return!1;if(!Mr(a.subarray(r)))throw new k("the padding after an entry is not zero",o);this.#u=null;let u=a.subarray(0,r);if(n===null)i.data=u,Wn(()=>this.#i.add(i),o),t.push(i);else if(n==="global"){this.#o=Fa(u,o);for(let l of["path","linkpath","size"])if(this.#o.has(l))throw new k(`a global header sets ${l}`,o);Wd(this.#o.keys(),o)}else{if(this.#r[n]!==null)throw new k(`two ${n} headers ahead of one entry`,o);this.#r[n]=n==="pax"?Fa(u,o):We(li(u),`a ${n} header`,o)}return!0}#h(t,n){let r=$2.get(t.typeflag);if(r===void 0)throw new k(`entry type ${O(String.fromCodePoint(t.typeflag))} is not one this package reads`,n);let{pax:o,longname:i,longlink:s}=this.#r;this.#r=qd();let a=g=>o?.get(g)??this.#o?.get(g);if(o!==null&&Wd(o.keys(),n),i!==null&&a("path")!==void 0)throw new k("both a long name header and a pax path name one entry",n);if(s!==null&&a("linkpath")!==void 0)throw new k("both a long link header and a pax linkpath name one entry",n);let u=i??a("path")??this.#m(t,n),l=s??a("linkpath")??We(t.linkname,"link target",n),{name:c,linkname:f}=Wn(()=>qt(u,r,l),n),d=(g,w=O2)=>{let y=a(g);return y===void 0?t[g]:w(y,g,n)},p=d("size");if(p!==0&&!Sa(r))throw new k(`a ${r} entry has a size`,n);if(f!==""&&r!=="hardlink"&&r!=="symlink")throw new k(`a ${r} entry has a link target`,n);let h=g=>{let w=a(g)??We(t[g],g,n);if(Bt(w,!1))throw new k(`${g} ${O(w)} holds a control or formatting character`,n);return w};return{entry:{name:c,type:r,mode:t.mode&4095,uid:d("uid"),gid:d("gid"),mtime:d("mtime",I2),uname:h("uname"),gname:h("gname"),linkname:f,devmajor:Gn(r)?d("devmajor"):0,devminor:Gn(r)?d("devminor"):0,data:$e,storedName:u,storedLinkname:l,pax:o??Hd,globalPax:this.#o??Hd},size:p}}#m(t,n){let r=We(t.name,"entry name",n);return t.prefix.length?`${We(t.prefix,"name prefix",n)}/${r}`:r}};function Da(e){let t=new Ma(!0),n=t.push(e);return t.end(),n}var Xd=new Map([[7,"a"],[8,"b"],[12,"f"],[10,"n"],[13,"r"],[9,"t"],[11,"v"]]),T2=e=>"\\"+e.toString(8).padStart(3,"0");function St(e,t){let n=ee(t),r=se(t.locale),o="";for(let i of e){let s=i.codePointAt(0);if(i==="\\")o+="\\\\";else if(Xd.has(s))o+="\\"+Xd.get(s);else if(s<128?s>=32&&s<127:!n&&r.has("print",s))o+=i;else for(let a of I(i))o+=T2(a)}return o}var C2={__proto__:null,file:"-","contiguous-file":"C",directory:"d",symlink:"l",hardlink:"h",fifo:"p","character-device":"c","block-device":"b"};function Zd(e,t){let n=[..."rwxrwxrwx"].map((o,i)=>(t&256>>i)===0?"-":o),r=(o,i,s)=>{(t&o)!==0&&(n[i]=n[i]==="x"?s:s.toUpperCase())};return r(2048,2,"s"),r(1024,5,"s"),r(512,8,"t"),C2[e]+n.join("")}var Yd=e=>I(e).length,_2=new Set(["character-device","block-device"]);function fi(e,{numericOwner:t=!1,utc:n=!1}={}){let r=19,o=16,i=n||e.vars.has("TZ"),s=a=>{let u=!t&&a.uname!==""?a.uname:String(a.uid),l=!t&&a.gname!==""?a.gname:String(a.gid),c=_2.has(a.type)?`${a.devmajor},${a.devminor}`:String(a.data.length),f=Yd(u)+1+Yd(l)+1+c.length;f>r&&(r=f);let d=F2(a.mtime,i);return d.length>o&&(o=d.length),`${Zd(a.type,a.mode)} ${u}/${l} ${" ".repeat(r-f)}${c} ${d.padEnd(o)} `+St($t(a),e)+L2(a,e)};return s.mkdir=a=>`${Zd("directory",448)} ${"Creating directory:".padStart(r+1+o)} ${St(a,e)}`,s}function L2(e,t){return e.type==="symlink"?` -> ${St(e.linkname,t)}`:e.type==="hardlink"?` link to ${St(e.linkname,t)}`:""}function F2(e,t){let n=new Date(e*1e3);if(Number.isNaN(n.getTime()))throw new x("feature","archive time",`a modification time of ${e} seconds is past what this terminal can print`);return Ht(n,"%Y-%m-%d %H:%M",t)}var de=(e,t)=>St(e,t).replaceAll(":","\\:");function Gt(e,t){let n=St(e,t);return ee(t)?`'${n.replaceAll("'","\\'")}'`:`\u2018${n}\u2019`}function Ua(e){let t=e.length;for(;t>1&&e[t-1]==="/";)t--;return e.slice(0,t)}function R2(e){for(let t=0;t<e.length;t++)if(e[t]==="\\")t++;else if("?*[]".includes(e[t]))return!0;return!1}var M2=(e,t)=>t===e||t.startsWith(e)&&t[e.length]==="/";function Vd(e){let t=[],n=[];for(let o of e)o.dir!==void 0?n.push(o.dir):o.name!==""&&t.push({given:o.name,operand:Ua(o.name),dirs:[...n],found:!1});let r={dirs:n};return{names:t,match(o){if(t.length===0)return r;let i=t.find(s=>M2(s.operand,o));return i!==void 0&&(i.found=!0),i??null}}}function Kd(e,t,n){for(let r of e.names)r.found||(!n&&R2(r.operand)&&(t.warn("Pattern matching characters used in file names"),t.warn("Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning")),t.error(`${de(r.operand,t.ctx)}: Not found in archive`))}function di(e,t,n){let{ctx:r}=n,o=E(e,t,r.fs),i=o.error??(r.fs.isDir(o.path)?null:"Not a directory");return i===null?o.path:(n.fatal(`${de(t,r)}: Cannot open: ${i}`),null)}async function Ur(e,t){try{return{bytes:await $a(e,t),error:null}}catch(n){if(!(n instanceof qn))throw n;return{bytes:n.bytes,error:n.cause?.cause?.message??n.cause?.message??"corrupt input"}}}var D2=10,U2=8,P2=8,z2=16,B2=4,j2=2,W2=8,Jd="gzip",Qd="deflate-raw",q2=(e,t)=>e[t]+e[t+1]*256+e[t+2]*65536+e[t+3]*16777216;function H2(e,t){if(e[t]!==31||e[t+1]!==139||e[t+2]!==P2)return-1;let n=e[t+3],r=t+D2;if((n&B2)!==0){if(r+2>e.length)return-1;r+=2+e[r]+e[r+1]*256}for(let o of[W2,z2])if((n&o)!==0){for(;r<e.length&&e[r]!==0;)r++;r++}return(n&j2)!==0&&(r+=2),r<=e.length?r-t:-1}var G2=64;async function X2(e,t){let n=H2(e,t);if(n<0)return null;let o=(await Ur(e.subarray(t+n),Qd)).bytes.length%4294967296,i=G2;for(let s=t+n+U2;s<=e.length&&i>0;s++){if(q2(e,s-4)!==o)continue;i--;let a=await Ur(e.subarray(t,s),Jd);if(a.error===null)return{bytes:a.bytes,end:s}}return null}async function pi(e){let t=await Ur(e,Jd);if(t.error===null||!Re(Qd))return{...t,rest:null};let n=[],r=0;for(;;){let o=await X2(e,r);if(o===null)break;n.push(o.bytes),r=o.end}return r===0||r===e.length?{...t,rest:null}:{bytes:Ze(n),error:t.error,rest:e.subarray(r)}}function N(e,t={}){let n=Pr(t.short),r=Pr(t.long),o=Pr(t.valueShort),i=Pr(t.valueLong),s=Pr(t.repeatable),a=new Set,u=new Map,l=[],c=[],f=0;function d(p,h,m=!1){let g=(m?"--":"-")+p,w=(m?i:o).has(p)||s.has(p)&&(!m||p.length>1);if(w){let y=h??e[++f];if(h===null&&f>=e.length)throw new Error(g+" requires an argument");if(s.has(p)){let $=u.get(p);$?$.push(y):u.set(p,[y])}else u.set(p,y);c.push({name:p,value:y})}else{if(!(m?r:n).has(p))throw new x("option",g,"unknown option: "+g);if(m&&h!==null)throw new Error("option "+g+" doesn't allow an argument");a.add(p),c.push({name:p})}return w}for(;f<e.length;f++){let p=e[f];if(p==="--"){l.push(...e.slice(f+1));break}if(p.startsWith("--")&&p.length>2){let h=p.indexOf("=");d(h===-1?p.slice(2):p.slice(2,h),h===-1?null:p.slice(h+1),!0);continue}if(p.startsWith("-")&&p.length>1&&!(t.numericOperands&&Z2(p,n,o,s))){for(let h=1;h<p.length&&!d(p[h],h+1<p.length?p.slice(h+1):null);h++);continue}if(t.stopAtFirstPositional){l.push(...e.slice(f));break}l.push(p)}return{flags:a,values:u,positional:l,order:c}}function Z2(e,t,n,r){if(!/^-\d/u.test(e))return!1;let o=e[1];return!t.has(o)&&!n.has(o)&&!r.has(o)}function Pr(e){return e instanceof Set?e:new Set(e??[])}var Pa="gzip",Y2=(e,t,n)=>Ba(e,["-d",...t],n),ep=(e,t,n)=>Ba(e,["-d","-c",...t],n),ap=Re(Pa)?{gzip:Ba,gunzip:Y2,zcat:ep,gzcat:ep}:{},tp=Object.freeze([31,139]),jr=e=>e!==void 0&&e.length>=2&&e[0]===tp[0]&&e[1]===tp[1],V2=Object.freeze([[31,158],[31,30],[31,157],[31,160]]),K2=Object.freeze([80,75,3,4]),np=(e,t)=>e.length>=t.length&&t.every((n,r)=>e[r]===n),rp=(e,t)=>V2.some(n=>np(e,n))||t&&np(e,K2);function op(e,t){return t.gap??=v("feature","gzip","other formats",`gzip: ${e}: data compressed other than by gzip is not supported`,1),!1}var J2={__proto__:null,"unexpected end of file":"unexpected end of file","incorrect data check":"invalid compressed data--crc error"},ip=e=>J2[e]??"invalid compressed data--format violated",Q2=8;function za(e,t){let n=t.rest,r=o=>({text:`
|
|
35
|
-
gzip: ${e}: ${
|
|
36
|
-
`,status:1,whole:!1});return n===null?r(
|
|
33
|
+
`,exitCode:i}}var ao=new Uint8Array,oo=e=>e.every(e=>e<128),so=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function co(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}var V=class extends Error{constructor(e,t,{limited:n=!1}={}){super(t===void 0?e:`${e} at byte ${t}`),this.name=`ArchiveError`,this.offset=t,this.limited=n}};function lo(e,t){try{return e()}catch(e){throw!(e instanceof V)||e.offset!==void 0?e:new V(e.message,t,{limited:e.limited})}}var uo=class extends V{constructor(e,{bytes:t,limited:n=!1,cause:r}){super(e,void 0,{limited:n}),this.name=`CompressionError`,this.bytes=t,this.cause=r}};function fo(e){try{return[new CompressionStream(e),new DecompressionStream(e)].every(Boolean)}catch{return!1}}async function*po(e){if(Symbol.asyncIterator in e)return yield*e;let t=e.getReader();for(let e=await t.read();!e.done;e=await t.read())yield e.value}function mo(e){let t=0;return new TransformStream({transform(n,r){t+=n.length,t<=e?r.enqueue(n):r.error(RangeError(`output past ${e} bytes`))}})}async function ho(e,t,n,r,i,a){if(!(e instanceof Uint8Array))throw new V(`the data is not a Uint8Array`);let o=new t(n),s=[],c=0,l=()=>a===void 0?s.length===1?s[0]:co(s):a.subarray(0,c);try{for await(let t of po(new Blob([e]).stream().pipeThrough(o).pipeThrough(mo(r))))a===void 0?s.push(t):a.set(t,c),c+=t.length}catch(e){let t=e instanceof RangeError;throw new uo(t?`the data ${i}es past ${r} bytes`:`the data does not ${i}`,{bytes:l(),limited:t,cause:e})}return l()}var go=(e,t,{limit:n=1/0}={})=>ho(e,CompressionStream,t,n,`compress`),_o=(e,t,n)=>ho(e,DecompressionStream,t,n,`decompress`);async function vo(e,t,{limit:n=1/0}={}){try{return await _o(e,t,n)}catch(r){if(t!==`gzip`||!(r instanceof uo)||r.limited||e.at(-1)!==0)throw r;let i=e.findLastIndex(e=>e!==0);for(let r=i+1;r<=Math.min(i+10,e.length-1);r++)try{return await _o(e.subarray(0,r),t,n)}catch(e){if(!(e instanceof uo)||e.limited)throw e}throw r}}var yo=(e,t,n)=>ho(e,DecompressionStream,t,n.length,`decompress`,n),bo=e=>e.type===`directory`?`${e.name}/`:e.name,xo=e=>/(?:^|\/)\.(?:\/|$)/u.test(e)?[`dot-segment names`,"names stored with `.' segments are not supported"]:[`directory names`,`directories stored without a trailing slash are not supported`];function So(e){return e.name===`.`||e.storedName!==bo(e)?e.storedName:e.storedLinkname!==void 0&&e.storedLinkname!==e.linkname?e.storedLinkname:null}function H(e){return e.length<=200?JSON.stringify(e):JSON.stringify(`${e.slice(0,e.codePointAt(199)>65535?199:200)}\u2026`)}var Co=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}]/u,wo=/[\p{Cc}\p{Zl}\p{Zp}\p{Bidi_Control}\\]/u,To=(e,t)=>(t?wo:Co).test(e);function Eo(e,t){if(typeof e!=`string`)throw new V(`${t} is not a string`);if(!e.isWellFormed())throw new V(`${t} is not well-formed Unicode`)}function Do(e){let t=0;for(let n of e){let e=n.codePointAt(0);t+=e<128?1:e<2048?2:e<65536?3:4}return t}var Oo=(e,t)=>e.length>t||e.length*3>t&&Do(e)>t;function ko(e,t){try{return f(e)}catch{throw new V(`${t} is not well-formed Unicode`)}}function Ao(e,t,n){try{return m(e)}catch{throw new V(`${t} is not valid UTF-8`,n)}}var jo={file:420,directory:493,symlink:511},Mo=e=>e===`file`||e===`contiguous-file`,No=e=>e.type===`directory`?`${e.name}/`:e.name;function Po(e,t){if(typeof e!=`object`||!e)throw new V(`an entry is not an object`);let n=e.type??`file`;if(typeof n!=`string`)throw new V(`entry type is not a string`);if(!Object.hasOwn(t,n))throw new V(`entry type ${H(n)} is not one this package writes`);let{name:r}=e;Eo(r,`entry name`);let i=e.data??ao;if(!(i instanceof Uint8Array))throw new V(`data of ${H(r)} is not a Uint8Array`);if(i.length!==0&&!Mo(n))throw new V(`a ${n} cannot carry data (${H(r)})`);let a=e.linkname??``;if(Eo(a,`link target of ${H(r)}`),a!==``&&n!==`hardlink`&&n!==`symlink`)throw new V(`a ${n} cannot have a link target (${H(r)})`);return{name:r,type:n,data:i,linkname:a}}var Fo=512,Io=e=>e===`character-device`||e===`block-device`,Lo={file:48,hardlink:49,symlink:50,"character-device":51,"block-device":52,directory:53,fifo:54,"contiguous-file":55},Ro={pax:120,global:103,longname:76,longlink:75},zo=100,Bo=155,Vo=32,Ho=0,Uo=[[`mode`,100,8],[`uid`,108,8],[`gid`,116,8],[`size`,124,12],[`mtime`,136,12]],Wo=148,Go=156,Ko=157,qo=257,Jo=265,Yo=297,Xo=329,Zo=337,Qo=345,$o=386,es=495,ts=`ustar\x0000`,ns=`ustar \0`,rs=e=>Uint8Array.from(e,e=>e.codePointAt(0)),is=e=>String.fromCodePoint(...e),as=(e,t,n,r)=>e.subarray(t,t+n).set(r),os=e=>8**(e-1)-1,ss=(e,t)=>e>=0&&e<=os(t);function cs(e,t,n,r,i){if(ss(r,n)){as(e,t,n,rs(r.toString(8).padStart(n-1,`0`)));return}if(!i)throw new V(`${r} does not fit an octal field of ${n-1} digits`);e[t]=r<0?255:128;let a=BigInt.asUintN((n-1)*8,BigInt(r));for(let r=t+n-1;r>t;r--)e[r]=Number(a&255n),a>>=8n}function ls(e,t,n,r,i,a=!1){let o=e[t];if(o===128||o===255){let s=0n;for(let r=t+1;r<t+n;r++)s=s<<8n|BigInt(e[r]);if(o===255&&(s=BigInt.asIntN((n-1)*8,s)),s<0n&&!a)throw new V(`the ${r} field is negative`,i);if(s>BigInt(2**53-1)||s<-BigInt(2**53-1))throw new V(`the ${r} field is too large`,i);return Number(s)}let s=/^ *([0-7]*) *$/u.exec(is(us(e.subarray(t,t+n))));if(!s)throw new V(`the ${r} field is not an octal number`,i);return s[1]===``?0:Number.parseInt(s[1],8)}function us(e){let t=e.indexOf(0);return t===-1?e:e.subarray(0,t)}var ds=(e,t,n)=>us(e.subarray(t,t+n));function fs(e){let t=256;for(let n=0;n<Wo;n++)t+=e[n];for(let n=Wo+8;n<Fo;n++)t+=e[n];return t}var ps=e=>e.every(e=>e===0);function ms(e){let t=new Uint8Array(Fo);as(t,Ho,zo,e.name);for(let[n,r,i]of Uo)cs(t,r,i,e[n],e.gnu);return t[Go]=e.typeflag,as(t,Ko,zo,e.linkname),as(t,qo,8,rs(e.gnu?ns:ts)),as(t,Jo,Vo-1,e.uname),as(t,Yo,Vo-1,e.gname),e.devmajor!==null&&cs(t,Xo,8,e.devmajor,e.gnu),e.devminor!==null&&cs(t,Zo,8,e.devminor,e.gnu),as(t,Qo,Bo,e.prefix),as(t,Wo,8,rs(`${fs(t).toString(8).padStart(6,`0`)}\0 `)),t}function hs(e,t){if(fs(e)!==ls(e,Wo,8,`checksum`,t))throw new V(`header checksum does not match`,t);let n=is(e.subarray(qo,qo+8)),r=n===ns;if(!r&&n!==ts)throw new V(`header is not in the ustar, pax or gnu format`,t);if(r&&!ps(e.subarray($o,es)))throw new V(`header carries an old GNU sparse map or real size`,t);let i=e[Go],a=i===Lo[`character-device`]||i===Lo[`block-device`];return{gnu:r,typeflag:i,name:ds(e,Ho,zo),prefix:r?ao:ds(e,Qo,Bo),linkname:ds(e,Ko,zo),uname:ds(e,Jo,Vo),gname:ds(e,Yo,Vo),...Object.fromEntries(Uo.map(([n,r,i])=>[n,ls(e,r,i,n,t,n===`mtime`)])),devmajor:a?ls(e,Xo,8,`devmajor`,t):0,devminor:a?ls(e,Zo,8,`devminor`,t):0}}var gs=4096,_s=255;function vs(e,t){if(Eo(e,t),e===``)throw new V(`${t} is empty`);if(To(e,!0))throw new V(`${t} ${H(e)} holds a control or formatting character, or a backslash`);if(e.startsWith(`/`))throw new V(`${t} ${H(e)} is absolute`);let n=e.split(`/`);if(/^[a-zA-Z]:/u.test(n.find(e=>e!==`.`)??``))throw new V(`${t} ${H(e)} starts with a drive letter`);if(Oo(e,gs))throw new V(`${t} ${H(e)} is longer than ${gs} bytes`);for(let r of n)if(Oo(r,_s))throw new V(`${t} ${H(e)} has a segment longer than ${_s} bytes`);return n}function ys(e,t,n=!1){let r=vs(e,t),i=r.at(-1)===``;if(i){if(!n)throw new V(`${t} ${H(e)} ends in a slash but is not a directory`);r.pop()}let a=r.filter(e=>e!==`.`);for(let n of a){if(n===``)throw new V(`${t} ${H(e)} has an empty segment`);if(n===`..`)throw new V(`${t} ${H(e)} has a .. segment`)}if(a.length===0){if(!n)throw new V(`${t} ${H(e)} names the archive root but is not a directory`);return`.`}let o=i||a.length<r.length?a.join(`/`):e;if(Oo(o,gs-+!!n))throw new V(`${t} ${H(e)} is longer than ${gs} bytes`);return o}function bs(e=0){if(!(Number.isSafeInteger(e)&&e>=0))throw new V(`symlinksAbove ${String(e)} is not a whole number of levels`);return e}function xs(e,t,n=0){let r=vs(t,`symlink target of ${H(e)}`).filter(e=>e!==``&&e!==`.`),i=e.split(`/`).length-1;for(let a of r)if(i+=a===`..`?-1:1,i<-n){let r=n===0?`outside the archive`:`more than ${n} level${n===1?``:`s`} above the archive`;throw new V(`symlink ${H(e)} points ${r}, to ${H(t)}`)}return r}function Ss(e,t,n,r=0){let i=ys(e,`entry name`,t===`directory`),a=n;return t===`symlink`?xs(i,n,r):t===`hardlink`&&(a=ys(n,`hard link target of ${H(i)}`)),{name:i,linkname:a}}var Cs=()=>({kind:void 0,entry:void 0,symlink:void 0,first:void 0,firstNode:void 0,rest:void 0});function ws(e,t,n=!0){if(e.first===t)return e.firstNode;let r=e.rest?.get(t);return r!==void 0||!n||(r=Cs(),e.first===void 0?(e.first=t,e.firstNode=r):(e.rest??=new Map,e.rest.set(t,r))),r}var Ts=[`type`,`mode`,`uid`,`gid`,`mtime`,`uname`,`gname`,`linkname`,`devmajor`,`devminor`],Es=class{#e=Cs();#t;#n;constructor(e=!1,t=0){this.#t=e,this.#n=t}get above(){return this.#n}add(e){let{name:t,type:n}=e,r=n===`symlink`?e.linkname:void 0;if(n===`hardlink`){let n=this.#o(e.linkname);if(n?.kind!==`entry`)throw new V(`hard link ${H(t)} targets ${H(e.linkname)}, which is not an earlier non-directory entry`);r=n.symlink,r!==void 0&&this.#r(t,r,`hard link ${H(t)} to symlink ${H(e.linkname)}`)}let i=t.split(`/`),a=this.#a(i),o=a.at(-1);if(o.kind!==void 0&&o.kind!==`implied`){let n=Ts.find(t=>o.entry[t]!==e[t]);if(n!==void 0)throw new V(`duplicate entry ${H(t)} differs in ${n}`);if(o.entry.data===void 0)throw new V(`duplicate entry ${H(t)}, which only the in-memory call can compare with the earlier one`);if(!so(o.entry.data,e.data))throw new V(`duplicate entry ${H(t)} differs in data`);return}let s=n===`directory`?`directory`:`entry`;if(o.kind!==void 0&&s!==`directory`)throw new V(`${H(t)} is already a directory, so it cannot be a ${n}`);for(let e=1;e<i.length;e++)this.#i(a[e],()=>`${H(t)} is inside ${H(i.slice(0,e).join(`/`))}, which is not a directory`);o.kind=s,o.symlink=r,o.entry=this.#t?e:Object.fromEntries(Ts.map(t=>[t,e[t]])),n===`symlink`&&this.#r(t,e.linkname,`symlink ${H(t)}`)}#r(e,t,n){let r=xs(e,t,this.#n),i=e.split(`/`).slice(0,-1),a=this.#a(i);for(let[e,t]of r.entries()){if(t===`..`){if(i.length===0)return;i.pop(),a.pop()}else i.push(t),a.push(ws(a.at(-1),t));e<r.length-1&&i.length&&this.#i(a.at(-1),()=>`the target of ${n} passes through ${H(i.join(`/`))}, which is not a directory`)}}#i(e,t){if(e.kind===`entry`)throw new V(t());e.kind??=`implied`}#a(e){let t=[this.#e];for(let n of e)t.push(ws(t.at(-1),n));return t}#o(e){let t=this.#e;for(let n of e.split(`/`))if(t=ws(t,n,!1),t===void 0)return;return t}};function Ds(e,t){let n=f(` ${e}=${t}
|
|
34
|
+
`),r=String(n.length).length,i=n.length+r+ +(String(n.length+r).length>r);return co([f(String(i)),n])}var Os=e=>co(e.map(([e,t])=>Ds(e,t))),ks=`pax records cannot be changed`,As=class extends Map{set(){throw TypeError(ks)}delete(){throw TypeError(ks)}clear(){throw TypeError(ks)}},js=(e,t,n)=>Map.prototype.set.call(e,t,n);function Ms(e,t){let n=new As;for(let r=0;r<e.length;){let i=r,a=0;for(;i<e.length&&e[i]>=48&&e[i]<=57;i++)a=a*10+(e[i]-48);if(i===r||e[r]===48||e[i]!==32)throw new V(`a pax record does not begin with its length`,t);let o=r+a;if(o>e.length||e[o-1]!==10)throw new V(`a pax record is not as long as it says`,t);let s=e.indexOf(61,i+1);if(s===-1||s>=o-1)throw new V(`a pax record has no keyword=value`,t);let c=Ao(e.subarray(i+1,s),`a pax record`,t);if(c===``||To(c,!1)||c.includes(` `))throw new V(`pax keyword ${H(c)} is malformed`,t);if(n.has(c))throw new V(`pax keyword ${c} repeats`,t);js(n,c,Ao(e.subarray(s+1,o-1),`a pax record`,t)),r=o}return n}var Ns=new Set([`gnu`,`ustar`,`pax`]),Ps=47;function Fs(e,t,n=!1){if(!Number.isSafeInteger(e)||!n&&e<0)throw new V(`${t} ${String(e)} is not ${n?`an integer`:`a non-negative integer`}`);return e}function Is(e,t){if(Eo(e,t),To(e,!1))throw new V(`${t} ${H(e)} holds a control or formatting character`);return e}function Ls(e){let t=Po(e,Lo),{name:n,type:r}=t,i=Fs(e.devmajor??0,`devmajor`),a=Fs(e.devminor??0,`devminor`);if((i!==0||a!==0)&&!Io(r))throw new V(`a ${r} cannot have device numbers (${H(n)})`);let o=Fs(e.mode??jo[r]??420,`mode`);if(o>4095)throw new V(`mode ${o.toString(8)} has bits beyond the permission bits`);return{...t,mode:o,uid:Fs(e.uid??0,`uid`),gid:Fs(e.gid??0,`gid`),mtime:Fs(e.mtime??0,`mtime`,!0),uname:Is(e.uname??``,`uname`),gname:Is(e.gname??``,`gname`),devmajor:i,devminor:a}}function Rs(e,t=e.length){let n=new Uint8Array(Math.ceil(t/Fo)*Fo);return n.set(e),n}var zs=(e,t,n,r,i)=>ms({gnu:i,name:ko(e,`header name`).subarray(0,zo),prefix:ao,linkname:ao,uname:ao,gname:ao,typeflag:r,mode:420,uid:0,gid:0,size:t,mtime:n,devmajor:null,devminor:null}),Bs=(e,t)=>[zs(`././@LongLink`,e.length+1,0,t,!0),Rs(e,e.length+1)];function Vs(e,t){let n=Os(t),r=e.name.lastIndexOf(`/`);return[zs(r===-1?`./PaxHeaders/${e.name}`:`${e.name.slice(0,r)}/PaxHeaders/${e.name.slice(r+1)}`,n.length,Math.max(0,Math.min(e.mtime,os(12))),Ro.pax,!1),Rs(n)]}function Hs(e,t){let{length:n}=e;if(n>Bo+zo+1)throw new V(`name ${H(t)} is longer than 256 bytes, which ustar cannot hold`);let r=n;r>Bo+1?r=Bo+1:e[r-1]===Ps&&r--;let i=r-1;for(;i>0&&e[i]!==Ps;)i--;let a=n-i-1;if(i===0||a>zo||a===0)throw new V(`name ${H(t)} cannot be split into ustar's prefix and name fields`);return{prefix:e.subarray(0,i),name:e.subarray(i+1)}}function Us(e,t){let n=t===`gnu`,r=[],i=[],a=No(e),o=ko(a,`entry name`),s=ao,c=ko(e.linkname,`link target of ${H(e.name)}`);if(c.length>zo){if(n)i.push(...Bs(c,Ro.longlink));else if(t===`pax`)r.push([`linkpath`,e.linkname]);else throw new V(`link target of ${H(e.name)} is longer than 100 bytes, which ustar cannot hold`);c=c.subarray(0,zo)}t===`pax`&&(o.length>zo||!oo(o))&&r.push([`path`,a]),o.length>zo&&(n?i.push(...Bs(o,Ro.longname)):t===`ustar`&&({prefix:s,name:o}=Hs(o,e.name)),o.length>zo&&(o=o.subarray(0,zo)));let l=(i,a,o)=>{if(n||ss(a,o))return a;if(t===`pax`)return r.push([i,String(a)]),0;throw new V(`${i} ${a} of ${H(e.name)} does not fit the ustar format`)},u=(n,i)=>{let a=ko(i,n);if(a.length<Vo&&(t!==`pax`||oo(a)))return a;if(t!==`pax`)throw new V(`${n} of ${H(e.name)} is longer than 31 bytes, which the ${t} format cannot hold`);return r.push([n,i]),a.subarray(0,Vo-1)},d=Io(e.type),f={gnu:n,name:o,prefix:s,linkname:c,typeflag:Lo[e.type],mode:e.mode,uid:l(`uid`,e.uid,8),gid:l(`gid`,e.gid,8),size:l(`size`,e.data.length,12),mtime:l(`mtime`,e.mtime,12),devmajor:d?l(`devmajor`,e.devmajor,8):null,devminor:d?l(`devminor`,e.devminor,8):null,uname:u(`uname`,e.uname),gname:u(`gname`,e.gname)};r.length&&i.push(...Vs(e,r)),i.push(ms(f));let p=e.data.length%Fo;return e.data.length&&i.push(e.data),p&&i.push(new Uint8Array(Fo-p)),i}function Ws({format:e=`gnu`,blocking:t=20,symlinksAbove:n}={},r=!1){if(!Ns.has(e))throw new V(`format ${H(String(e))} is not gnu, ustar or pax`);if(!Number.isSafeInteger(t)||t<1)throw new V(`blocking is not a positive integer`);let i=new Es(r,bs(n)),a=0;return{add(t){let n=Ls(t),r={...n,...Ss(n.name,n.type,n.linkname,i.above)};i.add(r);let o=Us(r,e);for(let e of o)a+=e.length;return o},end(){let e=t*Fo,n=(a+2*Fo)%e;return[new Uint8Array(2*Fo+(n?e-n:0))]}}}function Gs(e,t){let n=Ws(t,!0),r=[];for(let t of e)r.push(...n.add(t));return co([...r,...n.end()])}var Ks=e=>Object.entries(e).map(([e,t])=>[t,e]),qs=new Map([...Ks(Lo),[0,`file`]]),Js=new Map(Ks(Ro)),Ys=1<<20,Xs=new Set([`SCHILY.realsize`,`SUN.holesdata`]);function Zs(e,t){for(let n of e)if(n.startsWith(`GNU.sparse.`)||Xs.has(n))throw new V(`sparse entries are not supported`,t)}function Qs(e,t,n){if(!/^(?:0|[1-9][0-9]*)$/u.test(e)||!Number.isSafeInteger(Number(e)))throw new V(`pax ${t}=${H(e)} is not a whole number this package can hold`,n);return Number(e)}function $s(e,t,n){let r=/^(-?)([0-9]+)(?:\.([0-9]+))?$/u.exec(e);if(!r)throw new V(`pax ${t}=${H(e)} is not a time`,n);let[,i,a,o=``]=r,s=Number(i+a)-(i&&/[1-9]/u.test(o)?1:0);if(!Number.isSafeInteger(s))throw new V(`pax ${t}=${H(e)} is out of range`,n);return s}var ec=()=>({pax:null,longname:null,longlink:null}),tc=new As,nc=class{#e=[];#t=0;#n=0;#r=0;#i;#a=ec();#o=null;#s=null;#c=0;#l=!1;#u=0;#d;constructor(e,{symlinksAbove:t,maxEntries:n=1/0}={}){if(n!==1/0&&!(Number.isSafeInteger(n)&&n>=0))throw new V(`maxEntries ${String(n)} is not a whole number of entries`);this.#i=new Es(e,bs(t)),this.#d=n}push(e){if(!(e instanceof Uint8Array))throw new V(`a chunk is not a Uint8Array`);if(this.#l)return this.#p(e,this.#r),this.#r+=e.length,[];e.length&&(this.#e.push(e),this.#n+=e.length);let t=[],n=!0;for(;n&&!this.#l;)n=this.#s===null?this.#m():this.#h(t);return t}end(){if(!this.#l)throw this.#r===0&&this.#n===0?new V(`the archive is empty`):this.#s===null&&this.#n===0?new V(this.#c?`the archive ends with a lone zero block`:`the archive has no end marker`,this.#r):new V(`the archive is truncated`,this.#r)}#f(e){if(this.#n<e)return null;if(e===0)return ao;let t;if(this.#t+e<=this.#e[0].length)t=this.#e[0].subarray(this.#t,this.#t+e),this.#t+=e;else{t=new Uint8Array(e);let n=0;for(let r=0,i=this.#t;r<e;n++,i=0){let a=this.#e[n].subarray(i,i+e-r);t.set(a,r),r+=a.length,this.#t=i+a.length}this.#e=this.#e.slice(n-1)}return this.#t===this.#e[0].length&&(this.#e.shift(),this.#t=0),this.#n-=e,this.#r+=e,t}#p(e,t){if(!ps(e))throw new V(`data after the end of the archive`,t)}#m(){let e=this.#f(Fo);if(e===null)return!1;let t=this.#r-Fo;if(ps(e)){if(Object.values(this.#a).some(e=>e!==null))throw new V(`an extended header is not followed by an entry`,t);if(++this.#c===2){this.#l=!0;let e=this.#r;this.#p(this.#f(this.#n),e)}return!0}if(this.#c)throw new V(`a lone zero block where a header should be`,t);let n=hs(e,t),r=Js.get(n.typeflag);if(r===void 0){if(++this.#u>this.#d)throw new V(`the archive holds more than ${this.#d} entries`,t,{limited:!0});this.#s={extended:null,at:t,...this.#g(n,t)}}else{if(n.size>Ys)throw new V(`a ${r} header of ${n.size} bytes is longer than any tar writes`,t);this.#s={extended:r,size:n.size,at:t,entry:null}}return!0}#h(e){let{extended:t,size:n,at:r,entry:i}=this.#s,a=Math.ceil(n/Fo)*Fo,o=this.#f(a);if(o===null)return!1;if(!ps(o.subarray(n)))throw new V(`the padding after an entry is not zero`,r);this.#s=null;let s=o.subarray(0,n);if(t===null)i.data=s,lo(()=>this.#i.add(i),r),e.push(i);else if(t===`global`){this.#o=Ms(s,r);for(let e of[`path`,`linkpath`,`size`])if(this.#o.has(e))throw new V(`a global header sets ${e}`,r);Zs(this.#o.keys(),r)}else{if(this.#a[t]!==null)throw new V(`two ${t} headers ahead of one entry`,r);this.#a[t]=t===`pax`?Ms(s,r):Ao(us(s),`a ${t} header`,r)}return!0}#g(e,t){let n=qs.get(e.typeflag);if(n===void 0)throw new V(`entry type ${H(String.fromCodePoint(e.typeflag))} is not one this package reads`,t);let{pax:r,longname:i,longlink:a}=this.#a;this.#a=ec();let o=e=>r?.get(e)??this.#o?.get(e);if(r!==null&&Zs(r.keys(),t),i!==null&&o(`path`)!==void 0)throw new V(`both a long name header and a pax path name one entry`,t);if(a!==null&&o(`linkpath`)!==void 0)throw new V(`both a long link header and a pax linkpath name one entry`,t);let s=i??o(`path`)??this.#_(e,t),c=a??o(`linkpath`)??Ao(e.linkname,`link target`,t),{name:l,linkname:u}=lo(()=>Ss(s,n,c,this.#i.above),t),d=(n,r=Qs)=>{let i=o(n);return i===void 0?e[n]:r(i,n,t)},f=d(`size`);if(f!==0&&!Mo(n))throw new V(`a ${n} entry has a size`,t);if(u!==``&&n!==`hardlink`&&n!==`symlink`)throw new V(`a ${n} entry has a link target`,t);let p=n=>{let r=o(n)??Ao(e[n],n,t);if(To(r,!1))throw new V(`${n} ${H(r)} holds a control or formatting character`,t);return r};return{entry:{name:l,type:n,mode:e.mode&4095,uid:d(`uid`),gid:d(`gid`),mtime:d(`mtime`,$s),uname:p(`uname`),gname:p(`gname`),linkname:u,devmajor:Io(n)?d(`devmajor`):0,devminor:Io(n)?d(`devminor`):0,data:ao,storedName:s,storedLinkname:c,pax:r??tc,globalPax:this.#o??tc},size:f}}#_(e,t){let n=Ao(e.name,`entry name`,t);return e.prefix.length?`${Ao(e.prefix,`name prefix`,t)}/${n}`:n}};function rc(e,t){let n=new nc(!0,t),r=n.push(e);return n.end(),r}var ic=new Map([[7,`a`],[8,`b`],[12,`f`],[10,`n`],[13,`r`],[9,`t`],[11,`v`]]),ac=e=>`\\`+e.toString(8).padStart(3,`0`);function oc(e,t){let n=$t(t),r=_n(t.locale),i=``;for(let t of e){let e=t.codePointAt(0);if(t===`\\`)i+=`\\\\`;else if(ic.has(e))i+=`\\`+ic.get(e);else if(e<128?e>=32&&e<127:!n&&r.has(`print`,e))i+=t;else for(let e of E(t))i+=ac(e)}return i}var sc={__proto__:null,file:`-`,"contiguous-file":`C`,directory:`d`,symlink:`l`,hardlink:`h`,fifo:`p`,"character-device":`c`,"block-device":`b`};function cc(e,t){let n=[...`rwxrwxrwx`].map((e,n)=>t&256>>n?e:`-`),r=(e,r,i)=>{(t&e)!==0&&(n[r]=n[r]===`x`?i:i.toUpperCase())};return r(2048,2,`s`),r(1024,5,`s`),r(512,8,`t`),sc[e]+n.join(``)}var lc=e=>E(e).length,uc=new Set([`character-device`,`block-device`]);function dc(e,{numericOwner:t=!1,utc:n=!1}={}){let r=19,i=16,a=n||e.vars.has(`TZ`),o=n=>{let o=!t&&n.uname!==``?n.uname:String(n.uid),s=!t&&n.gname!==``?n.gname:String(n.gid),c=uc.has(n.type)?`${n.devmajor},${n.devminor}`:String(n.data.length),l=lc(o)+1+lc(s)+1+c.length;l>r&&(r=l);let u=pc(n.mtime,a);return u.length>i&&(i=u.length),`${cc(n.type,n.mode)} ${o}/${s} ${` `.repeat(r-l)}${c} ${u.padEnd(i)} `+oc(bo(n),e)+fc(n,e)};return o.mkdir=t=>`${cc(`directory`,448)} ${`Creating directory:`.padStart(r+1+i)} ${oc(t,e)}`,o}function fc(e,t){return e.type===`symlink`?` -> ${oc(e.linkname,t)}`:e.type===`hardlink`?` link to ${oc(e.linkname,t)}`:``}function pc(e,t){let n=new Date(e*1e3);if(Number.isNaN(n.getTime()))throw new T(`feature`,`archive time`,`a modification time of ${e} seconds is past what this terminal can print`);return xb(n,`%Y-%m-%d %H:%M`,t)}var mc=(e,t)=>oc(e,t).replaceAll(`:`,`\\:`);function hc(e,t){let n=oc(e,t);return $t(t)?`'${n.replaceAll(`'`,`\\'`)}'`:`\u2018${n}\u2019`}function gc(e){let t=e.length;for(;t>1&&e[t-1]===`/`;)t--;return e.slice(0,t)}function _c(e){for(let t=0;t<e.length;t++)if(e[t]===`\\`)t++;else if(`?*[]`.includes(e[t]))return!0;return!1}var vc=(e,t)=>t===e||t.startsWith(e)&&t[e.length]===`/`;function yc(e){let t=[],n=[];for(let r of e)r.dir===void 0?r.name!==``&&t.push({given:r.name,operand:gc(r.name),dirs:[...n],found:!1}):n.push(r.dir);let r={dirs:n};return{names:t,match(e){if(t.length===0)return r;let n=t.find(t=>vc(t.operand,e));return n!==void 0&&(n.found=!0),n??null}}}function bc(e,t,n){for(let r of e.names)r.found||(!n&&_c(r.operand)&&(t.warn(`Pattern matching characters used in file names`),t.warn(`Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning`)),t.error(`${mc(r.operand,t.ctx)}: Not found in archive`))}function xc(e,t,n){let{ctx:r}=n,i=k(e,t,r.fs),a=i.error??(r.fs.isDir(i.path)?null:`Not a directory`);return a===null?i.path:(n.fatal(`${mc(t,r)}: Cannot open: ${a}`),null)}async function Sc(e,t){try{return{bytes:await vo(e,t),error:null}}catch(e){if(!(e instanceof uo))throw e;return{bytes:e.bytes,error:e.cause?.cause?.message??e.cause?.message??`corrupt input`}}}var Cc=10,wc=8,Tc=8,Ec=16,Dc=4,Oc=2,kc=8,Ac=`gzip`,jc=`deflate-raw`,Mc=(e,t)=>e[t]+e[t+1]*256+e[t+2]*65536+e[t+3]*16777216;function Nc(e,t){if(e[t]!==31||e[t+1]!==139||e[t+2]!==Tc)return-1;let n=e[t+3],r=t+Cc;if((n&Dc)!==0){if(r+2>e.length)return-1;r+=2+e[r]+e[r+1]*256}for(let t of[kc,Ec])if((n&t)!==0){for(;r<e.length&&e[r]!==0;)r++;r++}return(n&Oc)!==0&&(r+=2),r<=e.length?r-t:-1}var Pc=64;async function Fc(e,t){let n=Nc(e,t);if(n<0)return null;let r=(await Sc(e.subarray(t+n),jc)).bytes.length%4294967296,i=Pc;for(let a=t+n+wc;a<=e.length&&i>0;a++){if(Mc(e,a-4)!==r)continue;i--;let n=await Sc(e.subarray(t,a),Ac);if(n.error===null)return{bytes:n.bytes,end:a}}return null}async function Ic(e){let t=await Sc(e,Ac);if(t.error===null||!fo(jc))return{...t,rest:null};let n=[],r=0;for(;;){let t=await Fc(e,r);if(t===null)break;n.push(t.bytes),r=t.end}return r===0||r===e.length?{...t,rest:null}:{bytes:ct(n),error:t.error,rest:e.subarray(r)}}function U(e,t={}){let n=Rc(t.short),r=Rc(t.long),i=Rc(t.valueShort),a=Rc(t.valueLong),o=Rc(t.repeatable),s=new Set,c=new Map,l=[],u=[],d=0;function f(t,l,f=!1){let p=(f?`--`:`-`)+t,m=(f?a:i).has(t)||o.has(t)&&(!f||t.length>1);if(m){let n=l??e[++d];if(l===null&&d>=e.length)throw Error(p+` requires an argument`);if(o.has(t)){let e=c.get(t);e?e.push(n):c.set(t,[n])}else c.set(t,n);u.push({name:t,value:n})}else{if(!(f?r:n).has(t))throw new T(`option`,p,`unknown option: `+p);if(f&&l!==null)throw Error(`option `+p+` doesn't allow an argument`);s.add(t),u.push({name:t})}return m}for(;d<e.length;d++){let r=e[d];if(r===`--`){l.push(...e.slice(d+1));break}if(r.startsWith(`--`)&&r.length>2){let e=r.indexOf(`=`);f(e===-1?r.slice(2):r.slice(2,e),e===-1?null:r.slice(e+1),!0);continue}if(r.startsWith(`-`)&&r.length>1&&!(t.numericOperands&&Lc(r,n,i,o))){for(let e=1;e<r.length&&!f(r[e],e+1<r.length?r.slice(e+1):null);e++);continue}if(t.stopAtFirstPositional){l.push(...e.slice(d));break}l.push(r)}return{flags:s,values:c,positional:l,order:u}}function Lc(e,t,n,r){if(!/^-\d/u.test(e))return!1;let i=e[1];return!t.has(i)&&!n.has(i)&&!r.has(i)}function Rc(e){return e instanceof Set?e:new Set(e??[])}var zc=`gzip`,Bc=(e,t,n)=>il(e,[`-d`,...t],n),Vc=(e,t,n)=>il(e,[`-d`,`-c`,...t],n),Hc=fo(zc)?{gzip:il,gunzip:Bc,zcat:Vc,gzcat:Vc}:{},Uc=Object.freeze([31,139]),Wc=e=>e!==void 0&&e.length>=2&&e[0]===Uc[0]&&e[1]===Uc[1],Gc=Object.freeze([[31,158],[31,30],[31,157],[31,160]]),Kc=Object.freeze([80,75,3,4]),qc=(e,t)=>e.length>=t.length&&t.every((t,n)=>e[n]===t),Jc=(e,t)=>Gc.some(t=>qc(e,t))||t&&qc(e,Kc);function Yc(e,t){return t.gap??=C(`feature`,`gzip`,`other formats`,`gzip: ${e}: data compressed other than by gzip is not supported`,1),!1}var Xc={__proto__:null,"unexpected end of file":`unexpected end of file`,"incorrect data check":`invalid compressed data--crc error`},Zc=e=>Xc[e]??`invalid compressed data--format violated`,Qc=8;function $c(e,t){let n=t.rest,r=t=>({text:`
|
|
35
|
+
gzip: ${e}: ${t}
|
|
36
|
+
`,status:1,whole:!1});return n===null?r(Zc(t.error)):n.every(e=>e===0)?null:n.length>=2&&!Wc(n)?{text:`
|
|
37
37
|
gzip: ${e}: decompression OK, trailing garbage ignored
|
|
38
|
-
`,status:2,whole:!0}:n.length>2&&n[2]!==
|
|
39
|
-
`,status:1,whole:!0}:r(
|
|
38
|
+
`,status:2,whole:!0}:n.length>2&&n[2]!==Qc?{text:`gzip: ${e}: unknown method ${n[2]} -- not supported
|
|
39
|
+
`,status:1,whole:!0}:r(Zc(t.error))}function el(e,t,n){let r=$c(t,n);return r===null||(e.stderr+=r.text,e.status=e.status===1?1:r.status),!1}var tl=Object.freeze({__proto__:null,".gz":``,".tgz":`.tar`,".taz":`.tar`,"-gz":``,".z":``,"-z":``,_z:``}),nl=`.gz`,rl=Object.freeze([`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`]);async function il(e,t,n){let{flags:r,positional:i}=U(t,{short:[...rl,`d`,`c`,`k`,`f`],long:[`decompress`,`uncompress`,`stdout`,`to-stdout`,`keep`,`force`]}),a=rl.find(e=>r.has(e));if(a!==void 0)return C(`option`,`gzip`,`-${a}`,`gzip: -${a}: choosing a compression level is not supported`,1);let o={decompressing:[`d`,`decompress`,`uncompress`].some(e=>r.has(e)),stdout:[`c`,`stdout`,`to-stdout`].some(e=>r.has(e)),keep:r.has(`k`)||r.has(`keep`),force:r.has(`f`)||r.has(`force`)},s={ctx:n,events:[],stderr:``,status:0,gap:null,stopped:!1};if(i.length===0)await al(o,s);else for(let e of i)if(await ol(e,o,s),s.stopped)break;if(s.gap)return s.gap;let c=[...s.events,...s.stderr?[{fd:2,text:s.stderr}]:[]];return{stdout:``,stderr:s.stderr,exitCode:s.status,events:c}}async function al(e,t){if(!e.force&&(e.decompressing?Pn(t.ctx):Fn(t.ctx))){let[n,r]=e.decompressing?[`read from`,`decompression`]:[`written to`,`compression`];t.stderr+=`gzip: compressed data not ${n} a terminal. Use -f to force ${r}.
|
|
40
40
|
For help, type: gzip -h
|
|
41
|
-
`,t.status=1,t.stopped=!0;return}let n=t.ctx.stdinLeft,r=t.ctx.stdinBytes;return
|
|
42
|
-
`),
|
|
43
|
-
`,e.status=e.status===1?1:n,!1}var
|
|
44
|
-
gzip: stdin: ${e.length<2
|
|
45
|
-
`),
|
|
46
|
-
${
|
|
47
|
-
`,status:t}});function
|
|
48
|
-
`).join(
|
|
41
|
+
`,t.status=1,t.stopped=!0;return}let n=t.ctx.stdinLeft,r=t.ctx.stdinBytes;return I(t.ctx,``,!0),e.decompressing?ml(`stdin`,r??E(n),{...e,stdout:!0},t):_l(await go(r??E(n),zc),t)}function ol(e,t,n){let{ctx:r}=n;if(e===`-`)return al(t,n);if(!t.stdout&&!t.force&&sl(e,r))return xl(n,`${e}: Too many levels of symbolic links`,1);let i=P(r,`gzip`,e);return i.error?xl(n,`${e}: ${i.error}`,1):r.fs.isDir(i.path)?xl(n,`${e} is a directory -- ignored`,2):t.decompressing?pl(e,i.path,t,n):cl(e,i.path,t,n)}function sl(e,t){let n=k(t.cwd,e,t.fs,{follow:!1});return n.path!==null&&t.fs.isLink?.(n.path)===!0}async function cl(e,t,n,r){let{ctx:i}=r,a=hl(e);if(!n.stdout&&!n.force&&a!==void 0)return bl(r,`${e} already has ${a} suffix -- unchanged`);let o=fl(await go(zn(i.fs,t),zc),e.slice(e.lastIndexOf(`/`)+1),ll(i));return n.stdout?_l(o,r):vl(e+nl,o,e,n,r)}var ll=e=>Math.floor(e.createdAt/1e3),ul=10,dl=8;function fl(e,t,n){let r=E(t);if(e.length<ul||e[3]!==0||r.includes(0))return e;let i=new Uint8Array(e.length+r.length+1);i.set(e.subarray(0,ul)),i[3]=dl;for(let e=0;e<4;e++)i[4+e]=n>>>8*e&255;return i.set(r,ul),i.set(e.subarray(ul),ul+r.length+1),i}function pl(e,t,n,r){let{ctx:i}=r;return!n.stdout&&hl(e)===void 0?xl(r,`${e}: unknown suffix -- ignored`,2):ml(e,zn(i.fs,t),n,r,t)}async function ml(e,t,n,r,i=null){let{ctx:a}=r,o=n.force&&n.stdout;if(t!==void 0&&Jc(t,!0))return Yc(e,r);if(!Wc(t))return o?_l(t,r):yl(r,`${e}: ${gl(t,i,a)?`unexpected end of file`:`not in gzip format`}`);let s=await Ic(t),c=s.rest,l=c!==null&&c.length>0&&!Wc(c)?c:null;if(l!==null&&Jc(l,!1))return Yc(e,r);let u=hl(e);if(n.stdout?_l(s.bytes,r):vl(e.slice(0,-u.length)+tl[u],s.bytes,e,n,r)){if(l!==null&&o)return _l(l,r);s.error&&el(r,e,s)}}var hl=e=>Object.keys(tl).find(t=>e.length>t.length&&e.endsWith(t));function gl(e,t,n){let r=e??p(n.fs.readFile(t).slice(0,2));return r.length===0||r.length===1&&r[0]!==0}var _l=(e,t)=>(t.events.push({fd:1,bytes:e}),!0);function vl(e,t,n,r,i){let{ctx:a}=i,o=k(a.cwd,e,a.fs,{follow:!1}).path;if(o!==null&&!r.force)return xl(i,`${e} already exists;${Pn(a)?` do you wish to overwrite (y or n)? `:``} not overwritten`,2);if(o!==null&&a.fs.isLink?.(o)!==!0&&a.fs.isDir(o))return xl(i,`${e}: Is a directory`,1);o!==null&&a.fs.removeWritable(a.cwd,e);let s;try{s=a.writable&&a.fs.openWritable?.(a.cwd,e)}catch(t){return xl(i,`${e}: ${t.message}`,1)}return s?(s.writeBytes(t),r.keep||a.fs.removeWritable(a.cwd,n),!0):(i.gap??=C(`feature`,`gzip`,`read-only target`,`gzip: ${e}: file system is read-only`,1),!1)}var yl=(e,t)=>xl(e,t,1,`
|
|
42
|
+
`),bl=(e,t)=>xl(e,t,e.status);function xl(e,t,n,r=``){return e.stderr+=`${r}gzip: ${t}
|
|
43
|
+
`,e.status=e.status===1?1:n,!1}var Sl=new Set([`atime`,`charset`,`comment`,`ctime`,`gid`,`gname`,`linkpath`,`mtime`,`path`,`size`,`uid`,`uname`,`RHT.security.selinux`,`SCHILY.acl.access`,`SCHILY.acl.default`]),Cl=e=>Sl.has(e)||e.startsWith(`SCHILY.xattr.`),wl=e=>e===`GNU.dumpdir`||e.startsWith(`GNU.volume.`),Tl=-(2n**63n),El=2n**63n-1n;function Dl(e){let t=/^(-?[0-9]+)(?:\.([0-9]*))?$/u.exec(e);if(t===null)return!1;let n=BigInt(t[1])-(t[1].startsWith(`-`)&&/[1-9]/u.test(t[2]??``)?1n:0n);return n>=Tl&&n<=El}function Ol(e,t){for(let[n,r]of e){if(wl(n))return[`extended header`,`${t(n)}: records of multi-volume and incremental archives are not supported`];if((n===`atime`||n===`ctime`)&&!Dl(r))return[`extended header`,`${t(`${n}=${r}`)}: extended header times GNU would reject are not supported`]}return null}function kl(e,t){let n=[],r=[],i=null;for(let a of e){let e=(a.globalPax===i?null:Ol(a.globalPax,t))??Ol(a.pax,t);if(e!==null)return{gap:e};i=a.globalPax;let o=So(a);if(o!==null){let[e,n]=xo(o);return{gap:[e,`${t(o)}: ${n}`]}}n.push([...a.pax.keys()].filter(e=>!Cl(e)).map(e=>`Ignoring unknown extended header keyword '${e}'`));let s=a.pax.get(`mtime`)??a.globalPax.get(`mtime`);r.push(s===void 0?a.mtime:Number(s))}return{warnings:n,mtimes:r}}var Al=512,jl=10,Ml=e=>({entries:[],child:e,warnings:[],mtimes:[]}),Nl=[{bytes:[31,157],option:`-Z`},{bytes:[31,139],option:`-z`},{bytes:[66,90,104],option:`-j`},{bytes:[76,90,73,80],option:`--lzip`},{bytes:[255,76,90,77,65,0],option:`--lzma`},{bytes:[93,0,0],option:`--lzma`},{bytes:[137,76,90,79],option:`--lzop`},{bytes:[253,55,122,88,90,0],option:`-J`},{bytes:[40,181,47,253],option:`--zstd`}],Pl=e=>Nl.find(({bytes:t})=>t.length<=e.length&&t.every((t,n)=>e[n]===t)),Fl={__proto__:null,gz:`-z`,tgz:`-z`,taz:`-z`,Z:`-Z`,taZ:`-Z`,bz2:`-j`,tbz:`-j`,tbz2:`-j`,tz2:`-j`,lz:`--lzip`,lzma:`--lzma`,tlz:`--lzma`,lzo:`--lzop`,xz:`-J`,txz:`-J`,zst:`--zstd`,tzst:`--zstd`};function Il(e){let t=e.lastIndexOf(`.`);return t===-1?void 0:Fl[e.slice(t+1)]}function Ll(e,t){return e.refuse(`option`,t,`${t}: archives compressed other than with gzip are not supported`),null}var Rl=e=>{let t=e.indexOf(`:`);return t!==-1&&!e.slice(0,t).includes(`/`)};function zl(e,t){let{ctx:n}=t,r=e.archive;if(r===`-`){if(Pn(n))return t.fatal(`Refusing to read archive contents from terminal (missing -f option?)`);let e=n.stdinBytes??E(n.stdinLeft);return I(n,``,!0),{bytes:e,name:r,stdin:!0}}if(Rl(r))return t.refuse(`feature`,`remote archive`,`${r}: remote archives are not supported`);if(r===`/dev/null`)return{bytes:new Uint8Array,name:r,stdin:!1};if(r.startsWith(`/dev/`))return t.refuse(`feature`,`special file`,`${r}: reading an archive from a device is not supported`);let i=P(n,`tar`,r);return i.error?t.fatal(`${mc(r,n)}: Cannot open: ${i.error}`):n.fs.isDir(i.path)?(t.warn(`${mc(r,n)}: Cannot read: Is a directory`),t.fatal(`At beginning of tape, quitting now`)):{bytes:zn(n.fs,i.path),name:r,stdin:!1}}function Bl(e,t){let n=zl(e,t);if(!n)return null;let r=n.bytes;if(e.gzip)return Vl(r,t);let i=r.length>=Al?Hl(r):null;if(i?.entries!==void 0)return Wl(i.entries,t,0);let a=Pl(r);if(a!==void 0)return n.stdin?t.fatal(`Archive is compressed. Use ${a.option} option`):a.option===`-z`?Vl(r,t):Ll(t,a.option);let o=r.length<Al;o&&t.error(`This does not look like a tar archive`);let s=n.stdin?void 0:Il(n.name);return s!==void 0&&s!==`-z`?Ll(t,s):o?s===void 0?Ml(0):Vl(r,t):Ul(i.error,t)}async function Vl(e,t){if(!fo(`gzip`))return t.refuse(`option`,`-z`,`this runtime has no gzip stream`);if(!Wc(e))return t.say(2,`
|
|
44
|
+
gzip: stdin: ${e.length<2?`unexpected end of file`:`not in gzip format`}
|
|
45
|
+
`),Ml(1);let n=await Ic(e),r=n.error===null?null:$c(`stdin`,n);if(r!==null&&!r.whole&&e.length>jl)return t.refuse(`feature`,`damaged gzip stream`,`the gzip stream is damaged, and how much of it GNU gzip would inflate is not known here`),null;r!==null&&t.say(2,r.text);let i=r?.status??0;if(n.bytes.length<Al)return Ml(i);let a=Hl(n.bytes);return a.entries===void 0?Ul(a.error,t):Wl(a.entries,t,i)}function Hl(e){try{return{entries:rc(e)}}catch(e){if(!(e instanceof V))throw e;return{error:e}}}function Ul(e,t){return t.refuse(`feature`,`archive`,`this archive is not one this terminal reads: ${e.message}`),null}function Wl(e,t,n){let r=kl(e,e=>mc(e,t.ctx));return r.gap===void 0?{entries:e,child:n,...r}:(t.refuse(`feature`,...r.gap),null)}var Gl=512,Kl={file:384,directory:448,symlink:511};async function ql(e,t){let{ctx:n}=t;if(e.archive===`-`&&Fn(n))return t.fatal(`Refusing to write archive contents to terminal (missing -f option?)`);if(e.format===`pax`)return t.refuse(`option`,`--format=pax`,`the pax format records access and change times, which this tree does not have`);let r=Jl(e,t),i=r&&Yl(e,t);if(i===null||!r)return;if(i&&!fo(`gzip`))return t.refuse(`option`,`-z`,`this runtime has no gzip stream`);let a=Xl(e.archive,t);if(!a)return;if(i&&a.kind===`stdout`&&t.closedOut)return t.refuse(`feature`,`closed stdout`,`writing a compressed archive to a closed stdout is not supported`);(a.kind===`stdout`||e.toStdout)&&(t.listTo=2);let o={state:t,owners:r,target:a,entries:[],verbose:e.verbose,many:e.items.filter(e=>e.name!==void 0).length>1,mtime:Math.floor(n.createdAt/1e3),members:new Set,links:new Set,line:e.verbose>1?dc(n,e):null,archived:new Map},s=n.cwd,c=[];for(let n of e.items){if(n.dir!==void 0){c.push(n.dir);continue}for(let n of c)if(s=xc(s,n,t),s===null)return eu(o,e,i,!0);if(c=[],Ql(n.name,s,o),t.stopped)return}if(c.length){t.warn(`The following options were used after non-option arguments. These options are positional and affect only arguments that follow them. Please, rearrange them properly.`);for(let e of c)t.error(`-C ${hc(e,n)} has no effect`)}await eu(o,e,i,!1)}function Jl(e,t){let{owner:n,group:r,numericOwner:i}=e,a=e=>e!==void 0&&e.id!==null&&(e.name!==null||i);return!a(n)||!a(r)?(t.refuse(`feature`,`file owners`,`the files here have no numeric owner or group to record; give them with --owner=NAME:UID and --group=NAME:GID, or as ids with --numeric-owner`),null):{uid:n.id,gid:r.id,uname:i?``:n.name,gname:i?``:r.name}}function Yl(e,t){if(e.gzip)return!0;let n=e.auto&&e.archive!==`-`?Il(e.archive):void 0;return n===void 0?!1:n===`-z`||Ll(t,n)}function Xl(e,t){let{ctx:n}=t;if(e===`-`)return{kind:`stdout`};if(e===`/dev/null`)return{kind:`null`};if(Rl(e))return t.refuse(`feature`,`remote archive`,`${e}: remote archives are not supported`);if(e.startsWith(`/dev/`))return t.refuse(`feature`,`special file`,`${e}: writing an archive to a device is not supported`);let r=mc(e,n),i=O(n.cwd,e),a=k(n.cwd,e,n.fs);if(a.path!==null&&n.fs.isDir(a.path))return t.fatal(`${r}: Cannot open: Is a directory`);let o=k(n.cwd,j(i),n.fs);if(a.path===null&&(o.error||!n.fs.isDir(o.path)))return t.fatal(`${r}: Cannot open: ${o.error??`Not a directory`}`);let s=n.writable&&R(a.path??i)?n.fs.openWritable(n.cwd,e):null;return s?{kind:`file`,handle:s,path:s.path}:t.refuse(`feature`,`read-only target`,`${r}: Cannot open: Read-only file system`)}function Zl(e,t){let n=0;for(let t=0;t<e.length;){e.startsWith(`..`,t)&&(t+2===e.length||e[t+2]===`/`)&&(n=t+2);let r=e.indexOf(`/`,t);t=r===-1?e.length:r+1}for(;e[n]===`/`;)n++;let r=e.slice(0,n);return e===``?t.state.warn("Substituting `.' for empty member name"):r!==``&&!t.members.has(r)&&(t.members.add(r),t.state.warn(`Removing leading \`${r}' from member names`)),{prefix:r,name:n===e.length?`.`:e.slice(n)}}function Ql(e,t,n){let{ctx:r}=n.state,i=gc(e);if(i===`/dev`||i.startsWith(`/dev/`)){n.state.refuse(`feature`,`special file`,`${mc(i,r)}: archiving special files is not supported`);return}let a=Zl(i,n),o=k(t,i,r.fs,{follow:!1});o.error?n.state.error(`${mc(i,r)}: Cannot stat: ${o.error}`):$l(o.path,i,a,n)}function $l(e,t,n,r){let{state:i}=r,{fs:a}=i.ctx,o=a.isDir(e),s=!o&&a.isLink?.(e)===!0;if(r.target.kind===`file`&&r.target.path===e)return i.warn(`${mc(t,i.ctx)}: archive cannot contain itself; not dumped`);if(n.name!==`.`&&n.name.split(`/`).some(e=>e===`.`||e===``))return i.refuse(`feature`,`dot-segment names`,`${mc(t,i.ctx)}: member names with \`.' or empty segments are not supported`);let c=o?`directory`:s?`symlink`:`file`,l=r.many&&!o?r.archived.get(e):void 0;if(l===n.name)return i.refuse(`feature`,`repeated name`,`${mc(t,i.ctx)}: storing a name again, as a hard link to itself, is not supported`);r.many&&!o&&l===void 0&&r.archived.set(e,n.name);let u=l===void 0?{name:n.name,type:c,mode:Kl[c],mtime:r.mtime,...r.owners,linkname:s?a.readLink(e):``,data:c===`file`?zn(a,e):void 0}:{name:n.name,type:`hardlink`,mode:Kl[c],mtime:r.mtime,...r.owners,linkname:l};if(r.entries.push(u),r.verbose&&i.list(r.line?r.line({...u,name:t,data:u.data??new Uint8Array}):o?`${t}/`:t),r.many&&!o&&l===void 0&&n.prefix!==``&&!r.links.has(n.prefix)&&(r.links.add(n.prefix),i.warn(`Removing leading \`${n.prefix}' from hard link targets`)),!o)return;let{dirs:d,files:f,links:p=[]}=a.listDir(e);for(let n of[...new Set([...d,...f,...p])].sort(M)){let a=t===`/`?`/${n}`:`${t}/${n}`;if($l(ht(e,n),a,Zl(a,r),r),i.stopped)return}}async function eu(e,t,n,r){let{state:i,target:a}=e,o;try{o=Gs(e.entries,{format:t.format,blocking:r?1:t.blocking})}catch(e){if(!(e instanceof V))throw e;return i.refuse(`feature`,`archive`,`this archive cannot be written here: ${e.message}`)}if(r){let e=t.blocking*Gl;o=o.subarray(0,Math.floor((o.length-2*Gl)/e)*e)}n&&(o=await go(o,`gzip`)),a.kind===`stdout`&&!i.closedOut?i.bytes(o):a.kind===`file`&&a.handle.writeBytes(o)}var tu=new Set([`file`,`contiguous-file`,`directory`,`symlink`]);function nu(e,t){let n=e.split(`/`).filter(e=>e!==``);return n.length<=t?null:n.slice(t).join(`/`)}var ru=(e,t)=>O(e,t);function iu(e,t,n,r,i,a=()=>{}){let{ctx:o}=r,s=mc(t,o);if(!tu.has(e.type)){let t=e.type===`hardlink`?`hard links`:`special files`;return r.refuse(`feature`,e.type,`${s}: extracting ${t} is not supported`)}let c=e.type===`directory`?`mkdir`:`open`,l=()=>r.refuse(`feature`,`read-only target`,`${s}: Cannot ${c}: Read-only file system`);if(!o.writable||!R(n))return l();let u=au(j(n),r);if(u===`read-only`)return l();if(typeof u==`string`)return r.error(`${s}: Cannot ${c}: ${u}`);if(u>0&&a(u),e.type===`directory`)return ou(n,s,r);let d=e.type===`symlink`?`Cannot create symlink to ${hc(e.linkname,o)}`:`Cannot open`;if(k(`/`,n,o.fs,{follow:!1}).path!==null&&(i||!su(n,o.fs)))return r.error(`${s}: ${d}: File exists`);if(e.type===`symlink`)return o.fs.makeWritableLink(`/`,n,e.linkname)||l();let f=o.fs.openWritable(`/`,n);return f?(f.writeBytes(e.data),!0):l()}function au(e,t){let{fs:n}=t.ctx,r=[];for(let t=e;;t=j(t)){let e=k(`/`,t,n);if(e.path!==null){if(!n.isDir(e.path))return`Not a directory`;break}if(k(`/`,t,n,{follow:!1}).path!==null)return`File exists`;r.push(t)}for(let e of r.toReversed())if(!R(e)||!n.makeWritableDir(`/`,e))return`read-only`;return r.length}function ou(e,t,n){let{fs:r}=n.ctx,i=k(`/`,e,r,{follow:!1});return i.path!==null&&r.isDir(i.path)&&!r.isLink?.(i.path)?!0:i.path!==null&&!su(e,r)?n.error(`${t}: Cannot mkdir: File exists`):(r.makeWritableDir(`/`,e),!0)}function su(e,t){let n=k(`/`,e,t,{follow:!1});if(t.isDir(n.path)&&!t.isLink?.(n.path)){let{dirs:r,files:i,links:a}=t.listDir(n.path);return r.length||i.length||a.length?!1:(t.removeWritableDir(`/`,e),!0)}return t.removeWritable(`/`,e),!0}var cu=new Set([`create`,`list`,`extract`]),lu={__proto__:null,c:`create`,t:`list`,x:`extract`,f:`file`,v:`verbose`,z:`gzip`,C:`directory`,O:`to-stdout`,a:`auto-compress`,H:`format`,b:`blocking-factor`,k:`keep-old-files`},uu={__proto__:null,create:`create`,list:`list`,extract:`extract`,get:`extract`,file:`file`,verbose:`verbose`,gzip:`gzip`,gunzip:`gzip`,ungzip:`gzip`,directory:`directory`,"to-stdout":`to-stdout`,"auto-compress":`auto-compress`,format:`format`,"blocking-factor":`blocking-factor`,"keep-old-files":`keep-old-files`,"strip-components":`strip-components`,owner:`owner`,group:`group`,"numeric-owner":`numeric-owner`,utc:`utc`,"no-wildcards":`no-wildcards`,sort:`sort`},du=new Set([`file`,`directory`,`format`,`blocking-factor`,`strip-components`,`owner`,`group`,`sort`]),fu=`Try 'tar --help' or 'tar --usage' for more information.`,pu=(e,t=2)=>({usage:{text:`tar: ${e}
|
|
46
|
+
${fu}
|
|
47
|
+
`,status:t}});function mu(e){if(e.length===0||e[0].startsWith(`-`))return{words:e};let t=e.slice(1),n=[],r=0;for(let i of e[0])if(n.push(`-`+i),du.has(lu[i])){if(r>=t.length)return pu(`Old option '${i}' requires an argument.`);n.push(t[r++])}return{words:[...n,...t.slice(r)],old:!0}}function hu(e,t){let n=mu(e);if(n.usage)return n;let{words:r}=n,i={mode:null,items:[],verbose:0,values:new Map,flags:new Set,files:0};for(let e=0;e<r.length;e++){let n=r[e];if(n===`--`){for(let t of r.slice(e+1))i.items.push({name:t});break}let a=null;if(n.startsWith(`--`)){let o=n.indexOf(`=`),s=o===-1?n.slice(2):n.slice(2,o),c=uu[s];if(c===void 0)throw new T(`option`,`--${s}`,`unknown option: --${s}`);a=du.has(c)?o===-1?e+1<r.length?gu(i,c,r[++e],t):pu(`option '--${s}' requires an argument`,64):gu(i,c,n.slice(o+1),t):o===-1?gu(i,c,void 0,t):pu(`option '--${s}' doesn't allow an argument`,64)}else if(n.startsWith(`-`)&&n.length>1)for(let o=1;o<n.length&&a===null;o++){let s=n[o],c=lu[s];if(c===void 0)throw new T(`option`,`-${s}`,`unknown option: -${s}`);if(!du.has(c)){a=gu(i,c,void 0,t);continue}a=o+1<n.length?gu(i,c,n.slice(o+1),t):e+1<r.length?gu(i,c,r[++e],t):pu(`option requires an argument -- '${s}'`,64);break}else i.items.push({name:n});if(a!==null)return a}return bu(i)}function gu(e,t,n,r){if(cu.has(t)){if(e.mode!==null&&e.mode!==t)return pu(`You may not specify more than one '-Acdtrux', '--delete' or '--test-label' option`);e.mode=t,t===`list`&&e.verbose++}else if(t===`verbose`)e.verbose++;else if(t===`directory`)e.items.push({dir:n});else if(n===void 0)e.flags.add(t);else{let i=_u[t]?.(n,r)??{value:n};if(i.gap)throw new T(`option`,i.gap.detail,i.gap.message);if(i.usage)return i;t===`file`&&e.files++,e.values.set(t,i.value)}return null}var _u={__proto__:null,"strip-components":e=>{let t=Tu(e);return t===null||t<0?pu(`${e}: Invalid number of elements`):{value:t}},"blocking-factor":e=>{let t=Tu(e);return t===null||t<1||t>2147483647?pu(`${e}: Invalid blocking factor`):{value:t}},format:e=>{let t=xu[e];return t===void 0?pu(`${e}: Invalid archive format`):t===null?{gap:{detail:`--format=${e}`,message:`the ${e} archive format is not supported`}}:{value:t}},sort:(e,t)=>{let n=Cu(e,Su);if(n.error){let r=Su.map(e=>` - ${hc(e,t)}
|
|
48
|
+
`).join(``);return{usage:{text:`tar: ${n.error} argument ${hc(e,t)} for ${hc(`--sort`,t)}
|
|
49
49
|
Valid arguments are:
|
|
50
|
-
${r}`,status:2}}}return n.value
|
|
50
|
+
${r}`,status:2}}}return n.value===`inode`?{gap:{detail:`--sort=inode`,message:`--sort=inode is not supported`}}:n},owner:(e,t)=>yu(e,t),group:(e,t)=>yu(e,t)},vu=4294967295;function yu(e,t){let n=e.indexOf(`:`),r=n===-1?e:e.slice(n+1),i=n===-1?/^\d+$/u.exec(e):/^[ \t\n\v\f\r]*\+?(\d+)$/u.exec(r);if(n===-1&&i===null)return{value:{name:e,id:null}};let a=i===null?null:Number(BigInt(i.at(-1))>BigInt(vu)?-1:i.at(-1));return a===null||a<0?{usage:{text:`tar: ${mc(r,t)}: Invalid owner or group ID
|
|
51
51
|
tar: Error is not recoverable: exiting now
|
|
52
|
-
`,status:2}}:{value:{name:n>0?e.slice(0,n):null,id:
|
|
53
|
-
`)},bytes(
|
|
54
|
-
`)},error(n){t.warn(n),t.status=2},fatal(n){t.warn(n),t.warn("Error is not recoverable: exiting now"),t.status=2,t.stopped=!0},refuse(n,r,o){t.warn(o),t.gap={kind:n,detail:r,message:`tar: ${o}`},t.status=2,t.stopped=!0}};return t}function Rp(e){!e.stopped&&e.status===2&&e.warn("Exiting with failure status due to previous errors"),!e.stopped&&e.lostListing!==null&&(e.warn(e.lostListing==="pending"?"stdout: write error: Bad file descriptor":"stdout: write error"),e.status=2);let t=r=>e.events.filter(o=>o.fd===r&&o.text!==void 0).map(o=>o.text).join(""),n={stdout:t(1),stderr:t(2),exitCode:e.status,events:e.events};return e.gap===null?n:X(n,e.gap.kind,"tar",e.gap.detail,e.gap.message)}var Pk=32768;async function Mp(e,t,n){let r=Lp(t,n);if(r.usage)return{stdout:"",stderr:r.usage.text,exitCode:r.usage.status};let o=Fp(n);return r.blocking>Pk?o.refuse("option","--blocking-factor",`${r.blocking}: a record of that many blocks is more than this terminal holds`):r.mode==="create"?await kp(r,o):await zk(r,o),Rp(o)}async function zk(e,t){let{ctx:n}=t,r=Date.now(),o=await hp(e,t);if(!o)return;let i=Vd(e.items),s=e.mode==="extract";e.toStdout&&(t.listTo=2);let a=e.verbose>1?fi(n,e):null,u=new Map;for(let[l,c]of o.entries.entries()){for(let m of o.warnings[l])t.warn(m);let f=$t(c),d=i.match(f);if(d===null)continue;let p=qk(d,u,t);if(p===null)return;let h=s?$p(f,e.strip):f;if(h!==null&&(e.verbose>0&&t.list(a?a(c):St(f,n)),s&&e.toStdout?(c.type==="file"||c.type==="contiguous-file")&&Bk(c.data,h,t):s&&Ap(c,h,Sp(p,h),t,e.keepOld,m=>jk(h,m,a,t))&&Wk(o.mtimes[l],h,r,t),t.stopped))return}if(o.child)return t.fatal(`Child returned status ${o.child}`);Kd(i,t,e.noWildcards)}function Bk(e,t,n){n.closedOut?e.length>0&&n.error(`${de(t,n.ctx)}: Cannot write: Bad file descriptor`):n.bytes(e)}function jk(e,t,n,r){if(!n)return;let o=e.split("/").slice(0,-1);for(let i=o.length-t;i<o.length;i++)r.list(n.mkdir(o.slice(0,i+1).join("/")),!1)}function Wk(e,t,n,r){e>=0&&e*1e3<=n||r.refuse("feature","archive times",`${de(t,r.ctx)}: extracting an entry dated before 1970 or in the future is not supported`)}function qk(e,t,n){if(t.has(e))return t.get(e);let r=n.ctx.cwd;for(let o of e.dirs)if(r=di(r,o,n),r===null)return null;return t.set(e,r),r}var mi=67324752,gi=33639248,wi=101010256,Dp=61440,Xt={file:32768,directory:16384,symlink:40960},yi=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function Wr(e){let t=new Uint8Array(e.reduce((o,[i])=>o+i,0)),n=yi(t),r=0;for(let[o,i]of e){if(!Number.isInteger(i)||i<0||i>=2**(8*o))throw new RangeError(`${i} does not fit ${o} bytes`);o===1?n.setUint8(r,i):o===2?n.setUint16(r,i,!0):n.setUint32(r,i,!0),r+=o}return t}var Up=e=>je(e,"deflate-raw"),Hk=1032;async function Pp(e,t,n){if(t>e.length*Hk)throw new k("an entry declares more than its data can inflate to",n);let r;try{r=await gd(e,"deflate-raw",new Uint8Array(t))}catch(o){throw new k(o.limited?"an entry inflates to more than its declared size":"an entry does not inflate",n)}if(r.length!==t)throw new k("an entry inflates to less than its declared size",n);return r}function zp(e){let t=new Date(e*1e3),n=t.getUTCFullYear();return n<1980||n>2107?null:{time:t.getUTCHours()<<11|t.getUTCMinutes()<<5|t.getUTCSeconds()>>1,date:n-1980<<9|t.getUTCMonth()+1<<5|t.getUTCDate()}}function Bp(e){let t=zp(e);if(t===null)throw new k(`mtime ${e} is outside DOS time, 1980 to 2107`);return t}function jp(e,t,n){let r=Date.UTC(1980+(e>>9),(e>>5&15)-1,e&31,t>>11,t>>5&63,(t&31)*2)/1e3,o=zp(r);if(o===null||o.time!==t||o.date!==e)throw new k("an entry has an invalid DOS time",n);return r}var Gk=new Set(["deflate","store"]),Xk=788,Zk=2048,Wp=315532800,Yk=2147483647,qp=65534,Ya=4294967294;function Hp(e,t,n,r){if(!Number.isSafeInteger(e)||e<n||e>r)throw new k(`${t} ${String(e)} is not an integer from ${n} to ${r}`);return e}function Vk(e){let t=si(e,Xt);return{...t,mode:Hp(e.mode??Hn[t.type],"mode",0,4095),mtime:Hp(e.mtime??Wp,"mtime",Wp,Yk)}}var Kk=e=>Wr([[2,21589],[2,5],[1,1],[4,e]]);async function Va(e,{method:t="deflate"}={}){if(!Gk.has(t))throw new k(`method ${O(String(t))} is not deflate or store`);let n=new ft(!0),r=[],o=[],i=0,s=0;for(let l of e){let c=Vk(l),f={...c,...qt(c.name,c.type,c.linkname)};if(n.add(f),++s>qp)throw new k(`more than ${qp} entries would need zip64`);let d=jt(ii(f),"entry name"),p=f.type==="symlink"?jt(f.linkname,"symlink target"):f.data;if(p.length>Ya||i>Ya)throw new k(`${O(f.name)} would need zip64`);let h=p,m=0;if(t==="deflate"&&f.type==="file"&&p.length){let _=await Up(p);_.length<p.length&&(h=_,m=8)}let{time:g,date:w}=Bp(f.mtime),y=Kk(f.mtime),$=[[2,m===8?20:10],[2,Fr(d)?0:Zk],[2,m],[2,g],[2,w],[4,_o(p)],[4,h.length],[4,p.length],[2,d.length],[2,y.length]];r.push(Wr([[4,mi],...$]),d,y,h);let S=(Xt[f.type]|f.mode)*65536+(f.type==="directory"?16:0);o.push(Wr([[4,gi],[2,Xk],...$,[2,0],[2,0],[2,0],[4,S],[4,i]]),d,y),i+=30+d.length+y.length+h.length}let a=ct(o);if(i+a.length>Ya)throw new k("the archive would need zip64");let u=Wr([[4,wi],[2,0],[2,0],[2,s],[2,s],[4,a.length],[4,i],[2,0]]);return ct([...r,a,u])}var Jk=134695760,Qk=117853008,ev=1,tv=21589,nv=28789,rv=1,ov=8,iv=16;function Ka(e,t=0){let n=yi(e),r=(o,i)=>{if(o<t||o+i>t+e.length)throw new k("the archive is truncated",o)};return{u16:o=>(r(o,2),n.getUint16(o-t,!0)),u32:o=>(r(o,4),n.getUint32(o-t,!0)),slice:(o,i)=>(r(o,i),e.subarray(o-t,o-t+i))}}function sv(e){if(e instanceof Uint8Array){let t=Ka(e);return{size:e.length,read:(n,r)=>e.subarray(n,r),window:()=>t}}if(e instanceof Blob){let t=async(n,r)=>new Uint8Array(await e.slice(n,r).arrayBuffer());return{size:e.size,read:t,window:async(n,r)=>Ka(await t(n,Math.min(r,e.size)),n)}}throw new k("the archive is not a Uint8Array or a Blob")}var av=65536;function Gp(e){let t,n=0,r=0;return async(o,i,s=1/0)=>{let a=Math.min(o+i,e.size);return(t===void 0||o<n||a>r)&&(n=o,r=Math.max(a,Math.min(o+av,s,e.size)),t=await e.window(n,r)),t}}async function uv(e){let{size:t}=e,n=await e.window(Math.max(0,t-22-65535-20),t);for(let r=t-22;r>=Math.max(0,t-22-65535);r--)if(n.u32(r)===wi&&r+22+n.u16(r+20)===t){if(r>=20&&n.u32(r-20)===Qk)throw new k("zip64 is not supported",r-20);return{end:r,r:n}}throw new k("no end of central directory record")}function Xp(e,t){let n=new Map,r=Ka(e);for(let o=0;o<e.length;){let i=r.u16(o),s=r.u16(o+2);if(o+4+s>e.length)throw new k("an extra field runs past its room",t);if(i===ev)throw new k("zip64 is not supported",t);if(i===nv)throw new k("an entry carries a second name in a Unicode path extra field",t);n.has(i)||n.set(i,e.subarray(o+4,o+4+s)),o+=4+s}return n}async function lv(e,t){let n=await e(t,46);if(n.u32(t)!==gi)throw new k("no central directory entry where one is counted",t);let r=n.u16(t+28),o=n.u16(t+30);n=await e(t,46+r+o);let i={at:t,madeBy:n.u16(t+4),version:n.u16(t+6),flags:n.u16(t+8),method:n.u16(t+10),time:n.u16(t+12),date:n.u16(t+14),crc:n.u32(t+16),csize:n.u32(t+20),usize:n.u32(t+24),attributes:n.u32(t+38),offset:n.u32(t+42),name:n.slice(t+46,r).slice(),next:t+46+r+o+n.u16(t+32)};if(n.u16(t+34)!==0)throw new k("the archive spans several disks",t);if(i.flags&rv)throw new k("an entry is encrypted",t);if(i.method!==0&&i.method!==8)throw new k(`compression method ${i.method} is not stored or deflate`,t);if(i.csize===4294967295||i.usize===4294967295||i.offset===4294967295)throw new k("zip64 is not supported",t);i.mtime=jp(i.date,i.time,t);let s=Xp(n.slice(t+46+r,o),t).get(tv);if(s!==void 0&&s[0]&1){if(s.length<5)throw new k("an extended timestamp is cut short",t);i.mtime=yi(s).getInt32(1,!0)}return i}async function cv(e,t,n,r){let o=t.offset,i=await e(o,30,r);if(i.u32(o)!==mi)throw new k("no local header where the central directory points",o);let s=i.u16(o+26),a=i.u16(o+28);if(i=await e(o,30+s+a,r),!ti(i.slice(o+30,s),t.name))throw new k("the local header names a different entry",o);let u=[[4,"version","a different version"],[6,"flags","different flags"],[8,"method","a different compression method"],[10,"time","a different time"],[12,"date","a different date"]];for(let[d,p,h]of u)if(i.u16(o+d)!==t[p])throw new k(`the local header has ${h}`,o);Xp(i.slice(o+30+s,a),o);let l=t.flags&ov,c=(d,p)=>i.u32(o+d)===p||l&&i.u32(o+d)===0;if(!c(14,t.crc)||!c(18,t.csize)||!c(22,t.usize))throw new k("the local header disagrees with the central directory",o);t.dataAt=o+30+s+a;let f=t.dataAt+t.csize;if(l){let d=await e(f,16,n),p=m=>d.u32(m)===t.crc&&d.u32(m+4)===t.csize&&d.u32(m+8)===t.usize,h=d.u32(f)===Jk&&p(f+4);if(p(f)&&!(h&&f+16===n))f+=12;else if(h)f+=16;else throw new k("the data descriptor disagrees with the central directory",f)}return f}function fv(e,t,n){let r=n&Dp;if(t.endsWith("/")){if(r!==0&&r!==Xt.directory)throw new k(`${O(t)} is a directory by its name but not by its mode`,e.at);return"directory"}if(r===Xt.directory)throw new k(`${O(t)} is a directory by its mode but not by its name`,e.at);if(e.attributes&iv)throw new k(`${O(t)} is a directory by its attributes but not by its name`,e.at);if(r===Xt.symlink)return"symlink";if(r===0||r===Xt.file)return"file";throw new k(`the mode of ${O(t)} (${n.toString(8)}) is not one this package reads`,e.at)}async function dv(e,t,n){let{at:r,method:o,csize:i,usize:s}=t,a=We(t.name,"entry name",r),u=t.madeBy>>8===3?t.attributes>>>16:0,l=fv(t,a,u);if(l==="directory"&&s!==0)throw new k(`directory ${O(a)} has data`,r);if(o===0&&i!==s)throw new k("a stored entry has two sizes",r);let c=await e.read(t.dataAt,t.dataAt+i);if(c.length!==i)throw new k("the archive is truncated",t.dataAt);let f=o===8?await Pp(c,s,r):c;if(_o(f)!==t.crc)throw new k("the data does not match its CRC-32",r);let d=l==="symlink"?We(f,"symlink target",r):"",h={...Wn(()=>qt(a,l,d),r),type:l,mode:u===0?Hn[l]:u&4095,mtime:t.mtime,data:l==="file"?f:$e,storedName:a};return Wn(()=>n.add(h),r),h}async function*pv(e,{limit:t=1/0}={},n=!1){if(t!==1/0&&!(Number.isSafeInteger(t)&&t>=0))throw new k(`limit ${String(t)} is not a whole number of bytes`);let{end:r,r:o}=await uv(e),i=o.u16(r+8);if(o.u16(r+4)!==0||o.u16(r+6)!==0||i!==o.u16(r+10))throw new k("the archive spans several disks",r);let s=o.u32(r+12),a=o.u32(r+16);if(i===65535||s===4294967295||a===4294967295)throw new k("zip64 is not supported",r);if(a+s!==r)throw new k("the central directory does not end at the end record",r);let u=Gp(e),l=[],c=a,f=0;for(let y=0;y<i;y++){let $=await lv(u,c);if(f+=$.usize,f>t)throw new k(`the entries come to more than ${t} bytes`,c);l.push($),c=$.next}if(c!==r)throw new k("the central directory does not hold what the end record counts",c);let d=0,p=l.toSorted((y,$)=>y.offset-$.offset),h=p.map((y,$)=>p[$+1]?.offset??a),m=[];for(let y=p.length-1;y>=0;y--)m[y]=p[y].csize===0&&y+1<p.length?m[y+1]:h[y]-p[y].csize;let g=Gp(e);for(let[y,$]of p.entries()){if($.offset!==d)throw new k($.offset>d?"bytes belong to no entry":"two entries overlap",d);d=await cv(g,$,h[y],m[y])}if(d!==a)throw new k("bytes belong to no entry",d);let w=new ft(n);for(let y of l)yield await dv(e,y,w)}async function Ja(e,t){if(!(e instanceof Uint8Array))throw new k("the archive is not a Uint8Array");return await Array.fromAsync(pv(sv(e),t,!0))}var hv=(e,t)=>e===null?t:`${e.endsWith("/")?e.slice(0,-1):e}/${t}`;function Zp(e,t,n){let r=wv(t.exdir,n);if(r===null)return!1;let o=[],i=mv(e,r,o,t,n);for(let s of o)gv(s,n);return i}function mv(e,t,n,r,o){let{ctx:i}=o;for(let s of e){let a=s.type==="directory";if(r.junk&&a)continue;let u=r.junk?Ne(s.name):s.name,l=j(t,u),c=hv(r.exdir,a?`${u}/`:u),f=Yp(l,i)?yv(oe(l),i):"read-only";if(f==="read-only")return xi(c,o);if(f!==null)return o.refuse("feature","name taken",`${c}: extracting under a name that is not a directory is not supported`),!1;if(a){if(!xv(l,c,o))return!1;continue}if(o.quiet===0)return o.refuse("feature","extraction listing","whether each file was stored or deflated is not known here, and an extraction that is not quiet names it (-q extracts without it)"),!1;let d=bv(l,c,r,o);if(d===null)return!1;if(d==="skip")continue;let p=i.fs.openWritable("/",l);if(!p)return xi(c,o);let h=s.type==="symlink";p.writeBytes(h?I(s.linkname):s.data),h&&n.push({path:l,shown:c,target:s.linkname})}return!0}function gv({path:e,shown:t,target:n},r){let{fs:o}=r.ctx,i=E("/",e,o),s=i.path!==null&&o.isFile(i.path)?fe(o,i.path):null,a=I(n);if(s===null||s.length!==a.length||s.some((u,l)=>u!==a[l])){r.say(2,`warning: deferred symlink (${t}) failed:
|
|
52
|
+
`,status:2}}:{value:{name:n>0?e.slice(0,n):null,id:a}}}function bu(e){return e.mode===null?pu(`You must specify one of the '-Acdtrux', '--delete' or '--test-label' options`):e.files>1?pu(`Multiple archive files require '-M' option`):e.mode===`create`&&!e.items.some(e=>e.name!==void 0)?pu(`Cowardly refusing to create an empty archive`):{mode:e.mode,items:e.items,verbose:e.flags.has(`utc`)?Math.max(e.verbose,2):e.verbose,archive:e.values.get(`file`)??`-`,gzip:e.flags.has(`gzip`),auto:e.flags.has(`auto-compress`),toStdout:e.flags.has(`to-stdout`),keepOld:e.flags.has(`keep-old-files`),numericOwner:e.flags.has(`numeric-owner`),utc:e.flags.has(`utc`),noWildcards:e.flags.has(`no-wildcards`),owner:e.values.get(`owner`),group:e.values.get(`group`),strip:e.values.get(`strip-components`)??0,blocking:e.values.get(`blocking-factor`)??20,format:e.values.get(`format`)??`gnu`}}var xu={__proto__:null,gnu:`gnu`,ustar:`ustar`,pax:`pax`,posix:`pax`,oldgnu:null,v7:null},Su=[`none`,`name`,`inode`];function Cu(e,t){if(t.includes(e))return{value:e};let n=t.filter(t=>t.startsWith(e));return n.length===1?{value:n[0]}:{error:n.length?`ambiguous`:`invalid`}}var wu=2n**63n-1n;function Tu(e){let t=/^[ \t\n\v\f\r]*([+-]?)(\d+)$/u.exec(e);if(!t)return null;let n=BigInt(t[1]+t[2]);return n>wu||n<-wu-1n?null:n<0n?-1:Number(n>BigInt(2**53-1)?2**53-1:n)}function Eu(e){let t={ctx:e,events:[],status:0,stopped:!1,gap:null,listTo:1,closedOut:e.closed?.out===!0,lostListing:null,say(e,n){t.events.push({fd:e,text:n})},list(e,n=!0){t.listTo===1&&t.closedOut?t.lostListing=n?`flushed`:`pending`:t.say(t.listTo,e+`
|
|
53
|
+
`)},bytes(e){t.events.push({fd:1,bytes:e})},warn(e){t.say(2,`tar: ${e}
|
|
54
|
+
`)},error(e){t.warn(e),t.status=2},fatal(e){t.warn(e),t.warn(`Error is not recoverable: exiting now`),t.status=2,t.stopped=!0},refuse(e,n,r){t.warn(r),t.gap={kind:e,detail:n,message:`tar: ${r}`},t.status=2,t.stopped=!0}};return t}function Du(e){!e.stopped&&e.status===2&&e.warn(`Exiting with failure status due to previous errors`),!e.stopped&&e.lostListing!==null&&(e.warn(e.lostListing===`pending`?`stdout: write error: Bad file descriptor`:`stdout: write error`),e.status=2);let t=t=>e.events.filter(e=>e.fd===t&&e.text!==void 0).map(e=>e.text).join(``),n={stdout:t(1),stderr:t(2),exitCode:e.status,events:e.events};return e.gap===null?n:w(n,e.gap.kind,`tar`,e.gap.detail,e.gap.message)}var Ou=32768;async function ku(e,t,n){let r=hu(t,n);if(r.usage)return{stdout:``,stderr:r.usage.text,exitCode:r.usage.status};let i=Eu(n);return r.blocking>Ou?i.refuse(`option`,`--blocking-factor`,`${r.blocking}: a record of that many blocks is more than this terminal holds`):r.mode===`create`?await ql(r,i):await Au(r,i),Du(i)}async function Au(e,t){let{ctx:n}=t,r=Date.now(),i=await Bl(e,t);if(!i)return;let a=yc(e.items),o=e.mode===`extract`;e.toStdout&&(t.listTo=2);let s=e.verbose>1?dc(n,e):null,c=new Map;for(let[l,u]of i.entries.entries()){for(let e of i.warnings[l])t.warn(e);let d=bo(u),f=a.match(d);if(f===null)continue;let p=Pu(f,c,t);if(p===null)return;let m=o?nu(d,e.strip):d;if(m!==null&&(e.verbose>0&&t.list(s?s(u):oc(d,n)),o&&e.toStdout?(u.type===`file`||u.type===`contiguous-file`)&&ju(u.data,m,t):o&&iu(u,m,ru(p,m),t,e.keepOld,e=>Mu(m,e,s,t))&&Nu(i.mtimes[l],m,r,t),t.stopped))return}if(i.child)return t.fatal(`Child returned status ${i.child}`);bc(a,t,e.noWildcards)}function ju(e,t,n){n.closedOut?e.length>0&&n.error(`${mc(t,n.ctx)}: Cannot write: Bad file descriptor`):n.bytes(e)}function Mu(e,t,n,r){if(!n)return;let i=e.split(`/`).slice(0,-1);for(let e=i.length-t;e<i.length;e++)r.list(n.mkdir(i.slice(0,e+1).join(`/`)),!1)}function Nu(e,t,n,r){e>=0&&e*1e3<=n||r.refuse(`feature`,`archive times`,`${mc(t,r.ctx)}: extracting an entry dated before 1970 or in the future is not supported`)}function Pu(e,t,n){if(t.has(e))return t.get(e);let r=n.ctx.cwd;for(let t of e.dirs)if(r=xc(r,t,n),r===null)return null;return t.set(e,r),r}var Fu=67324752,Iu=33639248,Lu=101010256,Ru=61440,zu={file:32768,directory:16384,symlink:40960},Bu=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function Vu(e){let t=new Uint8Array(e.reduce((e,[t])=>e+t,0)),n=Bu(t),r=0;for(let[t,i]of e){if(!Number.isInteger(i)||i<0||i>=2**(8*t))throw RangeError(`${i} does not fit ${t} bytes`);t===1?n.setUint8(r,i):t===2?n.setUint16(r,i,!0):n.setUint32(r,i,!0),r+=t}return t}var Hu=e=>go(e,`deflate-raw`),Uu=1032;async function Wu(e,t,n){if(t>e.length*Uu)throw new V(`an entry declares more than its data can inflate to`,n);let r;try{r=await yo(e,`deflate-raw`,new Uint8Array(t))}catch(e){throw new V(e.limited?`an entry inflates to more than its declared size`:`an entry does not inflate`,n)}if(r.length!==t)throw new V(`an entry inflates to less than its declared size`,n);return r}function Gu(e){let t=new Date(e*1e3),n=t.getUTCFullYear();return n<1980||n>2107?null:{time:t.getUTCHours()<<11|t.getUTCMinutes()<<5|t.getUTCSeconds()>>1,date:n-1980<<9|t.getUTCMonth()+1<<5|t.getUTCDate()}}function Ku(e){let t=Gu(e);if(t===null)throw new V(`mtime ${e} is outside DOS time, 1980 to 2107`);return t}function qu(e,t,n){let r=Date.UTC(1980+(e>>9),(e>>5&15)-1,e&31,t>>11,t>>5&63,(t&31)*2)/1e3,i=Gu(r);if(i===null||i.time!==t||i.date!==e)throw new V(`an entry has an invalid DOS time`,n);return r}var Ju=new Set([`deflate`,`store`]),Yu=788,Xu=2048,Zu=315532800,Qu=2147483647,$u=65534,ed=4294967294;function td(e,t,n,r){if(!Number.isSafeInteger(e)||e<n||e>r)throw new V(`${t} ${String(e)} is not an integer from ${n} to ${r}`);return e}function nd(e){let t=Po(e,zu);return{...t,mode:td(e.mode??jo[t.type],`mode`,0,4095),mtime:td(e.mtime??Zu,`mtime`,Zu,Qu)}}var rd=e=>Vu([[2,21589],[2,5],[1,1],[4,e]]);async function id(e,{method:t=`deflate`,symlinksAbove:n}={}){if(!Ju.has(t))throw new V(`method ${H(String(t))} is not deflate or store`);let r=new Es(!0,bs(n)),i=[],o=[],s=0,c=0;for(let n of e){let e=nd(n),l={...e,...Ss(e.name,e.type,e.linkname,r.above)};if(r.add(l),++c>$u)throw new V(`more than ${$u} entries would need zip64`);let u=ko(No(l),`entry name`),d=l.type===`symlink`?ko(l.linkname,`symlink target`):l.data;if(d.length>ed||s>ed)throw new V(`${H(l.name)} would need zip64`);let f=d,p=0;if(t===`deflate`&&l.type===`file`&&d.length){let e=await Hu(d);e.length<d.length&&(f=e,p=8)}let{time:m,date:h}=Ku(l.mtime),g=rd(l.mtime),_=[[2,p===8?20:10],[2,oo(u)?0:Xu],[2,p],[2,m],[2,h],[4,a(d)],[4,f.length],[4,d.length],[2,u.length],[2,g.length]];i.push(Vu([[4,Fu],..._]),u,g,f);let ee=(zu[l.type]|l.mode)*65536+(l.type===`directory`?16:0);o.push(Vu([[4,Iu],[2,Yu],..._,[2,0],[2,0],[2,0],[4,ee],[4,s]]),u,g),s+=30+u.length+g.length+f.length}let l=co(o);if(s+l.length>ed)throw new V(`the archive would need zip64`);let u=Vu([[4,Lu],[2,0],[2,0],[2,c],[2,c],[4,l.length],[4,s],[2,0]]);return co([...i,l,u])}var ad=134695760,od=117853008,sd=1,cd=21589,ld=28789,ud=1,dd=8,fd=16;function pd(e,t=0){let n=Bu(e),r=(n,r)=>{if(n<t||n+r>t+e.length)throw new V(`the archive is truncated`,n)};return{u16:e=>(r(e,2),n.getUint16(e-t,!0)),u32:e=>(r(e,4),n.getUint32(e-t,!0)),slice:(n,i)=>(r(n,i),e.subarray(n-t,n-t+i))}}function md(e){if(e instanceof Uint8Array){let t=pd(e);return{size:e.length,read:(t,n)=>e.subarray(t,n),window:()=>t}}if(e instanceof Blob){let t=async(t,n)=>new Uint8Array(await e.slice(t,n).arrayBuffer());return{size:e.size,read:t,window:async(n,r)=>pd(await t(n,Math.min(r,e.size)),n)}}throw new V(`the archive is not a Uint8Array or a Blob`)}var hd=65536;function gd(e){let t,n=0,r=0;return async(i,a,o=1/0)=>{let s=Math.min(i+a,e.size);return(t===void 0||i<n||s>r)&&(n=i,r=Math.max(s,Math.min(i+hd,o,e.size)),t=await e.window(n,r)),t}}async function _d(e){let{size:t}=e,n=await e.window(Math.max(0,t-22-65535-20),t);for(let e=t-22;e>=Math.max(0,t-22-65535);e--)if(n.u32(e)===Lu&&e+22+n.u16(e+20)===t){if(e>=20&&n.u32(e-20)===od)throw new V(`zip64 is not supported`,e-20);return{end:e,r:n}}throw new V(`no end of central directory record`)}function vd(e,t){let n=new Map,r=pd(e);for(let i=0;i<e.length;){let a=r.u16(i),o=r.u16(i+2);if(i+4+o>e.length)throw new V(`an extra field runs past its room`,t);if(a===sd)throw new V(`zip64 is not supported`,t);if(a===ld)throw new V(`an entry carries a second name in a Unicode path extra field`,t);n.has(a)||n.set(a,e.subarray(i+4,i+4+o)),i+=4+o}return n}async function yd(e,t){let n=await e(t,46);if(n.u32(t)!==Iu)throw new V(`no central directory entry where one is counted`,t);let r=n.u16(t+28),i=n.u16(t+30);n=await e(t,46+r+i);let a={at:t,madeBy:n.u16(t+4),version:n.u16(t+6),flags:n.u16(t+8),method:n.u16(t+10),time:n.u16(t+12),date:n.u16(t+14),crc:n.u32(t+16),csize:n.u32(t+20),usize:n.u32(t+24),attributes:n.u32(t+38),offset:n.u32(t+42),name:n.slice(t+46,r).slice(),next:t+46+r+i+n.u16(t+32)};if(n.u16(t+34)!==0)throw new V(`the archive spans several disks`,t);if(a.flags&ud)throw new V(`an entry is encrypted`,t);if(a.method!==0&&a.method!==8)throw new V(`compression method ${a.method} is not stored or deflate`,t);if(a.csize===4294967295||a.usize===4294967295||a.offset===4294967295)throw new V(`zip64 is not supported`,t);a.mtime=qu(a.date,a.time,t);let o=vd(n.slice(t+46+r,i),t).get(cd);if(o!==void 0&&o[0]&1){if(o.length<5)throw new V(`an extended timestamp is cut short`,t);a.mtime=Bu(o).getInt32(1,!0)}return a}async function bd(e,t,n,r){let i=t.offset,a=await e(i,30,r);if(a.u32(i)!==Fu)throw new V(`no local header where the central directory points`,i);let o=a.u16(i+26),s=a.u16(i+28);if(a=await e(i,30+o+s,r),!so(a.slice(i+30,o),t.name))throw new V(`the local header names a different entry`,i);for(let[e,n,r]of[[4,`version`,`a different version`],[6,`flags`,`different flags`],[8,`method`,`a different compression method`],[10,`time`,`a different time`],[12,`date`,`a different date`]])if(a.u16(i+e)!==t[n])throw new V(`the local header has ${r}`,i);vd(a.slice(i+30+o,s),i);let c=t.flags&dd,l=(e,t)=>a.u32(i+e)===t||c&&a.u32(i+e)===0;if(!l(14,t.crc)||!l(18,t.csize)||!l(22,t.usize))throw new V(`the local header disagrees with the central directory`,i);t.dataAt=i+30+o+s;let u=t.dataAt+t.csize;if(c){let r=await e(u,16,n),i=e=>r.u32(e)===t.crc&&r.u32(e+4)===t.csize&&r.u32(e+8)===t.usize,a=r.u32(u)===ad&&i(u+4);if(i(u)&&!(a&&u+16===n))u+=12;else if(a)u+=16;else throw new V(`the data descriptor disagrees with the central directory`,u)}return u}function xd(e,t,n){let r=n&Ru;if(t.endsWith(`/`)){if(r!==0&&r!==zu.directory)throw new V(`${H(t)} is a directory by its name but not by its mode`,e.at);return`directory`}if(r===zu.directory)throw new V(`${H(t)} is a directory by its mode but not by its name`,e.at);if(e.attributes&fd)throw new V(`${H(t)} is a directory by its attributes but not by its name`,e.at);if(r===zu.symlink)return`symlink`;if(r===0||r===zu.file)return`file`;throw new V(`the mode of ${H(t)} (${n.toString(8)}) is not one this package reads`,e.at)}async function Sd(e,t,n){let{at:r,method:i,csize:o,usize:s}=t,c=Ao(t.name,`entry name`,r),l=t.madeBy>>8==3?t.attributes>>>16:0,u=xd(t,c,l);if(u===`directory`&&s!==0)throw new V(`directory ${H(c)} has data`,r);if(i===0&&o!==s)throw new V(`a stored entry has two sizes`,r);let d=await e.read(t.dataAt,t.dataAt+o);if(d.length!==o)throw new V(`the archive is truncated`,t.dataAt);let f=i===8?await Wu(d,s,r):d;if(a(f)!==t.crc)throw new V(`the data does not match its CRC-32`,r);let p=u===`symlink`?Ao(f,`symlink target`,r):``,m={...lo(()=>Ss(c,u,p,n.above),r),type:u,mode:l===0?jo[u]:l&4095,mtime:t.mtime,data:u===`file`?f:ao,storedName:c};return lo(()=>n.add(m),r),m}async function*Cd(e,{limit:t=1/0,symlinksAbove:n}={},r=!1){if(t!==1/0&&!(Number.isSafeInteger(t)&&t>=0))throw new V(`limit ${String(t)} is not a whole number of bytes`);let i=bs(n),{end:a,r:o}=await _d(e),s=o.u16(a+8);if(o.u16(a+4)!==0||o.u16(a+6)!==0||s!==o.u16(a+10))throw new V(`the archive spans several disks`,a);let c=o.u32(a+12),l=o.u32(a+16);if(s===65535||c===4294967295||l===4294967295)throw new V(`zip64 is not supported`,a);if(l+c!==a)throw new V(`the central directory does not end at the end record`,a);let u=gd(e),d=[],f=l,p=0;for(let e=0;e<s;e++){let e=await yd(u,f);if(p+=e.usize,p>t)throw new V(`the entries come to more than ${t} bytes`,f,{limited:!0});d.push(e),f=e.next}if(f!==a)throw new V(`the central directory does not hold what the end record counts`,f);let m=0,h=d.toSorted((e,t)=>e.offset-t.offset),g=h.map((e,t)=>h[t+1]?.offset??l),_=[];for(let e=h.length-1;e>=0;e--)_[e]=h[e].csize===0&&e+1<h.length?_[e+1]:g[e]-h[e].csize;let ee=gd(e);for(let[e,t]of h.entries()){if(t.offset!==m)throw new V(t.offset>m?`bytes belong to no entry`:`two entries overlap`,m);m=await bd(ee,t,g[e],_[e])}if(m!==l)throw new V(`bytes belong to no entry`,m);let v=new Es(r,i);for(let t of d)yield await Sd(e,t,v)}async function wd(e,t){if(!(e instanceof Uint8Array))throw new V(`the archive is not a Uint8Array`);return await Array.fromAsync(Cd(md(e),t,!0))}var Td=(e,t)=>e===null?t:`${e.endsWith(`/`)?e.slice(0,-1):e}/${t}`;function Ed(e,t,n){let r=jd(t.exdir,n);if(r===null)return!1;let i=[],a=Dd(e,r,i,t,n);for(let e of i)Od(e,n);return a}function Dd(e,t,n,r,i){let{ctx:a}=i;for(let o of e){let e=o.type===`directory`;if(r.junk&&e)continue;let s=r.junk?mt(o.name):o.name,c=O(t,s),l=Td(r.exdir,e?`${s}/`:s),u=kd(c,a)?Md(j(c),a):`read-only`;if(u===`read-only`)return Ad(l,i);if(u!==null)return i.refuse(`feature`,`name taken`,`${l}: extracting under a name that is not a directory is not supported`),!1;if(e){if(!Nd(c,l,i))return!1;continue}if(i.quiet===0)return i.refuse(`feature`,`extraction listing`,`whether each file was stored or deflated is not known here, and an extraction that is not quiet names it (-q extracts without it)`),!1;let d=Pd(c,l,r,i);if(d===null)return!1;if(d===`skip`)continue;let f=a.fs.openWritable(`/`,c);if(!f)return Ad(l,i);let p=o.type===`symlink`;f.writeBytes(p?E(o.linkname):o.data),p&&n.push({path:c,shown:l,target:o.linkname})}return!0}function Od({path:e,shown:t,target:n},r){let{fs:i}=r.ctx,a=k(`/`,e,i),o=a.path!==null&&i.isFile(a.path)?zn(i,a.path):null,s=E(n);if(o===null||o.length!==s.length||o.some((e,t)=>e!==s[t])){r.say(2,`warning: deferred symlink (${t}) failed:
|
|
55
55
|
invalid placeholder file
|
|
56
|
-
`);return}
|
|
57
|
-
${
|
|
58
|
-
`),t.status=2,null)
|
|
59
|
-
`),!0):
|
|
56
|
+
`);return}i.removeWritable(`/`,e),i.makeWritableLink(`/`,e,n)}var kd=(e,t)=>t.writable&&R(e);function Ad(e,t){return t.refuse(`feature`,`read-only target`,`${e}: Read-only file system`),!1}function jd(e,t){let{ctx:n}=t;if(e===null)return n.cwd;let r=O(n.cwd,e),i=k(`/`,r,n.fs);if(i.path!==null&&n.fs.isDir(i.path))return i.path;if(i.path!==null)return t.refuse(`feature`,`extraction directory`,`${e}: an extraction directory that is not a directory is not supported`),null;let a=k(`/`,j(r),n.fs);return a.error===null?!kd(r,n)||!n.fs.makeWritableDir(`/`,r)?(Ad(e,t),null):r:(t.say(2,`checkdir: cannot create extraction directory: ${e}
|
|
57
|
+
${a.error}
|
|
58
|
+
`),t.status=2,null)}function Md(e,t){let n=[],r=e;for(;k(`/`,r,t.fs).path===null;r=j(r)){if(k(`/`,r,t.fs,{follow:!1}).path!==null)return`File exists`;n.push(r)}if(!t.fs.isDir(k(`/`,r,t.fs).path))return`Not a directory`;for(let e of n.toReversed())if(!R(e)||!t.fs.makeWritableDir(`/`,e))return`read-only`;return null}function Nd(e,t,n){let{fs:r}=n.ctx,i=k(`/`,e,r,{follow:!1});return i.path===null?r.makeWritableDir(`/`,e)?(n.quiet===0&&n.say(1,` creating: ${t}
|
|
59
|
+
`),!0):Ad(t,n):r.isDir(i.path)?!0:(n.refuse(`feature`,`name taken`,`${t}: a directory entry over a file already there is not supported`),!1)}function Pd(e,t,n,r){let{fs:i}=r.ctx,a=k(`/`,e,i,{follow:!1});return a.path===null?`write`:i.isDir(a.path)?(r.refuse(`feature`,`name taken`,`${t}: a file entry over a directory already there is not supported`),null):(n.overwrite===null&&Fd(t,n,r),n.overwrite===`none`?`skip`:(n.overwrite===`all`&&i.removeWritable(`/`,e),n.overwrite===`all`?`write`:null))}function Fd(e,t,n){let{ctx:r}=n;if(r.stdinLeft!==``||r.stdinBytes!==null){n.refuse(`feature`,`overwrite prompt`,`answering the overwrite question from stdin is not supported (-o and -n answer it)`);return}n.say(2,`replace ${e}? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL
|
|
60
60
|
(EOF or read error, treating as "[N]one" ...)
|
|
61
|
-
`),t.overwrite
|
|
62
|
-
`,status:10}};function
|
|
61
|
+
`),t.overwrite=`none`,n.status=1}var Id={__proto__:null,l:`list`,t:`test`,p:`pipe`,c:`crt`,v:`verbose`},Ld={usage:{text:`error: must specify directory to which to extract with -d option
|
|
62
|
+
`,status:10}};function Rd(e){let t={modes:new Set,lists:0,quiet:0,overwriteAll:!1,overwriteNone:!1,junk:!1,exdir:null,archive:null,members:[],excludes:[]},n=0;for(;n<e.length&&e[n].startsWith(`-`)&&e[n].length>1;n++){let r=e[n];for(let i=1;i<r.length;i++){let a=r[i];if(a===`d`){if(t.exdir=i+1<r.length?r.slice(i+1):e[++n],t.exdir===void 0)return Ld;break}if(a===`l`&&t.lists++,Id[a])t.modes.add(Id[a]);else if(a===`q`)t.quiet++;else if(a===`o`)t.overwriteAll=!0;else if(a===`n`)t.overwriteNone=!0;else if(a===`j`)t.junk=!0;else throw new T(`option`,`-${a}`,`unknown option: -${a}`)}}if(t.modes.size>1)throw new T(`option`,`modes`,`combining -c, -l, -p, -t and -v is not supported`);if(n>=e.length)throw new T(`feature`,`usage`,`printing the usage summary is not supported`);t.archive=e[n++];let r=!1;for(;n<e.length;n++){let i=e[n];if(i===`-x`)r=!0;else if(i.startsWith(`-d`)){if(t.exdir=i.length>2?i.slice(2):e[++n],t.exdir===void 0)return Ld}else(r?t.excludes:t.members).push(i)}let[i=`extract`]=t.modes,a=i===`list`&&t.lists>1?`verbose`:i,o=t.overwriteNone?`none`:t.overwriteAll?`all`:null;return{...t,mode:a,overwrite:o,bothOverwrites:t.overwriteAll&&t.overwriteNone}}function zd(e,t,n,r){if(t>=e.length)return+(r>=n.length);let i=e[t++];if(i===63)return r<n.length?zd(e,t,n,r+1):0;if(i===42){if(t>=e.length)return 1;for(;r<n.length;r++){let i=zd(e,t,n,r);if(i!==0)return i}return 2}if(i===91)return Bd(e,t,n,r);if(i===92){if(t>=e.length)return 0;i=e[t++]}return r<n.length&&n[r]===i?zd(e,t,n,r+1):0}function Bd(e,t,n,r){if(r>=n.length)return 0;let i=e[t]===33||e[t]===94,a=t+ +!!i,o=a;for(let t=!1;o<e.length;o++)if(t)t=!1;else if(e[o]===92)t=!0;else if(e[o]===93)break;if(o>=e.length)return 0;let s=0,c=e[a]===45;for(;a<o;a++)if(!c&&e[a]===92)c=!0;else if(!c&&e[a]===45)s=e[a-1];else{if(e[a+1]!==45&&n[r]>=(s||e[a])&&n[r]<=e[a])return i?0:zd(e,o+1,n,r+1);s=0,c=!1}return i?zd(e,o+1,n,r+1):0}var Vd=(e,t)=>zd(e,0,t,0)===1,Hd=[` End-of-central-directory signature not found. Either this file is not`,` a zipfile, or it constitutes one disk of a multi-part archive. In the`,` latter case the central directory and zipfile comment will be found on`,` the last disk(s) of this archive.`].join(`
|
|
63
63
|
`)+`
|
|
64
|
-
`;async function
|
|
65
|
-
`),r.exdir!==null&&r.mode
|
|
66
|
-
`),r.mode
|
|
67
|
-
`),
|
|
64
|
+
`;async function Ud(e,t,n){let r=Rd(t);if(r.usage)return{stdout:``,stderr:r.usage.text,exitCode:r.usage.status};let i=$d(n,r);if(r.bothOverwrites&&i.say(2,`caution: both -n and -o specified; ignoring -o
|
|
65
|
+
`),r.exdir!==null&&r.mode!==`extract`&&i.say(2,`caution: not extracting; -d ignored
|
|
66
|
+
`),r.mode===`crt`||r.mode===`verbose`){let e=r.mode===`crt`?`-c`:r.lists>1?`-ll`:`-v`;return i.refuse(`option`,e,`how each entry is stored is not known here, which this listing prints`)}let a=Wd(r.archive,n);if(!a)return i.say(2,`unzip: cannot find or open ${r.archive}, ${r.archive}.zip or ${r.archive}.ZIP.
|
|
67
|
+
`),i.end(9);let o=zn(n.fs,a.path),s;try{s=await wd(o)}catch(e){if(!(e instanceof V))throw e;return Gd(o)?i.refuse(`feature`,`archive`,`this archive is not one this terminal reads: ${e.message}`):(i.heading(a.name,!0),i.say(2,Hd),r.mode!==`pipe`&&i.say(2,`unzip: cannot find zipfile directory in one of ${r.archive} or
|
|
68
68
|
${r.archive}.zip, and cannot find ${r.archive}.ZIP, period.
|
|
69
|
-
`),
|
|
70
|
-
`),
|
|
69
|
+
`),i.end(9))}let c=s.map(So).find(e=>e!==null);if(c!==void 0){let[e,t]=xo(c);return i.refuse(`feature`,e,`${c}: ${t}`)}if(s.length===0)return i.heading(a.name,!1),i.say(2,`warning [${a.name}]: zipfile is empty
|
|
70
|
+
`),i.end(1);let l=qd(s,r);if(r.mode===`list`)return Qd(l,a.name,i);if(i.heading(a.name,!1),r.mode===`test`)Xd(l,a.name,i);else if(r.mode===`pipe`)for(let e of l.entries)i.bytes(e.type===`symlink`?E(e.linkname):e.data);else if(!Ed(l.entries,r,i))return i.end(i.gap?1:i.status);return Jd(l,i),r.mode===`test`&&Zd(l,a.name,i),i.end(l.missed?11:i.status)}function Wd(e,t){for(let n of[e,`${e}.zip`,`${e}.ZIP`]){let r=P(n===e?t:{...t,notes:null},`unzip`,n);if(!r.error&&!t.fs.isDir(r.path))return{name:n,path:r.path}}return null}function Gd(e){for(let t=e.length-4;t>=Math.max(0,e.length-22-65535);t--)if(e[t]===80&&e[t+1]===75&&e[t+2]===5&&e[t+3]===6)return!0;return!1}var Kd=e=>E(e);function qd(e,t){let n=t.members.map(e=>({text:e,pattern:Kd(e),hit:!1})),r=t.excludes.map(e=>({text:e,pattern:Kd(e),hit:!1})),i=(e,t)=>{let n=!1;for(let r of e)Vd(r.pattern,t)&&(r.hit=!0,n=!0);return n};return{entries:e.filter(e=>{let t=Kd(bo(e)),a=n.length===0||i(n,t);return!i(r,t)&&a}),include:n,exclude:r,all:n.length===0&&r.length===0,missed:n.some(e=>!e.hit)}}function Jd(e,t){for(let n of e.include)n.hit||t.say(2,`caution: filename not matched: ${n.text}
|
|
71
71
|
`);for(let n of e.exclude)n.hit||t.say(2,`caution: excluded filename not matched: ${n.text}
|
|
72
|
-
`)}var
|
|
73
|
-
`)}function
|
|
72
|
+
`)}var Yd=(e,t)=>e+` `.repeat(Math.max(0,t-Kd(e).length));function Xd(e,t,n){if(n.quiet===0)for(let t of e.entries)n.say(1,` testing: ${Yd(bo(t),22)} OK
|
|
73
|
+
`)}function Zd(e,t,n){n.quiet>1||(e.missed?n.say(1,`At least one error was detected in ${t}.
|
|
74
74
|
`):e.all?n.say(1,`No errors detected in compressed data of ${t}.
|
|
75
|
-
`):n.say(1,`No errors detected in ${t} for the ${e.entries.length} file${e.entries.length===1
|
|
76
|
-
`))}function
|
|
75
|
+
`):n.say(1,`No errors detected in ${t} for the ${e.entries.length} file${e.entries.length===1?``:`s`} tested.
|
|
76
|
+
`))}function Qd(e,t,n){let{ctx:r}=n,i=r.vars.has(`TZ`),a=e=>xb(new Date(e.mtime*1e3),`%Y-%m-%d %H:%M`,i);if(!i&&e.entries.some(e=>a(e)!==xb(new Date(e.mtime*1e3),`%Y-%m-%d %H:%M`,!0)))return n.refuse(`feature`,`archive times`,`whether an entry's time is exact or a DOS time is not known here, and outside UTC the two are listed differently (TZ=UTC answers it)`);let o=e=>e.type===`symlink`?Kd(e.linkname).length:e.data.length;n.heading(t,!1),n.quiet<2&&n.say(1,` Length Date Time Name
|
|
77
77
|
--------- ---------- ----- ----
|
|
78
|
-
`);let
|
|
79
|
-
`);let
|
|
80
|
-
${String(
|
|
81
|
-
`),n.end(
|
|
82
|
-
`):
|
|
83
|
-
`)},refuse(
|
|
84
|
-
`),r.gap={kind:
|
|
78
|
+
`);let s=0;for(let t of e.entries)s+=o(t),n.say(1,`${String(o(t)).padStart(9)} ${a(t)} ${bo(t)}
|
|
79
|
+
`);let c=e.entries.length;return n.quiet<2&&n.say(1,`--------- -------
|
|
80
|
+
${String(s).padStart(9)} ${c} file${c===1?``:`s`}
|
|
81
|
+
`),n.end(c===0&&e.include.length>0?11:0)}function $d(e,t){let n=t.mode===`test`,r={ctx:e,events:[],status:0,gap:null,quiet:t.mode===`pipe`?Math.max(t.quiet,1):t.quiet,say(e,t){r.events.push({fd:n?1:e,text:t})},bytes(e){r.events.push({fd:1,bytes:e})},heading(e,t){r.quiet===0?r.say(1,`Archive: ${e}
|
|
82
|
+
`):t&&r.say(2,`[${e}]
|
|
83
|
+
`)},refuse(e,t,n){return r.say(2,`unzip: ${n}
|
|
84
|
+
`),r.gap={kind:e,detail:t,message:`unzip: ${n}`},r.end(1)},end(e=r.status){let t=e=>r.events.filter(t=>t.fd===e&&t.text!==void 0).map(e=>e.text).join(``),n={stdout:t(1),stderr:t(2),exitCode:e,events:r.events};return r.gap?w(n,r.gap.kind,`unzip`,r.gap.detail,r.gap.message):n}};return r}var ef={file:384,directory:448,symlink:511},tf={__proto__:null,r:`recurse`,q:`quiet`,j:`junk`,0:`store`,y:`symlinks`,D:`noDirectories`};function nf(e){let t={recurse:!1,quiet:!1,junk:!1,store:!1,symlinks:!1,noDirectories:!1,archive:null,names:[]};for(let n of e){if(n.startsWith(`--`))throw new T(`option`,n.split(`=`)[0],`unknown option: ${n.split(`=`)[0]}`);if(n.startsWith(`-`)&&n.length>1)for(let e of n.slice(1)){if(!tf[e])throw new T(`option`,`-${e}`,`unknown option: -${e}`);t[tf[e]]=!0}else t.archive===null?t.archive=n:t.names.push(n)}return t}async function rf(e,t,n){let r=nf(t);if(r.archive===null||r.archive===`-`){if(t.length>0&&Fn(n))return{stdout:``,stderr:`
|
|
85
85
|
zip error: Invalid command arguments (cannot write zip file to terminal)
|
|
86
|
-
`,exitCode:16};throw new
|
|
87
|
-
zip error: Nothing to do! (${
|
|
88
|
-
`),
|
|
89
|
-
zip error: Could not create output file (${
|
|
90
|
-
`),
|
|
91
|
-
`:` adding: ${n} (deflated ${
|
|
92
|
-
`}function
|
|
93
|
-
`);return}let
|
|
94
|
-
`):
|
|
95
|
-
|
|
96
|
-
second full name: ${
|
|
97
|
-
name in zip file repeated: ${
|
|
98
|
-
${
|
|
86
|
+
`,exitCode:16};throw new T(`feature`,`streamed archive`,`writing an archive to stdout is not supported`)}let i={events:[],status:0},a=e=>i.events.push({fd:1,text:e}),o=mt(r.archive).includes(`.`)?r.archive:`${r.archive}.zip`;if(k(n.cwd,o,n.fs,{follow:!1}).path!==null)return gf(i,`feature`,`existing archive`,`${o}: adding to an archive that is already there is not supported`);let s={ctx:n,opts:r,entries:[],seen:new Set,out:a,gap:null};for(let e of r.names){if(e===`-`)return gf(i,`feature`,`stdin input`,"adding what stdin holds, as the entry `-`, is not supported");if(ff(e,s),s.gap)return gf(i,...s.gap)}if(s.entries.length===0)return a(`
|
|
87
|
+
zip error: Nothing to do! (${o})
|
|
88
|
+
`),_f(i,12);let c=mf(s);if(c)return a(c),_f(i,16);let l=r.store?new Map:await cf(s.entries.filter(e=>e.type===`file`)),u=[...l.keys()].filter(sf);if(u.length>0&&u.length<l.size)return gf(i,`feature`,`stored suffix`,`${u[0].name}: storing a file as Info-ZIP stores one by its suffix, beside files it deflates, is not supported`);for(let e of u)l.delete(e);let d=s.entries.map(e=>lf(e,l.get(e))),f;try{f=await id(s.entries,{method:l.size>0?`deflate`:`store`})}catch(e){if(!(e instanceof V))throw e;return gf(i,`feature`,`archive`,`this archive cannot be written here: ${e.message}`)}let p=O(n.cwd,o),m=n.writable&&R(p)?af(n,o):null;if(m===null)return gf(i,`feature`,`read-only target`,`${o}: Read-only file system`);if(m.error)return a(`zip I/O error: ${m.error}
|
|
89
|
+
zip error: Could not create output file (${o})
|
|
90
|
+
`),_f(i,15);if(!r.quiet)for(let e of d)a(e);return m.writeBytes(f),_f(i,0)}function af(e,t){try{return e.fs.openWritable(e.cwd,t)}catch(e){return{error:e.fsError??`No such file or directory`}}}var of=[`.Z`,`.zip`,`.zoo`,`.arc`,`.lzh`,`.arj`],sf=e=>of.some(t=>e.name.endsWith(t));async function cf(e){let t=await Promise.all(e.map(async e=>e.data.length===0?0:(await go(e.data,`deflate-raw`)).length));return new Map(e.flatMap((e,n)=>t[n]<e.data.length?[[e,t[n]]]:[]))}function lf(e,t){let n=e.type===`directory`?`${e.name}/`:e.name;return t===void 0?` adding: ${n} (stored 0%)
|
|
91
|
+
`:` adding: ${n} (deflated ${uf(e.data.length,t)}%)
|
|
92
|
+
`}function uf(e,t){let[n,r]=[e,t];return n>16777215&&(n=Math.floor((n+128)/256),r=Math.floor((r+128)/256)),n>r?Math.floor((1+Math.floor(200*(n-r)/n))/2):0}function df(e,t){if(t.junk)return mt(e);let n=e.replace(/^\/+/u,``);for(;n.startsWith(`./`);)n=n.slice(2);return n===`.`?``:n}function ff(e,t){let{ctx:n,opts:r}=t,i=k(n.cwd,e,n.fs,{follow:!r.symlinks});if(i.error){t.out(` zip warning: name not matched: ${e}
|
|
93
|
+
`);return}let a=e.length>1?e.replace(/\/+$/u,``):e,o=df(a,r);pf(i.path,o,!r.junk&&o===``?``:a,t)}function pf(e,t,n,r){let{ctx:i,opts:a}=r,{fs:o}=i,s=a.symlinks&&o.isLink?.(e)===!0,c=!s&&o.isDir(e);if(t!==``&&t.split(`/`).some(e=>e===`.`||e===`..`||e===``))return hf(r,`dot-segment names`,`${t}: names with \`.', \`..' or empty segments are not supported`);let l=s?`symlink`:c?`directory`:`file`;if(t!==``&&(!c||!(a.junk||a.noDirectories))&&r.entries.push({name:t,full:c?`${n}/`:n,type:l,mode:ef[l],mtime:Math.floor(i.createdAt/1e3),linkname:s?o.readLink(e):``,data:l===`file`?zn(o,e):void 0}),!c||!a.recurse)return;if(r.seen.has(e))return hf(r,`link loop`,`${t}: a directory inside itself through a link is not supported`);r.seen.add(e);let{dirs:u,files:d,links:f=[]}=o.listDir(e);for(let i of[...new Set([...u,...d,...f])].sort(M)){let s=k(`/`,ht(e,i),o,{follow:!a.symlinks});if(s.error?r.out(` zip warning: name not matched: ${t}/${i}
|
|
94
|
+
`):pf(s.path,a.junk||t===``?i:`${t}/${i}`,n===``?i:`${n}/${i}`,r),r.gap)break}r.seen.delete(e)}function mf(e){let t=e.entries.toSorted((e,t)=>M(e.name,t.name)||M(e.full,t.full)),n=[];for(let r of t){let t=n.at(-1);if(t?.name!==r.name)n.push(r);else if(t.full!==r.full){let n=r.type===`directory`?`${r.name}/`:r.name,i=e.opts.junk?` this may be a result of using -j
|
|
95
|
+
`:``;return` zip warning: first full name: ${t.full}
|
|
96
|
+
second full name: ${r.full}
|
|
97
|
+
name in zip file repeated: ${n}
|
|
98
|
+
${i}
|
|
99
99
|
zip error: Invalid command arguments (cannot repeat names in zip file)
|
|
100
|
-
`}}let r=new Set(n);return e.entries=e.entries.filter(
|
|
101
|
-
`}),
|
|
102
|
-
`;async function
|
|
103
|
-
`,e.status=1,!1}var
|
|
100
|
+
`}}let r=new Set(n);return e.entries=e.entries.filter(e=>r.has(e)),null}function hf(e,t,n){e.gap??=[`feature`,t,n]}function gf(e,t,n,r){return e.events.push({fd:2,text:`zip: ${r}
|
|
101
|
+
`}),w(_f(e,1),t,`zip`,n,`zip: ${r}`)}function _f(e,t){let n=t=>e.events.filter(e=>e.fd===t).map(e=>e.text).join(``);return{stdout:n(1),stderr:n(2),exitCode:t,events:e.events}}var vf={tar:ku,...fo(`deflate-raw`)?{zip:rf,unzip:Ud}:{}},yf=`brotli`,bf=`.br`,xf=fo(yf)?{brotli:Tf}:{},Sf=`con`,Cf=Object.freeze([`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`]),wf=`Usage: brotli [OPTION]... [FILE]...
|
|
102
|
+
`;async function Tf(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[...Cf,`d`,`c`,`k`,`j`,`f`,`Z`],long:[`decompress`,`stdout`,`keep`,`rm`,`force`,`best`],valueShort:[`q`],valueLong:[`quality`]}),o=Ef(r,i);if(o!==void 0)return C(`option`,`brotli`,o,`brotli: ${o}: choosing a compression level is not supported`,1);let s={decompressing:r.has(`d`)||r.has(`decompress`),stdout:r.has(`c`)||r.has(`stdout`),remove:r.has(`j`)||r.has(`rm`),force:r.has(`f`)||r.has(`force`)};if(s.stdout&&a.length>1)return{stdout:wf,stderr:``,exitCode:1};let c={ctx:n,events:[],stderr:``,status:0,gap:null};for(let t of a.length===0?[`-`]:a)if(!await Df(t,e,s,c))break;if(c.gap)return c.gap;let l=[...c.events,...c.stderr?[{fd:2,text:c.stderr}]:[]];return{stdout:``,stderr:c.stderr,exitCode:c.status,events:l}}function Ef(e,t){let n=[...Cf,`Z`].find(t=>e.has(t));return n===void 0?e.has(`best`)?`--best`:t.has(`q`)?`-q`:t.has(`quality`)?`--quality`:void 0:`-`+n}function Df(e,t,n,r){let{ctx:i}=r;if(e===`-`){if(!n.force&&(n.decompressing?Pn(i):Fn(i)))return Af(r,`Use -h help. Use -f to force ${n.decompressing?`input from`:`output to`} a terminal.`);let e=i.stdinBytes,t=i.stdinLeft;return I(i,``,!0),Of(e??E(t),Sf,null,n,r)}let a=null;if(!n.stdout){if(!n.decompressing)a=e+bf;else{if(e.length<=bf.length)return Af(r,`empty output file name for [${e}] input file`);if(e.endsWith(bf))a=e.slice(0,-bf.length);else return Af(r,`input file [${e}] suffix mismatch`)}}let o=P(i,`brotli`,e);return o.error?Af(r,`failed to open input file [${e}]: ${o.error}`):a!==null&&!n.force&&P(i,`brotli`,a).error===null?Af(r,`failed to open output file [${a}]: File exists`):a===null&&!n.decompressing&&!n.force&&Fn(i)?Af(r,`Use -h help. Use -f to force output to a terminal.`):i.fs.isDir(o.path)?Af(r,`failed to read input [${e}]: Is a directory`):Of(zn(i.fs,o.path),e,a,n,r)}async function Of(e,t,n,r,i){let{ctx:a}=i,o=r.decompressing?await Sc(e,yf):{bytes:await go(e,yf),error:null};if(o.error)return Af(i,`corrupt input [${t}]`);if(n===null)i.events.push({fd:1,bytes:o.bytes});else if(!kf(n,o.bytes,i))return!1;return r.remove&&t!==Sf&&a.fs.removeWritable(a.cwd,t),!0}function kf(e,t,n){let{ctx:r}=n,i;try{i=r.writable&&r.fs.openWritable?.(r.cwd,e)}catch(t){return Af(n,`failed to open output file [${e}]: ${t.message}`)}return i?(i.writeBytes(t),!0):(n.gap??=C(`feature`,`brotli`,`read-only target`,`brotli: ${e}: file system is read-only`,1),!1)}function Af(e,t){return e.stderr+=`${t}
|
|
103
|
+
`,e.status=1,!1}var jf=Object.freeze({__proto__:null,1:`SHA-1`,256:`SHA-256`,384:`SHA-384`,512:`SHA-512`}),Mf=Object.freeze([`1`,`224`,`256`,`384`,`512`,`512224`,`512256`]),Nf=()=>{try{return typeof crypto?.subtle?.digest==`function`}catch{return!1}};async function Pf(e,t){let n=new Uint8Array(await crypto.subtle.digest(e,t));return Array.from(n,e=>e.toString(16).padStart(2,`0`)).join(``)}function Ff(e,t,n){let r=e===`shasum`?n.get(`a`)??`1`:String(t);if(e===`shasum`&&!Mf.includes(r))return{error:x(`${e}: Unrecognized algorithm
|
|
104
104
|
Type shasum -h for help
|
|
105
|
-
`,1)};let
|
|
105
|
+
`,1)};let i=jf[r];return i===void 0?{error:C(`feature`,e,`SHA-${r}`,`${e}: this runtime's crypto does not digest SHA-${r}`,1)}:{algorithm:i}}function If(e,t){return async(n,r,i)=>{let{flags:a,order:o,positional:s,values:c}=U(r,{short:e===`shasum`?[`b`,`t`,`c`]:[`b`,`t`,`c`,`z`],long:e===`shasum`?[`binary`,`text`,`check`,`tag`]:[`binary`,`text`,`check`,`tag`,`zero`],valueShort:e===`shasum`?[`a`]:[]});if(a.has(`c`)||a.has(`check`))return C(`feature`,e,`-c`,`${e}: reading a list of digests back is not supported`,1);let{algorithm:l,error:u}=Ff(e,t,c);if(u)return u;let{mode:d,error:f}=Bf(e,a,o);if(f)return f;let p=Vn(e,s,n,i,{read:`bytes`}),m=await Promise.all(p.inputs.map(e=>Pf(l,e.bytes))),h=Vf(l,a,d);return Kn(p.inputs.map((e,t)=>h(m[t],e.name??`-`)).join(``),p)}}var Lf=new Set([`b`,`binary`]),Rf=new Set([`t`,`text`]);function zf(e,t){let n=!1,r=null,i=!1;for(let{name:e}of t)Lf.has(e)?(n=!0,r=`binary`):Rf.has(e)?(i=!0,r=`text`):e===`tag`&&(r=`binary`);return e===`shasum`?{binary:n,text:i&&!n,ambiguous:n&&i}:{binary:r===`binary`,text:r===`text`,ambiguous:!1}}function Bf(e,t,n){let r=zf(e,n),i=e===`shasum`?`Type ${e} -h for help
|
|
106
106
|
`:`Try '${e} --help' for more information.
|
|
107
|
-
`;return r.ambiguous?{error:
|
|
108
|
-
${
|
|
109
|
-
${
|
|
110
|
-
`;if(t.has(
|
|
111
|
-
`,n.status=2,null)}function
|
|
112
|
-
`,n.status=2,null;let i
|
|
113
|
-
`,e.status=2,!1}function
|
|
114
|
-
`),e.status=t,!1}function
|
|
115
|
-
`,exitCode:2}),
|
|
107
|
+
`;return r.ambiguous?{error:x(`${e}: Ambiguous file mode
|
|
108
|
+
${i}`,1)}:t.has(`tag`)&&r.text?{error:x(`${e}: --tag does not support --text mode
|
|
109
|
+
${i}`,1)}:{mode:r}}function Vf(e,t,n){let r=t.has(`z`)||t.has(`zero`)?`\0`:`
|
|
110
|
+
`;if(t.has(`tag`)){let t=e.replace(`-`,``);return(e,n)=>`${t} (${n}) = ${e}${r}`}return(e,t)=>`${e}${n.binary?` *`:` `}${t}${r}`}var Hf=Nf()?{sha1sum:If(`sha1sum`,1),sha256sum:If(`sha256sum`,256),sha384sum:If(`sha384sum`,384),sha512sum:If(`sha512sum`,512),shasum:If(`shasum`,1)}:{},Uf=()=>typeof fetch==`function`;function Wf(e){if(e.network!==void 0&&typeof e.network!=`boolean`)throw TypeError(`createTerminal: network must be true or false (got ${e.network===null?`null`:typeof e.network})`);return e.network===!0}var Gf=Object.freeze([`http:`,`https:`]),Kf=/^[a-zA-Z][a-zA-Z0-9+.-]*:/u;function qf(e){let t=Kf.test(e)?e:`http://`+e,n;try{n=new URL(t)}catch{return{malformed:!0}}return Gf.includes(n.protocol)?n.hostname===``?{malformed:!0}:{url:n}:{protocol:n.protocol.slice(0,-1)}}var Jf=new Set([`ENOTFOUND`,`EAI_AGAIN`]),Yf=new Set([`ETIMEDOUT`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]),Xf=new Set([`ECONNRESET`,`ECONNABORTED`,`EPIPE`]),Zf=new Set([`CERT_HAS_EXPIRED`,`CERT_NOT_YET_VALID`,`DEPTH_ZERO_SELF_SIGNED_CERT`,`SELF_SIGNED_CERT_IN_CHAIN`,`UNABLE_TO_GET_ISSUER_CERT_LOCALLY`,`UNABLE_TO_VERIFY_LEAF_SIGNATURE`,`ERR_TLS_CERT_ALTNAME_INVALID`]),Qf=new Set([`TimeoutError`,`AbortError`]);function $f(e,t,n){let r=tp(e),i=np(e),a=`Failed to connect to ${t.hostname} port ${ep(t)}`;return Qf.has(e?.name)||Yf.has(r)?{code:28,message:n===null?`Operation timed out: ${i}`:`Operation timed out after ${n} milliseconds`}:Jf.has(r)?{code:6,message:`Could not resolve host: ${t.hostname}`}:Zf.has(r)?{code:60,message:`SSL certificate problem: ${i}`}:Xf.has(r)?{code:56,message:`Recv failure: ${i}`}:{code:7,message:`${a}: ${i}`}}var ep=e=>e.port===``?e.protocol===`https:`?443:80:e.port;function tp(e){for(let t=e,n=0;t!=null&&n<8;t=t.cause,n++)if(typeof t.code==`string`)return t.code;return null}function np(e){let t=typeof e?.message==`string`&&e.message!==``?e.message:`transfer failed`;for(let n=e?.cause,r=0;n!=null&&r<8;n=n.cause,r++)typeof n.message==`string`&&n.message!==``&&(t=n.message);return t}async function rp(e,t,n=null){try{return{response:await fetch(e.href,t)}}catch(t){return{failed:$f(t,e,n)}}}async function ip(e,t,n=null){try{return{bytes:new Uint8Array(await e.arrayBuffer())}}catch(e){let{code:r,message:i}=$f(e,t,n);return{failed:r===7?{code:56,message:`Recv failure: ${np(e)}`}:{code:r,message:i}}}}async function ap(e){try{await e.body?.cancel()}catch{}}var op={short:[`h`,`s`,`S`,`i`,`I`,`L`,`f`,`O`,`k`,`v`,`G`,`n`],long:[`help`,`silent`,`show-error`,`no-progress-meter`,`include`,`head`,`location`,`location-trusted`,`fail`,`remote-name`,`compressed`,`insecure`,`verbose`,`get`,`netrc`],valueShort:[`X`,`A`,`m`,`u`,`e`,`b`,`c`,`w`,`x`,`T`,`r`,`C`,`E`,`D`,`F`],valueLong:[`request`,`user-agent`,`max-time`,`user`,`max-redirs`,`referer`,`cookie`,`cookie-jar`,`write-out`,`proxy`,`proxy-user`,`upload-file`,`range`,`continue-at`,`cert`,`key`,`cacert`,`capath`,`dump-header`,`connect-timeout`,`retry`,`limit-rate`,`resolve`,`interface`,`form`],repeatable:[`H`,`header`,`d`,`data`,`data-raw`,`data-ascii`,`data-binary`,`json`,`o`,`output`]},sp=new Map([[`k`,`certificates are the runtime's to check, and nothing here can tell it not to`],[`insecure`,`certificates are the runtime's to check, and nothing here can tell it not to`],[`v`,"the trace is of a connection this code never sees; `-i` prints the response headers"],[`verbose`,"the trace is of a connection this code never sees; `-i` prints the response headers"],[`location-trusted`,"a credential is for the origin it was given for; `-L` follows the hop without it"],[`G`,`moving the data into the query string is not implemented; put it in the URL`],[`get`,`moving the data into the query string is not implemented; put it in the URL`],[`n`,"there is no home directory here to read a `.netrc` from"],[`netrc`,"there is no home directory here to read a `.netrc` from"],[`b`,'there is no cookie jar here; a cookie to send is `-H "Cookie: …"`'],[`cookie`,'there is no cookie jar here; a cookie to send is `-H "Cookie: …"`'],[`c`,`there is no cookie jar here to write`],[`cookie-jar`,`there is no cookie jar here to write`],[`w`,`the transfer keeps no measurements of its own to write out`],[`write-out`,`the transfer keeps no measurements of its own to write out`],[`x`,`a proxy is the runtime's own setting, and nothing here passes it one`],[`proxy`,`a proxy is the runtime's own setting, and nothing here passes it one`],[`proxy-user`,`a proxy is the runtime's own setting, and nothing here passes it one`],[`F`,"a multipart body is not implemented; `--data-binary` sends one you spell out yourself"],[`form`,"a multipart body is not implemented; `--data-binary` sends one you spell out yourself"],[`T`,"uploading a file is not implemented; `-X PUT --data-binary @file` sends the same bytes"],[`upload-file`,"uploading a file is not implemented; `-X PUT --data-binary @file` sends the same bytes"],[`r`,'a ranged request is `-H "Range: bytes=…"`'],[`range`,'a ranged request is `-H "Range: bytes=…"`'],[`C`,`there is nothing to resume: a transfer here is one request and its answer`],[`continue-at`,`there is nothing to resume: a transfer here is one request and its answer`],[`E`,`client certificates are the runtime's own`],[`cert`,`client certificates are the runtime's own`],[`key`,`client certificates are the runtime's own`],[`cacert`,`the trust store is the runtime's own`],[`capath`,`the trust store is the runtime's own`],[`e`,'a referer is `-H "Referer: …"`'],[`referer`,'a referer is `-H "Referer: …"`'],[`D`,"writing the headers to a file of their own is not implemented; `-i` writes them in front of the body"],[`dump-header`,"writing the headers to a file of their own is not implemented; `-i` writes them in front of the body"],[`connect-timeout`,"only the whole transfer can be timed here, which is `--max-time`"],[`retry`,`retrying is not implemented: a transfer here is one request and its answer`],[`limit-rate`,`the runtime reads the response at its own pace`],[`resolve`,`name resolution is the runtime's own`],[`interface`,`the interface a request leaves by is the runtime's own`]]),cp=new Map([[`d`,`text`],[`data`,`text`],[`data-ascii`,`text`],[`data-raw`,`raw`],[`data-binary`,`binary`],[`json`,`json`]]),lp=new Set([`H`,`header`]),up=new Set([`o`,`output`]),dp=new Set([`O`,`remote-name`]),fp=`application/x-www-form-urlencoded`,pp=`application/json`,mp=50,hp=new Set([10,13]);function gp(e,t,n){let{flags:r,values:i,positional:a,order:o}=U(e,op);if(r.has(`h`)||r.has(`help`))return{help:!0};let s=_p(r,i);return s?{refusal:s}:{opts:vp(r,i,o,t,n),urls:a,targets:Op(o)}}function _p(e,t){for(let[n,r]of sp){if(!e.has(n)&&!t.has(n))continue;let i=(n.length===1?`-`:`--`)+n;return C(`option`,`curl`,i,`curl: ${i}: ${r}`,2)}return null}function vp(e,t,n,r,i){i.quiet=(e.has(`s`)||e.has(`silent`))&&!e.has(`S`)&&!e.has(`show-error`);let a=bp(n,r,i);if(a===null)return null;let o=wp(t,n,a,i);if(o===null)return null;let s=yp(t.get(`max-redirs`),`--max-redirs`,i),c=yp(t.get(`m`)??t.get(`max-time`),`--max-time`,i);if(s===null||c===null)return null;if(c!==void 0&&typeof AbortSignal?.timeout!=`function`)return Ap(i,`feature`,`--max-time`,2,`this runtime cannot put a deadline on a request`);let l=e.has(`I`)||e.has(`head`);return{headers:o,body:a.bytes,head:l,include:e.has(`i`)||e.has(`include`),location:e.has(`L`)||e.has(`location`),failEarly:e.has(`f`)||e.has(`fail`),method:t.get(`X`)??t.get(`request`)??(l?`HEAD`:a.bytes===null?`GET`:`POST`),redirects:s===void 0?mp:s<0?1/0:s,timeout:c===void 0?null:Math.round(c*1e3)}}function yp(e,t,n){if(e===void 0)return;let r=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/u.test(e.trim())?Number(e.trim()):NaN;return Number.isFinite(r)?r:(n.stderr+=`curl: option ${t}: expected a proper numerical parameter
|
|
111
|
+
`,n.status=2,null)}function bp(e,t,n){let r=[],i=new Set;for(let{name:a,value:o}of e){let e=cp.get(a);if(e===void 0)continue;let s=xp(e,o,t,n);if(s===null)return null;i.add(e===`json`?`json`:`form`),r.push(s)}if(r.length===0)return{bytes:null,json:!1};if(i.size>1)return n.stderr+=`curl: --json cannot be mixed with --data
|
|
112
|
+
`,n.status=2,null;let a=i.has(`json`),o=[];for(let[e,t]of r.entries())e>0&&!a&&o.push(E(`&`)),o.push(t);return{bytes:ct([...o,new Uint8Array]),json:a}}function xp(e,t,n,r){if(e===`raw`||!t.startsWith(`@`))return E(t);let i=t.slice(1),a=i===`-`?Sp(n,r.ctx):Cp(i,r);return a===null?null:e===`text`?a.filter(e=>!hp.has(e)):a}function Sp(e,t){let n=t.stdinBytes,r=t.stdinLeft===``?e:t.stdinLeft;return I(t,``,!0),n??E(r)}function Cp(e,t){let{ctx:n}=t,r=P(n,`curl`,e);return r.error||n.fs.isDir(r.path)?(kp(t,26,`Failed to open/read local data from file/application`),null):zn(n.fs,r.path)}function wp(t,n,r,i){let a=new Headers;r.bytes!==null&&a.set(`content-type`,r.json?pp:fp),r.json&&a.set(`accept`,pp);let o=t.get(`A`)??t.get(`user-agent`);o!==void 0&&a.set(`user-agent`,o);let s=t.get(`u`)??t.get(`user`);if(s!==void 0){if(!s.includes(`:`))return Ap(i,`feature`,`-u`,2,`there is no interactive input here to read a password from`);a.set(`authorization`,`Basic ${e(E(s))}`)}for(let{name:e,value:t}of n)if(lp.has(e)&&!Tp(a,t,i))return null;return a}function Tp(e,t,n){let r=t.indexOf(`:`);if(r===-1)return t.endsWith(`;`)?Ep(e,t.slice(0,-1),``,n):Dp(n,t);let i=t.slice(r+1).trim();return i===``?(Ap(n,`option`,`-H`,2,`-H "${t}": taking away a header the runtime sends is not supported`),!1):Ep(e,t.slice(0,r),i,n)}function Ep(e,t,n,r){try{e.set(t.trim(),n)}catch{return Dp(r,t.trim())}return!0}function Dp(e,t){return e.stderr+=`curl: -H: not a header: ${t}
|
|
113
|
+
`,e.status=2,!1}function Op(e){let t=[];for(let{name:n,value:r}of e)up.has(n)?t.push(r===`-`?null:{file:r}):dp.has(n)&&t.push({remote:!0});return t}function kp(e,t,n){return e.quiet||(e.stderr+=`curl: (${t}) ${n}
|
|
114
|
+
`),e.status=t,!1}function Ap(e,t,n,r,i){return e.gap??={kind:t,detail:n,message:`curl: (${r}) ${i}`},kp(e,r,i),null}var jp=new Set([301,302,303,307,308]),Mp=new Set([301,302,303]);async function Np(e,t,n){let r={ctx:n,events:[],stderr:``,status:0,gap:null,quiet:!1},{help:i,refusal:a,opts:o,urls:s,targets:c}=gp(t,e,r);if(i)return{stdout:Fp,stderr:``,exitCode:0};if(a)return a;if(o===null)return Ip(r);if(s.length===0)return Pp();for(let[e,t]of s.entries())await Lp(t,c[e]??null,o,r);return Ip(r)}var Pp=()=>({stdout:``,stderr:`curl: try 'curl --help' for more information
|
|
115
|
+
`,exitCode:2}),Fp=`Usage: curl [options...] <url>
|
|
116
116
|
-d, --data <data> send data in a POST body; @file reads a file, @- the pipe
|
|
117
117
|
--data-raw <data> the same, taking a leading @ as data rather than a name
|
|
118
118
|
--data-binary <data> the same, keeping a file's line endings
|
|
@@ -135,113 +135,113 @@ ${o}`,1)}:{mode:r}}function oE(e,t,n){let r=t.has("z")||t.has("zero")?"\0":`
|
|
|
135
135
|
|
|
136
136
|
Every other option curl carries is refused by name, and says what would have
|
|
137
137
|
to exist here for it to work.
|
|
138
|
-
`;function
|
|
138
|
+
`;function Ip(e){let t=[...e.events,...e.stderr?[{fd:2,text:e.stderr}]:[]],n={stdout:``,stderr:e.stderr,exitCode:e.status,events:t};return e.gap?w(n,e.gap.kind,`curl`,e.gap.detail,e.gap.message):n}async function Lp(e,t,n,r){let i=qf(e);if(i.protocol)return Ap(r,`feature`,`protocol`,1,Rp(i.protocol));if(i.malformed)return kp(r,3,`URL using bad/illegal format or missing URL`);let a=t?.remote?zp(i.url):t?.file??null,o={url:i.url,method:n.method,body:n.body,headers:n.headers},s=n.timeout===null?null:AbortSignal.timeout(n.timeout),c=``;for(let e=0;;e++){let{response:t,failed:i}=await rp(o.url,Bp(o,s),n.timeout);if(i)return kp(r,i.code,i.message);(n.include||n.head)&&(c+=Jp(t,r.ctx));let l=Vp(t,o,n);if(l===null)return Gp(t,o.url,c,a,n,r);if(await ap(t),e>=n.redirects)return kp(r,47,`Maximum (${n.redirects}) redirects followed`);if(l.protocol)return Ap(r,`feature`,`protocol`,1,Rp(l.protocol));Object.assign(o,l)}}var Rp=e=>`Protocol "${e}" not supported or disabled in libcurl`,zp=e=>e.pathname.slice(e.pathname.lastIndexOf(`/`)+1),Bp=(e,t)=>({method:e.method,headers:e.headers,redirect:`manual`,...e.body===null?{}:{body:e.body},...t===null?{}:{signal:t}});function Vp(e,t,n){if(!n.location||!jp.has(e.status))return null;let r=e.headers.get(`location`);if(r===null||r===``)return null;let i;try{i=new URL(r,t.url)}catch{return null}if(i.protocol!==`http:`&&i.protocol!==`https:`)return{protocol:i.protocol.slice(0,-1)};let a=Mp.has(e.status)&&t.method!==`HEAD`&&t.method!==`GET`;return{url:i,method:a?`GET`:t.method,body:a?null:t.body,headers:Wp(t.headers,a,i.origin!==t.url.origin)}}var Hp=Object.freeze([`content-type`,`content-length`]),Up=Object.freeze([`authorization`,`cookie`,`proxy-authorization`]);function Wp(e,t,n){if(!t&&!n)return e;let r=new Headers(e);if(t)for(let e of Hp)r.delete(e);if(n)for(let e of Up)r.delete(e);return r}async function Gp(e,t,n,r,i,a){if(i.failEarly&&e.status>=400)return await ap(e),kp(a,22,`The requested URL returned error: ${e.status}`);if(i.head)return await ap(e),Kp(n,null,r,a);let o=await ip(e,t,i.timeout);return o.failed?kp(a,o.failed.code,o.failed.message):Kp(n,o.bytes,r,a)}function Kp(e,t,n,r){return n===null?(e!==``&&r.events.push({fd:1,text:e}),t!==null&&t.length>0&&r.events.push({fd:1,bytes:t}),!0):qp(n,e,t,r)}function qp(e,t,n,r){let{ctx:i}=r;if(e===``)return kp(r,23,`Remote filename has no length`);let a;try{a=i.writable&&i.fs.openWritable?.(i.cwd,e)}catch(e){return kp(r,23,`Failure writing output to destination: ${e.message}`)}return a?(a.writeBytes(ct([E(t),n??new Uint8Array])),!0):Ap(r,`feature`,`read-only target`,23,`${e}: file system is read-only`)}function Jp(e,t){t.notes?.add(`curl: response header names are lowercased and sorted, and the status line reads HTTP/1.1 whatever the connection spoke.`);let n=[`HTTP/1.1 ${e.status}${e.statusText===``?``:` ${e.statusText}`}`],r=e.headers.getSetCookie?.()??[],i=!1;for(let[t,a]of e.headers){if(t!==`set-cookie`){n.push(`${t}: ${a}`);continue}if(r.length===0){n.push(`${t}: ${a}`);continue}if(!i){i=!0;for(let e of r)n.push(`${t}: ${e}`)}}return n.join(`\r
|
|
139
139
|
`)+`\r
|
|
140
140
|
\r
|
|
141
|
-
`}var
|
|
141
|
+
`}var Yp={...Hc,...xf,...Hf,...vf},Xp=Object.freeze({__proto__:null,curl:Np}),Zp=Object.freeze(Object.keys(Xp)),Qp=e=>e===!0&&Uf()?Xp:null,$p=new Uint8Array;function em(e,t,n,r,i){let a=tm(e,i.skip,i.skipFlag,0),o=tm(e,i.len,i.lenFlag,1/0);if(a.error||o.error)return{error:a.error??o.error};let s=o.value,c=a.value,l=0,u=n,d=r.stdinBytes,f=[],m={stderr:``,failed:!1};for(let n of t.length?t:[null]){let t=Vn(e,n===null?[]:[n],u,r,{read:`loose-bytes`,noRead:s===0&&c===0}),o=t.entries[0]?.kind===`dir`;if(m.stderr+=t.stderr,m.failed||=t.failed&&!(e===`hexdump`&&o),c&&o)return{error:C(`feature`,e,`skip across unreadable input`,`${e}: skipping across a directory operand is not supported`)};if(o&&e===`xxd`)return{error:x(m.stderr,2)};if(!t.inputs.length&&!o)continue;let h=t.inputs[0],g=h&&(h.shared||h.name===null);if(e===`hexdump`&&c&&g&&!r.stdinFile)return I(r,u,!0,d),{error:x(`hexdump: standard input: Illegal seek`)};let _=g&&r.stdinFile&&i.skip!==void 0&&(e===`xxd`||e===`hexdump`&&a.value>0),ee=_?p(r.stdinOrigin):h?.bytes??$p,v=Math.min(c,ee.length);c-=v,l+=v;let te=Math.min(s,ee.length-v);if(f.push(ee.subarray(v,v+te)),s-=te,g){let e=ee.subarray(v+te),t=d!==null&&!_&&e.length>0?e:null;u=t===null?D(e):$e(e)??``,I(r,u,!0,t)}if(_&&c&&(l=a.value,c=0),s===0&&c===0)break}if(c&&i.skipPastEofErrors)return{error:x(m.stderr+`${e}: cannot skip past end of combined input`)};let h=new Uint8Array(f.reduce((e,t)=>e+t.length,0)),g=0;for(let e of f)h.set(e,g),g+=e.length;return{bytes:h,start:l,r:m}}function tm(e,t,n,r){if(t===void 0)return{value:r};if(e===`xxd`&&!/^(?:0[xX][\da-fA-F]+|0[0-7]*|[1-9]\d*)$/u.test(t))return{error:C(`feature`,e,`${n} ${t}`,`xxd: this offset/count spelling is not supported: ${t}`)};if(e===`hexdump`)return/^[ \t\n\r\v\f]*[+\d-]/u.test(t)?!/^\d+$/u.test(t)||/^0\d/u.test(t)?{error:C(`feature`,e,`${n} ${t}`,`hexdump: this offset/count spelling is not supported: ${t}`)}:BigInt(t)>BigInt(2**53-1)?{error:C(`feature`,e,`large byte count`,`hexdump: counts beyond exact integer precision are not supported`)}:{value:Number(t)}:{error:x(`${e}: ${n}: invalid count: ${t}`)};let i=/^[ \t\n\r\v\f]*\+?(0[xX][\da-fA-F]+|0[0-7]*|[1-9]\d*)(b|[kKMGTPEZYRQ](?:i?B)?)?$/u.exec(t);if(!i)return{error:x(`${e}: ${n}: invalid count: ${t}`)};let a=/^0\d/u.test(i[1])?`0o`+i[1].slice(1):i[1];return Yn(BigInt(a),i[2],`${e}: ${n}`,t)}var nm=16,rm=47,im=39;function am(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`C`,`v`],valueShort:[`n`,`s`]});if(a.includes(`-`))return C(`feature`,`hexdump`,`hyphen input operand`,`hexdump: a hyphen input operand is not supported; omit operands to read stdin`);let o=em(`hexdump`,a,e,n,{skip:i.get(`s`),len:i.get(`n`),skipFlag:`-s`,lenFlag:`-n`});return o.error?o.error:Kn(cm(o.bytes,o.start,r.has(`v`),r.has(`C`)?um:lm),o.r)}function om(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`v`],valueShort:[`j`,`N`]});if(!r.size&&!i.size&&(a.length===1&&/^\+\d/u.test(a[0])||a.length===2&&/^\+?\d/u.test(a[1])))return C(`feature`,`od`,`legacy offset operand`,`od: legacy offset operands are not supported; use -j OFFSET`);let o=em(`od`,a,e,n,{skip:i.get(`j`),len:i.get(`N`),skipFlag:`-j`,lenFlag:`-N`,skipPastEofErrors:!0});return o.error?o.error:Kn(cm(o.bytes,o.start,r.has(`v`),dm),o.r)}function sm(e,t,n){let{values:r,positional:i}=U(t,{valueShort:[`s`,`l`]});if(i.length>2)return x(`xxd: too many operands`);if(i.length===2&&i[1]!==`-`)return C(`feature`,`xxd`,`output file`,`xxd: output files are not supported (filesystem is read-only)`);let a=em(`xxd`,i.slice(0,1),e,n,{skip:r.get(`s`),len:r.get(`l`),skipFlag:`-s`,lenFlag:`-l`});return a.error?a.error:Kn(cm(a.bytes,a.start,!1,fm),a.r)}function cm(e,t,r,i){let a=i.hex?n(e):``,o=[],s=null,c=!1;for(let n=0;n<e.length;n+=nm){let l=e.subarray(n,n+nm),u=i.hex?a.slice(n*2,(n+nm)*2):``;i.compress&&!r&&s!==null&&l.length===nm&&bm(l,s)?c||=(o.push(`*`),!0):(o.push(i.row(t+n,l,u)),c=!1),s=l}let l=t+e.length;return(i.trailer===`always`||i.trailer===`nonzero`&&l>0)&&o.push(i.addr(l)),Mn(o)}var lm={compress:!0,trailer:`nonzero`,addr:pm,row:(e,t)=>(pm(e)+` `+_m(t).map(xm).join(` `)).padEnd(rm)},um={compress:!0,trailer:`nonzero`,addr:mm,hex:!0,row:gm},dm={compress:!0,trailer:`always`,addr:hm,row:(e,t)=>hm(e)+` `+_m(t).map(Sm).join(` `)},fm={compress:!1,trailer:`never`,hex:!0,row:(e,t,n)=>`${mm(e)}: ${vm(t,n).join(` `).padEnd(im)} ${ym(t)}`};function pm(e){return e.toString(16).padStart(7,`0`)}function mm(e){return e.toString(16).padStart(8,`0`)}function hm(e){return e.toString(8).padStart(7,`0`)}function gm(e,t,n){let r=[];for(let e=0;e<nm;e++)r.push(e<t.length?n.slice(e*2,e*2+2):` `);let i=r.slice(0,8).join(` `),a=r.slice(8).join(` `);return`${mm(e)} ${i} ${a} |${ym(t)}|`}function _m(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(n+1<e.length?e[n]|e[n+1]<<8:e[n]);return t}function vm(e,t){let n=[];for(let r=0;r<e.length;r+=2)n.push(t.slice(r*2,r*2+4));return n}function ym(e){let t=``;for(let n of e)t+=n>=32&&n<=126?String.fromCodePoint(n):`.`;return t}function bm(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var xm=e=>e.toString(16).padStart(4,`0`),Sm=e=>e.toString(8).padStart(6,`0`),Cm=76;function wm(e,{encode:t,decode:n}){return(r,i,a)=>{let{flags:o,positional:s,order:c}=U(i,{short:[`d`,`i`],long:[`decode`,`ignore-garbage`],valueShort:[`w`],valueLong:[`wrap`]}),l=Cm;for(let{name:t,value:n}of c){if(t!==`w`&&t!==`wrap`)continue;if(!/^[ \t\n\r\f\v]*[+-]?\d+$/u.test(n)||BigInt(n)<0n)return x(`${e}: invalid wrap size: ${n}`);let r=BigInt(n);l=r>vn?0:Number(r)}if(s.length>1)return x(`${e}: extra operand: ${s[1]}`);let u=Vn(e,s,r,a,{read:`as-held`});if(u.failed)return x(u.stderr);let{content:d,bytes:f}=u.inputs[0];return o.has(`d`)||o.has(`decode`)?Em(e,n(d??Qe(f),o.has(`i`)||o.has(`ignore-garbage`))):Tm(t(f??E(d)),l)}}function Tm(e,t){if(!t||e===``)return b(e);let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return b(n.join(`
|
|
142
142
|
`)+`
|
|
143
|
-
`)}function
|
|
144
|
-
`;if(r!==void 0&&n)return
|
|
145
|
-
`)return!0;if(n!=="\\")continue;let r=e[t+1];if(r==="n"||r==="x"&&/^x\{?0*a\}?/iu.test(e.slice(t+1)))return!0;t++}return!1}function Qh(e,t){if(!t)for(let n of e){for(let[r,o]of S$)if(r.test(n))throw Yr(o,`${o} is not supported; ripgrep's regex engine rejects it too`);if(A$(n))throw Yr("newline in a pattern","a newline in a pattern is not supported; ripgrep rejects one outside multiline mode")}}var A=class extends Error{constructor(t,n=null,r=null,o="syntax error"){super(t),this.line=n,this.gap=r,this.kind=o}},e1=new Set(["BEGIN","END","BEGINFILE","ENDFILE","function","func","if","else","while","for","do","break","continue","next","nextfile","exit","return","delete","in","getline","print","printf","switch","case","default"]),uu={__proto__:null,length:[0,1],substr:[2,3],index:[2,2],split:[2,3],sub:[2,3],gsub:[2,3],gensub:[3,4],match:[2,3],sprintf:[1,1/0],sin:[1,1],cos:[1,1],atan2:[2,2],exp:[1,1],log:[1,1],sqrt:[1,1],int:[1,1],rand:[0,0],srand:[0,1],tolower:[1,1],toupper:[1,1],close:[1,2],fflush:[0,1],systime:[0,0],strtonum:[1,1],and:[2,1/0],or:[2,1/0],xor:[2,1/0],lshift:[2,2],rshift:[2,2],compl:[1,1],typeof:[1,1],isarray:[1,1]},Ai=new Map([["system","system() is not supported: this terminal runs no processes"],["strftime","strftime() is not supported (gawk extension)"],["mktime","mktime() is not supported (gawk extension)"],["asort","asort() is not supported (gawk extension)"],["asorti","asorti() is not supported (gawk extension)"],["patsplit","patsplit() is not supported (gawk extension)"]]),t1=new Set([...Object.keys(uu),...Ai.keys()]),Vr=5e6,lu=100,Me=1e6,Ni="this terminal runs no processes";function Oi(e,t,n){switch(e){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n;default:return t**n}}var n1={__proto__:null,n:10,t:9,r:13,f:12,v:11,a:7,b:8},N$='^$.[]|()*+?{}\\/"',cu=1e3,r1=e=>e!==void 0&&/[0-9a-fA-F]/u.test(e),o1=e=>e!==void 0&&e>="0"&&e<="7",fu=class{constructor(t,n,r,o){this.src=t,this.i=0,this.warn=n,this.tables=r,this.ignoreCase=o,this.groups=0}fail(t){throw new A(`invalid regex /${this.src}/: ${t}`)}peek(){return this.src[this.i]}literal(){let t=this.src.codePointAt(this.i);return this.i+=Ve(t),this.charNode(t)}charNode(t){let n=this.ignoreCase?this.tables.fold(t):[t];return n.length===1?{type:"char",code:t}:{type:"set",negate:!1,items:n.map(r=>[r,r])}}parse(){return this.alternation(0)}alternation(t){let n=[this.concatenation(t)];for(;this.peek()==="|";)this.i++,n.push(this.concatenation(t));return n.length===1?n[0]:{type:"alt",nodes:n}}concatenation(t){let n=[];for(;!this.endsConcatenation(t);)n.push(this.quantified(this.atom(n.length===0,t)));return n.length===1?n[0]:{type:"cat",nodes:n}}endsConcatenation(t){let n=this.peek();return n===void 0||n==="|"||n===")"&&t>0}quantified(t){let n=t;for(;;){let r=this.peek();if(r==="*"){this.i++,n={type:"rep",node:n,min:0,max:null};continue}if(r==="+"){this.i++,n={type:"rep",node:n,min:1,max:null};continue}if(r==="?"){this.i++,n={type:"rep",node:n,min:0,max:1};continue}if(r==="{"){let o=/^\{(\d*)(?:(,)(\d*))?\}/u.exec(this.src.slice(this.i));if(!o&&/^\{[\d,]*\}/u.test(this.src.slice(this.i))&&this.fail("invalid content of {}"),!o||o[1]===""&&o[2]===void 0)return n;let i=o[1]===""?0:Number(o[1]),s=o[2]===void 0?i:o[3]===""?null:Number(o[3]);if(s!==null&&s<i&&this.fail(`invalid interval {${i},${s}}`),i>cu||s!==null&&s>cu)throw new A(`interval count above ${cu} is not supported`,null,"regex interval limit");this.i+=o[0].length,n={type:"rep",node:n,min:i,max:s};continue}return n}}atom(t,n){let r=this.peek();if(r==="("){this.i++;let o=++this.groups,i=this.alternation(n+1);return this.peek()!==")"&&this.fail("missing `)`"),this.i++,{type:"group",index:o,node:i}}return r==="["?this.bracket():r==="\\"?this.escape():(this.i++,r==="."?{type:"any"}:r==="^"||r==="$"?{type:"assert",kind:r}:((r==="*"||r==="+"||r==="?")&&!t&&this.fail(`unexpected \`${r}\``),this.i--,this.literal()))}escape(){this.i++;let t=this.peek();return t===void 0&&this.fail("trailing backslash"),this.i++,t==="y"?{type:"assert",kind:"y"}:t==="<"||t===">"||t==="B"?{type:"assert",kind:t}:t==="`"?{type:"assert",kind:"^"}:t==="'"?{type:"assert",kind:"$"}:t==="s"||t==="S"?{type:"set",negate:t==="S",items:this.tables.ranges("space")}:t==="w"||t==="W"?{type:"set",negate:t==="W",items:this.tables.ranges("word")}:(t==="b"&&this.warn?.("regexp escape sequence `\\b' is a backspace here, as in gawk; `\\y' is the word boundary"),this.charNode(this.escapedCode(t,!0)))}escapedCode(t,n){if(t in n1)return n1[t];if(o1(t)){let o=t;for(;o.length<3&&o1(this.peek());)o+=this.src[this.i++];return i1(o,8)}if(t==="x"&&r1(this.peek())){let o="";for(;o.length<2&&r1(this.peek());)o+=this.src[this.i++];return i1(o,16)}let r=this.src.codePointAt(this.i-1);return!N$.includes(t)&&n&&this.warn?.(`regexp escape sequence \`\\${String.fromCodePoint(r)}' is not a known regexp operator`),this.i+=Ve(r)-1,r}bracket(){this.i++;let t=!1;this.peek()==="^"&&(t=!0,this.i++);let n=[],r=!0;for(;;){this.i>=this.src.length&&this.fail("unterminated bracket expression");let o=this.peek();if(o==="]"&&!r){this.i++;break}if(r=!1,o==="["&&this.src[this.i+1]===":"){let s=this.src.indexOf(":]",this.i+2);if(s!==-1){let a=this.src.slice(this.i+2,s),u=this.tables.ranges(this.ignoreCase?Yo(a):a);u===void 0&&this.fail(`invalid character class \`[:${a}:]\``),n.push(...u),this.i=s+2;continue}}let i=this.bracketChar();if(this.peek()==="-"&&this.src[this.i+1]!=="]"&&this.src[this.i+1]!==void 0){this.i++;let s=this.bracketChar(),a=this.ignoreCase?this.tables.foldRange(i,s):s<i?null:[[i,s]];a===null&&this.fail("invalid range end"),n.push(...a)}else this.ignoreCase?n.push(...this.tables.fold(i).map(s=>[s,s])):n.push([i,i])}return{type:"set",negate:t,items:n}}bracketChar(){let t=this.peek();if(t==="["&&(this.src[this.i+1]==="."||this.src[this.i+1]==="=")){let r=this.src.indexOf(this.src[this.i+1]+"]",this.i+2);if(r!==-1&&r>this.i+2){Array.from(this.src.slice(this.i+2,r)).length!==1&&this.fail("invalid collation character");let o=this.src.codePointAt(this.i+2);return this.i=r+2,o}}if(t==="\\"){this.i++,this.peek()===void 0&&this.fail("trailing backslash");let r=this.src[this.i++];return this.escapedCode(r,!1)}let n=this.src.codePointAt(this.i);return this.i+=Ve(n),n}};function Ti(e,t=null,n=se(ie),r=!1){let o=new fu(e,t,n,r);return{ast:o.parse(),groups:o.groups}}function i1(e,t){let n=Number.parseInt(e,t);if(n>=128)throw new A("non-ASCII regex byte escapes are not supported",null,"regex byte escapes");return n}var O$=e=>`\\u{${e.toString(16)}}`,Ii=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122?String.fromCodePoint(e):O$(e);function I$(e,t){if(e==="^"||e==="$")return e;let n=t.assertions();return e==="y"?n.boundary:e==="B"?n.inside:n[e]}function du(e,t=se(ie)){let n=r=>du(r,t);switch(e.type){case"char":return Ii(e.code);case"any":return".";case"set":return`[${e.negate?"^":""}${e.items.map(([r,o])=>r===o?Ii(r):`${Ii(r)}-${Ii(o)}`).join("")}]`;case"assert":return I$(e.kind,t);case"group":return`(${n(e.node)})`;case"cat":return e.nodes.map(n).join("");case"alt":return`(?:${e.nodes.map(n).join("|")})`;case"rep":{let r=`(?:${n(e.node)})`;return e.max===null?e.min===0?`${r}*`:e.min===1?`${r}+`:`${r}{${e.min},}`:e.min===0&&e.max===1?`${r}?`:`${r}{${e.min},${e.max}}`}default:throw new A(`internal: unknown regex node ${e.type}`)}}var T$=5e4;function C$(e,t){let n=r=>{for(let o=0;o<e.length;o++)if(r>=e[o][0]&&r<=e[o][1])return!0;return!1};return t?r=>!n(r):n}function Ci(e,t=se(ie)){let n=[],r=l=>{if(n.length>=T$)throw new A("regex too large",null,"regex state limit");return n.push(l),n.length-1};function o(l,c){switch(l.type){case"char":return r({op:"char",codes:[l.code],next:c});case"any":return r({op:"any",next:c});case"set":return r({op:"set",test:C$(l.items,l.negate),next:c});case"assert":return r({op:"assert",kind:l.kind,next:c});case"group":return o(l.node,c);case"cat":{let f=c;for(let d=l.nodes.length-1;d>=0;d--)f=o(l.nodes[d],f);return f}case"alt":{let f=l.nodes.map(p=>o(p,c)),d=f.at(-1);for(let p=f.length-2;p>=0;p--)d=r({op:"split",x:f[p],y:d});return d}case"rep":return i(l,c);default:throw new A(`internal: unknown regex node ${l.type}`)}}function i(l,c){let f=c;if(l.max===null){let d=r({op:"split",x:-1,y:c});n[d].x=o(l.node,d),f=d}else for(let d=l.max-l.min;d>0;d--)f=r({op:"split",x:o(l.node,f),y:c});for(let d=0;d<l.min;d++)f=o(l.node,f);return f}let s=o(e,r({op:"match"})),a="",u=s;for(;n[u].op==="char"&&n[u].codes.length===1&&n[u].codes[0]<128;)a+=String.fromCodePoint(n[u].codes[0]),u=n[u].next;return(n[u].op!=="match"||a==="")&&(a=null),{states:n,start:s,literal:a,isWord:l=>t.has("word",l),gen:new Int32Array(n.length).fill(-1),stamp:0}}function _$(e,t){if(t<=0)return-1;let n=e.codePointAt(t-1);if(n<56320||n>57343||t<2)return n;let r=e.codePointAt(t-2);return r>65535?r:n}function L$(e,t,n,r){if(e==="^")return n===0;if(e==="$")return n===t.length;let o=r(_$(t,n)),i=n<t.length&&r(t.codePointAt(n));return e==="y"?o!==i:e==="B"?o===i:e==="<"?!o&&i:o&&!i}function F$(e,t){return e.op==="char"?e.codes.includes(t):e.op==="any"?!0:e.test(t)}function _i(e,t,n){if(e.literal!==null&&Number.isInteger(n)&&n>=0&&n<=t.length&&!Object.is(n,-0)){let p=t.indexOf(e.literal,n);return p<0?null:{start:p,end:p+e.literal.length}}let{states:r,gen:o}=e,i=t.length,s=[],a=(p,h,m,g,w)=>{for(s.push(h);s.length>0;){let y=s.pop();if(o[y]===w)continue;o[y]=w;let $=r[y];$.op==="split"?s.push($.y,$.x):$.op==="assert"?L$($.kind,t,g,e.isWord)&&s.push($.next):p.push(y,m)}},u=[],l=[],c=null,f=n,d=++e.stamp;for(;;){c===null&&a(u,e.start,f,f,d);let p=f<i?t.codePointAt(f):-1,h=Ve(p);if(u.length===0){if(c!==null||f>=i)break;f+=h,d=++e.stamp;continue}let m=++e.stamp;for(let g=0;g<u.length;g+=2){let w=u[g],y=u[g+1];if(c!==null&&y>c.start)continue;let $=r[w];if($.op==="match"){(c===null||y<c.start||y===c.start&&f>c.end)&&(c={start:y,end:f});continue}p!==-1&&F$($,p)&&a(l,$.next,y,f+h,m)}if(u.length=0,[u,l]=[l,u],d=m,f>=i)break;f+=h}return c}var Li=new Map,Ot=class{constructor(t,n,r,o=se(ie)){let{ast:i,groups:s}=Ti(t,r,o,n);this.src=t,this.ignoreCase=n,this.tables=o,this.groupCount=s,this.source=du(i,o),this.flags="su";try{this.js=new RegExp(Un(this.source),this.flags)}catch(a){throw new A(`cannot compile regex /${t}/: ${a.message}`,null,"regex engine limit")}this.ast=i,this.nfa=null,this.capture=null,this.captureShape=s1(i)}test(t){return this.checkCase(t),this.js.test(t)}checkCase(t){if(this.ignoreCase&&on.test(t+this.src))throw new A("case-insensitive matching over Cyrillic Extended-C letters is not supported",null,"locale-sensitive regex")}search(t,n=0){return this.checkCase(t),this.nfa===null&&(this.nfa=Ci(this.ast,this.tables)),_i(this.nfa,t,n)}groups(t,n,r){if(this.captureShape.unsafe)throw new A("capture extraction across repeated or alternative groups is not supported",null,"regex capture semantics");let o=this.capture??=new RegExp(this.source,this.flags+"dy");o.lastIndex=n;let i=o.exec(t);if(!i||i.index!==n||n+i[0].length!==r){let s=Array.from(t.slice(r)).length,a=new RegExp(`(?:${this.source})(?=.{${s}}(?![^]))`,this.flags+"dy");a.lastIndex=n,i=a.exec(t)}if(!i)throw new A("capture extraction for this match is not supported",null,"regex capture semantics");return i.indices.map((s,a)=>s===void 0?void 0:{text:i[a],start:s[0],end:s[1]})}};function s1(e){let n=(e.nodes??(e.node?[e.node]:[])).map(s1),r=n.reduce((s,a)=>s+a.groups,e.type==="group"?1:0),o=e.type==="assert"||(e.type==="group"||e.type==="cat")&&n.every(s=>s.nullable)||e.type==="alt"&&n.some(s=>s.nullable)||e.type==="rep"&&(e.min===0||n[0].nullable),i=e.type==="rep"&&(e.max===null||e.max>1)&&(r>1||r>0&&n[0].nullable);return{groups:r,nullable:o,unsafe:i||e.type==="alt"&&r>0||n.some(s=>s.unsafe)}}function qe(e,t=!1,n=null,r=se(ie)){let o=(t?"i":"c")+r.name+"\0"+e,i=Li.get(o);if(i)return i;Li.size>=500&&Li.clear();let s=new Ot(e,t,n,r);return Li.set(o,s),s}function pu(e,t,n){for(;;){let r=t.search(e,n);if(!r||r.start!==r.end)return r;if(r.end>=e.length)return null;n=r.end+ze(e,r.end)}}function hu(e,t){let n=[],r=0;for(;;){let o=pu(e,t,r);if(!o)break;n.push(e.slice(r,o.start)),r=o.end}return n.push(e.slice(r)),n}function Kr(e,t,n,r){let o=r!=="first",i=e.length,s="",a=0,u=-1,l=0;for(;a<=i;){let c=t.search(e,a);if(!c)break;let f=c.start===c.end;if(f&&c.start===u&&r!=="nth"){if(c.start>=i)break;let p=ze(e,c.start);s+=e.slice(a,c.start+p),a=c.start+p;continue}l++;let d=n(c.start,c.end,l);if(s+=e.slice(a,c.start)+(d===null?e.slice(c.start,c.end):d),u=c.end,f){if(c.end>=i){a=i;break}let p=ze(e,c.end);s+=e.slice(c.end,c.end+p),a=c.end+p}else a=c.end;if(!o)break}return{out:s+e.slice(a),count:l}}function Fi(e,t){let n="(){}+?|",r=!1,o=0,i=!1,s="";for(let a=0;a<e.length;a++){let u=e[a];if(i){if(u==="["&&(e[a+1]==="."||e[a+1]==="="))throw new x("feature","regex collating or equivalence class","grep: collating and equivalence classes are not supported");if(u==="["){let l=Fn(e,a,{classes:t});if(l){s+=l.body,a=l.end-1;continue}}s+=u,u==="]"&&(i=!1,r=!0);continue}if(u==="["){s+=u,i=!0,e[a+1]==="^"&&(s+="^",a++),e[a+1]==="]"&&(s+="\\]",a++);continue}if(u==="\\"){let l=e[++a];if(l===void 0)return{error:"trailing backslash (\\)"};if(n.includes(l)){if((l==="+"||l==="?")&&!r){s+="\\"+l,r=!0;continue}if(l==="("&&o++,l===")"&&o--===0)return{error:"Unmatched ) or \\)"};(l==="("||l==="|")&&(r=!1),(l===")"||l==="}")&&(r=!0),s+=l}else s+="^$\\.*[]/bBsSwW<>`'123456789".includes(l)?"\\"+l:l,r=!"bB<>`'".includes(l);continue}if(u==="*"){s+=r?"*":"\\*",r=!0;continue}if(u==="^"){r=!R$(e,a),s+=r?"\\^":"^";continue}if(u==="$"){r=!(a===e.length-1||e[a+1]==="\\"&&(e[a+2]===")"||e[a+2]==="|")),s+=r?"\\$":"$";continue}s+=n.includes(u)?"\\"+u:u,r=!0}return o>0?{error:"Unmatched ( or \\("}:{source:s}}function R$(e,t){if(t===0)return!0;if(t<2||e[t-2]!=="\\"||e[t-1]!=="("&&e[t-1]!=="|")return!1;let n=0;for(let r=t-3;r>=0&&e[r]==="\\";r--)n++;return n%2===0}function Ri(e){if(!/\\[1-9]/u.test(e))return!1;let t=new Set,n=[],r=new Set,o=!1,i=0,s=!1,a=[],u=new Set,l=!1;for(let c=0;c<e.length;c++){let f=e[c];if(f==="\\"){let d=e[++c];if(!o&&/[1-9]/u.test(d??"")){let p=Number(d);if(!t.has(p))throw new Error("Invalid back reference");(!u.has(p)||r.has(p))&&(s=!0)}a=[];continue}if(o){f==="]"&&(o=!1);continue}if(f==="["){o=!0,a=[];continue}if(f==="(")n.push({id:++i,entry:new Set(u),branches:[],start:c}),a=[];else if(f==="|"){let d=n.at(-1);d&&d.branches.push(u),u=new Set(d?.entry),a=[]}else if(f===")"){let d=n.pop();if(!d)continue;u=d.branches.reduce((p,h)=>p.intersection(h),u),u.add(d.id),t.add(d.id),a=[...u.difference(d.entry)],l=M$(e.slice(d.start,c+1))}else if(f==="*"||f==="?"||f==="+"){if(f!=="?"&&l)for(let d of a)r.add(d);if(f!=="+")for(let d of a)u.delete(d)}else if(f==="{"){let d=/^\{(\d*)(?:,(\d*))?\}/u.exec(e.slice(c));if(d){Number(d[1])===0&&(u=u.difference(new Set(a)));let p=d[2]===void 0?Number(d[1]):d[2]===""?1/0:Number(d[2]);l&&p>1&&a.forEach(h=>r.add(h)),c+=d[0].length-1}else a=[]}else a=[]}return s}function M$(e){try{return new RegExp(`^(?:${e})$`,"su").test("")}catch{return!0}}var D$="bBsSwW";function Jr(e,t){let n="";for(let r=0;r<e.length;){let o=e[r];if(o==="["){let l=U$(e,r,t);n+=l.text,r=l.end;continue}let i=o==="\\",s=e.codePointAt(r+(i?1:0)),a=(i?1:0)+Ve(s),u=i&&D$.includes(e[r+1])?null:t.fold(s);n+=u===null||u.length===1?e.slice(r,r+a):`[${String.fromCodePoint(...u)}]`,r+=a}return n}function a1(e,t){let n="";for(let r of e){let o=t.fold(r.codePointAt(0));n+=o.length===1?RegExp.escape(r):`[${String.fromCodePoint(...o)}]`}return n}function U$(e,t,n){let r=t+1,o="[";e[r]==="^"&&(o+="^",r++);let i=!0;for(;;){let s=e[r];if(s==="]"&&!i)return{text:o+"]",end:r+1};if(i=!1,s==="["&&":.=".includes(e[r+1])){let l=e[r+1],c=e.indexOf(l+"]",r+2);o+=l===":"?`[:${Yo(e.slice(r+2,c))}:]`:e.slice(r,c+2),r=c+2;continue}let a=e.codePointAt(r),u=r+Ve(a);if(e[u]==="-"&&e[u+1]!==void 0&&e[u+1]!=="]"){let l=e.codePointAt(u+1),c=u+1+Ve(l);o+=P$(a,l,e.slice(r,c),n),r=c;continue}o+=String.fromCodePoint(...n.fold(a)),r=u}}function P$(e,t,n,r){let o=r.foldRange(e,t);if(o===null)throw new Error("Invalid range end");return o.length===1&&o[0][0]===e&&o[0][1]===t?n:o.map(([i,s])=>i===s?String.fromCodePoint(i):`${String.fromCodePoint(i)}-${String.fromCodePoint(s)}`).join("")}function l1({pattern:e,tables:t},n){return[...e].map(r=>(n?t.fold(r.codePointAt(0)):[r.codePointAt(0)]).map(i=>I(String.fromCodePoint(i))))}function wu(e,t){return t.every(n=>n.literal?(n.literalMask??=l1(n.literal,n.folded),!f1(e,n.literalMask)):!1)}function c1(e,t,n,r=ie){let o=se(r);return t.every(i=>(n||!p1.test(i))&&i.isWellFormed()&&!f1(e,l1({pattern:i,tables:o},!1)))}function f1(e,t){if(t.length===0)return!0;for(let n of new Set(t[0].map(r=>r[0])))for(let r=e.indexOf(n);r>=0&&r+t.length<=e.length;r=e.indexOf(n,r+1))if(d1(e,r,t,0))return!0;return!1}function d1(e,t,n,r){return r===n.length?!0:n[r].some(o=>o.every((i,s)=>e[t+s]===i)&&d1(e,t+o.length,n,r+1))}var p1=/[\\.^$*+?()[\]{}|]/u,z$=new Set("\\.[*^$"),B$=new Set("\\.[*^$+?(){}|");function h1(e,t){if(t.has("F"))return e;if(t.has("P"))return p1.test(e)?null:e;let n=t.has("E")?B$:z$,r="";for(let o=0;o<e.length;o++){let i=e[o]==="\\",s=i?e[++o]:e[o];if(n.has(s)!==i)return null;r+=s}return r}var mu=new Map;function m1(e){if(mu.has(e))return mu.get(e);let t=e.assertions(),n="";for(let i=128;i<=255;i++)e.has("word",i)&&(n+=`\\u${(56320+i).toString(16)}`);let r=na(e.body("word")+n),o={"<":r["<"],">":r[">"],b:r.boundary,B:r.inside,W:Mi(t.nonWord),S:Mi(t.nonSpace)};return mu.set(e,o),o}var Mi=e=>`(?:(?![${nn}])${e})`;function g1(e){let t=Ci(e.ast,e.tables),n=t.states.map(o=>o.op==="any"?{op:"set",test:i=>!_t(i),next:o.next}:o.op==="set"?{...o,test:i=>!_t(i)&&o.test(i)}:o),r={...t,states:n,isWord:o=>e.tables.has("word",_t(o)?o-56320:o)};return{search:(o,i)=>_i(r,o,i)}}var j$=[0,0,0,0,1114112,2097152,67108864],u1=(e,t)=>_t(e.codePointAt(t))?e.codePointAt(t)-56320:-1;function w1(e,t){let n=u1(e,t),r=n===237?3:n>=240&&n<=247?4:n>=248&&n<=251?5:n===252||n===253?6:0,o=n&127>>r;for(let i=1;i<r;i++){let s=u1(e,t+i);if(s<128||s>191)return 0;o=o<<6|s&63}return r===3?o>=55296&&o<=57343?3:0:r&&o>=j$[r]?r:0}function y1(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(n>65535&&t++,!_t(n))continue;let r=w1(e,t);if(r===0||r===3)return!0;t+=r-1}return!1}var W$=/[\uDCED\uDCF0-\uDCFD][\uDC80-\uDCBF]{2,5}/gu;function x1(e){let t={long:!1,surrogate:!1};for(let[n]of e.matchAll(W$)){let r=w1(n,0);if(r===3?t.surrogate=!0:r&&(t.long=!0),t.long&&t.surrogate)break}return t}function b1(e,t){let n={negated:!1,dot:!1,regex:t,wordEdge:!1};for(let r=0;r<e.length;r++){let o=e[r];if(o==="\\"){let i=e[++r]??"";"<>bB".includes(i)&&(n.wordEdge=!0),"<>bBwsWS".includes(i)&&(n.regex=!0),"WS".includes(i)&&(n.negated=!0)}else if(o===".")n.dot=!0;else if(o==="["){let i=Ho(e,r),s=e.slice(r+1,i);s.startsWith("^")&&(n.negated=!0),/\[:|.-./u.test(s.replace(/^\^?\]?/u,""))&&(n.regex=!0),r=i}}return n}function k1(e,t,n){return t.long||t.surrogate?e.wordEdge||(e.dot||e.negated)&&(e.regex||n)?!0:t.long&&e.negated:!1}var gu=new Map;function v1(e){return gu.has(e)||gu.set(e,new RegExp(`[^\\x00-\\x7f${nn}${e.body("word")}]`,"u")),gu.get(e)}function De(e){throw new x("feature","PCRE "+e,`PCRE ${e} is not supported`)}function E1(e){let t={captures:0,closed:new Set,names:new Map,stack:[],behind:0,references:!1,risky:!1},n="";for(let r=0;r<e.length;){let o=e[r];if(o==="\\"){let i=$1(e,r,t,!1);n+=i.source,r=i.end;continue}if(o==="["){let i=G$(e,r,t);n+=i.source,r=i.end;continue}if(o==="("){let i=q$(e,r,t);n+=i.source,r=i.end;continue}if(o===")"){let i=t.stack.pop();i?.capture&&t.closed.add(i.capture),i?.behind&&t.behind--}if("*+?".includes(o)&&(t.behind&&De("variable-length lookbehind"),e[r+1]==="+"&&De("possessive repetition"),o!=="+"&&(t.risky=!0)),o==="|"&&(t.risky=!0),o==="{"){let i=H$(e,r,t);n+=i.source,r=i.end;continue}n+=o==="]"||o==="}"?"\\"+o:o,r++}return t.references&&t.risky&&De("conditional backreference"),n}function q$(e,t,n){let r=!1,o=null,i="(";if(e[t+1]==="*"&&De("control verb"),e[t+1]==="?"){let s=/^\(\?(?:[:=!]|<[=!]|<([A-Za-z_]\w*)>)/u.exec(e.slice(t));if(s||De("group"),i=s[0],r=i==="(?<="||i==="(?<!",!s[1]&&i!=="(?:"&&(n.risky=!0),s[1]){if(o=++n.captures,n.names.has(s[1]))throw new Error("duplicate PCRE capture name");n.names.set(s[1],o)}}else o=++n.captures;return r&&n.behind++,n.stack.push({capture:o,behind:r}),{source:i,end:t+i.length}}function H$(e,t,n){let r=/^\{(\d+)(?:,(\d*))?\}/u.exec(e.slice(t));if(!r)return/^\{[\d, \t]*\}/u.test(e.slice(t))&&De("repetition"),{source:"\\{",end:t+1};if(n.behind&&r[2]!==void 0&&r[1]!==r[2]&&De("variable-length lookbehind"),Number(r[1])>65535||Number(r[2])>65535)throw new Error("PCRE repetition count exceeds 65535");return Number(r[1])===0&&(n.risky=!0),e[t+r[0].length]==="+"&&De("possessive repetition"),{source:r[0],end:t+r[0].length}}function G$(e,t,n){let r=t+1,o="[";for(e[r]==="^"&&(o+="^",r++),e[r]==="]"&&(o+="\\]",r++);r<e.length&&e[r]!=="]";)if(e[r]==="["&&":.=".includes(e[r+1]??"")&&De("character class"),e[r]==="\\"){let i=$1(e,r,n,!0);o+=i.source,r=i.end}else o+=e[r]==="["?"\\[":e[r],r++;return{source:o+(e[r]==="]"?"]":""),end:r+1}}function $1(e,t,n,r){let o=e[t+1];if(o===void 0)throw new Error("trailing backslash");if(o==="Q"){let s=e.indexOf("\\E",t+2);return{source:RegExp.escape(e.slice(t+2,s<0?void 0:s)),end:s<0?e.length:s+2}}if(o==="E")return{source:"",end:t+2};if(o==="x"||o==="0"||r&&/[1-7]/u.test(o))return X$(e,t);if(o==="a"||o==="e")return{source:o==="a"?"\\u0007":"\\u001B",end:t+2};if("AzZ".includes(o)&&!r)return{source:o==="A"?"^":"$",end:t+2};if(/[1-9]/u.test(o)&&!r)return(/\d/u.test(e[t+2]??"")||!n.closed.has(Number(o)))&&De("forward or ambiguous backreference"),n.references=!0,{source:"\\"+o,end:t+2};if(o==="k"&&!r){let s=/^\\k<([A-Za-z_]\w*)>/u.exec(e.slice(t));return(!s||!n.closed.has(n.names.get(s[1])))&&De("named backreference"),n.references=!0,{source:s[0],end:t+s[0].length}}if("dDsSwWfnrtbB".includes(o))return{source:"\\"+o,end:t+2};/[A-Za-z0-9]/u.test(o)&&De("escape \\"+o);let i=String.fromCodePoint(e.codePointAt(t+1));return{source:RegExp.escape(i),end:t+1+i.length}}function X$(e,t){let n=e[t+1]==="x",r=(n?/^\\x(?:\{([\da-fA-F]+)\}|([\da-fA-F]{1,2}))/u:/^\\([0-7]{1,3})/u).exec(e.slice(t));if(!r)throw new Error("invalid PCRE character escape");let o=n?16:8,i=parseInt(r[1]??r[2],o);return st(i)||De("character escape"),{source:`\\u{${i.toString(16)}}`,end:t+r[0].length}}function xu(e,t){let n="",r=!1;for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"){let s=e[++o]??"";n+=r?i+s:Z$(s);continue}if(r&&i==="["){if(e[o+1]==="."||e[o+1]==="=")throw new x("feature","regex collating or equivalence class","grep: collating and equivalence classes are not supported");let s=Fn(e,o,{classes:t});if(s){n+=s.body,o=s.end-1;continue}}if(i==="["&&!r){n+="[",r=!0,e[o+1]==="^"&&(n+="^",o++),e[o+1]==="]"&&(n+="\\]",o++);continue}i==="]"&&(r=!1),n+=i}return n}function Z$(e){return"^$\\.*+?()[]{}|/bBsSwW<>`'123456789".includes(e)?"\\"+e:RegExp.escape(e)}function Y$(e){for(let t=0;t<e.length;t++)if(e[t]==="\\"){if("bBsSwW<>".includes(e[++t]??""))return!0}else if(".[*+?{".includes(e[t]))return!0;return!1}function gn(e,t="js",n=se(ie)){let r=t==="extent",o=t==="marked",i=r?{b:"\\y"}:o?{...S1(n),...m1(n)}:S1(n),s="",a=!1;for(let u=0;u<e.length;u++){let l=e[u];if(l==="\\"){let c=e[++u];s+=!a&&Object.hasOwn(i,c)?i[c]:l+c,!r&&!a&&/[1-9]/u.test(c)&&/\d/u.test(e[u+1]??"")&&(s+="(?:)")}else if(o&&l==="["){let c=C1(e,u);s+=Mi(e.slice(u,c+1)),u=c}else o&&l==="."?s+=`[^${nn}]`:(l==="["&&(a=!0),l==="]"&&(a=!1),s+=l)}return s}function S1(e){let t=e.assertions();return{"<":t["<"],">":t[">"],b:t.boundary,B:t.inside,w:t.word,W:t.nonWord,s:t.space,S:t.nonSpace,"`":"^","'":"$"}}var bu=e=>e.plain??=new RegExp(e.source,e.flags);function T1(e){return e.markedSource===void 0?bu(e):(e.marked??=new RegExp(Un(gn(e.markedSource,"marked",e.tables)),e.flags),e.marked)}var ku=/^\{(?=\d|,)(\d*)(?:,(\d*))?\}/u,V$=/^\\\{(?=\d|,)(\d*)(?:,(\d*))?\\\}/u;function A1(e,t,n){let r=(n?ku:V$).exec(e.slice(t));if(!r&&!n)throw new Error("invalid repetition count");r&&sf(Number(r[1]),r[2]===void 0||r[2]===""?void 0:Number(r[2]))}var N1={__proto__:null,"*":{min:0,max:1/0},"+":{min:1,max:1/0},"?":{min:0,max:1}};function K$(e){if(N1[e])return N1[e];let t=ku.exec(e),n=Number(t[1]);return{min:n,max:t[2]===void 0?n:t[2]===""?1/0:Number(t[2])}}var O1=(e,t)=>e===0||t===0?0:e===1/0||t===1/0?1/0:e*t;function J$(e,t){let n=Math.max(t.min,1);if(n>t.max)return{min:0,max:0};if(e.min>0&&(t.min===0&&e.min>1||e.max!==1/0&&t.max>n&&(n+1)*e.min>n*e.max+1))return null;let r=O1(t.max,e.max);return r!==1/0&&r>qo?null:{min:O1(t.min,e.min),max:r}}function yu(e){return e.max===1/0?e.min===0?"*":e.min===1?"+":`{${e.min},}`:e.min===0&&e.max===1?"?":e.min===e.max?`{${e.min}}`:`{${e.min},${e.max}}`}var Q$=e=>!e.startsWith("(")&&!/^\\[1-9]/u.test(e);function eS(e,t){if(t.length===1)return e+yu(t[0].bounds);let n=t[0].bounds,r=null;for(let o=1;o<t.length;o++){let{bounds:i,text:s}=t[o],a=r===null?J$(n,i):null;if(a){n=a;continue}if(!(r===null&&n.min===n.max&&Q$(e))&&i.max>1)throw new Error("stacked quantifier needs ambiguous nesting");r=`(?:${r??e+yu(n)})${s}`}return r??e+yu(n)}function C1(e,t){let n=t+1;for(e[n]==="^"&&n++;n<e.length;n++){if(e[n]==="\\"){n++;continue}if(e[n]==="]")return n}return e.length-1}function I1(e){let t="",n=-1,r=-1,o=[],i=()=>{o.length>0&&(t=t.slice(0,n)+eS(t.slice(n,r),o)),o=[]},s=u=>{i(),n=t.length,r=-1,t+=u},a=[];for(let u=0;u<e.length;u++){let l=e[u];if(l==="\\"){s(l+(e[++u]??""));continue}if(l==="["){let f=C1(e,u);s(e.slice(u,f+1)),u=f;continue}if(l==="("){i(),a.push(t.length),n=-1,t+=l;continue}if(l===")"){i(),t+=l,n=a.pop()??-1,r=-1;continue}if(l==="|"||l==="^"||l==="$"){i(),t+=l,n=-1;continue}let c=l==="{"?ku.exec(e.slice(u)):null;if(l==="*"||l==="+"||l==="?"||c){let f=c?c[0]:l;if(u+=f.length-1,n<0){t+=f;continue}o.length===0&&(r=t.length),o.push({bounds:K$(f),text:f});continue}s(l)}return i(),t}function vu(e,t,n=!1){let r=-1;for(let o=0;o<e.length;o++){let i=o<=r,s=e[o];if(s==="\\"){let a=e[++o];if(a===void 0)throw new Error("trailing backslash");if(i||a&&"dDxXuUpPkKcC".includes(a))throw new x("feature","regex escape","grep: this regex escape is not supported with GNU semantics");!t&&a==="{"&&A1(e,o-1,!1)}else if(s==="["&&!i)r=Ho(e,o,n);else{if(i)continue;if(t&&s==="{")A1(e,o,!0);else if(t&&s==="("&&e[o+1]==="?")throw new x("feature","regex extension","grep: ECMAScript group extensions are not supported in ERE")}}}function tS(e){for(let t=0;t<e.length;t++)if(e[t]==="\\"&&/[1-9]/u.test(e[++t]??""))return!0;return!1}function nS(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r==="\\"){n++;continue}if(t){r==="]"&&(t=!1);continue}if(r==="."||r==="["&&(t=!0,e[n+1]==="^"))return!0}return!1}function _1(e,t,n=ie){let r=se(n),o=[],i=t.has("x"),s=t.has("w")&&!i;if(t.has("P")&&new Set(e).size>1)return{error:b("grep: -P only supports a single pattern",2)};for(let a of e){let u=!t.has("F")&&!t.has("P");u&&vu(a,t.has("E"),r.multibyte);let l=u&&tS(a),c=t.has("i")&&!t.has("P")&&!l,f=t.has("i")&&!c?"isu":"su",d;if(t.has("F"))d=c?a1(a,r):RegExp.escape(a);else if(t.has("P"))d=E1(a);else if(t.has("E"))d=xu(c?Jr(a,r):a,r);else{let h=Fi(c?Jr(a,r):a,r);if(h.error)return{error:b(`grep: ${h.error}`,2)};d=h.source}let p=d;if(u&&Ri(p))return{error:v("feature","grep","conditional backreference","grep: backreferences with conditional or repeated-empty captures are not supported",2)};s&&(d=`(?<!${r.assertions().word})(?:${d})(?!${r.assertions().word})`),i&&(d=`^(?:${d})$`);try{let h=u?I1(d):d,m=new RegExp(Un(u?gn(h,"js",r):d),f);u&&Object.assign(m,{markedSource:h,tables:r,shape:b1(a,l)}),m.pcre=t.has("P"),m.localeSensitive=m.pcre?t.has("i")||s||Y$(p)||/\\[dD]/u.test(p):t.has("i")&&l,m.folded=c,m.extendedC=c&&on.test(a),m.unicodePattern=/[\u0080-\u{10FFFF}]/u.test(a),m.wellFormed=a.isWellFormed(),m.emptyWord=s&&!m.pcre&&new RegExp(u?gn(I1(p),"js",r):p,f).test(""),m.anyCharacter=nS(p);let g=h1(a,t);if(g?.isWellFormed()&&(c||!t.has("i"))&&(m.literal={pattern:g,tables:r}),t.has("o")&&u&&!i){if(s||/\\[1-9]|\(\?/u.test(d))return{error:v("feature","grep","-o regex extent","grep: only-matching with backreferences, lookarounds or word constraints is not supported",2)};try{m.extent=new Ot(gn(d,"extent",r),!1,null,r)}catch{return{error:v("feature","grep","-o regex extent","grep: POSIX match extent for this pattern is not supported",2)}}}o.push(m)}catch(h){if(!t.has("P")&&rS(p,t))return{error:v("feature","grep","GNU regex syntax","grep: this GNU regular expression cannot be represented by the JavaScript matcher",2)};let m=t.has("F")?`fixed-string /${f}`:t.has("P")?`PCRE subset /${f}`:t.has("E")?`ERE / ECMAScript /${f}`:`BRE /${f}`;return{error:b(`grep: invalid pattern (${m}): ${h.message}`,2)}}}return{res:o}}function rS(e,t){if(!t.has("E")&&/(?<!\\)\{(?!\d*(?:,\d*)?\})/u.test(e))return!1;try{return Ti(gn(e,"extent")),!0}catch(n){return!!n.gap}}function Eu(e,t,n=ie,r=!1){let o=(c,f)=>v("feature","grep",c,`grep: ${f}`,2);if(e.marked){if(t.some(c=>c.pcre))return o("binary input","PCRE matching over bytes that spell no text is not supported");if(t.some(c=>!c.wellFormed))return o("unpaired surrogate","a pattern holding an unpaired UTF-16 surrogate cannot be matched against bytes")}if(t.some(c=>c.emptyWord)&&v1(se(n)).test(e.content))return o("empty word match","-w with a pattern that can match nothing, over non-ASCII text that is not word characters, is not supported");let i=e.marked?t.filter(c=>c.shape&&(c.shape.wordEdge||c.shape.dot||c.shape.negated)):[],s=i.length?x1(e.content):null;if(i.some(c=>k1(c.shape,s,r)))return o("binary input","matching this pattern beside bytes glibc reads as a character is not supported");let a=()=>t.some(c=>c.unicodePattern)||/[\u0080-\u{10FFFF}]/u.test(e.content);if(n!==ie&&t.some(c=>c.localeSensitive||c.folded||c.anyCharacter)&&a())return o("locale",`matching non-ASCII text in the ${n} locale is not supported`);if(t.some(c=>c.extendedC)||t.some(c=>c.folded)&&on.test(e.content))return o("locale-sensitive regex","case-insensitive matching over Cyrillic Extended-C letters is not supported");let u=t.filter(c=>c.localeSensitive);if(u.length===0||!a())return null;let l=u.some(c=>c.pcre)?"PCRE matching":"case-insensitive matching with backreferences";return o("non-ASCII regex semantics",`${l} on non-ASCII input is not supported`)}var $u=/[*?[]/u,Su=/\P{ASCII}/u,oS=/[.+*?^${}()|[\]\\/]/u;function He(e,t={}){try{return iS(e,t)}catch(n){throw n instanceof x?n:new x("feature","glob pattern",`unsupported glob pattern: ${n.message}`)}}function iS(e,t){let n="^",r=!1;for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&o+1<e.length){let s=e[o+1];n+=L1(s,t.ignoreCase),o++}else if(i==="*"){for(;e[o+1]==="*";)o++;n+=".*"}else if(i==="?")n+=".";else if(i==="["){let s=F1(e,o,t);if(s?.voided)return/^(?!)$/u;s?(n+=s.source,o=s.end,r||=s.nonAsciiRange):n+="\\["}else n+=L1(i,t.ignoreCase)}return aS(new RegExp(n+"(?![\\s\\S])","us"),e,t,r)}function L1(e,t){return t&&/[a-zA-Z]/u.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:oS.test(e)?"\\"+e:e}function sS(e,t,n){let r=new RegExp(`[${e}]`,"ui"),o=new RegExp(`[${t}]`,"u"),i="";for(let s=0;s<128;s++){let a=String.fromCodePoint(s);(r.test(a)||o.test(a))&&(i+="\\x"+s.toString(16).padStart(2,"0"))}return`[${n?"^":""}${i}]`}function aS(e,t,n,r){let o=/[?[]/u.test(t),i=Su.test(t);return{test(s){if(r||n.ignoreCase&&i||(o||n.ignoreCase)&&Su.test(s))throw new x("feature","non-ASCII glob matching","locale-dependent glob matching of non-ASCII names is not supported");return e.test(s)}}}function F1(e,t,n){let{ignoreCase:r}=n,o=t+1,i=!1;(e[o]==="!"||e[o]==="^")&&(i=!0,o++);let s="",a="",u=!1,l=!1,c=!1,f=!1,d="",p=0,h="",m=0;for(e[o]==="]"&&(s+="\\]",o++,u=!0,d="]");o<e.length&&e[o]!=="]";o++){let g=e[o];if(g==="["&&(e[o+1]==="."||e[o+1]==="="))throw new x("feature","glob collating or equivalence class","glob collating symbols and equivalence classes are not supported");if(g==="["&&e[o+1]===":"){let w=n.bash?uS(e,o):Fn(e,o,{unknown:"empty"});if(w){if(!n.bash&&w.body==="")throw new x("feature","glob character class","unknown POSIX classes in command filename patterns are not supported");l&&(f=!0),r?a+=w.body:s+=w.body,o=w.end-1,u=!1,l=!1;continue}if(n.bash)continue}if(g==="-"&&u)m=p,h=d,s+="-",l=!0,u=!1;else{let w=g==="\\"&&o+1<e.length?e[++o]:g;p=s.length,d=w,l&&Su.test(h+w)&&(c=!0),l&&w.codePointAt(0)<h.codePointAt(0)?s=s.slice(0,m):s+=/[\]\\^[-]/u.test(w)?`\\${w}`:w,u=!l,l=!1}}return o>=e.length?null:f?{voided:!0,end:o}:{source:r?sS(s,a,i):`[${i?"^":""}${s}]`,end:o,nonAsciiRange:c}}function uS(e,t){let n=e.indexOf(":]",t+2);if(n===-1)return null;let r=e.slice(t+2,n).replace(/\\([\s\S]|$)/gu,"$1");return{body:r==="ascii"?"\\x00-\\x7F":rn[r]??"",end:n+2}}function R1(e,t){return He(t).test(e)}function M1(e){let{value:t,mask:n}=e;if(n===null)return $u.test(t);for(let r=0;r<t.length;r++)if(n[r]==="0"&&$u.test(t[r]))return!0;return!1}function Qr(e){let t=n=>!e.mask||e.mask[n]==="0";for(let n=0;n<e.value.length;n++){let r=e.value[n];if(t(n)){if(r==="\\")n++;else if(r==="[")n=lS(e,n,t);else if(/[?*+@!]/u.test(r)&&e.value[n+1]==="("&&t(n+1))return!0}}return!1}function lS(e,t,n){let{value:r}=e,o=t+1;for(/[!^]/u.test(r[o])&&n(o)&&o++,r[o]==="]"&&n(o)&&o++;o<r.length;o++)if(n(o))if(r[o]==="\\")o++;else{if(r[o]==="]")return o;if(r[o]==="["&&/[.:=]/u.test(r[o+1])&&n(o+1)){let i=r.indexOf(r[o+1]+"]",o+2);i!==-1&&(o=i+1)}}return t}var cS=/[*?[\]^!\\:.=-]/u;function Qn(e){let{value:t,mask:n}=e;if(n===null)return t;let r="";for(let o=0;o<t.length;o++){let i=t[o];r+=n[o]!=="0"&&cS.test(i)?"\\"+i:i}return r}function D1(e,t){let n=Qn(e),r=n.match(/[^/]+|\/+/gu)??[],o=Rn(),i=new Set,s=[{path:"",marks:null}],a;try{for(let l=0;l<r.length;l++){let c=r[l];if(c.startsWith("/")||!$u.test(c)){s=s.map(f=>({...f,path:f.path+dS(c)}));continue}s=pS(s,c,l===r.length-1,t,i)}let u=s.filter(l=>E(t.cwd,l.path,t.fs,{follow:!1}).path!==null);for(let l of u)for(let c of l.marks??[])o.add(c);return a=u.filter(l=>l.marks===null).map(l=>l.path).sort(q),a}finally{if(a===void 0)for(let u of i)o.add(u);o.emit(t.notes,"glob","",` while expanding ${JSON.stringify(n)}`),a?.length===0&&r.some(fS)&&t.notes.add(`glob: no paths matched ${JSON.stringify(n)}; the pattern was left literal.`)}}function fS(e){for(let t=0;t<e.length;t++)if(e[t]==="\\")t++;else{if(e[t]==="*"||e[t]==="?")return!0;if(e[t]==="[")try{if(F1(e,t,{bash:!0}))return!0}catch{return!0}}return!1}var dS=e=>e.replace(/\\(.)/gu,"$1");function pS(e,t,n,r,o){let i=He(t,{bash:!0}),s=t.startsWith(".")||t.startsWith("\\."),a=[];for(let u of e){let l=E(r.cwd,u.path||".",r.fs).path;if(!r.fs.isDir(l))continue;let{dirs:c,files:f,links:d}=r.fs.listDir(l),p=n?d:d.filter(h=>r.fs.isDir(E(l,h,r.fs).path));for(let h of n?[...c,...f,...p]:[...c,...p]){let m=!s&&h.startsWith(".");if(!m&&u.marks===null)i.test(h)&&a.push({path:u.path+h,marks:null});else if(hS(i,h)){if(!m){a.push({path:u.path+h,marks:u.marks});continue}let g=j(l,h);o.add(g),a.push({path:u.path+h,marks:[...u.marks??[],g]})}}}return a}function hS(e,t){try{return e.test(t)}catch{return!0}}var eo=(e,t)=>e.some(n=>n.test(t)),z1=()=>({stdout:"",stderr:"",exitCode:1}),wn=e=>e.failure!==void 0,Ui=e=>e.name??"(standard input)",B1=e=>e.binaryLine===void 0?e.content:e.content.replaceAll("\0",`
|
|
146
|
-
`),
|
|
147
|
-
`,
|
|
148
|
-
`)?
|
|
149
|
-
`)}function
|
|
150
|
-
`):
|
|
151
|
-
`)}return
|
|
152
|
-
`),rest:
|
|
153
|
-
`))
|
|
154
|
-
or: grep ${
|
|
155
|
-
`,e.content.indexOf(
|
|
156
|
-
`);continue}if(
|
|
157
|
-
`}:{input:{name:t
|
|
143
|
+
`)}function Em(e,{bytes:t,valid:n}){let r=$e(t),i=n?``:`${e}: invalid input
|
|
144
|
+
`;if(r!==void 0&&n)return b(r);let a=r===void 0?{fd:1,bytes:t}:{fd:1,text:r};return{stdout:r??``,stderr:i,exitCode:+!n,events:[...t.length?[a]:[],...i?[{fd:2,text:i}]:[]]}}var Dm=`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,Om=8,km=Object.freeze([2,4,5,7,8]),Am=wm(`base32`,{encode:e=>i(e,{padding:!0}),decode:Mm}),jm=/[a-z]/u;function Mm(e,t=!1){let n=e.replace(t?/[^A-Z2-7=]/gu:/\n/gu,``);try{let e=r(n,{padding:!0});if(!jm.test(n))return{bytes:e,valid:!0}}catch(e){if(!(e instanceof SyntaxError))throw e}return Nm(n)}function Nm(e){let t=new Uint8Array(Math.ceil(e.length/Om)*5),n=0,r=0,i=!0;for(;r<e.length;){if(e.length-r<Om){i=!1;break}let a=e.slice(r,r+Om),o=/^[A-Z2-7]*/u.exec(a)[0];if(n+=Pm(a,o,t.subarray(n)),!km.includes(o.length)||a.slice(o.length)!==`=`.repeat(Om-o.length)){i=!1;break}r+=Om}return{bytes:t.subarray(0,n),valid:i}}function Pm(e,t,n){let r=0,i=0,a=0;for(let e of t)i=i<<5|Dm.indexOf(e),r+=5,!(r<8)&&(r-=8,n[a++]=i>>r&255);return a}var Fm=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Im=wm(`base64`,{encode:e,decode:Lm});function Lm(e,n=!1){let r=e.replace(n?/[^A-Za-z0-9+/=]/gu:/\n/gu,``);try{return{bytes:t(r,{padding:!0}),valid:!0}}catch(e){if(!(e instanceof SyntaxError))throw e;return Rm(r)}}function Rm(e){let n=new Uint8Array(Math.ceil(e.length/4)*3),r=/[A-Za-z0-9+/]*/uy,i=0,a=0,o=!0;for(;a<e.length;){r.lastIndex=a;let s=r.exec(e)[0].length,c=s-s%4;if(c){let r=t(e.slice(a,a+c));n.set(r,i),i+=r.length,a+=c}if(a===e.length)break;let l=s%4;if(l<2){o=!1;break}let u=Fm.indexOf(e[a]),d=Fm.indexOf(e[a+1]),f=l===3?Fm.indexOf(e[a+2]):0;n[i++]=u<<2|d>>4,l===3&&(n[i++]=d<<4|f>>2);let p=4-l;if(a+=l,e.slice(a,a+p)!==`=`.repeat(p)){o=!1;break}a+=p}return{bytes:n.subarray(0,i),valid:o}}var zm={short:[`n`,`N`,`i`,`s`,`w`,`F`,`v`,`l`,`c`,`q`,`u`,`a`,`H`,`I`],long:[`line-number`,`no-line-number`,`ignore-case`,`case-sensitive`,`word-regexp`,`fixed-strings`,`invert-match`,`files-with-matches`,`files-without-match`,`count`,`quiet`,`hidden`,`no-ignore`,`no-heading`,`with-filename`,`no-filename`,`text`,`unrestricted`],valueShort:[`A`,`B`,`C`],valueLong:[`after-context`,`before-context`,`context`],repeatable:[`e`,`regexp`]},Bm=new Map(Object.entries({"line-number":`n`,"no-line-number":`N`,"ignore-case":`i`,"case-sensitive":`s`,"word-regexp":`w`,"fixed-strings":`F`,"invert-match":`v`,"files-with-matches":`l`,"files-without-match":`L`,count:`c`,quiet:`q`,text:`a`,unrestricted:`u`,"with-filename":`H`,"no-filename":`I`,regexp:`e`,"after-context":`A`,"before-context":`B`,context:`C`})),Vm=new Set([`no-heading`,`no-ignore`]),Hm=(e,t)=>new T(`feature`,e,`rg: ${t}`);function Um(e){let t={patterns:[],context:[],mode:null,showName:null,ignoreCase:!1,lineNumbers:!1,word:!1,literal:!1,invert:!1,quiet:!1,text:!1,hidden:!1,unrestricted:0};for(let{name:n,value:r}of e.order)Vm.has(n)||Wm(t,Bm.get(n)??n,r,Km(n));let n=e=>t.context.findLast(([t])=>t===e)?.[1],r=e=>t.context.findLast(([t])=>t===e)?.[2]??`-`+e;if(t.after=Gm(n(`A`)??n(`C`),n(`A`)===void 0?r(`C`):r(`A`)),t.before=Gm(n(`B`)??n(`C`),n(`B`)===void 0?r(`C`):r(`B`)),t.unrestricted>=2&&(t.hidden=!0),t.unrestricted>=3)throw Hm(`-uuu`,`searching binary files is not supported`);return t}function Wm(e,t,n,r){switch(t){case`i`:e.ignoreCase=!0;return;case`s`:e.ignoreCase=!1;return;case`n`:e.lineNumbers=!0;return;case`N`:e.lineNumbers=!1;return;case`l`:case`L`:case`c`:e.mode=t;return;case`H`:e.showName=`H`;return;case`I`:e.showName=`h`;return;case`w`:e.word=!0;return;case`F`:e.literal=!0;return;case`v`:e.invert=!0;return;case`q`:e.quiet=!0;return;case`a`:e.text=!0;return;case`e`:e.patterns.push(n);return;case`hidden`:e.hidden=!0;return;case`u`:e.unrestricted++;return;case`A`:case`B`:case`C`:e.context.push([t,n,r]);return;default:throw Hm(Km(t),`${Km(t)} is not supported`)}}function Gm(e,t){if(e===void 0)return 0;if(!/^\d+$/u.test(e))throw Hm(`${t} value`,`error parsing flag ${t}: value is not a valid number`);return Number(e)}var Km=e=>(e.length===1?`-`:`--`)+e;function qm(e,t){return t?e.flatMap(e=>[`-e`,e]):[`-e`,e.length===1?e[0]:e.map(e=>`(?:${e})`).join(`|`)]}var Jm=[[/\\[1-9]/u,`backreference`],[/\(\?<?[=!]/u,`look-around`],[/\\[QE]/u,`\\Q…\\E literal span`]];function Ym(e){for(let t=0;t<e.length;t++){let n=e[t];if(n===`
|
|
145
|
+
`)return!0;if(n!==`\\`)continue;let r=e[t+1];if(r===`n`||r===`x`&&/^x\{?0*a\}?/iu.test(e.slice(t+1)))return!0;t++}return!1}function Xm(e,t){if(!t)for(let t of e){for(let[e,n]of Jm)if(e.test(t))throw Hm(n,`${n} is not supported; ripgrep's regex engine rejects it too`);if(Ym(t))throw Hm(`newline in a pattern`,`a newline in a pattern is not supported; ripgrep rejects one outside multiline mode`)}}var W=class extends Error{constructor(e,t=null,n=null,r=`syntax error`){super(e),this.line=t,this.gap=n,this.kind=r}},Zm=new Set([`BEGIN`,`END`,`BEGINFILE`,`ENDFILE`,`function`,`func`,`if`,`else`,`while`,`for`,`do`,`break`,`continue`,`next`,`nextfile`,`exit`,`return`,`delete`,`in`,`getline`,`print`,`printf`,`switch`,`case`,`default`]),Qm={__proto__:null,length:[0,1],substr:[2,3],index:[2,2],split:[2,3],sub:[2,3],gsub:[2,3],gensub:[3,4],match:[2,3],sprintf:[1,1/0],sin:[1,1],cos:[1,1],atan2:[2,2],exp:[1,1],log:[1,1],sqrt:[1,1],int:[1,1],rand:[0,0],srand:[0,1],tolower:[1,1],toupper:[1,1],close:[1,2],fflush:[0,1],systime:[0,0],strtonum:[1,1],and:[2,1/0],or:[2,1/0],xor:[2,1/0],lshift:[2,2],rshift:[2,2],compl:[1,1],typeof:[1,1],isarray:[1,1]},$m=new Map([[`system`,`system() is not supported: this terminal runs no processes`],[`strftime`,`strftime() is not supported (gawk extension)`],[`mktime`,`mktime() is not supported (gawk extension)`],[`asort`,`asort() is not supported (gawk extension)`],[`asorti`,`asorti() is not supported (gawk extension)`],[`patsplit`,`patsplit() is not supported (gawk extension)`]]),eh=new Set([...Object.keys(Qm),...$m.keys()]),th=5e6,nh=100,rh=1e6,ih=`this terminal runs no processes`;function ah(e,t,n){switch(e){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;default:return t**n}}var oh={__proto__:null,n:10,t:9,r:13,f:12,v:11,a:7,b:8},sh=`^$.[]|()*+?{}\\/"`,ch=1e3,lh=e=>e!==void 0&&/[0-9a-fA-F]/u.test(e),uh=e=>e!==void 0&&e>=`0`&&e<=`7`,dh=class{constructor(e,t,n,r){this.src=e,this.i=0,this.warn=t,this.tables=n,this.ignoreCase=r,this.groups=0}fail(e){throw new W(`invalid regex /${this.src}/: ${e}`)}peek(){return this.src[this.i]}literal(){let e=this.src.codePointAt(this.i);return this.i+=Lr(e),this.charNode(e)}charNode(e){let t=this.ignoreCase?this.tables.fold(e):[e];return t.length===1?{type:`char`,code:e}:{type:`set`,negate:!1,items:t.map(e=>[e,e])}}parse(){return this.alternation(0)}alternation(e){let t=[this.concatenation(e)];for(;this.peek()===`|`;)this.i++,t.push(this.concatenation(e));return t.length===1?t[0]:{type:`alt`,nodes:t}}concatenation(e){let t=[];for(;!this.endsConcatenation(e);)t.push(this.quantified(this.atom(t.length===0,e)));return t.length===1?t[0]:{type:`cat`,nodes:t}}endsConcatenation(e){let t=this.peek();return t===void 0||t===`|`||t===`)`&&e>0}quantified(e){let t=e;for(;;){let e=this.peek();if(e===`*`){this.i++,t={type:`rep`,node:t,min:0,max:null};continue}if(e===`+`){this.i++,t={type:`rep`,node:t,min:1,max:null};continue}if(e===`?`){this.i++,t={type:`rep`,node:t,min:0,max:1};continue}if(e===`{`){let e=/^\{(\d*)(?:(,)(\d*))?\}/u.exec(this.src.slice(this.i));if(!e&&/^\{[\d,]*\}/u.test(this.src.slice(this.i))&&this.fail(`invalid content of {}`),!e||e[1]===``&&e[2]===void 0)return t;let n=e[1]===``?0:Number(e[1]),r=e[2]===void 0?n:e[3]===``?null:Number(e[3]);if(r!==null&&r<n&&this.fail(`invalid interval {${n},${r}}`),n>ch||r!==null&&r>ch)throw new W(`interval count above ${ch} is not supported`,null,`regex interval limit`);this.i+=e[0].length,t={type:`rep`,node:t,min:n,max:r};continue}return t}}atom(e,t){let n=this.peek();if(n===`(`){this.i++;let e=++this.groups,n=this.alternation(t+1);return this.peek()!==`)`&&this.fail("missing `)`"),this.i++,{type:`group`,index:e,node:n}}return n===`[`?this.bracket():n===`\\`?this.escape():(this.i++,n===`.`?{type:`any`}:n===`^`||n===`$`?{type:`assert`,kind:n}:((n===`*`||n===`+`||n===`?`)&&!e&&this.fail(`unexpected \`${n}\``),this.i--,this.literal()))}escape(){this.i++;let e=this.peek();return e===void 0&&this.fail(`trailing backslash`),this.i++,e===`y`?{type:`assert`,kind:`y`}:e===`<`||e===`>`||e===`B`?{type:`assert`,kind:e}:e==="`"?{type:`assert`,kind:`^`}:e===`'`?{type:`assert`,kind:`$`}:e===`s`||e===`S`?{type:`set`,negate:e===`S`,items:this.tables.ranges(`space`)}:e===`w`||e===`W`?{type:`set`,negate:e===`W`,items:this.tables.ranges(`word`)}:(e===`b`&&this.warn?.("regexp escape sequence `\\b' is a backspace here, as in gawk; `\\y' is the word boundary"),this.charNode(this.escapedCode(e,!0)))}escapedCode(e,t){if(e in oh)return oh[e];if(uh(e)){let t=e;for(;t.length<3&&uh(this.peek());)t+=this.src[this.i++];return ph(t,8)}if(e===`x`&&lh(this.peek())){let e=``;for(;e.length<2&&lh(this.peek());)e+=this.src[this.i++];return ph(e,16)}let n=this.src.codePointAt(this.i-1);return!sh.includes(e)&&t&&this.warn?.(`regexp escape sequence \`\\${String.fromCodePoint(n)}' is not a known regexp operator`),this.i+=Lr(n)-1,n}bracket(){this.i++;let e=!1;this.peek()===`^`&&(e=!0,this.i++);let t=[],n=!0;for(;;){this.i>=this.src.length&&this.fail(`unterminated bracket expression`);let e=this.peek();if(e===`]`&&!n){this.i++;break}if(n=!1,e===`[`&&this.src[this.i+1]===`:`){let e=this.src.indexOf(`:]`,this.i+2);if(e!==-1){let n=this.src.slice(this.i+2,e),r=this.tables.ranges(this.ignoreCase?on(n):n);r===void 0&&this.fail(`invalid character class \`[:${n}:]\``),t.push(...r),this.i=e+2;continue}}let r=this.bracketChar();if(this.peek()===`-`&&this.src[this.i+1]!==`]`&&this.src[this.i+1]!==void 0){this.i++;let e=this.bracketChar(),n=this.ignoreCase?this.tables.foldRange(r,e):e<r?null:[[r,e]];n===null&&this.fail(`invalid range end`),t.push(...n)}else this.ignoreCase?t.push(...this.tables.fold(r).map(e=>[e,e])):t.push([r,r])}return{type:`set`,negate:e,items:t}}bracketChar(){let e=this.peek();if(e===`[`&&(this.src[this.i+1]===`.`||this.src[this.i+1]===`=`)){let e=this.src.indexOf(this.src[this.i+1]+`]`,this.i+2);if(e!==-1&&e>this.i+2){Array.from(this.src.slice(this.i+2,e)).length!==1&&this.fail(`invalid collation character`);let t=this.src.codePointAt(this.i+2);return this.i=e+2,t}}if(e===`\\`){this.i++,this.peek()===void 0&&this.fail(`trailing backslash`);let e=this.src[this.i++];return this.escapedCode(e,!1)}let t=this.src.codePointAt(this.i);return this.i+=Lr(t),t}};function fh(e,t=null,n=_n(N),r=!1){let i=new dh(e,t,n,r);return{ast:i.parse(),groups:i.groups}}function ph(e,t){let n=Number.parseInt(e,t);if(n>=128)throw new W(`non-ASCII regex byte escapes are not supported`,null,`regex byte escapes`);return n}var mh=e=>`\\u{${e.toString(16)}}`,hh=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122?String.fromCodePoint(e):mh(e);function gh(e,t){if(e===`^`||e===`$`)return e;let n=t.assertions();return e===`y`?n.boundary:e===`B`?n.inside:n[e]}function _h(e,t=_n(N)){let n=e=>_h(e,t);switch(e.type){case`char`:return hh(e.code);case`any`:return`.`;case`set`:return`[${e.negate?`^`:``}${e.items.map(([e,t])=>e===t?hh(e):`${hh(e)}-${hh(t)}`).join(``)}]`;case`assert`:return gh(e.kind,t);case`group`:return`(${n(e.node)})`;case`cat`:return e.nodes.map(n).join(``);case`alt`:return`(?:${e.nodes.map(n).join(`|`)})`;case`rep`:{let t=`(?:${n(e.node)})`;return e.max===null?e.min===0?`${t}*`:e.min===1?`${t}+`:`${t}{${e.min},}`:e.min===0&&e.max===1?`${t}?`:`${t}{${e.min},${e.max}}`}default:throw new W(`internal: unknown regex node ${e.type}`)}}var vh=5e4;function yh(e,t){let n=t=>{for(let n=0;n<e.length;n++)if(t>=e[n][0]&&t<=e[n][1])return!0;return!1};return t?e=>!n(e):n}function bh(e,t=_n(N)){let n=[],r=e=>{if(n.length>=vh)throw new W(`regex too large`,null,`regex state limit`);return n.push(e),n.length-1};function i(e,t){switch(e.type){case`char`:return r({op:`char`,codes:[e.code],next:t});case`any`:return r({op:`any`,next:t});case`set`:return r({op:`set`,test:yh(e.items,e.negate),next:t});case`assert`:return r({op:`assert`,kind:e.kind,next:t});case`group`:return i(e.node,t);case`cat`:{let n=t;for(let t=e.nodes.length-1;t>=0;t--)n=i(e.nodes[t],n);return n}case`alt`:{let n=e.nodes.map(e=>i(e,t)),a=n.at(-1);for(let e=n.length-2;e>=0;e--)a=r({op:`split`,x:n[e],y:a});return a}case`rep`:return a(e,t);default:throw new W(`internal: unknown regex node ${e.type}`)}}function a(e,t){let a=t;if(e.max===null){let o=r({op:`split`,x:-1,y:t});n[o].x=i(e.node,o),a=o}else for(let n=e.max-e.min;n>0;n--)a=r({op:`split`,x:i(e.node,a),y:t});for(let t=0;t<e.min;t++)a=i(e.node,a);return a}let o=i(e,r({op:`match`})),s=``,c=o;for(;n[c].op===`char`&&n[c].codes.length===1&&n[c].codes[0]<128;)s+=String.fromCodePoint(n[c].codes[0]),c=n[c].next;return(n[c].op!==`match`||s===``)&&(s=null),{states:n,start:o,literal:s,isWord:e=>t.has(`word`,e),gen:new Int32Array(n.length).fill(-1),stamp:0}}function xh(e,t){if(t<=0)return-1;let n=e.codePointAt(t-1);if(n<56320||n>57343||t<2)return n;let r=e.codePointAt(t-2);return r>65535?r:n}function Sh(e,t,n,r){if(e===`^`)return n===0;if(e===`$`)return n===t.length;let i=r(xh(t,n)),a=n<t.length&&r(t.codePointAt(n));return e===`y`?i!==a:e===`B`?i===a:e===`<`?!i&&a:i&&!a}function Ch(e,t){return e.op===`char`?e.codes.includes(t):e.op===`any`||e.test(t)}function wh(e,t,n){if(e.literal!==null&&Number.isInteger(n)&&n>=0&&n<=t.length&&!Object.is(n,-0)){let r=t.indexOf(e.literal,n);return r<0?null:{start:r,end:r+e.literal.length}}let{states:r,gen:i}=e,a=t.length,o=[],s=(n,a,s,c,l)=>{for(o.push(a);o.length>0;){let a=o.pop();if(i[a]===l)continue;i[a]=l;let u=r[a];u.op===`split`?o.push(u.y,u.x):u.op===`assert`?Sh(u.kind,t,c,e.isWord)&&o.push(u.next):n.push(a,s)}},c=[],l=[],u=null,d=n,f=++e.stamp;for(;;){u===null&&s(c,e.start,d,d,f);let n=d<a?t.codePointAt(d):-1,i=Lr(n);if(c.length===0){if(u!==null||d>=a)break;d+=i,f=++e.stamp;continue}let o=++e.stamp;for(let e=0;e<c.length;e+=2){let t=c[e],a=c[e+1];if(u!==null&&a>u.start)continue;let f=r[t];if(f.op===`match`){(u===null||a<u.start||a===u.start&&d>u.end)&&(u={start:a,end:d});continue}n!==-1&&Ch(f,n)&&s(l,f.next,a,d+i,o)}if(c.length=0,[c,l]=[l,c],f=o,d>=a)break;d+=i}return u}var Th=new Map,Eh=class{constructor(e,t,n,r=_n(N)){let{ast:i,groups:a}=fh(e,n,r,t);this.src=e,this.ignoreCase=t,this.tables=r,this.groupCount=a,this.source=_h(i,r),this.flags=`su`;try{this.js=new RegExp(zr(this.source),this.flags)}catch(t){throw new W(`cannot compile regex /${e}/: ${t.message}`,null,`regex engine limit`)}this.ast=i,this.nfa=null,this.capture=null,this.captureShape=Dh(i)}test(e){return this.checkCase(e),this.js.test(e)}checkCase(e){if(this.ignoreCase&&cn.test(e+this.src))throw new W(`case-insensitive matching over Cyrillic Extended-C letters is not supported`,null,`locale-sensitive regex`)}search(e,t=0){return this.checkCase(e),this.nfa===null&&(this.nfa=bh(this.ast,this.tables)),wh(this.nfa,e,t)}groups(e,t,n){if(this.captureShape.unsafe)throw new W(`capture extraction across repeated or alternative groups is not supported`,null,`regex capture semantics`);let r=this.capture??=new RegExp(this.source,this.flags+`dy`);r.lastIndex=t;let i=r.exec(e);if(!i||i.index!==t||t+i[0].length!==n){let r=Array.from(e.slice(n)).length,a=RegExp(`(?:${this.source})(?=.{${r}}(?![^]))`,this.flags+`dy`);a.lastIndex=t,i=a.exec(e)}if(!i)throw new W(`capture extraction for this match is not supported`,null,`regex capture semantics`);return i.indices.map((e,t)=>e===void 0?void 0:{text:i[t],start:e[0],end:e[1]})}};function Dh(e){let t=(e.nodes??(e.node?[e.node]:[])).map(Dh),n=t.reduce((e,t)=>e+t.groups,+(e.type===`group`));return{groups:n,nullable:e.type===`assert`||(e.type===`group`||e.type===`cat`)&&t.every(e=>e.nullable)||e.type===`alt`&&t.some(e=>e.nullable)||e.type===`rep`&&(e.min===0||t[0].nullable),unsafe:e.type===`rep`&&(e.max===null||e.max>1)&&(n>1||n>0&&t[0].nullable)||e.type===`alt`&&n>0||t.some(e=>e.unsafe)}}function Oh(e,t=!1,n=null,r=_n(N)){let i=(t?`i`:`c`)+r.name+`\0`+e,a=Th.get(i);if(a)return a;Th.size>=500&&Th.clear();let o=new Eh(e,t,n,r);return Th.set(i,o),o}function kh(e,t,n){for(;;){let r=t.search(e,n);if(!r||r.start!==r.end)return r;if(r.end>=e.length)return null;n=r.end+Rr(e,r.end)}}function Ah(e,t){let n=[],r=0;for(;;){let i=kh(e,t,r);if(!i)break;n.push(e.slice(r,i.start)),r=i.end}return n.push(e.slice(r)),n}function jh(e,t,n,r){let i=r!==`first`,a=e.length,o=``,s=0,c=-1,l=0;for(;s<=a;){let u=t.search(e,s);if(!u)break;let d=u.start===u.end;if(d&&u.start===c&&r!==`nth`){if(u.start>=a)break;let t=Rr(e,u.start);o+=e.slice(s,u.start+t),s=u.start+t;continue}l++;let f=n(u.start,u.end,l);if(o+=e.slice(s,u.start)+(f===null?e.slice(u.start,u.end):f),c=u.end,d){if(u.end>=a){s=a;break}let t=Rr(e,u.end);o+=e.slice(u.end,u.end+t),s=u.end+t}else s=u.end;if(!i)break}return{out:o+e.slice(s),count:l}}function Mh(e,t){let n=`(){}+?|`,r=!1,i=0,a=!1,o=``;for(let s=0;s<e.length;s++){let c=e[s];if(a){if(c===`[`&&(e[s+1]===`.`||e[s+1]===`=`))throw new T(`feature`,`regex collating or equivalence class`,`grep: collating and equivalence classes are not supported`);if(c===`[`){let n=Ut(e,s,{classes:t});if(n){o+=n.body,s=n.end-1;continue}}o+=c,c===`]`&&(a=!1,r=!0);continue}if(c===`[`){o+=c,a=!0,e[s+1]===`^`&&(o+=`^`,s++),e[s+1]===`]`&&(o+=`\\]`,s++);continue}if(c===`\\`){let t=e[++s];if(t===void 0)return{error:`trailing backslash (\\)`};if(n.includes(t)){if((t===`+`||t===`?`)&&!r){o+=`\\`+t,r=!0;continue}if(t===`(`&&i++,t===`)`&&i--===0)return{error:`Unmatched ) or \\)`};(t===`(`||t===`|`)&&(r=!1),(t===`)`||t===`}`)&&(r=!0),o+=t}else o+="^$\\.*[]/bBsSwW<>`'123456789".includes(t)?`\\`+t:t,r=!"bB<>`'".includes(t);continue}if(c===`*`){o+=r?`*`:`\\*`,r=!0;continue}if(c===`^`){r=!Nh(e,s),o+=r?`\\^`:`^`;continue}if(c===`$`){r=s!==e.length-1&&(e[s+1]!==`\\`||e[s+2]!==`)`&&e[s+2]!==`|`),o+=r?`\\$`:`$`;continue}o+=n.includes(c)?`\\`+c:c,r=!0}return i>0?{error:`Unmatched ( or \\(`}:{source:o}}function Nh(e,t){if(t===0)return!0;if(t<2||e[t-2]!==`\\`||e[t-1]!==`(`&&e[t-1]!==`|`)return!1;let n=0;for(let r=t-3;r>=0&&e[r]===`\\`;r--)n++;return n%2==0}function Ph(e){if(!/\\[1-9]/u.test(e))return!1;let t=new Set,n=[],r=new Set,i=!1,a=0,o=!1,s=[],c=new Set,l=!1;for(let u=0;u<e.length;u++){let d=e[u];if(d===`\\`){let n=e[++u];if(!i&&/[1-9]/u.test(n??``)){let e=Number(n);if(!t.has(e))throw Error(`Invalid back reference`);(!c.has(e)||r.has(e))&&(o=!0)}s=[];continue}if(i){d===`]`&&(i=!1);continue}if(d===`[`){i=!0,s=[];continue}if(d===`(`)n.push({id:++a,entry:new Set(c),branches:[],start:u}),s=[];else if(d===`|`){let e=n.at(-1);e&&e.branches.push(c),c=new Set(e?.entry),s=[]}else if(d===`)`){let r=n.pop();if(!r)continue;c=r.branches.reduce((e,t)=>e.intersection(t),c),c.add(r.id),t.add(r.id),s=[...c.difference(r.entry)],l=Fh(e.slice(r.start,u+1))}else if(d===`*`||d===`?`||d===`+`){if(d!==`?`&&l)for(let e of s)r.add(e);if(d!==`+`)for(let e of s)c.delete(e)}else if(d===`{`){let t=/^\{(\d*)(?:,(\d*))?\}/u.exec(e.slice(u));if(t){Number(t[1])===0&&(c=c.difference(new Set(s)));let e=t[2]===void 0?Number(t[1]):t[2]===``?1/0:Number(t[2]);l&&e>1&&s.forEach(e=>r.add(e)),u+=t[0].length-1}else s=[]}else s=[]}return o}function Fh(e){try{return RegExp(`^(?:${e})$`,`su`).test(``)}catch{return!0}}var Ih=`bBsSwW`;function Lh(e,t){let n=``;for(let r=0;r<e.length;){let i=e[r];if(i===`[`){let i=zh(e,r,t);n+=i.text,r=i.end;continue}let a=i===`\\`,o=e.codePointAt(r+ +!!a),s=+!!a+Lr(o),c=a&&Ih.includes(e[r+1])?null:t.fold(o);n+=c===null||c.length===1?e.slice(r,r+s):`[${String.fromCodePoint(...c)}]`,r+=s}return n}function Rh(e,t){let n=``;for(let r of e){let e=t.fold(r.codePointAt(0));n+=e.length===1?RegExp.escape(r):`[${String.fromCodePoint(...e)}]`}return n}function zh(e,t,n){let r=t+1,i=`[`;e[r]===`^`&&(i+=`^`,r++);let a=!0;for(;;){let t=e[r];if(t===`]`&&!a)return{text:i+`]`,end:r+1};if(a=!1,t===`[`&&`:.=`.includes(e[r+1])){let t=e[r+1],n=e.indexOf(t+`]`,r+2);i+=t===`:`?`[:${on(e.slice(r+2,n))}:]`:e.slice(r,n+2),r=n+2;continue}let o=e.codePointAt(r),s=r+Lr(o);if(e[s]===`-`&&e[s+1]!==void 0&&e[s+1]!==`]`){let t=e.codePointAt(s+1),a=s+1+Lr(t);i+=Bh(o,t,e.slice(r,a),n),r=a;continue}i+=String.fromCodePoint(...n.fold(o)),r=s}}function Bh(e,t,n,r){let i=r.foldRange(e,t);if(i===null)throw Error(`Invalid range end`);return i.length===1&&i[0][0]===e&&i[0][1]===t?n:i.map(([e,t])=>e===t?String.fromCodePoint(e):`${String.fromCodePoint(e)}-${String.fromCodePoint(t)}`).join(``)}function Vh({pattern:e,tables:t},n){return[...e].map(e=>(n?t.fold(e.codePointAt(0)):[e.codePointAt(0)]).map(e=>E(String.fromCodePoint(e))))}function Hh(e,t){return t.every(t=>t.literal?(t.literalMask??=Vh(t.literal,t.folded),!Wh(e,t.literalMask)):!1)}function Uh(e,t,n,r=N){let i=_n(r);return t.every(t=>(n||!Kh.test(t))&&t.isWellFormed()&&!Wh(e,Vh({pattern:t,tables:i},!1)))}function Wh(e,t){if(t.length===0)return!0;for(let n of new Set(t[0].map(e=>e[0])))for(let r=e.indexOf(n);r>=0&&r+t.length<=e.length;r=e.indexOf(n,r+1))if(Gh(e,r,t,0))return!0;return!1}function Gh(e,t,n,r){return r===n.length||n[r].some(i=>i.every((n,r)=>e[t+r]===n)&&Gh(e,t+i.length,n,r+1))}var Kh=/[\\.^$*+?()[\]{}|]/u,qh=new Set(`\\.[*^$`),Jh=new Set(`\\.[*^$+?(){}|`);function Yh(e,t){if(t.has(`F`))return e;if(t.has(`P`))return Kh.test(e)?null:e;let n=t.has(`E`)?Jh:qh,r=``;for(let t=0;t<e.length;t++){let i=e[t]===`\\`,a=i?e[++t]:e[t];if(n.has(a)!==i)return null;r+=a}return r}var Xh=new Map;function Zh(e){if(Xh.has(e))return Xh.get(e);let t=e.assertions(),n=``;for(let t=128;t<=255;t++)e.has(`word`,t)&&(n+=`\\u${(56320+t).toString(16)}`);let r=pn(e.body(`word`)+n),i={"<":r[`<`],">":r[`>`],b:r.boundary,B:r.inside,W:Qh(t.nonWord),S:Qh(t.nonSpace)};return Xh.set(e,i),i}var Qh=e=>`(?:(?![${rt}])${e})`;function $h(e){let t=bh(e.ast,e.tables),n=t.states.map(e=>e.op===`any`?{op:`set`,test:e=>!at(e),next:e.next}:e.op===`set`?{...e,test:t=>!at(t)&&e.test(t)}:e),r={...t,states:n,isWord:t=>e.tables.has(`word`,at(t)?t-56320:t)};return{search:(e,t)=>wh(r,e,t)}}var eg=[0,0,0,0,1114112,2097152,67108864],tg=(e,t)=>at(e.codePointAt(t))?e.codePointAt(t)-56320:-1;function ng(e,t){let n=tg(e,t),r=n===237?3:n>=240&&n<=247?4:n>=248&&n<=251?5:n===252||n===253?6:0,i=n&127>>r;for(let n=1;n<r;n++){let r=tg(e,t+n);if(r<128||r>191)return 0;i=i<<6|r&63}return r===3?i>=55296&&i<=57343?3:0:r&&i>=eg[r]?r:0}function rg(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(n>65535&&t++,!at(n))continue;let r=ng(e,t);if(r===0||r===3)return!0;t+=r-1}return!1}var ig=/[\uDCED\uDCF0-\uDCFD][\uDC80-\uDCBF]{2,5}/gu;function ag(e){let t={long:!1,surrogate:!1};for(let[n]of e.matchAll(ig)){let e=ng(n,0);if(e===3?t.surrogate=!0:e&&(t.long=!0),t.long&&t.surrogate)break}return t}function og(e,t){let n={negated:!1,dot:!1,regex:t,wordEdge:!1};for(let t=0;t<e.length;t++){let r=e[t];if(r===`\\`){let r=e[++t]??``;`<>bB`.includes(r)&&(n.wordEdge=!0),`<>bBwsWS`.includes(r)&&(n.regex=!0),`WS`.includes(r)&&(n.negated=!0)}else if(r===`.`)n.dot=!0;else if(r===`[`){let r=Ht(e,t),i=e.slice(t+1,r);i.startsWith(`^`)&&(n.negated=!0),/\[:|.-./u.test(i.replace(/^\^?\]?/u,``))&&(n.regex=!0),t=r}}return n}function sg(e,t,n){return t.long||t.surrogate?e.wordEdge||(e.dot||e.negated)&&(e.regex||n)?!0:t.long&&e.negated:!1}var cg=new Map;function lg(e){return cg.has(e)||cg.set(e,RegExp(`[^\\x00-\\x7f${rt}${e.body(`word`)}]`,`u`)),cg.get(e)}function ug(e){throw new T(`feature`,`PCRE `+e,`PCRE ${e} is not supported`)}function dg(e){let t={captures:0,closed:new Set,names:new Map,stack:[],behind:0,references:!1,risky:!1},n=``;for(let r=0;r<e.length;){let i=e[r];if(i===`\\`){let i=hg(e,r,t,!1);n+=i.source,r=i.end;continue}if(i===`[`){let i=mg(e,r,t);n+=i.source,r=i.end;continue}if(i===`(`){let i=fg(e,r,t);n+=i.source,r=i.end;continue}if(i===`)`){let e=t.stack.pop();e?.capture&&t.closed.add(e.capture),e?.behind&&t.behind--}if(`*+?`.includes(i)&&(t.behind&&ug(`variable-length lookbehind`),e[r+1]===`+`&&ug(`possessive repetition`),i!==`+`&&(t.risky=!0)),i===`|`&&(t.risky=!0),i===`{`){let i=pg(e,r,t);n+=i.source,r=i.end;continue}n+=i===`]`||i===`}`?`\\`+i:i,r++}return t.references&&t.risky&&ug(`conditional backreference`),n}function fg(e,t,n){let r=!1,i=null,a=`(`;if(e[t+1]===`*`&&ug(`control verb`),e[t+1]===`?`){let o=/^\(\?(?:[:=!]|<[=!]|<([A-Za-z_]\w*)>)/u.exec(e.slice(t));if(o||ug(`group`),a=o[0],r=a===`(?<=`||a===`(?<!`,!o[1]&&a!==`(?:`&&(n.risky=!0),o[1]){if(i=++n.captures,n.names.has(o[1]))throw Error(`duplicate PCRE capture name`);n.names.set(o[1],i)}}else i=++n.captures;return r&&n.behind++,n.stack.push({capture:i,behind:r}),{source:a,end:t+a.length}}function pg(e,t,n){let r=/^\{(\d+)(?:,(\d*))?\}/u.exec(e.slice(t));if(!r)return/^\{[\d, \t]*\}/u.test(e.slice(t))&&ug(`repetition`),{source:`\\{`,end:t+1};if(n.behind&&r[2]!==void 0&&r[1]!==r[2]&&ug(`variable-length lookbehind`),Number(r[1])>65535||Number(r[2])>65535)throw Error(`PCRE repetition count exceeds 65535`);return Number(r[1])===0&&(n.risky=!0),e[t+r[0].length]===`+`&&ug(`possessive repetition`),{source:r[0],end:t+r[0].length}}function mg(e,t,n){let r=t+1,i=`[`;for(e[r]===`^`&&(i+=`^`,r++),e[r]===`]`&&(i+=`\\]`,r++);r<e.length&&e[r]!==`]`;)if(e[r]===`[`&&`:.=`.includes(e[r+1]??``)&&ug(`character class`),e[r]===`\\`){let t=hg(e,r,n,!0);i+=t.source,r=t.end}else i+=e[r]===`[`?`\\[`:e[r],r++;return{source:i+(e[r]===`]`?`]`:``),end:r+1}}function hg(e,t,n,r){let i=e[t+1];if(i===void 0)throw Error(`trailing backslash`);if(i===`Q`){let n=e.indexOf(`\\E`,t+2);return{source:RegExp.escape(e.slice(t+2,n<0?void 0:n)),end:n<0?e.length:n+2}}if(i===`E`)return{source:``,end:t+2};if(i===`x`||i===`0`||r&&/[1-7]/u.test(i))return gg(e,t);if(i===`a`||i===`e`)return{source:i===`a`?`\\u0007`:`\\u001B`,end:t+2};if(`AzZ`.includes(i)&&!r)return{source:i===`A`?`^`:`$`,end:t+2};if(/[1-9]/u.test(i)&&!r)return(/\d/u.test(e[t+2]??``)||!n.closed.has(Number(i)))&&ug(`forward or ambiguous backreference`),n.references=!0,{source:`\\`+i,end:t+2};if(i===`k`&&!r){let r=/^\\k<([A-Za-z_]\w*)>/u.exec(e.slice(t));return(!r||!n.closed.has(n.names.get(r[1])))&&ug(`named backreference`),n.references=!0,{source:r[0],end:t+r[0].length}}if(`dDsSwWfnrtbB`.includes(i))return{source:`\\`+i,end:t+2};/[A-Za-z0-9]/u.test(i)&&ug(`escape \\`+i);let a=String.fromCodePoint(e.codePointAt(t+1));return{source:RegExp.escape(a),end:t+1+a.length}}function gg(e,t){let n=e[t+1]===`x`,r=(n?/^\\x(?:\{([\da-fA-F]+)\}|([\da-fA-F]{1,2}))/u:/^\\([0-7]{1,3})/u).exec(e.slice(t));if(!r)throw Error(`invalid PCRE character escape`);let i=n?16:8,a=parseInt(r[1]??r[2],i);return Ir(a)||ug(`character escape`),{source:`\\u{${a.toString(16)}}`,end:t+r[0].length}}function _g(e,t){let n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`){let t=e[++i]??``;n+=r?a+t:vg(t);continue}if(r&&a===`[`){if(e[i+1]===`.`||e[i+1]===`=`)throw new T(`feature`,`regex collating or equivalence class`,`grep: collating and equivalence classes are not supported`);let r=Ut(e,i,{classes:t});if(r){n+=r.body,i=r.end-1;continue}}if(a===`[`&&!r){n+=`[`,r=!0,e[i+1]===`^`&&(n+=`^`,i++),e[i+1]===`]`&&(n+=`\\]`,i++);continue}a===`]`&&(r=!1),n+=a}return n}function vg(e){return"^$\\.*+?()[]{}|/bBsSwW<>`'123456789".includes(e)?`\\`+e:RegExp.escape(e)}function yg(e){for(let t=0;t<e.length;t++)if(e[t]===`\\`){if(`bBsSwW<>`.includes(e[++t]??``))return!0}else if(`.[*+?{`.includes(e[t]))return!0;return!1}function bg(e,t=`js`,n=_n(N)){let r=t===`extent`,i=t===`marked`,a=r?{b:`\\y`}:i?{...xg(n),...Zh(n)}:xg(n),o=``,s=!1;for(let t=0;t<e.length;t++){let n=e[t];if(n===`\\`){let i=e[++t];o+=!s&&Object.hasOwn(a,i)?a[i]:n+i,!r&&!s&&/[1-9]/u.test(i)&&/\d/u.test(e[t+1]??``)&&(o+=`(?:)`)}else if(i&&n===`[`){let n=Pg(e,t);o+=Qh(e.slice(t,n+1)),t=n}else i&&n===`.`?o+=`[^${rt}]`:(n===`[`&&(s=!0),n===`]`&&(s=!1),o+=n)}return o}function xg(e){let t=e.assertions();return{"<":t[`<`],">":t[`>`],b:t.boundary,B:t.inside,w:t.word,W:t.nonWord,s:t.space,S:t.nonSpace,"`":`^`,"'":`$`}}var Sg=e=>e.plain??=new RegExp(e.source,e.flags);function Cg(e){return e.markedSource===void 0?Sg(e):(e.marked??=new RegExp(zr(bg(e.markedSource,`marked`,e.tables)),e.flags),e.marked)}var wg=/^\{(?=\d|,)(\d*)(?:,(\d*))?\}/u,Tg=/^\\\{(?=\d|,)(\d*)(?:,(\d*))?\\\}/u;function Eg(e,t,n){let r=(n?wg:Tg).exec(e.slice(t));if(!r&&!n)throw Error(`invalid repetition count`);r&&Vt(Number(r[1]),r[2]===void 0||r[2]===``?void 0:Number(r[2]))}var Dg={__proto__:null,"*":{min:0,max:1/0},"+":{min:1,max:1/0},"?":{min:0,max:1}};function Og(e){if(Dg[e])return Dg[e];let t=wg.exec(e),n=Number(t[1]);return{min:n,max:t[2]===void 0?n:t[2]===``?1/0:Number(t[2])}}var kg=(e,t)=>e===0||t===0?0:e===1/0||t===1/0?1/0:e*t;function Ag(e,t){let n=Math.max(t.min,1);if(n>t.max)return{min:0,max:0};if(e.min>0&&(t.min===0&&e.min>1||e.max!==1/0&&t.max>n&&(n+1)*e.min>n*e.max+1))return null;let r=kg(t.max,e.max);return r!==1/0&&r>Bt?null:{min:kg(t.min,e.min),max:r}}function jg(e){return e.max===1/0?e.min===0?`*`:e.min===1?`+`:`{${e.min},}`:e.min===0&&e.max===1?`?`:e.min===e.max?`{${e.min}}`:`{${e.min},${e.max}}`}var Mg=e=>!e.startsWith(`(`)&&!/^\\[1-9]/u.test(e);function Ng(e,t){if(t.length===1)return e+jg(t[0].bounds);let n=t[0].bounds,r=null;for(let i=1;i<t.length;i++){let{bounds:a,text:o}=t[i],s=r===null?Ag(n,a):null;if(s){n=s;continue}if(!(r===null&&n.min===n.max&&Mg(e))&&a.max>1)throw Error(`stacked quantifier needs ambiguous nesting`);r=`(?:${r??e+jg(n)})${o}`}return r??e+jg(n)}function Pg(e,t){let n=t+1;for(e[n]===`^`&&n++;n<e.length;n++){if(e[n]===`\\`){n++;continue}if(e[n]===`]`)return n}return e.length-1}function Fg(e){let t=``,n=-1,r=-1,i=[],a=()=>{i.length>0&&(t=t.slice(0,n)+Ng(t.slice(n,r),i)),i=[]},o=e=>{a(),n=t.length,r=-1,t+=e},s=[];for(let c=0;c<e.length;c++){let l=e[c];if(l===`\\`){o(l+(e[++c]??``));continue}if(l===`[`){let t=Pg(e,c);o(e.slice(c,t+1)),c=t;continue}if(l===`(`){a(),s.push(t.length),n=-1,t+=l;continue}if(l===`)`){a(),t+=l,n=s.pop()??-1,r=-1;continue}if(l===`|`||l===`^`||l===`$`){a(),t+=l,n=-1;continue}let u=l===`{`?wg.exec(e.slice(c)):null;if(l===`*`||l===`+`||l===`?`||u){let e=u?u[0]:l;if(c+=e.length-1,n<0){t+=e;continue}i.length===0&&(r=t.length),i.push({bounds:Og(e),text:e});continue}o(l)}return a(),t}function Ig(e,t,n=!1){let r=-1;for(let i=0;i<e.length;i++){let a=i<=r,o=e[i];if(o===`\\`){let n=e[++i];if(n===void 0)throw Error(`trailing backslash`);if(a||n&&`dDxXuUpPkKcC`.includes(n))throw new T(`feature`,`regex escape`,`grep: this regex escape is not supported with GNU semantics`);!t&&n===`{`&&Eg(e,i-1,!1)}else if(o===`[`&&!a)r=Ht(e,i,n);else{if(a)continue;if(t&&o===`{`)Eg(e,i,!0);else if(t&&o===`(`&&e[i+1]===`?`)throw new T(`feature`,`regex extension`,`grep: ECMAScript group extensions are not supported in ERE`)}}}function Lg(e){for(let t=0;t<e.length;t++)if(e[t]===`\\`&&/[1-9]/u.test(e[++t]??``))return!0;return!1}function Rg(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===`\\`){n++;continue}if(t){r===`]`&&(t=!1);continue}if(r===`.`||r===`[`&&(t=!0,e[n+1]===`^`))return!0}return!1}function zg(e,t,n=N){let r=_n(n),i=[],a=t.has(`x`),o=t.has(`w`)&&!a;if(t.has(`P`)&&new Set(e).size>1)return{error:x(`grep: -P only supports a single pattern`,2)};for(let n of e){let e=!t.has(`F`)&&!t.has(`P`);e&&Ig(n,t.has(`E`),r.multibyte);let s=e&&Lg(n),c=t.has(`i`)&&!t.has(`P`)&&!s,l=t.has(`i`)&&!c?`isu`:`su`,u;if(t.has(`F`))u=c?Rh(n,r):RegExp.escape(n);else if(t.has(`P`))u=dg(n);else if(t.has(`E`))u=_g(c?Lh(n,r):n,r);else{let e=Mh(c?Lh(n,r):n,r);if(e.error)return{error:x(`grep: ${e.error}`,2)};u=e.source}let d=u;if(e&&Ph(d))return{error:C(`feature`,`grep`,`conditional backreference`,`grep: backreferences with conditional or repeated-empty captures are not supported`,2)};o&&(u=`(?<!${r.assertions().word})(?:${u})(?!${r.assertions().word})`),a&&(u=`^(?:${u})$`);try{let f=e?Fg(u):u,p=new RegExp(zr(e?bg(f,`js`,r):u),l);e&&Object.assign(p,{markedSource:f,tables:r,shape:og(n,s)}),p.pcre=t.has(`P`),p.localeSensitive=p.pcre?t.has(`i`)||o||yg(d)||/\\[dD]/u.test(d):t.has(`i`)&&s,p.folded=c,p.extendedC=c&&cn.test(n),p.unicodePattern=/[\u0080-\u{10FFFF}]/u.test(n),p.wellFormed=n.isWellFormed(),p.emptyWord=o&&!p.pcre&&new RegExp(e?bg(Fg(d),`js`,r):d,l).test(``),p.anyCharacter=Rg(d);let m=Yh(n,t);if(m?.isWellFormed()&&(c||!t.has(`i`))&&(p.literal={pattern:m,tables:r}),t.has(`o`)&&e&&!a){if(o||/\\[1-9]|\(\?/u.test(u))return{error:C(`feature`,`grep`,`-o regex extent`,`grep: only-matching with backreferences, lookarounds or word constraints is not supported`,2)};try{p.extent=new Eh(bg(u,`extent`,r),!1,null,r)}catch{return{error:C(`feature`,`grep`,`-o regex extent`,`grep: POSIX match extent for this pattern is not supported`,2)}}}i.push(p)}catch(e){return!t.has(`P`)&&Bg(d,t)?{error:C(`feature`,`grep`,`GNU regex syntax`,`grep: this GNU regular expression cannot be represented by the JavaScript matcher`,2)}:{error:x(`grep: invalid pattern (${t.has(`F`)?`fixed-string /${l}`:t.has(`P`)?`PCRE subset /${l}`:t.has(`E`)?`ERE / ECMAScript /${l}`:`BRE /${l}`}): ${e.message}`,2)}}}return{res:i}}function Bg(e,t){if(!t.has(`E`)&&/(?<!\\)\{(?!\d*(?:,\d*)?\})/u.test(e))return!1;try{return fh(bg(e,`extent`)),!0}catch(e){return!!e.gap}}function Vg(e,t,n=N,r=!1){let i=(e,t)=>C(`feature`,`grep`,e,`grep: ${t}`,2);if(e.marked){if(t.some(e=>e.pcre))return i(`binary input`,`PCRE matching over bytes that spell no text is not supported`);if(t.some(e=>!e.wellFormed))return i(`unpaired surrogate`,`a pattern holding an unpaired UTF-16 surrogate cannot be matched against bytes`)}if(t.some(e=>e.emptyWord)&&lg(_n(n)).test(e.content))return i(`empty word match`,`-w with a pattern that can match nothing, over non-ASCII text that is not word characters, is not supported`);let a=e.marked?t.filter(e=>e.shape&&(e.shape.wordEdge||e.shape.dot||e.shape.negated)):[],o=a.length?ag(e.content):null;if(a.some(e=>sg(e.shape,o,r)))return i(`binary input`,`matching this pattern beside bytes glibc reads as a character is not supported`);let s=()=>t.some(e=>e.unicodePattern)||/[\u0080-\u{10FFFF}]/u.test(e.content);if(n!==N&&t.some(e=>e.localeSensitive||e.folded||e.anyCharacter)&&s())return i(`locale`,`matching non-ASCII text in the ${n} locale is not supported`);if(t.some(e=>e.extendedC)||t.some(e=>e.folded)&&cn.test(e.content))return i(`locale-sensitive regex`,`case-insensitive matching over Cyrillic Extended-C letters is not supported`);let c=t.filter(e=>e.localeSensitive);return c.length===0||!s()?null:i(`non-ASCII regex semantics`,`${c.some(e=>e.pcre)?`PCRE matching`:`case-insensitive matching with backreferences`} on non-ASCII input is not supported`)}var Hg=/[*?[]/u,Ug=/\P{ASCII}/u,Wg=/[.+*?^${}()|[\]\\/]/u;function Gg(e,t={}){try{return Kg(e,t)}catch(e){throw e instanceof T?e:new T(`feature`,`glob pattern`,`unsupported glob pattern: ${e.message}`)}}function Kg(e,t){let n=`^`,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length){let r=e[i+1];n+=qg(r,t.ignoreCase),i++}else if(a===`*`){for(;e[i+1]===`*`;)i++;n+=`.*`}else if(a===`?`)n+=`.`;else if(a===`[`){let a=Xg(e,i,t);if(a?.voided)return/^(?!)$/u;a?(n+=a.source,i=a.end,r||=a.nonAsciiRange):n+=`\\[`}else n+=qg(a,t.ignoreCase)}return Yg(RegExp(n+`(?![\\s\\S])`,`us`),e,t,r)}function qg(e,t){return t&&/[a-zA-Z]/u.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Wg.test(e)?`\\`+e:e}function Jg(e,t,n){let r=RegExp(`[${e}]`,`ui`),i=RegExp(`[${t}]`,`u`),a=``;for(let e=0;e<128;e++){let t=String.fromCodePoint(e);(r.test(t)||i.test(t))&&(a+=`\\x`+e.toString(16).padStart(2,`0`))}return`[${n?`^`:``}${a}]`}function Yg(e,t,n,r){let i=/[?[]/u.test(t),a=Ug.test(t);return{test(t){if(r||n.ignoreCase&&a||(i||n.ignoreCase)&&Ug.test(t))throw new T(`feature`,`non-ASCII glob matching`,`locale-dependent glob matching of non-ASCII names is not supported`);return e.test(t)}}}function Xg(e,t,n){let{ignoreCase:r}=n,i=t+1,a=!1;(e[i]===`!`||e[i]===`^`)&&(a=!0,i++);let o=``,s=``,c=!1,l=!1,u=!1,d=!1,f=``,p=0,m=``,h=0;for(e[i]===`]`&&(o+=`\\]`,i++,c=!0,f=`]`);i<e.length&&e[i]!==`]`;i++){let t=e[i];if(t===`[`&&(e[i+1]===`.`||e[i+1]===`=`))throw new T(`feature`,`glob collating or equivalence class`,`glob collating symbols and equivalence classes are not supported`);if(t===`[`&&e[i+1]===`:`){let t=n.bash?Zg(e,i):Ut(e,i,{unknown:`empty`});if(t){if(!n.bash&&t.body===``)throw new T(`feature`,`glob character class`,`unknown POSIX classes in command filename patterns are not supported`);l&&(d=!0),r?s+=t.body:o+=t.body,i=t.end-1,c=!1,l=!1;continue}if(n.bash)continue}if(t===`-`&&c)h=p,m=f,o+=`-`,l=!0,c=!1;else{let n=t===`\\`&&i+1<e.length?e[++i]:t;p=o.length,f=n,l&&Ug.test(m+n)&&(u=!0),l&&n.codePointAt(0)<m.codePointAt(0)?o=o.slice(0,h):o+=/[\]\\^[-]/u.test(n)?`\\${n}`:n,c=!l,l=!1}}return i>=e.length?null:d?{voided:!0,end:i}:{source:r?Jg(o,s,a):`[${a?`^`:``}${o}]`,end:i,nonAsciiRange:u}}function Zg(e,t){let n=e.indexOf(`:]`,t+2);if(n===-1)return null;let r=e.slice(t+2,n).replace(/\\([\s\S]|$)/gu,`$1`);return{body:r===`ascii`?`\\x00-\\x7F`:Rt[r]??``,end:n+2}}function Qg(e,t){return Gg(t).test(e)}function $g(e){let{value:t,mask:n}=e;if(n===null)return Hg.test(t);for(let e=0;e<t.length;e++)if(n[e]===`0`&&Hg.test(t[e]))return!0;return!1}function e_(e){let t=t=>!e.mask||e.mask[t]===`0`;for(let n=0;n<e.value.length;n++){let r=e.value[n];if(t(n)){if(r===`\\`)n++;else if(r===`[`)n=t_(e,n,t);else if(/[?*+@!]/u.test(r)&&e.value[n+1]===`(`&&t(n+1))return!0}}return!1}function t_(e,t,n){let{value:r}=e,i=t+1;for(/[!^]/u.test(r[i])&&n(i)&&i++,r[i]===`]`&&n(i)&&i++;i<r.length;i++)if(n(i)){if(r[i]===`\\`)i++;else{if(r[i]===`]`)return i;if(r[i]===`[`&&/[.:=]/u.test(r[i+1])&&n(i+1)){let e=r.indexOf(r[i+1]+`]`,i+2);e!==-1&&(i=e+1)}}}return t}var n_=/[*?[\]^!\\:.=-]/u;function r_(e){let{value:t,mask:n}=e;if(n===null)return t;let r=``;for(let e=0;e<t.length;e++){let i=t[e];r+=n[e]!==`0`&&n_.test(i)?`\\`+i:i}return r}function i_(e,t){let n=r_(e),r=n.match(/[^/]+|\/+/gu)??[],i=Sn(),a=new Set,o=[{path:``,marks:null}],s;try{for(let e=0;e<r.length;e++){let n=r[e];if(n.startsWith(`/`)||!Hg.test(n)){o=o.map(e=>({...e,path:e.path+o_(n)}));continue}o=s_(o,n,e===r.length-1,t,a)}let e=o.filter(e=>k(t.cwd,e.path,t.fs,{follow:!1}).path!==null);for(let t of e)for(let e of t.marks??[])i.add(e);return s=e.filter(e=>e.marks===null).map(e=>e.path).sort(M),s}finally{if(s===void 0)for(let e of a)i.add(e);i.emit(t.notes,`glob`,``,` while expanding ${JSON.stringify(n)}`),s?.length===0&&r.some(a_)&&t.notes.add(`glob: no paths matched ${JSON.stringify(n)}; the pattern was left literal.`)}}function a_(e){for(let t=0;t<e.length;t++)if(e[t]===`\\`)t++;else{if(e[t]===`*`||e[t]===`?`)return!0;if(e[t]===`[`)try{if(Xg(e,t,{bash:!0}))return!0}catch{return!0}}return!1}var o_=e=>e.replace(/\\(.)/gu,`$1`);function s_(e,t,n,r,i){let a=Gg(t,{bash:!0}),o=t.startsWith(`.`)||t.startsWith(`\\.`),s=[];for(let t of e){let e=k(r.cwd,t.path||`.`,r.fs).path;if(!r.fs.isDir(e))continue;let{dirs:c,files:l,links:u}=r.fs.listDir(e),d=n?u:u.filter(t=>r.fs.isDir(k(e,t,r.fs).path));for(let r of n?[...c,...l,...d]:[...c,...d]){let n=!o&&r.startsWith(`.`);if(!n&&t.marks===null)a.test(r)&&s.push({path:t.path+r,marks:null});else if(c_(a,r)){if(!n){s.push({path:t.path+r,marks:t.marks});continue}let a=O(e,r);i.add(a),s.push({path:t.path+r,marks:[...t.marks??[],a]})}}}return s}function c_(e,t){try{return e.test(t)}catch{return!0}}var l_=(e,t)=>e.some(e=>e.test(t)),u_=()=>({stdout:``,stderr:``,exitCode:1}),d_=e=>e.failure!==void 0,f_=e=>e.name??`(standard input)`,p_=e=>e.binaryLine===void 0?e.content:e.content.replaceAll(`\0`,`
|
|
146
|
+
`),m_=(e,t)=>t.map(e.marked?Cg:Sg);function h_(e,t,n,r){if(r===0)return 0;let i=m_(e,t),a=p_(e),o=0;if(r===1/0){for(let e of An(a))l_(i,e)!==n&&o++;return o}let s=0;for(;s<a.length&&o<r;){let e=a.indexOf(`
|
|
147
|
+
`,s);e<0&&(e=a.length),l_(i,a.slice(s,e))!==n&&o++,s=e+1}return o}function g_(){let e=[],t=(t,n)=>{let r=e.at(-1);r?.fd===t&&r.text!==void 0?r.text+=n:e.push({fd:t,text:n})};return{events:e,out(e){e&&t(1,e)},lines(t,n,r){if(!n||!it.test(t))return this.out(t);if(!r.isWellFormed())throw new T(`feature`,`unpaired surrogate`,`unpaired UTF-16 surrogates cannot be encoded as UTF-8`);e.push({fd:1,bytes:ot(t)})},err(e){e&&t(2,e)}}}function __(e,t){let n=t=>e.filter(e=>e.fd===t&&e.text!==void 0).map(e=>e.text).join(``);return{stdout:e.some(e=>e.bytes!==void 0)?``:n(1),stderr:n(2),exitCode:+!t,events:e}}function v_(e,t,n){let r={used:!1,write:g_(),selected:!1};for(let i of e)d_(i)?r.write.err(i.failure):y_(i,t,n,r);return __(r.write.events,r.selected)}function y_(e,t,n,r){if(e.binaryLine===0)return b_(e,t,n,r);let i=p_(e),a={input:e,opts:n,run:r,lines:An(i),res:t,tests:m_(e,t),bufbeg:0,name:n.showName??e.recursive?f_(e):null,out:[],lastout:null,pending:0,outleft:n.max??1/0,quiet:!1,heldBack:!1},o=a.lines.length,s=o>0&&!i.endsWith(`
|
|
148
|
+
`)?o-1:o,c=S_(a,0,s);if(a.pending>0&&w_(a,s),s<o&&(a.outleft!==0||a.pending!==0)&&!a.quiet){let e=s;for(let t=0;t<n.before&&e>0&&e!==a.lastout;t++)e--;e!==a.lastout&&(a.lastout=null),a.bufbeg=e,a.outleft>0&&(c+=S_(a,s,o)),a.pending>0&&w_(a,o)}r.write.lines(Mn(a.out),e.marked,a.name??``),c>0&&(r.selected=!0),(a.heldBack||a.quiet)&&x_(e,n,r)}function b_(e,t,n,r){h_(e,t,n.invert,1)!==0&&(r.used=r.selected=!0,x_(e,n,r))}function x_(e,t,n){t.binaryFiles===`binary`&&n.write.err(`grep: ${f_(e)}: binary file matches
|
|
149
|
+
`)}function S_(e,t,n){let{invert:r}=e.opts,i=e.input.binaryLine??1/0,a=0;for(let o=t;o<n;){let t=o;for(;t<n&&!l_(e.tests,e.lines[t]);)t++;if(t===n&&!r)break;if(!r||o<t){if(r&&o<i&&t>i){if(a+=C_(e,o,i),e.outleft===0)break;o=i}if(!e.quiet&&(r?o:t)>=i&&(e.pending>0&&w_(e,i),e.quiet=!0),a+=r?C_(e,o,t):C_(e,t,t+1),e.outleft===0||e.quiet)break}o=t+1}return a}function C_(e,t,n){let{before:r,after:i,hasContext:a,invert:o}=e.opts;!e.quiet&&e.pending>0&&w_(e,t);let s=t;if(!e.quiet){let n=e.lastout??e.bufbeg;for(let e=0;e<r;e++)s>n&&s--;for(a&&e.run.used&&s!==e.lastout&&e.out.push(`--`);s<t;s++)T_(e,s,!1)}let c;if(o)for(c=0;s<n&&c<e.outleft;c++,s++)e.quiet||T_(e,s,!0);else e.quiet||T_(e,t,!0),c=1;return e.pending=e.quiet?0:i,e.run.used=!0,e.outleft-=c,c}function w_(e,t){for(e.lastout??=e.bufbeg;e.pending>0&&e.lastout<t;e.pending--)T_(e,e.lastout,!1)}function T_(e,t,n){let r=e.lines[t];if(e.opts.only)n!==e.opts.invert&&E_(e,r,t,n);else{if(e.input.marked&&e.opts.binaryFiles!==`text`&&it.test(r)&&rg(r)){e.heldBack=!0;return}e.out.push(k_(e,r,t,n))}e.lastout=t+1}function E_(e,t,n,r){let i=e.input.marked&&it.test(t),a=0;for(;a<t.length;){let o=null;for(let n=0;n<e.res.length;n++){let r=O_(e.res[n],e.tests[n],t,a,i);r&&(!o||r.start<o.start||r.start===o.start&&r.end>o.end)&&(o=r)}if(!o)break;if(o.end===o.start){a=o.end+Rr(t,o.end);continue}e.out.push(k_(e,t.slice(o.start,o.end),n,r)),a=o.end}}var D_=new WeakMap;function O_(e,t,n,r,i){if(e.extent)return(i?e.markedExtent??=$h(e.extent):e.extent).search(n,r);let a=D_.get(t);a||D_.set(t,a=new RegExp(t.source,t.flags+`g`)),a.lastIndex=r;let o=a.exec(n);if(o&&o[0]===``&&e.pcre)throw new T(`feature`,`PCRE empty match extent`,`only-matching with empty PCRE matches is not supported`);return o?{start:o.index,end:o.index+o[0].length}:null}function k_(e,t,n,r){let i=r?`:`:`-`;return(e.name===null?``:e.name+i)+(e.opts.showLine?n+1+i:``)+t}function A_(e,t,{mode:n,invert:r,showName:i,max:a=1/0}){let o=g_(),s=!1,c=n===`c`?a:Math.min(1,a);for(let a of e){if(d_(a)){o.err(a.failure);continue}let e=h_(a,t,r,c);e>0&&(s=!0),n===`c`?o.out((i??a.recursive?f_(a)+`:`+e:String(e))+`
|
|
150
|
+
`):e>0==(n===`l`)&&o.out(f_(a)+`
|
|
151
|
+
`)}return __(o.events,s)}function j_(e,t,n){let r=e.order.filter(e=>[`e`,`f`,`file`].includes(e.name)),i=e.positional;if(r.length===0)return i.length?{patterns:i[0].split(`
|
|
152
|
+
`),rest:i.slice(1),stdin:t}:null;let a=new Set;for(let{name:e,value:i}of r){if(e===`e`){for(let e of i.split(`
|
|
153
|
+
`))a.add(e);continue}let r=In(`grep`,[i],n,t);if(r.failed)return{error:x(r.stderr,2)};let o=r.inputs[0];for(let e of An(o.content))a.add(e);o.shared&&(t=``)}return{patterns:[...a],rest:i,stdin:t}}var M_=`[-i] [-a|-I] [-s] [-v] [-n] [-r|-R] [-w] [-x] [-o] [-E|-F|-G|-P] [-l] [-L] [-c] [-q] [-m N] [-h] [-H] [-A N] [-B N] [-C N] [--include=GLOB] [--exclude=GLOB] [--exclude-dir=GLOB]`,N_=`grep ${M_} PATTERN [PATH...]
|
|
154
|
+
or: grep ${M_} [-e PATTERN] [-f FILE] ... [PATH...]`,P_={short:[`i`,`v`,`n`,`r`,`R`,`l`,`L`,`c`,`w`,`x`,`h`,`H`,`o`,`E`,`F`,`G`,`P`,`q`,`I`,`a`,`s`],long:[`text`,`no-messages`],valueShort:[`A`,`B`,`C`,`m`],repeatable:[`e`,`f`,`file`,`include`,`exclude`,`exclude-dir`]};function F_(e){try{return U(e,P_).flags.has(`q`)}catch{return!1}}function I_(e,t,n){let r;try{r=U(t,P_)}catch(e){return Ke(e,`grep`,`grep: ${e.message}`,2)}let{flags:i,values:a}=r,o=j_(r,e,n);if(!o)return We(N_,2);if(o.error)return o.error;let{patterns:s,rest:c}=o;e=o.stdin;let l=q_(i);if(l)return l;let u;try{u=zg(s,i,n.locale)}catch(e){return Ke(e,`grep`,`grep: ${e.message}`,2)}if(u.error)return u.error;let d=Y_(a);if(d.error)return d.error;if((d.max===0||J_(s,i))&&(!i.has(`L`)||i.has(`q`)))return u_();if(d.max!==0&&n.stdinFile&&(i.has(`q`)||i.has(`l`)||i.has(`L`)||a.has(`m`))&&(c.length===0||c.includes(`-`)))return C(`feature`,`grep`,`partial stdin reads`,`grep: early termination on shared file input is not supported`,2);let f=i.has(`r`)||i.has(`R`),p=ev(r,n),m=r.order.findLast(e=>[`a`,`I`,`text`].includes(e.name))?.name;p.binaryFiles=m===`a`||m===`text`?`text`:m===`I`?`without-match`:`binary`,p.silent=i.has(`s`)||i.has(`no-messages`),p.follow=i.has(`R`);try{return L_(e,c,n,f,p,u,i,d)}finally{K_(p,n.notes)}}function L_(e,t,n,r,i,a,o,s){if(o.has(`q`))return R_(e,t,n,r,i,a.res,o.has(`v`));let c=Z_(r,e,t,n,i);s.max===0&&I(n,e);let l=o.has(`v`),u=[`l`,`L`,`c`].find(e=>o.has(e)),d=c.items;i.name.length>0&&(d=d.filter(e=>d_(e)||nv(e,i)));let f=null;if(s.max!==0&&(d=d.flatMap(e=>{if(d_(e))return[e];let t=z_(e,i,a.res,l,n),r=Vg(t,a.res,n.locale,!u&&o.has(`o`))??(u?null:U_(t,a.res,l,s.after)??W_(t,s,o,i,n));return f??=r,r?[]:[t]}),f&&d.every(d_)))return f;let p={showName:X_(o,t.length),invert:l,showLine:o.has(`n`),only:o.has(`o`),binaryFiles:i.binaryFiles,...s},m;try{m=u?A_(d,a.res,{...p,mode:u}):v_(d,a.res,p)}catch(e){return e instanceof W&&e.gap?C(`feature`,`grep`,e.gap,`grep: ${e.message}`,2):Ke(e,`grep`,`grep: ${e.message}`,2)}if(f){let e=S(f);return w({...m,stderr:m.stderr+f.stderr,exitCode:2,events:[...m.events,{fd:2,text:f.stderr}]},e.kind,e.command,e.detail,e.message)}return c.failed?{...m,exitCode:2}:m}function R_(e,t,n,r,i,a,o){let s=``,c=!1;for(let l of t.length?t.map(e=>[e]):[[]]){let t=Z_(r,e,l,n,i);c||=t.failed,(l.includes(`-`)||l.includes(`/dev/stdin`)&&!n.stdinFile)&&(e=``);for(let e of t.items){if(d_(e)){s+=e.failure;continue}if(!nv(e,i))continue;let t=z_(e,i,a,o,n),r=Vg(t,a,n.locale);if(r)return r.stderr=s+r.stderr,r;if(h_(t,a,o,1)>0)return{stdout:``,stderr:s,exitCode:0}}}return{stdout:``,stderr:s,exitCode:c?2:1}}function z_(e,t,n,r,i){let a=H_(e,i),o=t.binaryFiles===`without-match`,s=t.binaryFiles===`text`;if(e.content===void 0){if(!r&&Hh(e.bytes,n))return{...e,content:``};let i=s?-1:e.bytes.indexOf(0);if(i>=0&&o)return G_(e,t,i>=a);let c={...e,content:et(e.bytes),marked:!0};return i<0?c:B_(c,e.bytes,i,a)}let c=s?-1:e.content.indexOf(`\0`);if(c<0)return e;let l=p(e.content.slice(0,Math.min(c,a)));return o?G_(e,t,l.length>=a):B_(e,l,l.length,a)}function B_(e,t,n,r){if(n<r)return{...e,binaryLine:0};let i=e.content.lastIndexOf(`
|
|
155
|
+
`,e.content.indexOf(`\0`))+1;return{...e,lineStart:i,readLines:jn(t.subarray(0,r)),binaryLine:jn(e.content.slice(0,i))}}var V_=e=>e.name===null||e.name===`/dev/stdin`,H_=(e,t)=>V_(e)&&!t.stdinFile?65536:98304;function U_(e,t,n,r){if(e.readLines===void 0)return null;let i=An(e.content.slice(0,e.lineStart)),a=m_(e,t),o=(e,t)=>i.slice(e,t).some(e=>l_(a,e)!==n);return!o(e.readLines)&&!(r>0&&o(Math.max(0,e.readLines-r),e.readLines))?null:C(`feature`,`grep`,`late binary detection`,`grep: binary detection after the initial input buffer is not supported`,2)}function W_(e,t,n,r,i){return!e.marked||e.binaryLine!==void 0||!t.hasContext||n.has(`o`)||r.binaryFiles===`text`||e.bytes.length<=H_(e,i)?null:C(`feature`,`grep`,`binary context across reads`,`grep: context around lines held back past the first read is not supported`,2)}function G_(e,t,n){if(n)throw new T(`feature`,`late binary detection`,`grep: binary detection after the initial input buffer is not supported`);let r=V_(e)?t.stdinPath:O(t.cwd,e.name);return r?t.binary.add(r):t.binaryStdin=!0,{...e,content:``}}function K_(e,t){let n=`Binary input is treated as text with -a.`;On(t,{command:`grep`,action:`skipped`,noun:[`binary file`,`binary files`],paths:e.binary,explanation:n}),e.binaryStdin&&t.add(`grep: skipped binary standard input. `+n),On(t,{command:`grep`,action:`excluded`,noun:[`entry`,`entries`],paths:e.excluded,context:` by --include/--exclude/--exclude-dir rules`})}function q_(e){if(e.has(`h`)&&e.has(`H`))return C(`option`,`grep`,`-h -H`,`grep: combining -h and -H is not supported`);let t=[`l`,`L`,`c`].filter(t=>e.has(t));if(t.length>1)return C(`option`,`grep`,`combined output modes`,`grep: ${t.map(e=>`-${e}`).join(` / `)} are mutually exclusive`);let n=[`E`,`F`,`G`,`P`].filter(t=>e.has(t));return n.length>1?x(`grep: ${n.map(e=>`-${e}`).join(` / `)} are mutually exclusive`,2):null}function J_(e,t){return e.length===0?!t.has(`v`):t.has(`v`)&&!t.has(`x`)&&!t.has(`w`)&&e.every(e=>e===``)}function Y_(e){let t={A:0,B:0,m:void 0};for(let n of[`C`,`A`,`B`,`m`]){if(!e.has(n))continue;let r=qn(e.get(n),`grep: -`+n);if(r.error)return n===`m`&&(r.error.exitCode=2),r;n===`C`?t.A=t.B=r.value:t[n]=r.value}return{after:t.A,before:t.B,max:t.m,hasContext:[`A`,`B`,`C`].some(t=>e.has(t))}}function X_(e,t){return e.has(`h`)?!1:e.has(`H`)||t>1?!0:void 0}function Z_(e,t,n,r,i){let a=e=>i.silent?[]:[{failure:e}];if(!e){let e=Vn(`grep`,n,t,r,{read:`maybe-text`});return{items:e.entries.flatMap(e=>e.kind===`file`?[e.name===`-`?{...e,name:null}:e]:a(e.failure)),failed:e.failed}}let o=[],s=!1,c=e=>{o.push(...a(e)),s=!0};for(let e of n.length?n:[`.`]){if(e===`-`||e===`/dev/stdin`||e===`/dev/null`){let n=In(`grep`,[e],r,t);o.push(...n.inputs.map(t=>({...t,name:e===`-`?null:e}))),(e===`-`||e===`/dev/stdin`)&&(t=``);continue}let{path:a,error:s}=P(r,`grep`,e);if(r.fs.isFile(a)){o.push({name:e,...$_(r,a)});continue}if(s){c(`grep: ${e}: ${s}
|
|
156
|
+
`);continue}if(iv(e,i.dir)){i.excluded.add(a);continue}let l=e=>e===a||i.dir.length===0||!tv(i.dir,mt(e))||(i.excluded.add(e),!1);for(let t of yt(r.fs,a,1/0,l)){if(t.kind===`link`){if(!i.follow)continue;let s=Q_(t.path,av(n.length?e:``,a,t.path),r,i);s?.input&&o.push(s.input),s?.error&&c(s.error);continue}if(t.kind!==`file`)continue;let s=t.path;o.push({name:av(n.length?e:``,a,s),...$_(r,s),recursive:!0})}}return{items:o,failed:s}}function Q_(e,t,n,r){let i=k(n.cwd,e,n.fs),a=n.fs.isDir(i.path);if(!(a?r.dir.length===0||!tv(r.dir,mt(e)):rv(mt(e),r.name)))return r.excluded.add(e),null;if(a)throw new T(`option`,`-R`,`following a symbolic link to a directory is not supported: ${t}`);return i.error?{error:`grep: ${t}: ${i.error}
|
|
157
|
+
`}:{input:{name:t,...$_(n,i.path),recursive:!0}}}function $_(e,t){let{text:n,bytes:r}=Bn(e.fs,t);return n===void 0?{content:void 0,bytes:r}:{content:n}}function ev(e,t){return{name:e.order.filter(e=>e.name===`include`||e.name===`exclude`).map(e=>({include:e.name===`include`,re:Gg(e.value)})),dir:(e.values.get(`exclude-dir`)??[]).map(e=>Gg(e)),binary:new Set,excluded:new Set,cwd:t.cwd,stdinPath:t.stdinHandle?.path}}function tv(e,t){return e.some(e=>e.test(t))}function nv(e,t){return e.name===null||rv(mt(e.name),t.name)?!0:(t.excluded.add(O(t.cwd,e.name)),!1)}function rv(e,t){if(t.length===0)return!0;let n=null;for(let r of t)r.re.test(e)&&(n=r);return n?n.include:!t[0].include}function iv(e,t){return t.length===0||e.endsWith(`/`)?!1:tv(t,e.slice(e.lastIndexOf(`/`)+1))}function av(e,t,n){let r=gt(t,n);return e===``?r:e.endsWith(`/`)?e+r:e+`/`+r}var ov=(e,t)=>C(`feature`,`rg`,e,`rg: ${t}`,2);function sv(e,t,n){let r=S(e)??e.note;return r?C(r.kind,`rg`,r.detail,t,2):C(n,`rg`,e.detail??t.replace(/^rg: /u,``),t,2)}function cv(e,t,n){let r,i;try{i=U(t,zm),r=Um(i)}catch(e){return sv(e,e.message.startsWith(`rg: `)?e.message:`rg: ${e.message}`,`option`)}let a=[...i.positional];if(!r.patterns.length){if(!a.length)return ov(`usage`,`a pattern is required`);r.patterns.push(a.shift())}try{Xm(r.patterns,r.literal)}catch(e){return sv(e,e.message,`feature`)}let o=!a.length&&n.stdinPiped?{roots:[],recursive:!1,stdin:!0}:pv(a,n,r.hidden);if(o.error)return o.error;if(!i.flags.has(`no-ignore`)&&!r.unrestricted&&o.recursive){let e=mv(o.roots,n);if(e)return ov(`ignore rules`,`${JSON.stringify(e)} would change which files are searched, and its rules are not implemented`)}let s=lv(a,o,r,n),c=r.text?null:gv(a,n);if(c)return ov(`named binary file`,`${JSON.stringify(c)} is binary, and reporting a binary match is not supported`);let l=uv(s,r,n)??(o.stdin?fv(r,n):null);return l?ov(l.detail,l.message):(o.stdin||a.length?1:s.length)===0?{stdout:``,exitCode:2,stderr:`rg: No files were searched, which means ripgrep probably applied a filter you didn't expect.
|
|
158
158
|
Running with --debug will show why files are being skipped.
|
|
159
|
-
`}:
|
|
160
|
-
`).some(
|
|
161
|
-
`).filter(
|
|
159
|
+
`}:_v(e,r,a,o,n)}function lv(e,t,n,r){let i=e.map(e=>k(r.cwd,e,r.fs).path).filter(Boolean).map(e=>({path:e,named:!0}));for(let e of t.roots)for(let t of yt(r.fs,e)){if(t.kind!==`file`)continue;let r=gt(e===`/`?`/`:e,t.path).split(`/`);(n.hidden||r.every(e=>!e.startsWith(`.`)))&&i.push({path:t.path,named:!1})}return i}function uv(e,t,n){for(let{path:r,named:i}of e){if(n.fs.isDir(r))continue;let{text:e,bytes:a}=Bn(n.fs,r);if(e!==void 0&&!e.startsWith(``)||(a===void 0?e.includes(`\0`):a.includes(0))&&!i&&!t.text)continue;let o=JSON.stringify(gt(n.cwd===`/`?`/`:n.cwd,r)||r);if(e===void 0){let e=dv(a,o,t,n);if(e)return e;continue}if(e.startsWith(``))return{detail:`byte-order mark`,message:`${o} begins with a byte-order mark, which ripgrep strips before matching`}}return null}function dv(e,t,n,r){return!n.invert&&!n.ignoreCase&&Uh(e,n.patterns,n.literal,r.locale)?null:{detail:`unreadable bytes`,message:`${t} holds bytes that are not text, and searching them is not supported`}}function fv(e,t){let n=t.stdinBytes;return!n||!e.text&&n.includes(0)||$e(n)!==void 0?null:dv(n,Wn(null,t),e,t)}function pv(e,t,n){let r=[],i=!1;for(let n of e){let e=k(t.cwd,n,t.fs);e.path!==null&&t.fs.isDir(e.path)&&r.push(e.path),n.split(`/`).some(e=>e.startsWith(`.`)&&e!==`.`&&e!==`..`)&&(i=!0)}e.length||r.push(t.cwd);let a=r.length>0;return!n&&a&&i&&e.length?{error:ov(`named hidden path`,`a hidden path named beside a directory is searched by ripgrep but skipped while walking, and both cannot apply at once`)}:{roots:r,recursive:a}}function mv(e,t){let n=e=>gt(t.cwd===`/`?`/`:t.cwd,e)||e,r=(n,r=!0)=>{for(let i of e){for(let e of yt(t.fs,i))if(mt(e.path)===n&&hv(e.path,r,t))return e.path;for(let e=i;e!==`/`;e=j(e)){let i=k(j(e),n,t.fs);if(i.path!==null&&hv(i.path,r,t))return i.path}}return null},i=r(`.ignore`)??r(`.rgignore`);if(i)return n(i);let a=r(`.git`,!1);if(!a)return null;let o=k(a,`info/exclude`,t.fs).path,s=o!==null&&hv(o,!0,t)?o:null,c=r(`.gitignore`)??s;return c?n(c):null}function hv(e,t,n){if(!t||n.fs.isDir(e))return!0;let r=k(`/`,e,n.fs).path,{text:i}=Bn(n.fs,r??e);return(i??` `).split(`
|
|
160
|
+
`).some(e=>e.trim()!==``&&!e.trimStart().startsWith(`#`))}function gv(e,t){for(let n of e){let e=k(t.cwd,n,t.fs);if(e.path===null||t.fs.isDir(e.path))continue;let{text:r,bytes:i}=Bn(t.fs,e.path);if(i===void 0?r?.includes(`\0`):i.includes(0))return n}return null}function _v(e,t,n,r,i){let a=t.literal?[`-F`]:[`-P`];t.ignoreCase&&a.push(`-i`),t.lineNumbers&&a.push(`-n`),t.word&&a.push(`-w`),t.invert&&a.push(`-v`),t.quiet&&a.push(`-q`),t.mode&&a.push(`-`+t.mode),t.showName&&a.push(`-`+t.showName),a.push(t.text?`-a`:`-I`),t.after&&a.push(`-A`,String(t.after)),t.before&&a.push(`-B`,String(t.before)),r.recursive&&a.push(`-r`),r.recursive&&!t.hidden&&a.push(`--exclude=.*`,`--exclude-dir=.[!.]*`,`--exclude-dir=..?*`),a.push(...qm(t.patterns,t.literal)),r.stdin||a.push(`--`,...n.length?n:[`.`]);let o=new Set(i.notes),s=I_(e,a,i);return delete s.events,Cv(i.notes,o,r),Sv(vv(s,t),n,t.patterns)}function vv(e,t){if(t.mode!==`c`)return e;let n=e.stdout.split(`
|
|
161
|
+
`).filter(e=>e!==``&&e!==`0`&&!e.endsWith(`:0`));return{...e,stdout:n.length?n.join(`
|
|
162
162
|
`)+`
|
|
163
|
-
|
|
164
|
-
`,exitCode:1};l.push(`${String(
|
|
165
|
-
`?
|
|
166
|
-
`?
|
|
167
|
-
string2 are 'upper' and 'lower'`);let
|
|
168
|
-
the latter string must not end with a character class`):n&&e.classes.length>0&&t.chars.length!==1?
|
|
169
|
-
string2 must map all characters in the domain to one`):null}function
|
|
170
|
-
`:
|
|
171
|
-
`;i
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
`,!0)}}return p.result.exitCode
|
|
175
|
-
`,!0);if(
|
|
176
|
-
`,!1,!0);n.sources.add(
|
|
177
|
-
`,!0),
|
|
178
|
-
`,!1,!0);r.sources.add(t)}
|
|
179
|
-
`,!0),!1),
|
|
180
|
-
`))}function
|
|
181
|
-
`);if(r.path
|
|
182
|
-
`);n.verbose&&
|
|
183
|
-
`,1)}function
|
|
184
|
-
`),!1),
|
|
185
|
-
`,1),!0}function
|
|
186
|
-
`,r.failed=!0}function
|
|
187
|
-
`,e.failed=!0}function
|
|
188
|
-
`,
|
|
189
|
-
`);if(
|
|
190
|
-
`);try{if(!
|
|
191
|
-
`,1)}function
|
|
192
|
-
`,r.status=1;return}if(!
|
|
193
|
-
`;return}
|
|
163
|
+
`:``}}var yv=new Map([[`No such file or directory`,2],[`Not a directory`,20],[`Is a directory`,21]]),bv=e=>e.replaceAll(/^(rg: .*: )([A-Z][a-z].*)$/gmu,(e,t,n)=>yv.has(n)?`${t}${n} (os error ${yv.get(n)})`:e),xv=/^rg: (?:invalid pattern[^\n]*|trailing backslash)$/mu;function Sv(e,t,n){let r=e=>t.length?e:e.replaceAll(/^\.\//gmu,``),i={...e,stdout:r(e.stdout),stderr:bv(r(e.stderr).replaceAll(/^grep: /gmu,`rg: `))},a=S(e);return a?.detail===`non-ASCII regex semantics`?C(`feature`,`rg`,`non-ASCII matching`,`rg: Unicode-aware matching on non-ASCII input is not supported`,2):a?C(a.kind,`rg`,a.detail,i.stderr.trimEnd()||a.message,e.exitCode):xv.test(i.stderr)?C(`feature`,`rg`,`regex parse error`,`rg: regex parse error in ${JSON.stringify(n.join(` `))}; the reason ripgrep gives is not reproduced here`,2):i}function Cv(e,t,n){let r=[];for(let n of e)!t.has(n)&&n.startsWith(`grep: excluded `)&&r.push(n);for(let t of r)e.delete(t),n.recursive&&e.add(t.replace(/^grep: excluded (\d+) (entry|entries) by --include\/--exclude\/--exclude-dir rules/u,`rg: skipped $1 hidden $2`).replace(/\.$/u,`. Hidden entries are searched with --hidden.`))}var wv=6,Tv=` `,Ev=` `.repeat(wv+Tv.length);function Dv(e,t,n){let{values:r,positional:i,order:a}=U(t,{valueShort:[`b`,`v`],valueLong:[`starting-line-number`]}),o=r.get(`b`)??`t`;if(![`a`,`t`,`n`].includes(o)){let e=`nl: -b: only \`a\`, \`t\` and \`n\` are supported (got \`${o}\`)`;return o.startsWith(`p`)?C(`option`,`nl`,`-b p`,e):x(e)}let s=1n;for(let{name:e,value:t}of a)if((e===`v`||e===`starting-line-number`)&&(!/^[ \t\n\r\f\v]*[+-]?\d+$/u.test(t)||(s=BigInt(t),s<yn||s>vn)))return x(`nl: invalid starting line number: ${t}`);let c=Vn(`nl`,i,e,n);if(c.inputs.some(({content:e})=>/(?:^|\n)(?:\\:){1,3}(?:\n|$)/u.test(e)))return C(`feature`,`nl`,`logical pages`,`nl: logical page delimiters are not supported`);let l=[];for(let{content:e}of c.inputs)for(let t of An(e))if(o===`a`||o===`t`&&t!==``){if(s>vn)return{stdout:Mn(l),stderr:c.stderr+`nl: line number overflow
|
|
164
|
+
`,exitCode:1};l.push(`${String(s).padStart(wv)}${Tv}${t}`),s++}else l.push(Ev+t);return Kn(Mn(l),c)}function Ov(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`s`],valueShort:[`d`,`f`,`c`]}),o=i.has(`f`),s=i.has(`c`);if(o===s)return We(`cut -f LIST [-d DELIM] [-s] [file...] | cut -c LIST [file...]`);if(s&&i.has(`d`))return x(`cut: -d is only valid with -f`);if(s&&r.has(`s`))return x(`cut: -s is only valid with -f`);let c=Mv(o?i.get(`f`):i.get(`c`),o?`field`:`position`);if(c.error)return c.error;let l=i.get(`d`)===``?`\0`:i.get(`d`)??` `;if(o&&p(l).length!==1)return x(`cut: -d delimiter must be a single byte`);let u=Vn(`cut`,a,e,n),d=[];for(let{content:e}of u.inputs)for(let t of o&&l===`
|
|
165
|
+
`?e===``?[]:[e]:An(e)){if(o&&!t.includes(l)){r.has(`s`)||d.push(t);continue}d.push(o?Pv(t,l,c.ranges):kv(t,c.ranges))}return Kn(Mn(d),u)}function kv(e,t){let n=p(e);return D(Uint8Array.from(Nv(n,t)))}var Av={field:{zero:`fields are numbered from 1`,range:`invalid field range`,value:e=>`invalid field value '${e}'`,large:e=>`field number '${e}' is too large`},position:{zero:`byte/character positions are numbered from 1`,range:`invalid byte or character range`,value:e=>`invalid byte/character position '${e}'`,large:e=>`byte/character offset '${e}' is too large`}},jv=/^(\d*)(-?)(\d*)/u;function Mv(e,t){let n=Av[t],r=e=>({error:x(`cut: ${e}`)}),i=[];for(let t of e.split(/[, \t]/u)){if(t===``)return r(n.zero);let[e,a,o,s]=jv.exec(t),c=t.slice(e.length);if(c!==``)return r(c.startsWith(`-`)?n.range:n.value(c));for(let e of[a,s])if(e!==``&&BigInt(e)>bn)return r(n.large(e));if(a===``&&s===``&&o===``)return r(n.value(t));let l=a===``?1:Number(a),u=o===``?l:s===``?1/0:Number(s);if(l<1)return r(n.zero);if(u<l)return r(`invalid decreasing range`);i.push([l,u])}i.sort((e,t)=>e[0]-t[0]);let a=[];for(let e of i){let t=a.at(-1);t&&e[0]<=t[1]+1?t[1]=Math.max(t[1],e[1]):a.push(e)}return{ranges:a}}function Nv(e,t){return t.flatMap(([t,n])=>Array.from(e.slice(t-1,n)))}function Pv(e,t,n){return Nv(t===`
|
|
166
|
+
`?An(e):e.split(t),n).join(t)}function Fv(e,t,n){let{flags:r,positional:i}=U(t,{short:[`c`,`d`,`s`]}),a=r.has(`d`),o=r.has(`s`),s=r.has(`c`);if(a&&o)return C(`option`,`tr`,`-d -s`,`tr: -d combined with -s is not supported`);if(o&&!a&&i.length===2)return C(`feature`,`tr`,`translate and squeeze`,`tr: combined translation and squeezing is not supported`);let c=a||o?1:2;if(i.length!==c)return We(`tr [-c] SET1 SET2 | tr [-c] -d SET | tr [-c] -s SET`);if(/\P{ASCII}/u.test(e+i.join(``)))return C(`feature`,`tr`,`non-ASCII bytes`,`tr: translation of non-ASCII bytes is not supported`);if(i.some(e=>/\[[.=]/u.test(e)))return C(`feature`,`tr`,`set expressions`,`tr: equivalence classes and collating symbols are not supported`);if(i.some(e=>/\[[^\]]*\*/u.test(e)))return C(`feature`,`tr`,`repeat expressions`,`tr: repetition expressions in a set are not supported`);if(i.some(e=>/\\[0-7]{2}|\\[1-7abfrv]/u.test(e)))return C(`feature`,`tr`,`set escapes`,`tr: these set escape sequences are not supported`);if(i.some(e=>/(?:^|[^\\])(?:\\\\)*\\$/u.test(e)))return C(`feature`,`tr`,`trailing backslash`,`tr: an unescaped trailing backslash in a set is not supported`);let l=Bv(i[0]);if(l.error)return l.error;let u=new Set(l.chars),d=e=>s!==u.has(e);if(a)return I(n),b([...e].filter(e=>!d(e)).join(``));if(o)return I(n),b(Vv(e,d));let f=Bv(i[1]);if(f.error)return f.error;let p=zv(l,f,s);if(p)return p;if(f.chars.length===0)return x(`tr: when not truncating set1, string2 must be non-empty`);I(n);let m=s?Array.from({length:256},(e,t)=>String.fromCodePoint(t)).filter(e=>!u.has(e)):l.chars,h=new Map,g=f.chars.at(-1);for(let e=0;e<m.length;e++)h.set(m[e],f.chars[e]??g);return b([...e].map(e=>h.get(e)??e).join(``))}var Iv=Object.freeze(Object.fromEntries(Object.entries(zt).filter(([e])=>e!==`word`).map(([e,t])=>[e,t.flatMap(([e,t])=>Array.from({length:t-e+1},(t,n)=>String.fromCodePoint(e+n)))]))),Lv={__proto__:null,lower:`upper`,upper:`lower`};function Rv(e,t){if(e[t]!==`[`||e[t+1]!==`:`)return null;let n=e.indexOf(`:]`,t+2);return n<0?null:{name:e.slice(t+2,n),next:n+2,text:e.slice(t,n+2)}}function zv(e,t,n){if(t.classes.find(e=>Lv[e.name]===void 0))return x(`tr: when translating, the only character classes that may appear in
|
|
167
|
+
string2 are 'upper' and 'lower'`);let r=t=>e.classes.some(e=>e.name===Lv[t.name]&&e.start===t.start&&e.end===t.end);return!n&&t.classes.find(e=>!r(e))?x(`tr: misaligned [:upper:] and/or [:lower:] construct`):t.classes.some(e=>e.end===t.chars.length)&&(n||e.chars.length>t.chars.length)?x(`tr: when translating with string1 longer than string2,
|
|
168
|
+
the latter string must not end with a character class`):n&&e.classes.length>0&&t.chars.length!==1?x(`tr: when translating with complemented character classes,
|
|
169
|
+
string2 must map all characters in the domain to one`):null}function Bv(e){let t=[],n=[],r=0,i=()=>{if(e[r]!==`\\`)return e[r++];if(r+1>=e.length)return null;let t=e[r+1];return r+=2,t===`n`?`
|
|
170
|
+
`:t===`t`?` `:t===`\\`?`\\`:t===`0`?`\0`:t};for(;r<e.length;){let a=Rv(e,r);if(a){if(a.name===``)return{error:x(`tr: missing character class name '${a.text}'`)};let e=Iv[a.name];if(e===void 0)return{error:x(`tr: invalid character class '${a.name}'`)};n.push({name:a.name,start:t.length,end:t.length+e.length}),t.push(...e),r=a.next;continue}let o=i();if(e[r]===`-`&&r+1<e.length){r++;let e=i();if(e===null)return{error:x(`tr: trailing backslash in set`)};let n=o.codePointAt(0),a=e.codePointAt(0);if(a<n)return{error:x(`tr: range-endpoints of '${o}-${e}' are in reverse collating sequence order`)};for(let e=n;e<=a;e++)t.push(String.fromCodePoint(e))}else t.push(o)}return{chars:t,classes:n}}function Vv(e,t){let n=``,r=null;for(let i of e)t(i)&&i===r||(n+=i,r=i);return n}var Hv=e=>e.text??D(e.bytes),Uv=(e,t)=>{e.bytes===void 0?t.write(e.text):t.writeBytes(e.bytes)},Wv=e=>e.events??[...e.stdout?[{fd:1,text:e.stdout}]:[],...e.stderr?[{fd:2,text:e.stderr}]:[]],Gv=e=>e.unordered??(!e.events&&e.stdout!==``&&e.stderr!==``),G=(e=``)=>({stdout:``,stderr:e,exitCode:0,ignored:!1,events:e?[{fd:2,text:e}]:[],unordered:!1});function K(e,t){e.stdout+=t.stdout,e.stderr+=t.stderr,e.exitCode=t.exitCode,e.ignored=t.ignored??!1,e.events.push(...Wv(t)),e.unordered||=Gv(t)}function Kv(e,t){t&&K(e.expansionOutput,qv(G(t),{fds:e.expansionFds},e))}function qv(e,t,n){let r=r=>Jv(e,t,n,r);return n.io?n.io.output(e,t,r):r(Uv)}function Jv(e,t,n,r){let i=e,a=t.fds[1],o=t.fds[2];(a===o&&a!==`null`&&a!==`closed`||(a?.identity&&o?.identity?a.identity===o.identity:a?.path&&a.path===o?.path))&&Gv(i)&&(i=C(`feature`,null,`combined output ordering`,`error: merging this command’s stdout and stderr in order is not supported`),n.unsupported.add(S(i)));let s=[],c=``,l=``;for(let e of Wv(i)){let i=t.fds[e.fd];if(typeof i==`object`){r(e,i);continue}if(t.deferred?.[e.fd]&&e.bytes!==void 0){s.push(e);continue}if(i!==`out`&&i!==`err`){e.fd===2&&wn(n,Hv(e));continue}let a=Hv(e);s.push({fd:i===`out`?1:2,text:a}),i===`out`?l+=a:c+=a}return{...i,stdout:l,stderr:c,events:s,unordered:Gv(i)&&l!==``&&c!==``}}var Yv=new Map([[`ls`,2],[`grep`,2],[`egrep`,2],[`fgrep`,2],[`sort`,2],[`xxd`,3],[`sed`,4],[`diff`,2],[`patch`,2],[`xargs`,123],[`hexdump`,0],[`tree`,0],[`zip`,0],[`unzip`,0]]),Xv=e=>e.stdout!==``||Wv(e).some(e=>e.fd===1&&(e.bytes?.length??0)>0);function Zv(e,t,n){return n.closed.out&&Xv(t)?Qv(e,t,n):t}function Qv(e,t,n){let r=Yv.get(n.registry.resolveCommand(e))??1,i=Wv(t).filter(e=>e.fd!==1),a=r===0?``:`${e}: write error: Bad file descriptor
|
|
171
|
+
`;a&&i.push({fd:2,text:a});let o={...t,stdout:``,stderr:t.stderr+a,exitCode:r||t.exitCode,events:i,unordered:!1},s=S(t);return s?w(o,s.kind,s.command,s.detail,s.message):o}var $v=new Map([[`\0`,`0`],[`\x07`,`a`],[`\b`,`b`],[`\f`,`f`],[`
|
|
172
|
+
`,`n`],[`\r`,`r`],[` `,`t`],[`\v`,`v`]]);function q(e,t){let n=$t(t),r=n?Array.from(E(e),e=>String.fromCodePoint(e)):[...e];if(!n&&r.some(e=>e.codePointAt(0)>127&&/[\p{C}\p{Zl}\p{Zp}]/u.test(e)))throw new T(`feature`,`filename quoting`,`quoting nonprinting Unicode filenames is not supported`);if(e.includes(`'`)&&r.every(e=>/[-a-zA-Z0-9 %+,./:_\]']/u.test(e)||!n&&e.codePointAt(0)>127))return`"`+e+`"`;let i=!1,a=`'`;for(let e of r){let t=e.codePointAt(0),r=$v.get(e)??(t<32||t===127||n&&t>127?t.toString(8).padStart(3,`0`):null);r===null?e===`'`?(a+=`'\\''`,i=!1):(i&&(a+=`''`),i=!1,a+=e):(i||(a+=`'$'`),i=!0,a+=`\\`+r)}return a+`'`}var ey=/^[#%+,\-./0-9@A-Z\]_a-z{}~]+$/u;function ty(e,t){return ey.test(e)&&!`#~`.includes(e[0])?e:q(e,t)}var ny=new Map([[`\x07`,`a`],[`\b`,`b`],[`\f`,`f`],[`
|
|
173
|
+
`,`n`],[`\r`,`r`],[` `,`t`],[`\v`,`v`],[`"`,`"`],[`\\`,`\\`]]);function ry(e,t){let n=$t(t),r=``,i=!1;for(let t of e){let e=t.codePointAt(0),a=ny.get(t);if(a!==void 0)r+=`\\`+a,i=!0;else if(t===` `)r+=t,i=!0;else if(e<32||e===127||e>127&&(n||/[\p{C}\p{Zl}\p{Zp}]/u.test(t))){for(let e of p(t))r+=`\\`+e.toString(8).padStart(3,`0`);i=!0}else r+=t}return i?`"${r}"`:e}var iy=new Set([`/dev/null`,`/dev/stdin`,`/dev/stdout`,`/dev/stderr`]);function ay(e,t,n){let r=U(t,{short:[`f`,`n`,`v`,`T`,`r`,`R`],long:[`force`,`no-clobber`,`verbose`,`no-target-directory`,`recursive`],valueShort:[`t`],valueLong:[`target-directory`]}),i=oy(r,n);if(i.error)return x(`cp: `+i.error);let{sources:a,target:o,directory:s}=i,{flags:c}=r,l=c.has(`v`)||c.has(`verbose`),u=c.has(`r`)||c.has(`R`)||c.has(`recursive`),d=a.map(e=>[e,s?o.replace(/\/+$/u,``)+`/`+fy(e):o]),f=c.has(`n`)||c.has(`no-clobber`),p={ctx:n,result:G(),failed:!1,sources:new Set,copied:new Set,noClobber:f,force:c.has(`f`)||c.has(`force`),verbose:l,recursive:u,outputOverlap:l&&yy(d,n,{recursive:u,noClobber:f})};for(let[e,t]of d){n.io.setReads([]);try{py(e,t,p)}catch(e){F(n,`cp`,e?.path,e?.fsError);let t=S(e),r=`cp: `+L(e);if(t)return n.unsupported.add({...t,command:t.command??`cp`,message:r}),K(p.result,x(r)),p.result;Oy(p,r+`
|
|
174
|
+
`,!0)}}return p.result.exitCode=+!!p.failed,p.result}function oy({positional:e,flags:t,order:n},r){let i=n.filter(({name:e})=>e===`t`||e===`target-directory`);if(i.length>1)return{error:`multiple target directories specified`};let a=i[0]?.value,o=t.has(`T`)||t.has(`no-target-directory`);if(e.length===0)return{error:`missing file operand`};if(a===void 0&&e.length===1)return{error:`missing destination file operand after `+q(e[0],r)};if(a!==void 0&&o)return{error:`cannot combine --target-directory (-t) and --no-target-directory (-T)`};if(o&&e.length>2)return{error:`extra operand `+q(e[2],r)};let s=a??e.at(-1),c=k(r.cwd,s,r.fs),l=!o&&r.fs.isDir(c.path);return!l&&(a!==void 0||e.length>2)?(F(r,`cp`,s,c.error),{error:`${a===void 0?`target`:`target directory`} ${q(s,r)}: ${c.error??`Not a directory`}`}):{target:s,directory:l,sources:a===void 0?e.slice(0,-1):e}}function sy(e,t,n){let{ctx:r}=n,i=k(r.cwd,e,r.fs,{follow:!1}).path;if(i===null)return;let a=e.replace(/\/+$/u,``),o=t.replace(/\/+$/u,``);for(let s of yt(r.fs,i)){if(s.kind!==`link`)continue;let r=s.path===i?null:gt(i,s.path);if(!cy(r===null?t:`${o}/${r}`,n)&&!(r!==null&&ly(o,r,n)))throw uy(r===null?e:`${a}/${r}`)}}var cy=(e,t)=>t.noClobber&&k(t.ctx.cwd,e,t.ctx.fs,{follow:!1}).path!==null;function ly(e,t,n){let{ctx:r}=n,i=t.split(`/`);for(let t=1;t<i.length;t++){let n=k(r.cwd,`${e}/${i.slice(0,t).join(`/`)}`,r.fs,{follow:!1});if(n.path!==null&&!r.fs.isDir(n.path))return!0}return!1}var uy=e=>new T(`feature`,`symbolic link`,`copying a symbolic link is not supported: ${e} (a recursive copy keeps the link, which cp does not make here)`),dy=(e,t,n)=>n.path===null&&e.fs.isLink?.(k(e.cwd,t,e.fs,{follow:!1}).path)===!0,fy=e=>{let t=e.replace(/\/+$/u,``).split(`/`).at(-1);return t===`..`?`.`:t};function py(e,t,n,r=null){let{ctx:i}=n;if(Dy(e,i.cwd)||Dy(t,i.cwd))throw new T(`feature`,`special file`,`copying special files is not supported`);let a=q(e,i),o=q(t,i);if(n.recursive&&i.fs.isLink?.(k(i.cwd,e,i.fs,{follow:!1}).path)){if(!cy(t,n))throw uy(e);return}let s=P(i,`cp`,e),c=e=>Oy(n,`cp: `+e+`
|
|
175
|
+
`,!0);if(s.error)return c(`cannot stat ${a}: ${s.error}`);if(i.fs.isDir(s.path))return n.recursive?my(e,s.path,t,n,r??{source:a,target:o},r===null):c(`-r not specified; omitting directory ${a}`);if(r===null){if(n.sources.has(s.path))return Oy(n,`cp: warning: source file ${a} specified more than once
|
|
176
|
+
`,!1,!0);n.sources.add(s.path)}let l=k(i.cwd,t,i.fs);if(l.error&&l.error!==`No such file or directory`)return c(`cannot stat ${o}: ${l.error}`);if(n.noClobber&&l.path!==null)return;if(vy(s.path,l.path,i.fs))return c(`${a} and ${o} are the same file`);if(i.fs.isDir(l.path))return c(`cannot overwrite directory ${o} with non-directory ${a}`);let u=A(i.fs,i.cwd,t);if(r===null&&n.copied.has(u))return c(`will not overwrite just-created ${o} with ${a}`);let d=pt(i.cwd,t,i.fs,l);if(gy(a,o,n),dy(i,t,l))return c(`not writing through dangling symlink ${o}`);if(d)return F(i,`cp`,t,d),c(`cannot create regular file ${o}: ${d}`);try{if(!i.fs.copyWritable?.(i.cwd,s.path,t))return c(`${n.force&&l.path!==null?`cannot remove`:`cannot create regular file`} ${o}: Read-only file system`)}catch(e){if(S(e))throw e;F(i,`cp`,e?.path,e?.fsError);let n=L(e);return c(`cannot create regular file ${o}: ${n.startsWith(t+`: `)?n.slice(t.length+2):n}`)}r===null&&n.copied.add(u)}function my(e,t,n,r,i,a){let{ctx:o}=r,s=q(e,o),c=q(n,o),l=e=>Oy(r,`cp: `+e+`
|
|
177
|
+
`,!0),u=k(o.cwd,n,o.fs,{follow:!1});if(u.error&&u.error!==`No such file or directory`)return l(`cannot stat ${c}: ${u.error}`);let d=n.replace(/\/+$/u,``)||n;if(A(o.fs,o.cwd,d,!0)===t)return l(`${s} and ${c} are the same file`);if(u.path!==null&&!o.fs.isDir(u.path))return l(`cannot overwrite non-directory ${c} with directory ${s}`);let f=A(o.fs,o.cwd,d,!1);if(u.path===null){let e=pt(o.cwd,d,o.fs);if(e)return F(o,`cp`,d,e),l(`cannot create directory ${c}: ${e}`);if(!o.writable||!R(f))return l(`cannot create directory ${c}: Read-only file system`)}if(f.startsWith(t===`/`?`/`:t+`/`))return l(`cannot copy a directory, ${i.source}, into itself, ${i.target}`);if(a){if(r.sources.has(t))return Oy(r,`cp: warning: source directory ${s} specified more than once
|
|
178
|
+
`,!1,!0);r.sources.add(t)}a&&sy(e,n,r);let{dirs:p,files:m,links:h}=o.fs.listDir(t);if(u.path===null&&!hy(e,n,d,f,r))return;let g=e.replace(/\/+$/u,``),_=n.replace(/\/+$/u,``);for(let e of[...p,...m,...h].sort(M))o.io.setReads([]),py(`${g}/${e}`,`${_}/${e}`,r,i)}function hy(e,t,n,r,i){let{ctx:a}=i,o=q(t,a),s=e=>(Oy(i,`cp: cannot create directory `+o+`: `+e+`
|
|
179
|
+
`,!0),!1),c=a.writable&&R(r);c&&_y(i);try{if(!c||!a.fs.makeWritableDir?.(a.cwd,n))return s(`Read-only file system`)}catch(e){if(S(e))throw e;F(a,`cp`,e?.path,e?.fsError);let t=L(e);return s(t.startsWith(n+`: `)?t.slice(n.length+2):t)}return gy(q(e,a),o,i),!0}function gy(e,t,n){n.verbose&&(_y(n),Oy(n,`${e} -> ${t}
|
|
180
|
+
`))}function _y(e){if(e.outputOverlap)throw new T(`feature`,`copy output buffering`,`buffered verbose output sharing a copied file is not supported`)}function vy(e,t,n){if(e===t)return!0;let r=n.fileIdentity?.(e);return r!==void 0&&r===n.fileIdentity(t)}function yy(e,t,{recursive:n,noClobber:r}){let i=t.outputFds[1];if(typeof i!=`object`)return!1;let a={ctx:t,recursive:n,noClobber:r,holds:e=>i.identity===void 0?i.path===e:i.identity===t.fs.fileIdentity?.(e),made:new Set,sources:new Set,copied:new Set};return e.some(([e,t])=>by(e,t,a))}function by(e,t,n){let{ctx:r}=n,i=k(r.cwd,e,r.fs),a=i.path??O(r.cwd,e),o=i.error===`No such file or directory`&&(n.made.has(a)||Cy(a,n));if(i.error&&!o)return!1;let s=A(r.fs,r.cwd,t);return(i.error===null?r.fs.isDir(i.path):!n.made.has(a))?!n.recursive||!Ey(a,t,r)||n.sources.has(a)?!1:(n.sources.add(a),xy(a,s,n)):n.sources.has(a)||(n.sources.add(a),n.copied.has(s)||!Ty(a,s,t,r,n.noClobber))?!1:(n.copied.add(s),n.made.add(s),n.holds(a)||n.holds(s))}function xy(e,t,n){let{ctx:r}=n,i=e===`/`?0:e.length;for(let a of Sy(e,n)){let e=t+a.slice(i);if(!wy(a,e,k(r.cwd,e,r.fs),r,n.noClobber)&&(n.made.add(e),n.holds(a)||n.holds(e)))return!0}return!1}function Sy(e,t){let n=e===`/`?`/`:e+`/`,r=t.ctx.fs.isDir(e)?[...t.ctx.fs.walkFiles(e)]:[];return new Set([...r,...[...t.made].filter(e=>e.startsWith(n))])}var Cy=(e,t)=>[...t.made].some(t=>t.startsWith(e+`/`));function wy(e,t,n,r,i){return n.error&&n.error!==`No such file or directory`||i&&n.path!==null||vy(e,n.path,r.fs)||r.fs.isDir(n.path)?!0:!r.writable||!R(t)}function Ty(e,t,n,r,i){let a=k(r.cwd,n,r.fs);return!wy(e,t,a,r,i)&&!dy(r,n,a)&&!pt(r.cwd,n,r.fs,a)}function Ey(e,t,n){let r=k(n.cwd,t,n.fs,{follow:!1});if(r.error&&r.error!==`No such file or directory`)return!1;let i=t.replace(/\/+$/u,``)||t;if(r.path!==null&&!n.fs.isDir(r.path)||r.path===null&&pt(n.cwd,i,n.fs))return!1;let a=A(n.fs,n.cwd,i,!1);return A(n.fs,n.cwd,i,!0)===e||a.startsWith(e===`/`?`/`:e+`/`)?!1:!!n.writable&&R(a)}function Dy(e,t){let n=e.startsWith(`/`)?e:t+`/`+e;return iy.has(n.replace(/\/\.(?=\/)/gu,``).replace(/\/+/gu,`/`))}function Oy(e,t,n=!1,r=!1){let i=n||r?G(t):{...G(),stdout:t,events:[{fd:1,text:t}]};K(e.result,e.ctx.flushOutput(i)),e.failed||=n}function ky(e,t,n){let{flags:r,positional:i}=U(t,{short:[`f`,`v`,`r`,`R`],long:[`force`,`verbose`,`recursive`]}),a=r.has(`f`)||r.has(`force`),o=r.has(`v`)||r.has(`verbose`),s=r.has(`r`)||r.has(`R`)||r.has(`recursive`);if(i.length===0)return a?b(``):x(`rm: missing operand`);let c={ctx:n,force:a,verbose:o,recursive:s,events:[],stdout:``,stderr:``};try{for(let e of i)Ay(e,c)}catch(e){F(n,`rm`,e?.path,e?.fsError);let t=Ke(e,`rm`,`rm: `+L(e));return t.events=[...c.events,{fd:2,text:t.stderr}],t.stdout=c.stdout,t.stderr=c.stderr+t.stderr,t}return{stdout:c.stdout,stderr:c.stderr,events:c.events,exitCode:+!!c.stderr}}function Ay(e,t){let{ctx:n}=t,r=k(n.cwd,e,n.fs,{follow:!1}),i=r.error;if(!t.force||i!==`No such file or directory`&&i!==`Not a directory`){if(F(n,`rm`,e,i),i===null&&n.fs.isDir(r.path)){if(!t.recursive)i=`Is a directory`;else{if([`.`,`..`].includes(e.replace(/\/+$/u,``).split(`/`).at(-1)))return Py(t,`rm: refusing to remove '.' or '..' directory: skipping ${q(e,n)}
|
|
181
|
+
`);if(r.path===`/tmp`)i=`Device or resource busy`;else if(!n.writable||!R(r.path))i=`Read-only file system`;else return My(e,r.path,t,jy(n,e)?`Not a directory`:null)}}Ny(e,r.path,t,!1,i)}}function jy(e,t){let n=t.replace(/\/+$/u,``);return n===t||n===``?!1:e.fs.isLink?.(k(e.cwd,n,e.fs,{follow:!1}).path)===!0}function My(e,t,n,r=null){let{ctx:i}=n,{dirs:a,files:o,links:s=[]}=i.fs.listDir(t),c=e.replace(/\/+$/u,``);for(let e of[...a,...o,...s].sort(M)){let r=ht(t,e);i.fs.isDir(r)?My(`${c}/${e}`,r,n):Ny(`${c}/${e}`,r,n,!1,null)}Ny(e,t,n,!0,r)}function Ny(e,t,n,r,i){let{ctx:a}=n,o=n.verbose||i!==null||!a.writable||!t?.startsWith(`/tmp/`)?q(e,a):``,s=()=>r?a.fs.removeWritableDir?.(a.cwd,e):a.fs.removeWritable?.(a.cwd,e);try{i===null&&!s()&&(i=`Read-only file system`)}catch(t){if(S(t))throw t;F(a,`rm`,t?.path,t?.fsError);let n=L(t);i=t?.fsError??(n.startsWith(e+`: `)?n.slice(e.length+2):n)}if(i)return Py(n,`rm: cannot remove ${o}: ${i}
|
|
182
|
+
`);n.verbose&&Py(n,`removed ${r?`directory `:``}${o}
|
|
183
|
+
`,1)}function Py(e,t,n=2){n===1?e.stdout+=t:e.stderr+=t,e.events.push({fd:n,text:t})}function Fy(e,t,n){let{flags:r,positional:i}=U(t,{short:[`p`,`v`],long:[`parents`,`verbose`]});if(i.length===0)return x(`mkdir: missing operand`);let a={ctx:n,events:[],stdout:``,stderr:``,parents:r.has(`p`)||r.has(`parents`),verbose:r.has(`v`)||r.has(`verbose`)};try{for(let e of i)a.parents?Iy(e,a):Ly(e,a,!0)}catch(e){F(n,`mkdir`,e?.path,e?.fsError);let t=Ke(e,`mkdir`,`mkdir: `+L(e));return t.events=[...a.events,{fd:2,text:t.stderr}],t.stdout=a.stdout,t.stderr=a.stderr+t.stderr,t}return{stdout:a.stdout,stderr:a.stderr,events:a.events,exitCode:+!!a.stderr}}function Iy(e,t){let n=e.split(`/`),r=[];for(let e=0;e<n.length;e++)n[e]!==``&&r.push(n.slice(0,e+1).join(`/`));if(r.length===0){e===``&&Ly(e,t,!0);return}r[r.length-1]=e;for(let[e,n]of r.entries())if(!Ly(n,t,e===r.length-1))return}function Ly(e,t,n){let{ctx:r}=t,i=q(e,r),a=e=>(Ry(t,`mkdir: cannot create directory ${i}: ${e}
|
|
184
|
+
`),!1),o=e.replace(/\/+$/u,``)||e,s=k(r.cwd,o,r.fs);if(s.error===null)return t.parents?r.fs.isDir(s.path)?!0:a(n?`File exists`:`Not a directory`):a(`File exists`);if(k(r.cwd,o,r.fs,{follow:!1}).error===null)return a(!t.parents||n||s.error!==`Not a directory`?`File exists`:`Not a directory`);let c=pt(r.cwd,o,r.fs,s);if(c)return F(r,`mkdir`,o,c),a(c);try{if(!r.fs.makeWritableDir?.(r.cwd,o))return a(`Read-only file system`)}catch(e){if(S(e))throw e;F(r,`mkdir`,e?.path,e?.fsError);let t=L(e);return a(t.startsWith(o+`: `)?t.slice(o.length+2):t)}return t.verbose&&Ry(t,`mkdir: created directory ${i}
|
|
185
|
+
`,1),!0}function Ry(e,t,n=2){n===1?e.stdout+=t:e.stderr+=t,e.events.push({fd:n,text:t})}function zy(e,t,n){let{flags:r,positional:i}=U(t,{short:[`c`],long:[`no-create`]});if(i.length===0)return x(`touch: missing file operand`);let a=r.has(`c`)||r.has(`no-create`),o={ctx:n,stderr:``,failed:!1,gap:null};for(let e of i)By(e,a,o);let s={stdout:``,stderr:o.stderr,exitCode:+!!o.failed};return o.gap?w(s,`feature`,`touch`,`times`,o.gap):s}function By(e,t,n){let{ctx:r}=n,i=q(e,r),a=k(r.cwd,e,r.fs);if(a.error===null)return Vy(e,i,a.path,n);let o=t||e.endsWith(`/`);if(t&&a.error===`No such file or directory`)return;if(F(r,`touch`,e,a.error),o)return Hy(n,`setting times of ${i}: ${a.error}`);let s=pt(r.cwd,e,r.fs,a);if(s)return Hy(n,`cannot touch ${i}: ${s}`);try{r.fs.openWritable?.(r.cwd,e,!0)||Hy(n,`cannot touch ${i}: Read-only file system`)}catch(t){if(S(t))throw t;F(r,`touch`,t?.path,t?.fsError);let a=L(t);Hy(n,`cannot touch ${i}: ${a.startsWith(e+`: `)?a.slice(e.length+2):a}`)}}function Vy(e,t,n,r){let{ctx:i}=r;if(!i.writable||!R(n))return Hy(r,`setting times of ${t}: Read-only file system`);let a=`touch: setting the times of ${t} is not supported (every entry here carries the one time this filesystem keeps)`;r.gap??=a,r.stderr+=a+`
|
|
186
|
+
`,r.failed=!0}function Hy(e,t){e.stderr+=`touch: ${t}
|
|
187
|
+
`,e.failed=!0}function Uy(e,t,n,r){if(t===``||t.includes(`\0`))return{error:`No such file or directory`};if(r===`none`)return Wy(e,t,n);let i=t;if(r===`logical`){let r=n===`m`?{path:O(e.cwd,t)}:Gy(e,t);if(r.error)return r;i=r.path+(t.endsWith(`/`)?`/`:``)}let a=ft(e.cwd,i,e.fs,{lenient:n===`m`});return n===`m`?{path:a.rest.length?O(a.path,a.rest.join(`/`)):a.path}:a.error===`No such file or directory`&&a.rest.length===0&&n!==`e`?{path:a.path}:a.error?{error:a.error}:t.endsWith(`/`)&&!e.fs.isDir(a.path)?{error:`Not a directory`}:{path:a.path}}function Wy(e,t,n){if(n===`m`)return{path:O(e.cwd,t)};let r=Gy(e,t);if(r.error||n!==`e`)return r;let i=k(`/`,r.path,e.fs);return i.error?{error:i.error}:r}function Gy(e,t){let n=(t.startsWith(`/`)?t:e.cwd+`/`+t).split(`/`).filter(Boolean),r=`/`;for(let i=0;i<n.length;i++){let a=n[i];if(a===`..`)r=j(r);else if(a!==`.`){r=ht(r,a);let o=i+1;for(;n[o]===`.`;)o++;let s=n[o]===`..`||o===n.length&&(i<n.length-1||t.endsWith(`/`));if(s||i===n.length-1){let t=k(`/`,r+(s?`/`:``),e.fs);if(t.error&&(t.error!==`No such file or directory`||i!==n.length-1))return t}}}return{path:r}}function Ky(e,t){let n=e.split(`/`).filter(Boolean),r=t.split(`/`).filter(Boolean),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;return[...n.slice(i).map(()=>`..`),...r.slice(i)].join(`/`)||`.`}var qy=(e,t)=>e===`/`||t===e||t.startsWith(e+`/`),Jy={e:`e`,"canonicalize-existing":`e`,m:`m`,"canonicalize-missing":`m`},Yy={P:`physical`,physical:`physical`,L:`logical`,logical:`logical`,s:`none`,strip:`none`,"no-symlinks":`none`};function Xy(e,t,n,r){let i=t.get(`relative-base`),a=t.get(`relative-to`)??i,o={};for(let[t,s]of[[`target`,a],[`base`,i]]){if(s===void 0)continue;let i=Uy(e,s,n,r),a=i.error??(n===`e`&&!e.fs.isDir(i.path)?`Not a directory`:null);if(a)return F(e,`realpath`,s,a),{error:x(`realpath: ${ty(s,e)}: ${a}`)};o[t]=i.path}return o.base&&!qy(o.base,o.target)&&delete o.target,o}function Zy(e,t,n){let{flags:r,values:i,positional:a,order:o}=U(t,{short:[`e`,`m`,`L`,`P`,`s`,`q`,`z`],long:[`canonicalize-existing`,`canonicalize-missing`,`logical`,`physical`,`strip`,`no-symlinks`,`quiet`,`zero`],valueLong:[`relative-to`,`relative-base`]});if(!a.length)return x(`realpath: missing operand`);let s=`physical`,c=`E`;for(let{name:e}of o)Object.hasOwn(Jy,e)&&(c=Jy[e]),Object.hasOwn(Yy,e)&&(s=Yy[e]);let l=Xy(n,i,c,s);if(l.error)return l.error;let u=r.has(`q`)||r.has(`quiet`),d=r.has(`z`)||r.has(`zero`)?`\0`:`
|
|
188
|
+
`,f=G(),p=!1;for(let e of a){let t=Uy(n,e,c,s);t.error?(F(n,`realpath`,e,t.error),u||K(f,x(`realpath: ${ty(e,n)}: ${t.error}`)),p=!0):K(f,b((l.target&&(!l.base||qy(l.base,t.path))?Ky(l.target,t.path):t.path)+d))}return f.exitCode=+!!p,f}var Qy={symbolic:`s`,force:`f`,"no-dereference":`n`,"no-target-directory":`T`,verbose:`v`,relative:`r`,logical:`L`,physical:`P`};function $y(e,t,n){let r=U(t,{short:Object.values(Qy),long:Object.keys(Qy),valueShort:[`t`],valueLong:[`target-directory`]}),i=e=>r.flags.has(e)||r.flags.has(Object.keys(Qy).find(t=>Qy[t]===e)),a={force:i(`f`),noDereference:i(`n`),noTargetDirectory:i(`T`),verbose:i(`v`),relative:i(`r`)},o=r.order.findLast(({name:e})=>e===`t`||e===`target-directory`)?.value??null,s=r.positional;if(o!==null&&a.noTargetDirectory)return x(`ln: cannot combine --target-directory and --no-target-directory`);if(a.relative&&!i(`s`))return x(`ln: cannot do --relative without --symbolic`);if(s.length===0)return x(`ln: missing file operand`);if(!i(`s`))return C(`feature`,`ln`,`hard link`,`ln: hard links are not supported: ${q(s[0],n)} (ln -s makes a symbolic one)`);let c={ctx:n,events:[],stdout:``,stderr:``};try{let e=eb(s,o,a,n);if(e.error)return e.error;for(let[t,n,r]of e)nb(t,n,a,c,r)}catch(e){F(n,`ln`,e?.path,e?.fsError);let t=Ke(e,`ln`,`ln: `+L(e));return t.events=[...c.events,{fd:2,text:t.stderr}],t.stdout=c.stdout,t.stderr=c.stderr+t.stderr,t}return{stdout:c.stdout,stderr:c.stderr,events:c.events,exitCode:+!!c.stderr}}function eb(e,t,n,r){let i=e=>q(e,r);if(t!==null){let n=k(r.cwd,t,r.fs);return n.error?(F(r,`ln`,t,n.error),{error:x(`ln: failed to access ${i(t)}: ${n.error}`)}):r.fs.isDir(n.path)?e.map(e=>tb(t,e)):{error:x(`ln: target ${i(t)} is not a directory`)}}if(e.length===1)return n.noTargetDirectory?{error:x(`ln: missing destination file operand after ${i(e[0])}`)}:[tb(`.`,e[0])];if(e.length===2){let t=k(r.cwd,e[1],r.fs,{follow:!n.noDereference});if(n.noTargetDirectory||t.error!==null||!r.fs.isDir(t.path))return[[e[0],e[1]]]}if(n.noTargetDirectory)return{error:x(`ln: extra operand ${i(e[2])}`)};let a=e.at(-1),o=k(r.cwd,a,r.fs),s=o.error??(r.fs.isDir(o.path)?null:`Not a directory`);return s?(F(r,`ln`,a,s),{error:x(`ln: target ${i(a)}: ${s}`)}):e.slice(0,-1).map(e=>tb(a,e))}function tb(e,t){let n=t.replace(/\/+$/u,``).split(`/`).at(-1);return[t,e+(e.endsWith(`/`)?``:`/`)+n,n===``]}function nb(e,t,n,r,i=!1){let{ctx:a}=r,o=q(t,a),s=n.relative?ib(a,e,t):e,c=e=>ob(r,`ln: failed to create symbolic link ${o}${e}
|
|
189
|
+
`);if(s===``)return c(` -> ${q(s,a)}: No such file or directory`);if(i)return c(`: No such file or directory`);if(n.force){let e=k(a.cwd,t,a.fs,{follow:!1});if(e.error===null){if(a.fs.isDir(e.path))return ob(r,`ln: ${ty(t,a)}: cannot overwrite directory
|
|
190
|
+
`);try{if(!a.fs.removeWritable?.(a.cwd,t))return c(`: Read-only file system`)}catch(e){if(S(e))throw e;return c(`: ${ab(e,t)}`)}}}let l=rb(a,t);if(l)return F(a,`ln`,t,l),c(`: ${l}`);try{if(!a.fs.makeWritableLink?.(a.cwd,t,s))return c(`: Read-only file system`)}catch(e){if(S(e))throw e;return F(a,`ln`,e?.path,e?.fsError),c(`: ${ab(e,t)}`)}n.verbose&&ob(r,`${o} -> ${q(s,a)}
|
|
191
|
+
`,1)}function rb(e,t){if(t===``||t.includes(`\0`))return`No such file or directory`;let n=t.replace(/\/+$/u,``);if(n===``)return`File exists`;let r=k(e.cwd,n,e.fs,{follow:!1});if(r.error===null)return`File exists`;if(r.error!==`No such file or directory`||t!==n)return r.error;let i=ft(e.cwd,n,e.fs);return i.rest.length>0?i.error:null}function ib(e,t,n){let r=Uy(e,j(n),`m`,`physical`),i=Uy(e,t,`m`,`physical`);return r.error||i.error?t:Ky(r.path,i.path)}function ab(e,t){let n=L(e);return e?.fsError??(n.startsWith(t+`: `)?n.slice(t.length+2):n)}function ob(e,t,n=2){n===1?e.stdout+=t:e.stderr+=t,e.events.push({fd:n,text:t})}function sb(e,t,n){let{flags:r,positional:i}=U(t,{short:[`a`,`i`,`p`],long:[`append`,`ignore-interrupts`]}),a=r.has(`a`)||r.has(`append`),o=n.stdinBytes;I(n,``,!0);let s=o??E(e),c={stderr:``,status:0,gap:null};for(let e of i)cb(e,s,a,c,n);let l=[{fd:1,bytes:s},...c.stderr?[{fd:2,text:c.stderr}]:[]],u=o===null?{stdout:e,stderr:c.stderr,exitCode:c.status}:{stdout:``,stderr:c.stderr,exitCode:c.status,events:l};if(!c.gap)return u;let d=S(c.gap);return w({...u,exitCode:1},d.kind,d.command,d.detail,d.message)}function cb(e,t,n,r,i){if(e===`/dev/null`)return;let a;try{a=i.writable&&i.fs.openWritable?.(i.cwd,e,n)}catch(e){r.stderr+=`tee: ${e.message}
|
|
192
|
+
`,r.status=1;return}if(!a){r.gap??=C(`feature`,`tee`,`read-only target`,`tee: ${e}: Read-only file system`,1),r.stderr+=`tee: ${e}: Read-only file system
|
|
193
|
+
`;return}a.writeBytes(t)}var lb={cp:ay,rm:ky,mkdir:Fy,touch:zy,ln:$y,tee:sb};function ub(e,t,n){let{positional:r}=U(t),i=Vn(`tac`,r,e,n),a=[];for(let{content:e}of i.inputs)a.push(...Nn(e).toReversed());return Kn(a.join(``),i)}var db=1e6;function fb(e,t){let{flags:n,values:r,positional:i}=U(t,{short:[`w`],valueShort:[`s`],numericOperands:!0});if(i.length===0||i.length>3)return We(`seq [-w] [-s SEP] LAST | seq FIRST LAST | seq FIRST INCR LAST`);let a=[];for(let e of i){if(!/^[+-]?\d+$/u.test(e))return Number.isFinite(Number(e))&&e.trim()!==``||/^[+-]?inf(?:inity)?$/iu.test(e)?C(`feature`,`seq`,`non-integer operands`,`seq: non-integer operands are not supported`):x(`seq: invalid integer: ${e}`);a.push(BigInt(e))}let o=a.length===1?1n:a[0],s=a.length===3?a[1]:1n,c=a.at(-1);if(s===0n)return x(`seq: increment must be non-zero`);let l=(s>0?o<=c:o>=c)?(c>o?c-o:o-c)/(s>0n?s:-s)+1n:0;if(l>db)return C(`feature`,`seq`,`sequence limit`,`seq: range too large: ${l} elements exceeds limit of ${db}`);let u=n.has(`w`)?Math.max(...[i[0],i.at(-1)].map(e=>e.replace(/^\+/u,``).length)):0,d=[];for(let e=0,t=o;e<l;e++,t+=s)d.push(pb(String(t),u));return b(d.length===0?``:d.join(r.get(`s`)??`
|
|
194
194
|
`)+`
|
|
195
|
-
`)}function
|
|
196
|
-
`)}function
|
|
197
|
-
`)}var
|
|
198
|
-
`,t
|
|
199
|
-
`}if(
|
|
200
|
-
`),!r.scale){let
|
|
195
|
+
`)}function pb(e,t){if(e.length>=t)return e;let n=e.startsWith(`-`),r=n?e.slice(1):e;return(n?`-`:``)+r.padStart(t-+!!n,`0`)}function mb(e,t,n){let{positional:r}=U(t);if(r.length===0)return We(`which COMMAND...`);let i=[],a=0;for(let e of r)n.hasCommand(e)?i.push(`/usr/bin/${e}`):(i.push(`${e} not found`),a=1);return{stdout:Mn(i),stderr:``,exitCode:a}}function hb(e,t,n){let{positional:r}=U(t);return r.length>0?x(`whoami: extra operand: ${r[0]}`):b((n.user??`user`)+`
|
|
196
|
+
`)}function gb(e,t,n){let{flags:r,positional:i}=U(t,{short:[`u`]});if(i.length>1)return x(`date: at most one +FORMAT argument is supported (got: ${i[1]})`);let a=`%a %b %e %T %Z %Y`;if(i.length===1){if(!i[0].startsWith(`+`))return We(`date [-u] [+FORMAT]`);a=i[0].slice(1)}return(a.match(/%./gu)??[]).some(e=>/%[-_0^#0-9:EOcCDgGhIjklNpPrRuUVwWxXy+]/u.test(e))?C(`feature`,`date`,`format`,`date: this format directive or modifier is not supported`):b(xb(new Date,a,r.has(`u`)||n.vars.has(`TZ`))+`
|
|
197
|
+
`)}var _b=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],vb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],yb=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],bb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];function xb(e,t,n){let r=`get`+(n?`UTC`:``),[i,a,o,s,c,l,u]=[`FullYear`,`Month`,`Date`,`Hours`,`Minutes`,`Seconds`,`Day`].map(t=>e[r+t]()),d=(e,t=`0`)=>String(e).padStart(2,t),f={__proto__:null,Y:String(i),m:d(a+1),d:d(o),e:d(o,` `),H:d(s),M:d(c),S:d(l),T:[s,c,l].map(e=>d(e)).join(`:`),F:[i,d(a+1),d(o)].join(`-`),q:String(Math.floor(a/3)+1),s:String(Math.floor(e.getTime()/1e3)),a:_b[u],A:vb[u],b:yb[a],B:bb[a],Z:()=>Sb(e,n),z:()=>Cb(e,n),n:`
|
|
198
|
+
`,t:` `,"%":`%`};return t.replace(/%./gu,e=>{let t=f[e[1]];return typeof t==`function`?t():t??e})}function Sb(e,t){if(t)return`UTC`;try{return new Intl.DateTimeFormat(`en-US`,{timeZoneName:`short`}).formatToParts(e).find(e=>e.type===`timeZoneName`)?.value??`Local`}catch{return`Local`}}function Cb(e,t){if(t)return`+0000`;let n=-e.getTimezoneOffset(),r=n>=0?`+`:`-`,i=Math.abs(n);return`${r}${String(Math.floor(i/60)).padStart(2,`0`)}${String(i%60).padStart(2,`0`)}`}var wb={rg:cv,cut:Ov,tac:ub,tr:Fv,seq:fb,nl:Dv,which:mb,hexdump:am,base64:Im,...lb},Tb={whoami:hb,date:gb,od:om,xxd:sm,base32:Am,...Yp},Eb=new Map(Object.entries({all:`a`,"apparent-size":`A`,bytes:`b`,total:`c`,null:`0`,"count-links":`l`,summarize:`s`,"separate-dirs":`S`,"human-readable":`h`,"max-depth":`d`,"block-size":`B`,dereference:`L`,"dereference-args":`D`,"no-dereference":`P`})),Db={P:`none`,D:`args`,H:`args`,L:`all`};function Ob(e,t){let n=U(e,{short:[`0`,`a`,`A`,`b`,`c`,`h`,`H`,`k`,`l`,`m`,`s`,`S`,`L`,`D`,`P`],long:[...Eb.keys()].filter(e=>![`d`,`B`].includes(Eb.get(e))).concat([`inodes`,`si`]),valueShort:[`d`,`B`],valueLong:[`max-depth`,`block-size`]}),r={operands:n.positional.length?n.positional:[`.`],depth:1/0,flags:new Set,links:`none`,scale:null,stderr:``};for(let{name:e,value:t}of n.order){let n=Eb.get(e)??e;r.flags.add(n),Object.hasOwn(Db,n)&&(r.links=Db[n]),n===`d`&&(r.depth=Ab(t)),n===`B`&&(r.scale=Mb(t)),n===`b`&&(r.flags.add(`A`),r.scale={unit:1n}),(n===`k`||n===`m`)&&(r.scale={unit:n===`k`?1024n:1024n**2n}),(n===`h`||n===`si`)&&(r.scale={base:n===`h`?1024n:1000n,unit:1n})}let{flags:i}=r;if(i.has(`a`)&&i.has(`s`))throw Error(`cannot both summarize and show all entries`);if(i.has(`s`)&&i.has(`d`)){if(r.depth!==0)throw Error(`summarizing conflicts with --max-depth=${r.depth}`);r.stderr+=`du: warning: summarizing is the same as using --max-depth=0
|
|
199
|
+
`}if(i.has(`s`)&&(r.depth=0),i.has(`inodes`)&&i.has(`A`)&&(r.stderr+=`du: warning: options --apparent-size and -b are ineffective with --inodes
|
|
200
|
+
`),!r.scale){let e=t.vars.get(`DU_BLOCK_SIZE`)??t.vars.get(`BLOCK_SIZE`)??t.vars.get(`BLOCKSIZE`);try{r.scale=e===void 0?{unit:t.vars.has(`POSIXLY_CORRECT`)?512n:1024n}:Mb(e)}catch(e){throw e instanceof T?e:new T(`feature`,`invalid block size environment`,`invalid block size environment settings are not supported`)}}return i.has(`inodes`)&&(r.scale={...r.scale,unit:1n,suffix:r.scale.suffix?.endsWith(`B`)?`B`:``}),r.scale.base&&kb(t,r.scale.base),r}function kb(e,t=1024n){let n=e.vars.get(`LC_ALL`)||e.vars.get(`LC_NUMERIC`)||e.locale;if(!/^(?:C|POSIX|C\.UTF-?8)$/iu.test(n))throw new T(`feature`,`numeric locale`,`human-readable sizes in this numeric locale are not supported`);return{base:t,unit:1n}}function Ab(e){let t=/^[ \t\n\r\v\f]*([+-]?)(0[xX][\da-fA-F]+|0[0-7]*|[1-9]\d*)$/u.exec(e);if(!t)throw Error(`invalid maximum depth: ${e}`);let n=jb(t[2]);if(n>vn||t[1]===`-`&&n!==0n)throw Error(`invalid maximum depth: ${e}`);return Number(n)}function jb(e){return BigInt(/^0[0-7]+$/u.test(e)?`0o`+e:e)}function Mb(e){let t=e&&[`human-readable`,`si`].find(t=>t.startsWith(e));if(t)return{base:t===`si`?1000n:1024n,unit:1n};if(e.startsWith(`'`))throw new T(`feature`,`grouped block sizes`,`grouped block sizes are not supported`);let n=/^[ \t\n\r\v\f]*\+?(0[xX][\da-fA-F]+|0[0-7]*|[1-9]\d*)?([kKmMgGtTPEZYRQ](?:i?B|D)?)?$/u.exec(e);if(!n||!n[1]&&e!==n[2])throw Error(`invalid block size: ${e}`);let r=n[2]??``,i=r?`KMGTPEZYRQ`.indexOf(r[0].toUpperCase())+1:0,a=/[BD]$/u.test(r)&&!r.endsWith(`iB`)?1000n:1024n,o=(n[1]?jb(n[1]):1n)*a**BigInt(i);if(o===0n||o>bn)throw Error(`invalid block size: ${e}`);return{unit:o,suffix:n[1]||!r?``:(i===1&&r.endsWith(`B`)&&a===1000n?`k`:r[0].toUpperCase())+(r.endsWith(`B`)?a===1000n?`B`:`iB`:``)}}var Nb=4096,Pb=60,Fb=(e,t)=>t===`dir`?Nb:t===`link`&&e<Pb?0:Math.ceil(e/Nb)*Nb,Ib=(e,t)=>(e+t-1n)/t;function Lb(e,{base:t,unit:n,suffix:r=``}){if(!t)return String(Ib(e,n))+r;let i=1n,a=0;for(;e>=i*t;)i*=t,a++;if(!a)return String(e);let o=Ib(e*10n,i),s;return o<100n?s=`${o/10n}.${o%10n}`:(o=Ib(e,i),o===t?(a++,s=`1.0`):s=String(o)),s+(a===1&&t===1000n?`k`:`KMGTPEZYRQ`[a-1])}var Rb=15778476e3;function zb(e,t){for(let t of[`LS_BLOCK_SIZE`,`BLOCK_SIZE`,`BLOCKSIZE`])if(e.vars.has(t))throw new T(`feature`,`block size environment`,`${t} is not supported in a long listing`);let n=t?kb(e):null,r=e.user??`user`,i=e.createdAt,a=Date.now(),o=i<=a&&a-i<Rb,s=xb(new Date(i),o?`%b %e %H:%M`:`%b %e %Y`,e.vars.has(`TZ`)),c=e=>n?Lb(BigInt(e),n):String(e),l=e=>Math.max(0,...e.map(e=>e.length));return{lines(t,i){let a=t.map(({name:t,abs:n,kind:r,target:i})=>{let a=r===`dir`,o=a?Nb:e.fs.fileSize(n)??E(e.fs.readFile(n)).length,s=a?`drwx------`:r===`link`?`lrwxrwxrwx`:`-rw-------`,l=Fb(o,r)/512;return{name:r===`link`?`${t} -> ${i}`:t,mode:s,units:l,links:String(a?2+e.fs.listDir(n).dirs.length:1),size:c(o)}}),o=l(a.map(e=>e.links)),u=l(a.map(e=>e.size)),d=a.map(e=>`${e.mode} ${e.links.padStart(o)} ${r} ${r} ${e.size.padStart(u)} ${s} ${e.name}`);if(i){let e=a.reduce((e,t)=>e+t.units,0);d.unshift(`total `+(n?Lb(BigInt(e)*512n,n):String(e/2)))}return d}}}var Bb=Object.freeze({utf8:{down:`├── `,last:`└── `,through:`│\xA0\xA0 `,past:` `},ascii:{down:`|-- `,last:"`-- ",through:`| `,past:` `}}),Vb=e=>$t(e)?Bb.ascii:Bb.utf8;function Hb(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`a`,`d`,`F`],long:[`noreport`],valueShort:[`L`]});if(a.length>1)return C(`feature`,`tree`,`multiple roots`,`tree: multiple roots are not supported`);let o=i.has(`L`)?qn(i.get(`L`),`tree: -L`,i.get(`L`),{max:2147483647}):{value:1/0};if(o.error)return o.error;if(!o.value)return x(`tree: -L must be greater than zero`);let s=a[0]??`.`,{path:c,error:l}=P(n,`tree`,s),u=!l&&n.fs.isDir(c),d=k(n.cwd,s,n.fs,{follow:!1}),f=!!l&&!!d.error,p={dirs:u&&Gb(n.fs,c,r).length?1:0,files:+(!f&&!u)},m=[s+Ub(n,r,d,u)+(u?``:` [error opening dir]`)];if(u){let e=new Set,t=Sn();try{let i=Wb(n.fs,c,m,r,o.value,p,e,t,Vb(n));if(i)return i}finally{On(n.notes,{command:`tree`,action:`depth limit omitted contents of`,noun:[`directory`,`directories`],paths:e}),t.emit(n.notes,`tree`,`Hidden entries are included with -a.`)}}if(!r.has(`noreport`)){let e=`${p.dirs} ${p.dirs===1?`directory`:`directories`}`,t=`${p.files} ${p.files===1?`file`:`files`}`;m.push(``,r.has(`d`)?e:`${e}, ${t}`)}return{stdout:m.join(`
|
|
201
201
|
`)+`
|
|
202
|
-
`,stderr
|
|
203
|
-
`))),
|
|
204
|
-
|
|
205
|
-
`,set:!0}:e
|
|
206
|
-
`),e.unsupported.add({kind
|
|
207
|
-
`;)
|
|
208
|
-
`;)
|
|
209
|
-
`;if(n
|
|
210
|
-
`)throw
|
|
211
|
-
`;if(n
|
|
212
|
-
`)throw new
|
|
213
|
-
`}`;
|
|
214
|
-
`),t.byteLocale?r[0]:n.codePointAt(0)}function
|
|
215
|
-
`,n.failed=!0),
|
|
216
|
-
`,n.failed=!0,t?
|
|
217
|
-
|
|
218
|
-
+++ ${
|
|
219
|
-
${
|
|
220
|
-
--- ${
|
|
221
|
-
${
|
|
222
|
-
diff: Try 'diff --help' for more information.`,2);function
|
|
223
|
-
`,1)}}function
|
|
224
|
-
`):
|
|
225
|
-
`,2,!0)}if(
|
|
226
|
-
`);else if(r===o
|
|
227
|
-
`,1)}}var
|
|
228
|
-
`,2,!0)}else{let
|
|
229
|
-
`,2,!0):
|
|
230
|
-
`,2,!0),
|
|
231
|
-
`,1);if(
|
|
232
|
-
`,1)}for(let[
|
|
233
|
-
`,1);let
|
|
234
|
-
`)}var
|
|
235
|
-
`),
|
|
236
|
-
`;
|
|
237
|
-
`?
|
|
238
|
-
`?
|
|
202
|
+
`,stderr:``,exitCode:f?2:0}}function Ub(e,t,n,r){return t.has(`F`)?!n.error&&e.fs.isLink?.(n.path)===!0?`@`:r&&!t.has(`d`)?`/`:``:``}function Wb(e,t,n,r,i,a,o,s,c){let l=[{dir:t,prefix:``,items:Gb(e,t,r,s),i:0,depth:0}];for(;l.length;){let t=l.at(-1);if(t.i>=t.items.length){l.pop();continue}let{n:u,isDir:d,target:f}=t.items[t.i++];if([...u+(f??``)].some(e=>e.codePointAt(0)<32||e.codePointAt(0)===127||e===`\\`))return C(`feature`,`tree`,`filename escaping`,`tree: listing names requiring escaping is not supported`);let p=t.i===t.items.length,m=d&&r.has(`F`)&&!r.has(`d`)?`/`:``;if(n.push(t.prefix+(p?c.last:c.down)+u+(f===void 0?m:` -> `+f+m)),a[d?`dirs`:`files`]++,!d||f!==void 0)continue;let h=ht(t.dir,u);if(t.depth+1>=i){Gb(e,h,r).length&&o.add(h);continue}let g=Gb(e,h,r,s);l.push({dir:h,prefix:t.prefix+(p?c.past:c.through),items:g,i:0,depth:t.depth+1})}}function Gb(e,t,n,r=null){let{dirs:i,files:a,links:o}=e.listDir(t),s=o.map(n=>{let r=k(t,n,e);return{n,isDir:!r.error&&e.isDir(r.path),target:e.readLink(ht(t,n))}}),c=n.has(`d`)?s.filter(({isDir:e})=>e):[...a.map(e=>({n:e,isDir:!1})),...s];return r&&!n.has(`a`)&&r.collect(t,[...i,...c.map(({n:e})=>e)]),[...i.map(e=>({n:e,isDir:!0})),...c].filter(({n:e})=>n.has(`a`)||!e.startsWith(`.`)).sort((e,t)=>M(e.n,t.n))}var Kb=new Set([`name`,`iname`,`type`,`path`,`ipath`,`lname`,`ilname`,`size`,`mindepth`,`maxdepth`]),qb=(e,t)=>e===`-`+t||e===`--`+t;function Jb(e){let t={tokens:e,i:0,depth:{minDepth:0,maxDepth:1/0,deepestFirst:!1},hasAction:!1,batches:[],error:null},n=[];for(e[0]===`--`&&t.i++;t.i<e.length&&!/^(?:-.+|!|\()$/u.test(e[t.i]);)n.push(e[t.i++]);let r=Yb(t,0);if(t.error)return{error:t.error};if(!t.hasAction)for(let e of r)e.push({kind:`print`});return{starts:n.length?n:[`.`],...t.depth,groups:r,batches:t.batches}}function Yb(e,t){let n=[[]],r=!1;if(t>128)return e.error=C(`feature`,`find`,`expression depth`,`find: expression nesting above 128 is not supported`),n;for(;e.i<e.tokens.length&&!e.error;){let i=e.tokens[e.i];if(i===`)`){t||(e.error=x(`find: unexpected closing parenthesis`));break}if(i===`-a`||qb(i,`and`)||i===`-o`||qb(i,`or`)){if(r||n.at(-1).length===0){e.error=x(`find: ${i} with no left-hand expression`);break}(i===`-o`||qb(i,`or`))&&n.push([]),e.i++,r=i;continue}let a=Xb(e,t);a&&n.at(-1).push(a),r=!1}return!e.error&&r&&(e.error=x(`find: ${r} with no right-hand expression`)),!e.error&&t&&n.at(-1).length===0&&(e.error=x(`find: expected an expression`)),!e.error&&t&&(e.tokens[e.i]===`)`?e.i++:e.error=x(`find: missing closing parenthesis`)),n}function Xb(e,t){let n=e.i,r=!1;for(;e.tokens[e.i]===`!`||e.tokens[e.i]===`-not`;)r=!r,e.i++;let i=e.tokens[e.i++];if(i===`(`)return{kind:`group`,groups:Yb(e,t+1),negate:r};if(i===void 0||i===`)`||i===`-a`||i===`-o`||qb(i,`and`)||qb(i,`or`))return e.error=x(`find: -not or operator ${i??``} must be followed by a primary`),null;let a=i.startsWith(`--`)?i.slice(2):i.startsWith(`-`)?i.slice(1):null;if([`print`,`print0`,`prune`,`empty`].includes(a))return(a===`print`||a===`print0`)&&(e.hasAction=!0),{kind:a,negate:r};if(a===`depth`||a===`d`)return e.depth.deepestFirst=!0,{kind:`true`,negate:r};if(a===`exec`){let t=ix(e.tokens,e.i-1,r);return t.error?(e.error=t.error,null):(e.i=t.nextI+1,e.hasAction=!0,t.pred.mode===`batch`&&e.batches.push(t.pred),t.pred)}if(Kb.has(a)){if(e.i===e.tokens.length)return e.error=x(`find: ${i} requires a value`),null;let t=Zb(a,e.tokens[e.i++],r,e.depth);return t.error?(e.error=t.error,null):t}return i===`,`?(e.error=C(`feature`,`find`,`comma operator`,`find: comma expressions are not supported`),null):e.i-1>n&&!i.startsWith(`-`)?(e.error=x(`find: -not must be followed by a primary, got: ${i}`),null):(e.error=i===`--`||!i.startsWith(`-`)?x(`find: paths must precede expression: ${i}`):C(`option`,`find`,i,`find: unknown option: ${i}`),null)}function Zb(e,t,n,r){if(e===`type`){let r=rx(t);return r.error?r:{kind:e,negate:n,types:r.types}}if(e===`size`)return ex(t,n);if(e===`mindepth`||e===`maxdepth`){let i=qn(t,`find: -${e}`,t,{max:2147483647,digitsOnly:!0});return i.error?i:(r[e===`mindepth`?`minDepth`:`maxDepth`]=i.value,{kind:`true`,negate:n})}return{kind:e,negate:n,re:Gg(t,{ignoreCase:e.startsWith(`i`)})}}var Qb={__proto__:null,b:512,c:1,w:2,k:1024,M:1048576,G:1073741824},$b=/^([+-]?)(\d+)([a-zA-Z]?)$/u;function ex(e,t){if(e===``)return{error:x(`find: invalid null argument to -size`)};let n=$b.exec(e);if(!n||!Number.isSafeInteger(Number(n[2])))return{error:x(`find: Invalid argument \`${e}' to -size`)};let[,r,i,a]=n,o=Qb[a===``?`b`:a];return o===void 0?{error:x(`find: invalid -size type \`${a}'`)}:{kind:`size`,negate:t,sign:r,count:Number(i),unit:o}}var tx=`fdl`,nx=`bcps`;function rx(e){let t=e.split(`,`),n=t.find((e,n)=>t.indexOf(e)!==n);if(n!==void 0)return{error:x(`find: Duplicate file type '${n}' in the argument list to -type.`)};if(t.every(e=>e.length===1&&tx.includes(e)))return{types:t};let r=`find: -type/--type expects 'f', 'd' or 'l', got: ${e}`;return{error:t.every(e=>e.length===1&&(tx+nx).includes(e))?C(`option`,`find`,`-type ${e}`,r):x(r)}}function ix(e,t,n){let r=t+1;for(;r<e.length&&e[r]!==`;`&&(e[r]!==`+`||e[r-1]!==`{}`);)r++;if(r>=e.length)return{error:x("find: -exec: missing terminator (`;` or `{} +`); quote or escape `;`")};if(r===t+1)return{error:x(`find: -exec: requires a command`)};let i=e.slice(t+1,r),a=e[r]===`;`?`each`:`batch`;if(a===`batch`){if(i.slice(0,-1).some(e=>e.includes(`{}`)))return{error:x("find: -exec ... +: only one instance of `{}` is supported")};if(n)return{error:C(`feature`,`find`,`-not -exec ... +`,"find: `-not -exec ... +` is not supported (the `+` form has no meaningful negation)")}}let o={kind:`exec`,mode:a,cmd:i[0],args:i.slice(1),negate:n};return a===`batch`&&(o.collected=[]),{pred:o,nextI:r}}var ax={file:`f`,dir:`d`,link:`l`},ox=(e,t)=>e.kind===`dir`?Nb:t.fs.fileSize?.(e.abs)??E(t.fs.readFile(e.abs)).length;async function sx(e,t,n){let r=Jb(t);if(r.error)return r.error;if(e!==``&&t.some(e=>e===`-exec`||e===`--exec`))return C(`feature`,`find`,`-exec stdin`,`find: passing shared standard input to -exec is not supported`);let{starts:i,minDepth:a,maxDepth:o,deepestFirst:s,groups:c,batches:l}=r,u=G(),d=new Set;try{for(let e of i){let{path:t,error:r}=P(n,`find`,e,{follow:!1});if(r){fx(u,n.flushOutput(G(`find: '${e}': ${r}
|
|
203
|
+
`))),u.exitCode=1;continue}let i=new Set,l=yt(n.fs,t,o,e=>!i.has(e));for(let r of s?cx(l):l){let s=px(e,t,r.path);if(r.depth>=a&&await lx(c,{kind:r.kind,path:s,abs:r.path,prune:i},n,u),r.kind!==`dir`||r.depth!==o||i.has(r.path))continue;let{dirs:l,files:f,links:p}=n.fs.listDir(r.path);(l.length||f.length||p.length)&&d.add(s)}}for(let e of l){if(e.collected.length===0)continue;let t=e.args.slice(0,-1).concat(e.collected);await dx(e.cmd,t,n,u)||(u.exitCode=1)}}finally{On(n.notes,{command:`find`,action:`depth limit omitted contents of`,noun:[`directory`,`directories`],paths:d})}return u}function*cx(e){let t=[];for(let n of e){for(;t.length>0&&t.at(-1).depth>=n.depth;)yield t.pop();n.kind===`dir`?t.push(n):yield n}for(;t.length>0;)yield t.pop()}async function lx(e,t,n,r){for(let i of e){let e=!0;for(let a of i)if(await ux(a,t,n,r)===!!a.negate){e=!1;break}if(e)return!0}return!1}function ux(e,t,n,r){if(e.kind===`group`)return lx(e.groups,t,n,r);if(e.kind===`true`)return!0;if(e.kind===`type`)return e.types.includes(ax[t.kind]);if(e.kind===`name`||e.kind===`iname`)return e.re.test(t.path.replace(/\/+$/u,``).split(`/`).at(-1)||`/`);if(e.kind===`prune`)return t.kind===`dir`&&t.prune.add(t.abs),!0;if(e.kind===`empty`){if(t.kind===`link`)return!1;if(t.kind===`file`)return n.fs.isEmptyFile(t.abs);let{dirs:e,files:r,links:i}=n.fs.listDir(t.abs);return e.length+r.length+i.length===0}if(e.kind===`path`||e.kind===`ipath`)return e.re.test(t.path);if(e.kind===`lname`||e.kind===`ilname`)return t.kind===`link`&&e.re.test(n.fs.readLink?.(t.abs)??``);if(e.kind===`size`){let r=Math.ceil(ox(t,n)/e.unit);return e.sign===`+`?r>e.count:e.sign===`-`?r<e.count:r===e.count}return e.kind===`print`||e.kind===`print0`?(fx(r,n.flushOutput({stdout:t.path+(e.kind===`print`?`
|
|
204
|
+
`:`\0`),stderr:``,exitCode:0})),!0):e.mode===`batch`?(e.collected.push(t.path),!0):dx(e.cmd,e.args.map(e=>e.replaceAll(`{}`,t.path)),n,r)}async function dx(e,t,n,r){let i=await n.dispatch(e,t,``);return fx(r,i),i.exitCode===0}function fx(e,t){let n=e.exitCode;K(e,t),e.exitCode=n}function px(e,t,n){if(n===t)return e;let r=gt(t,n);return e.endsWith(`/`)?e+r:e+`/`+r}var mx=1e5,hx=/^([+-]?\d+)\.\.([+-]?\d+)(?:\.\.([+-]?\d+))?$/u,gx=/^([A-Za-z])\.\.([A-Za-z])(?:\.\.([+-]?\d+))?$/u,_x=2n**63n-1n,vx=-(2n**63n),yx=e=>{let t=BigInt(e);return t>_x||t<vx?null:t},bx=(e,t)=>e.mask===null?`0`:e.mask[t];function xx(e,t=mx){if(!e.value.includes(`{`))return[e];let n=Sx(e);for(let r=0;r<e.value.length;r++){if(e.value[r]!==`{`||bx(e,r)!==`0`)continue;let i=n.get(r);if(!i)continue;let{end:a,commas:o}=i,s=o.length?[]:wx(_r(e,r+1,a));if(o.length){let t=r+1;for(let n of[...o,a])s.push(_r(e,t,n)),t=n+1}if(s===null)continue;let c=_r(e,0,r),l=_r(e,a+1),u=[];for(let n of s)if(u.push(...xx(Sr(c,n,l),t)),u.length>t)throw new T(`feature`,`brace expansion limit`,`brace expansion \`${e.value}\` would produce more than ${t} words`);return u}return[e]}function Sx(e){let t=[],n=new Map;for(let r=0;r<e.value.length;r++){if(bx(e,r)!==`0`)continue;let i=e.value[r];if(i===`{`)t.push({start:r,commas:[]});else if(i===`}`&&t.length){let{start:e,commas:i}=t.pop();n.set(e,{end:r,commas:i})}else i===`,`&&t.length&&t.at(-1).commas.push(r)}return n}function Cx(e){if(e.mask!==null&&/[12]/u.test(e.mask))return null;let t=hx.exec(e.value),n=t??gx.exec(e.value);if(!n)return null;let[r,i]=t?[yx(t[1]),yx(t[2])]:[BigInt(n[1].codePointAt(0)),BigInt(n[2].codePointAt(0))],a=n[3]===void 0?1n:yx(n[3]);if(r===null||i===null||a===null||a===vx)return null;let o=i>=r?i-r:r-i;return o>_x?null:{num:t,range:n,from:r,to:i,step:(a<0n?-a:a)||1n,span:o}}function wx(e){let t=Cx(e);if(t===null)return null;let{num:n,from:r,to:i,step:a,span:o}=t,s=o/a+1n;if(s>mx)throw new T(`feature`,`brace expansion limit`,`brace expansion \`{${e.value}}\` would produce ${s} words (limit ${mx})`);let c=n?Tx(n[1],n[2]):0,l=[],u=i>=r?1n:-1n;for(let e=0n;e<s;e++){let t=r+u*e*a,i=n?Ex(t,c):String.fromCodePoint(Number(t));l.push({value:i,mask:null})}return l}function Tx(e,t){let n=e=>/^-?0\d/u.test(e);return n(e)||n(t)?Math.max(e.length,t.length):0}function Ex(e,t){let n=String(e<0n?-e:e),r=e<0n?`-`:``;return r+n.padStart(t-r.length,`0`)}var Dx=new Set([`CDPATH`,`GLOBIGNORE`,`GLOBSORT`,`BASH_COMPAT`,`POSIXLY_CORRECT`,`PATH`,`RANDOM`,`SRANDOM`,`SECONDS`,`EPOCHSECONDS`,`EPOCHREALTIME`,`BASHOPTS`,`SHELLOPTS`,`OPTIND`]),Ox=class extends Map{constructor(e){super(e),this.unsetNames=new Set(e?.unsetNames)}set(e,t){if(this.expansionTargets?.has(e))throw new T(`feature`,`temporary assignment side effects`,`modifying a temporary assignment target while expanding assignment values is not supported`);if(Dx.has(e)||e===`TZ`&&![`UTC`,`UTC0`,``].includes(t))throw new T(`feature`,e,`shell variable ${e} is not supported with this value`);return(e===`LANG`||e.startsWith(`LC_`))&&Zt(e,t),this.bound?.add(e),this.unsetNames?.delete(e),super.set(e,t)}delete(e){return this.unsetNames.add(e),super.delete(e)}},kx=new Set([`$`,`!`,`0`,`-`,`_`]),Ax=new Set(`PPID.UID.EUID.BASHPID.BASH_SUBSHELL.BASH_VERSION.BASH_VERSINFO.BASH_REMATCH.DIRSTACK.PIPESTATUS.FUNCNAME.LINENO.REPLY.BASH.BASH_COMMAND.BASH_ARGV0.BASH_ARGC.BASH_ARGV.BASH_SOURCE.BASH_LINENO.BASH_ALIASES.BASH_CMDS.GROUPS.HOSTTYPE.OSTYPE.MACHTYPE.HOSTNAME.SHLVL.SHELL.TERM.PS4.OPTERR.HISTCMD.BASH_EXECUTION_STRING.BASH_LOADABLES_PATH.COMP_WORDBREAKS`.split(`.`));function jx(e,t){if(kx.has(e))throw Nx(e);let n=Fx(e,t);if(n)return n;if(Mx(e))throw Nx(e);return{value:``,set:!1}}var Mx=e=>Dx.has(e)||Ax.has(e),Nx=e=>new T(`feature`,`$${e}`,`shell parameter ${e} is not supported`),Px=(e,t)=>Fx(e,t)?.value??``;function Fx(e,t){return e===`?`?{value:String(t.lastExit),set:!0}:e===`#`?{value:`0`,set:!0}:e===`@`?{value:``,set:!1,omit:!0}:e===`*`||/^[1-9][0-9]*$/u.test(e)?{value:``,set:!1}:t.vars.has(e)?{value:t.vars.get(e),set:!0}:t.vars.unsetNames.has(e)?{value:``,set:!1}:e===`IFS`?{value:`
|
|
205
|
+
`,set:!0}:e===`PWD`?{value:t.cwd,set:!0}:e===`HOME`?{value:t.home,set:!0}:e===`USER`||e===`LOGNAME`?{value:t.user,set:!0}:e===`LANG`?{value:t.locale,set:!0}:null}function Ix(e,t){if(kx.has(e))throw new T(`feature`,`$${e}`,`shell parameter ${e} is not supported (this terminal runs no process)`);let n=Fx(e,t);if(n)return n;if(Mx(e))throw Nx(e);return Lx(t,`$${e}`,`warning: $${e} is unset (this shell has no environment variables; only \`for\` bindings and \`NAME=value\` assignments)`),{value:``}}function Lx(e,t,n){Kv(e,n+`
|
|
206
|
+
`),e.unsupported.add({kind:`feature`,command:null,detail:t,message:n})}var Rx=16e6,zx=e=>new T(`feature`,"${",e);function Bx(e,t,n){if(e_(t))throw zx(`extended glob patterns in parameter expansion are not supported`);let r=r_({value:t.value,mask:t.mask??null}),i=n[0]===`#`,a=qx(r);if(a!==null)return i?e.startsWith(a)?e.slice(a.length):e:e.endsWith(a)?e.slice(0,e.length-a.length):e;let o=Gg(r,{bash:!0}),s=i===(n.length===2),c=s?e.length:0,l=0;for(;c>=0&&c<=e.length;){let t=i?e.slice(0,c):e.slice(c);if(l+=t.length+r.length,l>Rx)throw zx(`parameter pattern removal exceeds the matching work limit`);if(o.test(t))return i?e.slice(c):e.slice(0,c);c=Kx(e,c,s)}return e}function Vx(e,t,n,r){let i=``;if(!r&&/^[#%]/u.test(t.value)&&(!t.mask||t.mask[0]===`0`)&&(i=t.value[0],t={value:t.value.slice(1),mask:t.mask?.slice(1)??null}),e_(t))throw zx(`extended glob patterns in parameter expansion are not supported`);let a=r_({value:t.value,mask:t.mask??null}),o={work:0},s=Gx(n,o);if(!a)return i===`#`?s(``)+e:i===`%`?e+s(``):e;if((/\\+$/u.exec(a)?.[0].length??0)%2)throw zx(`unescaped trailing backslashes in replacement patterns are not supported`);let c=qx(a),l=c===null?Ux(e,a,i,o):Hx(e,c,i),u=[],d=0;do{let t=l(d);if(!t)break;let[n,i]=t,a=s(e.slice(n,i));if(Wx(o,n-d),u.push(e.slice(d,n),a),d=i,!r)break;if(n===i){let t=Kx(e,d,!1);u.push(e.slice(d,t)),d=t}}while(d<e.length);return u.push(e.slice(d)),u.join(``)}function Hx(e,t,n){return r=>{let i=n===`%`?e.length-t.length:e.indexOf(t,r);return i<r||n===`#`&&i!==0||e.slice(i,i+t.length)!==t?null:[i,i+t.length]}}function Ux(e,t,n,r){let i=Gg(t,{bash:!0});return a=>{for(let o=a;o<=e.length;o=Kx(e,o,!1)){for(let a=e.length;a>=o;a=Kx(e,a,!0)){if(Wx(r,a-o+t.length),i.test(e.slice(o,a)))return[o,a];if(n===`%`)break}if(n===`#`)break}return null}}function Wx(e,t){if(e.work+=t,e.work>Rx)throw zx(`parameter replacement exceeds the matching work limit`)}function Gx(e,t){let n=``;for(let t=0;t<e.value.length;t++){let r=e.value[t];e.mask?.[t]!==void 0&&e.mask[t]!==`0`&&(r===`&`||r===`\\`)&&(n+=`\\`),n+=r}return e=>{let r=[];for(let i=0;i<n.length;i++){let a=n[i],o=a===`\\`&&/[&\\]/u.test(n[i+1]??``)?n[++i]:a===`&`?e:a;Wx(t,o.length),r.push(o)}return r.join(``)}}function Kx(e,t,n){let r=t+(n?-1:1);return r>0&&r<e.length&&/[\uDC00-\uDFFF]/u.test(e[r])&&/[\uD800-\uDBFF]/u.test(e[r-1])?r+(n?-1:1):r}function qx(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(r===`\\`&&n+1<e.length)t+=e[++n];else{if(/[*?[]/u.test(r))return null;t+=r}}return t}var Jx=e=>BigInt.asIntN(64,e),J=(e,t)=>new T(`feature`,`arithmetic `+e,`arithmetic expansion: `+t);function Yx(e){let t=10n,n=!1,r=0n,i=0;if(e[0]===`0`&&(i=1,t=8n,n=!0,(e[1]===`x`||e[1]===`X`)&&(t=16n,i=2)),i===2&&e.length===2)throw J(`number`,`hexadecimal constant has no digits`);for(;i<e.length;i++){let a=e[i];if(a===`#`){if(n||r<2n||r>64n||i===e.length-1)throw J(`number`,`invalid arithmetic base or integer constant`);t=r,r=0n,n=!0;continue}let o=a.codePointAt(0),s=o>=48&&o<=57?o-48:o>=97&&o<=122?o-87:o>=65&&o<=90?o-(t<=36n?55:29):a===`@`?62:a===`_`?63:-1;if(s<0||BigInt(s)>=t)throw J(`number`,`value too great for base in `+e.slice(0,40));r=Jx(r*t+BigInt(s))}return r}function Xx(e,t){if(t<0n)throw J(`exponent`,`exponent less than zero`);let n=1n;for(let r=t,i=e;r!==0n;r>>=1n,i=Jx(i*i))r&1n&&(n=Jx(n*i));return n}function Zx(e,t,n,r){switch(e){case`+`:return Jx(t+n);case`-`:return Jx(t-n);case`*`:return Jx(t*n);case`/`:case`%`:{if(n===0n&&r)throw J(`division`,`division by zero`);let i=n===0n?1n:n;return Jx(e===`/`?t/i:t%i)}case`**`:return Xx(t,n);case`<<`:case`>>`:if(n<0n||n>63n)throw J(`shift count`,`shift counts outside 0..63 are not supported`);return Jx(e===`<<`?t<<n:t>>n);case`&`:return t&n;case`^`:return t^n;case`|`:return t|n;case`<`:return BigInt(t<n);case`<=`:return BigInt(t<=n);case`>`:return BigInt(t>n);case`>=`:return BigInt(t>=n);case`==`:return BigInt(t===n);case`!=`:return BigInt(t!==n);default:throw J(`operator`,`unsupported operator `+e)}}var Qx=new Set([`=`,`+=`,`-=`,`*=`,`/=`,`%=`,`<<=`,`>>=`,`&=`,`^=`,`|=`]),$x=new Map([[`||`],[`&&`],[`|`],[`^`],[`&`],[`==`,`!=`],[`<`,`<=`,`>`,`>=`],[`<<`,`>>`],[`+`,`-`],[`*`,`/`,`%`],[`**`]].flatMap((e,t)=>e.map(e=>[e,t+3]))),eS=/^(?:<<=|>>=|\+\+|--|\*\*|&&|\|\||<<|>>|[+\-*/%&^|=!<>]=|[+\-*/%&^|=!~<>?:,()])/u;function tS(e){let t=[];for(let n=0;n<e.length;){if(t.length>=1e4)throw J(`limit`,`expression token limit exceeded`);let r=e.slice(n),i=/^[ \t\n]+/u.exec(r);if(i){n+=i[0].length;continue}let a=/^[0-9][A-Za-z0-9#@_]*/u.exec(r),o=/^[A-Za-z_][A-Za-z0-9_]*/u.exec(r),s=eS.exec(r);if(a)t.push({type:`number`,value:Yx(a[0]),raw:a[0]});else if(o)t.push({type:`name`,value:o[0],raw:o[0]});else if(s)t.push({type:`operator`,value:s[0],raw:s[0]});else throw J(r[0]===`[`||r[0]===`]`?`arrays`:`syntax`,`unsupported expression token `+JSON.stringify(r[0]));n+=t.at(-1).raw.length}return t.push({type:`end`,value:``}),t}function nS(e){let t=new rS(tS(e));if(t.token.type===`end`)return{type:`number`,value:0n};let n=t.expression();if(t.token.type!==`end`)throw J(`syntax`,`unexpected token `+t.token.value);return n}var rS=class{constructor(e){this.tokens=e,this.at=0,this.depth=0}get token(){return this.tokens[this.at]}next(){return this.tokens[this.at++]}accept(e){return this.token.value===e?this.next():null}expect(e){if(!this.accept(e))throw J(`syntax`,`expected `+e)}expression(e=0){if(++this.depth>128)throw J(`limit`,`expression nesting limit exceeded`);let t=this.prefix();for(;;){let n=this.token.value;if(n===`?`&&e<=2){this.next();let e=this.expression();this.expect(`:`),t={type:`condition`,test:t,consequent:e,alternate:this.expression(2)};continue}let r=Qx.has(n),i=n===`,`?0:r?1:$x.get(n);if(i===void 0||i<e)break;if(this.next(),r&&t.type!==`name`)throw J(`assignment`,`attempted assignment to non-variable`);let a=this.expression(i+(r||n===`**`?0:1));t={type:r?`assignment`:`binary`,op:n,left:t,right:a}}return this.depth--,t}prefix(){let e=this.next();if([`+`,`-`,`!`,`~`].includes(e.value))return{type:`unary`,op:e.value,value:this.expression(14)};if(e.value===`++`||e.value===`--`){let t=this.next();if(t.type!==`name`)throw J(`increment`,`increment requires a scalar variable`);return{type:`increment`,op:e.value,name:t.value,post:!1}}if(e.value===`(`){let e=this.expression();return this.expect(`)`),{type:`group`,value:e}}if(e.type!==`number`&&e.type!==`name`)throw J(`syntax`,`operand expected`);return e.type===`name`&&(this.token.value===`++`||this.token.value===`--`)?{type:`increment`,op:this.next().value,name:e.value,post:!0}:e}};function iS(e,t,n=0){return aS(e,{ctx:t,steps:1e4,characters:2e5},n,!0)}function aS(e,t,n,r){if(typeof e!=`string`)throw J(`value`,`expression must be a string`);if(t.characters-=e.length,e.length>1e5||t.characters<0)throw J(`limit`,`expression size limit exceeded`);if(n>128)throw J(`limit`,`variable recursion limit exceeded`);return cS(nS(e),t,n+1,r)}function oS(e,t,n,r){if(!r)return 0n;let i;try{i=jx(e,t.ctx)}catch(e){throw J(`variable`,L(e))}return i.set&&i.value!==``?aS(i.value,t,n+1,!0):0n}function sS(e,t,n,r){if(r)try{jx(e,n.ctx),n.ctx.vars.set(e,t.toString())}catch(e){throw J(`assignment`,L(e))}return t}function cS(e,t,n,r){if(--t.steps<0||n>128)throw J(`limit`,`expression evaluation limit exceeded`);let i=(e,i=r)=>cS(e,t,n+1,i);switch(e.type){case`number`:return e.value;case`name`:return oS(e.value,t,n,r);case`group`:return i(e.value);case`unary`:{let t=i(e.value);return e.op===`+`?t:e.op===`-`?Jx(-t):e.op===`!`?BigInt(t===0n):~t}case`increment`:{let i=oS(e.name,t,n,r),a=sS(e.name,Jx(i+(e.op===`++`?1n:-1n)),t,r);return e.post?i:a}case`assignment`:{let a=e.left.value,o=e.op===`=`?0n:oS(a,t,n,r),s=i(e.right);return sS(a,e.op===`=`?s:Zx(e.op.slice(0,-1),o,s,r),t,r)}case`condition`:{let t=i(e.test)!==0n,n=i(e.consequent,r&&t),a=i(e.alternate,r&&!t);return t?n:a}case`binary`:{let t=i(e.left),n=r&&(e.op===`&&`?t!==0n:e.op!==`||`||t===0n),a=i(e.right,n);return e.op===`,`?a:e.op===`&&`?BigInt(t!==0n&&a!==0n):e.op===`||`?BigInt(t!==0n||a!==0n):Zx(e.op,t,a,r)}default:throw J(`syntax`,`unsupported expression`)}}var lS=e=>new T(`feature`,"${",e);async function uS(e,t,n,r){if(e.name===`@`||e.name===`*`)throw lS(`substring and replacement of positional parameter lists are not supported`);if(!t.set)return t;if(e.operator===`:`)try{return{value:await dS(t.value,e.word,n,r)}}catch(e){throw e.halt=!0,e}let i=e.word,a=0;for(;i[a]===`\\`&&i[a+1]===`
|
|
207
|
+
`;)a+=2;let o=fS(i,`/`,r.readExpansion,i[a]===`/`?a+1:0),s=await r.expand(i.slice(0,o),{pattern:!0}),c=await r.expand(o<i.length?i.slice(o+1):``,{replacement:!0});return{value:Vx(t.value,s,c,e.operator===`//`)}}async function dS(e,t,n,r){if(/\P{ASCII}/u.test(e))throw lS(`locale-dependent slicing of non-ASCII parameters is not supported`);let i=fS(t,`:`,r.readExpansion),a=async e=>iS((await r.expand(e,{arithmetic:!0})).value,n),o=await a(t.slice(0,i)),s=BigInt(e.length);if(o<0n&&(o+=s),o<0n||o>s)return``;let c=s;if(i<t.length){let e=await a(t.slice(i+1));if(c=e<0n?s+e:o+e,c>vn)throw lS(`substring length overflows the shell integer range`);if(c<o){let e=Error(`${t.slice(i+1)}: substring expression < 0`);throw e.exitCode=1,e.halt=!0,e}}return e.slice(Number(o),Number(c>s?s:c))}function fS(e,t,n,r=0){let i=0,a=null,o=0;for(let s=r;s<e.length;s++){let r=e[s];if(a===`'`){r===`'`&&(a=null);continue}if(a===`ansi`){r===`\\`?s++:r===`'`&&(a=null);continue}if(r===`\\`){s++;continue}if(t===`:`&&(r===`'`||r===`"`))throw lS(`quoted substring arithmetic is not supported`);if(r===`"`){a=a===`"`?null:`"`;continue}if(r===`'`&&!a){a=r;continue}if(r===`$`){let r=n(e,s,0,t===`:`||a===`"`);if(r){s+=r.raw.length-1;continue}let i=s+1;for(;e[i]===`\\`&&e[i+1]===`
|
|
208
|
+
`;)i+=2;if(!a&&e[i]===`'`){a=`ansi`,s=i;continue}}if(!a){if(t===`:`){if(r===`(`)i++;else if(r===`)`)i--;else if(i===0&&r===`?`)o++;else if(i===0&&r===`:`&&o){o--;continue}if(i!==0)continue}if(r===t)return s}}return e.length}var pS=/^[A-Za-z_][A-Za-z0-9_]*$/u;async function mS(e,t,n){let{lookup:r,expand:i}=n,{name:a,operator:o,word:s=``}=e,c=r(a,{quiet:o!==``});if(!o)return c;if(o===`length`)return hS(a,c.value,t);if(o===`:`||o.startsWith(`/`))return uS(e,c,t,n);if(o[0]===`#`||o[0]===`%`)return!c.value||!s?c:{value:Bx(c.value,await i(s,{pattern:!0}),o)};let l=!c.set||o.startsWith(`:`)&&c.value===``,u=o[o.length-1];if(u===`+`)return l?{value:``,...c.omit?{omit:!0}:{}}:i(s,{});if(!l)return c;if(u===`?`)throw await gS(a,s,o.startsWith(`:`),i,t);if(u!==`=`)return i(s,{});if(!pS.test(a)){let e=Error(`$${a}: cannot assign in this way`);throw e.exitCode=1,e.halt=!0,e}let d=await i(s,{assignment:!0});return t.vars.set(a,d.value),{value:t.vars.get(a)}}function hS(e,t,n){if(e===`*`||e===`@`)return{value:`0`};if($t(n))return{value:String(p(t).length)};if(/\P{ASCII}/u.test(t))throw Hr(`#`+e,`locale-dependent length of non-ASCII parameters is not supported`);return{value:String(t.length)}}async function gS(e,t,n,r,i){let a=t?_S(await r(t,{error:!0}),i):n?`parameter null or not set`:`parameter not set`,o=Error(`${e}: ${a}`);return o.exitCode=1,o.halt=!0,o}function _S(e,t){let n=t.vars.get(`IFS`)??`
|
|
209
|
+
`;if(n===``)return e.value;if(n!==`
|
|
210
|
+
`)throw Hr(`?`,`custom IFS separators in parameter errors are not supported`);let r=new Set(e.empty),i=[],a=!1,o=``,s=()=>{(o||a)&&i.push(o),o=``,a=!1};for(let t=0;t<=e.value.length&&(r.has(t)&&(a=!0),t!==e.value.length);t++){let n=e.value[t],r=!e.mask||e.mask[t]===`0`;r&&/[ \t\n]/u.test(n)?s():(o+=n,a||=!r)}return s(),i.join(` `)}function vS(e,t){return yS(e,{cwd:e.cwd,lastExit:e.lastExit,vars:new Ox(e.vars),functions:new Map(e.functions),loopDepth:0,errexit:e.errexit,errexitOff:e.errexitOff},t)}async function yS(e,t,n){let r=Object.fromEntries(Object.keys(t).map(t=>[t,e[t]]));Object.assign(e,t);try{return await n()}finally{Object.assign(e,r)}}async function bS(e,t){let n=[],r=e[0],i=r?.value===`export`&&!/[12]/u.test(r.mask??``)&&!r.empty?.length;for(let r of e)for(let e of xx(r)){let a=i&&e===r&&vr(r);if(a){let r=await CS(e,a.end,t);n.push({value:r,mask:`1`.repeat(r.length),q:!0})}else n.push(...await kS(DS(e,t,e!==r&&`word`),t,!0))}return{argv:xS(n,t)}}function xS(e,t){let n=[];for(let r of e){if($g(r)){let e=i_(r,t);if(e.length>0){n.push(...e);continue}}(r.value!==``||r.q)&&n.push(r.value)}return n}async function SS(e,t){let{argv:n}=await bS([e],t);return n.length===1?{value:n[0]}:{error:`${e.value}: ambiguous redirect`}}async function CS(e,t,n){let r=_r(e,t);return e.value.slice(0,t)+await wS(r,n,!0)}async function wS(e,t,n=!1){return(await kS(DS(e,t,n),t,!1,n))[0].value}var TS=e=>e.vars.get(`HOME`)??e.home,ES=(e,t)=>e.mask===null?`0`:e.mask[t];function DS(e,t,n=!1){let r=br(e,n);if(r.size===0)return e;let i=e.value,a=TS(t),o=``,s=``,c=[];for(let t=0;t<i.length;t++){if(e.empty?.includes(t)&&c.push(o.length),r.has(t)){let e=a===`/`&&i[t+1]===`/`?``:a;o+=e,s+=`1`.repeat(e.length);continue}o+=i[t],s+=ES(e,t)}return e.empty?.includes(i.length)&&c.push(o.length),{value:o,mask:/[12]/u.test(s)?s:null,...c.length?{empty:c}:{}}}function OS(e,t){return yS(t,{strictExpansion:!0},()=>AS(DS(e,t),t))}async function kS(e,t,n,r=!1){let i=await AS(e,t,r);return n?NS(i,t):[i]}async function AS(e,t,n=!1){let r={value:``,mask:``,empty:[],split:!1},i=(e,t)=>{r.value+=e,r.mask+=t};e.value===``&&e.mask!==null&&r.empty.push(0);for(let a=0;a<=e.value.length&&(e.empty?.includes(a)&&r.empty.push(r.value.length),a!==e.value.length);a++){let o=ES(e,a),s=e.value[a];if(o===`0`&&(s===`<`||s===`>`)&&e.value[a+1]===`(`)throw new T(`feature`,`${s}(`,`process substitution (\`${s}(\u2026)\`) is not supported`);let c=o!==`1`&&(s===`$`||s==="`"),l=e.value[a+1]===`(`||e.value[a+1]===`{`,u=c?jS(e,a,s,o,l):null;if(!u){i(e.value[a],o);continue}a+=u.raw.length-1;let d=await MS(u,t,o===`2`,n);if(d.literal){i(u.raw,o.repeat(u.raw.length));continue}if(!d.omit){if(o===`2`)d.value===``&&r.empty.push(r.value.length),i(d.value,`2`.repeat(d.value.length));else{r.split=!0;for(let e of d.empty??[])r.empty.push(r.value.length+e);d.q&&!d.value&&!d.empty?.length&&r.empty.push(r.value.length),i(d.value,d.mask??`0`.repeat(d.value.length))}}}return r.q=r.empty.length>0||/[12]/u.test(r.mask),r}function jS(e,t,n,r,i){return n==="`"?wr(e.value,t):i?vi(e.value,t,0,r===`2`):_i(e.value,t,e.mask)}async function MS(e,t,n,r){if(e.command!==void 0)return{value:await t.substitute(e.command,e.backtick)};if(e.arithmetic!==void 0)try{let n=await yS(t,{strictExpansion:!0},()=>wS(zi(e.arithmetic,!0),t));return{value:String(iS(n,t))}}catch(e){throw e.halt=!0,e}return e.parameter===void 0?t.strictExpansion?jx(e.name,t):Ix(e.name,t):e.parameter.operator===``&&!t.strictExpansion&&!/^[0-9]{2,}$/u.test(e.parameter.name)?Ix(e.parameter.name,t):mS(e.parameter,t,{lookup:e=>jx(e,t),readExpansion:vi,expand:(e,i={})=>{let a=i.pattern||i.error||i.replacement||i.arithmetic,o=zi(e,i.arithmetic||!a&&n),s=!a&&(i.assignment||r),c=i.assignment?`parameterAssign`:s?!0:`parameter`;return yS(t,{strictExpansion:!0},()=>AS(i.arithmetic?o:DS(o,t,c),t,s))}})}function NS(e,t){if(!e.split)return e.value!==``||e.q?[e]:[];let n=t.vars.get(`IFS`)??`
|
|
211
|
+
`;if(n!==``&&n!==`
|
|
212
|
+
`)throw new T(`feature`,`IFS`,`custom IFS separators are not supported`);let r=[],i={value:``,mask:``,q:!1},a=()=>{(i.value!==``||i.q)&&r.push(i),i={value:``,mask:``,q:!1}},o=new Set(e.empty);for(let t=0;t<=e.value.length&&(o.has(t)&&(i.q=!0),t!==e.value.length);t++){let r=e.value[t],o=e.mask[t];if(n!==``&&o===`0`&&/[ \t\n]/u.test(r)){a();continue}i.value+=r,i.mask+=o,i.q||=o!==`0`}return a(),r}function PS(e,t,n){let r=Ob(t,n),i={ctx:n,options:r,seen:new Set,result:G(),total:0n,failed:!1};r.stderr&&K(i.result,n.flushOutput(G(r.stderr)));for(let e of r.operands){let t=e.length>2?e.replace(/\/+$/u,`/`):e,a=P(n,`du`,t,{follow:r.links!==`none`});if(a.error){K(i.result,n.flushOutput(x(`du: cannot access ${q(t,n)}: ${a.error}`))),i.failed=!0;continue}try{FS(a.path,t,i)}catch(e){let t=S(e),r=`du: `+L(e);if(t&&n.unsupported.add({...t,command:t.command??`du`,message:r}),K(i.result,n.flushOutput(x(r))),i.failed=!0,t)return i.result}}return r.flags.has(`c`)&&IS(i.total,`total`,i),i.result.exitCode=+!!i.failed,i.result}function FS(e,t,n){let{ctx:r,options:i}=n;if(!i.flags.has(`inodes`)&&r.fs.isDir(e)&&Object.values(r.outputFds??{}).some(t=>typeof t==`object`&&t.path?.startsWith(e===`/`?`/`:e+`/`)))throw new T(`feature`,`recursive metadata output overlap`,`output within a measured directory is not supported`);let a=[{path:e,name:t,depth:0}];for(;a.length;){let e=a.pop();if(e.total!==void 0){e.depth<=i.depth&&IS(e.total,e.name,n),e.parent&&!i.flags.has(`S`)&&(e.parent.total+=e.total);continue}let t=r.fs.isDir(e.path);if(!t&&i.links===`all`&&r.fs.isLink?.(e.path))throw new T(`option`,`dereference`,`following symbolic links is not supported: ${e.name}`);let o=t?e.path:r.fs.fileIdentity?.(e.path)??e.path;if(!i.flags.has(`l`)&&n.seen.has(o))continue;n.seen.add(o);let s=t?`dir`:r.fs.isLink?.(e.path)?`link`:`file`,c=t?0:r.fs.fileSize(e.path),l=i.flags.has(`inodes`)?1n:i.flags.has(`A`)?BigInt(c):BigInt(Fb(c,s));if(n.total+=l,t){e.total=l,a.push(e);let t=r.fs.listDir(e.path),n=[...new Set([...t.dirs,...t.files,...t.links])].sort(M),i=e.name.endsWith(`/`)?e.name:e.name+`/`;for(let t=n.length-1;t>=0;t--)a.push({path:ht(e.path,n[t]),name:i+n[t],depth:e.depth+1,parent:e})}else e.parent&&(e.parent.total+=l),(e.depth===0||i.flags.has(`a`)&&e.depth<=i.depth)&&IS(l,e.name,n)}}function IS(e,t,n){let r=`${Lb(e,n.options.scale)} ${t}${n.options.flags.has(`0`)?`\0`:`
|
|
213
|
+
`}`;K(n.result,n.ctx.flushOutput({...G(),stdout:r,events:[{fd:1,text:r}]}))}var LS=/^%([-+ 0#']*)(\d+|\*)?'?(?:\.(\d+|\*)?)?[hlL]?(.)?/su,RS=`diouxXeEfFgGcs`;function zS(e){let t=[],n=``;for(let r=0;r<e.length;r++){if(e[r]!==`%`){n+=e[r];continue}if(e[r+1]===`%`){n+=`%`,r++;continue}if(/^%[^a-zA-Z%]*\$/u.test(e.slice(r)))throw new W(`positional printf arguments are not supported`,null,`positional format arguments`);let i=LS.exec(e.slice(r)),a=i[4];if(a===`a`||a===`A`)throw new W(`hexadecimal floating-point formats are not supported`,null,`hexadecimal float format`);if(a===`%`){n+=`%`,r+=i[0].length-1;continue}if(a===void 0||!RS.includes(a)){n+=i[0],r+=i[0].length-1;continue}n!==``&&(t.push(n),n=``);let o=i[1];t.push({minus:o.includes(`-`),plus:o.includes(`+`),space:o.includes(` `),zero:o.includes(`0`),alt:o.includes(`#`),width:i[2]===void 0?null:i[2]===`*`?`*`:Number(i[2]),precision:i[3]===void 0?i[0].includes(`.`)?0:null:i[3]===`*`?`*`:Number(i[3]),conv:a}),r+=i[0].length-1}return n!==``&&t.push(n),t}function BS(e,t,n,r){let i=n.width??0;if(i>rh)throw new W(`format width exceeds the output limit`,null,`format size limit`);let a=i-e.length-[...t].length;return a<=0?e+t:n.minus?e+t+` `.repeat(a):n.zero&&r?e+`0`.repeat(a)+t:` `.repeat(a)+e+t}var VS=e=>e.plus?`+`:e.space?` `:``,HS=e=>e===`X`||e===`E`||e===`G`||e===`F`;function US(e,t){if(t.precision>rh)throw new W(`format precision exceeds the output limit`,null,`format size limit`);let{conv:n}=t;if(!Number.isFinite(e)){if(Number.isNaN(e))throw new W(`formatting signed NaN is not supported`,null,`signed NaN`);let t=e<0?`-inf`:`+inf`;return HS(n)?t.toUpperCase():t}return`ouxX`.includes(n)&&(e>=2**64||e<-(2**63))?KS(e,{...t,conv:`g`}):`diouxX`.includes(n)?WS(e,t):KS(e,t)}function WS(e,t){let{conv:n}=t,r=n===`d`||n===`i`,i=r?Math.trunc(e)===0:e===0,a=BigInt(Math.trunc(e)),o=!1;a<0n&&(r?(o=!0,a=-a):a=BigInt.asUintN(64,a));let s=n===`o`?8:n===`x`||n===`X`?16:10,c=a.toString(s);n===`X`&&(c=c.toUpperCase()),t.precision!==null&&(c=t.precision===0&&i?t.alt&&!r?`0`:``:c.padStart(t.precision,`0`));let l=o?`-`:r&&c!==``?VS(t):``;return t.alt&&!i&&(n===`o`&&(c=`0`+c),(n===`x`||n===`X`)&&(l+=n===`x`?`0x`:`0X`)),BS(l,c,t,t.precision===null)}var GS=100;function KS(e,t){let{conv:n}=t;if(t.precision>GS)throw new W(`floating-point precision above ${GS} is not supported`,null,`float precision limit`);let r=t.precision??6,i=e<0||Object.is(e,-0),a=Math.abs(e),o;return o=n===`e`||n===`E`?JS(a,r):n===`f`||n===`F`?YS(a,r):XS(a,r,t.alt),t.alt&&r===0&&n!==`g`&&n!==`G`&&(o=n===`e`||n===`E`?o.replace(`e`,`.e`):o+`.`),HS(n)&&(o=o.toUpperCase()),BS(i?`-`:VS(t),o,t,!0)}function qS(e,t,n,r){let i=t.slice(r);if(!/^50*$/u.test(i))return e;let a=t.slice(0,n),o=a.at(-1);return Number(o)%2==0?a:e}function JS(e,t){let n=e.toExponential(GS),r=n.indexOf(`.`),i=n.indexOf(`e`),[a,o]=e.toExponential(t).split(`e`),s=qS(a,n.slice(0,i),t===0?r:r+1+t,r+1+t),c=Number(s===a?o:n.slice(i+1));return`${s}e${c<0?`-`:`+`}${String(Math.abs(c)).padStart(2,`0`)}`}function YS(e,t){if(e>=1e21)return BigInt(e).toString()+(t>0?`.`+`0`.repeat(t):``);let n=e.toFixed(GS),r=n.indexOf(`.`);return qS(e.toFixed(t),n,t===0?r:r+1+t,r+1+t)}function XS(e,t,n){let r=t===0?1:t;if(e===0)return n?`0.`+`0`.repeat(r-1):`0`;let i=JS(e,r-1),a=i.indexOf(`e`),o=Number(i.slice(a+1));if(o<-4||o>=r)return n?i.includes(`.`)?i:i.slice(0,a)+`.`+i.slice(a):ZS(i.slice(0,a))+i.slice(a);let s=YS(e,r-1-o);return n?s.includes(`.`)?s:s+`.`:ZS(s)}var ZS=e=>e.includes(`.`)?e.replace(/\.?0+$/u,``):e,QS=/^[+-]?(?:0[bB][01]+|0[xX][\da-fA-F]+|0[0-7]*|[1-9]\d*)/u,$S=/^[+-]?(?:0[xX](?:[\da-fA-F]+(?:\.[\da-fA-F]*)?|\.[\da-fA-F]+)(?:[pP][+-]?\d+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?|inf(?:inity)?|nan(?:\([\w]*\))?)/iu;function eC(e,t){if(e?.[0]!==`'`&&e?.[0]!==`"`)return null;let n=e.slice(1);if(n===``)return null;let r=p(n),i=t.byteLocale?1:p(String.fromCodePoint(n.codePointAt(0))).length;return r.length>i&&(t.stderr+=`printf: warning: ${D(r.slice(i))}: character(s) following character constant have been ignored
|
|
214
|
+
`),t.byteLocale?r[0]:n.codePointAt(0)}function tC(e,t,n){if(e===void 0||e===``)return`0`;let r=e.replace(/^[ \t\n\r\f\v]+/u,``),i=t.exec(r)?.[0]??``;return(i.length!==r.length||i===``)&&(n.stderr+=`printf: ${iC(e,n)}: ${i?`value not completely converted`:`expected a numeric value`}
|
|
215
|
+
`,n.failed=!0),i||`0`}var nC={"\x07":`\\a`,"\b":`\\b`," ":`\\t`,"\n":`\\n`,"\v":`\\v`,"\f":`\\f`,"\r":`\\r`,"\\":`\\\\`,"'":`\\'`},rC=e=>`\\`+e.toString(8).padStart(3,`0`);function iC(e,t){let n=``;for(let r of e){if(nC[r]!==void 0){n+=nC[r];continue}let e=r.codePointAt(0);if(e<32||e===127){n+=rC(e);continue}n+=e>127&&t.byteLocale?p(r).map(rC).join(``):r}return`'${n}'`}function aC(e,t,n){let r=eC(e,n);if(r!==null)return BigInt(r);let i=tC(e,QS,n),a=i[0]===`-`,o=i.replace(/^[+-]/u,``),s=BigInt(/^0[0-7]+$/u.test(o)?`0o`+o:o),c=a?-s:s;return(t?s>bn:c<yn||c>vn)?(n.stderr+=`printf: ${iC(e,n)}: Numerical result out of range
|
|
216
|
+
`,n.failed=!0,t?bn:a?yn:vn):t?BigInt.asUintN(64,c):c}function oC(e,t){let{conv:n}=t,r=n===`d`||n===`i`,i=e<0n,a=n===`o`?8:n===`x`||n===`X`?16:10,o=(i?-e:e).toString(a);n===`X`&&(o=o.toUpperCase()),e===0n&&t.precision===0&&(o=``),o=o.padStart(t.precision??0,`0`);let s=i?`-`:r?t.plus?`+`:t.space?` `:``:``;return t.alt&&(n===`o`&&!o.startsWith(`0`)&&(o=`0`+o),e!==0n&&(n===`x`||n===`X`)&&(s=n===`x`?`0x`:`0X`)),BS(s,o,t,t.precision===null)}function sC(e,t,n){let r=eC(e,n),i=r===null?tC(e,$S,n):String(r),a=i.replace(/^[+-]/u,``);if(/^(?:inf|nan)/iu.test(a)){let e=i.startsWith(`-`)?`-`:t.plus?`+`:t.space?` `:``,n=/^nan/iu.test(a)?`nan`:`inf`;return t.conv===t.conv.toUpperCase()&&(n=n.toUpperCase()),BS(e,n,t,!1)}let o=hC(a),s=i.startsWith(`-`)?-o.value:o.value;if(t.precision>100||`gG`.includes(t.conv)&&t.precision>96)throw new T(`feature`,`float precision limit`,`floating-point precision exceeds the supported limit`);try{let e=US(s,t);if(!o.exact){let[n,r]=uC(o.value);for(let a of[n,r])if(US(i.startsWith(`-`)?-a:a,t)!==e)throw new T(`feature`,`floating-point precision`,`floating-point formatting at this precision is not supported`)}return e}catch(e){throw e.gap?new T(`feature`,e.gap,e.message):e}}var cC=new DataView(new ArrayBuffer(8));function lC(e){return cC.setFloat64(0,e),cC.getBigUint64(0)}function uC(e){let t=lC(e);cC.setBigUint64(0,t-1n);let n=cC.getFloat64(0);return cC.setBigUint64(0,t+1n),[n,cC.getFloat64(0)]}function dC(e){let t=lC(e),n=Number(t>>52n);return{coefficient:t&(1n<<52n)-1n|(n?1n<<52n:0n),exponent:n?n-1075:-1074}}function fC(e,t){let n=e.replace(/^0+|0+$/gu,``);return{digits:n||`0`,exponent:n?t+e.length-e.replace(/0+$/u,``).length:0}}function pC({coefficient:e,exponent:t}){return t<0?fC((e*5n**BigInt(-t)).toString(),t):fC((e<<BigInt(t)).toString(),0)}function mC(e,t){let n=e.exponent-t.exponent;return n>=0?e.coefficient<<BigInt(n)===t.coefficient:e.coefficient===t.coefficient<<BigInt(-n)}function hC(e){let t=/^0x/iu.test(e),n,r;if(t)n=gC(e),r=_C(n);else{let[t,i=`0`]=e.split(/[eE]/u),[a,o=``]=t.split(`.`);n=fC(a+o,Number(i)-o.length),r=Number(e)}if(!Number.isFinite(r))throw new T(`feature`,`floating-point range`,`floating-point values outside the JavaScript number range are not supported`);if(r===0){if(t?n.coefficient!==0n:n.digits!==`0`)throw new T(`feature`,`floating-point range`,`floating-point underflow is not supported`);return{value:r,exact:!0}}let i=dC(r),a=pC(i),o=t?mC(n,i):n.digits===a.digits&&n.exponent===a.exponent;return{value:r,exact:o&&a.exponent>=-100&&a.digits.length<=101}}function gC(e){let[t,n=`0`]=e.slice(2).split(/[pP]/u),[r,i=``]=t.split(`.`),a=(r+i).replace(/^0+/u,``)||`0`;if(a.length>4096)throw new T(`feature`,`floating-point input limit`,`hexadecimal floating-point significands above 4096 digits are not supported`);return{coefficient:BigInt(`0x`+a),exponent:Number(n)-4*i.length}}function _C({coefficient:e,exponent:t}){if(e===0n)return 0;let n=e.toString(2).length,r=t+n-1;if(r>1023)return 1/0;if(r<-1075)return 0;let i=Math.max(0,n-53,-1074-t),a=e>>BigInt(i);if(i>0){let t=e-(a<<BigInt(i)),n=1n<<BigInt(i-1);(t>n||t===n&&a%2n!=0n)&&a++}return Number(a)*2**(t+i)}var vC={a:7,b:8,e:27,f:12,n:10,r:13,t:9,v:11,'"':34,"\\":92};function yC(e,t){let n=[];for(let r=0;r<e.length;)if(e[r]===`%`){if(e[r+1]===`%`||r+1===e.length){n.push([37]),r+=2;continue}let t=/^%([-+ #0']*)(\d+)?(?:\.(\d*))?([\s\S])?/u.exec(e.slice(r)),[,i,a,o,s]=t;if(!s||s===`%`)throw Error(`invalid directive: ${t[0]}`);if(!`nsF`.includes(s))throw new T(`feature`,`%`+s,`format %${s} is not supported`);if(i.includes(`'`))throw new T(`feature`,`grouped format`,`digit grouping in stat formats is not supported`);let c={field:s,conv:`u`,width:Number(a??0),precision:o===void 0?null:Number(o||0),minus:i.includes(`-`),zero:i.includes(`0`),plus:i.includes(`+`),space:i.includes(` `),alt:i.includes(`#`)};if(c.width>rh||c.precision>rh)throw new T(`feature`,`format size limit`,`format width or precision exceeds the output limit`);n.push(c),r+=t[0].length}else if(e[r]===`\\`&&t){let t=e[r+1],i=/^(?:[0-7]{1,3}|x[\da-fA-F]{1,2})/u.exec(e.slice(r+1))?.[0];if(i){let e=i[0]===`x`?16:8;n.push([parseInt(e===16?i.slice(1):i,e)&255]),r+=i.length+1}else if(Object.hasOwn(vC,t))n.push([vC[t]]),r+=2;else throw new T(`feature`,`format escape`,`format escape ${JSON.stringify(e.slice(r,r+2))} is not supported`)}else{let i=r+1;for(;i<e.length&&e[i]!==`%`&&!(t&&e[i]===`\\`);)i++;n.push(E(e.slice(r,i))),r=i}return t||n.push([10]),n}function bC(e,t,n,r){let i=r.isDir(n),a=!i&&r.isLink?.(n)===!0,o,s=e.map(e=>{if(!e.field)return e;if(e.field===`n`)return xC(t,e);if(e.field===`s`&&i)throw new T(`feature`,`directory byte size`,`directory byte sizes are not available: ${t}`);return o??=i?0:r.fileSize(n),e.field===`F`?xC(i?`directory`:a?`symbolic link`:o===0?`regular empty file`:`regular file`,e):E(oC(BigInt(o),e))}),c=new Uint8Array(s.reduce((e,t)=>e+t.length,0)),l=0;for(let e of s)c.set(e,l),l+=e.length;return D(c)}function xC(e,t){let n=E(e);t.precision!==null&&(n=n.subarray(0,t.precision));let r=Math.max(0,t.width-n.length);if(!r)return n;let i=new Uint8Array(n.length+r).fill(32);return i.set(n,t.minus?0:r),i}function SC(e,t,n){let{order:r,positional:i}=U(t,{short:[`L`,`t`],long:[`dereference`,`terse`],valueShort:[`c`],valueLong:[`format`,`printf`,`cached`]});if(!i.length)return x(`stat: missing operand`);let a=r.some(({name:e})=>e===`L`||e===`dereference`),o;for(let e of r)if(e.name===`cached`){if(!e.value||![`always`,`never`,`default`].some(t=>t.startsWith(e.value)))return x(`stat: invalid cache mode: ${e.value}`)}else[`c`,`format`,`printf`].includes(e.name)&&(o=e);if(!o)return C(`feature`,`stat`,`default metadata`,`stat: default output requires filesystem metadata that is not available`);let s=yC(o.value,o.name===`printf`);if(s.some(e=>e.field===`s`||e.field===`F`)&&wC(i,n,a))return C(`feature`,`stat`,`metadata output overlap`,`stat: buffered output sharing a measured file is not supported`);let c=G(),l=!1;for(let e of i){let t=CC(s,e,n,a);K(c,t),l||=t.exitCode!==0}return c.exitCode=+!!l,c}function CC(e,t,n,r){if(t===`-`){let e=C(`feature`,`stat`,`standard input metadata`,`stat: standard input metadata is not supported`);return n.unsupported.add({kind:`feature`,command:`stat`,detail:`standard input metadata`,message:e.stderr.trimEnd()}),e}let i=P(n,`stat`,t,{follow:r});if(i.error)return x(`stat: cannot statx ${q(t,n)}: ${i.error}`);try{return b(bC(e,t,i.path,n.fs))}catch(e){let t=Ke(e,`stat`,`stat: `+L(e)),r=S(t);return r&&n.unsupported.add(r),t}}function wC(e,t,n){let r=Object.values(t.outputFds).filter(e=>typeof e==`object`);return r.length?e.some(e=>{let i=k(t.cwd,e,t.fs,{follow:n});return!i.error&&r.some(e=>e.path===i.path||e.identity!==void 0&&e.identity===t.fs.fileIdentity?.(i.path))}):!1}var TC=[` 1970-01-01 00:00:00.000000000 +0000`,` Thu Jan 1 00:00:00 1970`];function EC(e,t,n,r,i){let{ctx:a,opts:o}=e,s=DC(o,t);if(s===``)return``;let c=e=>o.labels[e]??ry(n[e],a)+(r[e]?TC[+(o.style===`context`)]:``),l=e=>o.labels[e]??ry(n[e],a),u=i?`diff${o.switches} ${l(0)} ${l(1)}
|
|
217
|
+
`:``;return o.style===`unified`?`${u}--- ${c(0)}
|
|
218
|
+
+++ ${c(1)}
|
|
219
|
+
${s}`:o.style===`context`?`${u}*** ${c(0)}
|
|
220
|
+
--- ${c(1)}
|
|
221
|
+
${s}`:u+s}function DC(e,t){let n=e.showFunction?Nn(t[0]):null;return d(t[0],t[1],{format:e.style??`normal`,context:e.context,label:n?e=>kC(n,e):null,minimal:e.minimal,ignoreCase:e.ignoreCase,whitespace:e.whitespace,horizon:e.horizon})}var OC=/^[A-Za-z$_]/u;function kC(e,t){for(let n=t-1;n>=0;n--){if(!OC.test(e[n]))continue;let t=p(e[n].replace(/\n$/u,``)),r=Math.min(40,t.length);for(;r>0&&AC(t[r-1]);)r--;return jC(t.subarray(0,r))}return null}var AC=e=>e===32||e>=9&&e<=13;function jC(e){for(let t=e.length;t>Math.max(0,e.length-4);t--)try{return D(e.subarray(0,t))}catch{}return``}var MC=[`q`,`s`,`r`,`N`,`a`,`i`,`w`,`b`,`Z`,`p`,`d`,`u`,`c`,`e`,`n`,`y`,`t`,`T`,`l`,`E`,`B`,`P`,`v`,`H`],NC=`brief.report-identical-files.recursive.new-file.text.ignore-case.ignore-all-space.ignore-space-change.ignore-trailing-space.strip-trailing-cr.show-c-function.minimal.normal.unified.context.ed.rcs.side-by-side.expand-tabs.initial-tab.paginate.ignore-tab-expansion.ignore-blank-lines.unidirectional-new-file.version.help.suppress-common-lines.speed-large-files.ignore-file-name-case.no-ignore-file-name-case.no-dereference.left-column`.split(`.`),PC=[`U`,`C`,`x`,`X`,`S`,`F`,`W`,`I`,`D`],FC=[`show-function-line`,`exclude-from`,`starting-file`,`from-file`,`to-file`,`ifdef`,`width`,`tabsize`,`horizon-lines`,`ignore-matching-lines`,`line-format`,`old-line-format`,`new-line-format`,`unchanged-line-format`,`old-group-format`,`new-group-format`,`unchanged-group-format`,`changed-group-format`,`color`,`palette`],IC=[`L`,`label`,`x`,`exclude`],LC=new Map([[`e`,`ed script output`],[`ed`,`ed script output`],[`n`,`RCS output`],[`rcs`,`RCS output`],[`y`,`side-by-side output`],[`side-by-side`,`side-by-side output`],[`W`,`side-by-side output`],[`width`,`side-by-side output`],[`suppress-common-lines`,`side-by-side output`],[`left-column`,`side-by-side output`],[`t`,`tab expansion`],[`expand-tabs`,`tab expansion`],[`T`,`initial tabs`],[`initial-tab`,`initial tabs`],[`tabsize`,`tab expansion`],[`E`,`tab expansion`],[`ignore-tab-expansion`,`tab expansion`],[`B`,`ignoring blank lines`],[`ignore-blank-lines`,`ignoring blank lines`],[`I`,`ignoring matching lines`],[`ignore-matching-lines`,`ignoring matching lines`],[`D`,`merged #ifdef output`],[`ifdef`,`merged #ifdef output`],[`l`,`pagination`],[`paginate`,`pagination`],[`F`,`a custom function regex`],[`show-function-line`,`a custom function regex`],[`X`,`reading exclusions from a file`],[`exclude-from`,`reading exclusions from a file`],[`S`,`a starting file`],[`starting-file`,`a starting file`],[`from-file`,`comparing one file to many`],[`to-file`,`comparing one file to many`],[`P`,`one-sided new files`],[`unidirectional-new-file`,`one-sided new files`],[`v`,`a version banner`],[`version`,`a version banner`],[`help`,`a help text`],[`H`,`large-file heuristics`],[`speed-large-files`,`large-file heuristics`],[`ignore-file-name-case`,`case-insensitive names`],[`no-ignore-file-name-case`,`case-insensitive names`],[`no-dereference`,`symbolic links`],[`color`,`colored output`],[`palette`,`colored output`],[`line-format`,`custom line formats`],[`old-line-format`,`custom line formats`],[`new-line-format`,`custom line formats`],[`unchanged-line-format`,`custom line formats`],[`old-group-format`,`custom group formats`],[`new-group-format`,`custom group formats`],[`unchanged-group-format`,`custom group formats`],[`changed-group-format`,`custom group formats`]]),RC=e=>x(`diff: ${e}
|
|
222
|
+
diff: Try 'diff --help' for more information.`,2);function zC(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`){t.push(...e.slice(n));break}if(r===`--unified`||r===`--context`)t.push(`-`+(r===`--unified`?`u`:`c`));else if(r.startsWith(`--unified=`)||r.startsWith(`--context=`))t.push(r.startsWith(`--u`)?`-U`:`-C`,r.slice(10));else{if(r.startsWith(`--color`))return{refused:`colored output`,label:r};t.push(r)}}return{tokens:t}}function BC(e){let t=zC(e);if(t.refused)return{refused:C(`option`,`diff`,t.label.replace(/=.*/u,``),`diff: ${t.label}: ${t.refused} is not supported`,2)};let n;try{n=U(t.tokens,{short:MC,long:NC,valueShort:PC,valueLong:FC,repeatable:IC})}catch(e){let t=S(e);return t?{refused:C(t.kind,`diff`,t.detail,`diff: ${e.message}`,2)}:{error:RC(e.message)}}let r={style:null,context:-1,horizon:0,labels:[],excludes:[],whitespace:`none`,switches:UC(e)};for(let{name:e,value:t}of n.order){let n=LC.get(e),i=(e.length===1?`-`:`--`)+e;if(n)return{refused:C(`option`,`diff`,i,`diff: ${i}: ${n} is not supported`,2)};let a=VC(r,e,t);if(a)return{error:a}}return r.showFunction&&r.style===null&&(r.style=`context`),r.context<0&&(r.context=3),n.positional.length<2?{error:RC(`missing operand after '${n.positional[0]??`diff`}'`)}:n.positional.length>2?{error:RC(`extra operand '${n.positional[2]}'`)}:{opts:r,operands:n.positional}}function VC(e,t,n){let r=t=>e.style!==null&&e.style!==t?RC(`conflicting output style options`):(e.style=t,null);switch(t){case`u`:case`c`:{let n=r(t===`u`?`unified`:`context`);return e.context<3&&(e.context=3),n}case`U`:case`C`:{let i=HC(n);if(i===null)return RC(`invalid context length '${n}'`);let a=r(t===`U`?`unified`:`context`);return e.context<i&&(e.context=i),a}case`normal`:return r(`normal`);case`horizon-lines`:{let t=HC(n);return t===null?RC(`invalid horizon length '${n}'`):(e.horizon=Math.max(e.horizon,t),null)}case`q`:case`brief`:return e.brief=!0,null;case`s`:case`report-identical-files`:return e.identical=!0,null;case`r`:case`recursive`:return e.recursive=!0,null;case`N`:case`new-file`:return e.newFile=!0,null;case`a`:case`text`:return e.text=!0,null;case`i`:case`ignore-case`:return e.ignoreCase=!0,null;case`w`:case`ignore-all-space`:return e.whitespace=`all`,null;case`b`:case`ignore-space-change`:return e.whitespace!==`all`&&(e.whitespace=`change`),null;case`Z`:case`ignore-trailing-space`:return e.whitespace===`none`&&(e.whitespace=`trailing`),null;case`strip-trailing-cr`:return e.stripCr=!0,null;case`p`:case`show-c-function`:return e.showFunction=!0,null;case`d`:case`minimal`:return e.minimal=!0,null;case`L`:case`label`:return e.labels.length===2?x(`diff: too many file label options`,2):(e.labels.push(n),null);case`x`:case`exclude`:return e.excludes.push(n),null;default:return null}}function HC(e){if(e===``)return 0;let t=/^[ \t\n\v\f\r]*([-+]?)(\d+)$/u.exec(e);return!t||t[1]===`-`&&/[1-9]/u.test(t[2])?null:Math.min(Number(t[2]),2**53-1)}function UC(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`)break;!r.startsWith(`-`)||r===`-`||(t.push(r),WC(r)&&n+1<e.length&&t.push(e[++n]))}return t.map(e=>` `+ty(e,{vars:new Map})).join(``)}function WC(e){if(e.startsWith(`--`))return!e.includes(`=`)&&(FC.includes(e.slice(2))||e===`--label`||e===`--exclude`);for(let t=1;t<e.length;t++){let n=e[t];if(PC.includes(n)||n===`L`)return t+1===e.length}return!1}function GC(e,t,n){let{ctx:r,opts:i}=e,a=$C(QC(e,t),QC(e,n));for(let[o,s,c]of a){let a=tw(t,o),l=tw(n,o),u=s?XC(r,a):null,d=c?XC(r,l):null;if(s&&c){qC(e,[a,l],[u,d]);continue}i.newFile?KC(e,[a,l],u??d,[s,c]):iw(e,`Only in ${s?t:n}: ${o}
|
|
223
|
+
`,1)}}function KC(e,[t,n],r,i){YC(r)?e.opts.recursive?ZC(e,[t,n],i.map(e=>e?r:null)):iw(e,`Common subdirectories: ${t} and ${n}
|
|
224
|
+
`):aw(e,t,n,!0,i)}function qC(e,[t,n],[r,i]){let{opts:a}=e,o=[r,i].indexOf(`gone`);if(o!==-1&&YC([r,i][1-o])){let r=[t,n][o];return iw(e,`diff: ${r}: ${k(e.ctx.cwd,r,e.ctx.fs).error}
|
|
225
|
+
`,2,!0)}if(YC(r)&&YC(i))a.recursive?ZC(e,[t,n],[r,i]):iw(e,`Common subdirectories: ${t} and ${n}
|
|
226
|
+
`);else if(r===i||o!==-1)aw(e,t,n,!0,[!0,!0]);else{let o=(e,t)=>a.labels[e]??t;iw(e,`File ${o(0,t)} is a ${JC[r]} while file ${o(1,n)} is a ${JC[i]}
|
|
227
|
+
`,1)}}var JC={dir:`directory`,link:`directory`,file:`regular file`},YC=e=>e===`dir`||e===`link`;function XC(e,t){let n=k(e.cwd,t,e.fs);return n.error?`gone`:e.fs.isDir(n.path)?e.fs.isLink?.(k(e.cwd,t,e.fs,{follow:!1}).path)?`link`:`dir`:`file`}function ZC(e,[t,n],[r,i]){for(let[e,a]of[[r,t],[i,n]])if(e===`link`)throw new T(`feature`,`symbolic link to a directory`,`comparing what a symbolic link to a directory holds is not supported: ${a}`);GC(e,t,n)}function QC(e,t){let{ctx:n,opts:r}=e,i=k(n.cwd,t,n.fs);if(i.error||!n.fs.isDir(i.path))return[];let{dirs:a,files:o,links:s}=n.fs.listDir(i.path),c=[...a,...o,...s].sort(M);return r.excludes.length?c.filter(e=>!r.excludes.some(t=>Qg(e,t))):c}function $C(e,t){let n=[],r=0,i=0;for(;r<e.length||i<t.length;){let a=r===e.length?1:i===t.length?-1:M(e[r],t[i]);a===0?(n.push([e[r++],!0,!0]),i++):a<0?n.push([e[r++],!0,!1]):n.push([t[i++],!1,!0])}return n}function ew(e,t,n){let r=BC(t);if(r.error)return r.error;if(r.refused)return r.refused;let{opts:i,operands:a}=r,o={ctx:n,opts:i,stdin:e,out:G(),status:0},[s,c]=a,l=a.map(e=>rw(o,e));if(l[0]===`dir`&&l[1]===`dir`&&nw(o,s,c))return o.out;if(l[0]===`dir`&&l[1]===`dir`)GC(o,s,c);else if(l[0]===`dir`||l[1]===`dir`){let e=l[0]===`dir`?0:1,t=a[1-e];if(t===`-`)return x(`diff: cannot compare '-' to a directory`,2);if(l[1-e]===`missing`){let e=k(o.ctx.cwd,t,o.ctx.fs).error;i.newFile&&e===`No such file or directory`?GC(o,s,c):iw(o,`diff: ${t}: ${e}
|
|
228
|
+
`,2,!0)}else{let n=tw(a[e],mt(t)),r=e===0?[n,t]:[t,n];rw(o,n)===`missing`?iw(o,`diff: ${n}: No such file or directory
|
|
229
|
+
`,2,!0):aw(o,r[0],r[1],!1)}}else aw(o,s,c,!1);return o.out.exitCode=o.status,o.out}function tw(e,t){let n=e.replace(/\/+$/u,``);return(n===``?`/`:n+`/`)+t}function nw(e,t,n){return k(e.ctx.cwd,t,e.ctx.fs).path===k(e.ctx.cwd,n,e.ctx.fs).path}function rw(e,t){if(t===`-`)return`stdin`;let n=k(e.ctx.cwd,t,e.ctx.fs);return n.error?`missing`:e.ctx.fs.isDir(n.path)?`dir`:`file`}function iw(e,t,n=0,r=!1){K(e.out,r?G(t):{...G(),stdout:t,events:[{fd:1,text:t}]}),e.status=Math.max(e.status,n)}function aw(e,t,n,r,i=null){let{opts:a}=e,o=[t,n].map(t=>dw(e,t)),s=o.map(e=>e.content===null),c=a.newFile&&!(s[0]&&s[1]),f=!1;for(let r=0;r<2;r++)!s[r]||(i?!i[r]:c)||(iw(e,`diff: ${[t,n][r]}: ${o[r].error??`No such file or directory`}
|
|
230
|
+
`,2,!0),f=!0);if(f)return;if(o[0].identity!==void 0&&o[0].identity===o[1].identity&&!s[0])return ow(e,t,n);let p=e=>a.labels[e]??[t,n][e];if(!a.text&&o.some(cw))return lw(o)?ow(e,t,n):iw(e,`${a.brief?`Files`:`Binary files`} ${p(0)} and ${p(1)} differ
|
|
231
|
+
`,1);if(o.some(e=>e.content===void 0)){if(lw(o))return ow(e,t,n);if(a.brief&&!a.ignoreCase&&!a.stripCr&&a.whitespace===`none`)return iw(e,`Files ${p(0)} and ${p(1)} differ
|
|
232
|
+
`,1)}for(let[e,t]of o.entries())t.content===void 0&&_t(t.bytes,JSON.stringify(p(e)));let m=o.map(e=>e.content??``);if(a.stripCr&&(m=m.map(sw)),a.brief)return d(m[0],m[1],{format:`brief`,ignoreCase:a.ignoreCase,whitespace:a.whitespace})===``?ow(e,t,n):iw(e,`Files ${p(0)} and ${p(1)} differ
|
|
233
|
+
`,1);let h;try{h=EC(e,m,[t,n],s,r)}catch(r){if(!(r instanceof u)&&!(r instanceof l))throw r;let i=`diff: ${t} ${n}: ${r.message}`,a=r instanceof u?`change set verification`:`diff rendering verification`;K(e.out,C(`feature`,`diff`,a,i,2)),e.status=2;return}if(h===``)return ow(e,t,n);iw(e,h,1)}function ow(e,t,n){e.opts.identical&&iw(e,`Files ${t} and ${n} are identical
|
|
234
|
+
`)}var sw=e=>e.replace(/\r\n/gu,`
|
|
235
|
+
`),cw=e=>e.content===void 0?e.bytes.includes(0):e.content?.includes(`\0`)===!0,lw=([e,t])=>e.content!==void 0&&t.content!==void 0?e.content===t.content:vt(e.bytes??uw,t.bytes??uw),uw=new Uint8Array;function dw(e,t){let{ctx:n}=e;if(t===`-`)return I(n),{content:e.stdin,identity:n.stdinHandle?.identity??Symbol(`stdin`)};let r=P(n,`diff`,t);if(r.error||n.fs.isDir(r.path))return{content:null,bytes:null,identity:void 0,error:r.error};let{text:i,bytes:a}=Bn(n.fs,r.path);return{content:i,bytes:a,identity:n.fs.fileIdentity?.(r.path)??r.path}}var fw=(e,t,n)=>{throw new Y(`malformed patch at line ${Math.min(t,e.lines.length-1)+1}: ${n??``}`)};function pw(e,t){return!!e.lines[t+1]?.startsWith(`\\`)}function mw(e){let{lines:t}=e,n=e.pos,r=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(?: (.*))?\n$/u.exec(t[n]??``);if(!r)return null;let i=n,a=Number(r[3]),o=Number(r[1]),s=r[2]===void 0?1:Number(r[2]),c=r[4]===void 0?1:Number(r[4]);s===0&&o++,c===0&&a++;let l=[],u=[],d=0,f=n,p=-1;for(n++;u.length<s||l.length<c;n+=1){let r=t[n]!==void 0;if(!r&&c-l.length>3)throw new Y(`unexpected end of file in patch`);let i=r?t[n]:`
|
|
236
|
+
`;r&&(f=n);let a=i[0],o=i;a===` `||a===`
|
|
237
|
+
`?a=` `:o=i.slice(1),a!==`-`&&a!==`+`&&a!==` `&&fw(e,n,i);let m=!1;a!==`+`&&(u.length>=s&&fw(e,n,i),m=r&&u.length+1===s&&pw(e,n),m&&(o=o.replace(/\n$/u,``)),u.push({tag:a,text:o}),a===` `&&d++),a!==`-`&&(l.length>=c&&fw(e,n,i),!m&&r&&l.length+1===c&&pw(e,n)&&(m=!0,o=o.replace(/\n$/u,``)),l.push({tag:a,text:o})),a!==` `&&(p===-1&&(p=d),d=0),m&&n++}return p===-1&&fw(e,f,t[f]),e.pos=n,{oldStart:o,oldLines:u,newStart:a,newLines:l,prefix:p,suffix:d,fn:r[5]===void 0?null:` `+r[5],marks:null,line:i}}function hw(e){let{lines:t}=e,n=e.pos;if(!t[n]?.startsWith(`********`))return null;let r=n,i=/^\*+( .*)?\n$/u.exec(t[n])?.[1]??null,a=/^\*\*\* (\d+)(?:,(\d+))?/u.exec(t[++n]??``);if(!a)throw new Y(`unexpected '***' at line ${n+1}: ${t[n]??``}`);let o=gw(a),s=[],c=e=>/^--- (\d+)(?:,(\d+))? ----/u.exec(t[e]??``)??/^--- (\d+)(?:,(\d+))?/u.exec(t[e]??``);for(n++;!c(n);n++){if(t[n]===void 0||s.length>=o.count)throw new Y(`no '---' found in patch at line ${r+1}`);s.push(_w(e,n,s.length+1===o.count)),s.at(-1).skip&&n++}let l=gw(c(n)),u=[];for(n++;u.length<l.count;n++){let r=t[n];if(r===void 0||!/^[ !+\-\t\n]/u.test(r)||r.startsWith(`***`))break;u.push(_w(e,n,u.length+1===l.count)),u.at(-1).skip&&n++}return u.length!==0&&u.length<l.count&&fw(e,n,t[n]),e.pos=n,vw({oldRange:o,oldSide:s,newRange:l,newSide:u,fn:i,line:r})}function gw(e){let t=Number(e[1]),n=e[2]===void 0?t:Number(e[2]);return t===0&&e[2]===void 0?{first:1,count:0}:{first:t,count:n-t+1}}function _w(e,t,n){let r=e.lines[t],i=r[0];i===` `||i===`
|
|
238
|
+
`?i=` `:(r=r.slice(1),(r[0]===` `||r[0]===` `)&&(r=r.slice(1)));let a=n&&pw(e,t);return{mark:i,text:a?r.replace(/\n$/u,``):r,skip:a}}function vw({oldRange:e,oldSide:t,newRange:n,newSide:r,fn:i,line:a}){let o=r,s=t;if(t.length===0&&e.count&&(s=r.filter(e=>e.mark===` `)),r.length===0&&n.count&&(o=t.filter(e=>e.mark===` `)),s.length!==e.count||o.length!==n.count)throw new Y(`replacement text or line numbers mangled in hunk at line ${a+1}`);let c=s.map(e=>({tag:e.mark===` `?` `:`-`,text:e.text})),l=o.map(e=>({tag:e.mark===` `?` `:`+`,text:e.text})),u=e=>{let t=0;for(let n of e){if(n.tag!==` `)break;t++}return t},d=Math.min(u(c),u(l)),f=Math.min(u(c.toReversed()),u(l.toReversed()));if(c.every(e=>e.tag===` `)&&l.every(e=>e.tag===` `))throw new Y(`replacement text or line numbers mangled in hunk at line ${a+1}`);return{oldStart:e.first,oldLines:c,newStart:n.first,newLines:l,prefix:d,suffix:f,fn:i,marks:{old:s.map(e=>e.mark),new:o.map(e=>e.mark)},line:a}}function yw(e){let{lines:t}=e,n=e.pos,r=/^(\d+)(?:,(\d+))?([acd])(\d+)(?:,(\d+))?[ \t]*\r?\n$/u.exec(t[n]??``);if(!r)return null;let i=n,a=Number(r[1]),o=r[3]===`a`?0:r[2]===void 0?1:Number(r[2])-a+1;r[3]===`a`&&a++;let s=Number(r[4]),c=r[5]===void 0?s:Number(r[5]);r[3]===`d`&&s++;let l=c-s+1;(o<0||l<0)&&fw(e,n,t[n]);let u=[],d=[];n++;for(let r=0;r<o;r++,n++){if(t[n]===void 0)throw new Y(`unexpected end of file in patch at line ${n}`);if(!/^<[ \t]/u.test(t[n]))throw new Y(`'<' followed by space or tab expected at line ${n+1} of patch`);let i=r+1===o&&pw(e,n);d.push({tag:`-`,text:i?t[n].slice(2).replace(/\n$/u,``):t[n].slice(2)}),i&&n++}if(r[3]===`c`){if(t[n]===void 0)throw new Y(`unexpected end of file in patch at line ${n}`);if(!t[n].startsWith(`-`))throw new Y(`'---' expected at line ${n+1} of patch`);n++}for(let r=0;r<l;r++,n++){if(t[n]===void 0)throw new Y(`unexpected end of file in patch at line ${n}`);if(!/^>[ \t]/u.test(t[n]))throw new Y(`'>' followed by space or tab expected at line ${n+1} of patch`);let i=r+1===l&&pw(e,n);u.push({tag:`+`,text:i?t[n].slice(2).replace(/\n$/u,``):t[n].slice(2)}),i&&n++}return e.pos=n,{oldStart:a,oldLines:d,newStart:s,newLines:u,prefix:0,suffix:0,fn:null,marks:null,line:i}}function bw(e){let t=(e,t,n)=>e.map(e=>({tag:e.tag===t?n:e.tag,text:e.text})),n=(e,t,n)=>e.map(e=>e===t?n:e);return{...e,oldStart:e.newStart,newStart:e.oldStart,oldLines:t(e.newLines,`+`,`-`),newLines:t(e.oldLines,`-`,`+`),marks:e.marks&&{old:n(e.marks.new,`+`,`-`),new:n(e.marks.old,`-`,`+`)}}}var Y=class extends Error{constructor(e){super(e),this.name=`PatchFatal`}},xw=(e,t)=>{throw new T(`feature`,e,t)};function Sw(e){let t=Nn(e);return t.length&&!t.at(-1).endsWith(`
|
|
239
239
|
`)&&(t[t.length-1]+=`
|
|
240
|
-
`),{lines:t,pos:0,base:0,empty:e
|
|
241
|
-
`)&&(d.startsWith(
|
|
242
|
-
`&&
|
|
243
|
-
`,
|
|
244
|
-
`,r
|
|
240
|
+
`),{lines:t,pos:0,base:0,empty:e===``}}var Cw=/^\d+(?:,\d+)?[acd]\d+(?:,\d+)?[ \t]*\r?\n$/u,ww=/^(?:\d+(?:,\d+)?)?(?:[acdi]|s\/\.\/\/)[ \t]*\n$/u,Tw=/^[0-9a-fA-F]+/u;function Ew(e,{needHeader:t,strip:n,format:r}){let{lines:i}=e,a={names:{old:null,new:null,index:null},stamps:{old:-1,new:-1},timestrs:{old:null,new:null},says:[0,0],git:!1,rename:[!1,!1],copy:[!1,!1],extended:!1},o=t&&r!==`normal`&&r!==`ed`,s=!1,c=-1,l=!1,u=!1;for(let t=e.pos;;t++){if(t>=i.length)return s&&xw(`ed script`,`ed scripts are not supported`),a.extended?{...a,type:`unified`,start:t,hunkLine:t,empty:!0}:null;let d=i[t],f=d.replace(/^[ \tX]+/u,``),p=/^\d/u.test(f)&&Cw.test(f);!o&&c<0&&(ww.test(f)||p)&&(c=t,s=ww.test(f));let m=Dw(d,a,n,u);if(m===`binary`&&xw(`git binary patch`,`git binary diffs are not supported`),m===`prereq`&&xw(`Prereq`,`Prereq: lines are not supported`),m===`git`&&a.extended)return{...a,type:`unified`,start:t,hunkLine:t,empty:!0};m&&(o=!1);let h=d.startsWith(`********`);if(/^[ \t]+(?:@@ -\d|\*{8})/u.test(d)&&xw(`indented patch`,`indented patches are not supported`),!o){if(d.endsWith(`\r
|
|
241
|
+
`)&&(d.startsWith(`@@ -`)||u)&&xw(`CRLF patch`,`patches with CRLF line endings are not supported`),(r===null||r===`ed`)&&c>=0&&d===`.
|
|
242
|
+
`&&xw(`ed script`,`ed scripts are not supported`),(r===null||r===`unified`)&&d.startsWith(`@@ -`))return Aw(a,t,d);if((r===null||r===`context`)&&u&&d.startsWith(`*** `))return jw(e,a,t,d);if((r===null||r===`normal`)&&l&&(d.startsWith(`< `)||d.startsWith(`> `)))return{...a,type:`normal`,start:t-1,hunkLine:t-1}}u=h,l=p}}function Dw(e,t,n,r){if(!r&&e.startsWith(`*** `)||e.startsWith(`+++ `))return kw(t,`old`,e.slice(4),n);if(e.startsWith(`Index:`))return t.names.index=Nw(e.slice(6),n,!1).name,`index`;if(e.startsWith(`Prereq:`))return`prereq`;if(e.startsWith(`diff --git `)){let r=Iw(e.slice(11),n),i=r.name===null?null:Iw(r.rest,n);return t.names.old=i&&i.rest.trim()===``?r.name:null,t.names.new=t.names.old===null?null:i.name,t.git=!0,t.stamps.old=t.stamps.new=-1,`git`}if(t.git){let n=Ow(e,t);if(n)return n}let i=e;for(;i.startsWith(`- `);)i=i.slice(2);return i.startsWith(`--- `)?kw(t,`new`,i.slice(4),n):null}function Ow(e,t){if(e.startsWith(`index `)){let n=Tw.exec(e.slice(6)),r=n?e.slice(6+n[0].length):``,i=r.startsWith(`..`)?Tw.exec(r.slice(2)):null;return i?(t.says[0]=/^0+$/u.test(n[0])?2:0,t.says[1]=/^0+$/u.test(i[0])?2:0,t.extended=!0,`index`):null}return e.startsWith(`old mode `)||e.startsWith(`new mode `)?(t.extended=!0,`mode`):e.startsWith(`deleted file mode `)?(t.says[1]=2,t.extended=!0,`mode`):e.startsWith(`new file mode `)?(t.says[0]=2,t.extended=!0,`mode`):e.startsWith(`rename from `)?(t.rename[0]=!0,t.extended=!0,`rename`):e.startsWith(`rename to `)?(t.rename[1]=!0,t.extended=!0,`rename`):e.startsWith(`copy from `)?(t.copy[0]=!0,t.extended=!0,`copy`):e.startsWith(`copy to `)?(t.copy[1]=!0,t.extended=!0,`copy`):e.startsWith(`GIT binary patch`)?`binary`:null}function kw(e,t,n,r){let i=Nw(n,r,!0);return i.stamp!==void 0&&(e.stamps[t]=i.stamp),i.name!==void 0&&(e.names[t]=i.name,e.timestrs[t]=i.timestr),`name`}function Aw(e,t,n){let r={names:{...e.names,old:e.names.new,new:e.names.old},stamps:{old:e.stamps.new,new:e.stamps.old},timestrs:{old:e.timestrs.new,new:e.timestrs.old}},i=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))?/u.exec(n),a=[...e.says];return i&&i[1]===`0`&&(a[0]=1+ +(r.stamps.old===0)),i&&i[3]===`0`&&(a[1]=1+ +(r.stamps.new===0)),{...e,...r,says:a,type:`unified`,start:t,hunkLine:t}}function jw(e,t,n,r){let i=[...t.says];/^\*\*\* 0(?!\d)/u.test(r)&&(i[0]=1+ +(t.stamps.old===0));let a={...e,pos:n-1};try{let e=hw(a);e&&e.newLines.length===0&&e.newStart===1&&(i[1]=1+ +(t.stamps.new===0))}catch{}return{...t,says:i,type:`context`,start:n-1,hunkLine:n-1}}function Mw(e,t){return t===`unified`?mw(e):t===`context`?hw(e):yw(e)}function Nw(e,t,n){let r=e.replace(/^[ \t\n\v\f\r]+/u,``),i,a;if(r.startsWith(`"`)){let e=Rw(r);if(!e)return{};i=e.value,a=e.rest}else{let e=0;for(;e<r.length;e++){if(!/[ \t\n\v\f\r]/u.test(r[e]))continue;let t=e;for(;r[t]!==` `&&/[ \t\n\v\f\r]/u.test(r[t+1]??``);)t++;if(r[t]===` `||r.indexOf(n?` `:`
|
|
243
|
+
`,t+1)===-1)break}i=r.slice(0,e),a=r.slice(e)}if(i===`/dev/null`)return{stamp:0};let o=Fw(i,t);if(o===null)return{};let s=a.replace(/\r?\n$/u,``);return{name:o,timestr:s,stamp:n&&s!==``?Pw(s):-1}}function Pw(e){let t=/^\s*(\d{4})-(\d\d)-(\d\d)[ T](\d\d):(\d\d):(\d\d)(?:\.\d+)?\s*(?:([+-])(\d\d):?(\d\d))?/u.exec(e),n;if(t){let[,e,r,i,a,o,s,c,l,u]=t;n=Date.UTC(Number(e),Number(r)-1,Number(i),Number(a),Number(o),Number(s))/1e3,c&&(n-=(c===`-`?-1:1)*(Number(l)*3600+Number(u)*60))}else{let t=/^\s*[A-Z][a-z]{2} ([A-Z][a-z]{2}) +(\d+) (\d\d):(\d\d):(\d\d) (\d{4})/u.exec(e);if(!t)return-1;let r=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],[,i,a,o,s,c,l]=t;n=Date.UTC(Number(l),r.indexOf(i),Number(a),Number(o),Number(s),Number(c))/1e3}return n>-9e4&&n<93600?0:n}function Fw(e,t){let n=t,r=0;for(let i=0;i<e.length;i++)if(e[i]===`/`){for(;e[i+1]===`/`;)i++;(t<0||--n>=0)&&(r=i+1)}return(t<0||n<=0)&&r<e.length?e.slice(r):null}function Iw(e,t){let n=e.replace(/^[ \t\n\v\f\r]+/u,``),r,i;if(n.startsWith(`"`)){let e=Rw(n);if(!e)return{name:null,rest:``};r=e.value,i=e.rest}else{let e=n.search(/[ \t\n\v\f\r]/u);r=e<0?n:n.slice(0,e),i=e<0?``:n.slice(e)}return{name:Fw(r,t),rest:i}}var Lw={a:`\x07`,b:`\b`,f:`\f`,n:`
|
|
244
|
+
`,r:`\r`,t:` `,v:`\v`,"\\":`\\`,'"':`"`};function Rw(e){let t=``;for(let n=1;n<e.length;n++){let r=e[n];if(r===`"`)return{value:t,rest:e.slice(n+1)};if(r!==`\\`){t+=r;continue}let i=e[++n];if(i===void 0)return null;if(/[0-7]/u.test(i)){let r=/^[0-7]{1,3}/u.exec(e.slice(n))[0];t+=String.fromCodePoint(Number.parseInt(r,8)),n+=r.length-1}else if(i in Lw)t+=Lw[i];else return null}return null}function zw(e,t){let n=e=>e.split(`/`).length-1,r=e=>e.slice(e.lastIndexOf(`/`)+1).length,i=-1;for(let a=0;a<e.length;a++){let o=e[a];if(o===null||t[a])continue;if(i===-1){i=a;continue}let[s,c]=[n(o),n(e[i])];if(s!==c){s<c&&(i=a);continue}let[l,u]=[r(o),r(e[i])];if(l!==u){l<u&&(i=a);continue}o.length<e[i].length&&(i=a)}return i}function Bw(e,t){let{opts:n}=e;return(n.noReverse||!(n.force&&n.silent))&&e.say(t),n.noReverse?(e.say(` Skipping patch.
|
|
245
245
|
`),e.skipRest=!0,!1):n.force?(n.silent||e.say(` Applying it anyway.
|
|
246
246
|
`),!1):n.batch?(e.say(e.reverse?` Ignoring -R.
|
|
247
247
|
`:` Assuming -R.
|
|
@@ -249,117 +249,118 @@ diff: Try 'diff --help' for more information.`,2);function p3(e){let t=[];for(le
|
|
|
249
249
|
`:` Assume -R? [n]
|
|
250
250
|
`),e.say(`Apply anyway? [n]
|
|
251
251
|
`),n.silent||e.say(`Skipping patch.
|
|
252
|
-
`),e.skipRest=!0,!1)}function
|
|
253
|
-
which ${
|
|
254
|
-
`),e.skipRest=!0),
|
|
252
|
+
`),e.skipRest=!0,!1)}function Vw(e,t,n,r,i){let a=+!!e.reverse,o=t.says,s=+!i<o[a^+!!i];if(i&&o[a^+!!r]===1&&o[1-a^!!r]===2)return!1;if(s){let t=r?`delete`:i?`empty out`:`create`,a=r?`does not exist`:i?`is already empty`:`already exists`;Bw(e,`The next patch${e.reverse?`, when reversed,`:``} would ${t} the file ${e.quote(n)},
|
|
253
|
+
which ${a}!`)&&(e.reverse=!e.reverse)}return s}function Hw(e,t,n,r){let i=[t.names.old,t.names.new,t.names.index];(i[0]!==null||i[1]!==null)&&i[2]!==null&&(i[2]=null);let a=-1;if(n===null){let n=i.map(e=>e===null?null:r(e));a=zw(i,n.map(e=>e===null||!e.exists));let o=i.findIndex(e=>e!==null);if(o!==-1&&(a===-1||!n[a].isDir)){let r=a===-1;Vw(e,t,i[r?o:a],r,r||n[a].size===0)&&r&&(a=o)}a===-1&&t.says[+!!e.reverse]&&(a=zw(i,i.map(()=>!1)))}if((t.rename[0]||t.rename[1]||t.copy[0]||t.copy[1])&&n===null&&(a!==0&&a!==1||i[0]===null||i[1]===null)&&(e.say(`Cannot ${t.rename[0]||t.rename[1]?`rename`:`copy`} file without two valid file names
|
|
254
|
+
`),e.skipRest=!0),a===-1){if(n===null)return null;let i=r(n);return(!i.exists||!i.isDir)&&Vw(e,t,n,!i.exists,!i.exists||i.size===0),n}return i[a]}function Uw(e){return{input:e,frozen:0,inOffset:0,outOffset:0,out:[]}}var Ww=(e,t)=>t<1||t>e.input.length?``:e.input[t-1];function Gw(e,t){let n=e=>e.replace(/\n$/u,``).replace(/[ \t]+$/u,``).replace(/[ \t]+/gu,` `);return n(e)===n(t)}function Kw(e,t,n,r,i,a,o){let s=t.oldLines,c=s.length-a;for(let t=n+r+i,a=i;a<c;a++,t++){let n=Ww(e,t),r=s[a].text;if(o?!Gw(n,r):n!==r)return!1}return!0}function qw(e,t,n,r){let i=t.oldStart+e.inOffset,a=t.oldLines.length,o=Math.max(t.prefix,t.suffix),s=n+t.prefix-o,c=n+t.suffix-o,l=e.input.length,u=l-(a-c)+1,d=e.frozen+1,f=u-i,p=i-d,m=Math.max(f,p);if(!a)return i;i<=p&&(p=i-1);let h=t=>(e.inOffset+=t,i+t);if(s<0&&t.oldStart<=1){if(c<0&&(a!==l||t.prefix<e.frozen))return 0;let n=1-i;return e.frozen<=t.prefix&&n<=f&&Kw(e,t,i,n,0,c,r)?h(n):0}if(s<0&&(s=0),c<0){let n=i-(l-a+1);return n<=p&&Kw(e,t,i,-n,s,0,r)?h(-n):0}let g=f<0?i-u:p<0?i-d:0;for(let n=g;n<=m;n++){if(n<=f&&Kw(e,t,i,n,s,c,r))return h(n);if(n<=p&&Kw(e,t,i,-n,s,c,r))return h(-n)}return 0}function Jw(e,t){if(e.frozen>t)return!1;for(;e.frozen<t;)e.frozen<e.input.length&&e.out.push(e.input[e.frozen]),e.frozen++;return!0}function Yw(e,t,n){let r=n-1,i=t.newLines,a=t.oldLines,o=0,s=0,c=()=>{throw new Y(`Out-of-sync patch, lines ${t.line+1+s+1},${t.line+1+a.length+o+1} -- mangled text or line numbers, maybe?`)};for(;s<a.length;)if(a[s].tag===`-`){if(!Jw(e,r+s))return!1;e.frozen++,s++}else{if(o>=i.length)break;if(i[o].tag===`+`){if(!Jw(e,r+s))return!1;e.out.push(i[o++].text)}else i[o].tag===a[s].tag?(s++,o++):c()}for(;o<i.length&&i[o].tag===`+`;o++){if(!Jw(e,r+s))return!1;e.out.push(i[o].text)}return e.outOffset+=i.length-a.length,!0}var Xw=e=>e.frozen>=e.input.length||Jw(e,e.input.length),Zw=e=>e.map((t,n)=>n<e.length-1&&!t.endsWith(`
|
|
255
255
|
`)?t+`
|
|
256
|
-
`:t).join(
|
|
257
|
-
`);else if(!
|
|
258
|
-
`)}}return
|
|
259
|
-
`,
|
|
260
|
-
`;return{get text(){return n},add(
|
|
261
|
-
`,
|
|
262
|
-
`;return
|
|
263
|
-
`,e.oldLines.forEach((
|
|
264
|
-
`,e.newLines.forEach((
|
|
265
|
-
patch: Try 'patch --help' for more information.`,2);function
|
|
266
|
-
`,events:[...
|
|
267
|
-
`}],exitCode:2}
|
|
268
|
-
`;return{stdout:
|
|
269
|
-
`),n.type
|
|
256
|
+
`:t).join(``);function Qw(e,t,n,r,i){let{opts:a}=e,o={count:0,failed:0,mismatch:!1,applyAnyway:!1};for(let s=n();s;s=n()){o.count++;let{hunk:n,where:c,fuzz:l}=e.skipRest?{hunk:e.reverse?bw(s):s,where:0,fuzz:0}:$w(e,r,e.reverse?bw(s):s,o),u=(c||n.oldStart)+r.outOffset,d=c===1&&t.says[+!!e.reverse]===2&&r.input.length>0;if(e.skipRest||d||!c||!Yw(r,n,c))e.skipRejectFile||i.add(n,o.failed===0,r.outOffset,e.reverse),o.failed++,!e.skipRest&&!a.silent&&e.say(`Hunk #${o.count} FAILED at ${u}.
|
|
257
|
+
`);else if(!a.silent&&(l||r.inOffset)){let t=r.inOffset?` (offset ${r.inOffset} line${r.inOffset===1?``:`s`})`:``;e.say(`Hunk #${o.count} succeeded at ${u}${l?` with fuzz ${l}`:``}${t}.
|
|
258
|
+
`)}}return o}function $w(e,t,n,r){let{opts:i}=e,a=0,o=n,s=0,c=Math.min(i.fuzz,Math.max(o.prefix,o.suffix));do if(s=qw(t,o,a,i.loose),(!s||a||t.inOffset)&&(r.mismatch=!0),r.count===1&&!s&&!(i.force||r.applyAnyway)&&e.reverse===e.reverseFlag){let n=bw(o);s=qw(t,n,a,i.loose),s&&Bw(e,`${e.reverse?`Unreversed`:`Reversed (or previously applied)`} patch detected!`)?(e.reverse=!e.reverse,o=n):s&&=(r.applyAnyway=!0,a--,0)}while(!e.skipRest&&!s&&++a<=c);return{hunk:o,where:s,fuzz:a}}var eT=(e,t)=>e+t;function tT(e,t){let n=``,r=(t,n)=>`${t} ${e.names[n]??`/dev/null`}${e.timestrs[n]??``}
|
|
259
|
+
`,i=e.names.index===null?``:`Index: ${e.names.index}
|
|
260
|
+
`;return{get text(){return n},add(e,a,o,s){let c=s?[`new`,`old`]:[`old`,`new`];t===`unified`?(a&&(n+=i+r(`---`,c[0])+r(`+++`,c[1])),n+=rT(e,o)):(a&&(n+=i+r(`***`,c[0])+r(`---`,c[1])),n+=aT(e,o,t))}}}var nT=(e,t)=>t===0?`${e-1},0`:t===1?`${e}`:`${e},${t}`;function rT(e,t){let n=e.newLines,r=e.oldLines,i=`@@ -${nT(e.oldStart+t,r.length)} +${nT(e.newStart+t,n.length)} @@${e.fn??``}
|
|
261
|
+
`,a=0,o=0;for(;;o++,a++){for(;o<r.length&&r[o].tag===`-`;o++)i+=eT(`-`,r[o].text);for(;a<n.length&&n[a].tag===`+`;a++)i+=eT(`+`,n[a].text);if(o>=r.length)break;i+=eT(` `,r[o].text)}return i}function iT(e,t){let n=e+t-1;return n<e?`0`:n===e?`${e}`:`${e},${n}`}function aT(e,t,n){let r=n!==`normal`,i=e.marks??(n===`normal`?oT(e):sT(e)),a=`***************${e.fn??``}
|
|
262
|
+
`;return a+=`*** ${iT(e.oldStart+t,e.oldLines.length)}${r?` ****`:``}
|
|
263
|
+
`,e.oldLines.forEach((e,t)=>{a+=eT(i.old[t]+` `,e.text)}),a+=`--- ${iT(e.newStart+t,e.newLines.length)}${r?` ----`:` -----`}
|
|
264
|
+
`,e.newLines.forEach((e,t)=>{a+=eT(i.new[t]+` `,e.text)}),a}var oT=e=>({old:e.oldLines.map(e=>e.tag),new:e.newLines.map(e=>e.tag)});function sT(e){let t=e.newLines.map(e=>e.tag),n=e.oldLines.map(e=>e.tag),r=0,i=0;for(;i<n.length;)if(n[i]===`-`){if(r<t.length&&t[r]===`+`){do n[i++]=`!`;while(i<n.length&&n[i]===`-`);do t[r++]=`!`;while(r<t.length&&t[r]===`+`)}else do i++;while(i<n.length&&n[i]===`-`)}else if(r<t.length&&t[r]===`+`)do r++;while(r<t.length&&t[r]===`+`);else i++,r++;return{old:n,new:t}}var cT=[`R`,`N`,`f`,`t`,`s`,`b`,`l`,`E`,`T`,`Z`,`e`,`u`,`c`,`n`,`v`],lT=[`reverse`,`forward`,`force`,`batch`,`silent`,`quiet`,`backup`,`ignore-whitespace`,`remove-empty-files`,`dry-run`,`verbose`,`unified`,`context`,`normal`,`ed`,`binary`,`no-backup-if-mismatch`,`backup-if-mismatch`,`posix`,`follow-symlinks`,`help`,`version`,`set-time`,`set-utc`],uT=[`p`,`i`,`o`,`d`,`r`,`F`,`z`,`B`,`Y`,`V`,`g`,`D`,`x`],dT=[`strip`,`input`,`output`,`directory`,`reject-file`,`fuzz`,`suffix`,`prefix`,`basename-prefix`,`version-control`,`get`,`reject-format`,`quoting-style`,`read-only`,`merge`,`debug`],fT=new Map([[`T`,`setting file times`],[`Z`,`setting file times`],[`set-time`,`setting file times`],[`set-utc`,`setting file times`],[`e`,`ed scripts`],[`ed`,`ed scripts`],[`v`,`a version banner`],[`version`,`a version banner`],[`help`,`a help text`],[`verbose`,`verbose output`],[`B`,`backup prefixes`],[`prefix`,`backup prefixes`],[`Y`,`backup prefixes`],[`basename-prefix`,`backup prefixes`],[`V`,`numbered backups`],[`version-control`,`numbered backups`],[`g`,`version control`],[`get`,`version control`],[`D`,`merged #ifdef output`],[`x`,`debugging output`],[`debug`,`debugging output`],[`posix`,`POSIX mode`],[`follow-symlinks`,`symbolic links`],[`quoting-style`,`quoting styles`],[`read-only`,`read-only handling`],[`merge`,`merging`]]),pT=e=>x(`patch: ${e}
|
|
265
|
+
patch: Try 'patch --help' for more information.`,2);function mT(e){for(let t of e){if(t===`--`)break;let e=t.replace(/=.*/u,``);if(e===`--merge`||e===`--read-only`)return{refused:C(`option`,`patch`,e,`patch: ${e}: ${fT.get(e.slice(2))} is not supported`,2)}}let t;try{t=U(e,{short:cT,long:lT,valueShort:uT,valueLong:dT})}catch(e){let t=S(e);return t?{refused:C(t.kind,`patch`,t.detail,`patch: ${e.message}`,2)}:{error:pT(e.message)}}let n={strip:-1,input:null,output:null,directory:null,rejectFile:null,fuzz:2,suffix:`.orig`,format:null,rejectFormat:null,reverse:!1,noReverse:!1,force:!1,batch:!1,silent:!1,backup:!1,backupIfMismatch:!0,loose:!1,removeEmpty:!1,dryRun:!1};for(let{name:e,value:r}of t.order){let t=(e.length===1?`-`:`--`)+e,i=fT.get(e);if(i)return{refused:C(`option`,`patch`,t,`patch: ${t}: ${i} is not supported`,2)};let a=gT(n,e,r);if(a)return{error:a}}return t.positional.length>2?{error:pT(`${t.positional[2]}: extra operand`)}:{opts:n,operands:t.positional}}function hT(e,t){if(!/^[+-]?\d+$/u.test(e))return{error:x(`patch: **** ${t} ${ty(e,{vars:new Map})} is not a number`,2)};let n=Number(e);return n<0?{error:x(`patch: **** ${t} ${e} is negative`,2)}:{value:Math.min(n,2**53-1)}}function gT(e,t,n){switch(t){case`p`:case`strip`:{let t=hT(n,`strip count`);return t.error?t.error:(e.strip=t.value,null)}case`F`:case`fuzz`:{let t=hT(n,`fuzz factor`);return t.error?t.error:(e.fuzz=t.value,null)}case`i`:case`input`:return e.input=n,null;case`o`:case`output`:return e.output=n,null;case`d`:case`directory`:return e.directory=n,null;case`r`:case`reject-file`:return e.rejectFile=n,null;case`z`:case`suffix`:return n===``?x(`patch: **** backup suffix is empty`,2):(e.suffix=n,null);case`R`:case`reverse`:return e.reverse=!0,null;case`N`:case`forward`:return e.noReverse=!0,null;case`f`:case`force`:return e.force=!0,null;case`t`:case`batch`:return e.batch=!0,null;case`s`:case`silent`:case`quiet`:return e.silent=!0,null;case`b`:case`backup`:return e.backup=!0,null;case`l`:case`ignore-whitespace`:return e.loose=!0,null;case`E`:case`remove-empty-files`:return e.removeEmpty=!0,null;case`dry-run`:return e.dryRun=!0,null;case`u`:case`unified`:return e.format=`unified`,null;case`c`:case`context`:return e.format=`context`,null;case`n`:case`normal`:return e.format=`normal`,null;case`no-backup-if-mismatch`:return e.backupIfMismatch=!1,null;case`backup-if-mismatch`:return e.backupIfMismatch=!0,null;case`reject-format`:return n!==`unified`&&n!==`context`?x(`patch: **** unknown reject format ${n}`,2):(e.rejectFormat=n,null);default:return null}}function _T(e,t,n){let r=mT(t);if(r.error)return r.error;if(r.refused)return r.refused;let{opts:i,operands:a}=r,o={ctx:n,opts:i,dir:n.cwd,events:[],stdout:``,stderr:``,skipRest:!1,skipRejectFile:!1,reverse:i.reverse,reverseFlag:i.reverse,someFailed:!1,rejectsMade:new Set,output:``},s=i.output===`-`?2:1;o.quote=e=>ty(e,n),o.say=e=>{s===1?o.stdout+=e:o.stderr+=e,o.events.push({fd:s,text:e})};try{if(i.directory!==null){let e=k(n.cwd,i.directory,n.fs);if(e.error||!n.fs.isDir(e.path))throw new Y(`Can't change to directory ${ty(i.directory,n)} : ${e.error??`Not a directory`}`);o.dir=e.path}yT(o,Sw(vT(o,e,i.input??a[1]??null)),a[0]??null),i.output!==null&&i.output!==`-`&&DT(o,i.output,o.output,!1)}catch(e){if(!(e instanceof Y)){let t=S(e);if(!t)throw e;let n=`patch: ${e.message}`;return w({stdout:o.stdout,stderr:o.stderr+n+`
|
|
266
|
+
`,events:[...o.events,{fd:2,text:n+`
|
|
267
|
+
`}],exitCode:2},t.kind,`patch`,t.detail,n)}let t=`patch: **** ${e.message}
|
|
268
|
+
`;return{stdout:o.stdout,stderr:o.stderr+t,events:[...o.events,{fd:2,text:t}],exitCode:2}}return{stdout:o.stdout,stderr:o.stderr,events:o.events,exitCode:+!!o.someFailed}}function vT(e,t,n){if(n===null||n===`-`)return I(e.ctx),t;let r=P(e.ctx,`patch`,n);if(r.error||e.ctx.fs.isDir(r.path))throw new Y(`Can't open patch file ${ty(n,e.ctx)} : ${r.error??`Is a directory`}`);return e.ctx.fs.readFile(r.path)}function yT(e,t,n){let{opts:r}=e;for(;;){if(t.base!==0&&t.base>=t.lines.length)return;let i=Ew(t,{needHeader:n===null,strip:r.strip,format:r.format});if(i===null){if(t.base===0&&!t.empty)throw new Y(`Only garbage was found in the patch input.`);return}e.skipRest=!1,e.skipRejectFile=!1,e.reverse=e.reverseFlag;let a=Hw(e,i,n,t=>TT(e,t));a===null&&(a=bT(e,t,i)),e.skipRest&&(e.someFailed=!0),t.pos=i.start,xT(e,t,i,a),t.base=t.pos}}function bT(e,t,n){let{opts:r}=e;if(r.silent||(e.say(`can't find file to patch at input line ${n.hunkLine+1}
|
|
269
|
+
`),n.type!==`normal`&&e.say(r.strip===-1?`Perhaps you should have used the -p or --strip option?
|
|
270
270
|
`:`Perhaps you used the wrong -p or --strip option?
|
|
271
271
|
`)),t.base<n.start){e.say(`The text leading up to this was:
|
|
272
272
|
--------------------------
|
|
273
|
-
`);for(let
|
|
273
|
+
`);for(let r=t.base;r<n.start;r++)e.say(`|`+t.lines[r]);e.say(`--------------------------
|
|
274
274
|
`)}return r.force||r.batch?e.say(`No file to patch. Skipping patch.
|
|
275
275
|
`):(e.say(`File to patch:
|
|
276
276
|
`),e.say(`Skip this patch? [y]
|
|
277
277
|
`),r.silent||e.say(`Skipping patch.
|
|
278
|
-
`)),e.skipRest=!0,null}function
|
|
279
|
-
`),e.skipRest=!0,e.someFailed=!0)),!e.skipRest&&!
|
|
280
|
-
`)}let l=
|
|
278
|
+
`)),e.skipRest=!0,null}function xT(e,t,n,r){let{opts:i}=e,a=n.copy[0]||n.copy[1]||n.rename[0]||n.rename[1],o=null;e.skipRest||(o=i.output??(a?n.names[e.reverse?`old`:`new`]:r));let s={exists:!1,isDir:!1,content:``};e.skipRest||(s=TT(e,r),(s.isDir||s.link)&&(e.say(`File ${ty(r,e.ctx)} is not a regular file -- refusing to patch
|
|
279
|
+
`),e.skipRest=!0,e.someFailed=!0)),!e.skipRest&&!i.dryRun&&i.output===null&&(ET(e,o),a&&r!==o&&ET(e,r));let c=Uw(Nn(s.exists?s.content:``));if(!e.skipRest&&!i.silent){let t=r!==o,a=!t&&(n.rename[0]||n.rename[1]),s=n.copy[0]||n.copy[1]?`copied`:n.rename[0]||n.rename[1]?`renamed`:`read`,c=a?n.names[r===n.names.old?`new`:`old`]:r,l=t||a?` (${a?`already `:``}${s} from ${c})`:``;e.say(`${i.dryRun?`checking`:`patching`} file ${ty(o,e.ctx)}${l}
|
|
280
|
+
`)}let l=tT(n,i.rejectFormat??n.type),u=Qw(e,n,()=>n.empty?null:Mw(t,n.type),c,l);!e.skipRest&&!Xw(c)&&(e.say(`misordered hunks! output would be garbled
|
|
281
281
|
Skipping patch.
|
|
282
|
-
`),e.skipRest=!0);let d=
|
|
283
|
-
`)),!r.dryRun){if(
|
|
284
|
-
`);return}let i
|
|
285
|
-
`);return}e.say(` -- saving rejects to file ${
|
|
286
|
-
`),
|
|
287
|
-
`)}function
|
|
288
|
-
|
|
289
|
-
`)]:[];for(let
|
|
290
|
-
`))
|
|
282
|
+
`),e.skipRest=!0);let d=Zw(c.out);i.output!==null&&!e.skipRest&&(i.output===`-`?(e.stdout+=d,e.events.push({fd:1,text:d})):e.output+=d),!e.skipRest&&i.output===null&&ST(e,n,{inname:r,outname:o,input:s,content:d,result:u,empty:c.out.length===0,renaming:a}),u.failed&&!e.skipRejectFile&&CT(e,o,u,l.text)}function ST(e,t,n){let{opts:r}=e,{inname:i,outname:a,input:o,content:s,result:c,empty:l,renaming:u}=n,d=r.backup||r.backupIfMismatch&&(c.mismatch||c.failed>0),f=t.says[+!e.reverse]===2;if(l&&(r.removeEmpty||f)){r.dryRun||OT(e,a,d);return}if(!l&&f&&(e.someFailed=!0,r.silent||e.say(`Not deleting file ${ty(a,e.ctx)} as content differs from patch
|
|
283
|
+
`)),!r.dryRun){if(c.failed<c.count||u)DT(e,a,s,d),u&&i!==a&&(t.rename[0]||t.rename[1])&&OT(e,i,!1);else if(d){if(!o.exists)throw new Y(`Can't reopen file ${ty(a,e.ctx)} : No such file or directory`);DT(e,wT(e,a),o.content,!1)}}}function CT(e,t,n,r){let{opts:i}=e;if(e.someFailed=!0,e.say(`${n.failed} out of ${n.count} hunk${n.count===1?``:`s`} ${e.skipRest?`ignored`:`FAILED`}`),t===null||i.rejectFile===`-`){e.say(`
|
|
284
|
+
`);return}let a=i.rejectFile??t+`.rej`;if(i.dryRun){e.say(`
|
|
285
|
+
`);return}e.say(` -- saving rejects to file ${ty(a,e.ctx)}
|
|
286
|
+
`),ET(e,a);let o=e.rejectsMade.has(O(e.dir,a));e.rejectsMade.add(O(e.dir,a)),DT(e,a,(o?TT(e,a).content:``)+r,!1)}var wT=(e,t)=>t+e.opts.suffix;function TT(e,t){let n=k(e.dir,t,e.ctx.fs,{follow:!1}),r=!n.error&&e.ctx.fs.isLink?.(n.path)===!0,i=k(e.dir,t,e.ctx.fs);if(i.error)return{exists:!1,isDir:!1,link:r,size:0,content:``};if(e.ctx.fs.isDir(i.path))return{exists:!0,isDir:!0,link:r,size:0,content:``};let a=e.ctx.fs.readFile(i.path);return{exists:!0,isDir:!1,link:r,size:a.length,content:a}}function ET(e,t){let n=A(e.ctx.fs,e.dir,t,!1);if(!(e.ctx.writable&&n.startsWith(`/tmp/`)))throw new T(`feature`,`read-only target`,`${t}: file system is read-only`)}function DT(e,t,n,r){let{ctx:i}=e;ET(e,t);let a=k(e.dir,t,i.fs);try{if(!a.error){i.fs.replaceWritable(e.dir,t,n,r?wT(e,t):void 0);return}r&&i.fs.openWritable(e.dir,wT(e,t)),i.fs.openWritable(e.dir,t).write(n)}catch(n){throw new Y(`Can't create file ${ty(t,e.ctx)} : ${n?.fsError??n.message}`)}}function OT(e,t,n){let{ctx:r}=e;ET(e,t);let i=TT(e,t);i.exists&&(n&&r.fs.openWritable(e.dir,wT(e,t)).write(i.content),r.fs.removeWritable(e.dir,t))}var kT={du:PS,stat:SC,realpath:Zy,diff:ew,patch:_T};function AT(e,t,n){return U(t),b(n.cwd+`
|
|
287
|
+
`)}function jT(e,t,n){let{positional:r}=U(t);if(r.length>1)return x(`cd: too many arguments`);if(!r.length&&n.vars.unsetNames.has(`HOME`))return x(`cd: HOME not set`);let i=r[0]??TS(n);if(i===`-`){if(!n.vars.has(`OLDPWD`))return x(`cd: OLDPWD not set`);i=n.vars.get(`OLDPWD`)}let a=r[0]===`-`?i+`
|
|
288
|
+
`:``;if(i===``)return b(a);let{path:o,error:s}=P(n,`cd`,i);return s?x(`cd: ${i}: ${s}`):n.fs.isDir(o)?o===O(n.cwd,i)?(n.vars.set(`OLDPWD`,n.cwd),n.vars.set(`PWD`,o),n.cwd=o,b(a)):C(`feature`,`cd`,`symbolic link cwd`,`cd: ${i}: a working directory reached through a symbolic link is not supported (it leads to ${o})`):x(`cd: ${i}: Not a directory`)}var MT={dir:`/`,link:`@`,file:``};function NT(e,t,n){let{flags:r,positional:i}=U(t,{short:[`1`,`l`,`a`,`A`,`R`,`d`,`r`,`F`,`h`]}),a=r.has(`l`)?zb(n,r.has(`h`)):null,o=(i.length?i:[`.`]).toSorted(M);r.has(`r`)&&o.reverse();let s=[],c=[],l=[],u=Sn(),d=r.has(`a`)||r.has(`A`),f=e=>n.fs.isDir(e)?`dir`:n.fs.isLink?.(e)?`link`:`file`,p=e=>r.has(`F`)?MT[e]:``,m=(e,t,r)=>({raw:e,abs:t,kind:r,name:r===`link`&&a?e:e+(e.endsWith(`/`)?``:p(r)),target:r===`link`?n.fs.readLink(t)+p(f(k(n.cwd,t,n.fs).path??``)):null}),h=(e,t)=>a?a.lines(e,t):e.map(e=>e.name),g=!(r.has(`l`)||r.has(`F`)||r.has(`d`));for(let e of o){let{path:t,error:i}=P(n,`ls`,e,{follow:!1}),a=i||!g||!n.fs.isLink?.(t)?t:k(n.cwd,e,n.fs).path;i?c.push(`ls: cannot access '${e}': ${i}`):r.has(`d`)||n.fs.isFile(t)||!n.fs.isDir(a)?l.push(m(e,t,f(t))):s.push({path:e,abs:a})}let _=l.length?[h(l,!1).join(`
|
|
289
|
+
`)]:[];for(let e of s){let t=[e];for(;t.length;){let{path:e,abs:i}=t.pop(),a=n.fs.listDir(i);d||u.collect(i,[...a.dirs,...a.files,...a.links]);let s=(e,t)=>e.filter(e=>d||!e.startsWith(`.`)).map(e=>m(e,O(i,e),t)),c=[...s(a.dirs,`dir`),...s(a.files,`file`),...s(a.links,`link`)];r.has(`a`)&&c.push(m(`.`,i,`dir`),m(`..`,O(i,`..`),`dir`)),c.sort((e,t)=>M(e.raw,t.raw)),r.has(`r`)&&c.reverse();let l=h(c,!0);if((o.length>1||r.has(`R`))&&l.unshift(e+`:`),l.length&&_.push(l.join(`
|
|
290
|
+
`)),r.has(`R`))for(let r of c.toReversed())r.raw===`.`||r.raw===`..`||!n.fs.isDir(r.abs)||t.push({path:e.endsWith(`/`)?e+r.raw:e+`/`+r.raw,abs:r.abs})}}return u.emit(n.notes,`ls`,`Hidden entries are included with -a.`),{stdout:_.length?_.join(`
|
|
291
291
|
|
|
292
292
|
`)+`
|
|
293
|
-
|
|
293
|
+
`:``,stderr:c.length?c.join(`
|
|
294
294
|
`)+`
|
|
295
|
-
|
|
296
|
-
`)}function
|
|
295
|
+
`:``,exitCode:c.length?2:0}}function PT(e,t){let{positional:n}=U(t);if(n.length===0)return We(`basename PATH [SUFFIX]`);if(n.length>2)return x(`basename: extra operand: ${n[2]}`);let r=n[0].replace(/\/+$/u,``);return b(FT(r===``?n[0]===``?``:`/`:r.slice(r.lastIndexOf(`/`)+1),n[1])+`
|
|
296
|
+
`)}function FT(e,t){return!t||t===e||!e.endsWith(t)?e:e.slice(0,-t.length)}function IT(e,t){let{positional:n}=U(t);return n.length===0?We(`dirname PATH`):b(n.map(e=>{let t=e.replace(/\/+$/u,``),n=t.lastIndexOf(`/`);return n<0?e.startsWith(`/`)?`/`:`.`:t.slice(0,n).replace(/\/+$/u,``)||`/`}).join(`
|
|
297
297
|
`)+`
|
|
298
|
-
`)}var
|
|
299
|
-
`;continue}let
|
|
300
|
-
`),
|
|
298
|
+
`)}var LT={pwd:AT,cd:jT,ls:NT,find:sx,tree:Hb,basename:PT,dirname:IT,...kT};function RT(e,t,n){let{flags:r,positional:i}=U(t,{short:[`n`,`b`,`s`,`v`,`E`,`T`,`A`,`e`,`t`]}),a=e=>WT(e,r),o=VT(i,e,n,a,r.size!==0);if(o.bytes===void 0)return Kn(a(o.content),o);if(r.size)throw new T(`feature`,`binary file`,`cat: formatting bytes that spell no text is not supported`);return{stdout:``,stderr:o.stderr,exitCode:+!!o.failed,events:[{fd:1,bytes:o.bytes},...o.stderr?[{fd:2,text:o.stderr}]:[]]}}function zT(e,t,n){let r=Vn(`cat`,e,t,n,{read:`maybe-text`});return{parts:r.inputs.map(e=>e.content??e.bytes),stderr:r.stderr,failed:r.failed}}var BT=e=>e.every(e=>typeof e==`string`)?{content:e.join(``)}:{bytes:ct([...e.map(e=>typeof e==`string`?E(e):e),new Uint8Array])};function VT(e,t,n,r,i){let a=n.outputFds[1];if(!a?.path&&!n.outputFds[2]?.path){let r=zT(e,t,n);return{...BT(r.parts),stderr:r.stderr,failed:r.failed}}let o=[],s=``,c=t,l=``;for(let t of e.length?e:[`-`]){let e=t===`-`,u=e||t===`/dev/stdin`,d=u?n.stdinHandle?.path:k(n.cwd,t,n.fs).path,f=u?n.stdinHandle?.identity:n.fs.fileIdentity?.(d);if(l&&UT(d,f,n.outputFds[2]))throw new T(`feature`,`cat input modified by diagnostics`,`cat: reading an input after writing diagnostics to the same file is not supported`);if(UT(d,f,a)){if((e?p(n.stdinHandle.content).length-p(c).length:0)<a.position+HT(o,s,r)){l+=`cat: ${t}: input file is output file
|
|
299
|
+
`;continue}let f=e?c:u?n.stdinOrigin:n.fs.readFile(d);if(i&&f!==``)throw new T(`feature`,`cat transforms its input file`,`cat: transforming an input file through its own output descriptor is not supported`)}let m=zT([t],c,n);o.push(...m.parts),s+=m.parts.filter(e=>typeof e==`string`).join(``),l+=m.stderr,(e||t===`/dev/stdin`&&!n.stdinFile)&&(c=``)}return{...BT(o),stderr:l,failed:l!==``}}var HT=(e,t,n)=>e.every(e=>typeof e==`string`)?p(n(t)).length:e.reduce((e,t)=>e+(typeof t==`string`?p(t).length:t.length),0);function UT(e,t,n){return!e||!n?.path?!1:t!==void 0&&n.identity!==void 0?t===n.identity:e===n.path}function WT(e,t){if(!t.size)return e;let n=t.has(`E`)||t.has(`A`)||t.has(`e`),r=t.has(`T`)||t.has(`A`)||t.has(`t`),i=t.has(`v`)||t.has(`A`)||t.has(`e`)||t.has(`t`),a=t.has(`s`)?KT(e):e,o=0;return Nn(a).map(e=>{let a=e.endsWith(`
|
|
300
|
+
`),s=a?e.slice(0,-1):e,c=(t.has(`b`)?s!==``:t.has(`n`))?`${String(++o).padStart(6)} `:``;return i?s=[...p(s)].map(e=>GT(e,r)).join(``):(r&&(s=s.replaceAll(` `,`^I`)),n&&a&&s.endsWith(`\r`)&&(s=s.slice(0,-1)+`^M`)),c+s+(a?n?`$
|
|
301
301
|
`:`
|
|
302
|
-
|
|
303
|
-
`)}var
|
|
304
|
-
`,t
|
|
305
|
-
`)throw
|
|
306
|
-
`)throw
|
|
307
|
-
`&&
|
|
308
|
-
`){
|
|
309
|
-
`))throw
|
|
310
|
-
`)break;if(/\d/u.test(n)){if(t.nth!==null)throw
|
|
311
|
-
`&&(e.textState.pending.raw=
|
|
312
|
-
`;){let r=e.script[e.i++];if(r
|
|
313
|
-
`;return}n+=r+e.script[e.i++]}else n+=r}t.command.text=
|
|
314
|
-
`),e.textState.pending=null}function
|
|
315
|
-
`)break;if(r===t)return n;if(r
|
|
316
|
-
`?
|
|
317
|
-
`,
|
|
318
|
-
`;continue}
|
|
319
|
-
`:
|
|
320
|
-
`,r.failed=!0,r.stop=!0,{bytes:[],end:e.length,stop:!0};let
|
|
321
|
-
`))return e;let n
|
|
322
|
-
`){n.at(-1)?.type
|
|
323
|
-
`),r++,
|
|
324
|
-
`||e[
|
|
325
|
-
`)){
|
|
326
|
-
`?2:3,r++;continue}if(
|
|
327
|
-
`;)
|
|
328
|
-
`,t
|
|
329
|
-
`)break;if(
|
|
330
|
-
`){
|
|
331
|
-
`)break;if(i==="\\"){r+=2;continue}if(o){if(i==="["&&e[r+1]===":"){let s=e.indexOf(":]",r+2);if(s!==-1){r=s+2;continue}}i==="]"&&(o=!1),r++;continue}if(i==="["){o=!0,r++,e[r]==="^"&&r++,e[r]==="]"&&r++;continue}if(i==="/")return{value:e.slice(t,r),end:r+1};r++}throw new A("unterminated regexp",n)}function yo(e,t=null){return $w(e,0,t).value}function vw(e,t){if(t.byte===void 0)for(let n of T(t.text))e.push(n);else e.push(t.byte)}var YO=new Set(["=","+=","-=","*=","/=","%=","^=","**="]),Sw=new Set(["<","<=","==","!=",">",">="]),bo=e=>e.type==="var"||e.type==="index"||e.type==="field";function Aw(e){let t=e.tok;return Ow(e)||t.type==="regex"||t.type==="keyword"&&t.value==="getline"||t.type==="punct"&&["!","-","+"].includes(t.value)}function lr(e,t){let n=[Le(e,t)];for(;e.accept(",");)e.skipNewlines(),n.push(Le(e,t));return n}function Le(e,t){let n=VO(e,t),r=e.tok;if(r.type==="punct"&&YO.has(r.value)){bo(n)||e.fail(`cannot assign to ${n.type==="regex"?"a regex":"a non-variable"} (left side of \`${r.value}\`)`),e.next();let o=Le(e,t);return{type:"assign",op:r.value==="**="?"^=":r.value,target:n,value:o}}return n}function VO(e,t){let n=Ol(e,t);if(!e.accept("?"))return n;e.skipNewlines();let r=Le(e,t);return e.skipNewlines(),e.expect(":"),e.skipNewlines(),{type:"cond",test:n,consequent:r,alternate:Le(e,t)}}var KO=[["or",["||"]],["and",["&&"]],["in",["in"]],["match",["~","!~"]],["compare",[...Sw]],["concat",[]],["binary",["+","-"]],["binary",["*","/","%"]]],JO=new Map(KO.flatMap(([e,t],n)=>t.map(r=>[r,{type:e,precedence:n}]))),QO={type:"concat",precedence:5};function Ol(e,t,n=0){let r=gs(e,t),o=1/0;for(;;){let i=e.tok;n<=4&&o>4&&!t.noGt&&(e.is("|")||e.is("|&"))&&e.fail(`command pipelines (\`"cmd" | getline\`) are not supported: ${Ni}`,'"cmd" | getline');let s=Ow(e)?QO:i.type==="punct"||i.type==="keyword"&&i.value==="in"?JO.get(i.value):void 0;if(!s||s.precedence<n||s.precedence>o||t.noGt&&e.is(">"))return r;let{type:a,precedence:u}=s,l=a==="concat"?null:e.next().value;if(o=u,(a==="or"||a==="and")&&e.skipNewlines(),a==="in"){r={type:a,keys:[r],array:Nw(e)};continue}let c=Ol(e,t,u+1);(l==="/"||l==="%")&&xo(c)===0&&xo(r)!==null&&e.fail(l==="/"?"division by zero attempted":"division by zero attempted in `%`",null,"error"),a==="compare"&&eI(e,t)&&e.fail(`comparison operators do not chain (\`a ${l} b ${e.tok.value} c\`); parenthesize the first comparison`),a==="binary"||a==="compare"?r={type:a,op:l,left:r,right:c}:a==="match"?r={type:a,negate:l==="!~",left:r,right:c}:r={type:a,left:r,right:c}}}function Nw(e){return e.tok.type!=="name"&&e.fail(`expected an array name after \`in\` but found \`${e.tok.value}\``),e.next().value}var eI=(e,t)=>e.tok.type==="punct"&&Sw.has(e.tok.value)&&!(t.noGt&&e.tok.value===">");function Ow(e){let t=e.tok;return t.type==="number"||t.type==="string"||t.type==="name"||t.type==="funcname"||t.type==="builtin"?!0:t.type==="punct"&&["$","(","++","--"].includes(t.value)}function Iw(e,t){return Ol(e,t,5)}function xo(e){if(e.type==="num")return e.value;if(e.type==="neg"||e.type==="plus"){let r=xo(e.expr);return r===null?null:e.type==="neg"?-r:r}if(e.type!=="binary")return null;let t=xo(e.left),n=xo(e.right);return t===null||n===null?null:Oi(e.op,t,n)}var tI={__proto__:null,"!":"not","-":"neg","+":"plus"};function gs(e,t,n=!1){if(n&&(e.is("$")||e.is("++")||e.is("--")))return ws(e,t);let r=e.tok.type==="punct"&&tI[e.tok.value];return r?(e.next(),{type:r,expr:gs(e,t,n)}):n?Cw(e,t):nI(e,t)}function nI(e,t){let n=Tw(e,t);return!e.is("^")&&!e.is("**")?n:(e.next(),{type:"binary",op:"^",left:n,right:gs(e,t)})}function Tw(e,t){let n=ws(e,t);for(;(e.is("++")||e.is("--"))&&bo(n);)n={type:"postinc",op:e.next().value,target:n};return n}function ws(e,t){if(e.accept("$"))return{type:"field",index:gs(e,t,!0)};if(e.is("++")||e.is("--")){let n=e.next().value,r=ws(e,t);return bo(r)||e.fail(`\`${n}\` needs a variable, field or array element`),{type:"preinc",op:n,target:r}}return Cw(e,t)}function Cw(e,t){let n=e.tok;switch(n.type){case"number":return e.next(),{type:"num",value:Number(n.value)};case"string":return e.next(),{type:"str",value:n.value};case"regex":return e.next(),{type:"regex",source:n.value,re:rI(e,n.value)};case"name":return oI(e);case"funcname":return iI(e);case"builtin":return aI(e);case"keyword":return n.value==="getline"?uI(e,t):e.unexpected();case"punct":return n.value==="("?sI(e):e.unexpected();default:return e.unexpected()}}function rI(e,t){try{return qe(t,!1,n=>e.warn(n))}catch(n){return e.fail(n.message,n.gap??null)}}function Il(e){if(!e.accept("["))return null;let t=lr(e,{});return e.expect("]"),e.is("[")&&e.fail("arrays of arrays are not supported","arrays of arrays"),t}function oI(e){let t=e.next().value,n=Il(e);return n!==null?{type:"index",name:t,subs:n}:(e.is("(")&&e.funcs.has(t)&&e.fail(`function \`${t}\` called with space between name and \`(\``),{type:"var",name:t})}function iI(e){return{type:"call",name:e.next().value,args:_w(e)}}function _w(e){e.expect("(");let t=e.is(")")?[]:lr(e,{});return e.expect(")"),t}function sI(e){let t=0;for(;e.parens.get(e.i+1)===e.parens.get(e.i)-1;)e.next(),t++;e.next();let n=lr(e,{});if(e.expect(")"),n.length===1){for(;t-- >0;)e.expect(")");return n[0]}return e.isKw("in")||e.fail("a parenthesized list must be followed by `in ARRAY`"),e.next(),{type:"in",keys:n,array:Nw(e)}}function aI(e){let t=e.next().value;if(Ai.has(t)&&e.fail(Ai.get(t),`${t}()`),!e.is("(")){if(t==="length")return{type:"builtin",name:t,args:[]};e.fail(`\`${t}\` needs parentheses: ${t}(...)`)}let n=_w(e),[r,o]=uu[t];return(n.length<r||n.length>o)&&e.fail(`${t}() called with ${n.length} argument${n.length===1?"":"s"}; it takes ${r===o?r:`${r} to ${o===1/0?"any number":o}`}`),(t==="sub"||t==="gsub")&&n[2]&&!bo(n[2])&&e.fail(`${t}(): substitution into a temporary value is not supported`,"substitution into temporary value"),t==="split"&&n[1].type!=="var"&&e.fail("split(): second argument must be an array name"),t==="match"&&n[2]&&n[2].type!=="var"&&e.fail("match(): third argument must be an array name"),{type:"builtin",name:t,args:n}}function uI(e,t){e.next();let n=null;(e.tok.type==="name"||e.is("$"))&&(n=ws(e,t),bo(n)||e.fail("getline: target must be a variable, field or array element"));let r=null;return e.accept("<")&&(r=Tw(e,t)),{type:"getline",target:n,file:r}}var lI=new Set(["/dev/stdout","/dev/stderr","/dev/null"]),Tl=class{constructor(t,n){this.toks=t,this.i=0,this.warnings=n,this.funcs=new Set,this.parens=new Map;let r=[];for(let o=0;o+1<t.length;o++){let i=t[o],s=t[o+1];i.type==="punct"&&(i.value==="("?r.push(o):i.value===")"&&r.length>0&&this.parens.set(r.pop(),o)),i.type==="keyword"&&i.value==="function"&&(s.type==="name"||s.type==="funcname")&&this.funcs.add(s.value)}this.loopDepth=0,this.switchDepth=0,this.context="main"}get tok(){return this.toks[this.i]}peek(t){return this.toks[Math.min(this.i+t,this.toks.length-1)]}is(t,n="punct"){return this.tok.type===n&&this.tok.value===t}isKw(t){return this.is(t,"keyword")}next(){return this.toks[this.i++]}accept(t,n="punct"){return this.is(t,n)?this.next():null}expect(t,n="punct"){return this.is(t,n)||this.fail(`expected \`${t}\` but found ${$n(this.tok)}`),this.next()}skipNewlines(){for(;this.tok.type==="newline";)this.i++}skipTerminators(){for(;this.tok.type==="newline"||this.is(";");)this.i++}fail(t,n=null,r="syntax error"){throw new A(t,this.tok.line,n,r)}warn(t){this.warnings.push(t)}unexpected(){this.fail(`unexpected ${$n(this.tok)}`)}};function $n(e){return e.type==="eof"?"end of program":e.type==="newline"?"newline":e.type==="string"?`string "${e.value}"`:e.type==="regex"?`regex /${e.value}/`:`\`${e.value}\``}var Lw={__proto__:null,BEGIN:"begin",END:"end",BEGINFILE:"beginFile",ENDFILE:"endFile"};function Mw(e){let t=[],n=new Tl(Ew(e,o=>t.push(o)),t),r={begin:[],end:[],beginFile:[],endFile:[],rules:[],functions:new Map,warnings:t};for(n.skipNewlines();n.tok.type!=="eof";)n.is(";")&&n.fail("each rule must have a pattern or an action part"),cI(n,r),n.accept(";"),n.skipNewlines();return r}function cI(e,t){if(e.isKw("function")){fI(e,t);return}if(e.tok.type==="keyword"&&e.tok.value in Lw){let i=e.next().value;e.is("{")||e.fail(`${i} requires an action: ${i} { ... }`),t[Lw[i]].push(...ko(e,i.toLowerCase()));return}if(e.is("{")){t.rules.push({pattern:null,action:ko(e,"main")});return}let n=Le(e,{}),r=n;e.accept(",")&&(e.skipNewlines(),r={type:"range",from:n,to:Le(e,{})});let o=e.is("{")?ko(e,"main"):null;o===null&&!(e.tok.type==="newline"||e.tok.type==="eof"||e.is(";"))&&e.unexpected(),t.rules.push({pattern:r,action:o})}function fI(e,t){e.next();let n=e.tok;n.type==="builtin"&&e.fail(`cannot redefine builtin function \`${n.value}\``),n.type!=="name"&&n.type!=="funcname"&&e.fail(`expected a function name but found ${$n(n)}`),e.next();let r=n.value;t.functions.has(r)&&e.fail(`function \`${r}\` is defined twice`),e.expect("(");let o=[];for(;!e.is(")");){let i=e.tok;if(i.type!=="name"&&e.fail(`expected a parameter name but found ${$n(i)}`),(i.value===r||o.includes(i.value))&&e.fail(`duplicate parameter \`${i.value}\` in function \`${r}\``),o.push(e.next().value),!e.accept(","))break;e.skipNewlines()}e.expect(")"),e.skipNewlines(),t.functions.set(r,{params:o,body:ko(e,"function")})}function ko(e,t=e.context){let n=e.context;e.context=t,e.expect("{");let r=[];for(e.skipTerminators();!e.is("}");)e.tok.type==="eof"&&e.fail("missing `}` at end of program"),r.push(Cl(e)),e.skipTerminators();return e.next(),e.context=n,r}function vo(e){if(e.is(";")||e.tok.type==="newline"){e.next();return}e.is("}")||e.tok.type==="eof"||e.unexpected()}var dI={__proto__:null,if:pI,while:hI,do:mI,for:gI,switch:wI,break:e=>cr(e,"break"),continue:e=>cr(e,"continue"),next:e=>cr(e,"next"),nextfile:e=>cr(e,"nextfile"),exit:e=>cr(e,"exit"),return:e=>cr(e,"return"),delete:xI,print:e=>Rw(e,"print"),printf:e=>Rw(e,"printf")};function Cl(e){if(e.is("{"))return{type:"block",body:ko(e)};if(e.is(";"))return e.next(),{type:"empty"};let t=e.tok.type==="keyword"?dI[e.tok.value]:void 0;if(t)return t(e);let n=Le(e,{});return vo(e),{type:"expr",expr:n}}function fr(e,t){e.skipNewlines(),t&&e.loopDepth++;let n=Cl(e);return t&&e.loopDepth--,n}function ys(e){e.next(),e.expect("(");let t=Le(e,{});return e.expect(")"),t}function pI(e){let t=ys(e),n=fr(e,!1),r=e.i;return e.skipNewlines(),e.isKw("else")?(e.next(),{type:"if",test:t,consequent:n,alternate:fr(e,!1)}):(e.i=r,{type:"if",test:t,consequent:n,alternate:null})}function hI(e){return{type:"while",test:ys(e),body:fr(e,!0)}}function mI(e){e.next();let t=fr(e,!0);e.skipTerminators(),e.isKw("while")||e.fail("`do` body must be followed by `while (...)`");let n=ys(e);return vo(e),{type:"do",body:t,test:n}}function gI(e){if(e.next(),e.expect("("),e.tok.type==="name"&&e.peek(1).type==="keyword"&&e.peek(1).value==="in"&&e.peek(2).type==="name"&&e.peek(3).value===")"){let o=e.next().value;e.next();let i=e.next().value;return e.next(),{type:"forin",name:o,array:i,body:fr(e,!0)}}let t=e.is(";")?null:Le(e,{});e.expect(";"),e.skipNewlines();let n=e.is(";")?null:Le(e,{});e.expect(";"),e.skipNewlines();let r=e.is(")")?null:Le(e,{});return e.expect(")"),{type:"for",init:t,test:n,step:r,body:fr(e,!0)}}function wI(e){let t=ys(e);e.skipNewlines(),e.expect("{");let n=[],r=new Set;for(e.switchDepth++,e.skipTerminators();!e.is("}");e.skipTerminators()){let o=null;e.accept("case","keyword")?o=yI(e):e.accept("default","keyword")||e.fail(`expected \`case\` or \`default\` in switch body but found ${$n(e.tok)}`);let i=o===null?"default":o.type==="regex"?`/${o.source}/`:String(o.value);r.has(i)&&e.fail(`duplicate case values in switch body: ${i}`),r.add(i),e.expect(":");let s=[];for(e.skipTerminators();!e.is("}")&&!e.isKw("case")&&!e.isKw("default");)e.tok.type==="eof"&&e.fail("missing `}` at end of program"),s.push(Cl(e)),e.skipTerminators();n.push({test:o,body:s})}return e.switchDepth--,e.next(),{type:"switch",expr:t,cases:n}}function yI(e){let t=e.accept("-")?-1:(e.accept("+"),1),n=e.tok;return n.type==="number"?(e.next(),{type:"num",value:t*Number(n.value)}):t===1&&n.type==="string"?(e.next(),{type:"str",value:n.value}):t===1&&n.type==="regex"?(e.next(),{type:"regex",source:n.value,re:qe(n.value,!1,r=>e.warn(r))}):e.fail(`case value must be a number, string or regex constant, found ${$n(n)}`)}function cr(e,t){t==="break"&&e.loopDepth===0&&e.switchDepth===0&&e.fail("`break` is not allowed outside a loop or switch"),t==="continue"&&e.loopDepth===0&&e.fail("`continue` is not allowed outside a loop"),t==="next"&&e.context!=="main"&&e.context!=="function"&&e.fail(`\`next\` cannot be used in a ${e.context.toUpperCase()} action`),t==="nextfile"&&(e.context==="begin"||e.context==="end"||e.context==="endfile")&&e.fail(`\`nextfile\` cannot be used in a ${e.context.toUpperCase()} action`),t==="return"&&e.context!=="function"&&e.fail("`return` is only allowed inside a function"),e.next();let n={type:t};return(t==="exit"||t==="return")&&(n.value=Aw(e)?Le(e,{}):null),vo(e),n}function xI(e){e.next(),e.tok.type!=="name"&&e.fail(`\`delete\` needs an array name but found ${$n(e.tok)}`);let t=e.next().value,n=Il(e);return vo(e),{type:"delete",name:t,subs:n}}var Fw=e=>e.is(";")||e.is("}")||e.is(">")||e.is(">>")||e.is("|")||e.is("|&")||e.tok.type==="newline"||e.tok.type==="eof";function Rw(e,t){e.next();let n=null;if(e.is("(")){let o=e.i;e.next();let i=e.is(")")?[]:lr(e,{});e.accept(")")&&Fw(e)?n=i:e.i=o}n===null&&(n=Fw(e)?[]:lr(e,{noGt:!0})),t==="printf"&&n.length===0&&e.fail("printf needs a format string");let r=null;return(e.is("|")||e.is("|&"))&&e.fail(`output pipes (\`${t} ... | "cmd"\`) are not supported: ${Ni}`,`${t} | "cmd"`),(e.accept(">")||e.accept(">>"))&&(r=Iw(e,{noGt:!0}),r.type==="str"&&!lI.has(r.value)&&e.fail(_l(r.value),`${t} > FILE`)),vo(e),{type:t,args:n,dest:r}}function _l(e){return`cannot redirect output to \`${e}\`: the filesystem is read-only (only /dev/stdout, /dev/stderr and /dev/null). To print a comparison, parenthesize it: print (a > b)`}var Y=class{constructor(t){this.s=t,this.number=void 0,this.numeric=void 0}},Eo="[ \\t\\n\\r\\f\\v]*",Pw="[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?",bI=new RegExp(`^${Eo}${Pw}${Eo}$`,"u"),kI=new RegExp(`^${Eo}(${Pw})`,"u"),zw=new RegExp(`^${Eo}([+-])(inf|nan)${Eo}$`,"iu"),Ll=e=>bI.test(e)||zw.test(e);function Dw(e){let t=kI.exec(e);if(t)return Number(t[1]);let n=zw.exec(e);return n?n[2].toLowerCase()==="nan"?Number.NaN:n[1]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY:0}var Fl=()=>new A("attempt to use an array in a scalar context");function Z(e){if(typeof e=="number")return e;if(e===void 0)return 0;if(e instanceof Y)return e.number??=Dw(e.s);if(typeof e=="string")return Dw(e);throw Fl()}var xs=new Map;function Bw(e,t){if(Number.isNaN(e))throw new A("formatting signed NaN is not supported",null,"signed NaN");if(!Number.isFinite(e))return e<0?"-inf":"+inf";if(Number.isInteger(e))return Math.abs(e)<2**53?String(e):BigInt(e).toString();let n=xs.get(t);if(n===void 0){xs.size>64&&xs.clear(),n=Ki(t);let r=n.filter(o=>typeof o!="string");if(r.length>1||r.some(o=>!"diouxXeEfFgG".includes(o.conv)||o.width==="*"||o.precision==="*"))throw new A("this numeric conversion format is not supported",null,"numeric conversion format");xs.set(t,n)}return n.map(r=>typeof r=="string"?r:vn(e,r)).join("")}var jw=e=>typeof e=="string"?e:e instanceof Y?e.s:"%.6g",vI=e=>jw(e.globals.get("CONVFMT")),EI=e=>jw(e.globals.get("OFMT"));function M(e,t){if(typeof e=="string")return It(t,e);if(e instanceof Y)return It(t,e.s);if(typeof e=="number")return Bw(e,vI(t));if(e===void 0)return"";throw Fl()}function It(e,t){if(e.byteLocale&&/[\u0080-\u{10FFFF}]/u.test(t))throw new A("non-ASCII AWK text in a byte locale is not supported",null,"byte locale text");return t}function Sn(e,t=!1){return[...e].map(n=>{let r=t?n.toUpperCase():n.toLowerCase();if([...r].length!==1)throw new A("Unicode case expansion is not supported",null,"Unicode case mapping");return r}).join("")}function Ww(e,t){return typeof e=="number"?Bw(e,EI(t)):M(e,t)}var Rl=e=>e.numeric??=Ll(e.s),Uw=e=>typeof e=="number"||e===void 0||e instanceof Y&&Rl(e),Qe=e=>Fe(e.globals.get("IGNORECASE"));function bs(e,t,n){if(Uw(e)&&Uw(t)){let i=Z(e),s=Z(t);return i<s?-1:i>s?1:i===s?0:Number.NaN}let r=M(e,n),o=M(t,n);return Qe(n)&&(r=Sn(r),o=Sn(o)),q(r,o)}function Fe(e){if(typeof e=="number")return e!==0&&!Number.isNaN(e);if(typeof e=="string")return e!=="";if(e instanceof Y)return Rl(e)?Z(e)!==0:e.s!=="";if(e===void 0)return!1;throw Fl()}var Ml=(e,t)=>Number.isSafeInteger(e)?String(e):M(e,t);function Dl(e){return e instanceof Map?"array":e===void 0?"untyped":typeof e=="number"?"number":e instanceof Y&&Rl(e)?"strnum":"string"}function qw(e,t,n){let{text:r}=e;if(e.pos>=r.length)return null;if(t==="")return $I(e);let o,i;if(t.length===1){let a=r.indexOf(t,e.pos);i=a===-1?r.length:a,o=a===-1?r.length:a+1}else{let a=pu(r,qe(t,n),e.pos);i=a?.start??r.length,o=a?.end??r.length}let s=r.slice(e.pos,i);return e.pos=o,{rec:s,rt:r.slice(i,o)}}function $I(e){let{text:t}=e,n=e.pos;for(;t[n]===`
|
|
332
|
-
`;)n++;if(n>=t.length)return e.pos=n,null;let r=/\n\n+/gu;r.lastIndex=n;let
|
|
333
|
-
`))return e.split(t);if(n&&t
|
|
334
|
-
]`:t;return hu(e,qe(o,r))}function Hw(e){let t=e.split(/[ \t]+/u).filter(Boolean);return t.map((n,r)=>{let o=/^(?:(\+?\d+):)?(\+?\d+|\*)$/u.exec(n),i=o?.[1]===void 0?0:Number(o[1]),s=o?.[2]==="*"?4294967295:Number(o?.[2]);if(!o||o[1]!==void 0&&i===0||i>4294967295||!(s>0&&s<=4294967295)||o[2]==="*"&&r!==t.length-1)throw new A(`invalid FIELDWIDTHS value \`${e}'`);return{skip:i,width:s}})}function SI(e,t){let n=[...e],r=[],o=0;for(let{skip:i,width:s}of t){if(o>=n.length)break;o+=i,r.push(n.slice(o,o+s).join("")),o+=s}return r}function AI(e,t){let n=[],r=0;for(;r<e.length;){let o=t.search(e.slice(r));if(n.length>0&&o?.end===0&&(r+=ze(e,r),o=t.search(e.slice(r))),!o)break;n.push(e.slice(r+o.start,r+o.end)),r+=o.end}return n}function Gw(e,t){let n=Qe(e);return e.fieldMode==="FIELDWIDTHS"?SI(t,e.widths):e.fieldMode==="FPAT"?AI(t,qe(M(e.globals.get("FPAT"),e),n,e.warn)):zl(t,M(e.globals.get("FS"),e),M(e.globals.get("RS"),e)==="",n)}var NI=/^([A-Za-z_][A-Za-z0-9_]*)=([^]*)$/u,Pl=e=>e!==void 0&&e.type==="exit",ks=class{constructor(t,n){this.ctx=t,this.stdin=n,this.idx=1,this.src=null,this.sawFile=!1,this.exitSignal=void 0,this.readers=new Map}next(t){for(;this.exitSignal===void 0;){if(this.src){let n=qw(this.src,M(t.globals.get("RS"),t),Qe(t));if(n!==null)return t.globals.set("NR",Z(t.globals.get("NR"))+1),t.globals.set("FNR",Z(t.globals.get("FNR"))+1),t.globals.set("RT",n.rt),n.rec;this.closeFile(t);continue}if(!this.open(t))return null}return null}open(t){for(;this.idx<Math.trunc(Z(t.globals.get("ARGC")));){if(++t.steps>Vr)throw new A("input operand scan exceeded execution limit",null,"execution limit");let n=M(t.globals.get("ARGV").get(String(this.idx++)),t);if(n==="")continue;t.globals.set("ARGIND",this.idx-1);let r=NI.exec(n);if(r){t.assign(r[1],new Y(yo(r[2],t.warn)));continue}this.sawFile=!0;let{text:o,error:i}=this.readOperand(n);if(i==="Is a directory"){this.failFile(t,n,i),this.exitSignal===void 0&&t.warn(`command line argument \`${n}' is a directory: skipped`);continue}if(i){let s=this.failFile(t,n,i);if(s!==void 0&&s.type==="nextfile")continue;if(this.exitSignal!==void 0)return!1;throw new A(`${n}: ${i}`)}if(this.use(t,n,o))return!0}return this.sawFile||this.exitSignal!==void 0?!1:(this.sawFile=!0,this.use(t,"-",this.takeStdin()))}readOperand(t){if(t==="/dev/null")return{text:""};if(t==="-"||t==="/dev/stdin")return{text:t==="/dev/stdin"&&this.ctx.stdinFile?this.ctx.stdinOrigin:this.takeStdin()};let{path:n,error:r}=D(this.ctx,"awk",t);return this.ctx.fs.isDir(n)?{error:"Is a directory"}:r?{error:r}:{text:this.ctx.fs.readFile(n)}}takeStdin(){let t=this.stdin;return this.stdin="",z(this.ctx),t}use(t,n,r){this.src={text:r,pos:0},t.globals.set("FILENAME",n),t.globals.set("FNR",0),t.globals.set("ERRNO","");let o=t.fileRule("begin");return Pl(o)?(this.exitSignal=o,this.src=null,!1):o!==void 0&&o.type==="nextfile"?(this.closeFile(t),!1):(It(t,r),!0)}failFile(t,n,r){if(t.globals.set("ERRNO",r),!t.hasFileRules)return;t.globals.set("FILENAME",n),t.globals.set("FNR",0);let o=t.fileRule("begin");return Pl(o)&&(this.exitSignal=o),o}closeFile(t){this.src=null;let n=t.fileRule("end");Pl(n)&&(this.exitSignal=n)}readNamed(t,n){let r=this.readers.get(n);if(!r){let{text:i,error:s}=this.readOperand(n);if(s)return t.globals.set("ERRNO",s),{status:-1};r={text:It(t,i),pos:0},this.readers.set(n,r)}let o=qw(r,M(t.globals.get("RS"),t),Qe(t));return o===null?{status:0}:(t.globals.set("RT",o.rt),{status:1,record:o.rec})}close(t,n){return this.readers.delete(n)?0:(t.globals.set("ERRNO","close of redirection that was never opened"),-1)}};var OI=(e,t)=>({isRef:!0,scope:e,name:t}),$o=e=>typeof e=="object"&&e!==null&&e.isRef===!0,So=class extends Error{constructor(t){super(t.type),this.signal=t}},Yw=e=>new A(`attempt to use array \`${e}\` in a scalar context`);function vs(e,t){let n=e.frame;return n!==void 0&&n.has(t)?n:e.globals}function II(e){let t=e;for(;$o(t);)t=t.scope.get(t.name);return t instanceof Map?t:void 0}function dr(e,t){let n=vs(e,t).get(t);return $o(n)?II(n):n}var TI=new Set(["FS","FIELDWIDTHS","FPAT"]);function Es(e,t,n){let r=vs(e,t);if(r.get(t)instanceof Map)throw Yw(t);if(r===e.globals){if(t==="NF"){_I(e,n);return}if(t==="FIELDWIDTHS"&&(e.widths=Hw(M(n,e))),(t==="FPAT"||(t==="FS"||t==="RS")&&M(n,e).length>1)&&qe(M(n,e),Qe(e),e.warn,e.tables),TI.has(t)){e.fieldMode=t;let o=e.globals.get("PROCINFO");o instanceof Map&&o.set("FS",t)}}r.set(t,n)}function Tt(e,t){let n=vs(e,t),r=t,o=n,i=o.get(r);if(i instanceof Map)return i;let s=$o(i);for(;$o(i);)o=i.scope,r=i.name,i=o.get(r);if(!(i instanceof Map)){if(i!==void 0)throw new A(`attempt to use scalar \`${r}\` as an array`);i=new Map,o.set(r,i)}return s&&n.set(t,i),i}function $s(e,t,n=new Y(t)){e.record=t,e.recordValue=n,e.fields=[void 0,...Gw(e,t).map(r=>new Y(r))],e.nf=e.fields.length-1,e.globals.set("NF",e.nf)}function Vw(e){let t=M(e.globals.get("OFS"),e);e.record=e.fields.slice(1).map(n=>M(n,e)).join(t),e.recordValue=e.record}function Kw(e,t){return t===0?e.recordValue:t<=e.nf?e.fields[t]:void 0}function CI(e,t,n){if(t===0){let r=M(n,e);$s(e,r,typeof n=="number"?r:n);return}for(;e.nf<t;)e.fields[++e.nf]="";e.fields[t]=n,e.globals.set("NF",e.nf),Vw(e)}function _I(e,t){let n=Math.trunc(Z(t));if(n<0)throw new A(`NF set to negative value ${n}`);for(;e.nf<n;)e.fields[++e.nf]="";e.fields.length=n+1,e.nf=n,e.globals.set("NF",n),Vw(e)}function Jw(e,t){let n=Z(L(e,t));if(!(n>=0))throw new A(`attempt to access field ${Number.isNaN(n)?n:Math.trunc(n)}`);return Math.trunc(n)}function Ao(e,t){if(t.length===1)return Ml(L(e,t[0]),e);let n=M(e.globals.get("SUBSEP"),e);return t.map(r=>Ml(L(e,r),e)).join(n)}function Bl(e,t){return t.type==="var"?t:t.type==="index"?{type:"index",arr:Tt(e,t.name),key:Ao(e,t.subs)}:{type:"field",i:Jw(e,t.index)}}function Qw(e,t){return t.type==="var"?ey(dr(e,t.name),t.name):t.type==="index"?t.arr.get(t.key):Kw(e,t.i)}function jl(e,t,n){t.type==="var"?Es(e,t.name,n):t.type==="index"?t.arr.set(t.key,n):CI(e,t.i,n)}function Wl(e,t,n){jl(e,Bl(e,t),n)}function Xw(e,t,n){if(n===0&&(e==="/"||e==="%"))throw new A(e==="/"?"division by zero attempted":"division by zero attempted in `%`");return Oi(e,t,n)}var LI={__proto__:null,"<":e=>e<0,"<=":e=>e<=0,"==":e=>e===0,"!=":e=>e!==0,">":e=>e>0,">=":e=>e>=0};function Ct(e,t){let n=Qe(e);return t.type==="regex"?n?qe(t.source,!0,null,e.tables):t.re:qe(M(L(e,t),e),n,e.warn,e.tables)}function ey(e,t){if(e instanceof Map)throw Yw(t);return e}function Zw(e,t,n){let r=Bl(e,t.target),o=Z(Qw(e,r)),i=t.op==="++"?o+1:o-1;return jl(e,r,i),n?o:i}function L(e,t){switch(t.type){case"num":case"str":return t.value;case"regex":return Ct(e,t).test(e.record)?1:0;case"var":return ey(dr(e,t.name),t.name);case"index":{let n=Tt(e,t.name),r=Ao(e,t.subs),o=n.get(r);return o===void 0&&n.set(r,void 0),o}case"field":return Kw(e,Jw(e,t.index));case"assign":{let n=Bl(e,t.target),r=L(e,t.value);if(r instanceof Map)throw new A("attempt to use an array in a scalar context");return t.op!=="="&&(r=Xw(t.op[0],Z(Qw(e,n)),Z(r))),jl(e,n,r),r}case"cond":return L(e,Fe(L(e,t.test))?t.consequent:t.alternate);case"or":return Fe(L(e,t.left))||Fe(L(e,t.right))?1:0;case"and":return Fe(L(e,t.left))&&Fe(L(e,t.right))?1:0;case"not":return Fe(L(e,t.expr))?0:1;case"neg":return-Z(L(e,t.expr));case"plus":return Z(L(e,t.expr));case"binary":return Xw(t.op,Z(L(e,t.left)),Z(L(e,t.right)));case"concat":return M(L(e,t.left),e)+M(L(e,t.right),e);case"compare":return LI[t.op](bs(L(e,t.left),L(e,t.right),e))?1:0;case"match":{let n=M(L(e,t.left),e);return Ct(e,t.right).test(n)===t.negate?0:1}case"in":return Tt(e,t.array).has(Ao(e,t.keys))?1:0;case"preinc":return Zw(e,t,!1);case"postinc":return Zw(e,t,!0);case"call":return FI(e,t);case"builtin":return e.callBuiltin(e,t);case"getline":return MI(e,t);default:throw new A(`unknown expression: ${t.type}`)}}function FI(e,t){let n=e.program.functions.get(t.name);if(n===void 0)throw new A(`function \`${t.name}\` not defined`);if(t.args.length>n.params.length)throw new A(`function \`${t.name}\` called with ${t.args.length} arguments, but it accepts only ${n.params.length}`);if(e.callDepth>=lu)throw new A(`function call nesting deeper than ${lu} levels (runaway recursion?)`,null,"call depth limit");let r=e.frame,o=new Map;for(let i=0;i<n.params.length;i++)o.set(n.params[i],i<t.args.length?RI(e,t.args[i]):void 0);e.frame=o,e.callDepth++;try{let i=e.execStmts(e,n.body);if(i===void 0||i.type==="return")return i?.value;throw new So(i)}finally{e.frame=r,e.callDepth--}}function RI(e,t){if(t.type!=="var")return L(e,t);let n=vs(e,t.name),r=n.get(t.name);return r instanceof Map||$o(r)?r:r===void 0?OI(n,t.name):r}function MI(e,t){let n;if(t.file===null){if(n=e.input.next(e),n===null)return 0}else{let r=e.input.readNamed(e,M(L(e,t.file),e));if(r.status!==1)return r.status;n=r.record}return t.target===null?$s(e,n):Wl(e,t.target,new Y(n)),1}var mt=(e,t)=>Z(L(e,t)),ql=2**32;function ny(e){return Number(BigInt.asUintN(32,BigInt(Math.trunc(e))))}var ry=()=>({seed:1,state:ny(1)});function DI(e){e.rng.state=(e.rng.state+1831565813)%ql;let t=e.rng.state;t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61);let n=t^t>>>14;return(n<0?n+ql:n)/ql}function UI(e,t){let n=e.rng.seed,r=t.length>0?mt(e,t[0]):Math.floor(Date.now()/1e3);return e.rng.seed=r,e.rng.state=ny(r),n}function PI(e,t){let n=mt(e,t[0]);return n<0&&e.warn(`log: received negative argument ${M(n,e)}`),Math.log(n)}function zI(e,t){let n=mt(e,t[0]);return n<0&&e.warn(`sqrt: called with negative argument ${M(n,e)}`),Math.sqrt(n)}function BI(e,t){let n=mt(e,t[0]),r=Math.exp(n);return Number.isFinite(n)&&!Number.isFinite(r)&&e.warn(`exp: argument ${M(n,e)} is out of range`),r}function jI(e,t){let n=L(e,t[0]);if(typeof n=="number")return n;let r=n instanceof Y?n.s:M(n,e),o=/^0[xX]([0-9a-fA-F]*)/u.exec(r);if(o)return o[1]===""?0:Number.parseInt(o[1],16);let i=/^0[0-7]+(?![.\deE0-9])/u.exec(r);return i?Number.parseInt(i[0],8):Z(new Y(r))}function No(e,t,n,r){let o=mt(e,n);if(o<0)throw new A(`${t}: argument ${r} negative value ${M(o,e)} is not allowed`);if(!Number.isFinite(o))throw new A(`${t}: argument ${r} is not a finite number`);return BigInt.asUintN(64,BigInt(Math.trunc(o)))}function Gl(e){let t=e;for(;t>0n&&BigInt(Number(t))!==t;)t&=(1n<<BigInt(t.toString(2).length-1))-1n;return Number(t)}function Hl(e,t){return(n,r)=>{if(r.length<2)throw new A(`${e}: called with less than two arguments`);let o=No(n,e,r[0],1);for(let i=1;i<r.length;i++)o=t(o,No(n,e,r[i],i+1));return Gl(o)}}function ty(e,t){return(n,r)=>{let o=No(n,e,r[0],1),i=No(n,e,r[1],2)%64n;return Gl(BigInt.asUintN(64,t?o<<i:o>>i))}}var oy={__proto__:null,sin:(e,t)=>Math.sin(mt(e,t[0])),cos:(e,t)=>Math.cos(mt(e,t[0])),atan2:(e,t)=>Math.atan2(mt(e,t[0]),mt(e,t[1])),exp:BI,log:PI,sqrt:zI,int:(e,t)=>Math.trunc(mt(e,t[0])),rand:DI,srand:UI,systime:()=>Math.floor(Date.now()/1e3),strtonum:jI,and:Hl("and",(e,t)=>e&t),or:Hl("or",(e,t)=>e|t),xor:Hl("xor",(e,t)=>e^t),lshift:ty("lshift",!0),rshift:ty("rshift",!1),compl:(e,t)=>Gl(BigInt.asUintN(64,~No(e,"compl",t[0],1)))};var Ss=new Map;function WI(e){let t=Ss.get(e);return t||(Ss.size>=256&&Ss.clear(),t=Ki(e),Ss.set(e,t)),t}function As(e,t,n){let r=0,o=()=>{if(r>=n.length)throw new A("printf: not enough arguments to satisfy format string");return n[r++]},i="";for(let s of WI(t)){if(typeof s=="string"){i+=s;continue}let a={...s};if(s.width==="*"){let u=Math.trunc(Z(o()));u<0?(a.minus=!0,a.width=-u):a.width=u}if(s.precision==="*"){let u=Math.trunc(Z(o()));a.precision=u<0?null:u}if(a.width>Me||a.precision>Me)throw new A(`printf: field width or precision above ${Me} is not supported`,null,"format size limit");i+=qI(e,a,o())}return i}function qI(e,t,n){if(t.conv==="s"){let r=M(n,e);return t.precision!==null&&(r=[...r].slice(0,t.precision).join("")),Vt("",r,t,!1)}return t.conv==="c"?Vt("",It(e,HI(n)),t,!1):vn(Z(n),t)}function HI(e){if(typeof e=="number"||e instanceof Y&&Ll(e.s)){let r=Math.trunc(Z(e));if(!st(r))throw new A("printf: character code outside Unicode scalar values is not supported",null,"character code");return String.fromCodePoint(r)}let n=e instanceof Y?e.s:e??"";return n===""?"\0":String.fromCodePoint(n.codePointAt(0))}var Ae=(e,t)=>M(L(e,t),e),iy=(e,t)=>Z(L(e,t)),GI={type:"field",index:{type:"num",value:0}};function XI(e,t){let n="";for(let r=0;r<e.length;r++){let o=e[r];if(o==="\\"){if(e[r+1]==="\\"&&e[r+2]==="\\"&&(e[r+3]==="&"||e[r+3]==="\\")){n+="\\"+e[r+3],r+=3;continue}if(e[r+1]==="\\"&&e[r+2]==="&"){n+="\\"+t,r+=2;continue}if(e[r+1]==="&"){n+="&",r++;continue}}n+=o==="&"?t:o}return n}function sy(e,t,n){let r=Ct(e,t[0]),o=Ae(e,t[1]),i=t[2]??GI,s=Ae(e,i),{out:a,count:u}=Kr(s,r,(l,c)=>XI(o,s.slice(l,c)),n?"global":"first");return u>0&&Wl(e,i,a),u}function ZI(e,t){let n="";for(let r=0;r<e.length;r++){let o=e[r];if(o==="\\"&&r+1===e.length)throw new A("gensub with a trailing replacement backslash is not supported",null,"gensub trailing backslash");if(o==="\\"&&r+1<e.length){let i=e[++r];i>="0"&&i<="9"?n+=t[Number(i)]?.text??"":n+=i;continue}n+=o==="&"?t[0].text:o}return n}function YI(e,t){let n=Ct(e,t[0]),r=Ae(e,t[1]),o=L(e,t[2]),i=M(o,e),s=i.startsWith("g")||i.startsWith("G"),a=0;s||(a=Math.trunc(Z(o)),a<1&&(e.warn(`gensub: third argument \`${i}' treated as 1`),a=1));let u=t[3]?Ae(e,t[3]):e.record,l=/(?:^|[^\\])(?:\\\\)*\\[1-9]/u.test(r);return Kr(u,n,(c,f,d)=>!s&&d!==a?null:ZI(r,l?n.groups(u,c,f):[{text:u.slice(c,f)}]),s?"global":"nth").out}function VI(e,t){let n=Ae(e,t[0]),r=Ct(e,t[1]),o=r.search(n,0),i=o?Array.from(n.slice(0,o.start)).length+1:0;if(e.globals.set("RSTART",i),e.globals.set("RLENGTH",o?Array.from(n.slice(o.start,o.end)).length:-1),t[2]){let s=Tt(e,t[2].name);if(s.clear(),o){let a=M(e.globals.get("SUBSEP"),e);r.groups(n,o.start,o.end).forEach((u,l)=>{u!==void 0&&(s.set(String(l),new Y(u.text)),s.set(`${l}${a}start`,Array.from(n.slice(0,u.start)).length+1),s.set(`${l}${a}length`,[...u.text].length))})}}return i}function KI(e,t){let n=Ae(e,t[0]),r=Tt(e,t[1].name),o;t[2]===void 0?o=M(e.globals.get("FS"),e):t[2].type==="regex"?o=Ct(e,t[2]):o=Ae(e,t[2]);let i=zl(n,o,!1,Qe(e));return r.clear(),i.forEach((s,a)=>r.set(String(a+1),new Y(s))),i.length}function JI(e,t){let n=[...Ae(e,t[0])],r=Math.trunc(iy(e,t[1])),o=Number.isNaN(r)?1:Math.max(r,1),i=n.length+1;if(t[2]){let s=Math.trunc(iy(e,t[2]));if(!(s>=1))return"";i=Math.min(i,o+s)}return i>o?n.slice(o-1,i-1).join(""):""}function QI(e,t){if(t.length===0)return[...e.record].length;if(t[0].type==="var"){let n=dr(e,t[0].name);return n instanceof Map?n.size:[...M(n,e)].length}return[...Ae(e,t[0])].length}function eT(e,t){let n=Ae(e,t[0]),r=Ae(e,t[1]);Qe(e)&&(n=Sn(n),r=Sn(r));let o=n.indexOf(r);return o<0?0:Array.from(n.slice(0,o)).length+1}function tT(e,t){let n=Ae(e,t[0]);return n==="/dev/stdout"||n==="/dev/stderr"||n==="/dev/null"?0:e.input.close(e,n)}var nT=(e,t)=>t[0].type==="var"?Dl(dr(e,t[0].name)):Dl(L(e,t[0])),rT={__proto__:null,...oy,length:QI,substr:JI,index:eT,split:KI,sub:(e,t)=>sy(e,t,!1),gsub:(e,t)=>sy(e,t,!0),gensub:YI,match:VI,sprintf:(e,t)=>As(e,Ae(e,t[0]),t.slice(1).map(n=>L(e,n))),tolower:(e,t)=>Sn(Ae(e,t[0])),toupper:(e,t)=>Sn(Ae(e,t[0]),!0),close:tT,fflush:()=>0,typeof:nT,isarray:(e,t)=>t[0].type==="var"&&dr(e,t[0].name)instanceof Map?1:0};function ay(e,t){let n=rT[t.name];if(!n)throw new A(`function \`${t.name}\` is not supported`,null,`${t.name}()`);return n(e,t.args)}var Os={type:"break"},Zl={type:"continue"},oT={type:"next"},iT={type:"nextfile"},sT={type:"exit"};function uy(e,t,n,r){let o=new Map([["0","awk"]]);r.forEach((a,u)=>o.set(String(u+1),new Y(a)));let i=new Map([["FS"," "],["OFS"," "],["ORS",`
|
|
335
|
-
`],[
|
|
336
|
-
`],[
|
|
337
|
-
`),fileRule:
|
|
338
|
-
`),
|
|
339
|
-
`),operands:t}}function
|
|
340
|
-
`,
|
|
341
|
-
`),exitCode:124}),
|
|
342
|
-
`)throw
|
|
343
|
-
`?(r&&t.push(
|
|
344
|
-
`));for(let
|
|
345
|
-
`,
|
|
346
|
-
`,r);r=
|
|
347
|
-
|
|
348
|
-
${
|
|
302
|
+
`:``)}).join(``)}function GT(e,t){return e===9?t?`^I`:` `:e>=128?`M-`+GT(e-128,!0):e<32?`^`+String.fromCodePoint(e+64):e===127?`^?`:String.fromCodePoint(e)}function KT(e){return e.replace(/(^|\n)\n+/gu,`$1
|
|
303
|
+
`)}var qT=`sed: supported commands are p, P, n, N, d, D, a, i, c, g, G, h, H, x, w, q, =, y, :, b, t, T, { }, and s/regexp/replacement/[NgiIpw]`,JT=1e6,YT=16777216,XT=67108864;function ZT(e=`script`){throw new T(`feature`,e,qT)}function QT(e){return e.gap?C(`feature`,`sed`,e.gap,`sed: ${e.message}`):e instanceof RangeError?C(`feature`,`sed`,`regex runtime limit`,`sed: ${e.message}`):Ke(e,`sed`,`sed: ${e.message.replace(/^sed: /u,``)}`,e.exitCode)}function $T(e){let t=[],n=null;for(let r=0;r<e.length;r++){let i=e[r];if(i===`--`){t.push(...e.slice(r));break}if(i===`--in-place`||i.startsWith(`--in-place=`)){n=i===`--in-place`?``:i.slice(11);continue}if(i.startsWith(`--`)||!i.startsWith(`-`)){t.push(i),(i===`--expression`||i===`--file`)&&r+1<e.length&&t.push(e[++r]);continue}let a=i;for(let o=1;o<i.length;o++){let s=i[o];if(s===`i`){n=i.slice(o+1),a=i.slice(0,o);break}if(s===`e`||s===`f`){t.push(i),o+1===i.length&&r+1<e.length&&t.push(e[++r]),a=``;break}if(!`nErsz`.includes(s))break}a&&(a!==`-`||i===`-`)&&t.push(a)}return{tokens:t,inPlace:n}}function eE(e,t,n,r,i){if(e.files.length===0)return x(`sed: no input files`,4);let a=G(),o=new Set([...t,`s`]),s=!1;for(let t of e.files){let c=tE(t,n);if(c.error){if(K(a,n.flushOutput(c.error)),c.error.exitCode!==2)return iE(a,c.error);s=!0;continue}let l=i({...e,files:[c.path]},o),{content:u,...d}=l;if(K(a,d),l.failed||S(l))return iE(a,l);let f=nE(t,r),p;try{p=n.fs.replaceWritable(n.cwd,t,u,f)}catch(e){F(n,`sed`,e?.path,e?.fsError);let t=Ke(e,`sed`,`sed: ${e.message}`,4);return K(a,t),iE(a,t)}if(!p){let e=rE(f??t);return K(a,e),iE(a,e)}if(l.quit)break}return s&&(a.exitCode=2),a}function tE(e,t){if(e===`/dev/null`||e===`/dev/stdin`&&!t.stdinFile||e===`/dev/stdout`&&!t.outputFds[1]?.path||e===`/dev/stderr`&&!t.outputFds[2]?.path)return{error:x(`sed: couldn't edit ${e}: not a regular file`,4)};if(e===`/dev/stdin`||e===`/dev/stdout`||e===`/dev/stderr`)return{error:rE(e)};let n=P(t,`sed`,e);if(n.error)return{error:x(Rn(`sed`,e,n.error).trimEnd(),2)};if(t.fs.isDir(n.path))return{error:x(`sed: couldn't edit ${e}: not a regular file`,4)};let r=k(t.cwd,e,t.fs,{follow:!1}).path;return!t.writable||!r.startsWith(`/tmp/`)?{error:rE(e)}:n}function nE(e,t){if(t!==``&&t!==`*`)return t.includes(`*`)?t.replaceAll(`*`,()=>e):e+t}function rE(e){return C(`feature`,`sed`,`-i`,`sed: ${e}: file system is read-only`)}function iE(e,t){let n=S(t);return n?w(e,n.kind,n.command,n.detail,n.message):e}function aE(e,t){let n=!1;return(r,i)=>{e((n?t:``)+r+(i??``)),n=i===``}}function oE(e,t){let n=new Map,r=0,i,a,o,s=()=>e.io.setReads([i,a?.identity]);function c(t,n){if(n===``)return;l(n),s();let r=e.outputFds[t];if(r?.path){r.write(n);return}if(r===`closed`){let e=Error(`write error: Bad file descriptor`);throw e.exitCode=4,e}o[t===1?`stdout`:`stderr`]+=n,o.events.push({fd:t,text:n})}function l(e){if(r+=e.length,r>XT)throw new T(`feature`,`output limit`,`sed: output limit exceeded`)}return{start(e){return o=G(),a=e,i=void 0,s(),o},record(e){i=e?.identity,s()},finish(){i=void 0,a=null,s()},stream:c,account:l,openWrite(r){if(n.has(r))return n.get(r);let i;if(r===`/dev/null`)i=()=>{};else if(r===`/dev/stdout`||r===`/dev/stderr`)i=e=>c(r===`/dev/stdout`?1:2,e);else{let t;try{t=e.writable&&e.fs.openWritable(e.cwd,r)}catch(t){throw F(e,`sed`,t?.path,t?.fsError),t.exitCode=4,t}if(!t)throw new T(`feature`,`output file`,`sed: ${r}: Read-only file system`);i=e=>{l(e),s(),t.write(e)}}let a=aE(i,t);return n.set(r,a),a}}}function sE(e,t){let n=t.stdinHandle;if(!n)return e;let r=t.io.bufferReads(()=>t.fs.readIdentity(n.identity));if(r===n.content)return e;if(e!==n.content)throw new T(`feature`,`modified redirected input`,`sed: reading an input file changed after partial consumption is not supported`);return t.stdinHandle={...n,content:r},t.stdinOrigin=t.stdinLeft=r,r}function cE(e,t,n,r,i,a){let o=e.length?e:[`-`],s={stderr:``,failed:!1},c=0,l=0,u=t,d=null;function f(){for(;d===null||d.pos===d.content.length;){if(c===o.length)return!1;d=null;let e=o[c++];e===`-`?u=sE(u,n):e===`/dev/stdin`&&n.stdinHandle&&(n.stdinOrigin=n.io.bufferReads(()=>n.fs.readIdentity(n.stdinHandle.identity)));let t=In(`sed`,[e],n,u);if(s.stderr+=t.stderr,s.failed||=t.failed,d=t.inputs.length?{...t.inputs[0],identity:lE(e,n),pos:0,first:!0}:null,t.stderr&&a&&a(t.stderr),t.entries.some(e=>e.kind===`dir`))return s.directory=!0,c=o.length,!1;d?.shared&&I(n,u),i&&(l=0)}return!0}function p(){if(!f())return null;let e=d.pos,t=d.content.indexOf(r,e),a=t<0?``:r,o=d.content.slice(e,t<0?d.content.length:t);d.pos=t<0?d.content.length:t+r.length,d.shared&&(u=d.content.slice(d.pos),I(n,u));let s=d.first;d.first=!1;let c;return{text:o,terminator:a,line:++l,reset:s,identity:d.identity,last:()=>c??=d.pos<d.content.length?!1:i||!f()}}return{next:p,status:s,get identity(){return d?.identity}}}function lE(e,t){return e===`-`||e===`/dev/stdin`?t.stdinHandle?.identity:t.fs.fileIdentity?.(k(t.cwd,e,t.fs).path??O(t.cwd,e))}var uE={n:`
|
|
304
|
+
`,t:` `,r:`\r`,a:`\x07`,f:`\f`,v:`\v`};function dE(e,t=`substitute command`){let n=e.script[e.i++];if(n===void 0||n===`
|
|
305
|
+
`)throw Error(`unterminated ${t}`);if(n.codePointAt(0)>127)throw Error(`delimiter character is not a single-byte character`);return n}function fE(e,t,n,r=`substitute command`){let i=``,a=!1;for(;e.i<e.script.length;){let o=e.script[e.i++];if(o===`
|
|
306
|
+
`)throw Error(`unterminated ${r}`);if(o===t&&!a)return i;if(o===`\\`){let s=e.script[e.i++];if(s===void 0||s===`
|
|
307
|
+
`&&a)throw Error(`unterminated ${r}`);if(s===`
|
|
308
|
+
`){i+=s;continue}i+=!a&&s===t&&(n||s!==`&`)?s:o+s;continue}if(n&&o===`[`&&!a){a=!0,i+=o,e.script[e.i]===`^`&&(i+=e.script[e.i++]),e.script[e.i]===`]`&&(i+=e.script[e.i++]);continue}if(n&&a&&o===`[`&&/[:.=]/u.test(e.script[e.i]??``)){let t=e.script.indexOf(e.script[e.i]+`]`,e.i+1);if(t<0)throw Error(`unterminated character class`);if(e.script.slice(e.i,t).includes(`
|
|
309
|
+
`))throw Error(`unterminated ${r}`);i+=o+e.script.slice(e.i,t+2),e.i=t+2;continue}n&&o===`]`&&(a=!1),i+=o}throw Error(`unterminated ${r}`)}function pE(e){let t=dE(e),n=fE(e,t,!0),r=yE(fE(e,t,!1)),i=mE(e);if(n===``&&(i.ignoreCase||i.multiline))throw Error(`cannot specify modifiers on empty regexp`);i.multiline&&hE(i.multiline);let a=_E(n,e.extended,!1,i.ignoreCase,e.locale);for(let e of r)if(typeof e==`number`&&e>a.re?.groupCount)throw Error(`invalid reference \\${e} in replacement`);return{...a,parts:r,...i}}function mE(e){let t={global:!1,print:!1,nth:null};for(;e.i<e.script.length;){let n=e.script[e.i];if(/[;\n#}]/u.test(n))break;if(e.i++,!/[ \t]/u.test(n)){if(n===`\r`&&e.script[e.i]===`
|
|
310
|
+
`)break;if(/\d/u.test(n)){if(t.nth!==null)throw Error(`multiple number options to substitute command`);let r=/^\d*/u.exec(e.script.slice(e.i))[0];if(e.i+=r.length,t.nth=Number(n+r),t.nth===0)throw Error(`number option to substitute command may not be zero`);Number.isSafeInteger(t.nth)||ZT(`substitution occurrence limit`)}else if(n===`g`||n===`p`){let e=n===`g`?`global`:`print`;if(t[e])throw Error(`multiple substitution flags`);t[e]=!0}else if(n===`w`){Object.assign(t,gE(e));break}else if(n===`i`||n===`I`)t.ignoreCase=!0;else if(n===`m`||n===`M`)t.multiline=n;else if(n===`e`)hE(n);else throw Error(`unknown option to substitute command: '${n}'`)}}return t}function hE(e){let t=e===`e`?`command evaluation`:`multiline regex matching`;throw new T(`feature`,`substitution flag ${e}`,`sed: substitution flag '${e}' (${t}) is not supported`)}function gE(e){let t=/^[ \t]*([^\n]*)/u.exec(e.script.slice(e.i));e.i+=t[0].length;let n=t[1].split(`\0`,1)[0];if(n===``)throw Error(`missing filename in r/R/w/W commands`);return e.openWrite?{writer:e.openWrite(n)}:{writeName:n}}function _E(e,t,n=!1,r=!1,i=N){if(!e){if(r)throw Error(`cannot specify modifiers on empty regexp`);return{re:null}}let a=_n(i);Ig(e,t,a.multibyte);let o=e.replace(/\\(.)/gu,(e,t)=>(t===`o`&&ZT(`regex escape`),Object.hasOwn(uE,t)?uE[t]:e)),s=r?Lh(o,a):o,c=t?{source:_g(s,a)}:Mh(s,a);if(c.error)throw Error(c.error);vE(c.source,t),Ph(c.source);for(let[,e]of c.source.matchAll(/\\(.)/gu))/[1-9]/u.test(e)&&ZT(`regex backreferences`);return{re:new Eh(bg(c.source,`extent`,a),!1,null,a),noSub:n,locale:i,ignoreCase:r,pattern:o}}function vE(e,t){let n=!1,r=0,i=!1,a=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s===`\\`){let t=e[++o];n||(i=!"bB<>`'".includes(t),a=!1);continue}if(n){s===`]`&&(n=!1,i=!0,a=!1);continue}if(s===`[`){n=!0;continue}if(s===`(`){r++,i=!1,a=!1;continue}if(s===`)`){if(--r<0)throw Error(`unmatched )`)}else if(s===`|`||s===`^`||s===`$`){i=!1,a=!1;continue}else if(`*+?{`.includes(s)){let n=s===`{`?/^\{(?=\d|,)(\d*)(?:,(\d*))?\}/u.exec(e.slice(o)):null;if(s===`{`&&n===null)throw Error(`invalid repetition count`);if(!i||!t&&a&&(s===`*`||s===`{`))throw Error(`Invalid preceding regular expression`);n&&(o+=n[0].length-1),a=!0;continue}i=!0,a=!1}if(r>0)throw Error(`unmatched (`)}function yE(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`&`){t.push(0);continue}if(r!==`\\`){t.push(r);continue}let i=e[++n];/[0-9]/u.test(i)?t.push(Number(i)):i===`\\`||i===`&`?t.push(i):Object.hasOwn(uE,i)?t.push(uE[i]):ZT(`replacement escape`)}return t}function bE(e,t){if(/[\u0080-\u{10FFFF}]/u.test(e+t.re.src)){if(t.locale!==N)throw new T(`feature`,`locale`,`matching non-ASCII text in the ${t.locale} locale is not supported`);t.ignoreCase&&cn.test(e+t.pattern)&&ZT(`case folding of Cyrillic Extended-C letters`)}}function xE(e,t,n=null){let r=e.re===null?t.last:e;if(!r)throw Error(`no previous regular expression`);if(t.last=r,n!==null&&r.noSub){if(n>r.re.groupCount)throw Error(`invalid reference \\${n} in replacement`);r.noSub=!1}return r}function SE(e,t,n){let r=xE(t,n,t.parts.reduce((e,t)=>typeof t==`number`?Math.max(e,t):e,0));bE(e,r);let i=t.parts.some(e=>typeof e==`number`&&e>0&&e<=r.re.groupCount),a=0;return{out:jh(e,t.nth&&!t.global?{search:(e,t)=>a?null:r.re.search(e,t)}:r.re,(n,o,s)=>{if(t.nth&&s<t.nth)return null;a++;let c=i?r.re.groups(e,n,o):null;return t.parts.map(t=>typeof t==`string`?t:t===0?e.slice(n,o):c?.[t]?.text??``).join(``)},t.global||t.nth?`global`:`first`).out,count:a}}var CE={a:7,f:12,n:10,r:13,t:9,v:11,"\n":10},wE={d:10,o:8,x:16};function TE(e,t){for(;/[ \t]/u.test(e.script[e.i]??``);)e.i++;if(e.i===e.script.length)throw Error(`expected \\ after 'a', 'c' or 'i'`);if(t.text=null,e.textState.pending={command:t,raw:``},e.script[e.i]===`\\`){let t=e.script[++e.i];if(t===void 0)return;e.i++,t!==`
|
|
311
|
+
`&&(e.textState.pending.raw=t)}EE(e)}function EE(e){let t=e.textState.pending;if(!t)return;let n=t.raw;for(;e.i<e.script.length&&e.script[e.i]!==`
|
|
312
|
+
`;){let r=e.script[e.i++];if(r===`\\`){if(e.i===e.script.length){t.raw=n+`
|
|
313
|
+
`;return}n+=r+e.script[e.i++]}else n+=r}t.command.text=OE(n+`
|
|
314
|
+
`),e.textState.pending=null}function DE(e){e?.pending&&(e.pending.command.text=e.pending.raw||null,e.pending=null)}function OE(e){return D(kE(e))}function kE(e){let t=p(e),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(r!==92||e+1===t.length){n.push(r);continue}let i=String.fromCodePoint(t[++e]);if(Object.hasOwn(CE,i)){n.push(CE[i]);continue}if(Object.hasOwn(wE,i)){let r=wE[i],a=r===16?2:3,o=0,s=0;for(;o<a&&e+1<t.length;){let n=t[e+1],i=n>=48&&n<=57?n-48:(n|32)>=97&&(n|32)<=102?(n|32)-87:-1;if(i<0||i>=r)break;s=s*r+i,o++,e++}n.push(o?s&255:i.codePointAt(0))}else if(i===`c`){if(++e===t.length)continue;let r=t[e];if(r===92&&t[++e]!==92)throw Error(`recursive escaping after \\c not allowed`);n.push((r>=97&&r<=122?r-32:r)^64)}else n.push(i.codePointAt(0))}return Uint8Array.from(n)}function AE(e){let t=dE(e,`'y' command`),n=kE(jE(e,t)),r=kE(jE(e,t)),i=e.byteLocale?n:[...D(n)],a=e.byteLocale?r:[...D(r)];if(i.length!==a.length)throw Error(`'y' command strings have different lengths`);let o=e.byteLocale?Uint8Array.from({length:256},(e,t)=>t):new Map;for(let t=0;t<i.length;t++)e.byteLocale?o[i[t]]=a[t]:o.has(i[t])||o.set(i[t],a[t]);return{translation:o,byteLocale:e.byteLocale}}function jE(e,t){let n=``;for(;e.i<e.script.length;){let r=e.script[e.i++];if(r===`
|
|
315
|
+
`)break;if(r===t)return n;if(r!==`\\`){n+=r;continue}let i=e.script[e.i++];if(i===void 0)break;n+=i===t||i===`
|
|
316
|
+
`?i:r+i}throw Error(`unterminated 'y' command`)}function ME(e,t){if(t.byteLocale)return D(p(e).map(e=>t.translation[e]));let n=``;for(let r of e)n+=t.translation.get(r)??r;return n}function NE(e,t=!1,n=N,r=null){let i={script:e,i:0,extended:t,locale:n,byteLocale:Qt(n),textState:r??{},openWrite:r?.openWrite},a=[];for(EE(i);i.i<e.length;){if(/[;\n\r\f\v \t]/u.test(e[i.i])){i.i++;continue}e[i.i]===`#`&&ZT(`comments`);let t=LE(i),n=null;if(t&&e[i.i]===`,`&&(i.i++,n=LE(i,!0),n===null))throw Error(`missing second address`);e[i.i]===`~`&&ZT(`step address`);let r=t?.type===`line`&&t.value===0;if(r&&n?.type!==`regex`)throw Error(`line numbers must be >= 1`);let o=!1;if(e[i.i]===`!`){for(o=!0,i.i++;/[ \t]/u.test(e[i.i]??``);)i.i++;if(e[i.i]===`!`)throw Error(`multiple '!'s`)}let s=e[i.i++],c={kind:s,start:t,end:n,active:r,negated:o};if(s&&`pPnNdD=gGhHx`.includes(s))a.push(c);else if(s===`w`){a.push({...c,...gE(i)});continue}else if(s===`:`||s===`b`||s===`t`||s===`T`){a.push({...c,label:FE(i,c)});continue}else if(s===`s`)a.push({...c,...pE(i)});else if(s===`a`||s===`i`||s===`c`)TE(i,c),a.push(c);else if(s===`y`)a.push({...c,...AE(i)});else if(s===`q`){if(n!==null)throw Error(`command only uses one address`);let t=/^[ \t]*(\d*)/u.exec(e.slice(i.i));i.i+=t[0].length;let r=BigInt.asIntN(32,BigInt(t[1]||`0`));a.push({...c,exitCode:r===-1n?0:Number(BigInt.asUintN(8,r))})}else if(s===`{`){i.textState.blockDepth=(i.textState.blockDepth??0)+1,a.push(c);continue}else if(s===`}`){if(!i.textState.blockDepth)throw Error(`unexpected '}'`);if(t!==null)throw Error(`'}' doesn't want any addresses`);i.textState.blockDepth--,a.push(c)}else{if(s===void 0)throw Error(`missing command`);if(`QlLFzrRWev`.includes(s))ZT();else throw Error(`unknown command: '${s}'`)}for(;/[ \t]/u.test(e[i.i]??``);)i.i++;if(e[i.i]===`#`&&ZT(`comments`),i.i<e.length&&!/[;\n}]/u.test(e[i.i]))throw Error(`extra characters after command`)}return r===null&&DE(i.textState),a}function PE(e,t){let n=[];for(let t=0;t<e.length;t++){let r=e[t];if(r.kind===`{`&&n.push(r),r.kind===`}`){if(n.length===0)throw Error(`unexpected '}'`);n.pop().jump=t}}if(n.length)throw Error(`unmatched '{'`);return DE(t),IE(e),e}function FE(e,t){if(t.kind===`:`&&t.start!==null)throw Error(`':' doesn't want any addresses`);let n=/^[ \t]*([^ \t\n;}#]*)/u.exec(e.script.slice(e.i));e.i+=n[0].length;let r=n[1].split(`\0`,1)[0];if(t.kind===`:`&&r===``)throw Error(`':' lacks a label`);return r}function IE(e){let t=new Map;for(let n=0;n<e.length;n++)e[n].kind===`:`&&t.set(e[n].label,n);for(let n=e.length-1;n>=0;n--){let r=e[n];if(![`b`,`t`,`T`].includes(r.kind))continue;let i=r.label===``?e.length:t.get(r.label);if(i===void 0)throw Object.assign(Error(`can't find label for jump to \`${r.label}'`),{exitCode:4});r.jump=i}}function LE(e,t=!1){for(;/[ \t]/u.test(e.script[e.i]??``);)e.i++;e.script[e.i]===`~`&&ZT(`step address`);let n=/^(\d+|\+[ \t]*\d+)/u.exec(e.script.slice(e.i)),r=null;if(n){let i=n[0][0]===`+`;if(i&&!t)throw Error(`relative address requires a range`);let a=Number(n[0].replace(/[ \t]/gu,``));Number.isSafeInteger(a)||ZT(`address limit`),e.i+=n[0].length,r={type:i?`offset`:`line`,value:a}}else if(e.script[e.i]===`$`)e.i++,r={type:`last`};else if(e.script[e.i]===`/`||e.script[e.i]===`\\`){e.script[e.i]===`\\`&&e.i++;let t=fE(e,dE(e,`address regex`),!0,`address regex`),n=!1;for(;;){for(;/[ \t]/u.test(e.script[e.i]??``);)e.i++;let r=e.script[e.i];if(r!==`I`&&r!==`M`)break;if(t===``)throw Error(`cannot specify modifiers on empty regexp`);r===`M`&&ZT(`address regex flags`),n=!0,e.i++}r={type:`regex`,..._E(t,e.extended,!0,n,e.locale)}}for(;/[ \t]/u.test(e.script[e.i]??``);)e.i++;return r}function RE(e,t,n,r,i){let{start:a,end:o}=e;if(a===null)return!0;if(o===null)return zE(a,t,n,r,i);if(!e.active){if(a.type===`line`){if(e.closed||n<a.value)return!1}else if(!zE(a,t,n,r,i))return!1;if(e.active=!0,o.type===`regex`)return!0;if(o.type===`offset`&&(e.until=n+o.value),o.type===`line`)return e.active=n<o.value,e.closed=!e.active,n<=o.value||zE(a,t,n,r,i)}return o.type===`line`?(e.active=n<o.value,e.closed=!e.active,n<=o.value):((o.type===`offset`?n>=e.until:zE(o,t,n,r,i))&&(e.active=!1,e.closed=!0),!0)}function zE(e,t,n,r,i){if(e.type===`line`)return n===e.value;if(e.type===`last`)return typeof r==`function`?r():r;let a=xE(e,i);return bE(t,a),a.re.search(t)!==null}function BE(e,t,n,r=!1){let{output:i,delimiter:a}=e,o=t.has(`n`)||t.has(`quiet`)||t.has(`silent`),s=t.has(`s`)||t.has(`separate`),c=cE(e.files,e.stdin,n,a,s,e=>i.stream(2,e)),l=i.start(c),u=[],d=aE(r?e=>{i.account(e),u.push(e)}:e=>i.stream(1,e),a),f={delimiter:a,quiet:o,separate:s,hold:e.hold,regexState:e.regexState,budget:e.budget,emit:d,input:c,output:i};try{let t=VE(e.commands,f);l.quit=t!==null,l.exitCode=c.status.failed?c.status.directory?4:2:t??0,l.failed=c.status.failed}catch(e){let t=QT(e);K(l,t);let n=S(t);n&&w(l,n.kind,n.command,n.detail,n.message),l.failed=!0}finally{i.finish()}return r&&(l.content=u.join(``)),l}function VE(e,t){let n=!0;for(let r=t.input.next();r;r=t.input.next()){if(n||t.separate&&r.reset){t.hold.text=``;for(let t of e)t.active=t.start?.type===`line`&&t.start.value===0,t.closed=!1;n=!1}t.output.record(r);let i={...r,...t,append:[],exitCode:null,replaced:!1},a=HE(e,i);if(!t.quiet&&!a&&t.emit(i.text,i.terminator),i.exitCode!==null&&t.emit(``),KE(i),i.exitCode!==null)return i.exitCode;t.output.record(null)}return null}function HE(e,t){for(let n=0;n<e.length;n++){if(++t.budget.steps>JT)throw new T(`feature`,`execution limit`,`sed: execution limit reached after ${JT} commands (infinite loop?)`);let r=e[n];if(r.kind===`}`||r.kind===`:`)continue;if(RE(r,t.text,t.line,t.last,t.regexState)===!!r.negated){r.kind===`{`&&(n=r.jump);continue}let i=r.kind;if(i!==`{`){if(i===`b`||i===`t`||i===`T`){let e=i===`b`||(i===`t`?t.replaced:!t.replaced);i!==`b`&&(t.replaced=!1),e&&(n=r.jump-1);continue}if(i===`q`){t.exitCode=r.exitCode;break}if(i===`d`)return!0;if(i===`D`){let e=t.text.indexOf(t.delimiter);if(e<0)return!0;t.text=t.text.slice(e+t.delimiter.length),n=-1;continue}if(i===`n`||i===`N`){if(!GE(t,i===`N`))return!0;continue}if(i===`c`)return!r.active&&r.text!==null&&t.emit(r.text.slice(0,-1),t.delimiter),!0;if(UE(r,t),t.text.length>YT)throw new T(`feature`,`pattern space limit`,`sed: pattern space limit exceeded`)}}return!1}function UE(e,t){let{kind:n}=e;if(n===`a`){t.append.push(e.text);return}if(n===`i`)e.text!==null&&t.emit(e.text.slice(0,-1),t.delimiter);else if(n===`p`)t.emit(t.text,t.terminator);else if(n===`P`){let e=t.text.indexOf(t.delimiter);t.emit(e<0?t.text:t.text.slice(0,e),e<0?t.terminator:t.delimiter)}else if(n===`=`)t.emit(String(t.line),t.delimiter);else if(n===`w`)e.writer(t.text,t.terminator);else if(`gGhHx`.includes(n))WE(n,t);else if(n===`y`)t.text=ME(t.text,e);else{let n=SE(t.text,e,t.regexState);if(t.text=n.out,!n.count)return;t.replaced=!0,e.print&&t.emit(t.text,t.terminator),e.writer&&e.writer(t.text,t.terminator)}}function WE(e,t){let n=t.hold;if(e===`x`){let{text:e,terminator:r}=t;Object.assign(t,n),Object.assign(n,{text:e,terminator:r})}else{let r=e===`h`||e===`H`?t:n,i=r===n?t:n;i.text=e===`G`||e===`H`?i.text+t.delimiter+r.text:r.text,i.terminator=r.terminator}if(n.text.length>YT)throw new T(`feature`,`hold space limit`,`sed: hold space limit exceeded`)}function GE(e,t){if(!t&&!e.quiet&&e.emit(e.text,e.terminator),e.last())return t&&!e.quiet&&e.emit(e.text,e.terminator),!1;KE(e);let n=e.input.next();if(!n)return t&&!e.quiet&&e.emit(e.text,e.delimiter),!1;let r=t?e.text+e.delimiter+n.text:n.text;if(r.length>YT)throw new T(`feature`,`pattern space limit`,`sed: pattern space limit exceeded`);return Object.assign(e,n,{text:r,replaced:!1}),e.output.record(n),!0}function KE(e){if(e.append.length!==0){e.emit(``);for(let t of e.append)e.emit(t??``);e.append.length=0}}function qE(e,t,n){try{let{tokens:r,inPlace:i}=$T(t),a=U(r,{short:[`n`,`E`,`r`,`s`,`z`],long:[`regexp-extended`,`quiet`,`silent`,`separate`,`null-data`,`zero-terminated`],repeatable:[`e`,`expression`,`f`,`file`]}),o=a.flags.has(`z`)||a.flags.has(`null-data`)||a.flags.has(`zero-terminated`)?`\0`:`
|
|
317
|
+
`,s=oE(n,o),c=JE(a,e,n,s.openWrite);return c===null?x(qT):c.error?c.error:(Object.assign(c,{output:s,delimiter:o,hold:{text:``,terminator:o},regexState:{last:null},budget:{steps:0}}),c.stdin=sE(c.stdin,n),i===null?BE(c,a.flags,n):eE(c,a.flags,n,i,(e,t)=>BE(e,t,n,!0)))}catch(e){return QT(e)}}function JE({order:e,positional:t},n,r,i){let a=[],o={openWrite:i},s=!1,c=!1;for(let{name:t,value:i}of e){if((t===`E`||t===`r`||t===`regexp-extended`)&&(s=!0),![`e`,`expression`,`f`,`file`].includes(t))continue;c=!0;let e=i;if(t===`f`||t===`file`){n=sE(n,r);let t=n,a=r.io.bufferReads(()=>In(`sed`,[i],r,t));if(a.failed)return{error:x(a.stderr,4)};e=a.inputs[0].content,a.inputs[0].shared&&(n=``)}for(let t of NE(e,s,r.locale,o))a.push(t)}return c?{commands:PE(a,o),files:t,stdin:n}:t.length===0?null:{commands:PE(NE(t[0],s,r.locale,o),o),files:t.slice(1),stdin:n}}var YE=new Set([`-b`,`-c`,`-g`,`-k`,`-p`,`-r`,`-t`,`-u`,`-v`,`-w`,`-x`,`-G`,`-N`,`-O`,`-R`,`-S`,`-o`]),XE=new Set([`-nt`,`-ot`,`-ef`,`<`,`>`]),ZE={__proto__:null,"-eq":(e,t)=>e===t,"-ne":(e,t)=>e!==t,"-lt":(e,t)=>e<t,"-le":(e,t)=>e<=t,"-gt":(e,t)=>e>t,"-ge":(e,t)=>e>=t},QE=String(vn).length,$E=new Set([`/dev/stdin`,`/dev/stdout`,`/dev/stderr`]);function eD(e,t,n){return nD(`test`,t,n)}function tD(e,t,n){return t.at(-1)===`]`?nD(`[`,t.slice(0,-1),n):x("[: missing `]'",2)}function nD(e,t,n){try{return{...b(),exitCode:+!rD(t,n)}}catch(t){return Ke(t,e,`${e}: ${t.message}`,2)}}function rD(e,t){let[n,r,i]=e;if(e.length===0)return!1;if(e.length===1)return n!==``;if(e.length===2){if(n===`!`)return r===``;if(n===`-n`)return r!==``;if(n===`-z`)return r===``;if([`-a`,`-e`,`-f`,`-d`,`-h`,`-L`,`-s`].includes(n))return aD(n,r,t);throw YE.has(n)&&cD(n),Error(`${n}: unary operator expected`)}if(e.length===3){if(r===`=`||r===`==`)return n===i;if(r===`!=`)return n!==i;if(Object.hasOwn(ZE,r))return ZE[r](iD(n),iD(i));XE.has(r)&&cD(r),(r===`-a`||r===`-o`)&&cD(`compound expressions`)}if(e.length<=4){if(n===`!`)return!rD(e.slice(1),t);if(n===`(`&&e.at(-1)===`)`)return rD(e.slice(1,-1),t)}throw e.some(e=>[`-a`,`-o`,`!`,`(`,`)`].includes(e))&&cD(`compound expressions`),Error(e.length>3?`too many arguments`:`${r}: binary operator expected`)}function iD(e){let t=/^[ \t\n\r\f\v]*([+-]?)(\d+)[ \t]*$/u.exec(e);if(t&&t[0].length===e.length){let e=t[2].replace(/^0+/u,``)||`0`;if(e.length<=QE){let n=BigInt(t[1]+e);if(n>=yn&&n<=vn)return n}}throw Error(`${e}: integer expression expected`)}function aD(e,t,n){let r={isDir:e=>e===`/dev`||e===`/dev/fd`||n.fs.isDir(e),isFile:e=>e===`/dev/null`||sD(e)||n.fs.isFile(e),isLink:e=>n.fs.isLink?.(e)===!0,readLink:e=>n.fs.readLink?.(e)},i=e===`-h`||e===`-L`,{path:a,error:o}=k(n.cwd,t,r,{follow:!i});return!o&&(sD(a)&&cD(`stream device metadata`),i?r.isLink(a):e===`-e`||e===`-a`?!0:e===`-d`?r.isDir(a):e===`-s`?r.isDir(a)||a!==`/dev/null`&&oD(n,a)>0:a!==`/dev/null`&&n.fs.isFile(a))}var oD=(e,t)=>e.fs.fileSize?.(t)??E(e.fs.readFile(t)).length;function sD(e){return $E.has(e)||/^\/dev\/fd\/\d+$/u.test(e)}function cD(e){throw new T(`feature`,e,`${e} is not supported`)}function lD(e){let t=e.replace(/^[ \t\n\r\v\f]+|[ \t\n\r\v\f]+$/gu,``),n=/^[+-]?\d+$/u.test(t)?BigInt(t):null;return{arg:t,n:n!==null&&n>=yn&&n<=vn?n:null}}var uD=e=>({...e,halt:!0});function dD(e,t,n){let r=t[0]===`--`?t.slice(1):t;if(r.length===0)return uD({...b(),exitCode:n.lastExit});let{arg:i,n:a}=lD(r[0]);return a===null?uD(x(`exit: ${i}: numeric argument required`,2)):r.length>1?uD(x(`exit: too many arguments`)):uD({...b(),exitCode:Number((a%256n+256n)%256n)})}function fD(e){return(t,n,r)=>{let i=n[0]===`--`?n.slice(1):n;if(i.length>1)return uD(x(`${e}: too many arguments`));let{arg:a,n:o}=lD(i[0]??`1`);return o===null?uD(x(`${e}: ${a}: numeric argument required`,128)):o<=0?{...x(`${e}: ${a}: loop count out of range`),control:r.loopDepth?{type:`break`,levels:r.loopDepth}:void 0}:r.loopDepth===0?x(`${e}: only meaningful in a \`for\`, \`while\` or \`until\` loop`,0):{...b(),control:{type:e,levels:Number(o>BigInt(r.loopDepth)?BigInt(r.loopDepth):o)}}}}function pD(e,t,n){let r=t[0]===`--`,i=r?t.slice(1):t;if(i.length===0||!r&&i[0]===`-p`)return C(`option`,`export`,`-p`,`export: listing the environment is not supported (there is none)`);let a=``;for(let e of i){let t=e.indexOf(`=`),i=t>0&&e[t-1]===`+`,o=t===-1?e:e.slice(0,i?t-1:t);if(!r&&e.startsWith(`-`))return C(`option`,`export`,e,`export: option \`${e}\` is not supported`);if(!mi.test(o)){a+=`export: \`${o}': not a valid identifier
|
|
318
|
+
`;continue}t===-1?n.vars.has(o)&&n.vars.set(o,n.vars.get(o)):n.vars.set(o,(i?Px(o,n):``)+e.slice(t+1))}return{stdout:``,stderr:a,exitCode:+!!a}}function mD(e,t,n){let r=+(t[0]===`-v`),i=t[r]===`--`;i&&r++;let a=t.slice(r);for(let e of a){if(!i&&e.startsWith(`-`))return C(`option`,`unset`,e,`unset: option \`${e}\` is not supported`);if(e.includes(`[`))return C(`feature`,`unset`,`array subscript`,`unset: array subscripts are not supported`);if(e===`LANG`)return C(`feature`,`unset`,`LANG`,`unset: LANG: ${qt}`);n.vars.delete(e)}return b()}function hD(e,t,n){let r=null;for(let e=0;e<t.length;e++){let n=t[e];if(n===`-e`||n===`+e`)r=n===`-e`;else if((n===`-o`||n===`+o`)&&t[e+1]===`errexit`)r=n===`-o`,e++;else return gD()}return r===null?gD():(n.errexit=r,b())}var gD=()=>C(`feature`,`set`,`set`,"set: `set` is supported only as `set -e` or `set +e`",127),_D={exit:dD,break:fD(`break`),continue:fD(`continue`),export:pD,set:hD,unset:mD},vD=new Map([[`return`,` (there are no shell functions)`],[`source`,` (nothing can be sourced into this shell)`],[`.`,``,"`.` (source)"],`eval`,`exec`,[`read`,` (there is no interactive input)`],[`shift`,` (there are no positional parameters)`],`shopt`,[`local`,` (there are no shell functions)`],[`declare`,"; use `NAME=value`"],[`typeset`,"; use `NAME=value`"],[`readonly`,"; use `NAME=value`"],[`let`,` (no arithmetic)`],[`type`,"; use `which`"],[`command`,`; run the command directly`],`builtin`,`hash`,`alias`,`unalias`,`trap`,[`wait`,` (nothing runs in the background)`],[`kill`,` (there are no processes)`],[`jobs`,` (there are no processes)`],[`bg`,` (there are no processes)`],[`fg`,` (there are no processes)`],[`disown`,` (there are no processes)`],`suspend`,`times`,`ulimit`,`umask`,[`pushd`,"; use `cd`"],[`popd`,"; use `cd -`"],`dirs`,`history`,`help`,`logout`,`getopts`,`mapfile`,`readarray`,`caller`,`enable`,`compgen`,`complete`,`bind`,`fc`].map(e=>{let[t,n=``,r="`"+t+"`"]=Array.isArray(e)?e:[e];return[t,r+` is not supported`+n]}));function yD(e,t){let n=0,r=!0,i=!1;for(;n<t.length&&/^-[neE]+$/u.test(t[n]);n++)for(let e of t[n].slice(1))e===`n`?r=!1:i=e===`e`;let a=t.slice(n).join(` `);if(i){let e=bD(a);a=e.text,e.stop&&(r=!1)}return b(r?a+`
|
|
319
|
+
`:a)}function bD(e){let t={a:7,b:8,e:27,E:27,f:12,n:10,r:13,t:9,v:11,"\\":92},n=[],r=e=>{for(let t of p(e))n.push(t)},i=e=>({text:D(Uint8Array.from(n)),stop:e});for(let a=0;a<e.length;a++){if(e[a]!==`\\`||a+1>=e.length){let t=e.indexOf(`\\`,a+1),n=t<0?e.length:t;r(e.slice(a,n)),a=n-1;continue}let o=e[++a];if(o===`c`)return i(!0);if(o in t){n.push(t[o]);continue}if(o===`0`){let t=``;for(;t.length<3&&/[0-7]/u.test(e[a+1]??``);)t+=e[++a];n.push(t===``?0:parseInt(t,8)&255);continue}let s=o===`x`?2:o===`u`?4:o===`U`?8:0;if(s>0&&/[0-9a-fA-F]/u.test(e[a+1]??``)){let t=``;for(;t.length<s&&/[0-9a-fA-F]/u.test(e[a+1]??``);)t+=e[++a];let i=parseInt(t,16);if(o===`x`)n.push(i);else{if(!Ir(i))throw new T(`feature`,`echo Unicode escape`,`echo: escapes outside Unicode scalar values are not supported`);r(String.fromCodePoint(i))}continue}let c=a+Rr(e,a);r(`\\`+e.slice(a,c)),a=c-1}return i(!1)}var xD={a:7,b:8,e:27,E:27,f:12,n:10,r:13,t:9,v:11,"\\":92};function SD(e,t,n,r){let i=e[t+1],a=t+2;if(i===void 0)return{bytes:[92],end:t+1};if(n&&i===`c`)return{bytes:[],end:a,stop:!0};if(Object.hasOwn(xD,i))return{bytes:[xD[i]],end:a};if(!n&&`'"?`.includes(i))return{bytes:[i.codePointAt(0)],end:a};if(/[0-7]/u.test(i)){let r=n&&i===`0`?4:3;for(;a<t+1+r&&/[0-7]/u.test(e[a]??``);)a++;return{bytes:[parseInt(e.slice(t+1,a),8)&255],end:a}}let o=i===`x`?2:i===`u`?4:i===`U`?8:0;if(o){for(;a<t+2+o&&/[\da-fA-F]/u.test(e[a]??``);)a++;if(a===t+2||i!==`x`&&a!==t+2+o)return r.stderr+=`printf: missing hexadecimal number in escape
|
|
320
|
+
`,r.failed=!0,r.stop=!0,{bytes:[],end:e.length,stop:!0};let n=parseInt(e.slice(t+2,a),16);if(i===`x`)return{bytes:[n],end:a};if(!Ir(n))throw new T(`feature`,`Unicode escape`,`escapes outside Unicode scalar values are not supported`);if(r.byteLocale&&n>127)throw new T(`feature`,`Unicode escape in C locale`,`non-ASCII Unicode escapes in the C locale are not supported`);return{bytes:p(String.fromCodePoint(n)),end:a}}return a=t+1+Rr(e,t+1),{bytes:p(e.slice(t,a)),end:a}}function CD(e,t){let n=[];for(let r=0;r<e.length;)if(e[r]===`\\`){let i=SD(e,r,!0,t);for(let e of i.bytes)n.push(e);if(r=i.end,i.stop){t.stop=!0;break}}else{let t=e.indexOf(`\\`,r),i=t<0?e.length:t;for(let t of p(e.slice(r,i)))n.push(t);r=i}return Uint8Array.from(n)}var wD=/^%([-+ #0']*)(\d+|\*)?(?:\.(-?\d+|\*)?)?([hlLjzt]*)(.)?/su,TD=8e6;function ED(e,t,n){let r=t[0]===`--`?t.slice(1):t;if(r.length===0)return We(`printf format [arguments]`);if(t[0]!==`--`&&/^-./su.test(t[0])){let e=t[0].startsWith(`-v`)?`-v`:t[0];return C(`option`,`printf`,e,`printf: option ${e} is not supported`,2)}let i={args:r.slice(1),index:0,chunks:[],size:0,stderr:``,failed:!1,stop:!1,byteLocale:$t(n)},a;try{if(r.some(e=>e.includes(`\0`)))throw new T(`feature`,`NUL in argument`,`NUL bytes in command arguments are not supported`);do{let e=i.index;if(AD(r[0],i),i.index===e)break}while(!i.stop&&i.index<i.args.length);a=b()}catch(e){a=Ke(e,`printf`,`printf: ${e.message}`)}try{a.stdout=OD(i)}catch(e){let t=S(a);t&&n.unsupported.add(t,`printf`);let r=Ke(e,`printf`,`printf: ${e.message}`);r.stderr=a.stderr+r.stderr,a=r}return a.stderr=i.stderr+a.stderr,i.failed&&a.exitCode===0&&(a.exitCode=1),a}function DD(e,t){if(e.size+t.length>TD)throw new T(`feature`,`format size limit`,`formatted output exceeds the output limit`);t.length&&e.chunks.push(t),e.size+=t.length}function OD(e){let t=new Uint8Array(e.size),n=0;for(let r of e.chunks)t.set(r,n),n+=r.length;return D(t)}var kD=e=>e.args[e.index++];function AD(e,t){for(let n=0;n<e.length&&!t.stop;)if(e[n]===`\\`){let r=SD(e,n,!1,t);DD(t,r.bytes),n=r.end}else if(e[n]===`%`){if(e[n+1]===`%`){DD(t,[37]),n+=2;continue}let r=jD(e.slice(n),t);n+=r.length;let i=kD(t);if(`sbc`.includes(r.conv))MD(i??``,r,t);else{let e=`diouxX`.includes(r.conv)?oC(aC(i,`ouxX`.includes(r.conv),t),r):sC(i,r,t);DD(t,p(e))}}else{let r=n+1;for(;r<e.length&&e[r]!==`%`&&e[r]!==`\\`;)r++;DD(t,p(e.slice(n,r))),n=r}}function jD(e,t){if(/^%[-+ #0'\d.*]*\$/u.test(e))throw new T(`feature`,`positional format arguments`,`positional format arguments are not supported`);let n=wD.exec(e),[,r,i,a,o,s]=n;if(s===void 0)throw Error(`missing format character`);if(!`sbcdiouxXeEfFgG`.includes(s))throw`aAqQnCS(p%I`.includes(s)?new T(`feature`,`%`+s,`format %${s} is not supported`):Error(`invalid format character: ${s}`);if(o&&`sbc`.includes(s))throw new T(`feature`,`format length modifier`,`length modifiers on string and character formats are not supported`);let c={conv:s,length:n[0].length,minus:r.includes(`-`),plus:r.includes(`+`),space:r.includes(` `),zero:r.includes(`0`),alt:r.includes(`#`),width:Number(i===`*`?aC(kD(t),!1,t):i??0),precision:a===`*`?Number(aC(kD(t),!1,t)):a===void 0?n[0].includes(`.`)?0:null:Number(a)};if(i===`*`&&Math.abs(c.width)>2147483647||a===`*`&&(c.precision<-2147483648||c.precision>2147483647))throw new T(`feature`,`format size limit`,`star width or precision outside the signed 32-bit range is not supported`);if(c.width<0&&(c.minus=!0,c.width=-c.width),c.precision<0&&(c.precision=null),c.width>rh||c.precision>rh)throw new T(`feature`,`format size limit`,`format width or precision exceeds the output limit`);return c}function MD(e,t,n){let r=t.conv===`b`?CD(e,n):p(e);t.conv===`c`?r=r.length?r.subarray(0,1):new Uint8Array(1):t.precision!==null&&(r=r.subarray(0,t.precision));let i=Math.max(0,t.width-r.length),a=i?new Uint8Array(i).fill(32):[];t.minus||DD(n,a),DD(n,r),t.minus&&DD(n,a)}function ND(e,t){if(!e.includes(`
|
|
321
|
+
`))return e;let n=$t(t);if(!n&&/[\u0080-\u009F\u2028\u2029]/u.test(e))throw new T(`feature`,`filename quoting`,`wc: locale-sensitive filename quoting is not supported`);let r=n?Array.from(p(e),e=>String.fromCodePoint(e)):[...e],i={7:`\\a`,8:`\\b`,9:`\\t`,10:`\\n`,11:`\\v`,12:`\\f`,13:`\\r`},a=!1,o=`'`;for(let e of r){let t=e.codePointAt(0);t<32||t===127||n&&t>127?(a||(o+=`'$'`),o+=i[t]??`\\`+t.toString(8).padStart(3,`0`),a=!0):(o+=e===`'`?`'\\''`:(a?`''`:``)+e,a=!1)}return o+`'`}function PD(e,t,n,r,i){let a=[];for(let t of[`l`,`w`,`m`,`c`])n[t]&&a.push(String(e[t]).padStart(r));return a.join(` `)+(t?` `+ND(t,i):``)}var FD=`**=.**.++.--.+=.-=.*=./=.%=.^=.==.!=.<=.>=.&&.||.!~.>>.|&.+.-.*./.%.^.!.>.<.|.?.:.~.$.=.(.).{.}.[.].;.,`.split(`.`),ID=new Set([`number`,`string`,`name`,`builtin`]),LD=new Set([`)`,`]`,`++`,`--`]),RD=/^(?:0[xX][0-9a-fA-F]+|\d+\.?\d*(?:[eE][+-]?\d+)?|\.\d+(?:[eE][+-]?\d+)?)/u,zD=e=>e!==void 0&&/[A-Za-z_]/u.test(e),BD=e=>e!==void 0&&/[A-Za-z0-9_]/u.test(e),VD=e=>e!==void 0&&e>=`0`&&e<=`9`;function HD(e,t=null){let n=[],r=1,i=0,a=(e,t)=>n.push({type:e,value:t,line:r}),o=()=>{let e=n.at(-1);return!e||!ID.has(e.type)&&!(e.type===`punct`&&LD.has(e.value))};for(;i<e.length;){let s=e[i];if(s===`
|
|
322
|
+
`){n.at(-1)?.type!==`newline`&&a(`newline`,`
|
|
323
|
+
`),r++,i++;continue}if(s===` `||s===` `||s===`\r`){i++;continue}if(s===`\\`&&(e[i+1]===`
|
|
324
|
+
`||e[i+1]===`\r`&&e[i+2]===`
|
|
325
|
+
`)){i+=e[i+1]===`
|
|
326
|
+
`?2:3,r++;continue}if(s===`#`){for(;i<e.length&&e[i]!==`
|
|
327
|
+
`;)i++;continue}if(s===`"`){let n=KD(e,i+1,t,r);a(`string`,n.value),i=n.end;continue}if(s===`/`&&o()){let t=qD(e,i+1,r);a(`regex`,t.value),i=t.end;continue}if(VD(s)||s===`.`&&VD(e[i+1])){let t=UD(e,i);a(`number`,t.value),i=t.end;continue}if(zD(s)){let t=i+1;for(;BD(e[t]);)t++;let n=e.slice(i,t);if(e.slice(t,t+2)===`::`)throw new W(`namespaces are not supported`,r,`namespaces`);i=t,Zm.has(n)?a(`keyword`,n===`func`?`function`:n):eh.has(n)?a(`builtin`,n):a(e[t]===`(`?`funcname`:`name`,n);continue}let c=i,l=FD.find(t=>e.startsWith(t,c));if(s===`@`)throw new W(`typed regexes, indirect calls and source directives are not supported`,r,`@ extensions`);if(!l)throw new W(`unexpected character \`${s}\``,r);a(`punct`,l),i+=l.length}return a(`eof`,``),n}function UD(e,t){let n=RD.exec(e.slice(t))[0],r=n;return/^0[xX]/u.test(n)?r=String(Number.parseInt(n.slice(2),16)):/^0[0-7]+$/u.test(n)&&(r=String(Number.parseInt(n,8))),{value:r,end:t+n.length}}var WD={__proto__:null,n:`
|
|
328
|
+
`,t:` `,r:`\r`,a:`\x07`,b:`\b`,f:`\f`,v:`\v`,'"':`"`,"\\":`\\`};function GD(e,t,n){let r=e[t+1];if(r===void 0)return{text:`\\`,end:t+1};if(r in WD)return{text:WD[r],end:t+2};if(r>=`0`&&r<=`7`){let n=t+1;for(;n<t+4&&e[n]>=`0`&&e[n]<=`7`;)n++;return{byte:Number.parseInt(e.slice(t+1,n),8)&255,end:n}}if(r===`x`&&/[0-9a-fA-F]/u.test(e[t+2]??``)){let n=t+2;for(;n<t+4&&/[0-9a-fA-F]/u.test(e[n]??``);)n++;return{byte:Number.parseInt(e.slice(t+2,n),16),end:n}}if(r.codePointAt(0)>127)throw new W(`non-ASCII characters after an escape are not supported`,null,`non-ASCII string escape`);return n?.(`escape sequence \`\\${r}' treated as plain \`${r}'`),{text:r,end:t+2}}function KD(e,t,n,r=null){let i=[],a=t;for(;a<e.length;){let t=e[a];if(r!==null){if(t===`"`)return{value:D(Uint8Array.from(i)),end:a+1};if(t===`
|
|
329
|
+
`)break;if(t===`\\`&&e[a+1]===`
|
|
330
|
+
`){a+=2;continue}}if(t===`\\`){let t=GD(e,a,n);YD(i,t),a=t.end}else{let t=String.fromCodePoint(e.codePointAt(a));YD(i,{text:t}),a+=t.length}}if(r!==null)throw new W(`unterminated string`,r);return{value:D(Uint8Array.from(i)),end:a}}function qD(e,t,n){let r=t,i=!1;for(;r<e.length;){let n=e[r];if(n===`
|
|
331
|
+
`)break;if(n===`\\`){r+=2;continue}if(i){if(n===`[`&&e[r+1]===`:`){let t=e.indexOf(`:]`,r+2);if(t!==-1){r=t+2;continue}}n===`]`&&(i=!1),r++;continue}if(n===`[`){i=!0,r++,e[r]===`^`&&r++,e[r]===`]`&&r++;continue}if(n===`/`)return{value:e.slice(t,r),end:r+1};r++}throw new W(`unterminated regexp`,n)}function JD(e,t=null){return KD(e,0,t).value}function YD(e,t){if(t.byte===void 0)for(let n of p(t.text))e.push(n);else e.push(t.byte)}var XD=new Set([`=`,`+=`,`-=`,`*=`,`/=`,`%=`,`^=`,`**=`]),ZD=new Set([`<`,`<=`,`==`,`!=`,`>`,`>=`]),QD=e=>e.type===`var`||e.type===`index`||e.type===`field`;function $D(e){let t=e.tok;return lO(e)||t.type===`regex`||t.type===`keyword`&&t.value===`getline`||t.type===`punct`&&[`!`,`-`,`+`].includes(t.value)}function eO(e,t){let n=[tO(e,t)];for(;e.accept(`,`);)e.skipNewlines(),n.push(tO(e,t));return n}function tO(e,t){let n=nO(e,t),r=e.tok;if(r.type===`punct`&&XD.has(r.value)){QD(n)||e.fail(`cannot assign to ${n.type===`regex`?`a regex`:`a non-variable`} (left side of \`${r.value}\`)`),e.next();let i=tO(e,t);return{type:`assign`,op:r.value===`**=`?`^=`:r.value,target:n,value:i}}return n}function nO(e,t){let n=oO(e,t);if(!e.accept(`?`))return n;e.skipNewlines();let r=tO(e,t);return e.skipNewlines(),e.expect(`:`),e.skipNewlines(),{type:`cond`,test:n,consequent:r,alternate:tO(e,t)}}var rO=[[`or`,[`||`]],[`and`,[`&&`]],[`in`,[`in`]],[`match`,[`~`,`!~`]],[`compare`,[...ZD]],[`concat`,[]],[`binary`,[`+`,`-`]],[`binary`,[`*`,`/`,`%`]]],iO=new Map(rO.flatMap(([e,t],n)=>t.map(t=>[t,{type:e,precedence:n}]))),aO={type:`concat`,precedence:5};function oO(e,t,n=0){let r=pO(e,t),i=1/0;for(;;){let a=e.tok;n<=4&&i>4&&!t.noGt&&(e.is(`|`)||e.is(`|&`))&&e.fail(`command pipelines (\`"cmd" | getline\`) are not supported: ${ih}`,`"cmd" | getline`);let o=lO(e)?aO:a.type===`punct`||a.type===`keyword`&&a.value===`in`?iO.get(a.value):void 0;if(!o||o.precedence<n||o.precedence>i||t.noGt&&e.is(`>`))return r;let{type:s,precedence:c}=o,l=s===`concat`?null:e.next().value;if(i=c,(s===`or`||s===`and`)&&e.skipNewlines(),s===`in`){r={type:s,keys:[r],array:sO(e)};continue}let u=oO(e,t,c+1);(l===`/`||l===`%`)&&dO(u)===0&&dO(r)!==null&&e.fail(l===`/`?`division by zero attempted`:"division by zero attempted in `%`",null,`error`),s===`compare`&&cO(e,t)&&e.fail(`comparison operators do not chain (\`a ${l} b ${e.tok.value} c\`); parenthesize the first comparison`),r=s===`binary`||s===`compare`?{type:s,op:l,left:r,right:u}:s===`match`?{type:s,negate:l===`!~`,left:r,right:u}:{type:s,left:r,right:u}}}function sO(e){return e.tok.type!==`name`&&e.fail(`expected an array name after \`in\` but found \`${e.tok.value}\``),e.next().value}var cO=(e,t)=>e.tok.type===`punct`&&ZD.has(e.tok.value)&&!(t.noGt&&e.tok.value===`>`);function lO(e){let t=e.tok;return t.type===`number`||t.type===`string`||t.type===`name`||t.type===`funcname`||t.type===`builtin`||t.type===`punct`&&[`$`,`(`,`++`,`--`].includes(t.value)}function uO(e,t){return oO(e,t,5)}function dO(e){if(e.type===`num`)return e.value;if(e.type===`neg`||e.type===`plus`){let t=dO(e.expr);return t===null?null:e.type===`neg`?-t:t}if(e.type!==`binary`)return null;let t=dO(e.left),n=dO(e.right);return t===null||n===null?null:ah(e.op,t,n)}var fO={__proto__:null,"!":`not`,"-":`neg`,"+":`plus`};function pO(e,t,n=!1){if(n&&(e.is(`$`)||e.is(`++`)||e.is(`--`)))return gO(e,t);let r=e.tok.type===`punct`&&fO[e.tok.value];return r?(e.next(),{type:r,expr:pO(e,t,n)}):n?_O(e,t):mO(e,t)}function mO(e,t){let n=hO(e,t);return!e.is(`^`)&&!e.is(`**`)?n:(e.next(),{type:`binary`,op:`^`,left:n,right:pO(e,t)})}function hO(e,t){let n=gO(e,t);for(;(e.is(`++`)||e.is(`--`))&&QD(n);)n={type:`postinc`,op:e.next().value,target:n};return n}function gO(e,t){if(e.accept(`$`))return{type:`field`,index:pO(e,t,!0)};if(e.is(`++`)||e.is(`--`)){let n=e.next().value,r=gO(e,t);return QD(r)||e.fail(`\`${n}\` needs a variable, field or array element`),{type:`preinc`,op:n,target:r}}return _O(e,t)}function _O(e,t){let n=e.tok;switch(n.type){case`number`:return e.next(),{type:`num`,value:Number(n.value)};case`string`:return e.next(),{type:`str`,value:n.value};case`regex`:return e.next(),{type:`regex`,source:n.value,re:vO(e,n.value)};case`name`:return bO(e);case`funcname`:return xO(e);case`builtin`:return wO(e);case`keyword`:return n.value===`getline`?TO(e,t):e.unexpected();case`punct`:return n.value===`(`?CO(e):e.unexpected();default:return e.unexpected()}}function vO(e,t){try{return Oh(t,!1,t=>e.warn(t))}catch(t){return e.fail(t.message,t.gap??null)}}function yO(e){if(!e.accept(`[`))return null;let t=eO(e,{});return e.expect(`]`),e.is(`[`)&&e.fail(`arrays of arrays are not supported`,`arrays of arrays`),t}function bO(e){let t=e.next().value,n=yO(e);return n===null?(e.is(`(`)&&e.funcs.has(t)&&e.fail(`function \`${t}\` called with space between name and \`(\``),{type:`var`,name:t}):{type:`index`,name:t,subs:n}}function xO(e){return{type:`call`,name:e.next().value,args:SO(e)}}function SO(e){e.expect(`(`);let t=e.is(`)`)?[]:eO(e,{});return e.expect(`)`),t}function CO(e){let t=0;for(;e.parens.get(e.i+1)===e.parens.get(e.i)-1;)e.next(),t++;e.next();let n=eO(e,{});if(e.expect(`)`),n.length===1){for(;t-->0;)e.expect(`)`);return n[0]}return e.isKw(`in`)||e.fail("a parenthesized list must be followed by `in ARRAY`"),e.next(),{type:`in`,keys:n,array:sO(e)}}function wO(e){let t=e.next().value;if($m.has(t)&&e.fail($m.get(t),`${t}()`),!e.is(`(`)){if(t===`length`)return{type:`builtin`,name:t,args:[]};e.fail(`\`${t}\` needs parentheses: ${t}(...)`)}let n=SO(e),[r,i]=Qm[t];return(n.length<r||n.length>i)&&e.fail(`${t}() called with ${n.length} argument${n.length===1?``:`s`}; it takes ${r===i?r:`${r} to ${i===1/0?`any number`:i}`}`),(t===`sub`||t===`gsub`)&&n[2]&&!QD(n[2])&&e.fail(`${t}(): substitution into a temporary value is not supported`,`substitution into temporary value`),t===`split`&&n[1].type!==`var`&&e.fail(`split(): second argument must be an array name`),t===`match`&&n[2]&&n[2].type!==`var`&&e.fail(`match(): third argument must be an array name`),{type:`builtin`,name:t,args:n}}function TO(e,t){e.next();let n=null;(e.tok.type===`name`||e.is(`$`))&&(n=gO(e,t),QD(n)||e.fail(`getline: target must be a variable, field or array element`));let r=null;return e.accept(`<`)&&(r=hO(e,t)),{type:`getline`,target:n,file:r}}var EO=new Set([`/dev/stdout`,`/dev/stderr`,`/dev/null`]),DO=class{constructor(e,t){this.toks=e,this.i=0,this.warnings=t,this.funcs=new Set,this.parens=new Map;let n=[];for(let t=0;t+1<e.length;t++){let r=e[t],i=e[t+1];r.type===`punct`&&(r.value===`(`?n.push(t):r.value===`)`&&n.length>0&&this.parens.set(n.pop(),t)),r.type===`keyword`&&r.value===`function`&&(i.type===`name`||i.type===`funcname`)&&this.funcs.add(i.value)}this.loopDepth=0,this.switchDepth=0,this.context=`main`}get tok(){return this.toks[this.i]}peek(e){return this.toks[Math.min(this.i+e,this.toks.length-1)]}is(e,t=`punct`){return this.tok.type===t&&this.tok.value===e}isKw(e){return this.is(e,`keyword`)}next(){return this.toks[this.i++]}accept(e,t=`punct`){return this.is(e,t)?this.next():null}expect(e,t=`punct`){return this.is(e,t)||this.fail(`expected \`${e}\` but found ${OO(this.tok)}`),this.next()}skipNewlines(){for(;this.tok.type===`newline`;)this.i++}skipTerminators(){for(;this.tok.type===`newline`||this.is(`;`);)this.i++}fail(e,t=null,n=`syntax error`){throw new W(e,this.tok.line,t,n)}warn(e){this.warnings.push(e)}unexpected(){this.fail(`unexpected ${OO(this.tok)}`)}};function OO(e){return e.type===`eof`?`end of program`:e.type===`newline`?`newline`:e.type===`string`?`string "${e.value}"`:e.type===`regex`?`regex /${e.value}/`:`\`${e.value}\``}var kO={__proto__:null,BEGIN:`begin`,END:`end`,BEGINFILE:`beginFile`,ENDFILE:`endFile`};function AO(e){let t=[],n=new DO(HD(e,e=>t.push(e)),t),r={begin:[],end:[],beginFile:[],endFile:[],rules:[],functions:new Map,warnings:t};for(n.skipNewlines();n.tok.type!==`eof`;)n.is(`;`)&&n.fail(`each rule must have a pattern or an action part`),jO(n,r),n.accept(`;`),n.skipNewlines();return r}function jO(e,t){if(e.isKw(`function`)){MO(e,t);return}if(e.tok.type===`keyword`&&e.tok.value in kO){let n=e.next().value;e.is(`{`)||e.fail(`${n} requires an action: ${n} { ... }`),t[kO[n]].push(...NO(e,n.toLowerCase()));return}if(e.is(`{`)){t.rules.push({pattern:null,action:NO(e,`main`)});return}let n=tO(e,{}),r=n;e.accept(`,`)&&(e.skipNewlines(),r={type:`range`,from:n,to:tO(e,{})});let i=e.is(`{`)?NO(e,`main`):null;i===null&&!(e.tok.type===`newline`||e.tok.type===`eof`||e.is(`;`))&&e.unexpected(),t.rules.push({pattern:r,action:i})}function MO(e,t){e.next();let n=e.tok;n.type===`builtin`&&e.fail(`cannot redefine builtin function \`${n.value}\``),n.type!==`name`&&n.type!==`funcname`&&e.fail(`expected a function name but found ${OO(n)}`),e.next();let r=n.value;t.functions.has(r)&&e.fail(`function \`${r}\` is defined twice`),e.expect(`(`);let i=[];for(;!e.is(`)`);){let t=e.tok;if(t.type!==`name`&&e.fail(`expected a parameter name but found ${OO(t)}`),(t.value===r||i.includes(t.value))&&e.fail(`duplicate parameter \`${t.value}\` in function \`${r}\``),i.push(e.next().value),!e.accept(`,`))break;e.skipNewlines()}e.expect(`)`),e.skipNewlines(),t.functions.set(r,{params:i,body:NO(e,`function`)})}function NO(e,t=e.context){let n=e.context;e.context=t,e.expect(`{`);let r=[];for(e.skipTerminators();!e.is(`}`);)e.tok.type===`eof`&&e.fail("missing `}` at end of program"),r.push(IO(e)),e.skipTerminators();return e.next(),e.context=n,r}function PO(e){if(e.is(`;`)||e.tok.type===`newline`){e.next();return}e.is(`}`)||e.tok.type===`eof`||e.unexpected()}var FO={__proto__:null,if:zO,while:BO,do:VO,for:HO,switch:UO,break:e=>GO(e,`break`),continue:e=>GO(e,`continue`),next:e=>GO(e,`next`),nextfile:e=>GO(e,`nextfile`),exit:e=>GO(e,`exit`),return:e=>GO(e,`return`),delete:KO,print:e=>JO(e,`print`),printf:e=>JO(e,`printf`)};function IO(e){if(e.is(`{`))return{type:`block`,body:NO(e)};if(e.is(`;`))return e.next(),{type:`empty`};let t=e.tok.type===`keyword`?FO[e.tok.value]:void 0;if(t)return t(e);let n=tO(e,{});return PO(e),{type:`expr`,expr:n}}function LO(e,t){e.skipNewlines(),t&&e.loopDepth++;let n=IO(e);return t&&e.loopDepth--,n}function RO(e){e.next(),e.expect(`(`);let t=tO(e,{});return e.expect(`)`),t}function zO(e){let t=RO(e),n=LO(e,!1),r=e.i;return e.skipNewlines(),e.isKw(`else`)?(e.next(),{type:`if`,test:t,consequent:n,alternate:LO(e,!1)}):(e.i=r,{type:`if`,test:t,consequent:n,alternate:null})}function BO(e){return{type:`while`,test:RO(e),body:LO(e,!0)}}function VO(e){e.next();let t=LO(e,!0);e.skipTerminators(),e.isKw(`while`)||e.fail("`do` body must be followed by `while (...)`");let n=RO(e);return PO(e),{type:`do`,body:t,test:n}}function HO(e){if(e.next(),e.expect(`(`),e.tok.type===`name`&&e.peek(1).type===`keyword`&&e.peek(1).value===`in`&&e.peek(2).type===`name`&&e.peek(3).value===`)`){let t=e.next().value;e.next();let n=e.next().value;return e.next(),{type:`forin`,name:t,array:n,body:LO(e,!0)}}let t=e.is(`;`)?null:tO(e,{});e.expect(`;`),e.skipNewlines();let n=e.is(`;`)?null:tO(e,{});e.expect(`;`),e.skipNewlines();let r=e.is(`)`)?null:tO(e,{});return e.expect(`)`),{type:`for`,init:t,test:n,step:r,body:LO(e,!0)}}function UO(e){let t=RO(e);e.skipNewlines(),e.expect(`{`);let n=[],r=new Set;for(e.switchDepth++,e.skipTerminators();!e.is(`}`);e.skipTerminators()){let t=null;e.accept(`case`,`keyword`)?t=WO(e):e.accept(`default`,`keyword`)||e.fail(`expected \`case\` or \`default\` in switch body but found ${OO(e.tok)}`);let i=t===null?`default`:t.type===`regex`?`/${t.source}/`:String(t.value);r.has(i)&&e.fail(`duplicate case values in switch body: ${i}`),r.add(i),e.expect(`:`);let a=[];for(e.skipTerminators();!e.is(`}`)&&!e.isKw(`case`)&&!e.isKw(`default`);)e.tok.type===`eof`&&e.fail("missing `}` at end of program"),a.push(IO(e)),e.skipTerminators();n.push({test:t,body:a})}return e.switchDepth--,e.next(),{type:`switch`,expr:t,cases:n}}function WO(e){let t=e.accept(`-`)?-1:(e.accept(`+`),1),n=e.tok;return n.type===`number`?(e.next(),{type:`num`,value:t*Number(n.value)}):t===1&&n.type===`string`?(e.next(),{type:`str`,value:n.value}):t===1&&n.type===`regex`?(e.next(),{type:`regex`,source:n.value,re:Oh(n.value,!1,t=>e.warn(t))}):e.fail(`case value must be a number, string or regex constant, found ${OO(n)}`)}function GO(e,t){t===`break`&&e.loopDepth===0&&e.switchDepth===0&&e.fail("`break` is not allowed outside a loop or switch"),t===`continue`&&e.loopDepth===0&&e.fail("`continue` is not allowed outside a loop"),t===`next`&&e.context!==`main`&&e.context!==`function`&&e.fail(`\`next\` cannot be used in a ${e.context.toUpperCase()} action`),t===`nextfile`&&(e.context===`begin`||e.context===`end`||e.context===`endfile`)&&e.fail(`\`nextfile\` cannot be used in a ${e.context.toUpperCase()} action`),t===`return`&&e.context!==`function`&&e.fail("`return` is only allowed inside a function"),e.next();let n={type:t};return(t===`exit`||t===`return`)&&(n.value=$D(e)?tO(e,{}):null),PO(e),n}function KO(e){e.next(),e.tok.type!==`name`&&e.fail(`\`delete\` needs an array name but found ${OO(e.tok)}`);let t=e.next().value,n=yO(e);return PO(e),{type:`delete`,name:t,subs:n}}var qO=e=>e.is(`;`)||e.is(`}`)||e.is(`>`)||e.is(`>>`)||e.is(`|`)||e.is(`|&`)||e.tok.type===`newline`||e.tok.type===`eof`;function JO(e,t){e.next();let n=null;if(e.is(`(`)){let t=e.i;e.next();let r=e.is(`)`)?[]:eO(e,{});e.accept(`)`)&&qO(e)?n=r:e.i=t}n===null&&(n=qO(e)?[]:eO(e,{noGt:!0})),t===`printf`&&n.length===0&&e.fail(`printf needs a format string`);let r=null;return(e.is(`|`)||e.is(`|&`))&&e.fail(`output pipes (\`${t} ... | "cmd"\`) are not supported: ${ih}`,`${t} | "cmd"`),(e.accept(`>`)||e.accept(`>>`))&&(r=uO(e,{noGt:!0}),r.type===`str`&&!EO.has(r.value)&&e.fail(YO(r.value),`${t} > FILE`)),PO(e),{type:t,args:n,dest:r}}function YO(e){return`cannot redirect output to \`${e}\`: the filesystem is read-only (only /dev/stdout, /dev/stderr and /dev/null). To print a comparison, parenthesize it: print (a > b)`}var X=class{constructor(e){this.s=e,this.number=void 0,this.numeric=void 0}},XO=`[ \\t\\n\\r\\f\\v]*`,ZO=`[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?`,QO=RegExp(`^${XO}${ZO}${XO}$`,`u`),$O=RegExp(`^${XO}(${ZO})`,`u`),ek=RegExp(`^${XO}([+-])(inf|nan)${XO}$`,`iu`),tk=e=>QO.test(e)||ek.test(e);function nk(e){let t=$O.exec(e);if(t)return Number(t[1]);let n=ek.exec(e);return n?n[2].toLowerCase()===`nan`?NaN:n[1]===`-`?-1/0:1/0:0}var rk=()=>new W(`attempt to use an array in a scalar context`);function Z(e){if(typeof e==`number`)return e;if(e===void 0)return 0;if(e instanceof X)return e.number??=nk(e.s);if(typeof e==`string`)return nk(e);throw rk()}var ik=new Map;function ak(e,t){if(Number.isNaN(e))throw new W(`formatting signed NaN is not supported`,null,`signed NaN`);if(!Number.isFinite(e))return e<0?`-inf`:`+inf`;if(Number.isInteger(e))return Math.abs(e)<2**53?String(e):BigInt(e).toString();let n=ik.get(t);if(n===void 0){ik.size>64&&ik.clear(),n=zS(t);let e=n.filter(e=>typeof e!=`string`);if(e.length>1||e.some(e=>!`diouxXeEfFgG`.includes(e.conv)||e.width===`*`||e.precision===`*`))throw new W(`this numeric conversion format is not supported`,null,`numeric conversion format`);ik.set(t,n)}return n.map(t=>typeof t==`string`?t:US(e,t)).join(``)}var ok=e=>typeof e==`string`?e:e instanceof X?e.s:`%.6g`,sk=e=>ok(e.globals.get(`CONVFMT`)),ck=e=>ok(e.globals.get(`OFMT`));function Q(e,t){if(typeof e==`string`)return lk(t,e);if(e instanceof X)return lk(t,e.s);if(typeof e==`number`)return ak(e,sk(t));if(e===void 0)return``;throw rk()}function lk(e,t){if(e.byteLocale&&/[\u0080-\u{10FFFF}]/u.test(t))throw new W(`non-ASCII AWK text in a byte locale is not supported`,null,`byte locale text`);return t}function uk(e,t=!1){return[...e].map(e=>{let n=t?e.toUpperCase():e.toLowerCase();if([...n].length!==1)throw new W(`Unicode case expansion is not supported`,null,`Unicode case mapping`);return n}).join(``)}function dk(e,t){return typeof e==`number`?ak(e,ck(t)):Q(e,t)}var fk=e=>e.numeric??=tk(e.s),pk=e=>typeof e==`number`||e===void 0||e instanceof X&&fk(e),mk=e=>gk(e.globals.get(`IGNORECASE`));function hk(e,t,n){if(pk(e)&&pk(t)){let n=Z(e),r=Z(t);return n<r?-1:n>r?1:n===r?0:NaN}let r=Q(e,n),i=Q(t,n);return mk(n)&&(r=uk(r),i=uk(i)),M(r,i)}function gk(e){if(typeof e==`number`)return e!==0&&!Number.isNaN(e);if(typeof e==`string`)return e!==``;if(e instanceof X)return fk(e)?Z(e)!==0:e.s!==``;if(e===void 0)return!1;throw rk()}var _k=(e,t)=>Number.isSafeInteger(e)?String(e):Q(e,t);function vk(e){return e instanceof Map?`array`:e===void 0?`untyped`:typeof e==`number`?`number`:e instanceof X&&fk(e)?`strnum`:`string`}function yk(e,t,n){let{text:r}=e;if(e.pos>=r.length)return null;if(t===``)return bk(e);let i,a;if(t.length===1){let n=r.indexOf(t,e.pos);a=n===-1?r.length:n,i=n===-1?r.length:n+1}else{let o=kh(r,Oh(t,n),e.pos);a=o?.start??r.length,i=o?.end??r.length}let o=r.slice(e.pos,a);return e.pos=i,{rec:o,rt:r.slice(a,i)}}function bk(e){let{text:t}=e,n=e.pos;for(;t[n]===`
|
|
332
|
+
`;)n++;if(n>=t.length)return e.pos=n,null;let r=/\n\n+/gu;r.lastIndex=n;let i=r.exec(t);if(!i){e.pos=t.length;let r=t.slice(n).replace(/\n+$/u,``);return{rec:r,rt:t.slice(n+r.length)}}return e.pos=i.index+i[0].length,{rec:t.slice(n,i.index),rt:i[0]}}function xk(e,t,n,r){if(e===``)return[];if(t instanceof Eh)return Ah(e,t);if(t===` `){let t=e.replace(/^[ \t\n]+|[ \t\n]+$/gu,``);return t===``?[]:t.split(/[ \t\n]+/u)}if(t===``)return[...e];if(t.length===1&&(!n||t===`
|
|
333
|
+
`))return e.split(t);if(n&&t===`^`)throw new W(`paragraph splitting with FS="^" is not supported`,null,`paragraph FS caret`);return Ah(e,Oh(t.length===1?`[${`^$.[]|()*+?{}\\`.includes(t)?`\\`+t:t}
|
|
334
|
+
]`:t,r))}function Sk(e){let t=e.split(/[ \t]+/u).filter(Boolean);return t.map((n,r)=>{let i=/^(?:(\+?\d+):)?(\+?\d+|\*)$/u.exec(n),a=i?.[1]===void 0?0:Number(i[1]),o=i?.[2]===`*`?4294967295:Number(i?.[2]);if(!i||i[1]!==void 0&&a===0||a>4294967295||!(o>0&&o<=4294967295)||i[2]===`*`&&r!==t.length-1)throw new W(`invalid FIELDWIDTHS value \`${e}'`);return{skip:a,width:o}})}function Ck(e,t){let n=[...e],r=[],i=0;for(let{skip:e,width:a}of t){if(i>=n.length)break;i+=e,r.push(n.slice(i,i+a).join(``)),i+=a}return r}function wk(e,t){let n=[],r=0;for(;r<e.length;){let i=t.search(e.slice(r));if(n.length>0&&i?.end===0&&(r+=Rr(e,r),i=t.search(e.slice(r))),!i)break;n.push(e.slice(r+i.start,r+i.end)),r+=i.end}return n}function Tk(e,t){let n=mk(e);return e.fieldMode===`FIELDWIDTHS`?Ck(t,e.widths):e.fieldMode===`FPAT`?wk(t,Oh(Q(e.globals.get(`FPAT`),e),n,e.warn)):xk(t,Q(e.globals.get(`FS`),e),Q(e.globals.get(`RS`),e)===``,n)}var Ek=/^([A-Za-z_][A-Za-z0-9_]*)=([^]*)$/u,Dk=e=>e!==void 0&&e.type===`exit`,Ok=class{constructor(e,t){this.ctx=e,this.stdin=t,this.idx=1,this.src=null,this.sawFile=!1,this.exitSignal=void 0,this.readers=new Map}next(e){for(;this.exitSignal===void 0;){if(this.src){let t=yk(this.src,Q(e.globals.get(`RS`),e),mk(e));if(t!==null)return e.globals.set(`NR`,Z(e.globals.get(`NR`))+1),e.globals.set(`FNR`,Z(e.globals.get(`FNR`))+1),e.globals.set(`RT`,t.rt),t.rec;this.closeFile(e);continue}if(!this.open(e))return null}return null}open(e){for(;this.idx<Math.trunc(Z(e.globals.get(`ARGC`)));){if(++e.steps>th)throw new W(`input operand scan exceeded execution limit`,null,`execution limit`);let t=Q(e.globals.get(`ARGV`).get(String(this.idx++)),e);if(t===``)continue;e.globals.set(`ARGIND`,this.idx-1);let n=Ek.exec(t);if(n){e.assign(n[1],new X(JD(n[2],e.warn)));continue}this.sawFile=!0;let{text:r,error:i}=this.readOperand(t);if(i===`Is a directory`){this.failFile(e,t,i),this.exitSignal===void 0&&e.warn(`command line argument \`${t}' is a directory: skipped`);continue}if(i){let n=this.failFile(e,t,i);if(n!==void 0&&n.type===`nextfile`)continue;if(this.exitSignal!==void 0)return!1;throw new W(`${t}: ${i}`)}if(this.use(e,t,r))return!0}return this.sawFile||this.exitSignal!==void 0?!1:(this.sawFile=!0,this.use(e,`-`,this.takeStdin()))}readOperand(e){if(e===`/dev/null`)return{text:``};if(e===`-`||e===`/dev/stdin`)return{text:e===`/dev/stdin`&&this.ctx.stdinFile?this.ctx.stdinOrigin:this.takeStdin()};let{path:t,error:n}=P(this.ctx,`awk`,e);return this.ctx.fs.isDir(t)?{error:`Is a directory`}:n?{error:n}:{text:this.ctx.fs.readFile(t)}}takeStdin(){let e=this.stdin;return this.stdin=``,I(this.ctx),e}use(e,t,n){this.src={text:n,pos:0},e.globals.set(`FILENAME`,t),e.globals.set(`FNR`,0),e.globals.set(`ERRNO`,``);let r=e.fileRule(`begin`);return Dk(r)?(this.exitSignal=r,this.src=null,!1):r!==void 0&&r.type===`nextfile`?(this.closeFile(e),!1):(lk(e,n),!0)}failFile(e,t,n){if(e.globals.set(`ERRNO`,n),!e.hasFileRules)return;e.globals.set(`FILENAME`,t),e.globals.set(`FNR`,0);let r=e.fileRule(`begin`);return Dk(r)&&(this.exitSignal=r),r}closeFile(e){this.src=null;let t=e.fileRule(`end`);Dk(t)&&(this.exitSignal=t)}readNamed(e,t){let n=this.readers.get(t);if(!n){let{text:r,error:i}=this.readOperand(t);if(i)return e.globals.set(`ERRNO`,i),{status:-1};n={text:lk(e,r),pos:0},this.readers.set(t,n)}let r=yk(n,Q(e.globals.get(`RS`),e),mk(e));return r===null?{status:0}:(e.globals.set(`RT`,r.rt),{status:1,record:r.rec})}close(e,t){return this.readers.delete(t)?0:(e.globals.set(`ERRNO`,`close of redirection that was never opened`),-1)}},kk=(e,t)=>({isRef:!0,scope:e,name:t}),Ak=e=>typeof e==`object`&&!!e&&e.isRef===!0,jk=class extends Error{constructor(e){super(e.type),this.signal=e}},Mk=e=>new W(`attempt to use array \`${e}\` in a scalar context`);function Nk(e,t){let n=e.frame;return n!==void 0&&n.has(t)?n:e.globals}function Pk(e){let t=e;for(;Ak(t);)t=t.scope.get(t.name);return t instanceof Map?t:void 0}function Fk(e,t){let n=Nk(e,t).get(t);return Ak(n)?Pk(n):n}var Ik=new Set([`FS`,`FIELDWIDTHS`,`FPAT`]);function Lk(e,t,n){let r=Nk(e,t);if(r.get(t)instanceof Map)throw Mk(t);if(r===e.globals){if(t===`NF`){Uk(e,n);return}if(t===`FIELDWIDTHS`&&(e.widths=Sk(Q(n,e))),(t===`FPAT`||(t===`FS`||t===`RS`)&&Q(n,e).length>1)&&Oh(Q(n,e),mk(e),e.warn,e.tables),Ik.has(t)){e.fieldMode=t;let n=e.globals.get(`PROCINFO`);n instanceof Map&&n.set(`FS`,t)}}r.set(t,n)}function Rk(e,t){let n=Nk(e,t),r=t,i=n,a=i.get(r);if(a instanceof Map)return a;let o=Ak(a);for(;Ak(a);)i=a.scope,r=a.name,a=i.get(r);if(!(a instanceof Map)){if(a!==void 0)throw new W(`attempt to use scalar \`${r}\` as an array`);a=new Map,i.set(r,a)}return o&&n.set(t,a),a}function zk(e,t,n=new X(t)){e.record=t,e.recordValue=n,e.fields=[void 0,...Tk(e,t).map(e=>new X(e))],e.nf=e.fields.length-1,e.globals.set(`NF`,e.nf)}function Bk(e){let t=Q(e.globals.get(`OFS`),e);e.record=e.fields.slice(1).map(t=>Q(t,e)).join(t),e.recordValue=e.record}function Vk(e,t){return t===0?e.recordValue:t<=e.nf?e.fields[t]:void 0}function Hk(e,t,n){if(t===0){let t=Q(n,e);zk(e,t,typeof n==`number`?t:n);return}for(;e.nf<t;)e.fields[++e.nf]=``;e.fields[t]=n,e.globals.set(`NF`,e.nf),Bk(e)}function Uk(e,t){let n=Math.trunc(Z(t));if(n<0)throw new W(`NF set to negative value ${n}`);for(;e.nf<n;)e.fields[++e.nf]=``;e.fields.length=n+1,e.nf=n,e.globals.set(`NF`,n),Bk(e)}function Wk(e,t){let n=Z($(e,t));if(!(n>=0))throw new W(`attempt to access field ${Number.isNaN(n)?n:Math.trunc(n)}`);return Math.trunc(n)}function Gk(e,t){if(t.length===1)return _k($(e,t[0]),e);let n=Q(e.globals.get(`SUBSEP`),e);return t.map(t=>_k($(e,t),e)).join(n)}function Kk(e,t){return t.type===`var`?t:t.type===`index`?{type:`index`,arr:Rk(e,t.name),key:Gk(e,t.subs)}:{type:`field`,i:Wk(e,t.index)}}function qk(e,t){return t.type===`var`?$k(Fk(e,t.name),t.name):t.type===`index`?t.arr.get(t.key):Vk(e,t.i)}function Jk(e,t,n){t.type===`var`?Lk(e,t.name,n):t.type===`index`?t.arr.set(t.key,n):Hk(e,t.i,n)}function Yk(e,t,n){Jk(e,Kk(e,t),n)}function Xk(e,t,n){if(n===0&&(e===`/`||e===`%`))throw new W(e===`/`?`division by zero attempted`:"division by zero attempted in `%`");return ah(e,t,n)}var Zk={__proto__:null,"<":e=>e<0,"<=":e=>e<=0,"==":e=>e===0,"!=":e=>e!==0,">":e=>e>0,">=":e=>e>=0};function Qk(e,t){let n=mk(e);return t.type===`regex`?n?Oh(t.source,!0,null,e.tables):t.re:Oh(Q($(e,t),e),n,e.warn,e.tables)}function $k(e,t){if(e instanceof Map)throw Mk(t);return e}function eA(e,t,n){let r=Kk(e,t.target),i=Z(qk(e,r)),a=t.op===`++`?i+1:i-1;return Jk(e,r,a),n?i:a}function $(e,t){switch(t.type){case`num`:case`str`:return t.value;case`regex`:return+!!Qk(e,t).test(e.record);case`var`:return $k(Fk(e,t.name),t.name);case`index`:{let n=Rk(e,t.name),r=Gk(e,t.subs),i=n.get(r);return i===void 0&&n.set(r,void 0),i}case`field`:return Vk(e,Wk(e,t.index));case`assign`:{let n=Kk(e,t.target),r=$(e,t.value);if(r instanceof Map)throw new W(`attempt to use an array in a scalar context`);return t.op!==`=`&&(r=Xk(t.op[0],Z(qk(e,n)),Z(r))),Jk(e,n,r),r}case`cond`:return $(e,gk($(e,t.test))?t.consequent:t.alternate);case`or`:return gk($(e,t.left))||gk($(e,t.right))?1:0;case`and`:return gk($(e,t.left))&&gk($(e,t.right))?1:0;case`not`:return+!gk($(e,t.expr));case`neg`:return-Z($(e,t.expr));case`plus`:return Z($(e,t.expr));case`binary`:return Xk(t.op,Z($(e,t.left)),Z($(e,t.right)));case`concat`:return Q($(e,t.left),e)+Q($(e,t.right),e);case`compare`:return+!!Zk[t.op](hk($(e,t.left),$(e,t.right),e));case`match`:{let n=Q($(e,t.left),e);return Qk(e,t.right).test(n)===t.negate?0:1}case`in`:return+!!Rk(e,t.array).has(Gk(e,t.keys));case`preinc`:return eA(e,t,!1);case`postinc`:return eA(e,t,!0);case`call`:return tA(e,t);case`builtin`:return e.callBuiltin(e,t);case`getline`:return rA(e,t);default:throw new W(`unknown expression: ${t.type}`)}}function tA(e,t){let n=e.program.functions.get(t.name);if(n===void 0)throw new W(`function \`${t.name}\` not defined`);if(t.args.length>n.params.length)throw new W(`function \`${t.name}\` called with ${t.args.length} arguments, but it accepts only ${n.params.length}`);if(e.callDepth>=nh)throw new W(`function call nesting deeper than ${nh} levels (runaway recursion?)`,null,`call depth limit`);let r=e.frame,i=new Map;for(let r=0;r<n.params.length;r++)i.set(n.params[r],r<t.args.length?nA(e,t.args[r]):void 0);e.frame=i,e.callDepth++;try{let t=e.execStmts(e,n.body);if(t===void 0||t.type===`return`)return t?.value;throw new jk(t)}finally{e.frame=r,e.callDepth--}}function nA(e,t){if(t.type!==`var`)return $(e,t);let n=Nk(e,t.name),r=n.get(t.name);return r instanceof Map||Ak(r)?r:r===void 0?kk(n,t.name):r}function rA(e,t){let n;if(t.file===null){if(n=e.input.next(e),n===null)return 0}else{let r=e.input.readNamed(e,Q($(e,t.file),e));if(r.status!==1)return r.status;n=r.record}return t.target===null?zk(e,n):Yk(e,t.target,new X(n)),1}var iA=(e,t)=>Z($(e,t)),aA=2**32;function oA(e){return Number(BigInt.asUintN(32,BigInt(Math.trunc(e))))}var sA=()=>({seed:1,state:oA(1)});function cA(e){e.rng.state=(e.rng.state+1831565813)%aA;let t=e.rng.state;t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61);let n=t^t>>>14;return(n<0?n+aA:n)/aA}function lA(e,t){let n=e.rng.seed,r=t.length>0?iA(e,t[0]):Math.floor(Date.now()/1e3);return e.rng.seed=r,e.rng.state=oA(r),n}function uA(e,t){let n=iA(e,t[0]);return n<0&&e.warn(`log: received negative argument ${Q(n,e)}`),Math.log(n)}function dA(e,t){let n=iA(e,t[0]);return n<0&&e.warn(`sqrt: called with negative argument ${Q(n,e)}`),Math.sqrt(n)}function fA(e,t){let n=iA(e,t[0]),r=Math.exp(n);return Number.isFinite(n)&&!Number.isFinite(r)&&e.warn(`exp: argument ${Q(n,e)} is out of range`),r}function pA(e,t){let n=$(e,t[0]);if(typeof n==`number`)return n;let r=n instanceof X?n.s:Q(n,e),i=/^0[xX]([0-9a-fA-F]*)/u.exec(r);if(i)return i[1]===``?0:Number.parseInt(i[1],16);let a=/^0[0-7]+(?![.\deE0-9])/u.exec(r);return a?Number.parseInt(a[0],8):Z(new X(r))}function mA(e,t,n,r){let i=iA(e,n);if(i<0)throw new W(`${t}: argument ${r} negative value ${Q(i,e)} is not allowed`);if(!Number.isFinite(i))throw new W(`${t}: argument ${r} is not a finite number`);return BigInt.asUintN(64,BigInt(Math.trunc(i)))}function hA(e){let t=e;for(;t>0n&&BigInt(Number(t))!==t;)t&=(1n<<BigInt(t.toString(2).length-1))-1n;return Number(t)}function gA(e,t){return(n,r)=>{if(r.length<2)throw new W(`${e}: called with less than two arguments`);let i=mA(n,e,r[0],1);for(let a=1;a<r.length;a++)i=t(i,mA(n,e,r[a],a+1));return hA(i)}}function _A(e,t){return(n,r)=>{let i=mA(n,e,r[0],1),a=mA(n,e,r[1],2)%64n;return hA(BigInt.asUintN(64,t?i<<a:i>>a))}}var vA={__proto__:null,sin:(e,t)=>Math.sin(iA(e,t[0])),cos:(e,t)=>Math.cos(iA(e,t[0])),atan2:(e,t)=>Math.atan2(iA(e,t[0]),iA(e,t[1])),exp:fA,log:uA,sqrt:dA,int:(e,t)=>Math.trunc(iA(e,t[0])),rand:cA,srand:lA,systime:()=>Math.floor(Date.now()/1e3),strtonum:pA,and:gA(`and`,(e,t)=>e&t),or:gA(`or`,(e,t)=>e|t),xor:gA(`xor`,(e,t)=>e^t),lshift:_A(`lshift`,!0),rshift:_A(`rshift`,!1),compl:(e,t)=>hA(BigInt.asUintN(64,~mA(e,`compl`,t[0],1)))},yA=new Map;function bA(e){let t=yA.get(e);return t||(yA.size>=256&&yA.clear(),t=zS(e),yA.set(e,t)),t}function xA(e,t,n){let r=0,i=()=>{if(r>=n.length)throw new W(`printf: not enough arguments to satisfy format string`);return n[r++]},a=``;for(let n of bA(t)){if(typeof n==`string`){a+=n;continue}let t={...n};if(n.width===`*`){let e=Math.trunc(Z(i()));e<0?(t.minus=!0,t.width=-e):t.width=e}if(n.precision===`*`){let e=Math.trunc(Z(i()));t.precision=e<0?null:e}if(t.width>rh||t.precision>rh)throw new W(`printf: field width or precision above ${rh} is not supported`,null,`format size limit`);a+=SA(e,t,i())}return a}function SA(e,t,n){if(t.conv===`s`){let r=Q(n,e);return t.precision!==null&&(r=[...r].slice(0,t.precision).join(``)),BS(``,r,t,!1)}return t.conv===`c`?BS(``,lk(e,CA(n)),t,!1):US(Z(n),t)}function CA(e){if(typeof e==`number`||e instanceof X&&tk(e.s)){let t=Math.trunc(Z(e));if(!Ir(t))throw new W(`printf: character code outside Unicode scalar values is not supported`,null,`character code`);return String.fromCodePoint(t)}let t=e instanceof X?e.s:e??``;return t===``?`\0`:String.fromCodePoint(t.codePointAt(0))}var wA=(e,t)=>Q($(e,t),e),TA=(e,t)=>Z($(e,t)),EA={type:`field`,index:{type:`num`,value:0}};function DA(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`){if(e[r+1]===`\\`&&e[r+2]===`\\`&&(e[r+3]===`&`||e[r+3]===`\\`)){n+=`\\`+e[r+3],r+=3;continue}if(e[r+1]===`\\`&&e[r+2]===`&`){n+=`\\`+t,r+=2;continue}if(e[r+1]===`&`){n+=`&`,r++;continue}}n+=i===`&`?t:i}return n}function OA(e,t,n){let r=Qk(e,t[0]),i=wA(e,t[1]),a=t[2]??EA,o=wA(e,a),{out:s,count:c}=jh(o,r,(e,t)=>DA(i,o.slice(e,t)),n?`global`:`first`);return c>0&&Yk(e,a,s),c}function kA(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`&&r+1===e.length)throw new W(`gensub with a trailing replacement backslash is not supported`,null,`gensub trailing backslash`);if(i===`\\`&&r+1<e.length){let i=e[++r];n+=i>=`0`&&i<=`9`?t[Number(i)]?.text??``:i;continue}n+=i===`&`?t[0].text:i}return n}function AA(e,t){let n=Qk(e,t[0]),r=wA(e,t[1]),i=$(e,t[2]),a=Q(i,e),o=a.startsWith(`g`)||a.startsWith(`G`),s=0;o||(s=Math.trunc(Z(i)),s<1&&(e.warn(`gensub: third argument \`${a}' treated as 1`),s=1));let c=t[3]?wA(e,t[3]):e.record,l=/(?:^|[^\\])(?:\\\\)*\\[1-9]/u.test(r);return jh(c,n,(e,t,i)=>!o&&i!==s?null:kA(r,l?n.groups(c,e,t):[{text:c.slice(e,t)}]),o?`global`:`nth`).out}function jA(e,t){let n=wA(e,t[0]),r=Qk(e,t[1]),i=r.search(n,0),a=i?Array.from(n.slice(0,i.start)).length+1:0;if(e.globals.set(`RSTART`,a),e.globals.set(`RLENGTH`,i?Array.from(n.slice(i.start,i.end)).length:-1),t[2]){let a=Rk(e,t[2].name);if(a.clear(),i){let t=Q(e.globals.get(`SUBSEP`),e);r.groups(n,i.start,i.end).forEach((e,r)=>{e!==void 0&&(a.set(String(r),new X(e.text)),a.set(`${r}${t}start`,Array.from(n.slice(0,e.start)).length+1),a.set(`${r}${t}length`,[...e.text].length))})}}return a}function MA(e,t){let n=wA(e,t[0]),r=Rk(e,t[1].name),i;i=t[2]===void 0?Q(e.globals.get(`FS`),e):t[2].type===`regex`?Qk(e,t[2]):wA(e,t[2]);let a=xk(n,i,!1,mk(e));return r.clear(),a.forEach((e,t)=>r.set(String(t+1),new X(e))),a.length}function NA(e,t){let n=[...wA(e,t[0])],r=Math.trunc(TA(e,t[1])),i=Number.isNaN(r)?1:Math.max(r,1),a=n.length+1;if(t[2]){let n=Math.trunc(TA(e,t[2]));if(!(n>=1))return``;a=Math.min(a,i+n)}return a>i?n.slice(i-1,a-1).join(``):``}function PA(e,t){if(t.length===0)return[...e.record].length;if(t[0].type===`var`){let n=Fk(e,t[0].name);return n instanceof Map?n.size:[...Q(n,e)].length}return[...wA(e,t[0])].length}function FA(e,t){let n=wA(e,t[0]),r=wA(e,t[1]);mk(e)&&(n=uk(n),r=uk(r));let i=n.indexOf(r);return i<0?0:Array.from(n.slice(0,i)).length+1}function IA(e,t){let n=wA(e,t[0]);return n===`/dev/stdout`||n===`/dev/stderr`||n===`/dev/null`?0:e.input.close(e,n)}var LA=(e,t)=>t[0].type===`var`?vk(Fk(e,t[0].name)):vk($(e,t[0])),RA={__proto__:null,...vA,length:PA,substr:NA,index:FA,split:MA,sub:(e,t)=>OA(e,t,!1),gsub:(e,t)=>OA(e,t,!0),gensub:AA,match:jA,sprintf:(e,t)=>xA(e,wA(e,t[0]),t.slice(1).map(t=>$(e,t))),tolower:(e,t)=>uk(wA(e,t[0])),toupper:(e,t)=>uk(wA(e,t[0]),!0),close:IA,fflush:()=>0,typeof:LA,isarray:(e,t)=>+(t[0].type===`var`&&Fk(e,t[0].name)instanceof Map)};function zA(e,t){let n=RA[t.name];if(!n)throw new W(`function \`${t.name}\` is not supported`,null,`${t.name}()`);return n(e,t.args)}var BA={type:`break`},VA={type:`continue`},HA={type:`next`},UA={type:`nextfile`},WA={type:`exit`};function GA(e,t,n,r){let i=new Map([[`0`,`awk`]]);r.forEach((e,t)=>i.set(String(t+1),new X(e)));let a={program:e,globals:new Map([[`FS`,` `],[`OFS`,` `],[`ORS`,`
|
|
335
|
+
`],[`RS`,`
|
|
336
|
+
`],[`RT`,``],[`NR`,0],[`NF`,0],[`FNR`,0],[`FILENAME`,``],[`SUBSEP`,`\x1C`],[`CONVFMT`,`%.6g`],[`OFMT`,`%.6g`],[`RSTART`,0],[`RLENGTH`,-1],[`ERRNO`,``],[`IGNORECASE`,0],[`FIELDWIDTHS`,``],[`FPAT`,`[^[:space:]]+`],[`ENVIRON`,new KA(`ENVIRON`)],[`PROCINFO`,new KA(`PROCINFO`,[[`FS`,`FS`]])],[`ARGC`,r.length+1],[`ARGV`,i],[`ARGIND`,0]]),frame:void 0,callDepth:0,record:``,recordValue:new X(``),fields:[void 0],nf:0,fieldMode:`FS`,out:[],errOut:[],steps:0,exitCode:0,ranges:[],rng:sA(),input:new Ok(t,n),byteLocale:$t(t),tables:_n(t.locale),hasFileRules:e.beginFile.length>0,callBuiltin:zA,execStmts:tj,assign:(e,t)=>Lk(a,e,t),warn:e=>a.errOut.push(`awk: warning: ${e}
|
|
337
|
+
`),fileRule:e=>XA(a,e)};return a}var KA=class extends Map{constructor(e,t=[]){super(t),this.systemName=e}check(e){if(!this.systemName||this.systemName===`PROCINFO`&&e===`FS`)return;let t=this.systemName===`ENVIRON`?`ENVIRON`:`PROCINFO[${e??`*`}]`;throw new W(`${t} is not supported without the corresponding environment or process metadata`,null,t)}get(e){return this.check(e),super.get(e)}has(e){return this.check(e),super.has(e)}set(e,t){return this.check(e),super.set(e,t)}delete(e){return this.check(e),super.delete(e)}clear(){return this.check(),super.clear()}get size(){return this.check(),super.size}keys(){return this.check(),super.keys()}values(){return this.check(),super.values()}entries(){return this.check(),super.entries()}[Symbol.iterator](){return this.check(),super[Symbol.iterator]()}};function qA(e){let{program:t}=e,n=YA(e,t.begin,`BEGIN`),r=t.rules.length>0||t.end.length>0||t.beginFile.length>0||t.endFile.length>0;return!JA(n)&&r&&ZA(e),YA(e,t.end,`END`),e.exitCode}var JA=e=>e!==void 0&&e.type===`exit`;function YA(e,t,n){let r=$A(e,t);if(r!==void 0&&(r.type===`next`||r.type===`nextfile`&&(n===`BEGIN`||n===`END`)))throw new W(`\`${r.type}' cannot be called from a ${n} rule`);return r}function XA(e,t){let n=t===`begin`?e.program.beginFile:e.program.endFile;return n.length===0?void 0:YA(e,n,t===`begin`?`BEGINFILE`:`ENDFILE`)}function ZA(e){for(;;){let t=e.input.next(e);if(t===null)return e.input.exitSignal;zk(e,t);let n=QA(e);if(JA(n))return n;n!==void 0&&n.type===`nextfile`&&e.input.closeFile(e)}}function QA(e){let{rules:t}=e.program;for(let n=0;n<t.length;n++){let r=t[n];if(!ej(e,r,n))continue;if(r.action===null){oj(e,null,e.record+Q(e.globals.get(`ORS`),e));continue}let i=$A(e,r.action);if(i!==void 0)return i}}function $A(e,t){try{return tj(e,t)}catch(e){if(!(e instanceof jk))throw e;return e.signal}}function ej(e,t,n){let{pattern:r}=t;if(r===null)return!0;if(r.type!==`range`)return gk($(e,r));if(!e.ranges[n]){if(!gk($(e,r.from)))return!1;e.ranges[n]=!0}return gk($(e,r.to))&&(e.ranges[n]=!1),!0}function tj(e,t){for(let n of t){let t=nj(e,n);if(t!==void 0)return t}}function nj(e,t){if(++e.steps>th)throw new W(`execution stopped after ${th} statements (infinite loop?)`,null,`execution limit`);switch(t.type){case`block`:return tj(e,t.body);case`empty`:return;case`expr`:$(e,t.expr);return;case`print`:return sj(e,t);case`printf`:return cj(e,t);case`if`:return gk($(e,t.test))?nj(e,t.consequent):t.alternate===null?void 0:nj(e,t.alternate);case`while`:case`do`:case`for`:return rj(e,t);case`forin`:return ij(e,t);case`switch`:return aj(e,t);case`break`:return BA;case`continue`:return VA;case`next`:return HA;case`nextfile`:return UA;case`exit`:return lj(e,t);case`return`:return{type:`return`,value:t.value===null?void 0:$(e,t.value)};case`delete`:{let n=Rk(e,t.name);t.subs===null?n.clear():n.delete(Gk(e,t.subs));return}default:throw new W(`unknown statement: ${t.type}`)}}function rj(e,t){t.init&&$(e,t.init);let n=!0;for(;t.type===`do`&&n||t.test===null||gk($(e,t.test));){n=!1;let r=nj(e,t.body);if(r===BA)return;if(r!==void 0&&r!==VA)return r;t.step&&$(e,t.step)}}function ij(e,t){let n=Rk(e,t.array);for(let r of Array.from(n.keys())){Lk(e,t.name,new X(r));let n=nj(e,t.body);if(n===BA)return;if(n!==void 0&&n!==VA)return n}}function aj(e,t){let n=$(e,t.expr),r=t=>t.test.type===`regex`?Qk(e,t.test).test(Q(n,e)):hk(n,t.test.value,e)===0,i=t.cases.findIndex(e=>e.test!==null&&r(e));if(i===-1&&(i=t.cases.findIndex(e=>e.test===null)),i!==-1)for(let n=i;n<t.cases.length;n++){let r=tj(e,t.cases[n].body);if(r===BA)return;if(r!==void 0)return r}}function oj(e,t,n){if(t===null){e.out.push(n);return}let r=Q($(e,t),e);if(r===`/dev/stdout`)e.out.push(n);else if(r===`/dev/stderr`)e.errOut.push(n);else if(r!==`/dev/null`)throw new W(YO(r),null,`output redirection`)}function sj(e,t){let n=Q(e.globals.get(`ORS`),e),r;if(t.args.length===0)r=e.record;else{let n=Q(e.globals.get(`OFS`),e);r=t.args.map(t=>dk($(e,t),e)).join(n)}oj(e,t.dest,r+n)}function cj(e,t){let n=t.args.map(t=>$(e,t));oj(e,t.dest,xA(e,Q(n[0],e),n.slice(1)))}function lj(e,t){return t.value!==null&&(e.exitCode=(Math.trunc(Z($(e,t.value)))%256+256)%256),WA}var uj=`awk [-F fs] [-v var=value] 'program' [file ...] | awk [-F fs] [-v var=value] -f progfile [file ...]`,dj=/^([A-Za-z_][A-Za-z0-9_]*)=([^]*)$/u;function fj(e,t,n){let{values:r,positional:i}=U(mj(t),{valueShort:[`F`],repeatable:[`v`,`f`],stopAtFirstPositional:!0}),a=hj(r.get(`f`)??[],i,n);if(a.error)return a.error;let o;try{lk({byteLocale:$t(n)},a.text),o=AO(a.text)}catch(e){if(e instanceof RangeError)return C(`feature`,`awk`,`parser depth limit`,`awk: program too deeply nested (${e.message})`);if(S(e))return Ke(e,`awk`,`awk: ${e.message}`);if(!(e instanceof W))throw e;let t=e.line===null?`awk: ${e.message}`:`awk: ${e.kind} at line ${e.line}: ${e.message}`;return e.gap===null?x(t):C(`feature`,`awk`,e.gap,t)}let s=GA(o,n,e,a.operands);for(let e of o.warnings)s.warn(e);let c,l=null;try{r.has(`F`)&&s.assign(`FS`,JD(r.get(`F`),s.warn));for(let e of r.get(`v`)??[]){let t=dj.exec(e);if(!t)return x(`awk: -v: expected var=value but got \`${e}\``);s.assign(t[1],new X(JD(t[2],s.warn)))}c=qA(s)}catch(e){let t=S(e);if(!(e instanceof W)&&!(e instanceof RangeError)&&!t)throw e;s.errOut.push(`awk: ${e.message}
|
|
338
|
+
`),c=2,e instanceof RangeError&&(l={detail:`runtime limit`,message:`awk: ${e.message}`}),e.gap&&(l={detail:e.gap,message:`awk: ${e.message}`}),t&&(l={detail:t.detail,message:`awk: ${e.message}`})}let u={stdout:s.out.join(``),stderr:s.errOut.join(``),exitCode:c};return l===null?u:w(u,`feature`,`awk`,l.detail,l.message)}var pj=/^-[Fvf]\S*\s/su;function mj(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r===`-F`||r===`-v`||r===`-f`){t.push(r),n+1<e.length&&t.push(e[++n]);continue}if(pj.test(r)){t.push(r.slice(0,2),r.slice(2));continue}if(!r.startsWith(`-`)||r===`-`||r===`--`){t.push(...e.slice(n));break}t.push(r)}return t}function hj(e,t,n){if(e.length===0)return t.length===0?{error:We(uj,2)}:{text:t[0],operands:t.slice(1)};let r=[];for(let t of e){let{path:e,error:i}=P(n,`awk`,t);if(i||!n.fs.isFile(e))return{error:x(`awk: cannot open program file \`${t}\`: ${i??`Is a directory`}`,2)};r.push(n.fs.readFile(e))}return{text:r.join(`
|
|
339
|
+
`),operands:t}}function gj(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`n`,`r`,`u`,`f`,`b`,`z`],valueShort:[`t`,`o`],valueLong:[`output`],repeatable:[`k`,`o`,`output`]}),o=[...i.get(`o`)??[],...i.get(`output`)??[]];if(o.length>1)return x(`sort: multiple output files specified`,2);let s=i.get(`t`);if(s!==void 0&&p(s).length!==1)return x(`sort: multi-character tab '${s}'`,2);let c={n:r.has(`n`),f:r.has(`f`),b:r.has(`b`),r:r.has(`r`)},l=wj(i.get(`k`)??[],c);if(l.error)return l.error;let u=Vn(`sort`,a,e,n,{stopOnError:!0});if(u.failed)return{stdout:``,stderr:u.stderr,exitCode:2};let d=r.has(`z`)?`\0`:`
|
|
340
|
+
`,f=Mn(Oj(u.inputs.flatMap(({content:e})=>An(e,d)),l.specs.length?l.specs:[{start:1,...c}],s,r.has(`u`),c.r),d);return o.length===0?Kn(f,u):_j(o[0],f,n,u)}function _j(e,t,n,r){if(e===`/dev/null`)return Kn(``,r);if(e===`/dev/stdout`)return Kn(t,r);n.io?.setReads([]);let i;try{i=n.writable&&n.fs.openWritable(n.cwd,e),i&&i.write(t)}catch(e){return F(n,`sort`,e?.path,e?.fsError),Ke(e,`sort`,`sort: open failed: ${e.message}`,2)}return i?Kn(``,r):C(`feature`,`sort`,`-o`,`sort: open failed: ${e}: Read-only file system`,2)}var vj=`nrfb`,yj=`bdfghiMnRrV`,bj=/^[ \t]*\+?(\d+)/u,xj=(e,t)=>x(`sort: ${e}: invalid count at start of '${t}'`,2),Sj=(e,t)=>x(`sort: ${e}: invalid field specification '${t}'`,2);function Cj(e){let t=0,n=null,r=r=>{let i=bj.exec(e.slice(t));return i===null?(n=xj(r,e.slice(t)),null):(t+=i[0].length,Number(i[1]))},i=n=>{let i=r(n);if(i===null)return null;let a=null;if(e[t]===`.`&&(t++,a=r(`invalid number after '.'`),a===null))return null;let o=t;for(;t<e.length&&/[a-zA-Z]/u.test(e[t]);)t++;return{field:i,offset:a,mods:e.slice(o,t)}},a=i(`invalid number at field start`);if(a===null)return{error:n};let o=null;return e[t]===`,`&&(t++,o=i(`invalid number after ','`),o===null)?{error:n}:a.field===0||o?.field===0?{error:Sj(`field number is zero`,e)}:a.offset===0?{error:Sj(`character offset is zero`,e)}:t===e.length?{from:a,to:o}:{error:Sj(`stray character in field spec`,e)}}function wj(e,t){let n=[];for(let r of e){let e=Cj(r);if(e.error)return{error:e.error};let{from:i,to:a}=e,o=i.mods+(a?.mods??``);for(let e of o)if(!vj.includes(e))return yj.includes(e)?{error:C(`option`,`sort`,`-k${r}`,`sort: unknown key option \`${e}\` in ${r}`,2)}:{error:Sj(`stray character in field spec`,r)};if(i.offset!==null||(a?.offset??0)!==0)return{error:C(`option`,`sort`,`-k${r}`,`sort: invalid key specification: ${r} (character offsets are not supported)`,2)};let s=o.length>0;n.push({start:i.field,end:a?.field,n:s?o.includes(`n`):t.n,r:s?o.includes(`r`):t.r,f:s?o.includes(`f`):t.f,b:s?i.mods.includes(`b`):t.b})}return{specs:n}}function Tj(e,t){let n=[];if(t!==void 0){let r=0;for(;;){let i=e.indexOf(t,r);if(i===-1){n.push([r,e.length]);break}n.push([r,i]),r=i+t.length}return n}let r=0;do{let t=r;for(;r<e.length&&/[ \t]/u.test(e[r]);)r++;for(;r<e.length&&!/[ \t]/u.test(e[r]);)r++;n.push([t,r])}while(r<e.length);return n}function Ej(e,t,n){if(t.start>n.length)return``;let r=n[t.start-1][0],i=t.end===void 0||t.end>n.length?e.length:n[t.end-1][1];if(t.b)for(;r<i&&/[ \t]/u.test(e[r]);)r++;return e.slice(r,Math.max(r,i))}var Dj=e=>e.replace(/[a-z]/gu,e=>e.toUpperCase());function Oj(e,t,n,r,i){let a=t.every(e=>e.start===1&&e.end===void 0);if(a&&t.length===1&&!t[0].n&&!t[0].f&&!t[0].b)return e.sort(e.some(e=>/[\u{10000}-\u{10FFFF}]/u.test(e))?M:void 0),t[0].r&&e.reverse(),r?e.filter((t,n)=>n===0||t!==e[n-1]):e;let o=e.map(e=>{let r=a?[[0,e.length]]:Tj(e,n);return{line:e,keys:t.map(t=>{let n=Ej(e,t,r);return t.n?kj(n):t.f?Dj(n):n})}}),s=(e,n)=>{for(let r=0;r<t.length;r++){let i=t[r],a=i.n?jj(e.keys[r],n.keys[r]):M(e.keys[r],n.keys[r]);if(a!==0)return i.r?-a:a}return r?0:(i?-1:1)*M(e.line,n.line)};o.sort(s);let c=[];for(let e=0;e<o.length;e++)r&&e>0&&s(o[e-1],o[e])===0||c.push(o[e].line);return c}function kj(e){let t=/^[ \t]*(-?)(?:(\d+)(?:\.(\d*))?|\.(\d+))/u.exec(e),n=(t?.[2]??``).replace(/^0+/u,``)||`0`,r=(t?.[3]??t?.[4]??``).replace(/0+$/u,``);return{integer:n,fraction:r,negative:t?.[1]===`-`&&(n!==`0`||r!==``)}}var Aj=(e,t)=>e<t?-1:+(e>t);function jj(e,t){if(e.negative!==t.negative)return e.negative?-1:1;let n=e.integer.length-t.integer.length||Aj(e.integer,t.integer)||Aj(e.fraction,t.fraction);return e.negative?-n:n}async function Mj(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`r`,`0`],valueShort:[`n`,`I`],stopAtFirstPositional:!0}),[o=`echo`,...s]=a,c=i.get(`I`),l=i.has(`n`)?qn(i.get(`n`),`xargs: -n`):{value:void 0};if(l.error)return l.error;if(l.value===0)return x(`xargs: -n: must be at least 1`);if(c===``)return x(`xargs: -I: replacement string must not be empty`);if(c!==void 0&&l.value!==void 0)return C(`option`,`xargs`,`-I -n`,`xargs: combining replacement and chunk limits is not supported`);if(I(n),!r.has(`0`)&&e.includes(`\0`))return C(`feature`,`xargs`,`NUL input`,`xargs: NUL input requires -0`);let u;if(r.has(`0`))u=An(e,`\0`);else if(c===void 0)u=Pj(e);else{if(/["'\\]/u.test(e))return C(`feature`,`xargs`,`-I input quoting`,`xargs: quoted or escaped replacement lines are not supported`);u=An(e).map(e=>e.replace(/^[ \t\r\f\v]+/u,``)).filter(Boolean)}if(u.length===0&&(r.has(`r`)||c!==void 0))return b();let d=c===void 0?l.value??Math.max(1,u.length):1,f=G(),p=0;for(let e=0;e<Math.max(1,u.length);e+=d){let t=u[e],r=c===void 0?[...s,...u.slice(e,e+d)]:s.map(e=>e.replaceAll(c,t)),i=await n.dispatch(o,r,``,{devNull:!0});if(K(f,i),i.exitCode===255)return K(f,{...G(`xargs: ${o}: exited with status 255; aborting
|
|
341
|
+
`),exitCode:124}),f;if(i.exitCode===127&&!n.hasCommand(n.registry.resolveCommand(o)))return{...f,exitCode:127};i.exitCode!==0&&(p=123)}return{...f,exitCode:p,ignored:!1}}var Nj=e=>Error(`unmatched ${e===`'`?`single`:`double`} quote; by default quotes are special to xargs unless you use the -0 option`);function Pj(e){let t=[],n=null,r=!1,i=``;for(let a=0;a<e.length;a++){let o=e[a];if(r||!/[ \t\n\r\f\v]/u.test(o)){if(n){if(o===n)n=null;else{if(o===`
|
|
342
|
+
`)throw Nj(n);i+=o}}else if(o===`"`||o===`'`)n=o,r=!0;else if(o===`\\`){if(a+1>=e.length)break;i+=e[++a],r=!0}else o===` `||o===` `||o===`
|
|
343
|
+
`?(r&&t.push(i),i=``,r=!1):(i+=o,r=!0)}}if(n)throw Nj(n);return r&&t.push(i),t}function Fj(e,t,n,r){let{values:i,positional:a,order:o}=U(Rj(n),{short:[`q`,`v`],valueShort:[`c`,`n`]}),s=o.findLast(e=>e.name===`n`||e.name===`c`)?.name??`n`,c=Jn(i.get(s)??`10`,e+`: -`+s);if(c.error)return c.error;let l=o.findLast(e=>e.name===`q`||e.name===`v`),u=l?l.name===`v`:null,d=e===`head`,f=c.sign===`+`;if(d&&c.value===0&&c.sign!==`-`)return Bj(e,t,a,r,()=>``,{unit:s,banner:u,leftover:e=>e,readOptions:{noRead:!0}});if(!d&&c.value===0&&!f){if(!r.stdinFile&&(!a.length||a.includes(`-`)||a.includes(`/dev/stdin`))){let n=Hj(e,t,``,s,`standard input`);n&&r.notes.add(n)}return b()}let p=e=>d?[0,c.sign===`-`?Math.max(0,e-c.value):c.value]:[f?Math.min(e,Math.max(0,c.value-1)):Math.max(0,e-c.value),e];return Bj(e,t,a,r,e=>{if(s===`c`)return zj(e,p);let t=d?c.sign===`-`:!f,n=Lj(e,d||t?c.value:Math.max(0,c.value-1),t);return d?e.slice(0,n):e.slice(n)},{unit:s,banner:u,leftover:d?Ij(c,s,r):void 0,readOptions:!d&&f?{stopOnDir:!0}:void 0})}function Ij(e,t,n){return e.sign===`-`||t===`n`&&!n.stdinFile?()=>``:t===`c`?t=>zj(t,t=>[Math.min(e.value,t),t]):t=>t.slice(Lj(t,e.value))}function Lj(e,t,n=!1){if(n){if(t===0)return e.length;let n=e.length-Number(e.endsWith(`
|
|
344
|
+
`));for(let r=0;r<t;r++)if(n<=0||(n=e.lastIndexOf(`
|
|
345
|
+
`,n-1),n<0))return 0;return n+1}let r=0;for(let n=0;n<t&&r<e.length;n++){let t=e.indexOf(`
|
|
346
|
+
`,r);r=t===-1?e.length:t+1}return r}function Rj(e){return/^-\d+$/u.test(e[0]??``)?[`-n`,e[0].slice(1),...e.slice(1)]:e}function zj(e,t){let n=p(e),[r,i]=t(n.length);return r===0&&i>=n.length?e:D(n.subarray(r,i))}function Bj(e,t,n,r,i,{unit:a,banner:o,leftover:s=()=>``,readOptions:c}){let l=Vn(e,n,t,r,c),u=o??n.length>1,d=l.entries.filter(e=>e.kind!==`missing`),f=[],p=[],m=null;for(let t=0;t<d.length;t++){let{name:n,kind:o,shared:c}=d[t],{content:l}=d[t];(c||n===null)&&(m!==null&&(l=m),m=s(l),I(r,m));let h=o===`dir`?``:i(l);if(o===`file`&&h!==l){let t=Hj(e,l,h,a,Wn(n,r));t&&p.push(t)}let g=n===null||n===`-`?`standard input`:n;f.push(u?`${t>0?`
|
|
347
|
+
`:``}==> ${g} <==
|
|
348
|
+
${h}`:h)}for(let e of p)r.notes.add(e);return Kn(f.join(``),l)}function Vj(e){let t=+(e.length>0&&!e.endsWith(`
|
|
349
349
|
`));for(let n=e.indexOf(`
|
|
350
350
|
`);n!==-1;n=e.indexOf(`
|
|
351
|
-
`,n+1))t++;return t}function
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
351
|
+
`,n+1))t++;return t}function Hj(e,t,n,r,i){let a=r===`c`?e=>p(e).length:Vj,o=a(n),s=a(t);return o>=s?null:`${e}: selected ${o} of ${s} ${(r===`c`?`byte`:`line`)+(s===1?``:`s`)} from ${i}.`}function Uj(e,t,n){let{flags:r,positional:i}=U(t,{short:[`l`,`w`,`c`,`m`]}),a=Gj(r),o=Vn(`wc`,i,e,n,{read:`as-held`}),s=i.length>1||Object.values(a).filter(Boolean).length>1,c=[],l={l:0,w:0,m:0,c:0};for(let{name:e,content:t,bytes:r,kind:i,shared:u}of o.entries.filter(e=>e.kind!==`missing`)){let o=Kj(r??t,n,a,s);c.push({counts:o,name:e,kind:i,shared:u}),l.l+=o.l,l.w+=o.w,l.m+=o.m,l.c+=o.c}let u=s?Wj(c,n.stdinFile):1;return i.length>1&&c.push({counts:l,name:`total`}),Kn(Mn(c.map(e=>PD(e.counts,e.name,a,u,n))),o)}function Wj(e,t){let n=0,r=1;for(let{name:i,kind:a,shared:o,counts:s}of e)a===`dir`||(i===null||o)&&!t?r=7:n+=s.c;return Math.max(r,String(n).length)}function Gj(e){return e.size===0?{l:!0,w:!0,m:!1,c:!0}:{l:e.has(`l`),w:e.has(`w`),m:e.has(`m`),c:e.has(`c`)}}function Kj(e,t,n,r){let i=$t(t),a=n.c||r||n.m&&i?qj(e):0;return{l:n.l?jn(e):0,w:n.w?nM(e,t):0,m:n.m?i?a:Jj(e):0,c:a}}var qj=e=>typeof e==`string`?p(e).length:e.length;function Jj(e){if(typeof e==`string`)return e.length-(e.match(/[\u{10000}-\u{10FFFF}]/gu)??[]).length;let t=0;for(let n of Ye(e))n>=0&&t++;return t}var Yj=new Set([9,10,11,12,13,32]),Xj=new Set([160,8199,8239,8288]),Zj=1,Qj=0,$j=2,eM=Uint8Array.from({length:128},(e,t)=>Yj.has(t)?Zj:t>32&&t<127?$j:Qj),tM=(e,t)=>t.has(`print`,e)?t.has(`space`,e)||Xj.has(e)?Zj:$j:Qj;function nM(e,t){let n=_n(t.locale),r=0,i=!1;for(let a of rM(e,t)){let e=a<0?Qj:a<128?eM[a]:tM(a,n);e===Zj?(i&&r++,i=!1):e===$j&&(i=!0)}return i?r+1:r}function*rM(e,t){if(typeof e!=`string`){yield*$t(t)?e:Ye(e);return}if($t(t)){yield*p(e);return}for(let t=0;t<e.length;){let n=e.codePointAt(t);yield n>=55296&&n<=57343?65533:n,t+=n>65535?2:1}}function iM(e,t){let n=0;for(let r=0;r<t&&n<e.length;r++){for(;n<e.length&&/[ \t]/u.test(e[n]);)n++;for(;n<e.length&&!/[ \t]/u.test(e[n]);)n++}return e.slice(n)}function aM(e,t,n){let{flags:r,values:i,positional:a}=U(t,{short:[`c`,`d`,`u`,`i`,`D`],valueShort:[`f`,`s`,`w`]});if(a.length>2)return x(`uniq: extra operand: ${a[2]}`);if(a.length===2&&a[1]!==`-`)return C(`feature`,`uniq`,`output file`,`uniq: output files are not supported (filesystem is read-only)`);let o=qn(i.get(`f`)??`0`,`uniq: -f`);if(o.error)return o.error;let s=qn(i.get(`s`)??`0`,`uniq: -s`);if(s.error)return s.error;let c=i.has(`w`)?qn(i.get(`w`),`uniq: -w`):{value:void 0};if(c.error)return c.error;let l=r.has(`D`),u=r.has(`c`);if(l&&u)return x(`uniq: printing all duplicated lines and repeat counts is meaningless`);let d=Gn(`uniq`,a.slice(0,1),e,n),f=r.has(`d`),m=r.has(`u`),h=r.has(`i`),g=e=>{let t=o.value>0?iM(e,o.value):e;if(s.value===0&&c.value===void 0){let e=t.toWellFormed();return h?e.replace(/[A-Z]/gu,e=>e.toLowerCase()):e}let n=p(t).subarray(s.value,c.value===void 0?void 0:s.value+c.value);return(h?n.map(e=>e>=65&&e<=90?e+32:e):n).join(`,`)},_=An(d.content),ee=[],v=0,te=_.length?g(_[0]):null;for(let e=1;e<=_.length;e++){let t=e===_.length?null:g(_[e]);if(e<_.length&&t===te)continue;let n=e-v,r=n>=2;(l?r:!(f&&m)&&(f?r:!m||!r))&&(l?ee.push(..._.slice(v+ +!!m,e)):ee.push(u?String(n).padStart(7)+` `+_[v]:_[v])),v=e,te=t}return Kn(Mn(ee),d)}function oM(){return b()}function sM(){return{stdout:``,stderr:``,exitCode:1}}var cM={grep:I_,head:(e,t,n)=>Fj(`head`,e,t,n),tail:(e,t,n)=>Fj(`tail`,e,t,n),wc:Uj,sort:gj,uniq:aM,echo:yD,printf:ED,xargs:Mj,awk:fj},lM={true:oM,false:sM,":":oM},uM={test:eD,cat:RT,...cM,...LT,...wb},dM=(e,t)=>(n,r,i)=>{let a=cM.grep(n,[t,...r],i),o=S(a);return o?w(a,o.kind,e,o.detail,o.message):a},fM={__proto__:null,sed:qE,egrep:dM(`egrep`,`-E`),fgrep:dM(`fgrep`,`-F`),"[":tD,...Tb,...lM,..._D,...uM},pM=new Set([`cd`,`:`,...Object.keys(_D)]),mM=e=>!!fM[e],hM=new Set([`basename`,`cp`,`dirname`,`ln`,`mkdir`,`patch`,`rm`,`tee`,`touch`]),gM=Object.fromEntries(Object.entries(uM).filter(([e])=>!hM.has(e))),_M=`ls.cd.cat.grep.rg.find.head.tail.wc.tree.du.stat.realpath.sort.uniq.cut.tr.awk.nl.tac.hexdump.base64.xargs.echo.printf.test.diff.pwd.seq.which`.split(`.`),vM=Object.keys(fM).filter(e=>!pM.has(e)&&!Object.hasOwn(gM,e)).sort(),yM=new Set([`base32`,`brotli`,`egrep`,`fgrep`,`gunzip`,`gzcat`,`gzip`,`od`,`sed`,`sha1sum`,`sha256sum`,`sha384sum`,`sha512sum`,`shasum`,`tar`,`tee`,`xxd`,`zcat`]),bM=SM(),xM=[`grep`,`head`,`tail`,`wc`,`sort`,`uniq`,`cut`,`xargs`,`awk`,`tr`,`nl`,`tac`,`hexdump`,`cat`,`base64`,`diff`,`patch`];function SM(){let e=new Set(Object.keys(gM)),t=[];for(let n of _M)e.delete(n)&&t.push(n);return t.push(...[...e].sort()),t}var CM=Object.freeze([`/usr/local/bin/`,`/usr/bin/`,`/bin/`,`/sbin/`]);function wM(e,t){for(let n of CM)if(e.startsWith(n)){let r=e.slice(n.length);if(t(r))return r}return e}var TM=new Set([`test`,`[`,`true`,`false`]),EM=new Set([`grep`,`egrep`,`fgrep`]);function DM(e,t){let n=wM(e[0],t);return TM.has(n)?`status`:EM.has(n)?F_(e.slice(1))?`status`:`search`:`work`}function OM(e,t=!1){let n=Qp(t),r=n===null?[]:Zp,i=$a(e,e=>mM(e)||r.includes(e)),a=Object.freeze({__proto__:null,...fM,...n,...i.handlers}),o=e=>!!a[e],s=Object.freeze([...bM,...r,...vM,...i.names]);return Object.freeze({commands:a,names:s,pipeNames:Object.freeze([...xM,...r,...vM.filter(e=>yM.has(e)),...i.pipeNames]),binPrefixes:CM,has:o,shellOnly:e=>pM.has(e),resolveCommand:e=>wM(e,o),chainRole:e=>DM(e,o),known:[...bM,...r,...i.names].join(`, `)})}var kM=OM(),AM=null,jM=e=>e?(AM??=OM(void 0,!0),AM):kM;function MM(e,t){let n=vD.get(e);return n===void 0?C(`command`,e,e,`${e}: command not found. Available: ${t.known}`,127):C(`feature`,e,e,`${e}: ${n}`,127)}function NM(e,t,n){let r=LM(e);if(!r)return[];let{start:i,pipe:a,quote:o,words:s}=r;for(;PM.has(s[0]);)s.shift();if(FM.has(s[0])||s[0]===`for`&&s.length<=2)return[];let c=e.slice(i),l=RM(c,o);if(!l)return[];let u=s.length===0,d=u?``:n.resolveCommand(RM(s[0],null)?.value??``),f=u?IM(l.value,a,n,t.functions):a?[]:BM(l,t,d===`cd`),p=e.slice(0,i),m=a&&c===``&&p.endsWith(`|`)?` `:``;return f.map(e=>p+m+c+zM(e.slice(l.value.length),o))}var PM=new Set([`!`,`{`,`do`,`then`,`else`,`elif`,`if`,`while`,`until`]),FM=new Set([`done`,`fi`,`}`,`esac`]);function IM(e,t,n,r){let i=t?n.pipeNames:n.names;for(let t of n.binPrefixes)if(e.startsWith(t))return i.filter(n=>n.startsWith(e.slice(t.length))).map(e=>t+e);if(e.startsWith(`/`)||e.startsWith(`./`))return[];let a=[...r.keys()].filter(e=>!i.includes(e));return[...i,...a].filter(t=>t.startsWith(e))}function LM(e){let t=0,n=!1,r=null,i=!1,a=-1,o=[];for(let s=0;s<e.length;s++){let c=e[s];if(r===`'`){c===r&&(r=null);continue}if(c===`\\`&&(!r||`$\`"\\
|
|
352
|
+
`.includes(e[s+1]))){if(s+1===e.length)return null;e[++s]!==`
|
|
353
|
+
`&&(i=!0);continue}if(c==="`"||c===`$`&&e[s+1]===`(`)return null;if(r){c===r&&(r=null);continue}if(c===`'`||c===`"`){r=c,i=!0;continue}if(c===`#`&&!i){let t=e.indexOf(`
|
|
354
|
+
`,s);if(t===-1)return null;s=t-1;continue}if(c===` `||c===` `){i&&o.push(e.slice(t,s)),t=s+1,i=!1;continue}let l=c===`|`&&e[s+1]===`|`,u=c===`&`&&e[s+1]===`&`;if(c===`|`||u||c===`;`||c===`
|
|
355
|
+
`||c===`(`||c===`)`&&a===s-1){(l||u)&&s++,c===`(`&&(a=s),t=s+1,n=c===`|`&&!l,o.length=0,i=!1;continue}i=!0}return{start:t,pipe:n,quote:r,words:o}}function RM(e,t){if(e===``)return{value:``,mask:null};try{let n=Fi(e+(t??``));if(n.length!==1||n[0].kind!==`word`)return null;let r=n[0];for(let e=0;e<r.value.length;e++){let t=r.mask?.[e]??`0`;if(t!==`1`&&r.value[e]===`$`||t===`0`&&`*?[{`.includes(r.value[e]))return null}return r}catch{return null}}function zM(e,t){return t===`'`?e.replaceAll(`'`,`'\\''`)+`'`:t===`"`?e.replace(/[\\$`"]/gu,`\\$&`)+`"`:e.replace(/[\s\\'"`$&|;()<>*?[\]{}!#~]/gu,e=>e===`
|
|
355
356
|
`?`'
|
|
356
|
-
'
|
|
357
|
-
`}
|
|
358
|
-
`;)
|
|
359
|
-
`,
|
|
360
|
-
`,r.exitCode=t.lastExit}return
|
|
361
|
-
`),n=
|
|
362
|
-
`).map((n
|
|
363
|
-
|
|
364
|
-
`}];return}finally{this._running=!1}this._cwd=i.cwd;let
|
|
365
|
-
`,
|
|
357
|
+
'`:`\\`+e)}function BM(e,t,n=!1){let r=e.value,i=r.startsWith(`~`)&&(e.mask?.[0]??`0`)===`0`&&!e.empty?.some(e=>e<=1)&&(r.length===1||(e.mask?.[1]??`0`)===`0`);if(i&&r===`~`)return t.fs.isDir(k(t.cwd,TS(t),t.fs).path)?[`~/`]:[];if(i&&!r.startsWith(`~/`))return[];let a=r.lastIndexOf(`/`),o=r.slice(0,a+1),s=r.slice(a+1),c=i?TS(t)+o.slice(1):o||`.`,l=k(t.cwd,c,t.fs).path;if(!t.fs.isDir(l))return[];let{dirs:u,files:d,links:f}=t.fs.listDir(l),p=u.map(e=>e+`/`);for(let e of f)t.fs.isDir(k(l,e,t.fs).path)?p.push(e+`/`):n||p.push(e);return n||p.push(...d),p.filter(e=>e.startsWith(s)&&(s.startsWith(`.`)||!e.startsWith(`.`))).filter(e=>o!==``||s===``||!e.startsWith(`-`)).map(e=>o===``&&e.startsWith(`-`)?`./`+e:o+e)}async function VM(e,t,n,r=!1){let i=(t.substitutionDepth??0)+1;if(i>Cr)throw new T(`feature`,`command substitution nesting limit`,`command substitution nesting beyond ${Cr} levels is not supported`);let a=t.expansionFds[2],o=await yS(t,{substitutionDepth:i,outputFds:{1:`out`,2:typeof a==`object`||a===`closed`?a:`err`},errexitOff:!0,closed:{out:!1,err:a===`closed`}},()=>vS(t,()=>{let i;try{i=wa(e,t.writable,t.registry.has)}catch(e){let n=S(e);if(!n){if(r)return x(`error: command substitution: ${e.message}`,2);throw new T(`feature`,`command substitution syntax`,`runtime command substitution syntax errors are not supported: ${e.message}`)}return t.unsupported.add(n),x(`error: ${e.message}`,1)}let a=i.length===1&&!i[0].negate&&i[0].stages.length===1?i[0].stages[0]:null;return a&&!a.group&&!a.loop&&!a.conditional&&!a.test&&a.words.length===0&&a.assigns.length===0&&a.redirs.length===1&&a.redirs[0].op===`read`&&a.words.push({value:`cat`,mask:null}),n(i,t,{text:t.stdinLeft,bytes:t.stdinBytes})}));t.lastExit=t.substitutionExit=o.exitCode;let s=o.stdout,c=o.stderr;if(s.includes(`\0`)){let e=s.length;s=s.replaceAll(`\0`,``);let n=e-s.length;t.notes.add(`command substitution: discarded ${n} NUL ${n===1?`byte`:`bytes`}.`),c+=`warning: command substitution: ignored null byte in input
|
|
358
|
+
`}Kv(t,c);let l=s.length;for(;l>0&&s[l-1]===`
|
|
359
|
+
`;)l--;return s.slice(0,l)}async function HM(e,t){return{stdout:``,stderr:``,exitCode:+!await WM(e,t)}}var UM=async(e,t)=>(await OS(e,t)).value;async function WM(e,t){let{kind:n}=e;if(n===`not`)return!await WM(e.expression,t);if(n===`and`)return await WM(e.left,t)&&await WM(e.right,t);if(n===`or`)return await WM(e.left,t)||await WM(e.right,t);let{op:r}=e;if(n===`unary`){let n=await UM(e.word,t);if(r===`-n`)return n!==``;if(r===`-z`)return n===``;if([`-a`,`-e`,`-f`,`-d`].includes(r))return aD(r,n,t);if(r===`-v`)return GM(n,t);KM(r)}[`<`,`>`,`-nt`,`-ot`,`-ef`].includes(r)&&KM(r);let i=await UM(e.left,t);if(Object.hasOwn(ZE,r)){let n=await UM(e.right,t);return ZE[r](iS(i,t),iS(n,t))}let a=await OS(e.right,t);e_(a)&&KM(`extglob`);let o=Gg(r_(a),{bash:!0}).test(i);return r===`!=`?!o:o}function GM(e,t){return e.includes(`[`)&&KM(`-v array subscript`),/^[ \t\n\r\f\v]*[+-]?0+[ \t]*$/u.test(e)&&KM(`-v positional parameter`),/^[A-Za-z_][A-Za-z0-9_]*$/u.test(e)?jx(e,t).set:!1}function KM(e){throw new T(`feature`,`[[ ${e}`,`${e} in [[ is not supported`)}function qM(e,t,n,r){return e.define?(t.functions.set(e.define.name,e.define.body),G()):e.test?HM(e.test,t):e.group?eN(e,t,n,r):e.loop?e.loop.words?QM(e.loop,t,r):XM(e.loop,t,r):$M(e.conditional,t,n,r)}var JM=1e4,YM={kind:`feature`,command:null,detail:`loop limit`,message:`a loop running more than ${JM} times is not supported`};async function XM(e,t,n){let r=G(),i={text:t.stdinLeft,bytes:t.stdinBytes};t.loopDepth++;try{for(let a=0;;a++){if(a===JM){t.unsupported.add(YM),K(r,x(`error: ${YM.message}`,1));break}let o=r.ignored,s=r.exitCode,c=await n(e.condition,t,i,!0);if(K(r,c),r.exitCode=s,r.ignored=o,c.halt||c.control)return{...r,halt:c.halt,control:c.control,blame:c.blame};if(c.exitCode===0==!!e.until)break;let l=await n(e.body,t,i);if(K(r,l),r.blame=l.blame,l.halt)return{...r,halt:!0};if(l.control?.levels>1)return{...r,control:{...l.control,levels:l.control.levels-1}};if(l.control?.type===`break`)break}}finally{t.loopDepth--}return r}var ZM={value:`for`,mask:null};async function QM(e,t,n){let r=await bS([ZM,...e.words],t),i=G(),a={text:t.stdinLeft,bytes:t.stdinBytes};t.loopDepth++;try{for(let o of r.argv.slice(1)){t.vars.set(e.name,o);let r=await n(e.body,t,a);if(K(i,r),i.blame=r.blame,r.halt)return{...i,halt:!0};if(r.control?.levels>1)return{...i,control:{...r.control,levels:r.control.levels-1}};if(r.control?.type===`break`)break}}finally{t.loopDepth--}return i}async function $M(e,t,n,r){let i=G(),a={text:n,bytes:t.stdinBytes};for(let n of e.branches){let e=await r(n.condition,t,a,!0);if(K(i,e),e.halt||e.control)return{...i,halt:e.halt,control:e.control,blame:e.blame};if(e.exitCode!==0)continue;let o=await r(n.body,t,a);return K(i,o),{...i,halt:o.halt,control:o.control,blame:o.blame}}if(!e.otherwise)return i.exitCode=0,i.ignored=!1,i;let o=await r(e.otherwise,t,a);return K(i,o),{...i,halt:o.halt,control:o.control,blame:o.blame}}async function eN(e,t,n,r){let i={text:n,bytes:t.stdinBytes};return e.isolate?{...await vS(t,()=>r(e.group,t,i)),halt:!1,control:void 0,ignored:!1}:r(e.group,t,i)}var tN=new Set([`sort`,`cat`]),nN=new Set([`wc`,`tac`]);function rN(e){let t=null,n=null,r=e=>{t&&!t.bufferReads&&t.reads.push(e)},i=e=>{if(e!==void 0)for(let r=t;r;r=r.parent){if(!r.reads.includes(e)||r===t&&n?.scope===r&&(n.unsupported||r.buffered||n.fd===1&&(tN.has(r.name)||nN.has(r.name)&&!r.reads.slice(1).includes(e))))continue;if(r.failure)throw r.failure;let i=r===t&&n?.fd===2,a=i?`input modified by diagnostics`:`streaming self-output`,o=i?`reading input while diagnostics write to the same file is not supported`:`writing to an actively read input file is not supported`;throw r.failure=w(new T(`feature`,a,o),`feature`,r.name,a,o),r.failure}};return e.observeIo?.({read:r,write:i}),{read:r,bufferOutput(){t&&(t.buffered=!0)},bufferReads(e){if(!t)return e();let n=t,r=n.bufferReads;n.bufferReads=!0;try{return e()}finally{n.bufferReads=r}},setReads(e){t&&(t.reads=e)},async run(e,n){let r=t;t={name:e,reads:[],parent:r};try{return await n()}finally{t=r}},output(e,r,a){let o=n;n={scope:t,fd:null,unsupported:!!S(e)};try{for(let t of Wv(e))t.text!==``&&(n.fd=t.fd,i(r.fds[t.fd]?.identity));return a((e,t)=>{n.fd=e.fd,Uv(e,t)})}finally{n=o}}}}function iN(e,t){return qv(e,{fds:{1:t.outputFds[1]?.path?t.outputFds[1]:`out`,2:t.outputFds[2]?.path?t.outputFds[2]:`err`},deferred:{1:aN(t.outputFds[1]),2:aN(t.outputFds[2])}},t)}var aN=e=>e!==`out`&&e!==`err`&&!e?.path;async function oN(e,t,n,r=!1){if(e.some(e=>e.background))throw new T(`feature`,`&`,"background processes (`&`) are not supported");let i=G(),a=null,o=null;for(let[s,c]of e.entries()){if(c.warnings&&K(i,qv({...G(c.warnings),exitCode:i.exitCode,ignored:i.ignored},{fds:t.outputFds},t)),c.gate===`and`&&i.exitCode!==0){(o??=Dn()).skip(r?null:a,i.exitCode);continue}if(c.gate===`or`&&i.exitCode===0)continue;o?.flush(t.notes);let l=r||c.negate||sN(e,s),u=await(l?yS(t,{errexitOff:!0},()=>cN(c.stages,t,n)):cN(c.stages,t,n));if(K(i,u),c.negate&&!u.halt&&(i.exitCode=+(u.exitCode===0)),l&&(i.ignored=!0),a=c.negate?null:u.blame,t.lastExit=i.exitCode,u.halt||u.control){Object.assign(i,{halt:u.halt,control:u.control});break}if(i.exitCode!==0&&!i.ignored&&t.errexit&&!t.errexitOff){i.halt=!0;break}}return o?.flush(t.notes),t.stdinLeft=n.text,t.stdinBytes=n.bytes??null,Object.assign(i,{blame:a})}var sN=(e,t)=>[`and`,`or`].includes(e[t+1]?.gate);async function cN(e,t,n){let r=G(),i=n.text,a=n.bytes??null;for(let o=0;o<e.length;o++){let s=e[o],c=o===0,l=o<e.length-1?lN():null,u={...t.outputFds};l&&(u[1]=l);let d=a,f=i,p=()=>uN(s,t,{stdin:f,stdinBytes:d,stdinFile:c&&t.stdinFile,fds:u,stdinPiped:!c||t.stdinPiped,stdinTerminal:c&&t.stdinTerminal}),m=e.length>1?{...await vS(t,p),ignored:!1}:await p();c&&(n.text=m.inputLeft,n.bytes=m.bytesLeft??null),K(r,m);let h=l?.carried()??{text:``};a=h.bytes??null,i=h.text??$e(h.bytes)??``,r.blame=m.blame,e.length===1&&(r.halt=m.halt,r.control=m.control)}return r}function lN(){let e=``,t=null;return{write(n){t===null?e+=n:n!==``&&t.push(E(n))},writeBytes(n){t===null&&(t=e===``?[]:[E(e)],e=``),t.push(n)},carried:()=>t===null?{text:e}:{bytes:ct([...t,new Uint8Array])}}}function uN(e,t,{stdin:n,stdinBytes:r,stdinFile:i,fds:a,stdinPiped:o,stdinTerminal:s}){let c={fds:a,stdin:n,stdinBytes:r,stdinFile:i,stdinPiped:o,stdinTerminal:s,stdinOrigin:i?t.stdinOrigin:null,stdinHandle:i?t.stdinHandle:null};return yS(t,{substitutionExit:null,expansionOutput:G(),expansionFds:a},()=>hN(c,t,async()=>{let n=!e.group&&!e.loop&&!e.conditional&&!e.test&&!e.define,r,o;try{n&&(r=await bS(e.words,t),r.argv.length===0?await yN(e.assigns,t):r.temps=await bN(e.assigns,t))}catch(e){o=pN(t,e)}if(o)return K(t.expansionOutput,dN(o,c,t)),{...t.expansionOutput,inputLeft:t.stdinLeft,bytesLeft:t.stdinBytes,halt:o.halt};let s=await fN(e,t,t.stdinLeft,i,a);t.expansionFds=s.fds;let l=!1,u=null,d=await hN(s,t,()=>mN(t,async()=>{if(s.error)return s.error;if(!n){let n=await qM(e,t,s.stdin,oN);return l=!0,u=n.blame??null,n}let i=r.argv.length>0?r.argv[0]:null,a=i===null?void 0:t.functions.get(i);if(a){if(l=!0,t.calling.has(i)){let e=C(`feature`,i,`function recursion`,`${i}: a function calling itself is not supported`);return t.unsupported.add(S(e)),e}t.calling.add(i);try{return await yS(t,{loopDepth:0},async()=>({...await xN(r.temps,t,()=>oN(a,t,{text:s.stdin,bytes:s.stdinBytes})),ignored:!1}))}finally{t.calling.delete(i)}}let o=await vN(t,r);return r.argv.length&&(u=En(t.registry.chainRole(r.argv),r.argv[0])),o})),f=s.inherited?t.stdinLeft:s.parentLeft,p=s.inherited?t.stdinBytes:s.parentBytes;return K(t.expansionOutput,l?d:dN(d,s,t)),{...t.expansionOutput,inputLeft:f,bytesLeft:p,halt:d.halt,control:d.control,blame:u}}))}function dN(e,t,n){try{return qv(e,t,n)}catch(e){return qv(pN(n,e),t,n)}}async function fN(e,t,n,r,i){let a={...i},o=n,s=r,c=s?t.stdinOrigin:null,l=s?t.stdinHandle:null,u=!0,d=n,f=!1,p=t.stdinTerminal,m=t.stdinBytes,h=m,g=e=>({error:e,fds:a,stdin:o,stdinBytes:m,stdinFile:s,stdinPiped:f||t.stdinPiped,stdinTerminal:p,stdinOrigin:s?c:null,stdinHandle:s?l:null,inherited:u,parentLeft:d,parentBytes:h}),_=async e=>{let n=await yS(t,{expansionFds:a},()=>hN({fds:a,stdin:o,stdinBytes:m,stdinFile:s,stdinOrigin:c,stdinHandle:l},t,e));return o=t.stdinLeft,m=t.stdinBytes,u&&(d=o,h=m),n};try{for(let n of e.redirs)if(n.op===`dup`){if(a[n.toFd]===void 0||a[n.toFd]===`closed`)return g(x(`error: ${n.toFd}: Bad file descriptor`));a[n.fd]=a[n.toFd]}else if(n.op===`close`)a[n.fd]=`closed`;else if(n.op===`to`){let e=n.target===void 0?await _(()=>SS(n.word,t)):{value:n.target};if(e.error)return g(x(`error: ${e.error}`));let r=e.value===`/dev/null`?`null`:e.value===`/dev/stdout`?a[1]:e.value===`/dev/stderr`?a[2]:t.writable?t.fs.openWritable(t.cwd,e.value,n.append):null;if(r===null){let r=Ya(n.label,e.value,t.writable);return t.unsupported.add(S(r)),g(x(`error: ${r.message}`))}if(r===`closed`)return g(x(`error: ${e.value}: No such file or directory`));a[n.fd]=r,n.both&&(a[2]=r)}else if(n.op===`text`)o=n.expand?await _(()=>wS(gN(n.body),t)):n.body,s=!1,u=!1,m=null,p=!1;else if(n.op===`herestring`)o=await _(()=>wS(n.word,t))+`
|
|
360
|
+
`,s=!1,u=!1,m=null,p=!1;else{let e=await _(()=>SS(n.word,t)),r=e.error?{error:x(`error: ${e.error}`)}:_N(e.value,t,s?c:o);if(r.error)return g(r.error);o=r.content,e.value!==`/dev/stdin`&&(m=r.bytes??null),(e.value!==`/dev/stdin`||s)&&(u=!1),e.value!==`/dev/stdin`&&(s=e.value!==`/dev/null`,c=s?o:null,l=r.handle,f=s,p=!1)}if(s&&l){let e=t.io.bufferReads(()=>t.fs.readIdentity(l.identity));if(e!==l.content){if(u||o!==l.content)throw new T(`feature`,`modified redirected input`,`reading an inherited input file after it changes is not supported`);o=c=e,l={...l,content:e}}}}catch(e){return g(pN(t,e))}return g()}function pN(e,t){F(e,`shell`,t?.path,t?.fsError);let n=S(t);return n&&e.unsupported.add(n),{...x(`error: ${L(t)}`,1),...t?.halt?{halt:!0}:{}}}async function mN(e,t){try{return await t()}catch(t){return pN(e,t)}}function hN(e,t,n){let r={outputFds:e.fds,closed:{out:e.fds[1]===`closed`,err:e.fds[2]===`closed`},stdinFile:!!e.stdinFile,stdinPiped:e.stdinPiped??t.stdinPiped,stdinTerminal:e.stdinTerminal??t.stdinTerminal,stdinOrigin:e.stdinOrigin,stdinHandle:e.stdinHandle};return t.stdinLeft=e.stdin,t.stdinBytes=e.stdinBytes??null,yS(t,r,n)}function gN(e){let t=``,n=``;for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1];if(i===`\\`&&(a===`$`||a===`\\`||a==="`")){t+=a,n+=`1`,r++;continue}if(i==="`"){let i=wr(e,r);t+=i.raw,n+=`2`+`1`.repeat(i.raw.length-1),r+=i.raw.length-1;continue}if(i===`$`){let i=vi(e,r,0,!0);if(i?.command!==void 0||i?.parameter!==void 0||i?.arithmetic!==void 0){t+=i.raw,n+=`2`+`1`.repeat(i.raw.length-1),r+=i.raw.length-1;continue}}t+=i,n+=`2`}return{value:t,mask:n}}function _N(e,t,n){if(e===`/dev/null`)return{content:``};if(e===`/dev/stdin`)return{content:n};let{path:r,error:i}=P(t,`shell`,e);if(i)return{error:x(`error: ${e}: ${i}`)};if(t.fs.isFile(r)){let{text:e,bytes:n}=Bn(t.fs,r),i=e??``;return{content:i,bytes:e===void 0?n:void 0,handle:t.writable&&r.startsWith(`/tmp/`)?{path:r,content:i,identity:t.fs.fileIdentity(r)}:null}}return{error:x(`error: ${e}: Is a directory`)}}function vN(e,t){let{argv:n}=t;return n.length===0?{stdout:``,stderr:``,exitCode:e.substitutionExit??0}:xN(t.temps,e,()=>e.invoke(n[0],n.slice(1),e.stdinLeft))}async function yN(e,t){for(let n of e)t.vars.set(n.name,await wS(n.word,t,!0))}async function bN(e,t){if(e.length===0)return null;let n=t.vars,r=new Ox(n),i=new Set(e.map(e=>e.name));r.bound=new Set;try{await yS(t,{vars:r},async()=>{for(let n of e){r.expansionTargets=i;let e=await wS(n.word,t,!0);r.expansionTargets=null,r.set(n.name,e)}})}finally{r.expansionTargets=null;for(let e of r.bound)i.has(e)||n.set(e,r.get(e))}return{vars:r,names:i}}async function xN(e,t,n){if(!e)return n();let r=t.vars,i=new Ox(r),a=e.names;for(let t of a)i.set(t,e.vars.get(t));t.vars=i;try{return i.bound=new Set,await n()}finally{t.vars=r;for(let[e,t]of i)(!a.has(e)||i.bound?.has(e))&&r.set(e,t);for(let e of i.unsetNames)a.has(e)||r.delete(e)}}function SN(e,t={}){let{fs:n,cwd:r,home:i,mount:a,writable:o,locale:s}=mr(e,t),c=Wf(t),l=t.commands===void 0?jM(c):OM(t.commands,c);return DN(EN({fs:n,io:rN(n),mount:a,writable:o,registry:l,createdAt:Date.now(),lock:{turn:Promise.resolve()}},{cwd:r,home:i,user:t.user??`user`,locale:s,...CN()}),`createTerminal`)}var CN=()=>({vars:new Ox,functions:new Map,lastExit:0,errexit:!1}),wN=e=>({vars:new Ox(e.vars),functions:new Map(e.functions),lastExit:e.lastExit,errexit:e.errexit});function TN(e,t={}){let{cwd:n,home:r,user:i,locale:a,inherit:o}=hr(e,t);return DN(EN(e,{cwd:n,home:r,user:i,locale:a,...o?wN(e):CN()}),`fork`)}function EN({fs:e,io:t,mount:n,writable:r,registry:i,createdAt:a,lock:o},s){let c={fs:e,io:t,mount:n,writable:r,registry:i,createdAt:a,lock:o,...s,calling:new Set,outputFds:{1:`out`,2:`err`},loopDepth:0,closed:{out:!1,err:!1},stdinFile:!1,stdinPiped:!1,stdinTerminal:!0,stdinOrigin:null,stdinHandle:null,stdinLeft:``,stdinBytes:null,unsupported:qe(),notes:new Set};return c.dispatch=(e,t,n,{devNull:r=!1}={})=>yS(c,{stdinLeft:c.stdinLeft,stdinBytes:c.stdinBytes,stdinFile:!1,stdinPiped:!1,stdinTerminal:c.stdinTerminal&&!r,stdinOrigin:null,stdinHandle:null},()=>vS(c,()=>ON(e,t,n,c,!0))),c.flushOutput=e=>iN(e,c),c.hasCommand=e=>i.has(e)&&!i.shellOnly(e),c.invoke=(e,t,n)=>ON(e,t,n,c),c.substitute=(e,t)=>VM(e,c,oN,t),c.runLine=e=>jN(e,c),c}function DN(e,t){if(!e.fs.isDir(e.cwd))throw Error(`${t}: cwd is not a directory: ${e.cwd}`);return{run:t=>AN(e,t),cwd:()=>e.cwd,complete:t=>NM(t,e,e.registry),fork:t=>TN(e,t)}}async function ON(e,t,n,r,i=!1){let a=r.registry,o=a.resolveCommand(e),s=()=>{if((i||e!==o)&&a.shellOnly(o))return C(`command`,e,e,`${e}: shell builtin cannot be invoked as an external command`,127);let s=a.commands[o];return s?s(n,t,r):MM(e,a)},c=t=>iN(kN(r,Zv(e,t,r),o),r);try{return await r.io.run(o,async()=>c(await s()))}catch(t){F(r,e,t?.path,t?.fsError);let n=`${e}: ${L(t)}`,i=S(t);return i&&r.unsupported.add({...i,command:i.command??e,message:n},i.command??o),c(x(n))}}function kN(e,t,n){let r=S(t);return r&&e.unsupported.add(r,n),t}function AN(e,t){let{lock:n}=e,r=n.turn.then(()=>jN(t,e));return n.turn=r.then(()=>null,()=>null),r}function jN(e,t){let n=qe();return yS(t,{unsupported:n,notes:new Set,discarded:new Set,stdinFile:!1,stdinPiped:!1,stdinTerminal:!0,stdinOrigin:null,stdinHandle:null,stdinBytes:null,closed:{out:!1,err:!1},outputFds:{1:`out`,2:`err`}},async()=>{let r={stdout:``,stderr:``,exitCode:0},i={text:``};try{for(let n of Ta(e,t.writable,t.registry.has)){let e=await oN(n,t,i);if(r.stdout+=e.stdout,r.stderr+=e.stderr,r.exitCode=e.exitCode,e.halt||e.control)break}}catch(e){let i=S(e);i&&n.add(i),t.lastExit=e.exitCode??(i?1:2),r.stderr+=`error: ${e.message}
|
|
361
|
+
`,r.exitCode=t.lastExit}return MN(r,t,n)})}var MN=(e,t,n)=>({stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode,cwd:t.cwd,unsupported:Object.freeze(n.entries),notes:Object.freeze([...t.notes,...Tn(t.discarded,e.stderr,t.notes)])}),NN={unified:[[/^--- /u,`bold`],[/^\+\+\+ /u,`bold`],[o,`cyan`],[/^\+/u,`green`],[/^-/u,`red`],[/^\\ /u,`gray`]],context:[[s,`cyan`],[/^\*{3} \d/u,`cyan`],[/^--- \d/u,`cyan`],[/^\*{3} /u,`bold`],[/^--- /u,`bold`],[/^! /u,`yellow`],[/^\+ /u,`green`],[/^- /u,`red`]],normal:[[c,`cyan`],[/^< /u,`red`],[/^> /u,`green`],[/^---$/u,`gray`]]};function PN(e){return e.some(e=>s.test(e))?`context`:e.some(e=>o.test(e))?`unified`:e.some(e=>c.test(e))?`normal`:null}function FN(e){let t=e.split(`
|
|
362
|
+
`),n=NN[PN(t)];return n===void 0?null:t.map(e=>n.find(([t])=>t.test(e))?.[1]??null)}var IN={bold:`head`,cyan:`hunk`,green:`add`,red:`del`,yellow:`chg`,gray:`meta`};function LN(e){let t=FN(e);return t===null?null:e.split(`
|
|
363
|
+
`).map((e,n)=>({text:e,kind:t[n]===null?``:IN[t[n]]??``}))}function RN({stdout:e,stderr:t,unsupported:n}){return n.filter(n=>!t.includes(n.message)&&!e.includes(n.message)).map(e=>e.message)}var zN=`:host{display:flex;flex-direction:column;position:relative;height:100%;min-height:0;background:var(--bg, #0c0c0c);color:var(--text, #e6edf3);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.45}.output{flex:1 1 auto;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;padding:var(--terminal-output-padding, 12px 14px 6px);cursor:text}.banner{color:var(--muted, #8b949e);margin-bottom:8px;user-select:none}.banner .cmd{color:var(--accent, #58a6ff)}.banner .cmd:hover{text-decoration:underline}.line{white-space:pre-wrap;overflow-wrap:break-word}.cwd{color:var(--accent, #58a6ff)}.sigil{color:var(--muted, #8b949e)}.stdout,.stderr{margin:0 0 4px;font:inherit;white-space:pre-wrap;overflow-wrap:break-word}.stderr{color:var(--critical, #d8413a)}.diff-head{color:var(--text, #e6edf3);font-weight:600}.diff-hunk{color:var(--accent, #58a6ff)}.diff-add{color:var(--green, #3fb950)}.diff-del{color:var(--critical, #d8413a)}.diff-chg{color:var(--yellow, #d29922)}.diff-meta{color:var(--muted, #8b949e)}.form{flex:0 0 auto;display:flex;align-items:center;padding:var(--terminal-form-padding, 8px 14px 10px);border-top:1px solid var(--border, #2c2c2c)}.form:focus-within{border-top-color:var(--accent, #58a6ff)}.form[aria-busy=true] .sigil{opacity:.4}.form[aria-busy=true] .input{caret-color:transparent}.form .cwd{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none}.form .sigil{flex:0 0 auto;user-select:none;margin:0 1ch}.input-wrap{flex:1 1 auto;min-width:0;position:relative;display:flex;align-items:center}.input{width:100%;background:transparent;border:none;outline:none;color:inherit;font:inherit;padding:0;position:relative}.ghost{position:absolute;inset:0;display:flex;align-items:center;font:inherit;white-space:pre;overflow:hidden;pointer-events:none;user-select:none;color:var(--muted, #8b949e);opacity:.55}.ghost-pad{color:transparent}.notes{position:absolute;top:8px;right:14px;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:min(52%,320px);pointer-events:none}.note{box-sizing:border-box;padding:5px 9px;border:1px solid var(--border, #2c2c2c);border-radius:var(--ui-radius, 5px);background:var(--bg, #0c0c0c);color:var(--muted, #8b949e);font-size:12px;line-height:1.4;text-align:left;overflow-wrap:break-word;animation:note-in .14s ease-out,note-out .4s ease-in var(--dwell-out, 5.6s) forwards}.note-gap{border-color:var(--warning, #d97706);color:var(--text, #e6edf3)}@keyframes note-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes note-out{to{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.note{animation:none}}:host-context(body.theme-w95) *{overscroll-behavior:none}
|
|
364
|
+
`,BN=`/sources`,VN={mount:BN,home:`/`,writable:`/tmp/`};function HN(e){let t=[`ls`,`find /`,`grep -r ${WN(e)} .`];if(!e||e.size===0)return t;let n=null;for(let[t,r]of e){if(typeof r!=`string`)continue;let e=GN(t);(n===null||e.length<n.length)&&(n=e)}return n&&t.push(`cat ${n} | head -n 20`),t}var UN=[`TODO`,`FIXME`,`XXX`,`HACK`,`NOTE`,`BUG`,`export`,`import`,`require`,`//`];function WN(e){if(!e||e.size===0)return UN[0];for(let t of UN)for(let n of e.values())if(typeof n==`string`&&n.includes(t))return t;return UN[0]}function GN(e){return e.startsWith(`./`)?e.slice(2):e.startsWith(`/`)?e.slice(1):e}var KN=class e extends ne{static properties={sources:{attribute:!1},_lines:{state:!0},_input:{state:!0},_cwd:{state:!0},_ghost:{state:!0},_notes:{state:!0},_running:{state:!0}};static styles=ee(zN);#e=null;#t=null;#n=[];#r=-1;#i=``;#a=null;#o=null;static#s=200;#c=new Map;#l=0;static#u=3;static#d=400;constructor(){super(),this.sources=null,this._lines=[],this._input=``,this._cwd=BN,this._ghost=``,this._notes=[],this._running=!1}willUpdate(e){e.has(`sources`)&&this.sources!==this.#t&&(this.#e=this.sources?SN(this.sources,VN):null,this._cwd=this.#e?this.#e.cwd():BN,this._lines=[{kind:`banner`,commands:HN(this.sources)}],this.#n=[],this.#r=-1,this.#i=``,this.#a=null,this._input=``,this.#T(),this.#t=this.sources),e.has(`_input`)&&(this.#g(),this.#_())}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>this.#f())}disconnectedCallback(){super.disconnectedCallback(),this.#g(),this.#T()}firstUpdated(){this.focusInput()}updated(e){(e.has(`_lines`)||e.has(`sources`))&&this.#f()}focusInput(){let e=this.renderRoot.querySelector(`.input`);e&&e.focus()}#f(){let e=this.renderRoot.querySelector(`.output`);e&&(e.scrollTop=e.scrollHeight)}#p=async e=>{if(e.preventDefault(),!this.#e||this._running)return;let t=this._input,n=t.trim();if(n===`clear`){this._lines=[],this.#T(),this._input=``,n.length>0&&(this.#n=[...this.#n,t]),this.#r=-1;return}let r=this._cwd;n.length>0&&(this.#n=[...this.#n,t]),this.#r=-1,this._input=``;let i;this._running=!0;try{i=await this.#e.run(t)}catch(e){this._lines=[...this._lines,{kind:`prompt`,cwd:r,text:t},{kind:`stderr`,text:`${e?.message??e}
|
|
365
|
+
`}];return}finally{this._running=!1}this._cwd=i.cwd;let a=[...this._lines,{kind:`prompt`,cwd:r,text:t}];i.stdout&&a.push({kind:`stdout`,text:i.stdout,diff:LN(i.stdout)}),i.stderr&&a.push({kind:`stderr`,text:i.stderr}),this._lines=a,this.#y(i)};#m=e=>{if(e.key===`Tab`&&!e.shiftKey){e.preventDefault(),this.#h();return}this.#a=null,e.key===`ArrowUp`?(e.preventDefault(),this.#E()):e.key===`ArrowDown`&&(e.preventDefault(),this.#D()),this.#g(),this.#_()};#h(){if(!this.#e)return;let e=this.#a;if(e&&e.items[e.index]===this._input){e.index=(e.index+1)%e.items.length,this._input=e.items[e.index];return}let t=this.#e.complete(this._input);if(t.length===0){this.#a=null;return}this._input=t[0],this.#a=t.length>1?{items:t,index:0}:null}#g(){this._ghost=``,this.#o!==null&&(clearTimeout(this.#o),this.#o=null)}#_(){this.#o=setTimeout(()=>{this.#o=null,this.#v()},e.#s)}#v(){if(!this.#e||this.#a)return;let e=this._input,t=e.slice(-1),n=e===``||t===` `||t===`|`,r=/[\w./]/u.test(t);if(!n&&!r)return;let i=this.#e.complete(e);if(i.length===0)return;let a=i[0];!a.startsWith(e)||a===e||r&&i.includes(e)||(this._ghost=a.slice(e.length))}#y(e){let t=e.notes.map(e=>({text:e,kind:`note`}));for(let n of RN(e))t.push({text:`silenced: ${n}`,kind:`gap`});this.#b(t)}#b(t){if(t.length===0)return;let n=[...this._notes];for(let{text:r,kind:i}of t){let t=n.findIndex(e=>e.text===r);t!==-1&&this.#S(n,t),n.push({id:++this.#l,text:r,kind:i,dwell:e.#x(r)})}for(;n.length>e.#u;)this.#S(n,0);for(let e of n)this.#c.has(e.id)||this.#c.set(e.id,setTimeout(()=>this.#w(e.id),e.dwell));this._notes=n}static#x(e){return Math.min(1e4,3200+e.length*55)}#S(e,t){let[n]=e.splice(t,1);this.#C(n.id)}#C(e){let t=this.#c.get(e);t!==void 0&&(clearTimeout(t),this.#c.delete(e))}#w(e){this.#c.delete(e),this._notes=this._notes.filter(t=>t.id!==e)}#T(){for(let e of this.#c.values())clearTimeout(e);this.#c.clear(),this._notes=[]}#E(){this.#n.length!==0&&(this.#r<0?(this.#i=this._input,this.#r=this.#n.length-1):this.#r=Math.max(0,this.#r-1),this._input=this.#n[this.#r])}#D(){if(this.#r<0)return;let e=this.#r+1;e>=this.#n.length?(this.#r=-1,this._input=this.#i,this.#i=``):(this.#r=e,this._input=this.#n[e])}#O=e=>{this._input=e.target.value};#k=e=>{this._input=e,this.#r=-1,this.#i=``,this.focusInput()};#A=()=>{let e=this.renderRoot.getSelection?.()??document.getSelection();e&&!e.isCollapsed||this.focusInput()};render(){return v`<div class="notes" role="log" aria-atomic="false">${_(this._notes,e=>e.id,t=>v`<div class="note ${t.kind===`gap`?`note-gap`:``}" style="${g({"--dwell-out":`${t.dwell-e.#d}ms`})}">${t.text}</div>`)}</div><div class="output" @click="${this.#A}">${this._lines.map(e=>this.#j(e))}</div><form class="form" @submit="${this.#p}" aria-busy="${this._running?`true`:`false`}"><span class="cwd">${this._cwd}</span><span class="sigil">$</span><div class="input-wrap">${this._ghost?v`<div class="ghost" aria-hidden="true"><span class="ghost-pad">${this._input}</span>${this._ghost}</div>`:te} <input class="input" type="text" aria-label="Terminal command" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" .value="${this._input}" @input="${this.#O}" @keydown="${this.#m}"></div></form>`}#j(e){return e.kind===`banner`?v`<div class="banner">Virtual shell over the bundle source tree. Try ${e.commands.map((e,t)=>v`${t>0?`, `:``}\`<span class="cmd" @click="${()=>this.#k(e)}">${e}</span>\``)}. ↑/↓ for history, Tab to complete.</div>`:e.kind===`prompt`?v`<div class="line"><span class="cwd">${e.cwd}</span>${` `}<span class="sigil">$</span>${` `}${e.text}</div>`:e.kind===`stdout`?this.#M(e):e.kind===`stderr`?v`<pre class="stderr">${e.text}</pre>`:te}#M(e){if(!e.diff)return v`<pre class="stdout">${e.text}</pre>`;let t=e.diff.flatMap((e,t)=>{let n=e.kind?v`<span class="diff-${e.kind}">${e.text}</span>`:e.text;return t===0?[n]:[`
|
|
366
|
+
`,n]});return v`<pre class="stdout">${t}</pre>`}};customElements.define(`bundle-terminal`,KN);function qN(e,t){let n=document.createElement(`bundle-terminal`);return n.dataset.integrity=t??``,n.sources=e,n}export{qN as createTerminalElement};
|